ผลต่างระหว่างรุ่นของ "ขั้นตอนวิธีแบบสุ่ม"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
BotKung (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
บรรทัด 1:
{{ช่วยดูหน่อย}}
'''ขั้นตอนวิธีแบบสุ่ม''' (randomized algorithm) เป็น[[ขั้นตอนวิธี]]ที่ยอมให้มีการโยนเหรียญได้ ในทางปฏิบัติ เครื่องที่ใช้ทำงานขั้นตอนวิธีนี้ จะต้องใช้[[ตัวสร้างเลขสุ่มเทียม]] (pseudo-random number generator) ในการสร้าง[[ตัวเลขสุ่ม]]ขึ้นมา อัลกอรึทึมโดยทั่วๆไปมักใช้[[บิทสุ่ม]] (random bit) สำหรับเป็นอินพุตเสริม เพื่อชี้นำการกระทำของมันต่อไป โดยมีความหวังว่าจะช่วยให้มีประสิทธิภาพที่ดีใน "กรณีส่วนมาก(average case)" หรือหากพูดในทาง[[คณิตศาสตร์]]ก็คือ ประสิทธิภาพของขั้นตอนวิธีมีค่าเท่ากับ[[ตัวแปรสุ่ม]] (random variable) ซึ่งคำนวณจากบิทสุ่ม โดยหวังว่าจะมี[[ค่าคาดหวัง]] (expected value) ที่ดี กรณีที่แย่มากที่สุดมักจะมีโอกาสเกิดขึ้นน้อยมากจนแทบจะไม่ต้องสนใจ
 
เส้น 8 ⟶ 7:
ในตัวอย่างที่กล่าวมานี้ ขั้นตอนวิธีแบบสุ่มให้ผลลัพธ์ที่ถูกต้องเสมอ เพียงแต่ว่ามีความเป็นไปได้อยู่บ้าง ที่ขั้นตอนวิธีจะใช้เวลานานในการทำงาน บางครั้งเราอาจต้องการขั้นตอนวิธีที่ทำงานได้เร็วในทุกๆสถานการณ์ แต่เราก็ต้องแลกด้วย''โอกาสเกิดความผิดพลาด'' ขั้นตอนวิธีประเภทแรก(ถูกต้องเสมอ แต่อาจใช้เวลานาน)เรียกว่า[[ขั้นตอนวิธีลาสเวกัส]] และแบบหลัง(ต้องทำงานเร็ว แต่มีข้อผิดพลาดได้)เรียกว่า[[ขั้นตอนวิธีมอนติคาร์โล]] (ตามชื่อของ[[วิธีมอนติคาร์โล]]ที่ใช้ในการจำลอง (simulation)) สังเกตว่าขั้นตอนวิธีลาสเวกัสทุกอันสามารถแปลงเป็นขั้นตอนวิธีมอนติคาร์โลได้ โดยการตอบออกไปมั่วๆ หากไม่สามารถหาคำตอบได้ในเวลาที่กำหนด
 
[[ทฤษฎีความซับซ้อนในการคำนวณ]]ซึ่งเป็นการศึกษาเกี่ยวกับทรัพยากรทางการคำนวณที่ต้องใช้ในการแก้ปัญหาหนึ่งๆ ได้สร้างแบบจำลองของขั้นตอนวิธีแบบสุ่มให้เป็น''[[เครื่องจักรทัวริง]][[เครื่องจักรทัวริงเชิงความน่าจะเป็น|เชิงความน่าจะเป็น]]'' ทั้งขั้นตอนวิธีลาสเวกัสและมอนติคาร์โลได้ถูกนำมาพิจารณา รวมถึง "คลาสของความซับซ้อน" หลายๆคลาสก็ได้ถูกนำมาศึกษา คลาสของความซับซ้อนแบบสุ่มแบบที่เป็นพื้นฐานที่สุดคือแบบ[[อาร์พี]] ซึ่งเป็นคลาสของ[[ปัญหาการตัดสินใจ]]ที่มีขั้นตอนวิธีแบบสุ่ม (หรือเครื่องจักรทัวริงเชิงความน่าจะเป็น) ที่มีประสิทธิภาพ (ทำงานได้ได้ในเวลาโพลิโนเมียล) ที่สามารถตอบว่า "ไม่" ได้ถูกต้องเสมอ และสามารถตอบว่า "ใช่" ได้ โดยมีโอกาสถูกต้องอย่างน้อย 1/2 คลาสส่วนกลับ (complement) ได้แก่โค-อาร์พี และคลาสของปัญหาซึ่งทั้งคำตอบ "ใช่" และ "ไม่" สามารถมีค่าความน่าจะเป็นได้ทั้งคู่ (นั่นคือ ไม่ได้บังคับให้ต้องตอบถูกต้องเสมอ) เรียกว่า[[ซีพีพี]] (ZPP) สำหรับปัญหาซึ่ง (เชื่อกันว่า) อยู่นอกคลาสนี้ เช่นปัญหา[[เอ็นพีแบบยาก]] (ซึ่งแม้แต่ขั้นตอนวิธีแบบสุ่มก็ไม่สามารถแก้ได้) จำเป็นต้องแก้ด้วย[[ขั้นตอนวิธีแบบประมาณ]]
 
ในประวัติศาสตร์ ขั้นตอนวิธีแบบสุ่มเริ่มเป็นที่รู้จัก จากการค้นพบของ[[การตรวจสอบการเป็นจำนวนเฉพาะมิลเลอร์-เรบิน|มิลเลอร์และราบิน]]ในปี [[ค.ศ. 1976]] ว่า ปัญหา[[การตรวจสอบการเป็นจำนวนเฉพาะ]]ของตัวเลข สามารถแก้ได้อย่างมีประสิทธิภาพด้วยขั้นตอนวิธีแบบสุ่ม ในเวลานั้น ยังไม่มี[[ขั้นตอนวิธีดิเทอร์มินิสติก]]สำหรับปัญหานี้เลย