รูปแบบปกติของการเชื่อมคำ
ในพีชคณิตบูลีนสูตรจะอยู่ในรูปแบบปกติแบบเชื่อมโยง ( CNF ) หรือรูปแบบปกติแบบประโยคถ้าสูตรนั้นเป็นการเชื่อมโยง ของ ประโยคหนึ่งประโยคขึ้นไปโดยที่ประโยคแต่ละประโยคเป็นการแยกของตัวแปรหรืออีกนัยหนึ่งคือผลคูณของผลรวมหรือเป็นผลรวมแบบ AND ของ OR
ในการพิสูจน์ทฤษฎีบทอัตโนมัติแนวคิด " รูปแบบปกติแบบประโยค " มักถูกใช้ในความหมายที่แคบกว่า ซึ่งหมายถึงการแสดงสูตร CNF ในรูปแบบเฉพาะเจาะจงในรูปของเซตของเซตของตัวอักษร
คำนิยาม
สูตรตรรกะจะถือว่าอยู่ในรูปแบบ CNF ก็ต่อเมื่อเป็นการเชื่อมโยงของการแยก อย่างน้อยหนึ่งรายการ ของตัวแปร อย่างน้อยหนึ่งตัว เช่นเดียวกับในรูปแบบปกติแบบแยก (DNF) ตัวดำเนินการเชิงประพจน์เพียงอย่างเดียวใน CNF คือ " หรือ " (), และ () และไม่ใช่ (ตัว ดำเนินการ ` not`สามารถใช้ได้เฉพาะเป็นส่วนหนึ่งของค่าคงที่เท่านั้น ซึ่งหมายความว่าจะต้องอยู่หน้าตัวแปรเชิงประพจน์ เท่านั้น
ต่อไปนี้เป็นไวยากรณ์ที่ไม่ขึ้นกับบริบทสำหรับ CNF:
- ซีเอ็นเอฟแยกส่วนแยกส่วนซีเอ็นเอฟ
- แยกส่วนอย่างแท้จริงอย่างแท้จริงแยกส่วน
- อย่างแท้จริงตัวแปรตัวแปร
โดยที่Variableคือตัวแปรใดๆ ก็ได้
สูตรทั้งหมดต่อไปนี้อยู่ในตัวแปรและอยู่ในรูปกริยาเชื่อมประโยคปกติ:
สูตรต่อไปนี้ไม่ได้ อยู่ ในรูปแบบปกติแบบเชื่อมโยง:
- เนื่องจากตัวดำเนินการ AND ซ้อนอยู่ภายในตัวดำเนินการ NOT
- เนื่องจาก OR นั้นซ้อนอยู่ภายใน NOT
- เนื่องจากตัวดำเนินการ AND ซ้อนอยู่ภายในตัวดำเนินการ OR
- เนื่องจากตัวดำเนินการ OR ซ้อนกันควรเขียนโดยไม่ต้องมีวงเล็บ
การแปลงเป็น CNF
ในตรรกศาสตร์คลาสสิกสูตรประพจน์แต่ละ สูตร สามารถแปลงเป็น สูตร ที่เทียบเท่ากันซึ่งอยู่ใน CNF ได้[ 1 ]การแปลงนี้ขึ้นอยู่กับกฎเกี่ยวกับความสมมูลเชิงตรรกะได้แก่การกำจัดการปฏิเสธซ้ำซ้อนกฎของเดอ มอร์แกนและกฎการกระจาย
อัลกอริทึมพื้นฐาน
อัลกอริทึมสำหรับคำนวณค่าเทียบเท่า CNF ของสูตรเชิงประพจน์ที่กำหนดให้สร้างต่อยอดจากในรูปแบบปกติแบบแยกส่วน (DNF) : ขั้นตอนที่ 1. [ 2 ] จากนั้นถูกแปลงเป็นโดยการสลับ AND กับ OR และในทางกลับกัน พร้อมทั้งกลับค่าตัวอักษรทั้งหมด ลบทั้งหมด[ 1 ]
การแปลงโดยวิธีการทางไวยากรณ์
แปลงสูตรเชิงประพจน์ให้อยู่ในรูปแบบ CNF.
ขั้นตอนที่ 1 : แปลงการปฏิเสธให้เป็นรูปแบบปกติแบบแยกส่วน[ 2 ]
โดยที่แต่ละเป็นการเชื่อมโยงของตัวอักษร[ 4 ]
ขั้นตอนที่ 2 : ยกเลิกจากนั้นจึงเปลี่ยนเกียร์เข้าไปภายในโดยการใช้หลักสมดุลของเดอ มอร์แกน (แบบทั่วไป)จนกว่าจะไม่สามารถทำได้อีกต่อไป ที่ไหน
ขั้นตอนที่ 3 : ลบการปฏิเสธซ้ำซ้อนทั้งหมดออก
ตัวอย่าง
แปลงสูตรเชิงประพจน์ให้อยู่ในรูปแบบ CNF [ 5 ]
DNF เทียบเท่าแบบเต็มของสิ่งที่ปฏิเสธคือ[ 2 ]
การแปลงโดยวิธีการทางความหมาย
สูตรที่เทียบเท่ากับรูปแบบ CNF สามารถหาได้จากตารางค่าความจริง ของสูตรนั้น ลองพิจารณาสูตรนี้อีกครั้ง [ 5 ]
ตารางความจริงที่เกี่ยวข้องคือ
| ที | ที | ที | เอฟ | ที | เอฟ | เอฟ | ที | เอฟ | |||||
| ที | ที | เอฟ | เอฟ | ที | เอฟ | ที | ที | เอฟ | |||||
| ที | เอฟ | ที | ที | เอฟ | ที | เอฟ | ที | ที | |||||
| ที | เอฟ | เอฟ | ที | เอฟ | เอฟ | ที | เอฟ | ที | |||||
| เอฟ | ที | ที | ที | เอฟ | ที | เอฟ | ที | ที | |||||
| เอฟ | ที | เอฟ | ที | เอฟ | เอฟ | ที | เอฟ | ที | |||||
| เอฟ | เอฟ | ที | ที | เอฟ | ที | เอฟ | ที | เอฟ | |||||
| เอฟ | เอฟ | เอฟ | ที | เอฟ | ที | ที | ที | เอฟ |
เทียบเท่า CNF ของเป็น
การเชื่อมโยงแบบ "หรือ" แต่ละครั้งสะท้อนถึงการกำหนดตัวแปรซึ่งประเมินค่าเป็น F(เท็จ) หากในการกำหนดค่าดังกล่าว ตัวแปร
- ถ้า T(จริง) ค่าตัวอักษรจะถูกตั้งเป็นในการเชื่อมแบบ "ไม่"
- ถ้าเป็น F(เท็จ) ค่าตัวอักษรจะถูกตั้งเป็นในการเชื่อมแบบ "หรือ"
แนวทางอื่นๆ
เนื่องจากสูตรเชิงประพจน์ทั้งหมดสามารถแปลงเป็นสูตรที่เทียบเท่ากันในรูปแบบปกติเชิงเชื่อมโยง (Conjunctive Normal Form หรือ CNF) ได้ การพิสูจน์จึงมักอาศัยสมมติฐานว่าสูตรทั้งหมดเป็น CNF อย่างไรก็ตาม ในบางกรณี การแปลงเป็น CNF อาจทำให้สูตรมีขนาดใหญ่ขึ้นอย่างมาก ตัวอย่างเช่น การแปลสูตรที่ไม่ใช่ CNF
เมื่อนำไปผสมกับ CNF จะได้สูตรที่มีข้อกำหนด:
แต่ละข้อความประกอบด้วยอย่างใดอย่างหนึ่งหรือสำหรับแต่ละคน.
มีการแปลงเป็น CNF ที่หลีกเลี่ยงการเพิ่มขนาดแบบเลขชี้กำลังโดยการรักษาความสามารถในการทำให้ เป็นจริง แทนที่จะเป็นความเท่าเทียมกัน [ 6 ] [ 7 ] การแปลงเหล่านี้รับประกันว่าจะเพิ่มขนาดของสูตรขึ้นแบบเชิงเส้นเท่านั้น แต่จะเพิ่มตัวแปรใหม่ ตัวอย่างเช่น สูตรข้างต้นสามารถแปลงเป็น CNF ได้โดยการเพิ่มตัวแปรดังต่อไปนี้:
การตีความจะสอดคล้องกับสูตรนี้ก็ต่อเมื่อตัวแปรใหม่ตัวใดตัวหนึ่งเป็นจริงอย่างน้อยหนึ่งตัว ถ้าตัวแปรนั้นคือจากนั้นทั้งสองและก็เป็นจริงเช่นกัน นั่นหมายความว่าทุกแบบจำลองที่ตรงตามสูตรนี้ก็ตรงตามสูตรดั้งเดิมด้วย ในทางกลับกัน มีเพียงบางแบบจำลองของสูตรดั้งเดิมเท่านั้นที่ตรงตามสูตรนี้ เนื่องจากเนื่องจากตัวแปรเหล่านี้ไม่ได้ถูกกล่าวถึงในสูตรดั้งเดิม ค่าของตัวแปรเหล่านี้จึงไม่เกี่ยวข้องกับการทำให้สูตรนั้นเป็นจริง ซึ่งแตกต่างจากสูตรสุดท้าย นั่นหมายความว่าสูตรดั้งเดิมและผลลัพธ์ของการแปลงนั้นสามารถทำให้เป็นจริงได้เหมือนกันแต่ไม่เท่ากัน
การแปลอีกแบบหนึ่ง คือการแปลงแบบ Tseitinนั้น ยังรวมถึงข้อความย่อยต่างๆ ด้วยด้วยเงื่อนไขเหล่านี้ สูตรดังกล่าวจึงหมายความว่าสูตรนี้มักถูกมองว่าเป็นการ "กำหนด"เพื่อเป็นชื่อสำหรับ.
จำนวนการเชื่อมแบบ "หรือ" สูงสุด
พิจารณาสูตรเชิงประพจน์ที่มีตัวแปร.
มีอยู่ตัวอักษรที่อาจเป็นไปได้:.
มีเซตย่อยที่ไม่ว่างเปล่า[ 8 ]
นี่คือจำนวนการแยกสูงสุดที่ CNF สามารถมีได้[ 9 ]
การรวมกันเชิงฟังก์ชันความจริงทั้งหมดสามารถแสดงได้ด้วยการเชื่อมแบบ "หรือ" (disjunctions) หนึ่งอันสำหรับแต่ละแถวของตารางความจริงในตัวอย่างด้านล่าง การเชื่อมแบบ "หรือ" จะถูกขีดเส้นใต้
ตัวอย่าง
พิจารณาสูตรที่มีตัวแปรสองตัวและ.
CNF ที่ยาวที่สุดที่เป็นไปได้คือการแยก: [ 9 ]
สูตรนี้ขัดแย้งกันเองสามารถทำให้ง่ายขึ้นได้เป็นหรือถึงซึ่งสิ่งเหล่านี้ก็เป็นข้อขัดแย้งเช่นกัน แต่ก็เป็น CNF ที่ถูกต้องด้วย
ความซับซ้อนในการคำนวณ
ปัญหาชุดสำคัญในความซับซ้อนของการคำนวณเกี่ยวข้องกับการค้นหาการกำหนดค่าให้กับตัวแปรของสูตรบูลีนที่แสดงในรูปแบบปกติแบบเชื่อมโยง โดยที่สูตรนั้นเป็นจริง ปัญหา k -SAT คือปัญหาของการค้นหาการกำหนดค่าที่น่าพอใจให้กับสูตรบูลีนที่แสดงใน CNF ซึ่งแต่ละการเชื่อมโยงมีตัวแปร ไม่เกิน k ตัว3-SATเป็น ปัญหา NP-complete (เช่นเดียวกับ ปัญหาk -SAT อื่นๆ ที่ k > 2) ในขณะที่2-SATเป็นที่ทราบกันว่ามีวิธีแก้ปัญหาในเวลาพหุนามผลที่ตามมาคือ[ 10 ]งานของการแปลงสูตรเป็นDNFโดยรักษาความสามารถในการทำให้เป็นจริงจึงเป็นNP-hardในทำนองเดียวกันการแปลงเป็น CNF โดยรักษาความถูกต้องก็เป็น NP-hard เช่นกัน ดังนั้นการแปลงเป็น DNF หรือ CNF ที่รักษาความเท่าเทียมกันจึงเป็น NP-hard อีกครั้ง
ปัญหาทั่วไปในกรณีนี้เกี่ยวข้องกับสูตรในรูปแบบ "3CNF": รูปแบบปกติเชิงเชื่อมโยง (conjunctive normal form) ที่มีตัวแปรไม่เกินสามตัวต่อส่วนเชื่อมโยง ตัวอย่างของสูตรดังกล่าวที่พบได้ในทางปฏิบัติอาจมีขนาดใหญ่มาก เช่น มีตัวแปร 100,000 ตัว และส่วนเชื่อมโยง 1,000,000 ส่วน
สูตรในรูปแบบ CNF สามารถแปลงเป็นสูตรที่สามารถทำให้เป็นจริงได้ในรูปแบบ " k CNF" (สำหรับk ≥ 3) โดยการแทนที่ส่วนประกอบแต่ละส่วนด้วย ตัวแปรมากกว่าk ตัวโดยสองจุดบรรจบกันและโดยให้Zเป็นตัวแปรใหม่ และทำซ้ำบ่อยเท่าที่จำเป็น
ตรรกะลำดับที่หนึ่ง
ในตรรกศาสตร์ลำดับที่หนึ่ง รูปแบบปกติเชิงเชื่อมโยง (Conjunctive Normal Form หรือ CNF) สามารถนำไปใช้ต่อเพื่อให้ได้รูปแบบปกติเชิงประโยค (Clausal Normal Form หรือ CNF) ของสูตรตรรกศาสตร์ ซึ่งสามารถนำไปใช้ในการแก้ปัญหาลำดับที่หนึ่งได้ในการพิสูจน์ทฤษฎีบทอัตโนมัติโดยใช้การแก้ปัญหา สูตร CNF สามารถนำไป ใช้ได้
| [ 11 ] มักจะ แสดงเป็นเซตของเซต | |||||||||||||||||||
| . |
ดูตัวอย่างด้านล่าง
การแปลงจากตรรกะลำดับที่หนึ่ง
เพื่อแปลงตรรกะลำดับแรกเป็น CNF: [ 12 ]
- แปลงเป็นรูปแบบปกติของการปฏิเสธ
- ขจัดความคลุมเครือและความเท่าเทียมกัน: แทนที่ซ้ำๆกับ; แทนที่กับในที่สุดแล้ว วิธีนี้จะช่วยขจัดปัญหาทั้งหมดได้และ.
- ย้าย NOT เข้าด้านในโดยใช้กฎของเดอ มอร์แกน ซ้ำๆ โดยเฉพาะอย่างยิ่ง ให้แทนที่กับ; แทนที่กับและแทนที่กับ; แทนที่กับ;กับหลังจากนั้นอาจปรากฏได้เฉพาะก่อนหน้าสัญลักษณ์แสดงภาคแสดงเท่านั้น
- ทำให้ตัวแปรเป็นมาตรฐาน
- สำหรับประโยคเช่นหากใช้ชื่อตัวแปรเดียวกันสองครั้ง ให้เปลี่ยนชื่อตัวแปรตัวใดตัวหนึ่ง เพื่อหลีกเลี่ยงความสับสนในภายหลังเมื่อตัดตัวระบุปริมาณออก ตัวอย่างเช่นเปลี่ยนชื่อเป็น.
- สโกเลไมซ์คำแถลง
- ย้ายตัวบ่งปริมาณออกไปด้านนอก: แทนที่ซ้ำๆกับ; แทนที่กับ; แทนที่กับ; แทนที่กับการแทนที่เหล่านี้ยังคงรักษาความเท่าเทียมกันไว้ เนื่องจากขั้นตอนการกำหนดมาตรฐานตัวแปรก่อนหน้านี้ได้ทำให้มั่นใจได้ว่าไม่เกิดขึ้นในหลังจากทำการแทนที่เหล่านี้แล้ว ตัวบ่งปริมาณอาจปรากฏได้เฉพาะในส่วนนำหน้าของสูตรเท่านั้น แต่จะไม่ปรากฏอยู่ภายในสูตร,, หรือ.
- เปลี่ยนซ้ำๆกับ, ที่ไหนเป็นของใหม่สัญลักษณ์ฟังก์ชัน -ary หรือที่เรียกว่า " ฟังก์ชัน Skolem " นี่เป็นขั้นตอนเดียวที่รักษาไว้ซึ่งความสามารถในการทำให้เป็นจริงเท่านั้น ไม่ใช่ความเท่าเทียมกัน มันกำจัดตัวบ่งปริมาณเชิงมีอยู่ทั้งหมด
- ลบตัวระบุปริมาณสากลทั้งหมดออก
- กระจายการดำเนินการ OR เข้าไปด้านในเหนือการดำเนินการ AND: แทนที่ซ้ำๆกับ.
ตัวอย่าง
ตัวอย่างเช่น สูตรที่กล่าวว่า"ใครก็ตามที่รักสัตว์ทุกชนิด ย่อมได้รับความรักตอบแทนจากผู้อื่น"สามารถแปลงเป็นรูปแบบ CNF (และต่อมาเป็น รูปแบบ ประโยคย่อยในบรรทัดสุดท้าย) ได้ดังนี้ (โดยเน้นกฎการแทนที่redexไว้)):
| โดย 1.1 | ||||||||||||||||||||||||||||||||||||
| โดย 1.1 | ||||||||||||||||||||||||||||||||||||
| โดย 1.2 | ||||||||||||||||||||||||||||||||||||
| โดย 1.2 | ||||||||||||||||||||||||||||||||||||
| โดย 1.2 | ||||||||||||||||||||||||||||||||||||
| โดย 2 | ||||||||||||||||||||||||||||||||||||
| โดย 3.1 | ||||||||||||||||||||||||||||||||||||
| โดย 3.1 | ||||||||||||||||||||||||||||||||||||
| โดย 3.2 | ||||||||||||||||||||||||||||||||||||
| โดย 4 | ||||||||||||||||||||||||||||||||||||
| โดย 5 | ||||||||||||||||||||||||||||||||||||
| ( การแสดง ข้อความ ) |
โดยไม่เป็นทางการ หน้าที่ของสโกเลมอาจมองได้ว่าเป็นการมอบตัวให้กับบุคคลที่...เป็นที่รัก ในขณะที่ให้ผลผลิตเป็นสัตว์ (ถ้ามี) ที่ไม่รัก บรรทัดที่สามจากท้ายสุดด้านล่างอ่านว่า"ไม่รักสัตว์มิเช่นนั้นเป็นที่รักของ" .
บรรทัดรองสุดท้ายจากด้านบนคือ CNF
ดูเพิ่มเติม
- รูปแบบปกติเชิงพีชคณิต
- ความเป็นคู่ของการเชื่อมต่อ/การแยก
- รูปแบบปกติแบบแยกส่วน
- อนุประโยคฮอร์น (Horn clause ) – อนุประโยคฮอร์นเป็นอนุประโยค เชื่อมประโยคแบบเลือกอย่างใดอย่างหนึ่ง ( การเชื่อมประโยคแบบเลือกอย่างใด อย่างหนึ่ง ของตัวแปร ) ที่มีตัวแปรเชิงบวกอย่างมากที่สุดเพียงหนึ่งตัว กล่าวคือตัวแปรที่ไม่ถูกปฏิเสธ
- อัลกอริทึมควิน-แมคคลัสกีย์
หมายเหตุ
- 1 2 Howson 2005 , หน้า 46.
- 1 2 3ดูรูปแบบปกติแบบแยกส่วน § การแปลงเป็น DNF
- ↑จำนวนการเชื่อมคำสูงสุดสำหรับ
- ↑จำนวนตัวอักษรสูงสุดสำหรับ
- 1 2= (( NOT (p AND q)) IFF (( NOT r) NAND (p XOR q)))
- ↑ Tseitin 1968 .
- ↑แจ็กสันและ เชอริ แดน 2004
- ↑
- 1 2ถือว่าการทำซ้ำและการเปลี่ยนแปลง (เช่น) โดยอาศัยสมบัติการสลับที่และการจัดกลุ่มของและไม่เกิดขึ้น
- ↑เนื่องจากวิธีหนึ่งในการตรวจสอบความน่าพอใจของ CNF คือการแปลงเป็น DNFซึ่งสามารถตรวจสอบความน่าพอใจได้ในเวลาเชิงเส้น
- ↑จำนวนการเชื่อมแบบ "หรือ" สูงสุดจำนวนตัวอักษรสูงสุด
- ↑ Russel & Norvig 2010 , หน้า 345–347, 9.5.1 รูปแบบปกติเชิงเชื่อมโยงสำหรับตรรกะลำดับที่หนึ่ง
ลิงก์ภายนอก
- "รูปแบบปกติเชิงเชื่อมโยง" , สารานุกรมคณิตศาสตร์ , EMS Press , 2001 [1994]
- "เครื่องมือ Java สำหรับ แปลงตารางความจริงเป็น CNF และ DNF"มหาวิทยาลัยมาร์บูร์กสืบค้นเมื่อ31 ธันวาคม 2023