ความแตกต่างและความสัมพันธ์ระหว่างอัลกอริธึมแบบสุ่มและแบบไม่ จำกัด


30

ความแตกต่างและความสัมพันธ์ระหว่างอัลกอริธึมแบบสุ่มกับอัลกอริธึมแบบ nondeterministic คืออะไร

จากวิกิพีเดีย

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

อัลกอริทึม nondeterministicเป็นอัลกอริทึมที่สามารถแสดงพฤติกรรมที่แตกต่างกันในการทำงานที่แตกต่างกันเมื่อเทียบกับขั้นตอนวิธีการที่กำหนด มีหลายวิธีที่อัลกอริทึมอาจทำงานแตกต่างจากการเรียกใช้เพื่อเรียกใช้ อัลกอริทึมพร้อมกันสามารถดำเนินการแตกต่างกันในการทำงานแตกต่างกันเนื่องจากสภาพการแข่งขัน ขั้นตอนวิธีการน่าจะเป็นพฤติกรรมที่ขึ้นอยู่กับเครื่องกำเนิดไฟฟ้าจำนวนสุ่ม อัลกอริทึมที่แก้ปัญหาในเวลาพหุนามแบบ nondeterministic สามารถเรียกใช้ในเวลาพหุนามหรือเวลาชี้แจงขึ้นอยู่กับตัวเลือกที่ทำในระหว่างการดำเนินการ

อัลกอริธึมแบบสุ่มและอัลกอริธึมน่าจะเป็นแนวคิดเดียวกันหรือไม่

ถ้าใช่อัลกอริธึมแบบสุ่มเป็นแค่อัลกอริธึมแบบ nondeterministic หรือไม่?


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

คำตอบ:


24

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

อัลกอริธึมที่น่าจะเป็นคือการใช้การโยนเหรียญและการทำงาน "เกือบตลอดเวลา" เป็นตัวอย่างที่สุ่มตัวแปรของการทำงานในเวลาที่ quicksortในความคาดหวัง (และมีโอกาสสูง) แต่ถ้าคุณโชคร้ายอาจจะใช้เวลามากที่สุดเท่าที่2) อัลกอริธึมน่าจะเป็นจริงและคอมพิวเตอร์ของคุณใช้เมื่อสร้างคีย์ RSA (เพื่อทดสอบว่าปัจจัยสองประการของรหัสลับของคุณนั้นดีเลิศ) อัลกอริธึมที่น่าจะเป็นซึ่งไม่ได้ใช้การโยนเหรียญบางครั้งเรียกว่า "deterministic"Θ ( n 2 )Θ(nlogn)Θ(n2)

