• Sonuç bulunamadı

Dizgi eşleme algoritmaları, üzerinde çalışmış olduğu alfabe türüne göre farklı performans değerleri gösterebilmektedirler. 4. Bölüm sonuçlarından da görüldüğü üzere her algoritmanın farklı alfabe ve dizgi uzunlukları üzerinde birbirlerinden farklı performans sonuçları verdiği saptanmıştır. Dizgi eşleme algoritmalarının başarısı arama süresinin performansına göre belirlenmektedir. Karşılaştırma sayısı başarı belirlemede garanti bir kıstas değildir. Bu durum özellikle otomat türü algoritmalar üzerinde daha açıktır. Bazı algoritmaların karşılaştırma sayısı çok düşük olmasına rağmen, karşılaştırma sayısı daha çok olan algoritmalara göre yavaş çalışabilmektedir. Fakat genelleme yapılacak olursa karşılaştırma sayısının arama süresi ile doğru orantılı olduğu söylenebilir.

Tam dizgi eşlemede tüm dizgi uzunlukları için DNA alfabesi üzerinde arama işlemi yapılacaksa yaklaşık dizgi eşlemeye de uyum sağlayan ve ortalamada en iyi değere sahip olan Shift Or algoritmasının seçilmesi en ideal seçim olacaktır. Eğer dizgi uzunluğu ayrımı yapılacaksa bu alfabe için kısa dizgide Reverse Colusssi, orta uzunluklu ve uzun dizgi için Apostolico-Crochemore algoritmasının seçilmesi doğru tercih olacaktır. Apostolico-Crochemore kısa alfabe ve uzun dizgi için en iyi arama performansına sahip bir algoritmadır. Alfabe uzunluğu arttıkça Shift Or algoritmasında performans artışı görülse de diğer algoritmaların hızlı performans artışı bu algoritmayı gerilere bırakmıştır. Rakam alfabesi üzerinde ortalamada en iyi algoritma Berry- Ravindran olarak saptanmıştır. DNA alfabesinde ortalamada ikinci en iyi performansa sahip Skip Search algoritması bu alfabede de yerini korumuştur. Yine dizgi uzunluğu ayrımında kısa dizgi için Tuned Boyer-Moore, orta uzunluklu ve uzun dizgiler için Berry-Ravindran algoritmaları en iyi seçim olacaktır.

Doğal dil alfabesi, rakam ve DNA alfabelerinden daha uzun bir alfabe olup, bazı dillerde karakter sayısı 150’lere ulaşmaktadır. Bu alfabe üzerinde dizgi eşleme algoritmalarından Boyer-Moore türevi olanlar en iyi performansı sağlamışlardır. Bunun dışında genelleme yapılacak olursa algoritmaların büyük bir kısmı diğer alfabelere göre daha etkin performans sergilemişlerdir. Ortalamada en iyi performans değeri Tuned Boyer Moore algoritmasına ait iken, dizgi olarak ele alındığında kısa dizgide en iyi

performans değerine yine Tuned Boyer Moore algoritması sahipken, orta uzunluklu ve uzun dizgide yerini Zhu-Takaoka algoritmasına bırakmıştır. Yani kısa dizgi ve doğal dil alfabesi kullanılıyorsa, dizgi eşleme için en ideal algoritma Tuned Boyer Moore algoritması iken, orta uzunluklu ve uzun dizgi için en ideal algoritma Zhu-Takaoka algoritmasıdır. Diğer alfabelerde en iyi performans gösteren Shift Or ve Skip Search algoritmaları, bu alfabede performanslarını arttırmış olsa da, diğer algoritmaların başarısı sebebiyle gerilere düşmüşlerdir.

Yaklaşık dizgi eşleme algoritmalarından Wu-Manber algoritması, Shift Or algoritmasından yaklaşık 5 kat daha kötü performans sergilemiştir. Yaklaşık dizgi eşleme gerektiren çalışmalarda Shift Or algoritmasının kullanılması doğru bir tercih olacaktır. Yaklaşık dizgi eşleme algoritmalarının kullanmış olduğu yaklaşıklık değeri, aranacak olan dizginin ne kadar benzer olacağını belirlemekte olup, bu değerin artması algoritmaların performansını büyük oranda düşürmektedir. Buda yaklaşık dizgi eşlemenin bir dezavantajı olarak görülmektedir.

