Ov - Szimanski algoritmi - Hunt–Szymanski algorithm

Yilda Kompyuter fanlari, Ov - Szimanski algoritmi,[1][2] shuningdek, nomi bilan tanilgan Hunt - McIlroy algoritmi, ning echimi eng uzoq tarqalgan keyingi muammo. Bu ishlatilgan birinchi evristik bo'lmagan algoritmlardan biri edi farq. Bugungi kunga kelib, ushbu algoritmning o'zgarishlari bosqichma-bosqich topilgan versiyani boshqarish tizimlari, wiki dvigatellari va molekulyar filogenetik tadqiqot dasturi.

Ushbu algoritm uchun eng yomon murakkablik O(n2 jurnal n), lekin amalda O(n jurnal n) kutilmoqda.[3][4]

Tarix

Algoritmni Garold S. Stoun Tomas G. Symanskiy tomonidan hal qilingan maxsus ishni umumlashtirish sifatida taklif qilgan.[5][6][7] Jeyms V. Xant g'oyani takomillashtirdi, nomzodlar ro'yxati algoritmining birinchi versiyasini amalga oshirdi farq va uni eski ramkaga joylashtirdi Duglas Makilroy.[5]

Algoritmning tavsifi 1976 yilda Xant va Makilroyning texnik hisoboti sifatida paydo bo'ldi.[5] Keyingi yil algoritmning bir varianti Xant va Szimanski tomonidan qo'shma maqolada nashr etildi.[5][8]

Algoritm

Hunt-Symanski algoritmi - bu murakkablikka ega bo'lgan eng uzun tarqalgan ketma-ketlik muammosining asosiy echimini o'zgartirish. O(n2). Eritma o'zgartirilgan, chunki algoritm odatdagi yozuvlar bilan ishlashda unga vaqt va makon talablari past bo'ladi.

Asosiy eng uzun umumiy keyingi echim

Algoritm

Ruxsat bering Amen bo'lishi menbirinchi faylning satri.

Ruxsat bering Bj bo'lishi jikkinchi faylning satri.

Ruxsat bering Pij birinchisi uchun eng uzun umumiy ketma-ketlikning uzunligi men birinchi faylning satrlari va birinchi j ikkinchi faylning satrlari.

Misol

Eng uzun umumiy ketma-ketlik algoritmining rekursiv qadamlarini ko'rsatadigan jadval.

Fayllarni ko'rib chiqing A va B.

A uchta qatorni o'z ichiga oladi:

B uchta qatorni o'z ichiga oladi:

Ikkala fayl uchun eng uzun umumiy ketma-ketlikning uzunligini aniqlash uchun yuqoridagi algoritm bajaradigan qadamlar diagrammada ko'rsatilgan. Algoritm ikkita faylning eng uzun umumiy ketma-ketligi ikki qator uzunligini to'g'ri hisoblaydi.

Murakkablik

Yuqoridagi algoritm vaqt va makonning eng yomon murakkabliklariga ega O(mn) (qarang katta O yozuvlari ), qaerda m fayldagi qatorlar soni A va n fayldagi qatorlar soni B. Hunt-Symanski algoritmi ushbu algoritmni eng yomon holatdagi vaqt murakkabligiga ega qilib o'zgartiradi O(mn jurnal m) va kosmik murakkabligi O(mn), garchi u odatdagi kirishlar bilan eng yomon holatni muntazam ravishda mag'lub qilsa-da.

Muhim o'yinlar

k- nomzodlar

Hunt-Szymanski algoritmi mualliflar faqat muhim o'yinlar deb ataydigan narsalarni ko'rib chiqadi k- nomzodlar. k- nomzodlar - bu juft indekslar (men, j) shu kabi:

Ikkinchi nuqta $ ning ikkita xususiyatini anglatadi k- nomzodlar:

  • Uzunlikning umumiy ketma-ketligi mavjud k birinchisida men fayl satrlari A va birinchi j fayl satrlari B.
  • Uzunlikning umumiy ketma-ketliklari mavjud emas k har qanday kamroq uchun men fayl satrlari A yoki j fayl satrlari B.

Ulanmoqda k- nomzodlar

Qanday foydalanishni ko'rsatadigan diagramma k- nomzodlar ikkita faylning eng uzun umumiy ketma-ketligini topish uchun zarur bo'lgan vaqt va bo'shliqni kamaytiradi.

To'plamidan eng uzun umumiy ketma-ketlikni yaratish k- nomzodlar, har bir o'qda har bir faylning mazmuni joylashgan panjara yaratiladi. The k- nomzodlar katakchada belgilanadi. Umumiy ketma-ketlikni tarmoqning belgilangan koordinatalarini qo'shish orqali yaratish mumkin, shunday qilib har qanday o'sish men o'sishi bilan birga keladij.

Bu qo'shni diagrammada tasvirlangan.

Qora nuqta oddiy algoritm bilan ko'rib chiqilishi kerak bo'lgan nomzodlarni anglatadi va qora chiziqlar 3 uzunlikdagi umumiy ketma-ketliklarni yaratadigan bog'lanishlardir.

Qizil nuqta k-Hant-Szimanski algoritmi tomonidan ko'rib chiqiladigan nomzodlar va qizil chiziq 3 uzunlikning umumiy ketma-ketligini yaratadigan bog'lanishdir.

Shuningdek qarang

Adabiyotlar

  1. ^ "LCS uchun Hunt-Symanski algoritmi" (PDF). Janubiy Daniya universiteti matematika va kompyuter fanlari kafedrasi. 2017 yil 12-yanvar.
  2. ^ Grabovski, Szymon (2016). "Ketma-ket o'xshashlik muammolari uchun yangi jadvallar va siyrak dinamik dasturlash texnikasi". Diskret amaliy matematika. 212 (C): 96-103. ISSN  0166-218X.
  3. ^ Aho, A .; Xirshberg, D.; Ullman, J. (1976). "Eng uzoq umumiy oqibat muammosining chegaralari" (PDF). ACM jurnali. 23 (1): 1–12. ISSN  0004-5411.
  4. ^ 5.6-bo'limga qarang Aho, A. V., Xopkroft, J. E., Ullman, J. D., Ma'lumotlar tuzilmalari va algoritmlari. Addison-Uesli, 1983 yil. ISBN  0-201-00023-7
  5. ^ a b v d Xant, Jeyms V.; Makilroy, M. Duglas (1976 yil iyun). "Fayllarni differentsial taqqoslash algoritmi" (PDF). Hisoblash fanining texnik hisoboti. Qo'ng'iroq laboratoriyalari. 41.
  6. ^ Imre Simon (1988 yil 2-aprel). "Ketma-ket taqqoslash: ba'zi nazariyalar va ba'zi amaliyotlar". San-Paulu Universidadasi.
  7. ^ Szymanski, T. G. (1975) Maksimal umumiy ketma-ketlik muammosining maxsus hodisasi. Texnik hisobot TR-170, Prinston universiteti, informatika laboratoriyasi.
  8. ^ Ov, Jeyms V; Symanski, Tomas G. (1977). "Eng uzun umumiy ketma-ketliklarni hisoblashning tezkor algoritmi" (PDF). ACM aloqalari. 20 (5): 350–353. ISSN  0001-0782.