อัลกอริธึมที่ไม่สามารถกำหนดได้เป็นสิ่งที่ "ต้องการคำใบ้" แต่ถูกต้องเสมอ: ไม่สามารถถูกหลอกได้โดยการให้คำใบ้ผิด ตัวอย่างนี่คืออัลกอริธึมที่ไม่ได้กำหนดค่าไว้ซึ่งเป็นปัจจัยจำนวนเต็ม : เดาการแยกตัวประกอบของและตรวจสอบว่าปัจจัยทั้งหมดนั้นมีความสำคัญ (มีอัลกอริทึม อัลกอริทึมนี้เร็วมากและปฏิเสธคำแนะนำที่ผิด คนส่วนใหญ่คิดว่าอัลกอริทึมแบบสุ่มไม่สามารถแยกจำนวนเต็มอย่างรวดเร็ว เห็นได้ชัดว่าการคำนวณรูปแบบนี้ไม่เหมือนจริงnnn

ทำไมเราถึงไม่สนใจอัลกอริธึมที่ไม่ได้กำหนด? มีคลาสของปัญหาที่เรียกว่า NP ซึ่งประกอบด้วยปัญหาการตัดสินใจที่มีอัลกอริทึมที่ไม่ได้กำหนดไว้อย่างมีประสิทธิภาพ คนส่วนใหญ่คิดว่าปัญหาที่ยากที่สุดในชั้นเรียนที่เรียกว่าปัญหาที่เกิดขึ้นโดยสมบูรณ์นั้นไม่มีอัลกอริธึมที่กำหนดขึ้นอย่างมีประสิทธิภาพ สิ่งนี้เรียกว่าคำถาม P vs NP เนื่องจากปัญหาตามธรรมชาติหลายอย่างเป็นปัญหาแบบสมบูรณ์ดังนั้นจึงเป็นเรื่องที่น่าสนใจที่จะทราบว่าในความเป็นจริงแล้วพวกเขาไม่สามารถแก้ไขได้อย่างมีประสิทธิภาพในกรณีที่เลวร้ายที่สุด (ในทางปฏิบัติบ่อยครั้งที่กรณีที่เกิดขึ้นในทางปฏิบัติ


ขอบคุณ! (1) ฉันจำได้ว่าปัญหา NP เป็นปัญหาที่สามารถแก้ไขได้โดยอัลกอริทึมบนเครื่องทัวริงแบบ nondeterministic ในเวลาพหุนาม ดังนั้น "อัลกอริทึมบนเครื่องทัวริง nondeterministic" และ "อัลกอริทึม nondeterministic บนทัวริงเครื่องกำหนด" ในบางแง่มุม? (2) คุณคิดว่าอัลกอริทึมแบบ probabalistic และอัลกอริทึมแบบสุ่มเป็นแนวคิดเดียวกันหรือไม่ (3) คุณคิดว่าวิกิพีเดียกล่าวว่าอัลกอริธึมที่เกิดขึ้นพร้อมกันและอัลกอริธึมแบบ probabalistic เป็นอัลกอริธึมแบบ nondeterministic สองชนิดที่ผิดหรือเปล่า?
ทิม

1
ฉันไม่คิดว่ารสชาติของใบรับรองของ nondeterminism ทำหน้าที่ชี้แจงความแตกต่างด้วยการสุ่ม
กราฟิลส์

(1) ใช่ทั้งสองเหมือนกัน (2) เหล่านี้เป็นสองชื่อสำหรับแนวคิดเดียวกัน (3) Wikipedia ยกตัวอย่างบางส่วนของอัลกอริธึมประเภทอื่นแม้ว่างานนำเสนออาจจะทำให้เข้าใจผิด อัลกอริธึมแบบขนานและความน่าจะเป็นไม่ใช่แบบไม่ได้กำหนดไว้ล่วงหน้า
Yuval Filmus

4
@ShelbyMooreIII ไม่ใช่ระดับมีความหมายทางเทคนิคที่เฉพาะเจาะจงมากในทฤษฎีการเรียกซ้ำและวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี
Yuval Filmus

1
ถ้าโปรดระบุความคิดเห็นที่คุณคิดว่าไม่สร้างสรรค์หรือล้าสมัย เราจะลบพวกมันออก
ราฟาเอล

15

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

Nondeterminism หมายถึงบางส่วนของอัลกอริทึมนั้นอยู่ภายใต้หรือไม่ได้ระบุไว้ ตัวอย่างเช่น "int i = ตัวเลขคู่ระหว่าง 0 ถึง n" ไม่ได้รับการระบุด้านล่าง ซึ่งหมายความว่าไม่มีลักษณะการทำงานเฉพาะที่ระบุ ณ จุดนี้

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

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

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

คำจำกัดความที่น่าสนใจเกี่ยวกับความถูกต้องของอัลกอริธึม nondeterministic คือ "อัลกอริธึมคำนวณสิ่งที่ฉันต้องการให้คำนวณเสมอสำหรับลำดับตัวเลือกบางอย่างที่ฉันได้รับอนุญาตให้ทำ" ซึ่งหมายความว่าอาจมีตัวเลือกที่ผิดในแง่ที่ว่าพวกเขาทำให้อัลกอริทึมสร้างคำตอบที่ไม่ถูกต้องหรือแม้แต่ในวงที่ไม่สิ้นสุด ในตัวอย่าง "เลือกเลขคู่ใด ๆ ระหว่าง 0 ถึง n" บางที 4 และ 16 อาจเป็นตัวเลือกที่ถูกต้อง แต่ตัวเลขอื่น ๆ ทั้งหมดนั้นผิดและตัวเลขเหล่านี้อาจแตกต่างกันไปตามอินพุตผลลัพธ์บางส่วนและตัวเลือกที่ทำจนถึงปัจจุบัน

เมื่อใช้ในวิทยาการคอมพิวเตอร์ nondeterminism มักจะถูก จำกัด ให้เลือก nondeterministically ทั้ง 0 หรือ 1 อย่างไรก็ตามถ้าคุณเลือกบิตเช่น nondeterministically คุณสามารถสร้างตัวเลข nondeterministic ยาวหรือวัตถุอื่น ๆ เช่นเดียวกับการเลือก nondeterministic (ถ้าเคย) จำกัด การบังคับใช้ของมัน - ถ้าการบังคับใช้มี จำกัด , nondeterminism มีพลังมากเกินไปในสถานที่แรก

Nondeterminism เป็นเครื่องมือที่มีประสิทธิภาพเทียบเท่ากับอัลกอริธึมที่ขึ้นกับใบรับรองซึ่งก็คืออัลกอริทึมที่ตรวจสอบคุณสมบัติที่กำหนดอินสแตนซ์และใบรับรองสำหรับคุณสมบัตินั้น คุณสามารถคาดเดาใบรับรองได้ในทิศทางเดียวและคุณสามารถให้ใบรับรองที่มีคำตอบ 'ถูกต้อง' ทั้งหมดสำหรับการเดา nondeterministic ที่ 0 และ 1 ของโปรแกรมของคุณสำหรับทิศทางอื่น

หากเราทิ้งเวลาลงไปในส่วนผสมแล้วสิ่งต่าง ๆ ก็น่าสนใจยิ่งขึ้น เวลาทำงานของอัลกอริทึม nondeterministic มักจะนำไปเป็นตัวเลือกขั้นต่ำ (ขวา) ทั้งหมด อย่างไรก็ตามตัวเลือกอื่น ๆ อาจทำให้เวลาการทำงานแย่ลงอย่างมาก (ซึ่งอาจแย่กว่าหรือต่ำกว่าค่าต่ำสุด) แบบไม่มีสัญญาณ นี่คือเหตุผลที่เราใช้เวลาน้อยที่สุด: เราไม่สนใจกรณีแปลก ๆ เหล่านี้

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

PZPPNP


1
O(|s|)s

14

กล่าวโดยย่อ: การไม่กำหนดระดับหมายถึงการมีทางเลือกที่หลากหลายและถูกต้องเท่าเทียมกันในการคำนวณต่อไป การสุ่มหมายถึงการใช้แหล่งภายนอกของบิต (สุ่ม) เพื่อเป็นแนวทางในการคำนวณ


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

(ab)(ac)

NFA
[ แหล่งที่มา ]

a(ab)(ac)a

จุดสำคัญที่นี่คือการยอมรับถูกกำหนดเป็น "ยอมรับถ้ามีการเรียกใช้การยอมรับ" สำหรับ NFA เกณฑ์การดำรงอยู่นี้สามารถตีความได้ว่า "คาดเดาถูกเสมอ" ถึงแม้จะไม่มีการคาดเดาที่แท้จริง

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


การสุ่มนั้นแตกต่างกันมาก หากเราแยกย่อยระบบอัตโนมัติ / โปรแกรมจะไม่มีตัวเลือกมากมายสำหรับการดำเนินการต่อไป เมื่อสุ่มบิตถูกวาดแล้วข้อความถัดไปจะถูกกำหนดโดยเฉพาะ:

if ( rand() > 5 )
  do_stuff();
else
  do_other_stuff();

ในแง่ของออโต้ จำกัด ให้พิจารณาสิ่งนี้:

PFA
[ แหล่งที่มา ]

{a,b,c}10

Σ×ΠΠ


หมายเหตุสุดท้ายประการหนึ่ง: เราสามารถเห็นได้ว่าลัทธิ nondeterminism เป็นแนวคิดทางทฤษฎีล้วนๆไม่สามารถนำไปปฏิบัติได้! แล้วทำไมเราถึงใช้มัน?

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

  2. การแปลระหว่างตัวแบบมักจะตรงไปตรงมามากขึ้นหากอนุญาติไม่อนุญาตให้มีในรูปแบบเป้าหมาย ตัวอย่างเช่นพิจารณาการแปลงนิพจน์ทั่วไปเป็น DFA: วิธีปกติ (และแบบง่าย) คือการแปลเป็น NFA และกำหนดค่านี้ ฉันไม่ได้ตระหนักถึงการก่อสร้างโดยตรง

  3. นี่อาจเป็นปัญหาด้านวิชาการ แต่เป็นที่น่าสนใจว่าลัทธิ nondeterminism สามารถเพิ่มพลังของอุปกรณ์ได้ นี่ไม่ใช่กรณีสำหรับเครื่องจักรออโต จำกัด และเครื่องจักรทัวริงซึ่งพิสูจน์ได้ว่าเป็นอุปกรณ์โมเดลเครื่องจักรที่ได้รับความนิยมมากที่สุด แต่ตัวอย่างเช่นเครื่องควบคุมอัตโนมัติแบบกำหนดค่าอัตโนมัติแบบกำหนดค่าได้, Büchiออโตมาตะและออโตทรีต้นไม้จากบนลงล่าง


  1. ดูคำถามนี้ใน cstheory.SEสำหรับตัวอย่าง
  2. ดูที่นี่ , ที่นี่และที่นี่ (โจทย์ 1.6.2)ตามลำดับ

ดังนั้นเนื่องจากในการเขียนโปรแกรมเราไม่สามารถสร้างหลาย ๆ "ถ้าอื่น" ที่มีเงื่อนไขเดียวกันได้หรือไม่นั่นเป็นเหตุผลที่บางครั้งความน่าจะเป็น / น้ำหนักถูกรวมเข้ากับเงื่อนไขหรือไม่
kate

@ kate ฉันไม่รู้ว่าคุณหมายถึงอะไร ภาษาโปรแกรม - heck คอมพิวเตอร์! - ถูกกำหนดโดยเนื้อแท้ เราสามารถสร้างภาพลวงตาของการสุ่มโดยใช้อินพุต PRNG และ trule random (อะไรก็ตามที่มีความหมาย) อินพุต
กราฟิลส์

14

คุณควรระวังว่ามีคำจำกัดความที่แตกต่างกันสองประการเกี่ยวกับลัทธิ nondeterminism ที่ถูกโยนทิ้งไปที่นี่

  1. ตามที่วิกิพีเดียกำหนดไว้นั่นก็คือ "ไม่ใช่ระดับ" ซึ่งก็คืออัลกอริทึมใด ๆ ที่ไม่ได้มีพฤติกรรมเหมือนกันในอินพุตเดียวกันเสมอไป อัลกอริธึมแบบสุ่มเป็นกรณีพิเศษของอัลกอริทึม "ไม่ได้กำหนดไว้" เพราะมันเหมาะกับคำจำกัดความตามที่ฉันเพิ่งให้มา

  2. แบบจำลองการคำนวณของ Nondeterministic (เช่นเครื่องทัวริงแบบกำหนดค่าไม่ได้) เป็นแบบจำลองเชิงทฤษฎีของการคำนวณ พวกเขาอาจมีหลายเส้นทางที่เป็นไปได้ของการดำเนินการและพวกเขา "ยอมรับ" หากมีเส้นทางเหล่านั้นยอมรับ คุณควรสังเกตว่ามันไม่ใช่ของจริง ไม่มีวิธีใดที่จะรันอัลกอริธึมที่เป็น nondeterministic ในแง่นี้แม้ว่าคุณจะสามารถจำลองด้วยอัลกอริทึมแบบสุ่มหรือแบบกำหนดแน่นอน

ใน CS CS หมายถึง nondeterminism มักจะหมายถึง (2) ดังนั้นคำจำกัดความของ Wikipedia ที่คุณให้ (ซึ่งก็คือ (1)) ทำให้เข้าใจผิด คำตอบส่วนใหญ่ที่ได้รับมาจนถึงตอนนี้อธิบาย (2) ไม่ใช่ (1)


ตาม 1) Quicksort แบบสุ่มเป็นอัลกอริธึมที่กำหนดขึ้น ฉันไม่แน่ใจว่าเป็นคำศัพท์ที่มีประโยชน์ ฉันเดาว่า 1) สามารถอธิบายได้ว่าเป็นมุมมอง "กล่องดำ" ในขณะที่ 2) ตรวจสอบอัลกอริทึม / เครื่องที่ใช้งานจริง เนื้อหา CS มีทั้งหมดประมาณ 2); ฉันจะกำหนดมุมมอง 1) ให้กับวิศวกรรมซอฟต์แวร์ (แบบแยกส่วน)
Raphael

