ความสอดคล้องในระดับท้องถิ่น
ในการแก้ปัญหาการแก้ข้อจำกัดเงื่อนไขความสอดคล้องเฉพาะที่ (local consistency conditions) คือคุณสมบัติของปัญหาการแก้ข้อจำกัดที่เกี่ยวข้องกับความสอดคล้องของกลุ่มย่อยของตัวแปรหรือข้อจำกัด เงื่อนไขเหล่านี้สามารถใช้เพื่อลดพื้นที่การค้นหาและทำให้การแก้ปัญหาง่ายขึ้น มีการใช้เงื่อนไขความสอดคล้องเฉพาะที่หลายประเภท เช่นความสอดคล้องของโหนดความสอดคล้องของส่วนโค้งและ ความสอดคล้อง ของเส้นทาง
เงื่อนไขความสอดคล้องในระดับท้องถิ่นทุกเงื่อนไขสามารถบังคับใช้ได้ด้วยการแปลงที่เปลี่ยนปัญหาโดยไม่เปลี่ยนวิธีการแก้ปัญหา การแปลงดังกล่าวเรียกว่าการแพร่กระจายข้อจำกัด (Constraint Propagation) การแพร่กระจายข้อจำกัดทำงานโดยการลดขอบเขตของตัวแปร เสริมความแข็งแกร่งของข้อจำกัด หรือสร้างข้อจำกัดใหม่ ซึ่งนำไปสู่การลดพื้นที่การค้นหา ทำให้บางอัลกอริทึมแก้ปัญหาได้ง่ายขึ้น การแพร่กระจายข้อจำกัดยังสามารถใช้เป็นตัวตรวจสอบความไม่สามารถหาคำตอบได้ (Unsatisfiability Checker) ซึ่งโดยทั่วไปจะไม่สมบูรณ์ แต่สมบูรณ์ในบางกรณีเฉพาะ
เงื่อนไขความสอดคล้องในระดับท้องถิ่นสามารถจัดกลุ่มได้เป็นหลายประเภท เงื่อนไขความสอดคล้องในระดับท้องถิ่นดั้งเดิมกำหนดให้การกำหนดค่าบางส่วนที่สอดคล้องกันทุกค่า (ในลักษณะเฉพาะ) สามารถขยายไปยังตัวแปรอื่นได้ อย่าง สอดคล้อง ความสอดคล้องในทิศทางกำหนดให้เงื่อนไขนี้ต้องเป็นไปตามที่กำหนดก็ต่อเมื่อตัวแปรอื่นมีค่ามากกว่าตัวแปรในการกำหนดค่า ตามลำดับที่กำหนดความสอดคล้องเชิงสัมพันธ์รวมถึงการขยายไปยังตัวแปรมากกว่าหนึ่งตัว แต่การขยายนี้จำเป็นต้องเป็นไปตามข้อจำกัดหรือชุดของข้อจำกัดที่กำหนดเท่านั้น
ข้อสมมติฐาน
ในบทความนี้ปัญหาการแก้ข้อจำกัดถูกนิยามว่าเป็นชุดของตัวแปร ชุดของโดเมน และชุดของข้อจำกัด ตัวแปรและโดเมนมีความสัมพันธ์กัน กล่าวคือ โดเมนของตัวแปรประกอบด้วยค่าทั้งหมดที่ตัวแปรนั้นสามารถรับได้ ส่วนข้อจำกัดประกอบด้วยลำดับของตัวแปร ซึ่งเรียกว่าขอบเขต และชุดของการประเมินค่าของตัวแปรเหล่านั้น ซึ่งเป็นการประเมินค่าที่สอดคล้องกับข้อจำกัด
ปัญหาการแก้ข้อจำกัดที่กล่าวถึงในบทความนี้ถือว่าอยู่ในรูปแบบพิเศษ ปัญหาจะอยู่ในรูปแบบมาตรฐานหรือรูปแบบปกติหากลำดับของตัวแปรทุกตัวอยู่ในขอบเขตของข้อจำกัดอย่างมากที่สุดหนึ่งข้อ หรือมีเพียงข้อจำกัดเดียวเท่านั้น การสมมติเรื่องความปกติที่ใช้เฉพาะกับข้อจำกัดแบบไบนารี เท่านั้น นำไปสู่รูปแบบมาตรฐานเงื่อนไขเหล่านี้สามารถบังคับใช้ได้เสมอโดยการรวมข้อจำกัดทั้งหมดเหนือลำดับของตัวแปรเข้าเป็นข้อจำกัดเดียว และ/หรือ เพิ่มข้อจำกัดที่สอดคล้องกับค่าทั้งหมดของลำดับของตัวแปร
ในภาพประกอบที่ใช้ในบทความนี้ การที่ไม่มีความเชื่อมโยงระหว่างตัวแปรสองตัว แสดงว่าไม่มีข้อจำกัดใดๆ หรือมีข้อจำกัดที่ค่าทั้งหมดเป็นไปตามนั้น ระหว่างตัวแปรทั้งสองนี้
ความสอดคล้องในระดับท้องถิ่น
เงื่อนไขความสอดคล้องในระดับท้องถิ่น "มาตรฐาน" ทั้งหมดกำหนดให้การประเมินค่าบางส่วนที่สอดคล้องกันทั้งหมดสามารถขยายไปยังตัวแปรอื่นได้ในลักษณะที่การกำหนดค่าที่ได้นั้นสอดคล้องกันการประเมินค่าบางส่วนจะสอดคล้องกันหากเป็นไปตามข้อจำกัดทั้งหมดที่มีขอบเขตเป็นส่วนย่อยของตัวแปรที่กำหนดค่าไว้
ความสอดคล้องของโหนด
ความสอดคล้องของโหนดกำหนดให้ข้อจำกัดเอกภาคทุกข้อของตัวแปรต้องเป็นไปตามค่าทั้งหมดในโดเมนของตัวแปรนั้น และในทางกลับกัน เงื่อนไขนี้สามารถบังคับใช้ได้อย่างง่ายดายโดยการลดโดเมนของแต่ละตัวแปรให้เหลือเฉพาะค่าที่สอดคล้องกับข้อจำกัดเอกภาคทั้งหมดของตัวแปรนั้น ผลที่ได้คือ สามารถละเลยข้อจำกัดเอกภาคและถือว่าข้อจำกัดเหล่านั้นรวมอยู่ในโดเมนแล้ว
ตัวอย่างเช่น เมื่อกำหนดตัวแปรหนึ่งตัวด้วยโดเมนของและข้อจำกัดความสอดคล้องของโหนดจะจำกัดขอบเขตไว้ที่และสามารถละทิ้งข้อจำกัดนั้นได้ ขั้นตอนการประมวลผลล่วงหน้านี้ช่วยลดความซับซ้อนในขั้นตอนต่อๆ ไป
ความสม่ำเสมอของส่วนโค้ง

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

