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

ทฤษฎีการคำนวณทฤษฎีการเรียกซ้ำ

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

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

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

2
ฟังก์ชันใดที่ System F ไม่สามารถคำนวณได้
ในบทความวิกิพีเดียว่าด้วยทัวริงครบถ้วนระบุว่า: แคลคูลัสแลมบ์ดาที่ยังไม่พิมพ์คือทัวริงสมบูรณ์ แต่แคลคูลัสแลมบ์ดาที่พิมพ์ไว้จำนวนมากรวมถึง System F ไม่ใช่ ค่าของระบบที่พิมพ์นั้นขึ้นอยู่กับความสามารถในการแสดงโปรแกรมคอมพิวเตอร์ทั่วไปส่วนใหญ่ในขณะที่ตรวจพบข้อผิดพลาดเพิ่มเติม ตัวอย่างของฟังก์ชันที่คำนวณได้ทั้งหมดที่ไม่สามารถคำนวณได้โดยระบบ Fคืออะไร นอกจากนี้เนื่องจาก hindley-milner คือ: ข้อ จำกัด ของระบบ F เพราะความจริงที่ว่า: การตรวจสอบประเภทไม่สามารถอธิบายได้สำหรับตัวแปรสไตล์แกงกะหรี่ของ System F กล่าวคือสิ่งหนึ่งที่ขาดคำอธิบายประกอบการพิมพ์ที่ชัดเจน นี่หมายความว่าระบบแคลคูลัสแลมบ์ดาต้นแบบของฮินด์ลีย์ - มิลเนอร์นั้นไม่ได้สมบูรณ์เหมือนกันหรือไม่? หากเป็นจริงเนื่องจากhaskellนั้นได้รับการทำให้สมบูรณ์อย่างสมบูรณ์และเรารู้ว่ามันเป็นพื้นฐานคือแคลคูลัสแลมบ์ดาและระบบการพิมพ์ฮินด์ลีย์ - มิลเนอร์คุณสมบัติใดที่ไม่ได้ปรากฏในแคลคูลัสแลมบ์ดา

6
พลังการคำนวณสูงสุดของการนำ C ไปใช้งาน
ถ้าเราไปตามหนังสือ (หรือรุ่นอื่น ๆ ของข้อกำหนดภาษาถ้าคุณต้องการ), การใช้พลังงาน C สามารถมีเท่าไหร่? โปรดทราบว่า“ การติดตั้ง C” มีความหมายทางเทคนิค: มันเป็นอินสแตนซ์เฉพาะของสเปคภาษาการเขียนโปรแกรม C ที่มีการบันทึกพฤติกรรมการใช้งานที่กำหนดไว้ การติดตั้ง AC ไม่จำเป็นต้องสามารถทำงานบนคอมพิวเตอร์จริงได้ มันต้องใช้ภาษาทั้งหมดรวมถึงวัตถุทุกชิ้นที่มีการแทนค่าบิตสตริงและประเภทที่มีขนาดที่กำหนดการนำไปใช้ สำหรับวัตถุประสงค์ของคำถามนี้ไม่มีที่เก็บข้อมูลภายนอก อินพุต / เอาต์พุตเดียวที่คุณสามารถทำได้คือgetchar(เพื่ออ่านอินพุตโปรแกรม) และputchar(เพื่อเขียนเอาต์พุตของโปรแกรม) นอกจากนี้ยังมีโปรแกรมใด ๆ ที่จะเรียกไม่ได้กำหนดพฤติกรรมที่ไม่ถูกต้อง: โปรแกรมที่ถูกต้องจะต้องมีพฤติกรรมที่กำหนดโดยสเปค C บวกรายละเอียดการดำเนินงานของพฤติกรรมการดำเนินงานที่กำหนดไว้ในภาคผนวก J (สำหรับ C99) โปรดทราบว่าการเรียกฟังก์ชั่นห้องสมุดที่ไม่ได้กล่าวถึงในมาตรฐานเป็นพฤติกรรมที่ไม่ได้กำหนด ปฏิกิริยาเริ่มต้นของฉันคือการใช้งาน C ไม่มีอะไรมากไปกว่าระบบ จำกัด อัตโนมัติเนื่องจากมันมีข้อ จำกัด เกี่ยวกับจำนวนหน่วยความจำที่กำหนดแอดเดรสได้ (คุณไม่สามารถจัดการกับหน่วยความจำได้มากกว่าsizeof(char*) * CHAR_BITบิตเนื่องจากหน่วยความจำที่แตกต่างกัน ในตัวชี้ไบต์) อย่างไรก็ตามฉันคิดว่าการใช้งานสามารถทำได้มากกว่านี้ เท่าที่ฉันสามารถบอกได้มาตรฐานไม่มีข้อ จำกัด เกี่ยวกับความลึกของการเรียกซ้ำ ดังนั้นคุณสามารถเรียกใช้ฟังก์ชันเรียกซ้ำได้มากเท่าที่คุณต้องการเฉพาะการโทรจำนวน จำกัด …

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

