คำถามติดแท็ก computability

คำถามที่เกี่ยวข้องกับทฤษฎีการคำนวณทฤษฎีการเรียกซ้ำ

9
ความสำคัญของภาษาตามบริบท (ประเภท 1) คืออะไร
เห็นได้ว่าในรัฐChomsky Hierarchy Type 3 สามารถรับรู้โดยเครื่องของรัฐที่ไม่มีหน่วยความจำภายนอก (เช่นเครื่อง จำกัด อัตโนมัติ), Type 2 โดยเครื่องของรัฐที่มีสแต็กเดียว (เช่นเครื่องกดลง) และ Type 0 โดย เครื่องรัฐที่มีสองกอง (หรือเทียบเท่าเทปเช่นเดียวกับกรณีของทัวริงเครื่อง) ภาษาประเภท 1 พอดีกับภาพนี้ได้อย่างไร และข้อดีอะไรบ้างที่นำมาพิจารณาว่าภาษาไม่เพียง แต่พิมพ์ 0 แต่พิมพ์ 1

5
พิสูจน์ได้ว่าคอมไพเลอร์ไม่สามารถตรวจพบโค้ดที่ตายแล้ว
ฉันวางแผนที่จะสอนหลักสูตรฤดูหนาวในหัวข้อที่หลากหลายซึ่งหนึ่งในนั้นจะเป็นคอมไพเลอร์ ตอนนี้ฉันเจอปัญหานี้ขณะที่คิดถึงงานมอบหมายที่จะมอบให้ตลอดทั้งไตรมาส แต่มันทำให้ฉันนิ่งงันดังนั้นฉันจึงอาจใช้มันเป็นตัวอย่างแทน public class DeadCode { public static void main(String[] args) { return; System.out.println("This line won't print."); } } returnในโปรแกรมข้างต้นจะเห็นได้ชัดว่าคำสั่งพิมพ์จะไม่ดำเนินการเพราะ คอมไพเลอร์บางครั้งให้คำเตือนหรือข้อผิดพลาดเกี่ยวกับรหัสที่ตายแล้ว ตัวอย่างเช่นรหัสข้างต้นจะไม่รวบรวมใน Java อย่างไรก็ตามคอมไพเลอร์ javac จะไม่ตรวจจับอินสแตนซ์ทั้งหมดของรหัสที่ตายแล้วในทุกโปรแกรม ฉันจะพิสูจน์ได้อย่างไรว่าคอมไพเลอร์ไม่สามารถทำได้?

2
โปรแกรมสั้นมากที่ไม่ทราบสถานะหยุดพักคืออะไร
โปรแกรม 579 บิตในBinary แลมบ์ดาแคลคูลัสมีสถานะหยุดการทำงานที่ไม่รู้จัก: 01001001000100010001000101100111101111001110010101000001110011101000000111001110 10010000011100111010000001110011101000000111001110100000000111000011100111110100 00101011000000000010111011100101011111000000111001011111101101011010000000100000 10000001011100000000001110010101010101010111100000011100101010110000000001110000 00000111100000000011110000000001100001010101100000001110000000110000000100000001 00000000010010111110111100000010101111110000001100000011100111110000101101101110 00110000101100010111001011111011110000001110010111111000011110011110011110101000 0010110101000011010 กล่าวคือไม่ทราบว่าโปรแกรมนี้ยุติหรือไม่ ในการพิจารณาว่าคุณต้องแก้ไขการคาดคะเนของโคลลาตซ์ - หรืออย่างน้อยที่สุดสำหรับตัวเลขทั้งหมดไม่เกิน 2 ^ 256 ในพื้นที่เก็บข้อมูลนี้มีคำอธิบายที่สมบูรณ์เกี่ยวกับวิธีการรับโปรแกรมนี้ มีโปรแกรม BLC ที่สั้นกว่า (มาก) ที่ยังไม่ทราบสถานะหยุดพักหรือไม่?


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