หากตัวแปรหนึ่งไม่สอดคล้องกับอีกตัวแปรหนึ่งในแง่ของส่วนโค้ง สามารถทำให้สอดคล้องกันได้โดยการลบค่าบางส่วนออกจากโดเมนของตัวแปรนั้น นี่คือรูปแบบของการแพร่กระจายข้อจำกัดที่บังคับให้เกิดความสอดคล้องกันของส่วนโค้ง: มันจะลบค่าทุกค่าที่ไม่สอดคล้องกับค่าของตัวแปรอื่นออกจากโดเมนของตัวแปร การแปลงนี้จะรักษาคำตอบของปัญหาไว้ เนื่องจากค่าที่ถูกลบออกไปนั้นไม่มีอยู่ในคำตอบอยู่แล้ว
การแพร่กระจายข้อจำกัดสามารถทำให้ปัญหาทั้งหมดมีความสอดคล้องกันได้โดยการทำซ้ำการลบนี้สำหรับตัวแปรทุกคู่ กระบวนการนี้อาจต้องพิจารณาตัวแปรคู่ใดคู่หนึ่งมากกว่าหนึ่งครั้ง อันที่จริง การลบค่าออกจากโดเมนของตัวแปรอาจทำให้ตัวแปรอื่นๆ ไม่สอดคล้องกับตัวแปรนั้นอีกต่อไป ตัวอย่างเช่น ถ้าส่วนโค้งนั้นสอดคล้องกับแต่ขั้นตอนวิธีนี้จะลดขอบเขตของความสม่ำเสมอของส่วนโค้งกับกฎหมายดังกล่าวใช้การไม่ได้อีกต่อไปแล้ว และต้องบังคับใช้ใหม่อีกครั้ง
อัลกอริทึมแบบง่ายๆ จะวนซ้ำไปตามคู่ตัวแปร โดยบังคับใช้ความสอดคล้องของส่วนโค้ง และทำซ้ำวงจรไปเรื่อยๆ จนกว่าจะไม่มีโดเมนใดเปลี่ยนแปลงตลอดทั้งวงจรอัลกอริทึม AC-3ปรับปรุงจากอัลกอริทึมนี้โดยการละเว้นข้อจำกัดที่ไม่ได้ถูกแก้ไขนับตั้งแต่ได้รับการวิเคราะห์ครั้งล่าสุด โดยเฉพาะอย่างยิ่ง มันทำงานกับชุดข้อจำกัดที่ประกอบด้วยข้อจำกัดทั้งหมดตั้งแต่เริ่มต้น ในแต่ละขั้นตอน มันจะเลือกข้อจำกัดหนึ่งข้อและบังคับใช้ความสอดคล้องของส่วนโค้ง หากการดำเนินการนี้อาจทำให้เกิดการละเมิดความสอดคล้องของส่วนโค้งกับข้อจำกัดอื่น มันจะนำข้อจำกัดนั้นกลับไปอยู่ในชุดข้อจำกัดที่จะวิเคราะห์ ด้วยวิธีนี้ เมื่อบังคับใช้ความสอดคล้องของส่วนโค้งกับข้อจำกัดแล้ว ข้อจำกัดนั้นจะไม่ถูกนำมาพิจารณาอีกเว้นแต่โดเมนของตัวแปรใดตัวหนึ่งจะเปลี่ยนแปลงไป
ความสอดคล้องของเส้นทาง (ความสอดคล้องแบบ k)

