การจับคู่รูปแบบ n- มิติ


20

อะไรคือผลลัพธ์ที่ทราบกันดีในการค้นหา subarray n-มิติที่แน่นอนภายในอาร์เรย์ n-Dim?

ใน 1D มันเป็นเพียงปัญหาการจับคู่สตริง KMP ทำในเวลาเชิงเส้น

ใน 2D บทความนี้แสดงให้เห็นว่าสามารถทำได้ในเวลาเชิงเส้นพร้อมพื้นที่เพิ่มเติมเล็กน้อย

สามารถแก้ไขปัญหานี้ในกรณีที่เป็นเส้นตรงเวลาที่แย่ที่สุดสำหรับมิติข้อมูลคงที่ได้หรือไม่?

คำตอบ:


13

คุณสามารถแก้ปัญหาในจำนวนมิติที่แน่นอนโดยขยายวิธีแก้ปัญหาเชิงเส้นตามเวลาดั้งเดิมของเบิร์ดจาก 1977 http://www.sciencedirect.com/science/article/pii/0020019077900175 (ต้องสมัครสมาชิกอย่างเศร้า ๆ )

แนวคิดทั่วไป (ในแบบ 2 มิติ) อยู่ในขั้นตอนที่ 1 เพื่อสร้าง Aho-Corasick ออโตเมติกของแถวของรูปแบบ 2D จากนั้นป้อนในแถวของข้อความ 2D แบบทีละหนึ่ง จากนั้นคุณจะพบตำแหน่งทั้งหมดที่แถวรูปแบบตรงกันในข้อความ เมื่อต้องการทำให้เสร็จตอนนี้คุณเพียงแค่ทำการค้นหา 1D สำหรับ (ป้ายกำกับ) แถวของรูปแบบในลำดับที่ถูกต้องในคอลัมน์ในผลลัพธ์ของขั้นตอนที่ 1 โดยใช้ KMP พูด ทั้งหมดนี้ใช้เวลาเชิงเส้น

การใช้วิธีการเดียวกันนี้คุณสามารถลดปัญหามิติการจับคู่ที่แน่นอนไปสู่ปัญหามิติ d-1 ได้ ด้วยวิธีนี้คุณจะได้คำตอบเชิงเส้นตรงสำหรับมิติคงที่ d


9

มันเป็นไปได้ที่จะแก้ปัญหามันในเวลาเชิงเส้น (ไม่เกินโพลีล็อก) โดยใช้เทคนิค FFT คุณสามารถดูกระดาษ: http://www.cs.tau.ac.il/~klim/papers/CEPR08.pdfที่เราใช้เทคนิค FFT สำหรับการจับคู่รูปแบบมิติเดียว หากคุณต้องการแก้ปัญหาการจับคู่รูปแบบหลายมิติคุณต้องใช้ FFT ที่มีมิติสูง


เมื่อพิจารณาจากปี 2008 ฉันคิดว่าอัลกอริธึมเชิงเส้นเวลายังไม่เป็นที่รู้จัก
Chao Xu

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

1
ฉันคิดว่าผลลัพธ์พื้นฐานในการจับคู่รูปแบบกับ wildcards มาจาก Fischer และ Paterson 1974 จากนั้นปรับแต่งและเรียบง่ายอย่างต่อเนื่องจนกระทั่งcs.bris.ac.uk/Publications/pub_master.jsp?id=2000602 (ขอโทษสำหรับการอ้างอิงด้วยตนเอง) อย่างไรก็ตามอาจเป็นปัญหามากเกินไปเล็กน้อยสำหรับปัญหาที่ OP ขอให้ใช้วิธีการจับคู่แบบเก่าที่ฉันกล่าวถึงด้านล่าง
Raphael
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.