ตัวแปรที่แตกต่างสำหรับส่วนคำสั่งต่างๆ


10

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

ปัญหาคือในทุกกรณีการทดสอบที่ฉันได้ลองมามันไม่ได้สร้างความแตกต่าง สันนิษฐานว่ามันสำคัญเฉพาะในกรณีขอบที่ผิดปกติ ดังที่Wikipediaกล่าวไว้ว่า "ตัวแปรในส่วนคำสั่งที่ต่างกันมีความชัดเจน ... ตอนนี้การรวม Q (X) ในข้อแรกกับ Q (Y) ในข้อที่สองหมายความว่า X และ Y กลายเป็นตัวแปรเดียวกันอยู่แล้ว"

มีกรณีทดสอบที่รู้จักกันซึ่งจริง ๆ แล้วจะให้คำตอบที่ไม่ถูกต้องถ้าส่วนต่าง ๆ ใช้ตัวแปรเดียวกันหรือไม่

คำตอบ:


6

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

¬P(x)P(f(x))P(x)¬P(f(f(x)))
P(f(x))f(x)x

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


(คำตอบเดิม) ตัวอย่างเช่นเรามี 4 ข้อ

  1. AB(x)
  2. ¬AC(x)
  3. ¬B(c)
  4. ¬C(d)

โดยที่คือตัวแปรและค่าคงที่ ถ้าเราดำเนินความละเอียดในสองครั้งแรกโดยไม่ต้องเปลี่ยนชื่อ , เราจะได้รับ(x) เราสามารถดำเนินการกับที่จะได้รับแต่ตอนนี้เราไม่สามารถแก้ปัญหาได้ด้วย(ง)c , d x B ( x ) C ( x ) ¬ B ( c ) C ( c ) ¬ C ( d )x,yc,dxB(x)C(x)¬B(c)C(c)¬C(d)

ในทางกลับกันถ้าเราเปลี่ยนชื่อเป็นในชุดที่สองเพื่อให้ชุดตัวแปรแยกกันเราจะได้จากขั้นตอนการแก้ปัญหาแรกและเราสามารถหาประโยคว่างโดยใช้และ(ง)y B ( x ) C ( y ) ¬ B ( c ) ¬ B ( d )xyB(x)C(y)¬B(c)¬B(d)


เมื่อฉันลองสิ่งนี้ในภาษิตของฉันด้วยการปิดใช้งานตัวแปรที่แตกต่างกันมันแก้ไขด้วยเพื่อให้ , ได้รับและทำนองเดียวกันกับประโยคว่างดังนั้นผลลัพธ์ที่ได้จึงเหมือนกัน ฉันพลาดอะไรไปรึเปล่า? ¬ B ( c ) A ¬ AB(x)¬B(c)A¬A
rwallace

@rwallace ไม่มีตัวแปรที่แตกต่างกันไม่ได้หมายความว่าคุณไม่สามารถหาประโยคว่างได้ แต่วิธีการนั้นไม่สมบูรณ์ หากคุณเปลี่ยนชื่อตัวแปรเสมอมันไม่สำคัญว่าจะเลือกคำสั่งใดคุณจะได้รับประโยคว่างถ้าชุดเดิมไม่น่าพอใจ - วิธีการนี้เสร็จสมบูรณ์ แต่ถ้าคุณไม่เปลี่ยนชื่อตัวแปรจากนั้น (ตามตัวอย่างแสดง) ลำดับนั้นสำคัญ - ลำดับของการสืบทอดบางส่วนจะไม่พบประโยคว่าง และผู้พูดจะไม่สามารถ "บอก" ล่วงหน้าได้ว่าลำดับการสืบเนื่องใดเป็นลำดับที่เหมาะสม
Petr Pudlák

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

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

@wallwall ทำไมคุณต้องการที่จะทำเช่นนั้น? การแก้ปัญหาเป็นวิธีการที่สมบูรณ์และคุณรู้ว่าไม่ว่าในกรณีใด ๆ จำเป็นที่จะต้องดำเนินการแก้ปัญหาสำหรับคำสั่งแต่ละคู่เพียงครั้งเดียวเท่านั้น คุณแนะนำให้ลองใช้ลำดับที่เป็นไปได้ทั้งหมดในวิธีดำเนินการย้อนรอย สิ่งนี้จะส่งผลให้ความซับซ้อนของอัลกอริทึมเพิ่มขึ้นอย่างมากจริง ๆไม่ได้เปรียบเทียบจากระยะไกลเพียงแค่เปลี่ยนชื่อตัวแปรในแต่ละขั้นตอน
Petr Pudlák
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.