ความสอดคล้องของเส้นทาง (Path consistency) เป็นคุณสมบัติที่คล้ายกับความสอดคล้องของส่วนโค้ง (Arc consistency) แต่พิจารณาตัวแปรเป็นคู่ๆ แทนที่จะเป็นตัวแปรเดียว ตัวแปรคู่หนึ่งจะมีความสอดคล้องของเส้นทางกับตัวแปรที่สามได้ก็ต่อเมื่อการประเมินค่าที่สอดคล้องกันของคู่ตัวแปรนั้นสามารถขยายไปยังตัวแปรอื่นได้ในลักษณะที่ตรงตาม ข้อจำกัด แบบไบนารี ทั้งหมด กล่าวอย่างเป็นทางการคือและเส้นทางนั้นสอดคล้องกับถ้าสำหรับทุกคู่ค่าที่ตรงตามข้อจำกัดแบบไบนารีระหว่างและมีค่าอยู่ค่าหนึ่งในขอบเขตของโดยที่และปฏิบัติตามข้อจำกัดระหว่างและและระหว่างและตามลำดับ
รูปแบบการแพร่กระจายข้อจำกัดที่บังคับใช้ความสอดคล้องของเส้นทางนั้นทำงานโดยการลบการกำหนดค่าที่ตรงตามเงื่อนไขบางอย่างออกจากข้อจำกัด ที่จริงแล้ว ความสอดคล้องของเส้นทางสามารถบังคับใช้ได้โดยการลบการประเมินทั้งหมดที่ไม่สามารถขยายไปยังตัวแปรอื่นได้ ออกจากข้อจำกัดแบบไบนารี ส่วนความสอดคล้องของส่วนโค้งนั้น การลบนี้อาจต้องพิจารณาข้อจำกัดแบบไบนารีมากกว่าหนึ่งครั้ง สำหรับความสอดคล้องของส่วนโค้งนั้น ปัญหาที่ได้จะมีคำตอบเหมือนกับปัญหาเดิม เนื่องจากค่าที่ถูกลบออกไปนั้นไม่มีอยู่ในคำตอบใดๆ


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

