การเชื่อมต่อระหว่างประตู NAND และทัวริงสมบูรณ์


14

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


1
"คอมพิวเตอร์ที่ทันสมัยสร้างขึ้นจากประตู NAND" ฉันค่อนข้างแน่ใจว่ามันผิด ไลบรารีเซลล์แบบทั่วไปสำหรับการออกแบบดิจิทัลมีจำนวนสิบเมื่อไม่มีประตูนับร้อยและแตกต่างกันไปในฟังก์ชั่น (มองหาประตู AOI) เช่นเดียวกับในพัดลมเข้าและออก
AProgrammer

คุณถูกต้องฉันหมายถึงในทางทฤษฎีว่าตรรกะดิจิทัลทั้งหมดสามารถสร้างขึ้นจาก NANDS ซึ่งถือว่าเสร็จสิ้นการใช้งานแล้ว
bsm

คำตอบ:


9

มีการเชื่อมต่อน้อยมาก เพื่อความเข้าใจอย่างละเอียดให้ฉันอธิบายการเชื่อมต่อระหว่างโปรแกรมและวงจร

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

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

เราสามารถแปลงโปรแกรมเป็นวงจรP nที่เลียนแบบPปัจจัยของความยาวn ลำดับที่สอดคล้องกันของวงจรP 0 , P 1 , P 2 , ...ไม่ได้โดยพลการ - พวกเขาทั้งหมดจะสามารถสร้างขึ้นโดยโปรแกรมที่ได้รับnผลP n เราเรียกลำดับดังกล่าวของวงจรเครื่องแบบวงจร (พลุกพล่านเรามักจะคิดว่าลำดับเป็น "เดี่ยว" วงจรP nสำหรับไม่แน่นอนn )PPnPnP0,P1,P2,...nPnPnn

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

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


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

2
nn

คุณช่วยอธิบายเกี่ยวกับ @YuvalFilmus ได้ไหม? ดูเหมือนว่าแปลกที่ฟังก์ชันที่ไม่สามารถคำนวณได้เช่นความซับซ้อนของ Kolmogorov จะกลายเป็น "คำนวณ" โดยใช้วงจร
Cort Ammon

2
n

3

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

วงจรเชิงผสม ~ ออโตไฟไนท์ จำกัด ~ ภาษาปกติ ~ นิพจน์ทั่วไป ~ แคลคูลัสเชิงประพจน์ ~ โปรแกรมแบบเส้นตรง

μ

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

https://cs.brown.edu/people/jes/book/pdfs/ModelsOfComputation.pdf

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