Doğal diller üzerine yapılan denemeler sonucunda, dizgi eşleme algoritmalarının farklı doğal diller üzerinde farklı performans değerleri elde edilmiştir. Aynı algoritma farklı doğal diller üzerinde test edildiğinde, alfabe uzunluklarının aynı olmasına rağmen farklı performans değerleri saptanmıştır. Bu durum, doğal dillerin dil yapı farklılığının dizgi eşleme üzerindeki etkisini ortaya koymaktadır. Elde edilen sonuçlar dizgi eşleme üzerinde Türkçe dilinin diğer dillerden daha sade ve işlenebilir bir dil olduğunu göstermiştir. Ayrıca farklı alfabe uzunluğundaki diller üzerinde yapılan bu çalışma, doğal diller üzerinde dizgi eşlemede dilin yapısal farklılığının alfabe uzunluğundan daha etkileyici bir etmen olduğunu ispatlamıştır.

Tez çalışmasının bir parçası olarak geliştirilen Grup Frekansı (GF) algoritması, doğal dil alfabesi üzerinde çalışan bir algoritma olup, bahsedilen bölümde (Bölüm 6) elde edilen sonuçlara göre ortalamada her türlü dizgi uzunluğunda en hızlı algoritma olarak karşımıza çıkmıştır. Yine frekansa dayalı Optimal Mismatch (OM) algoritması ve aynı kaydırma mantığını kullanan Berry Ravindran algoritması GF algoritmasının oldukça gerisinde kalmıştır. Algoritmanın başarılı olmasının en büyük nedeni, kullanmış olduğu frekans mantığı sebebiyle karşılaştırma esnasında geri dönüşleri olabildiğince en aza indirmesidir. OM algoritmasına göre hızı dışında sahip olmuş

olduğu avantajı kısmen dil bağımsız olmasıdır. Yani OM algoritması gibi her dil için ayrı frekans dizisine ihtiyacı yoktur. Belirlemiş olduğu grup frekans düzeni üzerinde çalışılan 8 farklı dil içinde etkin sonuçlar vermiştir. Sadece uzun dizgide birkaç dil üzerinde Zhu-Takaoka algoritmasının gerisinde kalmıştır. Diğer algoritmalara göre ise tek dezavantajı sadece doğal diller üzerinde çalışabilmesidir. Kısmen dil bağımsız özelliği, diğer tüm dünya dillerine ait karakter gruplarının tespit edilerek algoritmanın yeniden uyarlanması ile tamamen dil bağımsız haline dönüştürülebilir.

KAYNAKLAR

1. Crochemore M. ve Rytter W., 2002, “Jewels of Stringology”, World Scientific, Singapore.

2. Crochemore M. ve Lecroq T., 1997, “Pattern Matching and Text Compression Algorithms”, The Computer Science and Engineering Handbook.

3. Charras C. ve Lecroq T., 2004, “Handbook of Exact String-Matching Algorithms”, King’s College Publications.

4. Carus A., Ersin A.K., Mesut A., 2007, “Dizgi Eşleme Algoritmalarının Alfabeye Bağlı Etkinliklerinin Araştırılması”, 12. Elektrik, Elektronik, Bilgisayar, Biyomedikal Mühendisliği Ulusal Kongresi, Eskişehir.

5. Ersin A.K., Carus A., Mesut A., 2007, “The Efficiency of String-Matching Algorithms on Natural Languages”, International Scientific Conference, Gabrovo.

6. Krone J., Ogden W. F., 2003, “Abstract OO Big O”, Proceedings of ESECFMW, Helsinki.

7. Rytter W., 2002, “On Maximal Suffixes and Constant-Space Linear-Time Versions of KMP Algorithm”, LATIN 196-208.

8. Crochemore M., Hancart C., 1997, “Automata for Matching Patterns, in Handbook of Formal Languages, Volume 2, Linear Modeling: Background and Application”, G. Rozenberg and A. Salomaa ed., Chapter 9, pp 399-462, Springer-Verlag, Berlin.

9. Karp R.M., Rabin M.O., 1987, “Efficient randomized pattern-matching algorithms”, IBM J. Res. Dev. 31(2):249-260.