การแพร่กระจายข้อจำกัด (การบังคับใช้ความสอดคล้องในระดับท้องถิ่น) อาจทำให้เกิดโดเมนว่างเปล่าหรือ ข้อจำกัด ที่ไม่สามารถหาคำตอบได้ ในกรณีนี้ ปัญหาจะไม่มีทางออก แต่ในทางกลับกันนั้นไม่เป็นจริงเสมอไป กล่าวคือ ตัวอย่างที่ไม่สอดคล้องกันอาจมีความสอดคล้องกันในส่วนของส่วนโค้งหรือเส้นทาง ในขณะที่ไม่มีโดเมนว่างเปล่าหรือข้อจำกัดที่ไม่สามารถหาคำตอบได้
อันที่จริง ความสอดคล้องในระดับท้องถิ่นนั้นเป็นเพียงความสัมพันธ์กับความสอดคล้องของกลุ่มตัวแปรเท่านั้น ตัวอย่างเช่น ความสอดคล้องของส่วนโค้งรับประกันว่าการประเมินค่าตัวแปรที่สอดคล้องกันทุกครั้งสามารถขยายไปสู่ตัวแปรอื่นได้อย่างสอดคล้อง อย่างไรก็ตาม เมื่อค่าเดียวของตัวแปรถูกขยายไปสู่ตัวแปรอื่นอีกสองตัว ก็ไม่มีการรับประกันว่าค่าทั้งสองนั้นจะสอดคล้องกัน ตัวอย่างเช่นอาจสอดคล้องกับและด้วยแต่การประเมินทั้งสองนี้อาจไม่สอดคล้องกัน
อย่างไรก็ตาม การแพร่กระจายข้อจำกัดสามารถใช้เพื่อพิสูจน์ความสามารถในการทำให้เป็นจริงได้ในบางกรณี ชุดของข้อจำกัดแบบไบนารีที่สอดคล้องกันและไม่มีโดเมนว่าง จะไม่สอดคล้องกันได้ก็ต่อเมื่อเครือข่ายของข้อจำกัดมีวงจรเท่านั้น อันที่จริง หากข้อจำกัดเป็นแบบไบนารีและสร้างกราฟที่ไม่มีวงจร ค่าต่างๆ สามารถแพร่กระจายข้ามข้อจำกัดได้เสมอ: สำหรับทุกค่าของตัวแปร ตัวแปรทั้งหมดในข้อจำกัดที่มีตัวแปรนั้นจะมีค่าที่สอดคล้องกับข้อจำกัดนั้น ผลลัพธ์ที่ได้คือ สามารถหาคำตอบได้โดยการเลือกตัวแปรที่ยังไม่ได้กำหนดค่าซ้ำๆ และแพร่กระจายข้ามข้อจำกัดแบบเรียกซ้ำ อัลกอริทึมนี้จะไม่พยายามกำหนดค่าให้กับตัวแปรที่กำหนดค่าไว้แล้ว เนื่องจากนั่นจะหมายถึงการมีอยู่ของวงจรในเครือข่ายของข้อจำกัด
เงื่อนไขที่คล้ายกันนี้ใช้ได้กับความสอดคล้องของเส้นทางด้วย กรณีพิเศษที่สามารถสร้างความพึงพอใจได้โดยการบังคับใช้ความสอดคล้องของส่วนโค้งและความสอดคล้องของเส้นทางมีดังต่อไปนี้
- การบังคับใช้ความสอดคล้องของส่วนโค้งทำให้ปัญหาที่ประกอบด้วยข้อจำกัดแบบไบนารีที่ไม่มีวงจร ( ต้นไม้ของข้อจำกัดแบบไบนารี) สามารถแก้ไขได้
- การบังคับใช้ความสอดคล้องของเส้นทางจะสร้างความพึงพอใจให้กับข้อจำกัดแบบไบนารี (อาจมีวงจร) ที่มีโดเมนแบบไบนารี
- บังคับใช้อย่างเข้มงวดความสอดคล้องสร้างความพึงพอใจให้กับปัญหาที่มีอยู่ตัวแปร
กรณีพิเศษ
คำจำกัดความหรือผลลัพธ์บางอย่างเกี่ยวกับความสอดคล้องเชิงสัมพัทธ์นั้นใช้ได้เฉพาะในกรณีพิเศษเท่านั้น
เมื่อโดเมนประกอบด้วยจำนวนเต็มความสอดคล้องแบบขอบเขตสามารถกำหนดได้ ความสอดคล้องในรูปแบบนี้ขึ้นอยู่กับความสอดคล้องของค่าสุดขั้วของโดเมน กล่าวคือ ค่าต่ำสุดและค่าสูงสุดที่ตัวแปรสามารถรับได้
เมื่อข้อจำกัดเป็นแบบพีชคณิตหรือแบบบูลีนความสอดคล้องของส่วนโค้งจะเทียบเท่ากับการเพิ่มข้อจำกัดใหม่หรือการแก้ไขข้อจำกัดเดิมในเชิงไวยากรณ์ ซึ่งสามารถทำได้โดยการประกอบข้อจำกัดเข้าด้วยกันอย่างเหมาะสม
ข้อจำกัดเฉพาะทาง
ข้อจำกัดบางประเภทถูกนำมาใช้กันอย่างแพร่หลาย ตัวอย่างเช่น ข้อจำกัดที่ว่าตัวแปรบางตัวต้องแตกต่างกันทั้งหมด มักถูกนำมาใช้ มีอัลกอริธึมเฉพาะทางที่มีประสิทธิภาพสำหรับการบังคับใช้ความสอดคล้องของส่วนโค้งภายใต้ข้อจำกัดดังกล่าวอยู่แล้ว
ข้อจำกัดที่บังคับให้ตัวแปรจำนวนหนึ่งแตกต่างกัน มักจะเขียนในรูปแบบนี้หรือalldifferent([X1,...,Xn]). ข้อจำกัดนี้เทียบเท่ากับการที่ตัวแปรต่างกันทุกคู่ไม่เท่ากัน นั่นคือสำหรับทุกๆเมื่อขอบเขตของตัวแปรลดลงเหลือเพียงค่าเดียว ค่านี้สามารถถูกลบออกจากขอบเขตอื่นๆ ทั้งหมดได้โดยการแพร่กระจายข้อจำกัดเมื่อบังคับใช้ความสอดคล้องของส่วนโค้ง การใช้ข้อจำกัดเฉพาะนี้ช่วยให้สามารถใช้ประโยชน์จากคุณสมบัติที่ไม่มีในความไม่เท่าเทียม กันแบบไบนารีแต่ละแบบ ได้
คุณสมบัติข้อแรกคือ จำนวนองค์ประกอบทั้งหมดในโดเมนของตัวแปรทั้งหมดต้องมีอย่างน้อยเท่ากับจำนวนตัวแปร กล่าวคือ หลังจากบังคับใช้ความสอดคล้องของส่วนโค้งแล้ว จำนวนตัวแปรที่ไม่ได้กำหนดต้องไม่เกินจำนวนค่าในผลรวมของโดเมน มิฉะนั้น ข้อจำกัดจะไม่สามารถเป็นไปตามเงื่อนไขได้ เงื่อนไขนี้สามารถตรวจสอบได้ง่ายบนข้อจำกัดในรูปalldifferentแบบ แต่ไม่สอดคล้องกับความสอดคล้องของส่วนโค้งของเครือข่ายความไม่เท่าเทียมกัน คุณสมบัติข้อที่สองของalldifferentข้อจำกัดเดียวคือ สามารถตรวจสอบความสอดคล้องของส่วนโค้งไฮเปอร์ได้อย่างมีประสิทธิภาพโดยใช้ อัลกอริทึม การจับคู่แบบทวิภาค โดยเฉพาะอย่างยิ่ง กราฟจะถูกสร้างขึ้นโดยมีตัวแปรและค่าเป็นสองชุดของโหนด และ อัลกอริทึมการจับคู่ กราฟแบบ ทวิภาคเฉพาะ จะถูกเรียกใช้บนกราฟนั้นเพื่อตรวจสอบการมีอยู่ของการจับคู่ดังกล่าว[ 1 ]
ข้อจำกัดอีกประเภทหนึ่งที่ใช้กันทั่วไปคือข้อจำกัดแบบสะสม ซึ่งcumulativeถูกนำมาใช้ในปัญหาเกี่ยวกับการจัดตารางเวลาและการจัดวาง ตัวอย่างเช่นcumulative([S1,...,Sm], [D1,...,Dm], [R1,...,Rm], L)สามารถใช้เพื่อกำหนดเงื่อนไขที่มีmกิจกรรมต่างๆ โดยแต่ละกิจกรรมมีเวลาเริ่มต้นsiระยะเวลา และใช้ ทรัพยากรdiจำนวนหนึ่ง ข้อจำกัดนี้ระบุว่าปริมาณทรัพยากรทั้งหมดที่มีอยู่คือ เทคนิคการแพร่กระจายข้อจำกัดแบบสะสมเฉพาะทางก็มีอยู่ โดยใช้เทคนิคที่แตกต่างกันไปขึ้นอยู่กับว่าโดเมนของตัวแปรใดถูกลดเหลือค่าเดียวแล้วriL
ข้อจำกัดเฉพาะประการที่สามที่ใช้ในการเขียนโปรแกรมเชิงตรรกะแบบมีข้อ จำกัด คือelementข้อจำกัดแบบลิสต์ ในการเขียนโปรแกรมเชิงตรรกะแบบมีข้อจำกัด อนุญาตให้ใช้ลิสต์เป็นค่าของตัวแปรได้ ข้อจำกัดelement(I, L, X)จะถือว่าเป็นจริงก็ต่อเมื่อLเป็นลิสต์ และXเป็นIองค์ประกอบที่ ของลิสต์นี้ มีกฎการแพร่กระจายข้อจำกัดเฉพาะสำหรับข้อจำกัดเหล่านี้อยู่ ตัวอย่างเช่น ถ้าLและIถูกลดทอนให้เหลือโดเมนค่าเดียว ค่าที่ไม่ซ้ำกันสำหรับXสามารถกำหนดได้ โดยทั่วไปแล้ว ค่าที่เป็นไปไม่ได้ของXสามารถอนุมานได้จากโดเมนของและในทางกลับกัน
ความสอดคล้องเชิงทิศทาง
ความสอดคล้องเชิงทิศทางเป็นรูปแบบหนึ่งของส่วนโค้ง เส้นทาง และ- ความสอดคล้องที่ออกแบบมาเพื่อใช้กับอัลกอริทึมที่กำหนดค่าให้กับตัวแปรตามลำดับที่กำหนดไว้ มีความคล้ายคลึงกับความสอดคล้องแบบไม่กำหนดทิศทาง แต่ต้องการเพียงแค่ว่า การกำหนดค่าที่สอดคล้องกันให้กับตัวแปรบางตัว สามารถขยายไปยังตัวแปรอื่นที่มากกว่าตามลำดับได้อย่างสอดคล้องกัน
ความสอดคล้องของส่วนโค้งทิศทางและเส้นทาง

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

