อัลกอริทึมการแยก DFA สำหรับกรณีพิเศษ


9

ฉันสนใจอัลกอริทึมที่มีประสิทธิภาพสำหรับการแยก DFA สำหรับกรณีพิเศษ กล่าวคือเมื่อ DFA ที่จะตัดกันเชื่อฟังโครงสร้างที่แน่นอนและ / หรือทำงานด้วยตัวอักษรที่ จำกัด มีแหล่งข้อมูลใดบ้างที่ฉันสามารถค้นหาอัลกอริธึมกรณีดังกล่าว

เพื่อที่จะไม่ทำให้คำถามกว้างเกินไปโครงสร้างต่อไปนี้เป็นที่สนใจเป็นพิเศษ: DFA ทั้งหมดที่จะตัดกันทำงานในตัวอักษรไบนารี (0 | 1) พวกเขายังสามารถใช้สัญลักษณ์ที่ไม่สนใจได้ ยิ่งไปกว่านั้นทุกรัฐมีเพียงหนึ่งช่วงการเปลี่ยนภาพยกเว้นรัฐพิเศษ K ส่วนใหญ่ซึ่งมีช่วงการเปลี่ยนภาพเพียงสองครั้งเท่านั้น (และช่วงการเปลี่ยนภาพเหล่านี้มักจะเป็น 0 หรือ 1 แต่ไม่ต้องสนใจเลย) K เป็นจำนวนเต็มน้อยกว่า 10 สำหรับการใช้งานจริง นอกจากนี้พวกเขายังมีสถานะรับเดียว นอกจากนี้เป็นที่ทราบกันว่าจุดตัดเป็น DFA เสมอในรูปแบบของ "สตริป" เช่นไม่มีสาขาดังในภาพต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข:บางทีคำอธิบายของข้อ จำกัด ในอินพุต DFAs ไม่ชัดเจนมาก ฉันจะพยายามปรับปรุงในย่อหน้านี้ คุณมีการป้อนT DFAs DFA เหล่านี้แต่ละตัวทำงานเฉพาะกับตัวอักษรไบนารี แต่ละคนมีอย่างน้อยNรัฐ สำหรับ DFA แต่ละรัฐแต่ละรัฐเป็นหนึ่งในสิ่งต่อไปนี้:

1) รัฐที่รับ (เป็นเพียงรัฐเดียวเท่านั้นและไม่มีการเปลี่ยนจากรัฐเป็นรัฐอื่น)

2) สถานะที่มีการเปลี่ยนสองครั้ง (0 และ 1) ไปยังสถานะเป้าหมายเดียวกัน (รัฐส่วนใหญ่เป็นแบบนี้)

3) สถานะที่มีการเปลี่ยนสองครั้ง (0 และ 1) ไปยังสถานะเป้าหมายที่แตกต่างกัน (สูงสุดKของประเภทนี้)

มีการรับประกันว่ามีเพียงสถานะเดียวที่ยอมรับได้และมีประเภทKมากที่สุด(3) ในแต่ละอินพุต DFA นอกจากนี้ยังรับประกันได้ว่าสี่แยก DFA ทุก DFAs การป้อนข้อมูลที่เป็น "แถบ" (ตามที่อธิบายไว้ข้างต้น) ที่มีขนาดน้อยกว่าN

EDIT2:ข้อ จำกัด เพิ่มเติมบางอย่างตามที่ DW ร้องขอในความคิดเห็น:

  • อินพุต DFA คือ DAG
  • อินพุต DFAs เป็น "leveled" ตามคำจำกัดความ DW ในความคิดเห็น คือคุณสามารถกำหนดเลขที่แตกต่างกันไปทุกรัฐในลักษณะที่เปลี่ยนไปจากทุกจำนวนเต็มUจะเป็นจำนวนเต็มวีเช่นว่าU + 1 = V
  • จำนวนของการยอมรับรัฐสำหรับการป้อนข้อมูลแต่ละ DFA ที่ไม่เกินK

ความคิดใด ๆ ขอบคุณ


คุณคิดว่า "ไม่สนใจ" จริงๆแค่ไหน? ดูเหมือนว่าจะทำให้ออโตมาตาดูแลอยู่ในทางใดทางหนึ่ง
Shaull