1
ทฤษฎีบทข้าวสำหรับคุณสมบัติที่ไม่ใช่ความหมาย
ทฤษฏีของข้าวบอกเราว่าสมบัติเชิงความหมายเพียงอย่างเดียวของทัวริงเครื่องจักร (เช่นคุณสมบัติของฟังก์ชันที่คำนวณโดยเครื่อง) ที่เราสามารถตัดสินใจได้ว่าเป็นคุณสมบัติสองอย่าง (เช่นจริงเสมอและเท็จเสมอ) แต่มีคุณสมบัติอื่น ๆ ของเครื่องจักรทัวริงที่ไม่สามารถตัดสินใจได้ ยกตัวอย่างเช่นทรัพย์สินที่มีสถานะที่ไม่สามารถเข้าถึงได้ในเครื่องทัวริงที่กำหนดคือ undecidable †††^{\dagger} มีทฤษฎีบทคล้ายกับทฤษฎีบทของไรซ์ซึ่งจัดหมวดหมู่ความสามารถในการตัดสินใจของคุณสมบัติที่คล้ายกันได้หรือไม่? ฉันไม่มีคำจำกัดความที่ชัดเจน ทฤษฎีบทที่รู้จักใด ๆ ที่ครอบคลุมตัวอย่างที่ฉันให้ไว้น่าจะเป็นสิ่งที่น่าสนใจสำหรับฉัน มันเป็นเรื่องง่ายที่จะพิสูจน์ว่าชุดนี้เป็นที่ตัดสินไม่ได้ใช้Kleene ของ Recursion / คงทฤษฎีบทจุด††^\dagger

2
quantum TM และ nondetermistic TM แตกต่างกันอย่างไร?
ฉันจะผ่านการอภิปรายในคำถามวิธีการกำหนดเครื่องทัวริงควอนตัม? และฉันรู้สึกว่า quantum TM และnondetermistic TM นั้นเหมือนกัน คำตอบสำหรับคำถามอื่นไม่ได้สัมผัสกับสิ่งนั้น ทั้งสองรุ่นเป็นแบบเดียวกันหรือไม่ ถ้าไม่, ความแตกต่างระหว่างควอนตัม TM และ NDTM คืออะไร? มีการคำนวณใดที่ NDTM จะทำได้เร็วกว่า Quantum TM หรือไม่? หากเป็นกรณีนี้ quantum TM เป็น DTM แล้วทำไมมีฟัซซี่มากมายเกี่ยวกับเทคโนโลยีนี้เราจึงมี DTM มากมาย ทำไมต้องออกแบบ DTM ใหม่ในท้ายที่สุด

7
มีหลักฐานที่ใช้งานง่ายมากขึ้นของความลังเลของปัญหาการหยุดชะงักกว่าแนวทแยงมุมหรือไม่?
ฉันเข้าใจหลักฐานของความลังเลของปัญหาการหยุดชะงัก (ยกตัวอย่างในตำราเรียนของ Papadimitriou) โดยยึดตามแนวทแยงมุม ในขณะที่การพิสูจน์นั้นน่าเชื่อถือ (ฉันเข้าใจในแต่ละขั้นตอนของมัน) แต่ฉันก็ไม่เข้าใจง่ายในแง่ที่ว่าฉันไม่เห็นว่าใครจะได้รับมันโดยเริ่มจากปัญหาเพียงอย่างเดียว ในหนังสือหลักฐานจะเป็นดังนี้: "สมมติว่าแก้ปัญหาการหยุดชะงักของอินพุตนั่นคือตัดสินใจว่าเครื่องทัวริงหยุดการทำงานของอินพุตหรือไม่สร้างเครื่องทัวริงที่ใช้เครื่องทัวริงเป็นอินพุต รันและกลับด้านเอาต์พุต " จากนั้นจะแสดงว่าไม่สามารถสร้างผลลัพธ์ที่น่าพอใจMHMHM_HM;xM;xM;xMMMxxxDDDMMMMH(M;M)MH(M;M)M_H(M;M)D(D)D(D)D(D) มันเป็นสิ่งก่อสร้างโดยพลการของโดยเฉพาะอย่างยิ่งความคิดในการให้อาหารให้กับตัวเองและจากนั้นเป็นของตัวเองที่ฉันต้องการมีสัญชาตญาณ อะไรที่ทำให้คนต้องกำหนดโครงสร้างและขั้นตอนเหล่านั้นตั้งแต่แรกDDDMMMDDD ใครบ้างมีคำอธิบายว่าใครบางคนจะใช้เหตุผลวิธีการของพวกเขาในการโต้แย้งเส้นทแยงมุม (หรือหลักฐานอื่น ๆ ) ถ้าพวกเขาไม่ทราบชนิดของการโต้แย้งที่จะเริ่มต้นด้วย? ภาคผนวกให้คำตอบรอบแรก: ดังนั้นคำตอบแรกชี้ให้เห็นว่าการพิสูจน์ความลังเลของปัญหาการหยุดชะงักเป็นสิ่งที่อิงจากงานก่อนหน้าของคันทอร์และรัสเซลและการพัฒนาปัญหาเส้นทแยงมุมและการเริ่มต้น "จากศูนย์" จะหมายถึงการค้นพบการโต้แย้งใหม่อีกครั้ง ยุติธรรมพอสมควร อย่างไรก็ตามแม้ว่าเรายอมรับการโต้เถียงในแนวทแยงมุมตามที่เข้าใจดี แต่ฉันก็ยังพบว่ามี "ช่องว่างปรีชา" จากปัญหาการหยุดชะงัก การพิสูจน์ของคันทอร์เกี่ยวกับจำนวนที่นับไม่ได้อันแท้จริงฉันพบว่าใช้งานง่าย ความขัดแย้งของรัสเซลยิ่งกว่านั้นอีก สิ่งที่ฉันยังไม่เห็นเป็นสิ่งที่จะกระตุ้นให้คนที่จะกำหนดขึ้นอยู่กับ 's 'โปรแกรมด้วยตนเอง'และหลังจากนั้นอีกใช้กับตัวเอง ดูเหมือนว่าจะมีความเกี่ยวข้องน้อยกว่ากับการทำให้เป็นเส้นทแยงมุม (ในแง่ที่การโต้แย้งของคันทอร์ไม่ได้มีอะไรอย่างนั้น) แม้ว่ามันจะทำงานได้ดีกับ diagonalization เมื่อคุณนิยามมันD(M)D(M)D(M)MMMM;MM;MM;MDDD PS @babou สรุปสิ่งที่ทำให้ฉันหนักใจดีกว่าตัวฉัน: "ปัญหาของการพิสูจน์หลายรุ่นคือสิ่งก่อสร้างดูเหมือนว่าจะถูกดึงออกมาจากหมวกวิเศษ"

