ทำไมการไม่กำหนดระดับความคิดจึงเป็นแนวคิดที่มีประโยชน์


23

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

เมื่อเราพยายามที่จะสร้างแบบจำลองระบบจริงทำไมรวมถึง nondeterminism ในทฤษฎีออโตมาตะ?


1
มันอาจจะช่วยถามว่าใครอธิบาย NTMs ตอนแรกและวัตถุประสงค์ / เป้าหมายของพวกเขาคืออะไรในเวลานั้น
usul

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

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


@keshlam ฉันเพิ่มประเด็นในคำตอบแล้ว @ Tanmoy อ่านอัปเดตคำตอบของฉัน
Grijesh Chauhan

คำตอบ:


16

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

(01)*01(0 + 1)*  

ทีนี้สมมติว่าถ้าคุณถูกขอให้วาด DFA สำหรับภาษาที่สร้างโดย RE ข้างต้น

ด้วยความรู้ของฉันของการออกแบบ FAs ฉันรู้ว่า(1)เมื่อ*อยู่ในการแสดงออกปกติระบุฉันต้องห่วงในเอฟเอที่สอดคล้องกัน (2)การดำเนินงาน concatenate เช่นหมายถึงสิ่งที่ชอบ:a.b(q0)─a→(q1)─b→(q2)

ดังนั้นในความพยายามของฉันฉันจะวาด NFA เช่น:

มะเดื่อ

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

  1. การวนซ้ำที่สถานะ q 0ควรใช้สำหรับ(01)*
  2. 01(หลังจาก(01)*) ให้(q0)─0→(q1)─1→(q2)
  3. (0 + 1)* ให้ลูปตัวเองที่สถานะ q 2สำหรับเลเบล 0, 1

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

มะเดื่อ 2

ส่วนอื่น ๆ โชคไม่ดีที่ไม่สามารถแปลงโมเดลที่ไม่ได้กำหนดค่าเป็นแบบกำหนดได้เสมอไปตัวอย่างเช่นคลาสสำหรับการกำหนดค่าลงโดยอัตโนมัติเป็นส่วนย่อยของคลาสของการกำหนดค่ากดลงอัตโนมัติ "ตรวจสอบvenn diagram " และคุณไม่สามารถแปลงได้เสมอ NPDA ลงใน PDA

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

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

ที่นี่ฉันอยากจะอ้างจาก Wikipedia การใช้อัลกอริทึม Nondeterministic :

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

ปัญหาจำนวนมากสามารถกำหนดแนวคิดผ่านอัลกอริธึม nondeterministic รวมถึงคำถามที่ไม่ได้รับการแก้ไขที่มีชื่อเสียงที่สุดในทฤษฎีการคำนวณ P vs NP

ในฐานะที่เป็น@keshlamยังกล่าวถึงเขาในการแสดงความคิดเห็น : "ไม่นิยม" คือในทางปฏิบัติใช้ในการอ้างถึงการคาดการณ์ใด ๆ ในผลของกระบวนการบางอย่าง ตัวอย่างเช่นโปรแกรมที่เกิดขึ้นพร้อมกันแสดงพฤติกรรมที่ไม่ได้กำหนดไว้ - การประมวลผลสองโปรแกรมที่มีอินพุตเดียวกันสามารถสร้างผลลัพธ์ที่แตกต่างกันได้ (หากไม่ใช้กลไกการควบคุมพร้อมกัน ) อ่านข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ใน"ประโยชน์ขององค์กรไม่แสวงหาโชคชะตา"

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


@Grijest: ขอบคุณมากสำหรับความซับซ้อนที่ซับซ้อนเพียงอย่างเดียว: "รูปแบบที่กำหนดขึ้นตรงข้ามแสดงถึงประสิทธิภาพลดลงและแก้ปัญหาที่ซ้ำซ้อนน้อยลง" - แต่ฉันคิดว่ารูปแบบที่กำหนดขึ้นนั้นมีประสิทธิภาพน้อยกว่า nondeterministic ซับซ้อนกว่า P. ใช่มั้ย)
tanmoy

