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

ความแตกต่างระหว่างอัลกอริธึมที่กำหนดและไม่กำหนดขึ้น


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

บนพื้นฐานของความรู้เกี่ยวกับผลลัพธ์ของคำสั่งนั้น มีอัลกอริธึมสองประเภทคือ − อัลกอริธึมแบบกำหนดขึ้นเองและไม่ใช่แบบกำหนด ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่างอัลกอริธึมทั้งสอง -

ซีเนียร์ เลขที่ คีย์ อัลกอริธึมที่กำหนดขึ้นได้ อัลกอริธึมแบบไม่กำหนด
1 คำจำกัดความ อัลกอริธึมที่ผลลัพธ์ของอัลกอริธึมทุกตัวถูกกำหนดอย่างเฉพาะเจาะจงเรียกว่า อัลกอริธึมที่กำหนดขึ้น กล่าวอีกนัยหนึ่ง เราสามารถพูดได้ว่าอัลกอริธึมที่กำหนดขึ้นเองคืออัลกอริธึมที่ดำเนินการตามจำนวนขั้นตอนคงที่และเสร็จสิ้นด้วยสถานะยอมรับหรือปฏิเสธด้วยผลลัพธ์เดียวกันเสมอ
ในทางกลับกัน อัลกอริธึมที่ผลลัพธ์ของทุกอัลกอริธึมไม่ได้ถูกกำหนดอย่างเฉพาะเจาะจงและผลลัพธ์อาจเป็นแบบสุ่มเรียกว่าอัลกอริธึมแบบไม่กำหนด
2 การดำเนินการ ในการดำเนินการ Deterministic Algorithms เครื่องเป้าหมายดำเนินการคำสั่งเดียวกันและให้ผลลัพธ์เดียวกันซึ่งไม่ได้ขึ้นอยู่กับวิธีการหรือกระบวนการที่คำสั่งถูกดำเนินการ ในทางกลับกัน ในกรณีของ Non-Deterministic Algorithm เครื่องที่ดำเนินการแต่ละการดำเนินการจะได้รับอนุญาตให้เลือกผลลัพธ์ใดผลลัพธ์หนึ่งเหล่านี้ขึ้นอยู่กับเงื่อนไขการกำหนดที่จะกำหนดในภายหลัง
3 ประเภท บนพื้นฐานของการดำเนินการและผลลัพธ์ในกรณีของอัลกอริธึมที่กำหนดขึ้นได้ พวกมันยังถูกจัดประเภทเป็นอัลกอริธึมที่เชื่อถือได้สำหรับคำสั่งอินพุตเฉพาะ เครื่องจะให้เอาต์พุตเดียวกันเสมอ ในทางกลับกัน อัลกอริธึมแบบกำหนดไม่ได้ถูกจัดประเภทเป็นอัลกอริธึมที่ไม่น่าเชื่อถือสำหรับอินพุตเฉพาะ เครื่องจะให้เอาต์พุตที่แตกต่างกันในการดำเนินการที่แตกต่างกัน
4 เวลาดำเนินการ เนื่องจากผลลัพธ์เป็นที่ทราบกันดีและมีความสอดคล้องกันในการดำเนินการที่แตกต่างกัน ดังนั้นอัลกอริธึมที่กำหนดจึงใช้เวลาพหุนามในการดำเนินการ ในทางกลับกัน เนื่องจากผลลัพธ์ไม่เป็นที่ทราบและไม่สอดคล้องกับการดำเนินการที่แตกต่างกัน ดังนั้นอัลกอริธึมแบบ non-deterministic จึงไม่สามารถทำงานได้ในเวลาพหุนาม
5 เส้นทางการดำเนินการ ในอัลกอริธึมที่กำหนดขึ้นเอง เส้นทางของการดำเนินการสำหรับอัลกอริธึมจะเหมือนกันในทุกการดำเนินการ ในทางกลับกัน ในกรณีของอัลกอริธึมที่ไม่ใช่แบบกำหนดเส้นทางของการดำเนินการจะไม่เหมือนกันสำหรับอัลกอริธึมในการดำเนินการทุกครั้งและสามารถใช้เส้นทางสุ่มสำหรับการดำเนินการได้