10. Baeza-Yates, R.A., Gonnet, G.H., 1992, “A new approach to text searching”, Communications of the ACM . 35(10):74-82.

11. Morris (Jr) J.H., Pratt V.R., 1970, “A linear pattern-matching algorithm”, Technical Report 40, University of California, Berkeley.

12. Knuth D.E., Morris (Jr) J.H., Pratt V.R., 1977, “Fast pattern matching in strings”, SIAM Journal on Computing 6(1):323-350.

13. Crochemore, M., Rytter, W., 1994, “Text Algorithms”, Oxford University Press. 14. Simon I., 1993, “String matching algorithms and automata”, in Proceedings of

1st American Workshop on String Processing, R.A. Baeza-Yates and N. Ziviani ed., pp 151-157, Universidade Federal de Minas Gerais, Brazil.

15. Colussi L., 1991, “Correctness and efficiency of the pattern matching algorithms”, Information and Computation 95(2):225-251.

16. Galil Z., Giancarlo R., 1992, “On the exact complexity of string matching: upper bounds”, SIAM Journal on Computing, 21(3):407-437.

17. Apostolico A., Crochemore M., 1991, “Optimal canonization of all substrings of a string”, Information and Computation 95(1):76-95.

18. Hancart C., 1992, “Une analyse en moyenne de l'algorithme de Morris et Pratt et de ses raffinements”, in Théorie des Automates et Applications, Actes des 2e

Journées Franco-Belges, D. Krob ed., Rouen, France, 1991, PUR 176, Rouen, France, 99-110.

19. Boyer R.S., Moore J.S., 1977, “A fast string searching algorithm”, Communications of the ACM. 20:762-772.

20. Stomp F.A., 2003 “Correctness of substring-preprocessing in Boyer-Moore's pattern matching algorithm”, Theor. Comput. Sci. (TCS) 290(1):59-78.

21. Crochemore M., Czumaj A., Gasieniec L., Jarominek S., Lecroq T., Plandowski W., Rytter W., 1992, “Deux méthodes pour accélérer l'algorithme de Boyer- Moore”, in Théorie des Automates et Applications, Actes des 2e

Journées Franco-Belges, D. Krob ed., Rouen, France, 1991, pp 45-63, PUR 176, Rouen, France.

22. Apostolico A., Giancarlo R., 1986, “The Boyer-Moore-Galil string searching strategies revisited”, SIAM Journal on Computing 15(1):98-105.

23. Colussi L., 1994, “Fastest pattern matching in strings”, Journal of Algorithms. 16(2):163-189.

24. Horspool R.N., 1980, “Practical fast searching in strings”, Software - Practice & Experience, 10(6):501-506.

25. Sunday D.M., 1990, “A very fast substring search algorithm”, Communications of the ACM . 33(8):132-142.

26. Hume A., Sunday D.M. , 1991, “Fast string searching”, Software - Practice & Experience 21(11):1221-1248.

27. Zhu R.F., Takaoka T., 1987, “On improving the average case of the Boyer- Moore string matching algorithm”, Journal of Information Processing 10(3):173- 177.

