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

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

4
ชัดเจนและเป็นธรรมชาติของ combinator จุดคงที่ (Y combinator)
แก้ไข combinator จุดคงที่ (aka combinator Y) ในแคลคูลัสแลมบ์ดา (untyped) ( ) ถูกกำหนดเป็น:λλ\lambda FIX≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))\triangleq \lambda f.(\lambda x. f~(\lambda y. x~x~y))~(\lambda x. f~(\lambda y. x~x~y)) ฉันเข้าใจวัตถุประสงค์และสามารถติดตามการใช้งานแอปพลิเคชันได้อย่างสมบูรณ์แบบ ฉันต้องการที่จะเข้าใจวิธีการแก้ไขเป็นผลมาจากหลักการแรก นี่คือเท่าที่ฉันได้รับเมื่อฉันพยายามที่จะได้รับมันด้วยตนเอง: FIX เป็นฟังก์ชั่น: FIX ≜λ…≜λ…\triangleq \lambda_\ldots การแก้ไขใช้ฟังก์ชันอื่นfffเพื่อทำให้เกิดการเรียกซ้ำ: FIX ≜λf.…≜λf.…\triangleq \lambda f._\ldots อาร์กิวเมนต์แรกของฟังก์ชั่นfffคือ …

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

7
ภาษาทัวริงทั้งหมดล้วนใช้แทนกันได้
หมายเหตุในขณะที่ฉันรู้วิธีการเขียนโปรแกรมฉันค่อนข้างเป็นผู้เริ่มต้นในทฤษฎี CS ตามคำตอบนี้ ทัวริงสมบูรณ์เป็นแนวคิดนามธรรมของการคำนวณ หากภาษาทัวริงสมบูรณ์แล้วก็สามารถทำการคำนวณใด ๆ ที่ภาษาทัวริงอื่น ๆ สามารถทำได้ และโปรแกรมที่เขียนด้วยภาษาทัวริงที่สมบูรณ์สามารถเขียนใหม่ในภาษาอื่นได้ ตกลง. มันสมเหตุสมผลแล้ว ฉันสามารถแปล (คอมไพล์) C เป็นแอสเซมบลี (และฉันทำมันทุกวัน!) และสามารถแปลแอสเซมบลีเป็น C (คุณสามารถเขียนเครื่องเสมือนใน C) และเช่นเดียวกันกับภาษาอื่น ๆ - คุณสามารถรวบรวมภาษาใด ๆ ในแอสเซมบลีแล้วเรียกใช้ใน VM ที่เขียนในภาษาอื่น แต่สามารถใด ๆโปรแกรมที่เขียนในภาษาทัวริงสมบูรณ์นำมาเขียนใหม่อีก? เกิดอะไรขึ้นถ้าสมัชชาของฉันมี opcode LIGHTBUTTON? ฉันไม่สามารถเลียนแบบภาษานั้นในระบบ (ภาษา) โดยไม่ใช้หลอดไฟ ตกลง. คุณจะบอกว่าเนื่องจากเรากำลังเผชิญกับทฤษฎีคอมพิวเตอร์เราไม่ได้พูดถึงข้อ จำกัด ของอุปกรณ์ทางกายภาพ แต่ถ้าเป็นอุปกรณ์ที่ไม่มีการคูณล่ะ แผนก? เพื่อความรู้ที่ดีที่สุดของฉัน (แม้ว่านี่จะเป็นคำถามสำหรับคณิตศาสตร์.) เราไม่สามารถเลียนแบบการคูณ (และไม่หารแน่นอน) ด้วยการบวกและการลบ [1] ดังนั้น …

4
พิสูจน์ความลังเลของปัญหาการหยุดชะงัก
ฉันมีปัญหาในการทำความเข้าใจการพิสูจน์ความลังเลของปัญหาการหยุดชะงัก หากผลตอบแทนไม่ว่าจะเป็นโปรแกรมหรือไม่หยุดกับการป้อนข้อมูลขทำไมเราต้องผ่านรหัสของPสำหรับทั้งและข ?H(a,b)H(a,b)H(a,b)aaabbbPPPaaabbb ทำไมเราไม่ป้อนด้วยPและป้อนข้อมูลโดยพลการพูดx ?H()H()H()PPPxxx