ทิศทาง-ความสม่ำเสมอคือการรับประกันว่าการมอบหมายงานที่สอดคล้องกันทุกครั้งจะเป็นไปอย่างราบรื่นตัวแปรสามารถขยายไปยังตัวแปรอื่นที่มีลำดับสูงกว่าได้อย่างสม่ำเสมอ มีทิศทางที่ชัดเจน-ความสอดคล้องถูกกำหนดในลักษณะที่คล้ายคลึงกัน แต่กลุ่มทั้งหมดไม่เกินมีการพิจารณาตัวแปรต่างๆ หากปัญหามีทิศทางที่ชัดเจนมาก-สม่ำเสมอและมีความกว้างน้อยกว่าและหากไม่มีโดเมนว่างเปล่าหรือข้อจำกัดที่ไม่สามารถหาคำตอบได้ ก็ย่อมมีคำตอบ
ทุกปัญหาสามารถกำหนดทิศทางได้อย่างชัดเจน- สอดคล้องกัน แต่การดำเนินการนี้อาจเพิ่มความกว้างของกราฟที่เกี่ยวข้องได้ ขั้นตอนการแพร่กระจายข้อจำกัดที่บังคับใช้ความสอดคล้องในทิศทางนั้นคล้ายกับที่ใช้สำหรับความสอดคล้องของส่วนโค้งในทิศทางและความสอดคล้องของเส้นทาง ตัวแปรจะถูกพิจารณาตามลำดับ จากตัวสุดท้ายไปจนถึงตัวแรก สำหรับตัวแปรอัลกอริทึมจะพิจารณากลุ่มทุกกลุ่มของตัวแปรที่มีดัชนีต่ำกว่าและอยู่ในข้อจำกัดกับความสอดคล้องของตัวแปรเหล่านี้กับมีการตรวจสอบและอาจบังคับใช้โดยการลบการกำหนดค่าที่ตรงตามเงื่อนไขออกจากข้อจำกัดในบรรดาสิ่งเหล่านี้ทั้งหมดตัวแปร (ถ้ามี หรือสร้างตัวแปรใหม่หากไม่มี)