@ แทนการใช้คำว่า "มีประสิทธิภาพ" จริงๆแล้วผิดและใช่คุณถูกต้องแล้วว่าโมเดลที่ไม่สามารถกำหนดได้นั้นมีความสามารถมากกว่าแบบกำหนดแน่นอน ระดับของปัญหาที่ครอบคลุมโดยตัวแบบกำหนดรูปแบบคือเซตย่อยของตัวแบบที่ไม่ใช่ตัวกำหนด
Grijesh Chauhan

ดังนั้นในรูปแบบที่กำหนดบริบทบริบท "มีประสิทธิภาพ" กว่าหนึ่ง nondeterministic (ตามที่คุณกล่าวถึง)
tanmoy

@ แทนสมมติว่าถ้าคุณต้องการดำเนินการเพิ่มเติม (เช่นต้องการแปลง FA เป็น RE หรืออธิบายหลักฐานสำหรับการปั๊มบทแทรกหรืออื่น ๆ .. ) จากนั้นแบบจำลองที่กำหนดจะให้ผลลัพธ์ที่ดีกว่า (ดังนั้นฉันบอกว่ามีประสิทธิภาพ)
Grijesh Chauhan

@tan คุณเข้าใจไวยากรณ์ที่คลุมเครือหรือไม่
Grijesh Chauhan

9

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

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


ฉันคิดว่าส่วนแรกของคำตอบของคุณเป็นความจริงที่ผิด ทำไมคุณคิดว่าออโตมาตะเกิดขึ้นก่อน? ทั้ง DFA และ NFA ถูกกำหนดไว้ 10 ปีหลังจาก Turing TM ที่กำหนดไว้ ดูการสนทนาใน cstheory
Artem Kaznatcheev

@ArtemKaznatcheev รุ่นเครื่องจักรทัวริงเป็นหุ่นยนต์และแน่นอนว่ามันมีมาก่อนคอมพิวเตอร์อย่างน้อยหนึ่งทศวรรษ
vonbrand

ใช่ แต่เมื่อมีคนพูดออโตมาตะพวกเขาไม่ได้หมายถึง TM แต่พวกเขาหมายถึงออโต้ จำกัด ของรัฐและส่วนขยายโดยตรง (พีดีเอ NPDA ฯลฯ ) ดูคำถามที่ฉันเชื่อมโยงสำหรับประวัติที่นั่นและคุณจะเห็นว่าทั้ง TM และสถาปัตยกรรม von Neumann ได้รับการพัฒนาโดยไม่ขึ้นอยู่กับสิ่งที่เราเรียกว่าทฤษฎีออโตมาตะ
Artem Kaznatcheev

4
@ArtemKaznatcheev, DFA / NFA, PDA, LBA, TM เป็นออโตมาตาทั้งหมด เช่นเดียวกับทรานสดิวเซอร์ (FA พร้อมเอาต์พุต, PDA พร้อมเอาต์พุต)
vonbrand

1
ย่อหน้าสุดท้ายผิด อารัมภบทถือกำเนิด GCL และยังอยู่ใกล้และเป็นกระแสหลัก อารัมภบทของหลักสูตรไม่ได้รับการออกแบบในสุญญากาศสร้างจากภาษาโปรแกรม nondeterministic ก่อนหน้านี้เช่น PLANNER เครดิตอาจไปที่ Golomb and Baumert "Backtrack Programming" จากปี 1965
นามแฝง

7

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

Nondeterminism ก็มีความสำคัญต่อความซับซ้อนในการคำนวณด้วยเช่นกันซึ่งมันใช้สำหรับกำหนดระดับ NP (คลาส NP ยังมีคำจำกัดความอื่น ๆ ที่เทียบเท่าเช่นการใช้พยาน)


เข้าใจคำตอบของคุณ แต่ไม่เข้าใจอย่างถูกต้องคุณช่วยอธิบายความจริงที่ว่าการสร้าง powerset สามารถทำได้อย่างง่ายดายโดยใช้ nondeterminism?
tanmoy

"Nondeterminism ก็มีความสำคัญต่อความซับซ้อนในการคำนวณเช่นกันซึ่งมันใช้สำหรับกำหนดระดับ NP" - ที่สนับสนุนความสำคัญของการไม่กำหนดระดับเฉพาะเมื่อเราคิดว่า NP เป็นแนวคิดที่มีประโยชน์ซึ่งจะเกิดขึ้นก็ต่อเมื่อการกำหนดระดับนั้นไม่เป็นประโยชน์
Raphael

