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

คำถามเกี่ยวกับปัญหาที่ไม่สามารถแก้ไขได้โดยเครื่องทัวริงใด ๆ

3
จะตัดสินใจได้อย่างไรว่า
เราได้รับแบบฝึกหัดต่อไปนี้ ปล่อย ฉ( n ) = { 100n เกิดขึ้นในการแทนทศนิยมของ πอื่นf(n)={10n occurs in the decimal representation of π0else\qquad \displaystyle f(n) = \begin{cases} 1 & 0^n \text{ occurs in the decimal representation of } \pi \\ 0 & \text{else}\end{cases} พิสูจน์ว่าคำนวณได้ฉff เป็นไปได้อย่างไร? เท่าที่ผมรู้ว่าเราไม่ทราบว่าสภาพอากาศมีลำดับของตัวเลขทุก (หรือ) และขั้นตอนวิธีการได้อย่างแน่นอนไม่ได้ตัดสินใจว่าลำดับบางอย่างจะไม่เกิดขึ้น ดังนั้นฉันคิดว่าfไม่สามารถคำนวณได้เพราะปัญหาพื้นฐานเป็นแบบกึ่งตัดสินใจได้เท่านั้นππ\pifff

2
วิธีแสดงให้เห็นว่าฟังก์ชั่นไม่สามารถคำนวณได้?
ฉันรู้ว่ามีทัวริงอยู่ถ้าฟังก์ชั่นคำนวณได้ จากนั้นวิธีแสดงให้เห็นว่าฟังก์ชั่นนั้นไม่สามารถคำนวณได้หรือไม่มีทัวริงใด ๆ มีอะไรที่เหมือนกับบทปั๊มน้ำ?

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

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

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

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

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

4
ภาษาที่ไม่สามารถตัดสินใจได้มีอยู่ในตรรกะเชิงคอนสตรัคติวิสต์หรือไม่?
คอนสตรัคติวิสต์ลอจิกเป็นระบบที่เอากฎของคนที่ได้รับการยกเว้นกลางเช่นเดียวกับการปฏิเสธคู่เช่นสัจพจน์ มีคำอธิบายเกี่ยวกับวิกิพีเดียที่นี่และที่นี่ โดยเฉพาะอย่างยิ่งระบบไม่อนุญาตให้มีการพิสูจน์ด้วยความขัดแย้ง ฉันสงสัยว่ามีใครบ้างที่คุ้นเคยกับสิ่งนี้ที่มีผลต่อผลลัพธ์เกี่ยวกับทัวริง Machines และภาษาทางการ ฉันสังเกตเห็นว่าเกือบทุกข้อพิสูจน์ว่าภาษานั้นไม่สามารถตัดสินใจได้โดยอาศัยการพิสูจน์จากความขัดแย้ง ทั้งอาร์กิวเมนต์ Diagonalization และแนวคิดของการลดทำงานด้วยวิธีนี้ จะมีหลักฐานที่ "สร้างสรรค์" ของการมีอยู่ของภาษาที่ไม่สามารถตัดสินใจได้หรือไม่และถ้าเป็นเช่นนั้นจะมีลักษณะอย่างไร แก้ไข: เพื่อความชัดเจนความเข้าใจของฉันพิสูจน์โดยความขัดแย้งในตรรกะ constructivist ผิดและคำตอบได้ชี้แจงนี้

1
อะไรคือระบบพิมพ์ที่แข็งแกร่งที่รู้จักกันดีที่สุดซึ่งอนุมานได้?
เป็นที่ทราบกันดีว่าการอนุมานของ Hindley-Milner (การพิมพ์ -calculus พร้อม polymorphism) นั้นมีการอนุมานประเภทที่สามารถตัดสินใจได้: คุณสามารถสร้างชนิดหลักการสำหรับโปรแกรมใด ๆ โดยไม่มีคำอธิบายประกอบใด ๆλλ\lambda การเพิ่มประเภทของสไตล์ Haskell ดูเหมือนจะรักษาความสามารถในการถอดรหัสได้ แต่การเพิ่มเติมเพิ่มเติมทำให้การอนุมานโดยไม่มีการเพิ่มความคิดเห็นไม่สามารถอธิบายได้ (ตระกูลตระกูล, GADTs, ชนิดพึ่งพา, ประเภท Rank, N, Systemเป็นต้น)ωω\omega ฉันสงสัยว่า: อะไรคือระบบพิมพ์ที่แข็งแกร่งที่สุดที่มีการอนุมานได้อย่างสมบูรณ์? มันจะอยู่ที่ไหนสักแห่งระหว่าง Hindley-Milner (decidable อย่างสมบูรณ์) และ dependent-types (undecidable สมบูรณ์) มีแง่มุมของ DT ที่สามารถเพิ่มซึ่งรักษาความสามารถในการตัดสินใจอนุมานได้หรือไม่? มีงานวิจัยใดที่ทำเพื่อดูว่าสามารถผลักดันสิ่งนี้ได้ไกลแค่ไหน? ฉันรู้ว่าไม่มีระบบที่แข็งแกร่งที่สุดเพียงระบบเดียวที่มีความเป็นไปได้ที่จะเกิดการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ที่ไม่สิ้นสุดและเพิ่มขึ้นซึ่งสามารถเพิ่มเข้าไปในการอนุมาน HM แต่มีแนวโน้มว่าผู้สมัครที่ใช้งานได้ไม่กี่คนของระบบที่ถูกค้นพบ แก้ไข: เนื่องจากไม่มีระบบที่ "แข็งแกร่งที่สุด" ฉันจะยอมรับคำตอบที่แสดงถึงระบบที่น่าทึ่งซึ่งขยาย Hindley Milner ด้วยการอนุมานที่แน่นอน …

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 …

1
อัตราส่วนของปัญหาที่ตัดสินใจได้
พิจารณาปัญหาการตัดสินใจที่ระบุไว้ในภาษาทางการ“ สมเหตุสมผล” บางภาษา สมมุติว่าสูตรใน Peano เลขคณิตที่สูงกว่าซึ่งมีตัวแปรอิสระหนึ่งตัวเป็นกรอบอ้างอิง แต่ฉันก็สนใจในการคำนวณแบบอื่น ๆ : สมการไดโอแฟนไทน์, ปัญหาคำจากการเขียนกฎใหม่โดยใช้เครื่องทัวริงเป็นต้นคำตอบใด ๆ การทำให้เป็นระเบียบแบบดั้งเดิมนั้นเป็นเรื่องปกติ แต่ถ้าคุณรู้ว่าตัวเลือกของการทำให้เป็นระเบียบมีอิทธิพลต่อคำตอบมากแค่ไหนนั่นก็น่าสนใจเช่นกัน ได้รับความยาวของคำสั่งของปัญหาการตัดสินใจที่เราสามารถกำหนดหมายเลขของงบ decidable ของความยาวและหมายเลขของงบ undecidable ของความยาวNNNND(N)D(N)D(N)NNNU(N)U(N)U(N)NNN สิ่งที่เป็นที่รู้จักกันเกี่ยวกับการเติบโตของและ ? กล่าวอีกนัยหนึ่งถ้าฉันใช้ปัญหาการตัดสินใจที่มีรูปแบบสุ่มความน่าจะเป็นที่จะตัดสินใจได้สำหรับความยาวของข้อความที่กำหนดคืออะไรU(N)U(N)U(N)D(N)D(N)D(N) ได้รับแรงบันดาลใจจากคำถามนี้ซึ่งถามว่า“ ปัญหาและอัลกอริธึมส่วนใหญ่ [เป็น] ตัดสินใจได้” ถ้าคุณไม่กรองตามความสนใจ

2
ชุดของเครื่องจักรทัวริงที่หยุดในขั้นตอนไม่เกิน 50 ขั้นสำหรับอินพุตทั้งหมดสามารถตัดสินใจได้หรือไม่?
Let\} ฉันต้องตัดสินใจว่าFสามารถตัดสินใจได้หรือนับซ้ำได้ซ้ำ ฉันคิดว่ามันตัดสินได้ แต่ฉันไม่รู้จะพิสูจน์มันได้อย่างไรF= { ⟨ M⟩ : M เป็น TM ซึ่งจะหยุดสำหรับทุกอินพุตที่มากที่สุด 50 ขั้นตอน}F={⟨M⟩:M is a TM which stops for every input in at most 50 steps}F = \{⟨M⟩:\text{M is a TM which stops for every input in at most 50 steps}\} ความคิดของฉัน ส่วน "50 ขั้นตอน" นี้จะเปลี่ยนสัญลักษณ์Rให้ฉันทันที หากเป็นข้อมูลที่เฉพาะเจาะจงก็จะสามารถตัดสินใจได้ อย่างไรก็ตามที่นี่มีไว้สำหรับทุกอินพุต การตรวจสอบมันสำหรับปัจจัยการผลิตที่ไม่มีที่สิ้นสุดทำให้ฉันคิดว่าเป็นปัญหาร่วม-RE …

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

1
การแสดงออกปกติด้วย backreferences มากกว่าตัวอักษรเอก
การตั้งค่า: นิพจน์ปกติที่มีการอ้างอิงย้อนกลับ ภาษาเดียว (ตัวอักษรสัญลักษณ์ 1 ตัว) ปัญหาต่อไปนี้สามารถแก้ไขได้ในการตั้งค่านี้: ได้รับการแสดงออกปกติด้วย backreferences มันกำหนดภาษาปกติหรือไม่ ตัวอย่างเช่น(aa+)\1กำหนดภาษาปกติโดยที่(aa+)\1+ไม่ทำเช่นนั้น เราสามารถตัดสินใจได้ว่าจะใช้กรณีใด สำหรับ concreteness "นิพจน์ทั่วไปที่มีการอ้างอิงย้อนกลับ" ที่นี่อ้างถึงเช่นชุดย่อยต่อไปนี้ของนิพจน์ปกติที่เข้ากันได้กับ Perl ปกติ : aจับคู่อักขระa( อักขระเพียงตัวเดียวในตัวอักษร) X* ตรงกับ 0 หรือมากกว่าที่เกิดขึ้นของ X X|Yจับคู่XหรือY วงเล็บสามารถใช้สำหรับการจัดกลุ่มและการจับภาพ \1. \2และอื่น ๆ จับคู่สตริงเดียวกันกับวงเล็บคู่ที่ 1, 2 และอื่น ๆ นอกจากนี้เรายังสามารถใช้ shorthands ปกติเช่น=X+XX*

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