Dizi arama algoritması

Dizi eşleme algoritmaları olarak da adlandırılan dizi arama algoritmaları, bir ya da birkaç dizinin (örüntü) daha büyük bir dizi ya da metin içindeki yerinin bulunmasını konu edinen önemli bir dizi algoritması sınıfıdır.

Σ bir alfabe (sonlu küme) olmak üzere örüntü ve aranan metin Σ kümesinin elemanlarından oluşan bir zincir olarak tanımlanabilmektedir. Σ olağan bir alfabe (Türkçede yer alan harfler kümesi) olabileceği gibi ikili alfabe (Σ = {0,1}) ve DNA alfabesi (Σ = {A,C,G,T}) biçiminde de bulunabilmektedir.

Dizinin kodlanma biçimi dizi arama algoritmalarının başarımını etkilemektedir. Değişken uzunluklu kodlama yöntemi kullanıldığında n. karakteri bulmak güçleşmekte; bu, gelişmiş dizi algoritmalarını yavaşlatıcı bir etken olarak öne çıkmaktadır. Bu sorunun üstesinden gelmenin yolu belirli karakterler yerine kod dizilerini eşleştirmektedir ancak bu yöntem, kodlamanın yanlış sonuçların önüne geçecek biçimde tasarlanmadığı durumlarda pek güvenilir değildir.

Temel sınıflandırma

Algoritmalar kullandıkları örüntü sayısına göre sınıflandırılabilmektedirler.

Tek örüntülü algoritmalar

m örüntünün, n aranan metnin uzunluğu olsun.

Algoritma Önişlem süresi Eşleme süresi1
Saf dizi arama algoritması 0 Θ((n-m+1) m)
Rabin-Karp dizi arama algoritması Θ(m) ortalama: Θ(n+m)
en düşük: Θ((n-m+1) m)
Sonlu durum makinesi tabanlı arama Θ(m |Σ|) Θ(n)
Knuth-Morris-Pratt algoritması Θ(m) Θ(n)
Boyer–Moore dizi arama algoritması Θ(m + |Σ|) Ω(n/m), O(n)
Bitkin algoritma (Baeza-Yates-Gonnet) Θ(m + |Σ|) O(mn)

1Sonuşmaz süreler O, Ω, and Θ gösterimi biçiminde ifade edilmektedir.

Boyer–Moore dizi arama algoritması, ilgili yazında kullanılan başlıca algoritma olarak kabul edilmektedir.[1]

Sonlu örüntü kümesi kullanan algoritmalar

Sonsuz sayıda örüntü kullanan algoritmalar

Doğal olarak sayılamayan örüntüler genellikle düzenli dilbilgisi ya da düzenli ifadeler biçiminde gösterilmektedir.

İkincil sınıflandırma

En sık kullanılan sınıflandırma yöntemlerinden biri önişlemi ana ölçüt olarak kabul etmektedir.

Dizi arama algoritması sınıfları
Önişlem gerektirmeyen metin Önişlem gerektiren metin
Önişlem gerektirmeyen örüntüler Temel algoritmalar Dizin yöntemleri
Önişlem gerektiren algoritmalar Yapısal arama motorları İmza yöntemleri

Saf dizi arama

Bir dizinin başka bir dizi içinde yer alıp almadığını anlamanın en basit olmasına karşın en verimsiz yolu dizinin her karakterini sırayla eşleştirmeye çalışmaktır. Bu yöntemde aranan dizi metnin ilk karakteriyle karşılaştırılır. Bu karakterlerin birbiriyle uyuşmaması durumunda aynı işlem metnin ikinci karakteri için yinelenir. Olağan koşullarda karakterlerin eşleşmediğini anlamak için ortalama olarak O(n + m) adım gerekliyken (n metnin, m örüntünün uzunluğunu göstermektedir) en elverişsiz durumda ("aaaab" dizisini "aaaaaaaaab" içinde aramak gibi) gerekli ortalama adım sayısı O(nm)'ye eşittir.

