อัลกอริทึมสำหรับการลดขนาดออโตเมติกของ Moore


11

อัลกอริธึมของ Brzozowski สามารถขยายไปยังออโตเมตของมัวร์ได้ แต่ความซับซ้อนของเวลานั้นมีความซับซ้อนโดยทั่วไป มีอัลกอริธึมอื่น ๆ สำหรับการลดขนาดออโตเมติกให้เล็กที่สุดหรือไม่? อะไรคือเวลาทำงานของอัลกอริทึมเหล่านี้ถ้ามี?


อัลกอรึทึมของ Brzozowski แบบใดที่คุณอ้างถึง? คนที่ใช้อนุพันธ์ของการแสดงออกปกติ?
เจ

2
ยินดีต้อนรับสู่วิทยาการคอมพิวเตอร์ SE เนื่องจากคุณยังไม่ได้อ่านงานนำเสนอของเว็บไซต์คุณควรรู้ว่ามันเป็นงานที่ร่วมมือกันโดยอาศัยการแลกเปลี่ยนทางเทคนิคระหว่างผู้ใช้ที่ถามคำถามและผู้ใช้ที่ให้คำตอบหรือความคิดเห็น ดังนั้นจึงเป็นเรื่องเหมาะสมที่จะตอบผู้ใช้ที่ขอรายละเอียดเพิ่มเติมในความคิดเห็นเพื่อถอนคำตอบที่ดีหรือความคิดเห็นที่ดี (หรือคำถามหรือคำตอบที่น่าสนใจอื่น ๆ ที่คุณอ่าน) และท้ายที่สุดเพื่อยอมรับคำตอบที่คุณคิดว่าดีที่สุดสำหรับคำถามของคุณ เครื่องหมายถูก "(เหมือน V) ทางซ้ายของคำตอบที่เลือก
babou

คำตอบมีประโยชน์กับคุณไหม?
babou

คำตอบ:


6

อัลกอริธึมการลดขนาด DFA ดั้งเดิมนั้นได้รับการออกแบบมาสำหรับ Moore Machinesโดยมีพฤติกรรมที่สังเกตได้ชัดเจนกว่า แต่อัลกอริทึมที่นำเสนอในที่นี้คือการสร้างใหม่จากการย่อขนาด DFA เนื่องจากฉันค้นพบหลักฐานทางประวัติศาสตร์หลังจากข้อเท็จจริง

หลังจาก Wikipedia (มีการเปลี่ยนแปลงที่น่าสังเกต):

เครื่องมัวร์สามารถกำหนดเป็น 6 tuple ประกอบด้วยต่อไปนี้:(Q,q0,Σ,Π,δ,γ)

  • ชุด จำกัด ของรัฐQ
  • สถานะเริ่มต้น (เรียกอีกอย่างว่าสถานะเริ่มต้น) ซึ่งเป็นองค์ประกอบของQq0Q
  • เซต จำกัด ที่เรียกว่าตัวอักษรอินพุตΣ
  • ชุด จำกัด เรียกว่าเอาต์พุตตัวอักษรΛ
  • ฟังก์ชั่นการเปลี่ยนแปลงการแมปสถานะและตัวอักษรอินพุตไปยังสถานะถัดไป δ:Q×ΣQ
  • ฟังก์ชั่นการส่งออกการแมปแต่ละรัฐกับตัวอักษรที่ส่งออก γ:QΠ

จากคำจำกัดความนี้เครื่อง Moore เป็นตัวแปลงสัญญาณสถานะ จำกัด แน่นอน

ฉันไม่มีการอ้างอิงสำหรับการลดขนาดออโตเมติกให้เหลือน้อยที่สุด อย่างไรก็ตามมันไม่ยากเกินกว่าจะจินตนาการถึงอัลกอริธึมที่ได้มาจากอัลกอริธึมที่ใช้สำหรับสถานะออโตมาตะ จำกัด

ความคิดในการลด DFA จะขึ้นอยู่ในลักษณะ Myhill-Nerode ภาษาปกติ

LxyzxzyzLRLxRLyxyRL

LRLLRL

qWqRL

LWqRL

ดังนั้นการย่อเล็กสุดของ DFA จริง ๆ แล้วประกอบด้วยการรวมสถานะ (ถือว่าเป็นชุดของสตริงที่เทียบเท่า) เมื่อใดก็ตามที่มันแสดงให้เห็นว่าสองสถานะที่แตกต่างมีสตริงที่เทียบเท่ากัน

O(n2)O(nlogn)

RTTRLRT

TxyzT(xz)=T(x)uT(yz)=T(y)vuvzxy

RTΣ

อัลกอริทึมต่อไปนี้เลียนแบบอัลกอริทึม Moore สำหรับการย่อขนาด DFA

PQSe

eΠ:Se={qQγ(q)=e}

P

S
   aΣ,
     SP,qS,δ(q,a)S
     SSi
      SiSPqSi,δ(q,a)S
      SiSP

เมื่อไม่มีคลาสเหลือที่จำเป็นต้องแยกคลาสที่เหลือของรัฐจะสร้างสถานะของเครื่อง Moore ขั้นต่ำสุด

โดยการก่อสร้างทุกรัฐในชั้นเรียนมีผลลัพธ์เดียวกันซึ่งเป็นผลลัพธ์สำหรับชั้นเรียน

aΣ

n=|Q|s=|Σ|
nO(sn2)