@Shaull เหตุใดจึงควรทำให้ออโตเมติกไม่เป็นไปตามที่กำหนด สิ่งนี้สามารถเกิดขึ้นได้ก็ต่อเมื่อมีการเปลี่ยนแปลงอื่นจากสถานะเดียวกันซึ่งได้รับการยกเว้นอย่างชัดเจน
babou

1
คือa DFA in form of "strip", i.e., no branchesอะไร คุณมีเหตุผลที่เฉพาะเจาะจงหรือไม่ที่จะเชื่อว่าสามารถทำได้ดีกว่าอัลกอริธึมมาตรฐานในกรณีของคุณหรือไม่?
babou

1
สวัสดี การคำนวณจุดตัดที่เกิดขึ้นจริงนั้นยอดเยี่ยมเพราะมันจะทำให้สิ่งต่าง ๆ ง่ายขึ้น แต่การตัดสินความว่างเปล่าก็มีประโยชน์เช่นกัน
ale64bit

1
เพิ่งวิ่งข้ามกระดาษใหม่ในกราฟทางแยกทฤษฎีบางส่วนอาจมีความเกี่ยวข้องหรือไม่ คุณช่วยกรุณาขยายแอปพลิเคชันของคุณที่กล่าวถึงในความคิดเห็นของคุณในTheoretical Computer Science Chat ได้ไหม? & เชิญผู้อื่นให้สนทนาต่อที่นั่น
vzn

คำตอบ:


9

ใช่มีบางกรณีของปัญหา insersection non-emptiness non DFA ที่อยู่ใน P. วิทยานิพนธ์ของอาจารย์ของฉันทุ่มเทให้กับคำถามนี้ แต่น่าเสียดายที่มันเป็นภาษาฝรั่งเศส อย่างไรก็ตามผลลัพธ์ส่วนใหญ่ปรากฏที่นี่ใน[2].

เมื่อตัวอักษรเป็นเอกภาพแล้วปัญหาคือ L-complete เมื่อ DFA แต่ละอันมีสถานะสุดท้ายสองสถานะและ NP-complete เป็นอย่างอื่น กรณีอื่น ๆ ส่วนใหญ่มีข้อ จำกัด เกี่ยวกับการเปลี่ยน monoids ของออโตมาตา ตัวอย่างเช่นสำหรับ monoids การเปลี่ยนกลุ่ม abelian ปัญหาอยู่อร์ทแคโรไลนา3เมื่อ DFA แต่ละรายการมีสถานะสุดท้ายอย่างน้อยหนึ่งสถานะและ NP-complete เป็นอย่างอื่น สำหรับ monoids การเปลี่ยนกลุ่ม 2 ระดับแรกปัญหาคือL-complete เมื่อ DFA แต่ละรายการมีสถานะสุดท้ายไม่เกินสองสถานะและ NP-complete เป็นอย่างอื่น


ให้ฉันตอบคำถามที่แม่นยำยิ่งขึ้นของคุณซึ่งสามารถพบได้ใน [1]. สมมติว่าคุณได้รับ DFAs แล้ว{0,1} และรูปร่างเหมือนต้นไม้คือมีสถานะ ยู (สถานะเริ่มต้น) เช่นนั้นสำหรับแต่ละรัฐ โวลต์ มีเส้นทางที่ไม่ซ้ำกันจาก ยู ถึง โวลต์. จากนั้นการตัดสินใจถึงจุดตัดที่ไม่ใช่ความว่างเปล่าคือ:

  1. L-complete สำหรับหนึ่งสถานะสุดท้ายในแต่ละ DFA
  2. NL-complete สำหรับสองสถานะสุดท้ายในแต่ละ DFA และ
  3. NP-complete สำหรับสามสถานะสุดท้ายหรือมากกว่าในแต่ละ DFA

ผลลัพธ์ความแข็งยังคงอยู่แม้ว่าคุณจะ "แยก" ตามลำดับ 0, 1 หรือ 2 ครั้ง (นี่คือของคุณ K) ทีนี้ถ้า DFA ของคุณกำกับกราฟ acyclic แทนต้นไม้ปัญหาก็คือปัญหา NP-complete แม้จะมีสถานะสุดท้ายหนึ่งในแต่ละ DFA และK=2; การลดลงค่อนข้างตรงไปตรงมาและมาจาก Monotone 1-in-3 3-SAT

