Shortest Common Superstring: ค้นหาสตริงที่สั้นที่สุดที่มีแฟรกเมนต์สตริงที่กำหนดทั้งหมด


12

เมื่อกำหนดแฟรกเมนต์สตริงให้ฉันต้องการค้นหาสตริงเดี่ยวสั้นที่สุดเท่าที่จะเป็นไปได้ ("เอาต์พุตสตริง") ที่มีแฟรกเมนต์ทั้งหมด แฟรกเมนต์สามารถทับซ้อนกันในสตริงเอาต์พุต

ตัวอย่าง:

สำหรับแฟรกเมนต์สตริง:

BCDA
AGF
ABC

สตริงเอาต์พุตต่อไปนี้มีแฟรกเมนต์ทั้งหมดและสร้างขึ้นโดยการต่อท้ายแบบไร้เดียงสา:

BCDAAGFABC

อย่างไรก็ตามสตริงเอาต์พุตนี้ดีกว่า (สั้นกว่า) เนื่องจากมีการซ้อนทับกัน:

ABCDAGF
^
ABC
 ^
 BCDA
    ^ 
    AGF

ฉันกำลังมองหาอัลกอริทึมสำหรับปัญหานี้ ไม่สำคัญอย่างยิ่งที่จะต้องค้นหาสตริงเอาต์พุตที่สั้นที่สุด แต่ยิ่งสั้นยิ่งดี ฉันกำลังมองหาอัลกอริทึมที่ดีกว่าแบบไร้เดียงสาที่ชัดเจนซึ่งจะลองต่อท้ายพีชคณิตของอินพุตทั้งหมดและลบการทับซ้อน (ซึ่งดูเหมือนจะเป็น NP-Complete)

ฉันเริ่มทำงานกับวิธีแก้ปัญหาและมันพิสูจน์ได้ว่าน่าสนใจมาก ฉันต้องการที่จะเห็นสิ่งที่คนอื่นอาจเกิดขึ้น ฉันจะเพิ่มความคืบหน้าในการทำงานกับคำถามนี้ในอีกสักครู่


3
ดูเหมือนว่าปัญหาจะเป็นปัญหาสมบูรณ์ ถ้าเป็นเช่นนั้นคุณจะไม่สามารถค้นหาอัลกอริทึมพหุนามเพื่อหาสตริงที่สั้นที่สุดได้เลย แต่อาจมีอัลกอริทึมพหุนามซึ่งให้วิธีแก้ปัญหาโดยประมาณ (ไม่ใช่ที่สั้นที่สุด)
superM

3
โพสต์บล็อกนี้เกี่ยวกับ NP-Complete นั้นดี: codinghorror.com/blog/2008/11/…
occulus

บล็อกดีมากฉันอ่านตลอดเวลา)))
superM

@superm นี้จะคล้ายกับพนักงานขายที่เดินทาง (แต่ละสายเมืองและค่าใช้จ่ายระหว่างเมือง = บางส่วนที่ทับซ้อนกันจำนวน)
วงล้อประหลาดที่

@ratchet ประหลาดมันเป็น _ คุณสามารถให้ค่าใช้จ่ายเล็ก ๆ ระหว่างเมืองถ้าพวกเขามีตัวอักษรที่พบบ่อยมากขึ้นและค่าใช้จ่ายที่ใหญ่ที่สุดเมื่อพวกเขาไม่ได้มีตัวอักษรที่พบบ่อยในทุก ๆ
superM

คำตอบ:


14

สิ่งที่คุณถามเกี่ยวกับปัญหาของ Superstring สามัญที่สั้นที่สุดซึ่งไม่มีอัลกอริทึมที่เหมาะกับทุกกรณี แต่มันเป็นปัญหาที่พบบ่อย (ในการบีบอัดและลำดับดีเอ็นเอ) และอัลกอริทึมการประมาณจำนวนมากเป็นที่รู้จักกันดี

อัลกอริทึม "โลภ" ได้รับการยอมรับโดยทั่วไปว่ามีประสิทธิภาพสูงสุด (เช่นในกรณีที่พวกเขามีกรณีเลวร้ายที่สุดอย่างน้อยที่สุด)

อ่านขั้นตอนวิธีการประมาณค่ากระดาษสำหรับโจทย์ปัญหาโดยทั่วไปที่สั้นที่สุดโดย Jonathan Turnerสำหรับข้อมูลเพิ่มเติม


1
หน้าบางหน้าที่เกี่ยวข้อง: update.uu.se/~shikaree/Westling และ cs.sunysb.edu/~algorith/files/shortest-common-superstring.shtml
occulus

อืมโปรดทราบว่าลิงค์แรกในความคิดเห็นของฉันเหนือ supersequences ที่อยู่ไม่ใช่ superstrings! การซ้อนทับดูเหมือนจะไม่ต้องการอักขระทั้งหมดในลำดับที่ต่อเนื่องกัน
occulus

ลิงก์ของคุณเสียชีวิต
Majid
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.