ทำความเข้าใจอัลกอริธึม McCluskey สำหรับการวิเคราะห์ความซับซ้อนของเครื่องจักรในสถานะจำกัด
อัลกอริธึม McCluskey เป็นวิธีการคำนวณความซับซ้อนของพื้นที่สถานะของเครื่องสถานะจำกัด ใช้ในการประมาณจำนวนสถานะในเครื่องสถานะจำกัดที่กำหนด อัลกอริธึมถูกเสนอครั้งแรกโดย J. M. McClusky ในปี 1975 แนวคิดพื้นฐานเบื้องหลังอัลกอริธึม McCluskey คือการคำนวณจำนวนสถานะสูงสุดที่สามารถเข้าถึงได้จากสถานะเริ่มต้นใดๆ และจากนั้นจึงคำนวณจำนวนสถานะสูงสุดที่สามารถเข้าถึงได้จากแต่ละสถานะ ของรัฐเหล่านั้น กระบวนการนี้ทำซ้ำจนกระทั่งทุกสถานะได้รับการพิจารณา และผลลัพธ์สุดท้ายคือจำนวนสถานะทั้งหมดในเครื่อง อัลกอริธึม McCluskey มีข้อดีหลายประการเหนือวิธีอื่นในการคำนวณความซับซ้อนของพื้นที่รัฐ ใช้งานได้ค่อนข้างง่าย สามารถจัดการกับเครื่องจักรที่มีสถานะจำนวนมากได้ และให้ขอบเขตบนที่แน่นหนากับความซับซ้อนของพื้นที่สถานะ อย่างไรก็ตาม อาจมีราคาแพงในการคำนวณสำหรับเครื่องจักรขนาดใหญ่มาก ต่อไปนี้เป็นตัวอย่างวิธีการทำงานของอัลกอริทึม McCluskey:
1 เริ่มต้นด้วยสถานะเริ่มต้น s0.
2 คำนวณเซตของสถานะทั้งหมดที่สามารถเข้าถึงได้ตั้งแต่ s0 ในขั้นตอนเดียว ให้เซตนี้เป็น S1.
3 คำนวณชุดของสถานะทั้งหมดที่สามารถเข้าถึงได้จากแต่ละสถานะใน S1 ในขั้นตอนเดียว ให้เซตเหล่านี้เป็น S2, S3, ... .
4 ทำซ้ำขั้นตอนที่ 3 จนกว่าสถานะทั้งหมดจะได้รับการพิจารณา
5 ผลลัพธ์สุดท้ายคือจำนวนสถานะทั้งหมดในเครื่อง ซึ่งเป็นจำนวนสูงสุดที่สามารถเข้าถึงได้จากสถานะเริ่มต้นใดๆ ตัวอย่างเช่น พิจารณาเครื่องสถานะจำกัดด้วยตารางการเปลี่ยนแปลงต่อไปนี้:
| | ก | ข | ค |
| --- | --- | --- | --- |
| q0 | ก | ไตรมาสที่ 1 | q2 |
| ไตรมาสที่ 1 | ข | ไตรมาสที่ 2 | q3 |
| ไตรมาสที่ 2 | ค | ไตรมาสที่ 3 | q4 |
| ไตรมาสที่ 3 | ค | ไตรมาสที่ 4 | q5 |
| ไตรมาสที่ 4 | ข | q5 | q6 |
| q5 | ก | q6 | q7 |
| q6 | ข | q7 | q8 |
| q7 | ค | q8 | q9 |
| q8 | ค | q9 | q10 |
| q9 | ก | คำถามที่ 10 | q11 |
| คำถามที่ 10 | ข | q11 | q12 |
| q11 | ค | ไตรมาสที่ 12 | q13 |
| ไตรมาสที่ 12 | ข | ไตรมาสที่ 13 | q14 |
| ไตรมาสที่ 13 | ก | ไตรมาสที่ 14 | q15 |
| ไตรมาสที่ 14 | ค | Q15 | q16 |
ในการคำนวณความซับซ้อนของพื้นที่สถานะของเครื่องนี้โดยใช้อัลกอริธึม McCluskey เราจะเริ่มต้นด้วยสถานะเริ่มต้น q0 เซตของสถานะทั้งหมดที่สามารถเข้าถึงได้จาก q0 ในขั้นตอนเดียวคือ {q1, q2, q3} เซตของสถานะทั้งหมดที่สามารถเข้าถึงได้จากแต่ละสถานะเหล่านี้ในขั้นตอนเดียวคือ {q4, q5}, {q6, q7} และ {q8, q9}
เราทำกระบวนการนี้ต่อไปจนกว่าเราจะพิจารณาทุกสถานะแล้ว ผลลัพธ์สุดท้ายคือจำนวนสถานะทั้งหมดในเครื่อง ซึ่งเท่ากับ 16 ซึ่งหมายความว่าความซับซ้อนของพื้นที่สถานะของเครื่องจักรคือ O(16) โดยสรุป อัลกอริธึม McCluskey เป็นวิธีการคำนวณความซับซ้อนของพื้นที่สถานะของไฟไนต์ เครื่องจักรของรัฐ มีพื้นฐานมาจากแนวคิดในการคำนวณจำนวนรัฐสูงสุดที่สามารถเข้าถึงได้จากสถานะเริ่มต้นใดๆ และให้ขอบเขตบนที่แน่นหนากับความซับซ้อนของพื้นที่รัฐ อัลกอริธึมนี้ค่อนข้างใช้งานง่าย แต่อาจมีราคาแพงในการคำนวณสำหรับเครื่องจักรขนาดใหญ่มาก