@ ราฟาเอลจุดดีฉันควรแก้ไข (1) เพื่อพูดว่า "มีพฤติกรรมแบบเดียวกันกับอินพุตเดียวกัน" ตกลงเกี่ยวกับการเลือก (2) มากกว่า (1)
usul

"พฤติกรรม" นั้นคลุมเครือในรูปแบบกล่องดำกับกล่องสีขาว :)
Raphael

แน่นอน แต่ฉันคิดว่าฉันเห็นความแตกต่างที่สำคัญระหว่าง Turing Machine แบบไม่เป็นทางการที่กำหนดอย่างชัดเจน (2) และคลุมเครือ / คลุมเครือ "ไม่กำหนด" (1) ซึ่งอาจรวมถึงการสุ่ม (ในขณะที่ NTM ไม่) นั่นคือทั้งหมดที่ฉันต้องการจะพูด ....
usul

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

1

การทบทวนเรื่องนี้เนื่องจากการวิจัยที่เกี่ยวข้องที่ฉันทำความขัดแย้งระหว่างฉันกับผู้อื่นที่ได้รับคำตอบอาจถูกหลอมรวมเป็นความเข้าใจแบบองค์รวมที่เราทุกคนถูกต้อง แต่ IMO คำศัพท์ทางวิทยาศาสตร์คอมพิวเตอร์ที่นำมาใช้“ nondeterminism ที่ถูก จำกัด ขอบเขต” นั้นเป็น oxymoron ที่ไม่ถูกต้อง (ซึ่งเป็นประเด็นของฉันมาก่อน)