2
วิทยานิพนธ์ทัวริสจักรและพลังการคำนวณของโครงข่ายประสาทเทียม
วิทยานิพนธ์ของโบสถ์ทัวริงระบุว่าทุกสิ่งที่สามารถคำนวณได้สามารถคำนวณได้ด้วยเครื่องทัวริง กระดาษ "การคำนวณแบบอะนาล็อกผ่านเครือข่ายประสาท" (Siegelmannn และ Sontag, วิทยาการคอมพิวเตอร์เชิงทฤษฎี , 131: 331–360, 1994; PDF ) อ้างว่าโครงข่ายประสาทเทียมของรูปแบบหนึ่ง (การตั้งค่านำเสนอในกระดาษ) มีประสิทธิภาพมากกว่า ผู้เขียนบอกว่าในเวลาชี้แจงรุ่นของพวกเขาสามารถรับรู้ภาษาที่ไม่สามารถคำนวณได้ในรูปแบบเครื่องทัวริง สิ่งนี้ขัดแย้งกับวิทยานิพนธ์ที่ทัวริสต์ของโบสถ์หรือไม่?

4
ทัวริงหมายถึงอะไรเมื่อพูดว่า“ เครื่องจักรไม่สามารถก่อให้เกิดความประหลาดใจได้” เกิดจากการเข้าใจผิด?
ฉันพบคำสั่งด้านล่างโดยAlan M. Turing ที่นี่ : “ มุมมองที่ว่าเครื่องจักรไม่สามารถก่อให้เกิดความประหลาดใจได้เนื่องจากผมเชื่อว่าการเข้าใจผิดที่นักปรัชญาและนักคณิตศาสตร์เป็นเรื่องโดยเฉพาะนี่คือข้อสันนิษฐานว่าทันทีที่มีการนำเสนอข้อเท็จจริงในใจทันทีที่ความเป็นจริงเกิดขึ้น จิตใจพร้อมกันกับมันมันเป็นข้อสันนิษฐานที่มีประโยชน์มากในหลาย ๆ สถานการณ์ ฉันไม่ใช่คนพูดภาษาอังกฤษ มีใครอธิบายได้เป็นภาษาอังกฤษธรรมดาบ้างไหม

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

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