กระบวนการนี้ก่อให้เกิดทิศทางที่ชัดเจนมาก-อินสแตนซ์ที่สอดคล้องกัน อย่างไรก็ตาม มันอาจเพิ่มข้อจำกัดใหม่ให้กับอินสแตนซ์ด้วย ส่งผลให้แม้ว่าความกว้างของปัญหาเดิมจะเป็นความกว้างของอินสแตนซ์ที่ได้อาจมีขนาดใหญ่ขึ้น หากเป็นเช่นนั้นความสอดคล้องที่แข็งแกร่ง ในทิศทางเดียว ไม่ได้หมายความถึงความสามารถในการทำให้เป็นจริงได้ แม้ว่าจะไม่มีโดเมนใดว่างเปล่าและไม่มีข้อจำกัดใดที่ไม่สามารถทำให้เป็นจริงได้ ก็ตาม
อย่างไรก็ตาม การแพร่กระจายข้อจำกัดจะเพิ่มข้อจำกัดให้กับตัวแปรที่มีค่าน้อยกว่าตัวแปรที่กำลังพิจารณาอยู่เท่านั้น ดังนั้น เมื่ออัลกอริทึมได้จัดการกับตัวแปรนั้นแล้ว ข้อจำกัดใดๆ เกี่ยวกับตัวแปรจะไม่ถูกแก้ไขหรือเพิ่มเติม แทนที่จะพิจารณาค่าคงที่เราสามารถปรับเปลี่ยนให้เป็นจำนวนผู้ปกครองของตัวแปรแต่ละตัวที่พิจารณา (ผู้ปกครองของตัวแปรคือตัวแปรที่มีดัชนีต่ำกว่าตัวแปรนั้นและมีความสัมพันธ์แบบจำกัดกับตัวแปรนั้น) ซึ่งสอดคล้องกับการพิจารณาผู้ปกครองทั้งหมดของตัวแปรที่กำหนดในแต่ละขั้นตอน กล่าวอีกนัยหนึ่งคือ สำหรับแต่ละตัวแปรจากตัวสุดท้ายไปจนถึงตัวแรก พ่อแม่ทั้งหมดของมันจะถูกรวมอยู่ในข้อจำกัดใหม่ที่จำกัดค่าของพวกมันให้อยู่ในขอบเขตที่สอดคล้องกับเนื่องจากอัลกอริธึมนี้สามารถมองได้ว่าเป็นการดัดแปลงจากอัลกอริธึมก่อนหน้าโดยมีค่าหนึ่ง หากค่าดังกล่าวถูกเปลี่ยนแปลงไปตามจำนวนของโหนดแม่ของแต่ละโหนด จะเรียกว่าความสอดคล้องแบบปรับตัวได้ (adaptive consistency )
อัลกอริทึมนี้บังคับใช้ทิศทางที่ชัดเจนอย่างมาก-ความสอดคล้องกับเท่ากับความกว้างที่เหนี่ยวนำของปัญหา อินสแตนซ์ที่ได้จะสามารถหาคำตอบได้ก็ต่อเมื่อไม่มีโดเมนหรือข้อจำกัดใดว่างเปล่า หากเป็นเช่นนั้น สามารถหาคำตอบได้ง่ายๆ โดยการกำหนดค่าให้กับตัวแปรที่ไม่ได้กำหนดค่าไว้ซ้ำๆ เป็นค่าใดๆ ก็ได้ และกระจายการประเมินค่าบางส่วนนี้ไปยังตัวแปรอื่นๆ อัลกอริทึมนี้ไม่ได้ใช้เวลาแบบพหุนามเสมอไป เนื่องจากจำนวนข้อจำกัดที่นำมาใช้โดยการบังคับใช้ความสอดคล้องเชิงทิศทางที่เข้มงวดอาจทำให้ขนาดเพิ่มขึ้นแบบเลขชี้กำลัง อย่างไรก็ตาม ปัญหาสามารถแก้ไขได้ในเวลาแบบพหุนามหากการบังคับใช้ความสอดคล้องเชิงทิศทางที่เข้มงวดไม่ได้ทำให้ ขนาดของอินสแตนซ์ขยายใหญ่ขึ้น เกินพหุนามดังนั้น หากอินสแตนซ์มีความกว้างที่เหนี่ยวนำซึ่งถูกจำกัดด้วยค่าคงที่ ก็สามารถแก้ไขได้ในเวลาแบบพหุนาม
การกำจัดถัง
การกำจัดบัคเก็ต (Bucket elimination) เป็นอัลกอริธึมที่ทำให้เป็นจริงได้ (satisfiability algorithm) สามารถนิยามได้ว่าเป็นการปรับปรุงใหม่ของความสอดคล้องแบบปรับตัว (adaptive consistency) คำนิยามของมันใช้บัคเก็ต ซึ่งเป็นภาชนะสำหรับข้อจำกัด โดยแต่ละตัวแปรจะมีบัคเก็ตที่เกี่ยวข้อง ข้อจำกัดจะอยู่ในกลุ่มของตัวแปรที่มีค่าสูงสุดเสมอ
อัลกอริทึมการกำจัดกลุ่มจะดำเนินการจากตัวแปรที่มีค่าสูงสุดไปยังตัวแปรที่มีค่าต่ำสุดตามลำดับ ในแต่ละขั้นตอน ข้อจำกัดในกลุ่มของตัวแปรนี้จะถูกปรับเปลี่ยนจะถูกนำมาพิจารณา ตามคำจำกัดความ ข้อจำกัดเหล่านี้จะเกี่ยวข้องเฉพาะตัวแปรที่มีค่าน้อยกว่าเท่านั้นอัลกอริทึมจะปรับเปลี่ยนข้อจำกัดระหว่างตัวแปรล่างเหล่านี้ (ถ้ามี มิฉะนั้นจะสร้างข้อจำกัดใหม่) โดยเฉพาะอย่างยิ่ง จะบังคับให้ค่าของตัวแปรเหล่านั้นสามารถขยายได้สอดคล้องกับข้อจำกัดในถังของข้อจำกัดใหม่นี้ (ถ้ามี) จะถูกจัดไว้ในหมวดหมู่ที่เหมาะสม เนื่องจากข้อจำกัดนี้เกี่ยวข้องเฉพาะตัวแปรที่มีค่าน้อยกว่าโดยจะถูกเพิ่มเข้าไปในถังของตัวแปรที่มีค่าต่ำกว่า.
อัลกอริทึมนี้เทียบเท่ากับการบังคับใช้ความสอดคล้องแบบปรับตัวได้ เนื่องจากทั้งสองวิธีบังคับใช้ความสอดคล้องของตัวแปรกับตัวแปรแม่ทั้งหมด และเนื่องจากไม่มีการเพิ่มข้อจำกัดใหม่หลังจากพิจารณาตัวแปรแล้ว ผลลัพธ์ที่ได้คือกรณีที่สามารถแก้ไขได้โดยไม่ต้องย้อนกลับ
เนื่องจากกราฟของอินสแตนซ์ที่สร้างขึ้นเป็นกราฟย่อยของกราฟที่เหนี่ยวนำ หากความกว้างที่เหนี่ยวนำถูกจำกัดด้วยค่าคงที่ อินสแตนซ์ที่สร้างขึ้นจะมีขนาดเป็นพหุนามของขนาดอินสแตนซ์ดั้งเดิม ดังนั้น หากความกว้างที่เหนี่ยวนำของอินสแตนซ์ถูกจำกัดด้วยค่าคงที่ การแก้ปัญหาจึงสามารถทำได้ในเวลาพหุนามโดยอัลกอริทึมทั้งสอง
ความสอดคล้องเชิงสัมพันธ์
ในขณะที่คำจำกัดความก่อนหน้านี้ของความสอดคล้องนั้นเกี่ยวข้องกับความสอดคล้องของการกำหนดค่าต่างๆ แต่ ความสอดคล้องเชิงสัมพันธ์นั้นเกี่ยวข้องกับการปฏิบัติตามข้อจำกัดหรือชุดของข้อจำกัดที่กำหนดไว้เท่านั้น กล่าวคือ ความสอดคล้องเชิงสัมพันธ์หมายความว่า การกำหนดค่าบางส่วนที่สอดคล้องกันทุกรายการสามารถขยายได้ในลักษณะที่ข้อจำกัดหรือชุดของข้อจำกัดที่กำหนดไว้นั้นได้รับการปฏิบัติตาม ในทางทฤษฎีแล้ว ข้อจำกัดเกี่ยวกับตัวแปรส่วนโค้งเชิงสัมพันธ์นั้นสอดคล้องกับตัวแปรตัวใดตัวหนึ่งหรือไม่หากการมอบหมายงานที่สอดคล้องกันทุกครั้งสามารถขยายไปถึงในลักษณะเช่นนั้นพึงพอใจ ความแตกต่างระหว่าง "ปกติ"ความสอดคล้องและความสอดคล้องเชิงสัมพันธ์นั้นแตกต่างกัน โดยแบบหลังต้องการเพียงให้การกำหนดค่าเพิ่มเติมเป็นไปตามข้อจำกัดที่กำหนด ในขณะที่แบบแรกต้องการให้เป็นไปตามข้อจำกัดที่เกี่ยวข้องทั้งหมด


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

กรณีที่สามคือข้อจำกัดแบบไบนารีที่สามารถแสดงได้ด้วยเมทริกซ์แบบนูนตามแถว ข้อจำกัดแบบไบนารีสามารถแสดงได้ด้วยเมทริกซ์สองมิติ, ที่ไหนมีค่าเป็น 0 หรือ 1 ขึ้นอยู่กับว่าค่าลำดับที่ - ของโดเมนของและค่าลำดับที่ - ของโดเมนของเป็นไปตามเงื่อนไขที่กำหนด แถวของเมทริกซ์นี้จะเป็นเมทริกซ์นูนก็ต่อเมื่อเลข 1 ในแถวนั้นเรียงติดกัน (กล่าวคือ ถ้าเลข 1 สองตัวในแถวนั้น เลข 1 ระหว่างสองตัวนั้นก็จะเป็น 1 ด้วย) เมทริกซ์จะเป็นเมทริกซ์นูนตามแถวก็ต่อเมื่อทุกแถวของเมทริกซ์นั้นเป็นเมทริกซ์นูน

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