ประเด็นสำคัญคือการแยกแยะความแตกต่างระหว่างลัทธิ nondeterminism ที่มีขอบเขตและไม่ จำกัด [1]

เครื่องจักรทัวริงของ Nondeterministic (aka“ NTMs”) ได้จำกัดลัทธิ nondeterminism ในแต่ละช่วงการเปลี่ยนสถานะที่มีความเป็นไปได้จำนวนจำกัดเช่นจำนวนของโปรแกรม (aka“ การกำหนดค่า”) นั้นมี จำกัด เทปยังคงไม่ถูก จำกัด ดังนั้นหลักฐานการยกเลิกยังคงไม่สามารถตัดสินใจได้ แต่สำหรับอินพุตที่กำหนดใด ๆ ที่หยุดทำงานเอาต์พุตจะถูกกำหนดและถูกกำหนดขอบเขตในเวลา ― เช่นสำหรับอินพุตใด ๆ ผลลัพธ์จะถูกกำหนดไว้หรือไม่สิ้นสุด NTMs ยังดำเนินการกำหนดค่าที่เป็นไปได้ทั้งหมดในแบบขนานดังนั้นพวกเขาจึงเรียกใช้งานได้เร็วกว่าการจำลอง NTMs บนเครื่องทัวริงที่กำหนดไว้ล่วงหน้า (aka“ DTMs”) [2]