Sonlu dizi makinesi tabanlı arama

"MOMMY" sözcüğünü fark edebilen bir DFA

Bu yöntemde geri dönüşler, istenen diziyi içeren örüntüleri fark edebilen bir gerekirci sonlu durum makinesi (DFA) oluşturularak ortadan kaldırılabilmektedir. Üstküme yapımı yöntemiyle tasarlanan bu gereçlerin tutarı yüksek olsa da kullanımları görece kolaydır. Bu yöntem gelişigüzel düzenli ifadelere ilişkin aramalarda sıklıkla kullanılmaktadır.

Kısa yöntemler

Knuth–Morris–Pratt, aranan diziyi sonek biçiminde algılayabilen bir DFA oluştururken Boyer–Moore aramaya örüntünün sonundan başlamakta, böylece her adımda örüntü uzunluğu ölçüsünde yol kat edebilmektedir. Baeza–Yates önceki j karakterin aranan dizinin bir öneki olup olmadığını takip edebildiğinden bulanık dizi aramayla bağdaştırılabilmektedir. Bitkin algoritma Baeza-Yates'in bir uygulamasıdır.

Dizin yöntemleri

Görece hızlı çalışan arama algoritmaları metnin önişlemden geçirilmesini gerektirmektedir. Sonek ağacı ya da sonek dizisi gibi altdizi dizinleri oluşturularak örüntü daha kolay biçimde bulunabilmektedir. Bir sonek ağacı sürede hazırlanabilmekte ve metin içinde yer alan sayıdaki örüntü sürede bulunabilmektedir (alfabe büyüklüğü sabit olmak koşuluyla).

Diğer yöntemler

Üçlük arama gibi bazı arama yöntemleri metin ve örüntüyü birebir eşlemek yerine bu iki dizi arasında bir "yakınlık" değeri hesaplamayı amaçlamaktadır. Bu tür yöntemler "bulanık" aramalar olarak da adlandırılmaktadır.

Notlar

  1. ^ Hume and Sunday (1991) Fast String Searching Software—Practice and Experience, Cilt 21(11), 1221–1248 (Kasım 1991)

Kaynakça

Dış bağlantılar

Read other articles:

BanyutowoDesaNegara IndonesiaProvinsiJawa TengahKabupatenPatiKecamatanDukuhsetiKode pos59158Kode Kemendagri33.18.20.2007 Luas... km²Jumlah penduduk... jiwaKepadatan... jiwa/km² Banyutowo adalah sebuah desa di kecamatan Dukuhseti, Pati, Jawa Tengah, Indonesia.[1] Banyutowo adalah desa pesisir dan memiliki sebuah dermaga yang merupakan tempat transit bagi kapal-kapal nelayan setempat maupun kapal dari daerah lain. Selain itu, dermaga di Banyutowo merupakan tempat rekreasi pendudu...

 

School district in Hudson County, New Jersey, US For other uses, see Union City School District. Union City School DistrictThe Union City Board of Education buildingAddress3912 Bergen Turnpike Union City, Hudson County, New Jersey, 07087United StatesCoordinates40°46′42″N 74°01′53″W / 40.778268°N 74.031458°W / 40.778268; -74.031458District informationGradesPreK-12SuperintendentSilvia AbbatoBusiness administratorAnthony N. Dragona (Business Administrator)Just...

 

العلاقات الأوزبكستانية التونسية أوزبكستان تونس   أوزبكستان   تونس تعديل مصدري - تعديل   العلاقات الأوزبكستانية التونسية هي العلاقات الثنائية التي تجمع بين أوزبكستان وتونس.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وج�...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Moussa Niakhaté Niakhaté with Mainz 05 in 2018Informasi pribadiNama lengkap Moussa Niakhaté [1]Tanggal lahir 08 Maret 1996 (umur 28)Tempat lahir Roubaix, PrancisTinggi 1,90 m (6 ft 3 in)[2]Posisi bermain Centre-ba...

 

Синелобый амазон Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт�...

 

