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


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.