ไม่มีความสัมพันธ์ระหว่างอินพุตกับผลลัพธ์ใน NTMs เนื่องจากผลลัพธ์จะเหมือนกันเสมอสำหรับอินพุตหรือสถานะเริ่มต้นใด ๆ ซึ่งเห็นได้ชัดเพราะพวกมันสามารถถูกจำลองด้วย DTM โดยไม่มีการสุ่มเพิ่มใด ๆ [2] Undecidable ไม่ได้เป็นสิ่งที่ตรงกันข้ามของการกำหนดเพราะไม่หยุดก็ยังเป็นผลที่กำหนด เครื่องจักรที่กำหนดได้จะมีผลลัพธ์เหมือนกันสำหรับอินพุตที่กำหนดแม้ว่าผลลัพธ์นั้นจะไม่หยุดชะงัก nondeterminism ที่แปลเป็นภาษาท้องถิ่นของ NTMs อยู่ในการเปลี่ยนสถานะของอัลกอริทึมการดำเนินการแต่ละสถานะ มันไม่สามารถระบุได้ว่านิรนัยใดที่พา ธ ของต้นไม้อาจยุติการให้บริการสถานะเอาท์พุท แต่ความสามารถในการตัดสินใจไม่ได้นั้นไม่ใช่สิ่งที่มิอาจมองข้ามได้ ดังนั้นคำว่า "ลัทธิเอนเดอร์มินนิสต์ขอบเขต" จึงมีจุดประสงค์เพื่ออธิบายถึงความไม่แน่นอนที่กำหนดไว้ภายในเครื่องของรัฐ แต่ไม่ใช่ความสัมพันธ์ของอินพุตกับผลลัพธ์ ดังนั้นแนวคิดของ "ขอบเขต" ฉันยังคงคิดว่าคำว่า "ลัทธิ nondeterminism" เป็นรูปแบบของบทกวีและมันอาจถูกอธิบายได้อย่างแม่นยำมากขึ้นว่าเป็น

ในขณะที่สำหรับอินพุตหรือสถานะเริ่มต้นใด ๆnondeterminism ที่ไม่มีขอบเขต (aka“ indeterminism”) มีจำนวนของสถานะที่เป็นไปได้มากมาย nondeterminism ที่ไม่ได้ จำกัด ไม่เพียง แต่เกี่ยวข้องกับจำนวนของการกำหนดค่าที่เป็นไปได้ของโปรแกรม แต่บางสถานะภายนอกที่ไม่ได้ จำกัด ซึ่งไม่ได้เป็นส่วนหนึ่งของอินพุตหรือสถานะเริ่มต้นเช่นความล่าช้าที่ไม่ได้ จำกัด และผลลัพธ์อาจแตกต่างกันในการประมวลผลซ้ำสำหรับอินพุตหรือเงื่อนไขเริ่มต้นเดียวกัน ดังนั้นจึงไม่ใช่ความสัมพันธ์ที่กำหนดขึ้นระหว่างอินพุตและผลลัพธ์ [3]

อัลกอริธึมแบบสุ่มและความน่าจะเป็นใช้ nondeterminism บางอย่างนั่นคือการเลือกแบบสุ่มของการกำหนดค่าที่เป็นไปได้ที่อาจถูก จำกัด ขอบเขตในจำนวนการกำหนดค่า แต่พวกเขาไม่ได้ดำเนินการการกำหนดค่าที่เป็นไปได้ทั้งหมดเช่น NTMs ดังนั้นพวกเขาจะไม่ได้กำหนดไว้เว้นแต่จะสุ่มกำหนด (เช่น PRNG) และสถานะเริ่มต้นของเอนโทรปีสำหรับการสุ่มถือเป็นส่วนหนึ่งของการป้อนข้อมูล