Asam tanat, salah satu jenis tanin Bubuk tanin (campuran pelbagai senyawa) Air gambut berwarna cokelat kehitaman karena banyak mengandung tanin Sebotol larutan asam tanat Tanin (atau tanin nabati, sebagai lawan tanin sintetik) adalah suatu senyawa polifenol yang berasal dari tumbuhan, berasa pahit dan kelat, yang bereaksi dengan dan menggumpalkan protein, atau berbagai senyawa organik lainnya termasuk asam amino dan alkaloid. Tanin dapat ditemukan dalam makanan dan minuman tertentu, seperti:t...

This article is about the urban area. For its central suburb, see Caloundra (suburb). For other uses, see Caloundra (disambiguation). Town in Queensland, AustraliaCaloundraSunshine Coast, QueenslandKing's BeachCaloundraCoordinates26°48′17″S 153°08′02″E / 26.8047°S 153.1338°E / -26.8047; 153.1338 (Caloundra (town centre))Postcode(s)4551Area3.2 km2 (1.2 sq mi)Time zoneAEST (UTC+10:00)LGA(s)Sunshine Coast RegionState electorate(s) C...

 

У этого термина существуют и другие значения, см. Сеть. Китайская рыболовная сеть «паук» вблизи города Коччи (Индия) Лицензионный лов кеты сплавной сетью. На горизонте — Хабаровск У берега стоит сеть, на поверхности воды видны поплавки Рыболовная сеть — плетёное из ...

 

Ariella CalistaLahirAriella Calista12 Mei 2000 (umur 23)Jakarta, IndonesiaPendidikanSMP Kristen Ketapang 1, SMA Kristen Ketapang 1AlmamaterUniversitas Atma Jaya JakartaPekerjaanModelPenyanyiAktrisPenariSuami/istriWelly Surya ​(m. 2023)​KerabatEve Antoinette Ichwan (adik)Karier musikGenrePopInstrumenVokal, biolaTahun aktif2008–sekarangArtis terkaitJKT48Mantan anggotaJKT48 (2018–2022)Situs webJKT48 Ariella Calista Ichwan (lahir 12 Mei 2000) adalah salah se...

Municipal unit in Berat, AlbaniaZhepëMunicipal unitZhepëCoordinates: 40°41′N 20°17′E / 40.683°N 20.283°E / 40.683; 20.283Country AlbaniaCountyBeratMunicipalitySkraparPopulation (2011) • Municipal unit779Time zoneUTC+1 (CET) • Summer (DST)UTC+2 (CEST) Zhepë is a village and a former municipality in Berat County, central Albania. At the 2015 local government reform it became a subdivision of the municipality Skrapar.[1]...

 

Montigny-sur-Veslecomune Montigny-sur-Vesle – VedutaMunicipio. LocalizzazioneStato Francia RegioneGrand Est Dipartimento Marna ArrondissementReims CantoneFismes-Montagne de Reims TerritorioCoordinate49°19′N 3°48′E / 49.316667°N 3.8°E49.316667; 3.8 (Montigny-sur-Vesle)Coordinate: 49°19′N 3°48′E / 49.316667°N 3.8°E49.316667; 3.8 (Montigny-sur-Vesle) Superficie9,42 km² Abitanti477[1] (2009) Densità50,64 ab./km² Altre...

 

Badminton tournament The Hyderabad Open is an annual badminton tournament held in India. This tournament is a part of the BWF World Tour tournaments and is leveled in BWF Tour Super 100. Venue and host city 2018–2019: G. M. C. Balayogi SATS Indoor Stadium, Hyderabad, Telangana Past winners Year Men's singles Women's singles Men's doubles Women's doubles Mixed doubles 2018 Sameer Verma Kim Ga-eun Satwiksairaj Rankireddy Chirag Shetty Ng Tsz Yau Yuen Sin Ying Akbar Bintang Cahyono Winny Okta...