5
ทำไมปัญหานี้ที่แก้ไม่ตกใน NP ไม่ได้?
เห็นได้ชัดว่าไม่มีปัญหาที่ไม่สามารถตัดสินใจได้ใน NP อย่างไรก็ตามตามWikipedia : NP คือชุดของปัญหาการตัดสินใจทั้งหมดซึ่งอินสแตนซ์ที่คำตอบคือ "ใช่" มี [.. หลักฐานที่] ตรวจสอบได้ในเวลาพหุนามโดยเครื่องทัวริงกำหนด [ ... ] ปัญหาได้รับการกล่าวถึงว่าอยู่ใน NP ถ้าหากว่ามีตัวตรวจสอบสำหรับปัญหาที่ดำเนินการในเวลาพหุนาม พิจารณาปัญหาต่อไปนี้: ได้สมการไดโอแฟนไทน์มันมีเลขจำนวนเต็มไหม? ได้รับการแก้ไขมันง่ายต่อการตรวจสอบในเวลาพหุนามว่าจริง ๆ แล้วมันเป็นทางออก: เพียงแค่เสียบตัวเลขเข้ากับสมการ ดังนั้นปัญหาอยู่ใน NP อย่างไรก็ตามการแก้ปัญหานี้เป็นที่รู้จักกันว่า undecidable ! (ในทำนองเดียวกันดูเหมือนว่าปัญหาการหยุดชะงักควรอยู่ใน NP เนื่องจาก "ใช่" - การแก้ไข "โปรแกรมนี้หยุดที่ขั้นตอน N-th" สามารถตรวจสอบได้ในขั้นตอน N) เห็นได้ชัดว่ามีบางอย่างผิดปกติกับความเข้าใจของฉัน แต่มันคืออะไร

6
นิยามภาษาแบบวนซ้ำและนับซ้ำสำหรับคนธรรมดา
คำถามนี้ถูกย้ายจาก Theoretical Computer Science Exchange Exchange เพราะสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 6 ปีที่แล้ว ฉันเจอคำจำกัดความของภาษาแบบเรียกซ้ำและนับซ้ำ แต่ฉันไม่เข้าใจว่ามันคืออะไร บางคนได้โปรดบอกฉันว่าพวกเขาอยู่ในคำง่ายๆ?