@ ราฟาเอล NP-ครบถ้วนเป็นแนวคิดที่สำคัญโดยไม่คำนึงถึงท่าทางของคุณเกี่ยวกับการไม่กำหนด
Yuval Filmus

2
@Tanmoy หากคุณมี nondeterminism คุณไม่จำเป็นต้องมีการสร้าง powerset แต่น่าเสียดายที่คอมพิวเตอร์ที่แท้จริงมีการกำหนด อย่างไรก็ตามอาจเป็นการง่ายกว่าที่จะจำลอง NFA โดยตรงแทนที่จะเปลี่ยนเป็น DFA ก่อน ลองดูคำตอบที่ฉันลิงค์เพื่อดูรายละเอียดเพิ่มเติม
Yuval Filmus

4

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

  1. ใช้ในการสร้างแบบจำลองปัญหาจริง

    นอกจากนี้ออโตมาตาแบบไม่ จำกัด สามารถให้การแทนของภาษาที่มีขนาดกะทัดรัดมากขึ้น ตัวอย่างเช่นเป็นที่ทราบกันดีว่ามี NFA ซึ่ง DFA ที่เทียบเท่าขั้นต่ำจะมีขนาดใหญ่กว่าแบบเอ็กซ์โปเนนเชียล

  2. ใช้ในทางทฤษฎี

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


4

(นี่คือการเขียนซ้ำของคำตอบอื่น ๆ แต่ฉันจะโพสต์ต่อไป :)

คุณเขียน: หุ่นยนต์เป็นแบบนามธรรมของคอมพิวเตอร์ดิจิตอล

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

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

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

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


2

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


ไม่มีบริบทกับบริบทที่กำหนดได้ฟรีหรือไม่
อัลโต

@ ถึงสิ่งที่เกี่ยวกับมัน
babou

@Babou ฉันพยายามชี้ให้เห็นว่า "nondeterminism ไม่ใช่สิ่งที่มีประสิทธิภาพยิ่งกว่าระดับ" เป็นคำสั่งที่ผิด NPDA มีพลังมากกว่าพีดีเอ
อัลโต

1
@alto: ไม่คุณเข้าใจผิดคำสั่ง จากมุมมองการคำนวณพวกเขามีความเท่าเทียมกันอย่างเต็มที่เนื่องจากระดับของปัญหา (หรือภาษาถ้าคุณต้องการ) ที่คุณอาจแก้ปัญหาได้โดยอิสระว่าต้องการทรัพยากรการคำนวณเท่าไร และแน่นอนคุณสามารถจำลองเครื่อง nondeterministic กับเครื่องที่กำหนดขึ้นได้ อีกครั้งเวลาและพื้นที่ที่ต้องการไม่สำคัญในบริบทการคำนวณ
Massimo Cafaro

1
@MassimoCafaro ไม่สามารถตกลงกันได้ในทางทฤษฎี ในทางปฏิบัติดูเหมือนว่าฉันชอบพูดเล่นเกี่ยวกับความหมาย
อัลโต

2

การประดิษฐ์ของทัวริงเครื่องจักรใน 2479 โดยทัวริง แบบจำลอง FSM ได้รับการแนะนำโดยMcCulloch และ Pittsซึ่งเป็นนักประสาทวิทยาสองคนซึ่งเป็นแบบจำลองสำหรับกิจกรรมทางระบบประสาทในปี 1943 จากหน้าประวัติศาสตร์ของ Stanford CS :

