คำถามติดแท็ก rice-theorem

2
งงงวยโดยทฤษฎีบทของข้าว
สรุป:ตามทฤษฎีบทของไรซ์ทุกอย่างเป็นไปไม่ได้ แต่ถึงกระนั้นฉันก็ทำสิ่งนี้เป็นไปไม่ได้ตลอดเวลา! แน่นอนทฤษฎีบทของไรซ์ไม่เพียงแค่พูดว่า "ทุกอย่างเป็นไปไม่ได้" มันบอกอะไรบางอย่างที่ค่อนข้างเฉพาะเจาะจง: "คุณสมบัติของโปรแกรมคอมพิวเตอร์ทุกโปรแกรมไม่สามารถคำนวณได้" (ถ้าคุณต้องการที่จะแยกเส้นผมคุณสมบัติ "ไม่สำคัญ" ทุกอย่างนั่นคือคุณสมบัติที่โปรแกรมทั้งหมดมีหรือไม่มีโปรแกรมที่มีการคำนวณได้เล็กน้อย แต่คุณสมบัติอื่น ๆ นั้นไม่สามารถคำนวณได้) นั่นคือสิ่งที่ทฤษฎีบทพูดหรือดูเหมือนจะพูด และน่าจะมีคนฉลาดจำนวนมากได้ตรวจสอบความถูกต้องของทฤษฎีนี้อย่างรอบคอบ แต่ดูเหมือนว่าจะท้าทายตรรกะอย่างสมบูรณ์! มีคุณสมบัติมากมายของโปรแกรมที่ไม่สำคัญในการคำนวณ !! ตัวอย่างเช่น: โปรแกรมดำเนินการกี่ขั้นตอนก่อนหยุดพัก ในการตัดสินใจว่าจำนวนนี้มี จำกัด หรือไม่มีที่สิ้นสุดเป็นปัญหาการหยุดชะงักอย่างแม่นยำซึ่งไม่สามารถคำนวณได้ ที่จะตัดสินใจว่าตัวเลขนี้เป็นมากหรือน้อยกว่าบาง จำกัดเป็นที่น่ารำคาญ! เพียงเรียกใช้โปรแกรมนานถึงnขั้นตอนและดูว่าหยุดทำงานหรือไม่ ง่าย!nnnnnn โปรแกรมใช้หน่วยความจำมากกว่าหรือน้อยกว่าหน่วยในขั้นตอนการเอ็มครั้งแรกหรือไม่ คำนวณได้เล็กน้อยnnnม.mm ข้อความของโปรแกรมพูดถึงตัวแปรที่ชื่อหรือไม่? การวิเคราะห์ข้อความเล็กน้อยจะเปิดเผยคำตอบkkk โปรแกรมเรียกใช้คำสั่งหรือไม่ สแกนข้อความของโปรแกรมอีกครั้งเพื่อค้นหาชื่อคำสั่งนั้นσσ\sigma ฉันสามารถเห็นความอุดมสมบูรณ์ของคุณสมบัติที่ทำดูไม่ใช่คำนวณเช่นกัน; เช่นการเติมเต็มจำนวนของโปรแกรมทำงานเป็นจำนวนเท่าใด? เกือบจะเหมือนกันกับการถามว่ามีกี่ขั้นตอนในการทำงานของโปรแกรมซึ่งเป็นปัญหาการหยุดชะงัก แต่ดูเหมือนว่ามีคุณสมบัติโปรแกรมจำนวนมากซึ่งง่ายต่อการคำนวณ ทฤษฎีบทของไรซ์ยังยืนยันว่าไม่มีใครสามารถคำนวณได้ สิ่งที่ฉันหายไปที่นี่?

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 

1
การแยกประเภทการปรับแต่ง
ที่ทำงานฉันได้รับมอบหมายให้อนุมานข้อมูลบางประเภทเกี่ยวกับภาษาแบบไดนามิก ฉันเขียนลำดับของข้อความไปยังletนิพจน์ที่ซ้อนกันเช่น: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } เนื่องจากฉันเริ่มต้นจากข้อมูลประเภททั่วไปและพยายามอนุมานประเภทที่เฉพาะเจาะจงมากขึ้นตัวเลือกที่เป็นธรรมชาติคือประเภทการปรับแต่ง ตัวอย่างเช่นตัวดำเนินการตามเงื่อนไขส่งคืนการรวมของประเภทของสาขาที่เป็นจริงและเท็จ …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

4
ปัญหาการหยุดทำงานที่ จำกัด จะถูกตัดสินใจได้ ทำไมสิ่งนี้จึงไม่ขัดแย้งกับทฤษฎีบทของไรซ์
คำสั่งหนึ่งของทฤษฎีบทของไรซ์ได้รับในหน้า 35 ของ "ความซับซ้อนในการคำนวณ: วิธีการที่ทันสมัย" (Arora-Barak): ฟังก์ชั่นบางส่วนจาก { 0 , 1}* * * *{0,1}∗\{0,1\}^* ถึง { 0 , 1}* * * *{0,1}∗\{0,1\}^*เป็นฟังก์ชั่นที่ไม่จำเป็นต้องกำหนดในอินพุตทั้งหมด เราบอกว่าเป็น TMMMM คำนวณฟังก์ชั่นบางส่วน ฉff ถ้าสำหรับทุกคน xxx ที่ ฉff ถูกกำหนดไว้ M( x ) = f( x )M(x)=f(x)M(x) = f(x) และสำหรับทุกคน xxx ที่ ฉff ไม่ได้กำหนดไว้ MMM จะเข้าสู่วงวนไม่สิ้นสุดเมื่อดำเนินการกับอินพุต xxx. ถ้าSSS เป็นชุดของฟังก์ชั่นบางส่วนที่เรากำหนด …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.