แก้ไขระยะทางด้วยการเคลื่อนย้าย
แรงจูงใจ:ผู้เขียนร่วมแก้ไขต้นฉบับและฉันต้องการดูบทสรุปที่ชัดเจนของการแก้ไข เครื่องมือที่เหมือนกัน "diff" ทั้งหมดมีแนวโน้มที่จะไร้ประโยชน์ถ้าคุณทั้งคู่ย้ายข้อความไปมา (เช่นการจัดโครงสร้างใหม่) และทำการแก้ไขในท้องถิ่น มันยากจริง ๆ ที่จะทำให้ถูกต้อง? คำจำกัดความ:ฉันต้องการค้นหาระยะทางแก้ไขขั้นต่ำซึ่งการดำเนินการที่อนุญาตคือ: การดำเนินการ "ถูก": เพิ่ม / เปลี่ยน / ลบอักขระเดียว (การดำเนินการ Levenshtein ปกติ), "แพง": การดำเนินการ: ย้ายซับสตริงไปยังตำแหน่งใหม่ ( abcd↦acbdabcd↦acbdabcd \mapsto acbdสำหรับสตริงใด ๆaaa , bbb , ccc , ddd ) รับสองสายxxxและyyyและจำนวนเต็มkkkและKKKฉันต้องการที่จะแก้ปัญหาต่อไปนี้: คุณสามารถแปลงxxxเป็นyyyโดยใช้การดำเนินการkkkราคาถูกที่สุดและการดำเนินการที่แพงที่สุดKKKไหม คำถาม: ปัญหานี้มีชื่อหรือไม่? (ดูเหมือนคำถามที่เป็นมาตรฐานมากในบริบทของการจัดเรียงลำดับ) มันยากไหม ถ้าเป็นเรื่องยากมันเป็นพารามิเตอร์คงที่เวไนยกับเป็นพารามิเตอร์?KKK มีขั้นตอนวิธีการประมาณที่มีประสิทธิภาพหรือไม่? (เช่นค้นหาวิธีแก้ปัญหาที่มีการดำเนินการราคาถูกมากที่สุดและ2 Kราคาแพงหากมีวิธีแก้ปัญหาที่มีการดำเนินงานk cheap และKแพง)2k2k2k2K2K2KkkkKKK ฉันพยายามดูสตริงตัวชี้วัดที่แสดงรายการใน Wikipediaแต่ไม่มีสิ่งใดที่ถูกต้อง