ประวัติศาสตร์ที่น่าตื่นเต้นของออโตมาต้าที่ จำกัด กลายมาเป็นสาขาวิทยาศาสตร์คอมพิวเตอร์แสดงให้เห็นถึงการใช้งานที่หลากหลาย คนแรกที่จะพิจารณาแนวคิดของเครื่องจักร จำกัด - รัฐรวมถึงทีมนักชีววิทยาจิตวิทยานักคณิตศาสตร์วิศวกรและนักวิทยาศาสตร์คอมพิวเตอร์คนแรก พวกเขาทั้งหมดมีความสนใจร่วมกัน: เพื่อจำลองกระบวนการคิดของมนุษย์ไม่ว่าจะในสมองหรือในคอมพิวเตอร์ วอร์เรน McCulloch และวอลเตอร์พิตต์สอง neurophysiologists เป็นคนแรกที่จะนำเสนอคำอธิบายของออโตมาตา 2486 ในกระดาษชื่อ "ตรรกะแคลคูลัส Immanent ในประสาทกิจกรรม" ทำให้มีส่วนสำคัญในการศึกษาทฤษฎีโครงข่ายประสาททฤษฎี ออโตมาตะทฤษฎีการคำนวณและไซเบอร์เนติกส์ ต่อมานักวิทยาศาสตร์คอมพิวเตอร์สองคนคือ GH Mealy และ EF Moore วางทฤษฎีทั่วไปให้กับเครื่องจักรที่ทรงพลังยิ่งกว่าเดิมในเอกสารที่แยกต่างหากตีพิมพ์ในปี 1955-56 เครื่องจักร จำกัด - รัฐเครื่อง Mealy และเครื่อง Moore มีชื่อในการรับรู้ของการทำงานของพวกเขา

ไม่ใช่นักประวัติศาสตร์ CS แต่สงสัยว่าโมเดล McCulloch-Pitts ไม่ได้รวม nondeterminism และโมเดลMealy - Mooreทำในลักษณะที่เป็นธรรมชาติ / นามธรรมของแนวคิดทางการ / ทฤษฎี โปรดทราบว่า DFAs และ NFAs มีอำนาจการเป็นตัวแทนเดียวกันดังนั้นหากใครต้องการจำลองแบบระบบจริงก็มีให้เลือกเช่นกัน ความแตกต่างพื้นฐานอย่างหนึ่งคือ NFA อาจเล็กกว่า DFA ที่เทียบเท่ากันมาก (เช่นมีองค์ประกอบตามธรรมชาติของการบีบอัดข้อมูล / ข้อมูล) นอกจากนี้ยังมีแง่มุมทางธรรมชาติ / อะนาล็อกของความเท่าเทียมในการศึกษา NFA


3
เฮ้ฉันเห็นโปรไฟล์ของคุณและดูเหมือนว่ามีคนตั้งใจลงคะแนนของคุณ (ทุกที่ที่คุณมีเพียงสอง downvotes) ... คำตอบนี้ไม่ผิดคำตอบเพิ่มข้อมูลที่เป็นประโยชน์ +1
Grijesh Chauhan

0

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