28. Berry T., Ravindran S., 1999, “A fast string matching algorithm and experimental results”, in Proceedings of the Prague Stringology Club Workshop`99, J. Holub and M. Simánek ed., Collaborative Report DC-99-05, Czech Technical University, Prague, Czech Republic, pp 16-26.

29. Smith P.D., 1991, “Experiments with a very fast substring search algorithm”, Software - Practice & Experience 21(10):1065-1074.

30. Raita T., 1992, “Tuning the Boyer-Moore-Horspool string searching algorithm”, Software - Practice & Experience, 22(10):879-884.

31. Lecroq T., 1992, “A variation on the Boyer-Moore algorithm”, Theoretical Computer Science 92(1):119--144.

32. Crochemore M., 1997, “Off-line serial exact string searching”, in Pattern Matching Algorithms, ed. A. Apostolico and Z. Galil, Chapter 1, pp 1-53, Oxford University Press.

33. Allauzen C., Crochemore M., Raffinot M., 1999, “Factor oracle: a new structure for pattern matching”, in Proceedings of SOFSEM'99, Theory and Practice of Informatics, J. Pavelka, G. Tel and M. Bartosek ed., Milovy, Czech Republic, Lecture Notes in Computer Science 1725, pp 291-306, Springer-Verlag, Berlin. 34. Galil Z., Seiferas J., 1983, “Time-space optimal string matching”, Journal of

Computer and System Science 26(3):280-294.

35. Crochemore M., Perrin D., 1991, “Two-way string-matching”, Journal of the ACM 38(3):651-675.

36. Breslauer D., 1996, “Saving comparisons in the Crochemore-Perrin string matching algorithm”, Theoretical Computer Science 158(1-2):177-192.

37. Crochemore M., 1992, “String-matching on ordered alphabets”, Theoretical Computer Science 92(1):33-47.

38. Sunday D.M., 1990, “A very fast substring search algorithm”, Communications of the ACM . 33(8):132-142.

39. Charras C., Lecroq T., Pehoushek J.D., 1998, “A very fast string matching algorithm for small alphabets and long patterns”, in Proceedings of the 9th Annual Symposium on Combinatorial Pattern Matching , M. Farach-Colton ed., Piscataway, New Jersey, Lecture Notes in Computer Science 1448, pp 55-64, Springer-Verlag, Berlin.

40. Dawson J., 1974, “Suffix removal and word conflation”, ALLC Bulletin, Volume 2, No. 3., 33-46.

41. Krovetz R., 1993, “Viewing morphology as an inference process”, Proceedings of the 16th annual international ACM SIGIR conference on Research and development in information retrieval., 191-202.

42. Paice C. D., 1990, “Another stemmer”, ACM SIGIR Forum, Volume 24, No. 3., 56-61.

43. Porter M.F., 1980, “An algorithm for suffix stripping”, Program. 14, 130-137. 44. Porter M.F., 1980, “The Lovins stemming algorithm”.

45. Donna H., 1991, “How effective is suffixing?”, Journal of the American Society for Information Science. 42, 7-15.

46. Needleman S., Wunsch C., 1970, “A general method applicable to the search for similarities in the amino acid sequence of two proteins”, J Mol Biol. 48(3):443- 53.

47. Smith T.F, Waterman M.S, 1981, "Identification of Common Molecular Subsequences”, Journal of Molecular Biology 147: 195-197.

48. Watson B.W., 1996, “A New Regular Grammar Pattern Matching Algorithm”, ESA 364-377.

49. Watson B.W, Watson R.E., 2003, “A Boyer-Moore-style algorithm for regular expression pattern matching”, Sci. Comput. Program. (SCP) 48(2-3):99-117.

50. Allauzen C., Raffinot M., 2000 ,“Simple Optimal String Matching Algorithm”, J. Algorithms (JAL) 36(1):102-116.

51. Breslauer D.,, Colussi L., Toniolo L., 1998, “On the Comparison Complexity of the String Prefix-Matching Problem”, J. Algorithms (JAL) 29(1):18-67.

52. Ehtesham Rafiq A. N. M., Watheq El-Kharashi M., Gebali F., 2004, “A fast string search algorithm for deep packet classification”, Computer Communications (COMCOM) 27(15):1524-1538.

53. Navrro G., Raffinot M., 1998, “A Bit-Parallel Approach to Suffix Automata: Fast Extended String Matching”, In Proceedings of the 9th Annual Symposium on Combinatorial Pattern Matching, Lecture Notes in Computer Science 1448, Springer-Verlag, Berlin, 14-31.

54. Wang L, Jiang T., 1994, “On the complexity of multiple sequence alignment”, J Comput Biol 1:337-348.

55. Just W., 2001, “Computational complexity of multiple sequence alignment with SP-score”, J Comput Biol 8(6):615-23.

56. Notredame C., 2002, "Recent progresses in multiple sequence alignment: a survey", Pharmacogenomics 31 (1): 131 -- 144.

57. Lovins J. B., 1968, "Development of a Stemming Algorithm", Mechanical Translation and Computational Linguistics, 11.

58. Schneider T.D., Stephens R.M., 1990, "Sequence logos: a new way to display consensus sequences", Nucleic Acids Res 18: 6097-6100.

59. Dasarathy B.V, 1991, “Nearest Neighbor (NN) Norms: NN Pattern Classification Techniques”.

60. Wu S., Manber U., 1992, “Fast text searching allowing errors”, Commun. ACM. 35(10):83-91.

61. Amir A., Lewenstein M., Lewenstein N., 2000, “Pattern Matching In Hypertext.”

62. Lemström K., Hella L., 2003, “Approximate pattern matching and transitive closure logics”, Theor. Comput. Sci. (TCS) 1-3(299):387-412.

63. Kolpakov R.M., Kucherov G., 2003, “Finding approximate repetitions under Hamming distance”, Theor. Comput. Sci. (TCS) 1(303):135-156.

64. Lecroq T., 1995, “Experimental Results on String Matching Algorithms”, Softw., Pract. Exper. (SPE) 25(7):727-765.

65. Lecroq T., 2007, “Fast exact string matching algorithms”, Inf. Process. Lett. (IPL) 102(6):229-235.

66. Say B., Zeyrek D., Oflazer K., Özge U., 2002, “Development of a Corpus and a Treebank for Present-day Written Turkish”, Proceedings of the Eleventh International Conference of Turkish Linguistics, 183-192.

ÖZGEÇMĠġ

1984’te Trabzon’da dünyaya gelen Abdul Kadir Ersin, yine aynı sene içerisinde ailesi ile birlikte İstanbul’a yerleşti. 2002’de Bahçelievler Anadolu Lisesi’nden mezun olduktan sonra yine 2002’de Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü’nde lisans eğitimine başladı. 2006’da mezun olduktan sonra yine aynı üniversite ve bölümde yüksek lisans eğitimine başladı. Halen yüksek lisans eğitimi devam etmektedir. Ayrıca iki senelik evli ve bir çocuk babasıdır.

EKLER

EK-A

Dizgi EĢleme Algoritmalarının Alfabeye Bağlı Deneme Sonuç Grafikleri

Grafik 1: DNA Alfabesi –Dizgi Uzunluğu: 10 karakter –Süre: saniye (sn)

Grafik 3: DNA Alfabesi –Dizgi Uzunluğu: 200 karakter –Süre: saniye (sn)

Grafik 5: RAKAM Alfabesi –Dizgi Uzunluğu: 100 karakter –Süre: saniye (sn)

Grafik 7: Doğal Dil Alfabesi –Dizgi Uzunluğu: 10 karakter –Süre: saniye (sn)

Grafik 9: Doğal Dil Alfabesi –Dizgi Uzunluğu: 200 karakter –Süre: saniye (sn)

EK-B

Dizgi EĢleme Algoritmalarının Doğal Diller Üzerindeki Deneme Sonuç Grafikleri

Grafik 11: 120 Karakterli Doğal Diller–Dizgi Uzunluğu: 100 karakter –Süre: saniye (sn)

Grafik 13: 140 Karakterli Doğal Diller–Dizgi Uzunluğu: 10 karakter –Süre: saniye (sn)

Grafik 15: 140 Karakterli Doğal Diller–Dizgi Uzunluğu: 200 karakter –Süre: saniye (sn)

EK-C

Grup Frekansı Algoritması ve Performans Grafikleri

Grafik 17: Grup Frekansı–Dizgi Uzunluğu: 100 karakter –Süre: saniye (sn)

EK-D

Dizgi EĢleme Algoritmalarının KarĢılaĢtırma Sayısı Üzerinden Değerlendirme Çizelgesi

Çizelge EK-D1: DNA alfabesi üzerinde karşılaştırma sayısı değerleri

Algoritmalar 10 100 200 Karp-Rabin 2962230 28974573 57208778 Reverse Colussi 7534967 29132813 56941913 KMP Skip Search 7879537 29207717 30531916 Skip Search 8086376 8071709 8068880 Tuned Boyer-Moore 8379436 34493426 62893054 Turbo Reverse Factor 8900105 28987234 30576356

Zhu-Takaoka 9948820 30167223 57817132

Reverse Factor 10305938 55956656 57447677 Alpha Skip Search 11042820 37038457 65268870

Two Way 11250206 31213499 36918302 Simon 11250206 31213499 36918302 Morris-Pratt 11516267 46536314 57434608 Backward Oracle 11516269 46536472 57434982 Colussi 12156540 29544206 30619933 Galil-Giancarlo 12171055 29581869 30619933 Berry-Ravindran 12742191 33988138 63215765 Apostolico-Giancarlo 14489010 29668469 30672419 Turbo Boyer-Moore 14692362 29992766 30946347 Boyer-Moore 15238333 30483621 57824825 Galil-Seiferas 15296448 30065564 31075889 Smith 16844328 42719532 72348215 Apostolico Crochemore 18389016 1845019 707713 Horspool 18860472 45215345 73580105 Raita 18950529 44179204 72842210 Quick Search 20113057 46863346 75692438 Shift Or 30792556 30792556 30792556 Brute Force 30792556 30792556 30792556

String Matching On Ord.Alp 30792556 30792556 30792556 Research With Automaton 30792556 30792556 30792556

Forward Dawg 30792556 30792556 30792556

Knuth-Morris Pratt 36971821 31216856 30843296

Çizelge EK-D2: RAKAM alfabesi üzerinde karşılaştırma sayısı değerleri

Algoritmalar 10 100 200

Karp-Rabin 1298387 12829202 25656797

Tuned Boyer-Moore 2400485 13533615 26334320 KMP Skip Search 2611654 13222758 25803382 Turbo Reverse Factor 4140228 13075853 25657403

Skip Search 4741572 4111204 4750508 Morris-Pratt 4827908 19604585 41919133 Backward Oracle 4827909 19604648 41919397 Reverse Factor 4836885 20728335 46167153 Reverse Colussi 5039612 13293644 25820975 Zhu-Takaoka 5430926 13500494 26064461 Alpha Skip Search 5491359 17680721 30690711 Berry-Ravindran 5633644 13739036 26384880 Colussi 5641341 1529938 26403717 Galil-Giancarlo 5646473 15319865 26406282 Galil-Seiferas 5955673 15797237 26656853 Two Way 6069863 15938277 27069553 Simon 6069863 15938277 27069553 Smith 6407287 15546675 28513001 Apostolico-Giancarlo 7174520 14637281 26262180 Turbo Boyer-Moore 7309234 14891304 26462330 Boyer-Moore 7338743 14955450 26520063 Quick Search 7855788 16902787 29718971 Horspool 7878884 16874500 29604576 Raita 7990504 16986113 29722595 Apostolico Crochemore 24745183 15315417 4536702 Shift Or 30792556 30792556 30792556 Brute Force 30792556 30792556 30792556 String Matching On Ord.Alp 30792556 30792556 30792556 Research With Automaton 30792556 30792556 30792556 Forward Dawg 30792556 30792556 30792556 Not So Naive 31995404 43942181 57771496 Knuth-Morris Pratt 34163685 32911531 31404153

Çizelge EK-D3: Doğal dil alfabesi üzerinde karşılaştırma sayısı değerleri

Algoritmalar 10 100 200

Karp-Rabin 864 121 250

Tuned Boyer-Moore 293714 73929 62542

KMP Skip Search 407323 123749 118277

Turbo Reverse Factor 1402788 414667 254494

Reverse Factor 1403121 414726 254618 Backward Oracle 1405954 422995 261758 Colussi 1600293 1727604 1685223 Galil-Giancarlo 1600303 1727604 1685223 Two Way 1669931 2729048 2221734 Skip Search 1708984 1724734 1743228

Alpha Skip Search 1709519 1721412 1734974 String Matching On Ord.Alp 2374114 1778219 1847410

Galil Seiferas 2377059 1781593 1851821 Berry-Ravindran 3250026 440613 19965 Zhu-Takaoka 3399401 413043 245017 Reverse Colussi 3509816 525739 298044 Smith 3539760 727445 549318 Quick Search 4089897 1139832 891008 Turbo Boyer-Moore 4136382 1086352 837985 Boyer-Moore 4136513 1086384 837954 Raita 4171642 1149468 906471 Horspool 4172601 1149926 906832 Apostolico-Crochemore 29105278 28757960 28772964 Shift Or 30792240 30792240 30792240 Brute Force 30792240 30792240 30792240 Simon 30792240 30792240 30792240

Research With Automaton 30792240 30792240 30792240

Forward Dawg 30792240 30792240 30792240

Not So Naive 30827743 30925640 30792583

Knuth-Morris Pratt 32970717 32375827 32415327

Morris-Pratt 32976414 32378897 32434239

Benzer Belgeler