4
ทฤษฎีบทของคริสตจักรและทฤษฎีความไม่สมบูรณ์ของGödel
เมื่อไม่นานมานี้ฉันได้อ่านแนวคิดและประวัติของงานที่ไม่หยุดยั้งซึ่งดำเนินการโดยนักตรรกศาสตร์และนักคณิตศาสตร์หลายคนเกี่ยวกับความสามารถในการคำนวณ ในขณะที่แนวคิดของแต่ละคนค่อนข้างชัดเจนสำหรับฉันฉันกำลังพยายามที่จะเข้าใจอย่างชัดเจนว่ามีความสัมพันธ์ระหว่างกันและระดับนามธรรมที่เชื่อมโยงกันทั้งหมด เรารู้ว่าทฤษฎีของคริสตจักร (หรือมากกว่านั้นเป็นบทพิสูจน์ที่เป็นอิสระของEntscheidungsproblemของฮิลแบร์ตโดย Alonzo Church และ Alan Turing) พิสูจน์ว่าโดยทั่วไปแล้วเราไม่สามารถคำนวณได้ว่าคำสั่งทางคณิตศาสตร์ที่ระบุในระบบที่เป็นทางการเป็นจริงหรือเท็จ ดังที่ฉันเข้าใจวิทยานิพนธ์ของทัวริสต์ทัวริสต์ได้ให้คำอธิบายที่ชัดเจนเกี่ยวกับความเท่าเทียม (isomorphism) ระหว่างแลมบ์ดาลัสของคริสตจักรและทัวริงของเครื่องจักรดังนั้นเราจึงมีรูปแบบการรวม (หมายเหตุ: เท่าที่ฉันรู้หลักฐานของทัวริงใช้ประโยชน์จากความจริงที่ว่าปัญหาการหยุดชะงักไม่สามารถตัดสินใจได้แก้ไขให้ฉันถ้าฉันผิด) ตอนนี้ทฤษฎีบทความไม่สมบูรณ์ครั้งแรกของGödelระบุว่าไม่ใช่ทุกข้อความในระบบที่เป็นทางการที่สอดคล้องกับกำลังทางคณิตศาสตร์ที่เพียงพอซึ่งอาจพิสูจน์หรือหักล้าง (ตัดสินใจ) ภายในระบบนี้ ในหลาย ๆ ทางสิ่งนี้ดูเหมือนว่าฉันจะพูดในสิ่งเดียวกันกับฉันในฐานะทฤษฏีของศาสนจักรโดยพิจารณาจากแลมบ์ดาแคลคูลัสและเครื่องกลึงทั้งสองแบบเป็นระบบที่มีประสิทธิภาพอย่างเป็นทางการ! นี่คือการตีความแบบองค์รวมของฉันและฉันก็หวังว่าจะมีใครซักคนที่จะเข้าใจรายละเอียด ทฤษฎีทั้งสองนี้เทียบเท่ากันอย่างมีประสิทธิภาพหรือไม่? มีรายละเอียดย่อยให้สังเกตไหม? หากทฤษฎีเหล่านี้ดูความจริงสากลที่เหมือนกันในรูปแบบที่แตกต่างกันทำไมพวกเขาถึงมาจากมุมที่แตกต่างกันเช่นนี้? (มีการพิสูจน์ Godel มากกว่า 6 ปีหรือน้อยกว่า 6 ปี) ในที่สุดเราสามารถบอกได้ไหมว่าแนวคิดของการพิสูจน์ในระบบที่เป็นทางการ (แคลคูลัสพิสูจน์) นั้นเหมือนกับแนวคิดของการคำนวณได้ในทฤษฎีการเรียกซ้ำ (Turing Machines / lambda แคลคูลัส)?

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

2
อัลกอริทึมสามารถทำนายความซับซ้อนของเวลาในระดับใดที่โปรแกรมอินพุตโดยพลการ
ลังเลปัญหากล่าวว่ามันเป็นไปไม่ได้ที่จะเขียนโปรแกรมที่สามารถตรวจสอบว่าหยุดโปรแกรมอื่นสำหรับโปรแกรมการป้อนข้อมูลเป็นไปได้ทั้งหมด อย่างไรก็ตามฉันสามารถเขียนโปรแกรมที่สามารถคำนวณเวลาทำงานของโปรแกรมที่ชอบได้อย่างแน่นอน for(i=0; i<N; i++) { x = 1; } และคืนค่าความซับซ้อนของเวลาเป็นโดยไม่ต้องเรียกใช้NNN สำหรับโปรแกรมอินพุตอื่น ๆ ทั้งหมดมันจะคืนค่าสถานะที่ระบุว่าไม่สามารถระบุเวลาที่ซับซ้อนได้ คำถามของฉันคือ: ต้องมีเงื่อนไขอะไรเช่นนี้เราสามารถกำหนดขั้นตอนวิธีความซับซ้อนของเวลาของโปรแกรมที่กำหนดได้ * หากมีการอ้างอิงที่เป็นที่ยอมรับหรือตรวจสอบบทความนี้ฉันจะขอบคุณลิงค์ไปในความคิดเห็น

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

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

