Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ความแตกต่างระหว่าง Deterministic และ Non-deterministic Algorithms


ในบริบทของการเขียนโปรแกรม Algorithm คือชุดคำสั่งที่ชัดเจนเรียงลำดับเพื่อทำงานเฉพาะและได้ผลลัพธ์ที่ต้องการ ที่นี่กล่าวถึงชุดคำสั่งที่กำหนดไว้ หมายความว่าที่ใดผู้ใช้รู้ผลลัพธ์ของคำสั่งเหล่านั้นหาก execute ตามที่คาดไว้

จากความรู้เกี่ยวกับผลลัพธ์ของคำสั่ง มีอัลกอริทึม 2 ประเภทคือ Deterministic และ Non-deterministic Algorithms ความแตกต่างหลักมีดังนี้ −

Sr. No.KeyDeterministic AlgorithmNon-deterministic Algorithm
1Definition (นิยาม)อัลกอริทึมที่ผลลัพธ์ของทุกอัลกอริทึมถูกนิยามอย่างชัดเจน เรียกว่า Deterministic Algorithm กล่าวอีกนัยหนึ่ง อัลกอริทึมที่ทำงานจำนวนขั้นตอนคงที่ และจบเสมอด้วย accept หรือ reject state ด้วยผลลัพธ์เดียวกัน
อัลกอริทึมที่ผลลัพธ์ไม่ถูกนิยามอย่างชัดเจน และอาจสุ่ม เรียกว่า Non-Deterministic Algorithm
2Execution (การทำงาน)ใน Deterministic Algorithms เครื่องเป้าหมาย execute คำสั่งเดียวกันและได้ผลลัพธ์เดียวกัน ไม่ขึ้นกับวิธีหรือกระบวนการที่คำสั่งถูก executeใน Non-Deterministic Algorithms เครื่องที่ execute แต่ละ operation ได้รับอนุญาตให้เลือกผลลัพธ์ใดก็ได้จากผลลัพธ์เหล่านี้ ตาม determination condition ที่จะนิยามภายหลัง
3Type (ประเภท)จาก execution และ outcome ใน Deterministic algorithm จัดเป็น reliable algorithms เนื่องจากสำหรับ input เหมือนกัน เครื่องจะให้ output เดียวกันเสมอNon deterministic algorithms จัดเป็น non-reliable algorithms เนื่องจาก input เดียวกัน เครื่องให้ output ต่างกันในแต่ละ execution
4Execution Time (เวลาทำงาน)เนื่องจาก outcome รู้จักและสอดคล้องในการ execute ต่างๆ Deterministic algorithm ใช้ polynomial timeเนื่องจาก outcome ไม่รู้จักและไม่สอดคล้อง Non-Deterministic algorithm อาจไม่ execute ใน polynomial time ได้
5Execution path (เส้นทางการทำงาน)ใน deterministic algorithm เส้นทาง execution เหมือนกันทุก executionใน Non-Deterministic algorithm เส้นทาง execution ไม่เหมือนกัน และอาจเลือกเส้นทางสุ่มได้