!" #$% &'#(# Konular Binary Özellikler Deerlendirme
Binary Özellikler Bir binary özellik iki deer alabilir (kapalı veya açık; var veya yok gibi) Bir kiiye ait bilgiler binary olarak aaıdaki gibi gösterilebilir Binary Özellikler stenen bir özellie balı sorgulama ilgili sütun üzerinde yapılır
Binary Özellikler Örnek: Bileimlerin 16-bit dizileriyle gösterimi Bilgi daha kolay ve hızlı ilenebilmesi için kodlanır Bilginin kodlanması için kullanılan yapıya superimposed coding denir Önceki örnekteki bileimleri 8 bit kullanarak ifade edebiliriz m toplam bit sayısını (8), ve k ise kullanılacak 1 sayısını ifade eder k = 1 için toplam farklı kod sayısı 8, k = 2 için 28 olur
Bileimlere atanan kodlar Genellikle tüm kodlarda kullanılan özellikler superimposed kod içerisinde ifade edilmezler. Böylece retrieval süresi azaltılmı olur Sonuç deerler bileiklerin kodlarının OR ilemiyle bulunur. Bir bileimin bileenlerini bulmak için bileen kodlarında 1 olan pozisyonlara bakılır (AND ilemi yapılır) Bir bileenin bulunduu bileim kodlarını bulmak içinde bileimde 1 olan pozisyonlara bakılır (AND ilemi yapılır) Örnek olarak Chocolate bulunduran bileimlere bakılırsa, Chocolate Toffee Bars, Glazed Pound Cake ve Peanut-Fudge Pudding Cake olduu görülür Orijinal kodlar ile Chocolate bulunduran bileimlere bakıldıında Glazed Pound Cake olmadıı görülür Superimposed coding sonucunda kullanılan bit sayısına ve kodlamaya balı olarak bilgi kaybı (false drop) olabilir. Ancak retriveal süresi azaltılır Tüm bileimler için atanan kodlar
Deerlendirme Superimposed coding yüzlerce bitlik bilgiyi daha kısa ekilde ifade eder Bilginin elde edilmesi için gereken süre kısaltılır Superimposed kodlar fazladan yer kaplar. False drop olanları bulmak için orijinal kodların saklanması gerekmektedir. False drop sayısı kullanılan bit sayısı artırılarak azaltılabilir. k deeri artırılarak false drop sayısı azaltılamaz aksine artar çünkü kod içerisindeki 1 sayısı artar Text Searching Naive text searching algoritması aranan string (pattern) ile aranılacak string (string) arasında batan sona kadar bir bir karılatırma yapar Worst case computational complexity O(mn) olur. m aranan ve n ise aranılacak string uzunluudur Örnekte toplam 50 karılatırma yapılmıtır
Text Searching Boyer-Moore daha gelimi bir arama algoritması gelitirmilerdir Arama ilemine batan deil sondan balanır Pattern sonundaki karakterle string içindeki karakter aynı deilse, string içindeki karakterin pattern içindeki (varsa) ensa pozisyonuna kadar pattern kaydırılır Pattern içindeki herhangi bir karakterle string içindeki karakterin karılatırmasında aynı karakter olmazsa kaydırma ilemi stringdeki karılatırılan karakter için yapılır Önceki örnekteki arama toplam 14 karılatırma yapılarak bulunur Text search ileminde tüm string üzerinde arama yapmak yerine, olma ihtimali olan kısım üzerinde arama yapmak, arama hızını artırır Text içindeki segmentler (satırlar veya paragraflar) için birer imza (signature) oluturulur Önce signature bilgisine göre aranan string in olup olmadıı belirlenir daha sonra dier algoritmalarla (Örn: Boyer-Moore) string üzerinde arama yapılır Record signature veya text signature bir blok metnin içeriinin kodlanmasıdır
k-adet gruplanmı yanyana sembolün hash fonksiyonuyla m boyutundaki signature içerisinde ilgili pozisyona aktarılmasıdır k deerinden daha küçük stringler aranamayacaı için k genellikle 2 olarak alınır Örnek bir kodlama Örnein hash kelimesinin signature deeri 10010100 olursa önceki tablodan sadece 3.satıra bakılmalıdır lgili signature deerinin uygun olması aranan string in olduunu göstermez lgili signature deerinin uygun olmaması aranan string in kesinlikle olmadıını gösterir Örnek k = 2, m = 64 bit ve 128 bit olarak alınsın. Kayıt boyutunun 80 byte olduu varsayılsın. Signature ileminden sonra kayıt boyutu 88 byte veya 96 byte olacaktır. Sembollerin kullanılma sıklıına göre gruplandırılması iki ekilde alınmıtır. Birisinde 8 grup dierinde 11 grup oluturulmutur. Her grup içindeki sembollerin kullanılma sıklıı toplamı birbirine eit veya yaklaık olacaktır. Bu örnekte ngiliz harfleri için Knuth tarafından önerilen deerler alınmıtır. Dier uygulamalarda seçilen metin içindeki kullanım sıklıkları alınabilir Grup sayısı (n) deeri, k=2 için n 2 <= m olacak ekilde seçilir. m signature length deeridir. m=64 için n deeri 8 seçilebilir ve m=128 için n deeri 11 seçilebilir
Örnek (Devam) y 1 ve y 2 sembol çifti için hash fonksiyonu 8 grup 11 grup Örnek (Devam) 64 bit signature için ve 128 bit signature için hash fonksiyonu Hash fonksiyonundan alınan deerin bulunduu pozisyona 1 deeri atanır computer kelimesi için 8 byte ve 16 byte signature deerleri h(co) = 8 * T(c) + T(o) = 8* 4 + 4 = 36 h(co) = 11 * T(c) + T(o) = 11* 8 + 4 = 92
Deerlendirme Signature uzunluuna göre text file ve program file üzerindeki aramaların performans deerleri aaıdaki ekilde görülmektedir Text file, program file üzerinde aramadan daha fazla satır aramayı gerektirmektedir 16 bit signature kullanılması durumunda arama yapılan satır sayısı önemli ölçüde dümektedir Bu aramada computer kelimesi için substring olduu kelimelerin satırlarınada bakılır (Örn: minicomputer) Substring eklinde arama yapılmaması için aranan string in baına ve sonuna delimiter (Örn:boluk) konulabilir Haftalık Ödev Seçeceiniz 320 kelimelik bir metin için her 80 karakter bilgiyi bir grup olarak alarak signature oluturunuz. Signature deerleri k = 2, n = 8 ve m = 64 için bulunacaktır. Harflerin kullanılma sıklıını ve grup sayısını gösteren tabloyu, kullandıınız metin için oluturunuz. Tabloda 8 gruba ait karakterleri belirleyiniz. C#.NET programlama diliyle bir arayüz hazırlayarak arama ilemini gerçekletiriniz.