อันที่จริงฉันมีความสับสนเกี่ยวกับกลไกของแบบจำลองแบบ nondeterministic ฉันมักจะสงสัยเกี่ยวกับเครื่องจักร nondeterministic เพราะมันเป็นเครื่องจักรที่ไม่ใช่เครื่องจักรกลที่ไม่มีอยู่จริงในโลกแห่งความเป็นจริง ฉันมักจะเปรียบเทียบ Automata กับคอมพิวเตอร์ยุคปัจจุบันของเราซึ่งกำหนดขึ้นอย่างสมบูรณ์ในธรรมชาติจริง ๆ แล้วฉันไม่เข้าใจโมเดล nondeterministic อย่างถูกต้อง ตอนนี้ฉันคิดว่าฉันเข้าใจโมเดลที่ไม่ใช่ผู้ควบคุมค่อนข้างดี: เครื่อง nondeterministic นั้นเป็นเครื่องจักรที่ตามเส้นทางของการประหารชีวิตซึ่งจะนำไปสู่การยอมรับของสตริง (โดยไม่มีการย้อนรอย) แต่สิ่งนี้จะเป็นไปได้อย่างไรในชีวิตจริง : เป็นไปไม่ได้ที่คอมพิวเตอร์ในยุคปัจจุบันจะฉลาดเช่นนี้ในการทำนายอนาคต ดังนั้นทำไมการไม่ยอมแพ้อย่างใด ๆ เลย? คำตอบของคำถามนี้ค่อนข้างยุ่งยากสิ่งที่ฉันสรุปเกี่ยวกับคำถามก็คือ: ทฤษฎีออโตมาตาเกิดขึ้นเมื่อคอมพิวเตอร์ไม่มีอยู่ (ทฤษฎีแรกปฏิบัติได้จริง) มันเป็นเรื่องทางทฤษฎีล้วนๆและแนวคิดเกี่ยวกับลัทธิ nondeterminism มาอย่างสังหรณ์ใจเจตนาของเรื่อง 'Automata Theory' ไม่ได้เกี่ยวข้องกับคอมพิวเตอร์ที่ใช้งานได้จริง แต่เมื่อคอมพิวเตอร์ใช้งานได้จริงโดยใช้ทฤษฎีออโตมาตะเราสามารถนิยามคอมพิวเตอร์ที่ใช้งานได้อย่างแม่นยำ: อะไรคือข้อ จำกัด ของคอมพิวเตอร์ยุคปัจจุบันปัญหาอัลกอริทึมที่ซับซ้อนมากสำหรับคอมพิวเตอร์และทำไม่ได้ (นี่คือบทบาทของ nondererminism สามารถแยกแยะความซับซ้อนของคลาสความซับซ้อน P และ NP ได้สองวิธีการแก้ปัญหาสำหรับปัญหาที่ไม่สามารถทำได้นั้นสามารถดำเนินการได้เร็วกว่า นี่คือประโยชน์ของการ nondeterminism มันเป็นเรื่องทางทฤษฎีล้วนๆและแนวคิดเกี่ยวกับลัทธิ nondeterminism มาอย่างสังหรณ์ใจเจตนาของเรื่อง 'Automata Theory' ไม่ได้เกี่ยวข้องกับคอมพิวเตอร์ที่ใช้งานได้จริง แต่เมื่อคอมพิวเตอร์ใช้งานได้จริงโดยใช้ทฤษฎีออโตมาตะเราสามารถนิยามคอมพิวเตอร์ที่ใช้งานได้อย่างแม่นยำ: อะไรคือข้อ จำกัด ของคอมพิวเตอร์ยุคปัจจุบันปัญหาอัลกอริทึมที่ซับซ้อนมากสำหรับคอมพิวเตอร์และทำไม่ได้ (นี่คือบทบาทของ nondererminism สามารถแยกแยะความซับซ้อนของคลาสความซับซ้อน P และ NP ได้สองวิธีการแก้ปัญหาสำหรับปัญหาที่ไม่สามารถทำได้นั้นสามารถดำเนินการได้เร็วกว่า นี่คือประโยชน์ของการ nondeterminism มันเป็นเรื่องทางทฤษฎีล้วนๆและแนวคิดเกี่ยวกับลัทธิ nondeterminism มาอย่างสังหรณ์ใจเจตนาของเรื่อง 'Automata Theory' ไม่ได้เกี่ยวข้องกับคอมพิวเตอร์ที่ใช้งานได้จริง แต่เมื่อคอมพิวเตอร์ใช้งานได้จริงโดยใช้ทฤษฎีออโตมาตะเราสามารถนิยามคอมพิวเตอร์ที่ใช้งานได้อย่างแม่นยำ: อะไรคือข้อ จำกัด ของคอมพิวเตอร์ยุคปัจจุบันปัญหาอัลกอริทึมที่ซับซ้อนมากสำหรับคอมพิวเตอร์และทำไม่ได้ (นี่คือบทบาทของ nondererminism สามารถแยกแยะความซับซ้อนของคลาสความซับซ้อน P และ NP ได้สองวิธีการแก้ปัญหาสำหรับปัญหาที่ไม่สามารถทำได้นั้นสามารถดำเนินการได้เร็วกว่า นี่คือประโยชน์ของการ nondeterminism แต่เมื่อคอมพิวเตอร์ใช้งานได้จริงโดยใช้ทฤษฎีออโตมาตะเราสามารถนิยามคอมพิวเตอร์ที่ใช้งานได้อย่างแม่นยำ: ข้อ จำกัด ของคอมพิวเตอร์ยุคปัจจุบันปัญหาอัลกอริทึมที่ซับซ้อนมากสำหรับคอมพิวเตอร์และทำไม่ได้ (นี่คือบทบาทของ nondererminism สามารถแยกแยะความซับซ้อนของคลาสความซับซ้อน P และ NP ได้สองวิธีการแก้ปัญหาสำหรับปัญหาที่ไม่สามารถทำได้นั้นสามารถดำเนินการได้เร็วกว่า นี่คือประโยชน์ของการ nondeterminism แต่เมื่อคอมพิวเตอร์ใช้งานได้จริงโดยใช้ทฤษฎีออโตมาตะเราสามารถนิยามคอมพิวเตอร์ที่ใช้งานได้อย่างแม่นยำ: ข้อ จำกัด ของคอมพิวเตอร์ยุคปัจจุบันปัญหาอัลกอริทึมที่ซับซ้อนมากสำหรับคอมพิวเตอร์และทำไม่ได้ (นี่คือบทบาทของ nondererminism สามารถแยกแยะความซับซ้อนของคลาสความซับซ้อน P และ NP ได้สองวิธีการแก้ปัญหาสำหรับปัญหาที่ไม่สามารถทำได้นั้นสามารถดำเนินการได้เร็วกว่า นี่คือประโยชน์ของการ nondeterminism อะไรคือวิธีแก้ปัญหาสำหรับปัญหาที่ไม่สามารถทำได้ซึ่งจะสามารถดำเนินการได้เร็วกว่าเมื่อเปรียบเทียบกันเป็นต้น นี่คือประโยชน์ของการ nondeterminism อะไรคือวิธีแก้ปัญหาสำหรับปัญหาที่ไม่สามารถทำได้ซึ่งจะสามารถดำเนินการได้เร็วกว่าเมื่อเปรียบเทียบกันเป็นต้น นี่คือประโยชน์ของการ nondeterminism

โปรดแก้ไขฉันหากมีอะไรผิดปกติ


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

@reierierpost: ดังนั้นคุณกำลังบอกว่าเครื่องที่ไม่มีการควบคุมมีอยู่จริงในชีวิตจริง
tanmoy

ใช่. นี่คือตัวอย่าง: สมมติว่าคุณกำลังขับรถและคุณไม่ได้ตัดสินใจเกี่ยวกับเส้นทางที่จะติดตาม ตัวอย่างเช่นคุณอาจขับรถไปรอบ ๆ อย่างไร้จุดหมายหรือคุณอาจนำทิศทางของคุณจากตัวนำทางมนุษย์หรืออุปกรณ์นำทาง รถยนต์และคุณเป็นระบบที่ควบคุมการขับขี่ในสถานที่ต่างๆ คุณเคลื่อนที่ผ่านทราฟฟิกและเผชิญกับทางเลือกที่จะนำไปสู่ สำหรับคุณและรถยนต์ตัวเลือกเหล่านี้เป็นแบบ nondeterministic: คุณไม่ได้ตัดสินใจทิศทางใดที่จะไป แต่เมื่อตัดสินใจแล้วคุณจะทำตาม
reinierpost

@reinierpost: มีคอมพิวเตอร์ที่ไม่ได้กำหนดไว้หรือไม่ คำตอบของฉันคือไม่ เพราะถ้ามันมีอยู่ปัญหา NP จะมีความซับซ้อนของเวลาพหุนาม ไม่ใช่เหรอ
tanmoy

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

0

การไม่กำหนดระดับนั้นมีประโยชน์เพราะช่วยให้คุณเข้าใจระดับที่กำหนด แต่ไม่ใช่วิธีอื่น คุณสามารถพูดได้ว่าไม่ใช่ระดับที่เป็นความคิดที่ใหญ่กว่า เครื่องทัวริงที่กำหนดค่าได้เป็นกรณีพิเศษของเครื่องที่ไม่ได้กำหนดค่าไว้ - Nondeterminism สามารถช่วยให้เราเข้าใจว่าทำไมบนแพลตฟอร์มในปัจจุบันปัญหาบางอย่างยากที่จะตรึงลง มีปัญหาการคำนวณจำนวนมากที่ไม่มีวิธีแก้ปัญหาที่มีประสิทธิภาพบนแพลตฟอร์มการคำนวณแบบกำหนดค่าได้ แต่เราเข้าใจว่าอาจมีวิธีการแก้ปัญหาที่มีประสิทธิภาพสำหรับผู้ที่ไม่คุ้นเคย ... รัฐการเข้ารหัส nondeterminism พวกเขาทั้งหมดมีการเชื่อมโยงhttp://people.cs.umass.edu/~rsnbrg/teach-eatcs.pdf

ในเครื่องทัวริงที่กำหนดไว้ล่วงหน้าชุดของกฎกำหนดอย่างมากที่สุดการกระทำที่จะดำเนินการสำหรับสถานการณ์ใด ๆ ในทางตรงกันข้ามเครื่องทัวริง (NTM) อาจมีชุดของกฎที่กำหนดมากกว่าหนึ่งการกระทำสำหรับสถานการณ์ที่กำหนด http://en.wikipedia.org/wiki/Non-deterministic_Turing_machine หากคุณสามารถสร้างกล่องซอฟต์แวร์ที่สามารถจัดการการเปลี่ยนสถานะเพื่อให้สามารถจัดการมากกว่าหนึ่งการกระทำคุณจะได้รับประสิทธิภาพเหนือกว่าเครื่องกำหนด


ฉันไม่แน่ใจว่าลิงก์ที่ถูกกล่าวหาสู่ความเป็นจริงนั้นมีประโยชน์หรือไม่ เป็นที่ชัดเจนว่าเราไม่สามารถสร้างเครื่องจักรที่ไม่ได้กำหนดค่าได้ (อย่างน้อยวันนี้) ดังนั้นจึงเป็นโครงสร้างทางทฤษฎีทั้งหมด
ราฟาเอล

เราสามารถสร้างเครื่อง nondeterministic โดยให้การตัดสินใจ nondeterministic เป็นสิ่งที่ภายนอกเครื่อง
reinierpost

@ reinierpost ที่สำคัญกว่านั้นเราสามารถสร้างเครื่องจักรที่ไม่สามารถกำหนดค่าได้ตามที่กำหนดไว้ ดูทฤษฎีบทของ Savitch en.wikipedia.org/wiki/Savitch's_theorem
Tom

@ Raphael การอ้างอิงถึงโลกแห่งความจริงมีความสำคัญ เหตุใดการแคชจึงทำงานได้ เพราะเหตุการณ์ในโลกแห่งความเป็นจริงซึ่งท้ายที่สุดก็คือแหล่งที่มาของข้อมูลทั้งหมดเกิดขึ้นตามการกระจายตัวแบบปกติ ดูสถานที่ชั่วคราว: durablescope.blogspot.co.at/2009/11/…
Tom

@ reinierpost และสิ่งภายนอกนั้นเป็นสิ่งที่ทัวริงเรียกว่าเครื่องจักร oracle ฉันคิดว่าคุณสามารถคิดได้ว่าเป็นข้อมูลที่ออกมาจากแคชหรือบางสิ่งบางอย่างเช่นเครื่องมัลติเทปหรือแม้กระทั่งการเข้าถึงหน่วยความจำเข้าถึงโดยสุ่ม
Tom

0

เหตุใดแนวคิดที่มีประโยชน์แบบไม่กำหนดระดับ

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

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


คุณสามารถยกตัวอย่างเฉพาะได้หรือไม่? ฉันพบว่ามันยากที่จะดูว่าคุณหมายถึงอะไรโดย "สมมาตร" ที่นี่
กราฟิลส์

@Raphael วิธีการย้อนกลับ (01) * 01 (0 + 1) * ถึง (0 + 1) * 10 (10) * เพื่อให้รับรู้สตริงอินพุตย้อนกลับและใช้สมมาตรนี้กับเครื่องที่ไม่ได้กำหนดค่าโดยการย้อนกลับทั้งหมด ลูกศรและสลับเปลี่ยนสถานะเริ่มต้นและสิ้นสุด ฉันไม่แน่ใจว่ามีตัวอย่างที่น่าสนใจมากกว่าสำหรับเครื่องสถานะ จำกัด หรือไม่ แต่ฉันสามารถลองหาตัวอย่างที่น่าสนใจสำหรับ PDA แทนได้
โทมัสคลิมเพล

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