56°N 10°E / 56°N 10°E / 56; 10 المركز الثقافي الأسلامي في كوبنهاغن، الدنمارك The Islamic Cultural Center in Copenhagen, Denmark إحداثيات 55°42′40″N 12°30′53″E / 55.711234°N 12.51472°E / 55.711234; 12.51472   معلومات عامة القرية أو المدينة كوبنهاغن الدولة  الدنمارك المواصفات عدد المآذن مئذنة واحدة �...

 

2019 South Korean television series Save Me 2Promotional posterAlso known asSave Me II[1]Hangul구해줘 2 GenreThrillerMysteryCreated byStudio DragonWritten bySeo Joo-yeonDirected byLee KwonStarringUhm Tae-gooChun Ho-jinEsomKim Young-minCountry of originSouth KoreaOriginal languageKoreanNo. of episodes16ProductionProducerLee Jae-moonCamera setupSingle-cameraRunning time60 minutesProduction companyHidden SequenceOriginal releaseNetworkOCNReleaseMay 8 (2019-05-08) –June 27,...

 

Cusagocomune Cusago – VedutaPanorama dell'abitato di Cusago LocalizzazioneStato Italia Regione Lombardia Città metropolitana Milano AmministrazioneSindacoGiovanni Luciano Triulzi (lista civica La nostra Cusago) dal 27-5-2019 TerritorioCoordinate45°27′N 9°02′E45°27′N, 9°02′E (Cusago) Altitudine126 m s.l.m. Superficie11,46 km² Abitanti4 601[1] (31-5-2023) Densità401,48 ab./km² FrazioniCusago di Sotto, Monzoro Comuni confin...

The Right HonourableSir Julius ChanGCL GCMG KBEChan in 2021 Perdana Menteri Papua Nugini ke-2Masa jabatan2 Juni 1997 – 22 Juli 1997Penguasa monarkiElizabeth IIPendahuluJohn GihenoPenggantiBill SkateMasa jabatan30 Agustus 1994 – 27 Maret 1997Penguasa monarkiElizabeth IIPendahuluPaias WingtiPenggantiJohn GihenoMasa jabatan11 Maret 1980 – 2 Agustus 1982Penguasa monarkiElizabeth IIPendahuluMichael SomarePenggantiMichael SomareGubernur New IrelandPetahanaMu...

 

Map of the fortifications of the Grand Harbour and Marsamxett in 1803. This is a list of fortifications of Malta.[1] Prehistoric fortifications Name Image Location Built Status Baħrija Rabat Bronze Age Scant remains[2] Borġ in-Nadur Birżebbuġa c.1450 BC One bastion intact[3] Nuffara Xagħra Bronze Age Scant remains[2] Qortin St. Paul's Bay Bronze Age Scant remains[2] Ras il-Ġebel Mġarr Bronze Age Scant remains[3] Wardija ta' San Ġorġ Si...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) الكفاح المسلح هي حركة عنف جماهيري موجهة ضد التواجد الاستعماري على أرض معينة يدعو لمواجهة الاحتلال أو الا...

Voce principale: Fussballclub Wohlen 1904. Fussballclub Wohlen 1904Stagione 2021-2022Sport calcio Allenatore Ryszard Komornicki Prima Lega1º posto StadioStadion Niedermatten Maggior numero di spettatori750 vs. Lucerna II Minor numero di spettatori220 vs. Zugo Media spettatori467 2020-2021 2022-2023 Si invita a seguire il modello di voce Questa voce raccoglie le informazioni riguardanti il Fussballclub Wohlen 1904 nelle competizioni ufficiali della stagione 2021-2022. Indice 1 Stagione 2 Ros...

 

Dutch book from 1668 For other uses, see Description of Africa (disambiguation). A view of Dutch warships off the port city of Luanda (modern-day Angola) from the Description of Africa Description of Africa (in the original archaic Dutch Naukeurige Beschrijvinge der Afrikaensche Gewesten, or Accurate Descriptions of the African Regions)[a] is a Dutch ethnographic book published in 1668 describing Africa. The work consists of detailed description of the parts of Africa known to Europea...