Bölüm 5 · SimülasyonDizgi Benzerliği: Levenshtein Uzaklığı? ← Bölüm 5 Dizgi A Dizgi B Matrisi Kur Adım İlerle Otomatik Oynat SıfırlaHazır.Dinamik Programlama Tablosugeçerli hücresilme / ekleme / değiştirme kaynaklarıhesaplandıUzaklık —Benzerlik —İlerleme %0Adım AçıklamasıKapatDizgi Benzerliği: Levenshtein UzaklığıDinamik programlama matrisi adım adım doldurulur; ekleme, silme ve değiştirme maliyetlerinin düzenleme uzaklığını nasıl belirlediği görülür.Kullanımİki dizgi girin (her biri en çok 12 karakter) ve Matrisi Kur düğmesine basın.Adım İlerle bir hücreyi hesaplar, Otomatik Oynat tablonun kalanını doldurur, Sıfırla matrisi yeniden kurar.Sarı hücre hesaplanan hücredir; üç mavi hücre onun türetildiği değerlerdir.Yineleme bağıntısıD[i][j], A'nın ilk i karakteri ile B'nin ilk j karakteri arasındaki düzenleme uzaklığıdır. İlk satır ve ilk sütun boş dizgiden (ε) ya da boş dizgiye olan düzenleme uzaklığıdır: D[i][0] = i, D[0][j] = j.D[i][j] = min(D[i−1][j] + 1, D[i][j−1] + 1, D[i−1][j−1] + maliyet); burada A[i−1] = B[j−1] ise maliyet = 0, değilse 1'dir.Silme (yukarıdan): A[i−1] silinir.Ekleme (soldan): B[j−1] eklenir.Değiştirme / eşleşme (çaprazdan): karakter değiştirilir ya da korunur.Sağ alt hücre Levenshtein uzaklığıdır. Normalleştirilmiş benzerlik = (1 − uzaklık / max(|A|, |B|)) × %100.KarmaşıklıkO(|A|·|B|) zaman. Tablonun tamamı O(|A|·|B|) bellek ister; yalnız uzaklık gerekiyorsa iki satır tutmak bunu O(min(|A|, |B|))'ye indirir.