ฉันไม่มีข้อมูลอ้างอิงสำหรับการลดขนาดของเครื่อง Moore นี้ อาจรวมอยู่ในกระดาษของเขา:

มัวร์เอ็ดเวิร์ดเอฟ (1956) "Gedanken- การทดลองเกี่ยวกับเครื่องตามลำดับ" การศึกษาแบบออโตมาตะ , พงศาวดารของคณิตศาสตร์ศึกษา (พรินซ์ตัน, นิวเจอร์ซีย์: สำนักพิมพ์มหาวิทยาลัยพรินซ์ตัน) (34): 129-153

กระดาษนี้คือการอ้างอิงหลักแนะนำมัวร์เครื่อง นอกจากนี้ยังมีการอ้างอิงสำหรับขั้นตอนวิธีการลดปริมาณของมัวร์ DFA ดังนั้นจึงน่าแปลกใจถ้าการปรับอัลกอริธึมเพื่อการลดขนาดของ Moore Machines ไม่ได้มีการเสนอแนะอย่างน้อยในกระดาษนั้น ฉันตรวจสอบกระดาษและเวอร์ชันของอัลกอริธึมการย่อขนาดเล็กสุดที่แสดงนั้นเป็นจริงสำหรับเครื่อง Moore ไม่ใช่สำหรับ DFA กระดาษเขียนได้ดี แต่รูปแบบของเวลาทำให้อ่านยากขึ้นเล็กน้อย เป็นที่น่าสนใจที่จะเห็นว่าความคิดมากมายเกี่ยวกับทฤษฎี Myhill-Nerode ของเครื่องจักรไฟไนต์สเตทได้ถูกร่างไว้ในบทความนี้แล้ว

O(snlogn)


@ ราฟาเอลการอ้างอิง ... คุณโชคดีที่ฉันออกแบบอัลกอริทึมเพราะฉันไม่สามารถเข้าถึงห้องสมุด แต่เมื่อคุณขอข้อมูลอ้างอิงฉันได้รับคุณ คุณควรจะชอบมัน แต่ฉันไม่แน่ใจว่าฉันจะใช้สำหรับการสอน
Babou

@ ราฟาเอลกระดาษมีความน่าสนใจในการนำเสนอที่พยายามใช้งานง่ายมีการใช้งานได้ดีกว่าพีชคณิต ฉันจำรายละเอียดทั้งหมดของการมีส่วนร่วมของ Myhill และ Nerode ไม่ได้ (สองปีต่อมาในปี 1958) และฉันไม่ได้อ่านบทความนี้อย่างถี่ถ้วน (ฉันค่อนข้างพร่องมัน) แต่ฉันสงสัยว่าทฤษฏีไม่ควรนำมาประกอบกับมัวร์ ดี.
babou

2

เวอร์ชั่นของอัลกอริธึมของ Brzozowski ที่ใช้อนุพันธ์ของนิพจน์ทั่วไปนั้นให้ไว้ใน [2], ตอนที่ 12, ตอนที่ 4, ซึ่งให้เครดิตกับ [4] ดู [1] และ [3] สำหรับกรณีทั่วไปของตัวแปลงสัญญาณแบบอนุกรม (คำศัพท์นั้นล้าสมัยไปเล็กน้อยและคำว่าตัวเรียงลำดับแบบลำดับอาจเป็นสิ่งที่เหมาะสมกว่าในปัจจุบัน)

[1] C. Choffrut, การลดทรานสดิวเซอร์ทรานสิดิเนชันตามลำดับ: การสำรวจ, ทฤษฎีบท คอมพ์ วิทย์ 292 (2003), 131–143

[2] S. Eilenberg, Automata, ภาษาและเครื่อง, ฉบับที่ A, Academic Press, 1974

[3] J.-E. Pin, กวดวิชาในการทำงานตามลำดับ (สไลด์)

[4] GN Raney, ฟังก์ชันลำดับ, JACM 5 (1958), 177–180


@DW ขอบคุณสำหรับการแก้ไข สมบูรณ์แบบ
เจ

1

อัลกอริธึมของ Brzozowskiเป็นจุดเริ่มต้นที่ไม่ดี แม้แต่ Wikipedia ก็บอกคุณมาก:

ดังที่ Brzozowski (1963) ตั้งข้อสังเกตการพลิกกลับขอบของ DFA ทำให้เกิดเครื่องจักร จำกัด (NFA) สำหรับการกลับรายการของภาษาดั้งเดิมและเปลี่ยน NFA นี้เป็น DFA โดยใช้การสร้างมหาอำนาจมาตรฐาน (สร้างเฉพาะสถานะที่เข้าถึงได้ของ DFA ที่แปลงแล้ว) นำไปสู่ ​​DFA ขั้นต่ำสำหรับภาษาที่ตรงกันข้าม ทำซ้ำการดำเนินการกลับรายการนี้เป็นครั้งที่สองที่สร้าง DFA น้อยที่สุดสำหรับภาษาต้นฉบับ ความซับซ้อนของกรณีที่เลวร้ายที่สุดของอัลกอริธึมของ Brzozowski คือเลขชี้กำลังเนื่องจากมีภาษาปกติที่ DFA ที่น้อยที่สุดของการกลับรายการมีขนาดใหญ่กว่า DFA ขั้นต่ำของภาษาอย่างมาก [6] แต่บ่อยครั้งมันจะทำงานได้ดีกว่ากรณีที่เลวร้ายที่สุด

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

พยายามปรับอัลกอริธึมการลด DFA อื่น

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