[1] https://en.wikipedia.org/w/index.php?title=Unbounded_nondeterminism&oldid=710628370#Nondeterministic_automata

[2] https://en.wikipedia.org/w/index.php?title=Non-deterministic_Turing_machine&oldid=754212081#Equivalence_with_DTMs

[3] เฮวิตต์เมย์เยอร์และ Szyperski: ดารารุ่น (ทุกสิ่งที่คุณอยากจะรู้ว่า ... ) ข้ามไปที่เครื่องหมาย 17:44 นาที


1
ฉันไม่เห็นว่าวิธีนี้ตอบคำถาม
เดรียน

1
@adrianN คำตอบที่ออกมาอธิบายถึงสิ่งที่ nondeterminism จริง ๆ จากนั้นอธิบายถึงความสัมพันธ์ของอัลกอริธึมแบบสุ่ม คำถามที่ถามถึงความสัมพันธ์ทั้งสอง การเล่นชนิดหนึ่ง ตอบคำถามแล้ว
Shelby Moore III

0

นอกเหนือจากคำตอบทั้งหมดที่อธิบายความแตกต่างฉันมีตัวอย่างที่อาจช่วยให้คุณได้สิ่งที่พวกเขาต้องการจะพูด
พิจารณาโยนเหรียญคุณอาจได้รับHหรือT ถ้าโยนเหรียญเป็นแบบสุ่มก็มีแนวโน้มที่ออกมาจาก 1000 เหรียญกลมๆ 500 จะเป็นHและมันค่อนข้างน่าที่ 999 ออกจากพวกเขาจะเป็นH แต่ถ้าการโยนเหรียญไม่สามารถกำหนดได้เราไม่สามารถบอกได้ว่าการได้รับ 999 Hนั้นไม่น่าเป็นไปได้


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

-6

อัลกอริธึมแบบสุ่ม (เวลาพหุนามผลบูลีน) อยู่ในระดับความซับซ้อนของการคำนวณ RP ซึ่งเป็นเซตย่อยของ NP ที่อัลกอริธึมแบบบูลีนที่ไม่ใช่แบบกำหนดเวลา (พหุนามผลบูลีน) อัลกอริทึมอยู่

ความซับซ้อนของการจัดกลุ่มเป็นเรื่องเกี่ยวกับการลดปัญหาในชุดหนึ่งไปอีกชุดหนึ่ง ดังนั้น RP ⊆ NP จึงไม่รวมถึงความเป็นไปได้ของอัลกอริธึมแบบสุ่มซึ่งยังไม่สามารถกำหนดได้เนื่องจากความหมายของเซ็ตซูเปอร์เซ็ตประกอบด้วยเซ็ตย่อย เซตหมายความว่าอัลกอริธึม RP ทุกตัว (หรืออัลกอริธึม RP สมบูรณ์) สามารถลดลงเป็นอัลกอริธึม NP บางอัน (หรืออัลกอริธึม NP สมบูรณ์) P คือชุดย่อยของ RP เพราะทุกปัญหาใน P สามารถลดลงเป็นปัญหาใน RP ที่ปริมาณของเอนโทรปีที่ไม่สามารถควบคุมได้คือ 0

สิ่งสำคัญคือสิ่งนี้คล้ายคลึงกับปัญหาทุกอย่างใน NC (การคำนวณแบบขนาน) สามารถลดลงเป็นปัญหาใน Pโดยจำลองการคำนวณแบบขนานในการลดปัญหาอนุกรมใน P แต่มันยังไม่ได้พิสูจน์ว่าการสนทนาเป็นจริงเช่น ว่าทุกปัญหาใน P จะลดลงไปเป็นปัญหาใน NC หรือพิสูจน์แล้วว่าไม่เป็นความจริงนั่นคือข้อพิสูจน์ที่ไม่น่าเชื่อว่าปัญหา P-Complete จะไม่สามารถลดได้ถึงปัญหาใน NC อาจเป็นไปได้ว่ามีปัญหาที่เรียงลำดับโดยเนื้อแท้และไม่สามารถคำนวณแบบขนานได้ แต่เพื่อพิสูจน์ว่าการพิสูจน์ว่า P ≠ NC ดูเหมือนจะไม่น่าเชื่อถือ (ด้วยเหตุผลที่เกินความจริงที่จะอภิปรายในคำตอบนี้)

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

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

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

ฉันได้เพิ่มความคิดเห็นต่อไปนี้ด้านล่างคำตอบที่ได้รับความนิยมสูงสุดในขณะนี้ในหัวข้ออื่นที่ถามคำถามที่คล้ายกัน

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

