คำถามติดแท็ก proof-techniques

คำถามเกี่ยวกับวิธีการและเทคนิคทั่วไปสำหรับการพิสูจน์ทฤษฎีบทหลายรายการ เมื่อถามเกี่ยวกับการพิสูจน์ข้อความเดี่ยวให้ใช้แท็กที่เกี่ยวข้องกับสิ่งที่พิสูจน์ได้แทน

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

11
การแก้ไขหรือการประมาณความสัมพันธ์ที่เกิดซ้ำสำหรับลำดับของตัวเลข
ในวิทยาการคอมพิวเตอร์เรามักจะต้องแก้ปัญหาความสัมพันธ์ซ้ำซึ่งเป็นรูปแบบปิดสำหรับลำดับตัวเลขที่กำหนดซ้ำ เมื่อพิจารณาจากเวลาการทำงานเรามักจะให้ความสนใจส่วนใหญ่อยู่ในลำดับที่asymptoticการเจริญเติบโต ตัวอย่างคือ รันไทม์ของฟังก์ชั่น tail-recursive ลดลงเหลือจากซึ่งร่างกายใช้เวลา :000nnnf(n)f(n)f(n) T(0)T(n+1)=0=T(n)+f(n)T(0)=0T(n+1)=T(n)+f(n)\qquad \begin{align} T(0) &= 0 \\ T(n+1) &= T(n) + f(n) \end{align} ลำดับฟีโบนักชี : F0F1Fn+2=0=1=Fn+Fn+1F0=0F1=1Fn+2=Fn+Fn+1\qquad \begin{align} F_0 &= 0 \\ F_1 &= 1 \\ F_{n+2} &= F_n + F_{n+1} \end{align} จำนวนคำ Dyckกับคู่วงเล็บ:nnn C0Cn+1=1=∑i=0nCiCn−iC0=1Cn+1=∑i=0nCiCn−i\qquad\begin{align} C_0 &= 1 \\ C_{n+1}&=\sum_{i=0}^{n}C_i\,C_{n-i} \end{align} การเกิดซ้ำรันไทม์การผสานบนรายการความยาว :nnn T(1)T(n)=T(0)=0=T(⌊n/2⌋)+T(⌈n/2⌉)+n−1T(1)=T(0)=0T(n)=T(⌊n/2⌋)+T(⌈n/2⌉)+n−1\qquad \begin{align} …

5
จะพิสูจน์ได้อย่างไรว่าภาษานั้นไม่มีบริบท
เราได้เรียนรู้เกี่ยวกับการเรียนของภาษาบริบทฟรี L มันโดดเด่นด้วยทั้งไวยากรณ์ที่ไม่มีบริบทและออโตมาดาวน์C F LCFL\mathrm{CFL}ดังนั้นมันจึงง่ายต่อการแสดงให้เห็นว่าภาษาที่ให้นั้นไม่มีบริบท ฉันจะแสดงสิ่งที่ตรงกันข้ามได้อย่างไร? TA ของฉันได้ยืนกรานว่าในการที่จะทำเช่นนั้นเราจะต้องแสดงให้ทุกคนได้เห็นไวยากรณ์ (หรือออโตมาตะ) ว่าพวกเขาไม่สามารถอธิบายภาษาในมือ ดูเหมือนว่าจะเป็นงานใหญ่! ฉันได้อ่านเกี่ยวกับบทแทรกซึมบ้าง แต่มันดูซับซ้อนจริงๆ

10
จะพิสูจน์ได้อย่างไรว่าภาษาไม่ปกติ
เราได้เรียนรู้เกี่ยวกับการเรียนของภาษาปกติ{} มันโดดเด่นด้วยแนวคิดใดแนวคิดหนึ่งในการแสดงออกปกติออโต้ จำกัด และไวยากรณ์ด้านซ้ายดังนั้นจึงเป็นเรื่องง่ายที่จะแสดงว่าภาษาที่กำหนดเป็นปกติREGREG\mathrm{REG} ฉันจะแสดงสิ่งที่ตรงกันข้ามได้อย่างไร? TA ของฉันได้รับการยืนยันว่าในการทำเช่นนั้นเราจะต้องแสดงให้เห็นสำหรับการแสดงออกปกติทั้งหมด (หรือสำหรับออโต้ จำกัด ทั้งหมดหรือสำหรับไวยากรณ์ซ้าย - เชิงเส้นทั้งหมด) ที่พวกเขาไม่สามารถอธิบายภาษาที่อยู่ในมือ ดูเหมือนว่าจะเป็นงานใหญ่! ฉันได้อ่านเกี่ยวกับบทแทรกซึมบ้าง แต่มันดูซับซ้อนจริงๆ นี่เป็นคำถามอ้างอิงที่รวบรวมวิธีการพิสูจน์ตามปกติและตัวอย่างการใช้ ดูที่นี่สำหรับคำถามเดียวกันเกี่ยวกับภาษาที่ไม่มีบริบท

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

