Кіріспе

Компьютерлік ғылымда, string to string түзету мәселесі бір тізбені екіншісіне өзгерту үшін қажетті өңдеу операцияларының ең төмен құн тізбесін анықтауды білдіреді (яғни, ең қысқа өңдеу қашықтығын есептеу). Әрбір өңдеу операциясының өзіндік құн шамасы болады. Бір өңдеу операциясы – тізбенің бір символын басқа символға өзгерту (құны WC), символды жою (құны WD) немесе жаңа символ қосу (құны WI) болуы мүмкін. Егер барлық өңдеу операцияларының құны бірдей болса (WC = WD = WI = 1), онда мәселе екі тізбенің Левенштейн қашықтығын есептеумен сәйкес келеді. Тізбе қашықтығын анықтаудың тиімді жолын ұсынатын және қажетті түрлендіру операцияларының ең аз санын көрсететін бірнеше алгоритмдер бар. Мұндай алгоритмдер, әсіресе, бірдеңені бастапқы нұсқаға қатысты айырмашылықтар жиынтығы ретінде сақтау операциялары үшін пайдалы. Бұл бір нысанның бірнеше нұсқасын оларды жеке сақтауға қарағанда әлдеқайда тиімді сақтауға мүмкіндік береді. Бұл бірнеше нысанның бір нұсқасы үшін де дұрыс, егер олар өте көп айырмашылыққа ие болмаса немесе аралық жағдайда болса. Ерекше айта кетелік, мұндай айырмашылық алгоритмдері молекулалық биологияда түрлі организмдер арасындағы туыстық байланысты олардың макромолекулаларының (мысалы, ақуыздар немесе ДНК) ұқсастығы негізінде өлшеу үшін қолданылады.

Ұзарту

Мәселенің кеңейтілген түрі редакциялау операциясының жаңа түрін қамтиды: кез келген екі іргелес символдарды WS бағасымен ауыстыру. Бұл нұсқаны редакциялау операцияларының бағаларына белгілі бір шектеулер қойылған жағдайда полиномиалдық уақытта шешуге болады. Роберт А. Вагнер (1975) жалпы мәселенің NP-толық екенін көрсетті. Атап айтқанда, ол WI < WC = WD = ∞ және 0 < WS < ∞ (немесе, балама ретінде, өзгерту және жою рұқсат етілмегенде) мәселенің NP-толық екенін дәлелдеді.