ฉันสนใจอัลกอริทึมที่มีประสิทธิภาพสำหรับการแยก 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
ความคิดใด ๆ ขอบคุณ
a DFA in form of "strip", i.e., no branches
อะไร คุณมีเหตุผลที่เฉพาะเจาะจงหรือไม่ที่จะเชื่อว่าสามารถทำได้ดีกว่าอัลกอริธึมมาตรฐานในกรณีของคุณหรือไม่?