2
มีปัญหาเฉพาะใด ๆ ที่ทราบว่าไม่สามารถตัดสินใจได้ด้วยเหตุผลอื่นนอกจากแนวทแยงมุมการอ้างอิงตนเองหรือการลดทอนหรือไม่?
ปัญหาที่แก้ไม่ได้ทุกอย่างที่ฉันรู้ว่าตกอยู่ในหนึ่งในหมวดหมู่ต่อไปนี้: ปัญหาที่ไม่สามารถตัดสินใจได้เนื่องจาก diagonalization (การอ้างอิงตนเองทางอ้อม) ปัญหาเหล คุณอาจพบปัญหาที่ไม่อาจคาดเดาได้มากมายเกี่ยวกับความซับซ้อนของ Kolmogorov ในค่ายนี้ ปัญหาที่ไม่สามารถตัดสินใจได้เนื่องจากการอ้างอิงตนเองโดยตรง ตัวอย่างเช่นภาษาสากลสามารถแสดงให้เห็นว่า undecidable ด้วยเหตุผลดังต่อไปนี้: ถ้ามันเป็น decidable แล้วก็เป็นไปได้ที่จะใช้ทฤษฎีการเรียกซ้ำของ Kleene เพื่อสร้าง TM ที่ได้รับการเข้ารหัสของตัวเองถามว่าจะยอมรับอินพุตของตัวเองหรือไม่ จากนั้นก็ตรงกันข้าม ปัญหาที่ไม่สามารถตัดสินใจได้เนื่องจากการลดลงของปัญหาที่ไม่สามารถตัดสินใจได้ที่มีอยู่ ตัวอย่างที่ดีที่นี่รวมถึงปัญหาการโพสต์จดหมาย (ลดจากปัญหาการหยุดชะงัก) และ Entscheidungsproblem เมื่อฉันสอนทฤษฎีความสามารถในการคำนวณให้กับนักเรียนของฉันนักเรียนจำนวนมากก็รับเรื่องนี้เช่นกันและมักถามฉันว่ามีปัญหาใด ๆ ที่เราสามารถพิสูจน์ได้ว่าไม่สามารถตัดสินใจได้โดยไม่ต้องกลับไปใช้กลอุบายการอ้างอิงตนเองบางประเภท ฉันสามารถพิสูจน์แบบ nonconstructively ว่ามีปัญหาที่ไม่อาจตัดสินใจได้หลายอย่างโดยการโต้แย้งเชิง cardinality อย่างง่ายที่เกี่ยวข้องกับจำนวน TMs กับจำนวนภาษา แต่สิ่งนี้ไม่ได้เป็นตัวอย่างเฉพาะของภาษา undecidable มีภาษาใดที่ไม่สามารถระบุได้ด้วยเหตุผลที่ไม่ได้ระบุไว้ข้างต้น ถ้าเป็นเช่นนั้นพวกเขาคืออะไรและใช้เทคนิคอะไรในการแสดงความลังเลของพวกเขา

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่าvoidเหมาะกับนิยามของประเภทที่ว่าง / ล่าง ไม่มีค่านิยมใด ๆ อยู่voidเท่าที่ฉันจะบอกได้ ฟังก์ชั่นที่มีประเภทคืนค่าเป็นโมฆะระบุว่าฟังก์ชั่นจะไม่ส่งคืนสิ่งใดดังนั้นจึงสามารถทำงานได้เพียงผลข้างเคียงเท่านั้น ตัวชี้ชนิดvoid*เป็นชนิดย่อยของชนิดตัวชี้อื่นทั้งหมด นอกจากนี้การแปลงไปยังและจากvoid*ใน C นั้นเป็นนัย ผมไม่แน่ใจว่าถ้าจุดสุดท้ายมีบุญใด ๆ ที่เป็นข้อโต้แย้งสำหรับvoidการเป็นประเภทที่ว่างเปล่าเป็นมากหรือน้อยเป็นกรณีพิเศษที่มีความสัมพันธ์ไม่มากที่จะvoid*void ในทางกลับกันvoidตัวมันเองไม่ใช่ประเภทย่อยของประเภทอื่นทั้งหมดซึ่งเท่าที่ฉันสามารถบอกได้ว่าเป็นข้อกำหนดสำหรับประเภทที่จะเป็นประเภทด้านล่าง
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

6
มีโปรแกรมที่สามารถ 'แปล' ซอร์สโค้ดระหว่างสองภาษาหรือไม่?
มีโปรแกรมที่สามารถ 'แปล' ซอร์สโค้ดระหว่างสองภาษาใด ๆ (สมมติว่าผู้แปลมีสิทธิ์เข้าถึงไลบรารี่ที่จำเป็น) หรือไม่? ถ้ามีพวกเขาทำงานอย่างไร (เทคนิคที่ใช้ความรู้ที่จำเป็น ฯลฯ )? พวกเขาจะสร้างได้อย่างไร? หากไม่เป็นเช่นนั้นข้อ จำกัด อะไรที่ขัดขวางการพัฒนาของพวกเขา นี่เป็นปัญหาที่สมบูรณ์แบบของ AI หรือไม่ (การแปลภาษาธรรมชาติแสดงเป็นรายการเดียว) หรือไม่ คาดว่าการแปลง EDITจะเกิดขึ้นก็ต่อเมื่อภาษานั้นมีความสามารถในการแสดงออกเท่ากันสามารถแก้ไขปัญหาประเภทเดียวกันได้และรหัสที่จะทำการแปลงสามารถแสดงเป็นภาษาปลายทางได้ (เช่นการแปลงจากเชลล์สคริปต์เป็น MATLAB ไม่เป็นที่คาดหมาย)

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