4
บีเวอร์ไม่ว่างเป็นฟังก์ชั่นที่เติบโตเร็วที่สุดที่มนุษย์รู้จัก
คำถามนี้ถูกย้ายจาก Theoretical Computer Science Exchange Exchange เพราะสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันเพิ่งมีคำถามที่น่าสนใจนี้ ฟังก์ชั่นที่เติบโตเร็วที่สุดที่มนุษย์รู้จักกันคืออะไร? มันเป็นช่องคลอดไม่ว่าง ? เรารู้ว่าฟังก์ชั่นเช่นx2x2x^2แต่ฟังก์ชั่นนี้เติบโตช้ากว่า2x2x2^xซึ่งจะเติบโตช้ากว่าx !x!x!ซึ่งจะเติบโตช้ากว่าxxxxx^x x จากนั้นเราสามารถรวมฟังก์ชั่นเพื่อให้มี( xx) !(xx)!(x^x)!ที่เติบโตเร็วกว่าxxxxx^xและอื่น ๆ จากนั้นเราก็มาถึงฟังก์ชั่นวนซ้ำเช่นฟังก์ชันของ Ackermann A ( x , x )A(x,x)A(x,x)ที่เติบโตเร็วกว่า( xx) !(xx)!(x^x)!. จากนั้นผู้คนถึงกับฟังก์ชั่นBeaver B ( x )B(x)B(x)ทำงานเร็วกว่าฟังก์ชั่นของ Ackermann ณ จุดนี้ฉันไม่เคยได้ยินเกี่ยวกับฟังก์ชั่นอื่น ๆ ที่เติบโตเร็วกว่าบีเวอร์ที่ยุ่ง มันหมายความว่าไม่มีฟังก์ชั่นอื่น ๆ ที่สามารถเติบโตได้เร็วกว่าบีเวอร์ที่ยุ่งหรือเปล่า? (นอกเหนือจากแฟกทอเรียลของB ( …

4
เหตุใดฟังก์ชันที่คำนวณได้จึงเรียกว่าฟังก์ชันแบบเรียกซ้ำ
ในทฤษฎีการคำนวณฟังก์ชันการคำนวณก็เรียกว่าฟังก์ชันแบบเรียกซ้ำ อย่างน้อยแรกพบพวกเขาไม่มีอะไรเหมือนกันกับสิ่งที่คุณเรียกว่า "recursive" ในการเขียนโปรแกรมแบบวันต่อวัน (เช่นฟังก์ชั่นที่เรียกพวกเขาเอง) ความหมายที่แท้จริงของการเกิดซ้ำในบริบทของการคำนวณคืออะไร? ทำไมฟังก์ชั่นเหล่านี้จึงเรียกว่า "เวียนเกิด"? หากต้องการกล่าวไว้ในคำอื่น ๆ : การเชื่อมต่อระหว่างสองความหมายของ "การเรียกซ้ำ" คืออะไร?

6
อัลกอริทึมในการแก้ปัญหา“ การหยุดชะงัก” ของทัวริง
คำถามนี้ถูกย้ายจาก Theoretical Computer Science Exchange Exchange เนื่องจากสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 7 ปีที่ผ่านมา "Alan Turing พิสูจน์แล้วในปี 1936 ว่าอัลกอริทึมทั่วไปเพื่อแก้ปัญหาการหยุดชะงักสำหรับคู่อินพุตโปรแกรมที่เป็นไปได้ทั้งหมดไม่มีอยู่" ฉันสามารถหาอัลกอริทึมทั่วไปเพื่อแก้ปัญหาการหยุดพักสำหรับบางคู่ที่เป็นไปได้ของโปรแกรมหรือไม่ ฉันสามารถหาภาษาโปรแกรม (หรือภาษา) ที่ฉันใช้กับโปรแกรมทุกประเภทในภาษานี้ได้หรือไม่มันสามารถตัดสินใจได้ว่าโปรแกรมจะหยุดทำงานหรือรันตลอดไปหรือไม่?

5
เหตุใดภาษาการใช้งานทัวริงจึงสมบูรณ์
บางทีความเข้าใจที่ จำกัด ของฉันในเรื่องไม่ถูกต้อง แต่นี่คือสิ่งที่ฉันเข้าใจจนถึง: ฟังก์ชั่นการเขียนโปรแกรมมีพื้นฐานมาจากแลมบ์ดาแคลคูลัสสูตรโดยโบสถ์อลองโซ การโปรแกรมเชิงซ้อนนั้นขึ้นอยู่กับโมเดลเครื่องจักรทัวริงซึ่งผลิตโดย Alan Turing นักเรียนของศาสนจักร แลมบ์ดาแคลคูลัสนั้นทรงพลังและสามารถเป็นเครื่องทัวริงได้ซึ่ง หมายความว่าพวกมันเทียบเท่ากับกำลังในการคำนวณ หากการเขียนโปรแกรมใช้งานได้นั้นมีพื้นฐานมาจากแลมบ์ดาแคลคูลัสไม่ใช่เครื่องทัวริงทำไมบางคน (หรือทั้งหมด) อธิบายว่าทัวริงสมบูรณ์ไม่ใช่แลมบ์ดาสมบูรณ์หรืออะไรแบบนั้น? คำว่า "ทัวริงสมบูรณ์" เป็นพิเศษในทางใด ๆ ที่ทัวริงเครื่องจักรหรือเป็นเพียงคำ? สุดท้ายถ้าภาษาที่จำเป็นนั้นใช้ภาษาทัวริงและคอมพิวเตอร์นั้นเป็นเครื่องทัวริงที่ไม่มีหน่วยความจำไม่สิ้นสุดหมายความว่าภาษาเหล่านั้นทำงานได้ดีกว่าภาษาโปรแกรมที่ใช้งานได้บนพีซีที่ทันสมัยของเราหรือไม่ หากเป็นเช่นนั้นแล้วอะไรคือสิ่งที่เทียบเท่ากับเครื่องแคลคูลัสแลมบ์ดา? ฉันรู้ว่านี่เป็นคำถามที่แยกกัน 3 คำถาม แต่พวกเขาทั้งหมดมีความสัมพันธ์กันอย่างใกล้ชิดและแต่ละคำถามขึ้นอยู่กับคำถามก่อนหน้าว่าเป็นคำถามที่ถูกต้องที่จะเริ่มต้นด้วย

3
ประมาณความซับซ้อนของ Kolmogorov
ฉันได้ศึกษาเกี่ยวกับความซับซ้อนของ Kolmogorovอ่านบทความและหนังสือจากVitanyi และ Liและใช้แนวคิดของNormalized Compression Distanceเพื่อตรวจสอบ stilometry ของผู้เขียน (ระบุว่าผู้เขียนแต่ละคนเขียนข้อความและเอกสารกลุ่มอย่างไรด้วยความคล้ายคลึงกัน) ในกรณีดังกล่าวเครื่องอัดข้อมูลถูกใช้เพื่อประมาณความซับซ้อนของ Kolmogorov เนื่องจากเครื่องอัดข้อมูลสามารถใช้เป็นเครื่องทัวริงได้ นอกเหนือจากการบีบอัดข้อมูลและภาษาการเขียนโปรแกรม (ซึ่งคุณจะเขียนโปรแกรมบีบอัดบางชนิด) สิ่งอื่น ๆ ที่สามารถนำมาใช้เพื่อประมาณความซับซ้อนของ Kolmogorov ได้? มีวิธีการอื่นใดที่สามารถนำมาใช้ได้หรือไม่?

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

2
มีภาษาที่“ ไม่เป็นธรรมชาติ” ที่ไม่สามารถตัดสินใจได้หรือไม่?
มีภาษาใดที่ "เป็นธรรมชาติ" ซึ่งไม่สามารถตัดสินใจได้? โดย "natural" ฉันหมายถึงภาษาที่กำหนดโดยตรงโดยคุณสมบัติของสตริงไม่ใช่ผ่านทางเครื่องและเทียบเท่า กล่าวอีกนัยหนึ่งถ้าภาษาดูเหมือน โดยที่คือ TM, DFA (หรือ exp ปกติ), PDA (หรือไวยากรณ์), ฯลฯ จากนั้นไม่ใช่ธรรมชาติ อย่างไรก็ตามเป็นธรรมชาติL={⟨M⟩∣…}L={⟨M⟩∣…} L = \{ \langle M \rangle \mid \ldots \}MMMLLL L={xy…∣x is a prefix of y…}L={xy…∣x is a prefix of y…}L = \{xy \ldots \mid x \text{ is a prefix of y} \ldots …

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

1
เครื่องจักรสำหรับภาษาที่ไม่มีบริบทซึ่งไม่มีอำนาจพิเศษจาก nondeterminism
เมื่อพิจารณาถึงรูปแบบการคำนวณของเครื่องจักรลำดับชั้นของ Chomsky นั้นมีลักษณะตามปกติ (ตามลำดับ), ออโตไฟไนต์, ออโตมาตาแบบกดลง, ออโตเมต้าที่มีขอบเขตเชิงเส้น สำหรับครั้งแรกและครั้งสุดท้ายในระดับที่1 (ภาษาที่ปกติและภาษานับซ้ำ) มันทำให้ความแตกต่างในการใช้พลังงานของรูปแบบไม่ว่าจะเป็นเครื่องที่เราพิจารณากำหนดหรือ nondeterministic ไม่มี DFAs คือเทียบเท่ากับ NFAs และเจเทียบเท่ากับ NTMs 2 อย่างไรก็ตามสำหรับ PDA และ LBAs สถานการณ์จะแตกต่างกัน พีดีเอที่กำหนดได้จะรับรู้ชุดของภาษาที่เล็กกว่าอย่างเข้มงวดกว่าพีดีเอที่กำหนดไว้ นอกจากนี้ยังเป็นคำถามเปิดที่สำคัญว่า LBA ที่กำหนดขึ้นมีประสิทธิภาพเท่ากับ LBA ที่ไม่ระบุชื่อหรือไม่ [1] สิ่งนี้จะถามคำถามของฉัน: มีรูปแบบของเครื่องที่แสดงลักษณะของภาษาที่ไม่มีบริบท แต่ไม่มีการกำหนดระดับใดที่ไม่เพิ่มพลังพิเศษ? (ถ้าไม่มีคุณสมบัติของ CFL ที่แนะนำเหตุผลสำหรับการนี้) ดูเหมือนว่าเป็นไปไม่ได้ (สำหรับฉัน) ที่จะพิสูจน์ได้ว่าภาษาที่ไม่มีบริบทต้องมีความไม่เชื่อในลัทธินิยม แต่อย่างใดแต่ดูเหมือนว่าจะไม่เป็นแบบจำลองเครื่อง คำถามส่วนขยายเหมือนกัน แต่สำหรับภาษาที่คำนึงถึงบริบท อ้างอิง S.-Y. Kuroda, "คลาสของภาษาและ Linear Bata Automata" , …

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