การเพิ่มความคิดเห็นที่ดีที่สุดบางอย่างเพื่อเพิ่มความกระจ่างในประเด็นของฉันเกี่ยวกับความแตกต่างที่เด่นชัดระหว่างการสุ่มและการไม่ระบุชื่อ

มันค่อนข้างหรูหราและง่ายที่จะเห็นความแตกต่างเมื่อคุณหยุดยุ่งกับมันโดยพยายามอธิบายจากมุมมองของการปฏิบัติงานแทนที่จะมองจากมุมมองเอนโทรปีของเอนโทรปี

@reinierpostทุกคนกำลังพูดถึงความแตกต่างระหว่างการสุ่มและ nondeterministic สิ่งนี้ทำให้ความคิดเห็นของคุณยุ่งเหยิง อัลกอริทึมตอบสนองต่อการทำงานร่วมกันของเอนโทรปีของตัวแปร (ตัวแปร) และรหัสที่มา (คงที่) เอนโทรปีภายใน Nondeterminism เป็นเอนโทรปีแบบไม่ จำกัด เอนโทรปีคงที่ยังสามารถเป็นมากมายภายในเช่นการขยายตัวของตัวเลขπ Randomized คือบางส่วนของเอนโทรปีไม่ได้เชื่อมโยงกับอินพุตตามที่กำหนดไว้ (เช่นมันอาจมาจากการเรียกระบบ/dev/randomหรือการจำลองแบบสุ่มเช่น NFA หรือ PRNG)

.

@Raphaelคำจำกัดความเป็นทางการของ non-deterministic finite automa (NFA) คือ entropy input แบบ จำกัด (data: the 5-tuple) ดังนั้น NFA ทุกคนสามารถทำงานบนเครื่องทัวริงที่กำหนดได้เช่นไม่ต้องใช้เครื่องทัวริงที่สมบูรณ์แบบ ดังนั้น NFAs จึงไม่อยู่ในชั้นของปัญหาที่เกิดขึ้น ความคิดของ "nondeterminism" ใน NFA ก็คือการกำหนด (ในขณะที่ชัดเจนเพราะทุก NFA สามารถเปลี่ยนเป็น DFA) ไม่ได้ขยายอย่างชัดเจน - ไม่เหมือนกับ nondeterminism ของการคำนวณ

.

@ ราฟาเอลที่อ้างว่า "ไม่ใช่ระดับ" ใน NFAs นั้นเป็นแบบแผนจริงๆคือความรู้สึกของคำจำกัดความของฉันของความแตกต่างระหว่างการสุ่มและ nondeterminism คำจำกัดความของฉันคือการสุ่มคือที่บางส่วนของเอนโทรปีที่ไม่ได้อยู่ภายใต้การควบคุมความรู้ (หรือการขยายตัวที่ไม่ต้องการอย่างชัดเจนในกรณีของ NFA) ของอินพุตไปยังโปรแกรมหรือฟังก์ชัน ในขณะที่ความเป็นจริงที่ไม่สามารถรู้เอนโทรปีในกรณีใด ๆ เพราะมันไม่มีขอบเขต นี่คือสิ่งที่แตกต่างแบบสุ่มจากลัทธิ nondeterminism ดังนั้น NFA ควรเป็นตัวอย่างของอดีตไม่ใช่อย่างหลังที่คุณอ้างสิทธิ์

.

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

พจนานุกรมเป็นเครื่องมือ เรียนรู้การใช้งาน

คำคุณศัพท์แบบสุ่ม

สถิติ. หรือกำหนดลักษณะกระบวนการของการเลือกซึ่งแต่ละรายการของชุดมีความน่าจะเป็นเท่ากันในการเลือก

เป็นหรือเกี่ยวข้องกับชุดหรือองค์ประกอบของชุดแต่ละองค์ประกอบที่มีความน่าจะเป็นที่เกิดขึ้นเท่ากับ

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

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

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

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

ดังนั้นนี่คือการบอกเราว่าอัลกอริทึมที่กำหนดขึ้นจะต้องถูกกำหนดอย่างสมบูรณ์โดยสถานะอินพุตของฟังก์ชั่นนั่นคือเราจะต้องสามารถพิสูจน์ได้ว่าฟังก์ชั่นจะยุติ (หรือไม่สิ้นสุด) และไม่สามารถบอกได้ ทั้งๆที่ความพยายามอันยุ่งเหยิงของวิกิพีเดียในการอธิบาย nondeterministic สิ่งที่ตรงกันข้ามกับสิ่งที่กำหนดไว้ข้างต้นโดยวิกิพีเดียเป็นสิ่งที่กำหนดไว้ข้างต้นเป็นอัลกอริธึมที่รัฐอินโทร และวิธีเดียวที่สถานะอินพุตสามารถกำหนดได้ไม่ดีคือเมื่อไม่มีขอบเขต (ดังนั้นจึงไม่สามารถกำหนดล่วงหน้าล่วงหน้าได้ล่วงหน้า) นี่คือสิ่งที่แตกต่างจากทัวริงเครื่อง nondeterministic (และโปรแกรมในโลกแห่งความเป็นจริงมากมายที่เขียนด้วยภาษาทัวริงที่สมบูรณ์ทั่วไปเช่น C, Java, Javascript, ML, ฯลฯ .. ) จาก TM ที่กำหนดขึ้นและภาษาโปรแกรมเช่น HTML, สูตรสเปรดชีต Coq, Epigram,