ดังนั้นไม่ฉันไม่คิดว่าจะมีอัลกอริทึมที่มีประสิทธิภาพสำหรับปัญหาของคุณ

ตอนนี้ถ้าจำนวนออโตมาตะได้รับการแก้ไขแล้วคุณอาจต้องการปรึกษากับMichael Weharที่เพิ่งเผยแพร่[3].


แก้ไข: ตั้งแต่ OP แก้ไขคำถามของเขาให้ฉันชี้แจงคำตอบของฉันกับข้อกำหนดใหม่ของเขา พิจารณา NP-สมบูรณ์ปัญหาMonotone 1 ใน 3 3 SATที่คุณจะได้รับสูตร 3-CNF โดยไม่ต้องปฏิเสธและสถานที่ที่คุณจะต้องตรวจสอบว่ามีการกำหนดที่ทำให้ว่าตัวแปรหนึ่งความจริงในข้อแต่ละ คุณสามารถลดปัญหานี้เป็นปัญหาการตัดกันที่ไม่มีความว่างเปล่าได้ดังต่อไปนี้ ตัวอย่างเช่นสำหรับข้อx2x3x5คุณสร้างหุ่นยนต์ต่อไปนี้:

แกดเจ็ตการลด

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

  1. Michael Blondin Complexitéraffinée du problème d'interection d'automates, M.Sc. วิทยานิพนธ์, Université de Montréal, 2012
  2. Michael Blondin, Andreas Krebs และ Pierre McKenzie ความซับซ้อนของการตัดไฟไนต์ Automata ที่มีสถานะไม่กี่ขั้นสุดท้าย, ความซับซ้อนในการคำนวณ (CC), 2014
  3. Michael Wehar ผลลัพธ์ความแข็งสำหรับการแยกแบบไม่ว่างเปล่า ICALP, 2014

2
ขอบคุณมาก! ฉันยอมรับคำตอบของคุณ คำถามมาจากการทดสอบภาคปฏิบัติที่ทุกอย่างลดลงหลังจากหลายขั้นตอนไปสู่การตัดการแก้ปัญหาของ DFA จำนวนมากด้วยลักษณะเฉพาะนี้ อย่างไรก็ตามเราสังเกตว่าถึงแม้ว่าในตอนท้ายเราจะได้รับ DFA อย่างง่าย แต่กระบวนการไม่เคยเสร็จสิ้นเนื่องจาก DFA ระดับกลาง (ในขณะที่การตัดกันตามลำดับ) กำลังเติบโตอย่างรวดเร็วในจำนวนเลขชี้กำลังของรัฐ ดังนั้นคำถามของวิธีการได้รับคำตอบโดยไม่ต้องผ่านขั้นตอน "ไร้เดียงสา" ตัวกลาง
ale64bit

1
ขอบคุณมาก (และขออภัยสำหรับความไม่ชัดเจนฉันอยู่ต่ำกว่าสามเณรในพื้นที่นี้) ตอนนี้มีบางอย่างที่ฉันไม่ได้รับ คุณพูดถึงว่า "ทำเป็นรูปต้นไม้" หมายถึง "เส้นทางที่ไม่ซ้ำกันจากรูตไปยังโหนดอื่นทุกโหนด" แต่ตัวอย่างเช่นในภาพที่คุณโพสต์ในการแก้ไขนั่นจะไม่เป็นต้นไม้ (เว้นแต่คุณจะนับการเปลี่ยนแปลง 0/1 เป็นป้ายกำกับเดียว)
ale64bit

1
คุณพูดถูก แต่ฉันเข้าใจว่าคุณยอมให้เปลี่ยน "ไม่สนใจ" มันไม่ใช่อย่างนั้นเหรอ?
Michael Blondin

2
สวัสดีไมเคิล ขอบคุณสำหรับคำตอบที่ดี ฉันหวังว่าทั้งหมดเป็นอย่างดี. :)
Michael Wehar

2
@MichaelWehar ในกรณีที่คุณแก้ไขทั้ง k และ c คุณพูดถึงคุณสามารถแก้ปัญหาได้อย่างรวดเร็ว แต่คุณไม่ได้พูดถึงความซับซ้อนของเวลาเพียงแค่ความซับซ้อนของพื้นที่ อะไร "อย่างรวดเร็ว" หมายถึงอะไรในบริบทนั้น
ale64bit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.