8
จะพิสูจน์ภาษาได้อย่างไร?
มีหลายวิธีในการพิสูจน์ว่าภาษาไม่ปกติแต่ฉันต้องทำอย่างไรเพื่อพิสูจน์ว่าภาษาบางอย่างเป็นปกติ ตัวอย่างเช่นหากฉันได้รับเป็นปกติฉันจะพิสูจน์ได้อย่างไรว่าต่อไปนี้เป็นปกติเช่นกันL ′LLLL′L′L' L′:={w∈L:uv=w for u∈Σ∗∖L and v∈Σ+}L′:={w∈L:uv=w for u∈Σ∗∖L and v∈Σ+}\qquad \displaystyle L' := \{w \in L: uv = w \text{ for } u \in \Sigma^* \setminus L \text{ and } v \in \Sigma^+ \} ฉันสามารถวาดออโตเมติก จำกัด แบบไม่มีการกำหนดเพื่อพิสูจน์สิ่งนี้ได้หรือไม่?

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

4
เทคนิคทั่วไปในการลดปัญหาให้กันคืออะไร
ในทฤษฎีการคำนวณและความซับซ้อน (และสาขาอื่น ๆ ) การลดลงนั้นแพร่หลาย แสดงให้เห็นว่าปัญหาที่หนึ่ง: มีหลายชนิดหลักการยังคงเหมือนเดิมมี แต่อย่างน้อยเป็นหนักเป็นบางส่วนปัญหาอื่น ๆโดยกรณีการทำแผนที่จากกับคนที่แก้ปัญหาที่เทียบเท่าในL_1โดยพื้นฐานแล้วเราแสดงให้เห็นว่านักแก้ปัญหาสำหรับสามารถแก้ปัญหาหากเราอนุญาตให้ใช้ฟังก์ชั่นการลดเป็นตัวประมวลผลล่วงหน้าL 2 L 2 L 1 L 1 L 2L1L1L_1L2L2L_2L2L2L_2L1L1L_1L1L1L_1L2L2L_2 ฉันทำการแบ่งส่วนลดของฉันในช่วงหลายปีที่ผ่านมาและมีบางสิ่งที่ขัดขวางฉันอยู่เสมอ ในขณะที่การลดใหม่ทุกครั้งต้องใช้การสร้างที่สร้างสรรค์ (มากกว่าหรือน้อยกว่า) งานนั้นสามารถรู้สึกซ้ำได้ มีกลุ่มวิธีการบัญญัติหรือไม่? เทคนิครูปแบบและกลวิธีใดที่หนึ่งสามารถใช้เป็นประจำเพื่อสร้างฟังก์ชั่นลดขนาด นี้ควรจะกลายเป็นคำถามที่อ้างอิง ดังนั้นโปรดระมัดระวังในการให้คำตอบทั่วไปนำเสนอคำตอบที่แสดงตัวอย่างอย่างน้อยหนึ่งตัวอย่าง แต่อย่างไรก็ตามยังครอบคลุมหลาย ๆ สถานการณ์ ขอบคุณ!

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

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 สรุปสิ่งที่ทำให้ฉันหนักใจดีกว่าตัวฉัน: "ปัญหาของการพิสูจน์หลายรุ่นคือสิ่งก่อสร้างดูเหมือนว่าจะถูกดึงออกมาจากหมวกวิเศษ"

3
ทำไมการ relativization เป็นอุปสรรค?
เมื่อฉันอธิบายว่าเบเกอร์ - ปลา - โซโลวันพิสูจน์ว่ามีออราเคิลซึ่งเราสามารถมีได้และออราเคิลที่เราสามารถมีถึงเพื่อนคำถามหนึ่งเกิดขึ้นว่าทำไมเทคนิคดังกล่าวจึงไม่เหมาะสำหรับการพิสูจน์ปัญหาและฉันก็ไม่สามารถให้คำตอบที่น่าพอใจได้P=NPP=NP\mathsf{P} = \mathsf{NP}P≠NPP≠NP\mathsf{P} \neq \mathsf{NP}P≠NPP≠NP\mathsf{P} \neq \mathsf{NP} หากต้องการให้พิสูจน์ได้อย่างชัดเจนยิ่งขึ้นถ้าฉันมีวิธีการพิสูจน์และถ้าฉันสามารถสร้าง oracle เพื่อทำให้สถานการณ์ดังกล่าวเกิดขึ้นทำไมมันทำให้วิธีการของฉันไม่ถูกต้อง?P≠NPP≠NP\mathsf{P} \neq \mathsf{NP} คำอธิบายใด ๆ / ความคิดในหัวข้อนี้?

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

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

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

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

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