ในทฤษฎีความซับซ้อนในการคำนวณอัลกอริธึม nondeterministic นั้นเป็นสิ่งที่ทุกขั้นตอนที่เป็นไปได้สามารถอนุญาตให้เกิดการต่อเนื่องหลาย ๆ ครั้ง (จินตนาการว่าชายคนหนึ่งกำลังเดินไปตามทางเดินในป่าและทุกครั้งที่เขาก้าวต่อไป ที่จะใช้). อัลกอริธึมเหล่านี้ไม่สามารถหาทางแก้ปัญหาสำหรับเส้นทางการคำนวณที่เป็นไปได้ แม้กระนั้นพวกเขาจะรับประกันว่าจะมาถึงทางออกที่ถูกต้องสำหรับบางเส้นทาง (กล่าวคือผู้ชายที่เดินผ่านป่าอาจพบกระท่อมของเขาหากเขาเลือกเส้นทางที่ "ถูกต้อง" บางส่วน) ตัวเลือกสามารถตีความได้ว่าเป็นการเดาในกระบวนการค้นหา

วิกิพีเดียและคนอื่น ๆ พยายามทำให้การสุ่มแบบสุ่มด้วย nondeterminism แต่อะไรคือจุดของการมีแนวคิดสองอย่างถ้าคุณจะไม่แยกพวกมันออกอย่างละเอียด?

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

การรวมเอนโทรปีแบบสุ่มในสถานะของอัลกอริทึมไม่จำเป็นทำให้ไม่สามารถกำหนดได้ ตัวอย่างเช่น PRNG สามารถมีการกระจายทางสถิติแบบติดตั้งได้ที่ต้องการ แต่ก็สามารถกำหนดได้อย่างสมบูรณ์

แนวความคิดที่ตั้งฉากกันคือสิ่งที่คน IQ ต่ำ ฉันคาดหวังดีกว่านั้นจากชุมชนนี้!


4
นั่นไม่ได้หมายความว่าลัทธิเอนเดอร์มินนิซึมหมายถึงวิทยาศาสตร์คอมพิวเตอร์ อัลกอริธึม Nondeterministic ไม่ใช่ "ไม่สามารถคาดเดาได้"
David Richerby

4
ฉันตอบไม่มีอะไรเกี่ยวข้องกับวิธีการที่ไม่กำหนดระดับในการตอบสนองอัตโนมัติ ทฤษฎีการคำนวณ Shelby คุณควรหยุดเผาหนังสือเล่มนั้น หากคุณไม่เข้าใจคำตอบอื่น ๆ ฉันไม่คิดว่าเราสามารถช่วยคุณในการแสดงความคิดเห็นได้
Raphael

3
@ShelbyMooreIII คุณเข้าใจผิดอย่างสมบูรณ์ว่าความหมายของ nondeterminism ในวิทยาศาสตร์คอมพิวเตอร์เป็นอย่างไร มันไม่มีส่วนเกี่ยวข้องใด ๆ กับเอนโทรปี ไม่ได้หมายความว่าคุณคิดว่ามันหมายความว่า: นั่นคือเหตุผลที่คุณคิดว่าคำตอบอื่น ๆ ทั้งหมดนั้นผิด บางทีชื่ออาจจะถูกเลือกไม่ดี แต่ก็อยู่ข้างๆ มันมีความหมายเฉพาะในวิทยาการคอมพิวเตอร์ซึ่งแตกต่างจากความหมายที่มีในวิทยาศาสตร์อื่น ๆ คุณกำลังพยายามใช้คำจำกัดความที่ไม่ถูกต้องและนั่นคือสาเหตุที่ทุกอย่างดูเหมือนผิดกับคุณ
David Richerby

4
"การใช้คำว่า nondeterminism เมื่อพูดถึงทฤษฎีความซับซ้อนในการคำนวณ [... ] นั้นชัดเจนเกี่ยวกับเอนโทรปี" - ไม่มันไม่ใช่
Raphael

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