3
ความซับซ้อนของ Tensor Rank เหนือสนามไม่มีที่สิ้นสุด
เมตริกซ์เป็นลักษณะทั่วไปของเวกเตอร์และเมทริกซ์ไปยังมิติที่สูงขึ้นและการจัดอันดับของเมตริกซ์ยัง generalizes อันดับของเมทริกซ์ กล่าวคืออันดับของเมตริกซ์เป็นจำนวนขั้นต่ำของอันดับหนึ่ง tensors ได้ว่าจำนวนเงินที่จะT เวกเตอร์และเมทริกซ์คือเทนเซอร์ระดับ 1 และ 2 ตามลำดับTTTTTT องค์ประกอบในมาจากสนามเรนไฮน์ ถ้าFมีขอบเขต จำกัด ดังนั้นHåstadจึงพิสูจน์ได้ว่าการตัดสินใจว่าระดับของเมตริกซ์ 3 นั้นมากที่สุดrคือ NP-complete แต่เมื่อFเป็นสนามที่ไม่มีที่สิ้นสุดเหมือน Rationals Qเขาให้ (หรืออ้างอิง) ไม่มีขอบเขตบนTTTFF\mathbb{F}FF\mathbb{F}RrrFF\mathbb{F}QQ\mathbb{Q} คำถาม:อะไรคือขอบเขตบนที่รู้จักกันดีที่สุดสำหรับความซับซ้อนของการตัดสินใจว่าอันดับของเทนเซอร์ 3 องศาต่อQมากที่สุดr ?TTTQQ\mathbb{Q}Rrr

5
ปัญหาการสอนการคำนวณ
ฉันมีปัญหาในการสอนแนวคิดของฟังก์ชันที่คำนวณได้ ฉันพยายามพัฒนาความคิดว่าทำไมนักวิจัยอย่าง Hilbert / Ackermann / Godel / Turing / Church / ... คิดค้นแนวคิดเรื่อง 'ความสามารถคำนวณได้' นักเรียนถามทันที: "ความสามารถในการคำนวณหมายถึงอะไร" และฉันไม่สามารถตอบได้ถ้าฉันไม่สอนเครื่องทัวริงแล้วตอบ "ฟังก์ชันนั้นคำนวณได้ถ้าเครื่องทัวริงคำนวณได้" ดังนั้น, มีคำอธิบายของความสามารถในการคำนวณที่ไม่ต้องใช้เครื่องทัวริง, calcul-แคลคูลัสหรือแบบจำลองการคำนวณที่คล้ายกันหรือไม่? แม้แต่คำอธิบายที่เข้าใจง่ายก็พอเพียง

3
หากเครื่องนามธรรมสามารถจำลองตัวเองได้นั่นทำให้ทัวริงสมบูรณ์หรือไม่
ยกตัวอย่างเช่นในภาษาการเขียนโปรแกรมมันเป็นเรื่องธรรมดาที่จะเขียน X-in-X คอมไพเลอร์ / ล่าม แต่ในระดับทั่วไปที่หลายคนรู้จักระบบทัวริงสมบูรณ์สามารถจำลองตัวเองในรูปแบบที่น่าประทับใจ (เช่นการจำลองเกมชีวิต Conway ในเกมชีวิต ) ดังนั้นคำถามของฉันคือ: ระบบสามารถจำลองตัวเองได้เพียงพอที่จะพิสูจน์ว่าเป็นทัวริงสมบูรณ์หรือไม่ เป็นเงื่อนไขที่จำเป็นอย่างแน่นอน

2
ไม่อนุรักษ์เครื่องทัวริง
อ่านกระทู้ที่ผ่านมาบางอย่างเกี่ยวกับควอนตัมคอมพิวเตอร์ ( นี่ , ที่นี่และที่นี่ ) ทำให้ผมจำได้ว่าคำถามที่น่าสนใจเกี่ยวกับอำนาจของชนิดของบาง -norm เครื่องรักษาℓพีℓp\ell_p สำหรับคนที่ทำงานในทฤษฎีความซับซ้อนจะซับซ้อนควอนตัมข้อความเกริ่นนำที่ดีคือกระดาษ Fortnow ซึ่งเชื่อมโยงถูกโพสต์โดยโจชัว Grochow ที่นี่ ในกระดาษนั้นเครื่องทัวริงควอนตัมถูกนำเสนอเป็นเครื่องทัวริงน่าจะเป็นทั่วไป โดยทั่วไปเครื่องน่าจะมีรัฐปกติภายใต้ -norm คือ 1 เวลาวิวัฒนาการของเครื่องจักรได้รับจากแอพพลิเคชั่นของstochastic matrixที่ ,คือเก็บรักษาปกติ ดังนั้นสถานะ ณ เวลาคือℓ 1 ∥ s ∥ 1 = 1sssℓ1ℓ1\ell_1∥ s ∥1= 1∥s∥1=1\parallel s\parallel_1=1∥ P s ∥ 1 = 1 P ℓ 1 t P t sPPP∥ Ps …

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