Кіріспе
Шектілік қанағаттандыруда жергілікті тұрақтылық шарттары – айнымалылар немесе шектеулердің ішінара жиынтықтарының тұрақтылығымен байланысты шектеу қанағаттандыру мәселелерінің қасиеттері. Олар іздеу кеңістігін қысқарту және мәселені шешуді жеңілдету үшін қолданылады. Түйіндік тұрақтылық, доғалық тұрақтылық және жол тұрақтылығы сияқты жергілікті тұрақтылық шарттарының түрлі нұсқалары бар. Кез келген жергілікті тұрақтылық шартын мәселенің шешімдерін өзгертпей оны өзгертетін түрлендіру арқылы сақтауға болады; мұндай түрлендіру шектеу тарату деп аталады. Шектеу тарату айнымалылардың мәндік облыстарын қысқарту, шектеулерді күшейту немесе жаңа шектеулер жасау арқылы жұмыс істейді. Бұл іздеу кеңістігінің қысқаруына және кейбір алгоритмдермен мәселені шешудің оңайлануына әкеледі. Шектеу тарату қанағаттандырылмаушылықты тексеру құралы ретінде де қолданылуы мүмкін, ол әдетте толық емес, бірақ кейбір жағдайларда толық. Жергілікті тұрақтылық шарттарын әртүрлі сыныптарға бөлуге болады. Бастапқы жергілікті тұрақтылық шарттары кез келген сәйкес ішінара белгілеуді (белгілі бір түрдегі) басқа айнымалыға сәйкес кеңейтуге болатынын талап етеді. Бағытталған тұрақтылық тек басқа айнымалы берілген тәртіп бойынша белгілеудегі айнымалыдан үлкен болған кезде ғана бұл шарттың орындалуын талап етеді. Қатынастық тұрақтылық бірден көп айнымалыға кеңейтулерді қамтиды, бірақ бұл кеңейту тек берілген шектеуді немесе шектеулер жиынтығын қанағаттандыру үшін ғана қажет.
Қорытындылар
Бұл мақалада шектеулерді қанағаттандыру мәселесі айнымалылар жиынтығы, домендер жиынтығы және шектеулер жиынтығы ретінде анықталады. Айнымалылар мен домендер байланысты: айнымалының домені, айнымалының қабылдай алатын барлық мәндерін қамтиды. Шектеу, оның қолжеткісі деп аталатын айнымалылар тізбегінен және олардың бағалаулары жиынтығынан тұрады, бұл бағалаулар шектеуді қанағаттандырады. Осы мақалада қарастырылатын шектеулерді қанағаттандыру мәселелері ерекше формада деп есептеледі. Мәселе нормаланған формада, тиісінше реттелген формада болады, егер әрбір айнымалылар тізбегі ең көп дегенде бір шектеудің немесе дәл бір шектеудің қолжеткісі болса. Екілік шектеулерге ғана қатысты жүйелілік болжамы стандартталған формаға әкеледі. Бұл шарттарды әрқашан бір тізбектегі барлық шектеулерді біріктіру және/немесе тізбектегі барлық мәндерді қанағаттандыратын шектеуді қосу арқылы сақтауға болады. Осы мақалада қолданылған суреттерде екі айнымалы арасындағы байланыстың болмауы, осы екі айнымалы арасында ешқандай шектеу немесе барлық мәндерді қанағаттандыратын шектеу жоқ екенін көрсетеді.
Жергілікті жүйелілік
"Стандартты" жергілікті сәйкестік шарттарының бәрі, барлық сәйкес жарым-жартылай бағалаулардың басқа айнымалыға сондай етіп кеңейтілуін қажет етеді, нәтижесіндегі тағайындама сәйкес болады. Жарым-жартылай бағалау, егер ол тағайындалған айнымалылардың ішкі жиыны болып табылатын барлық шектеулерді қанағаттандырса, сәйкес деп есептеледі.
Тораптық сәйкестік
Тораптық сәйкестік талабы бойынша, айнымалыға қатысты әрбір бірлік шектеу, айнымалының доменіндегі барлық мәндерді қанағаттандыруы керек, және керісінше. Бұл шартты әр айнымалының доменін, сол айнымалыға қатысты барлық бірлік шектеулерді қанағаттандыратын мәндерге дейін қысқарту арқылы оңай орындауға болады. Осының нәтижесінде, бірлік шектеулерді ескермеуге және олар домендерге енгізілген деп қарауға болады. Мысалы, домені {1, 2, 3, 4, 5} және шектеуі x > 2 бар айнымалы берілген болса, тораптық сәйкестік доменді {3, 4, 5} дейін шектейді, ал шектеуді алып тастауға болады. Бұл алдын ала өңдеу қадамы келесі кезеңдерді жеңілдетеді.
Қисық консистенциясы
Егер оның қабылданған мәндерінің әрқайсысы екінші айнымалының қабылданған мәндерімен үйлесімді болса, шектеуді қанағаттандыру мәселесінің айнымалысы екіншісімен доғалық сәйкестікте болады. Формальды түрде, егер айнымалысының доменінің әрбір мәні үшін айнымалысының доменінде айнымалысы мен айнымалысы арасындағы екілік шектеуді қанағаттандыратын мәні болса, айнымалысы айнымалысымен доғалық сәйкестікте болады. Мәселе доғалық сәйкестікте болады, егер әрбір айнымалы басқа әрбір айнымалымен доғалық сәйкестікте болса. Мысалы, шектеуін қарастырайық, онда айнымалылар 1-ден 3-ке дейінгі доменде өзгереді. ештеңе 3-ке тең бола алмайтындықтан, мәніне доға жоқ, сондықтан оны алып тастау қауіпсіз. Сол сияқты, ештеңе 1-ге тең бола алмайтындықтан, доға жоқ, сондықтан оны алып тастауға болады. Доғалық сәйкестікті нақты екілік шектеуге қатысты да анықтауға болады: егер бір айнымалының әрбір мәні екінші айнымалының мәнімен шектеуді қанағаттандырса, онда екілік шектеу доғалық сәйкестікте болады. Бұл доғалық сәйкестіктің анықтамасы жоғарыдағы анықтамаға ұқсас, бірақ нақты шектеуге қатысты берілген. Бұл айырмашылық, әсіресе, нормаланбаған мәселелер үшін маңызды, онда жоғарыдағы анықтама екі айнымалы арасындағы барлық шектеулерді қарастырады, ал бұл анықтама тек нақты шектеуді қарастырады. Егер айнымалы екінші айнымалымен доғалық сәйкестікте болмаса, оны оның доменінен кейбір мәндерді алып тастау арқылы жасауға болады. Бұл доғалық сәйкестікті қамтамасыз ететін шектеу тарату түрі: ол айнымалының доменінен екінші айнымалының мәніне сәйкес келмейтін әрбір мәнді алып тастайды. Бұл түрлендіру мәселенің шешімдерін сақтайды, өйткені алынып тасталған мәндер ешқандай шешімде болмайды. Шектеу таратуы барлық айнымалы жұптары үшін осы алып тастауды қайталау арқылы бүкіл мәселені доғалық сәйкестікке жеткізе алады. Бұл процесте берілген айнымалы жұбын бірнеше рет қарастыру қажет болуы мүмкін. Шындығында, айнымалының доменінен мәндерді алып тастау басқа айнымалылардың онымен доғалық сәйкестікте болмауына себеп болуы мүмкін. Мысалы, егер айнымалысы айнымалысымен доғалық сәйкестікте болса, бірақ алгоритм айнымалысының доменін азайтады, онда айнымалысының айнымалысымен доғалық сәйкестігі енді сақталмайды және оны қайтадан қамтамасыз ету қажет. Жай ғана алгоритм айнымалы жұптары бойынша циклды жүргізеді, доғалық сәйкестікті қамтамасыз етеді және домендердің ешқайсысы цикл бойы өзгермегенше циклды қайталайды. AC-3 алгоритмі соңғы талдалғаннан бері өзгертілмеген шектеулерді елемеу арқылы бұл алгоритмнен жақсырақ. Атап айтқанда, ол бастапқыда барлық шектеулерді қамтитын шектеулер жиынтығында жұмыс істейді; әр қадамда ол шектеуді алып, доғалық сәйкестікті қамтамасыз етеді; егер бұл операция басқа шектеуде доғалық сәйкестіктің бұзылуына әкелсе, ол осы шектеуді талдау үшін шектеулер жиынтығына қайтарады. Осылайша, доғалық сәйкестік шектеуде күштелгеннен кейін, егер оның бір айнымалысының домені өзгермесе, бұл шектеу қайта қарастырылмайды.
Жолдың сәйкестігі (k-сәйкестігі)
Жол тұрақтылығы – доға тұрақтылығына ұқсас қасиет, бірақ бір ғана емес, екі айнымалы жұбын қарастырады. Егер жұптың кез келген тұрақты мәні басқа айнымалыға барлық екілік шектеулер орындалатындай етіп кеңейтілсе, онда айнымалылар жұбы үшінші айнымалымен жол тұрақтылығын сақтайды. Формальды түрде, егер және арасындағы екілік шектеуді қанағаттандыратын кез келген мән жұбы үшін, доменде және арасындағы және арасындағы шектеулерді қанағаттандыратын мән болса, онда олар жол тұрақтылығын сақтайды. Жол тұрақтылығын қамтамасыз ететін шектеу таратуы шектеуден қанағаттандыратын белгілі бір тапсырманы жою арқылы жұмыс істейді. Шындығында, жол тұрақтылығын басқа айнымалыға кеңейтілмейтін екілік шектеудегі барлық мәндерді жою арқылы қамтамасыз етуге болады. Доға тұрақтылығындағыдай, бұл жою үшін екілік шектеуді бірнеше рет қарастыру қажет болуы мүмкін. Доға тұрақтылығындағыдай, алынған мәселе бастапқы мәселенің сол шешімдерін сақтайды, себебі жойылған мәндер ешқандай шешімде болмайды. Жол тұрақтылығын қамтамасыз ететін шектеу таратуы жаңа шектеулерді енгізе алады. Егер екі айнымалы екілік шектеумен байланысты болмаса, олар кез келген мән жұбына рұқсат беретін жасырын шектеумен байланысты болып саналады. Дегенмен, кейбір мән жұптары шектеу тарату арқылы жойылуы мүмкін. Нәтижесінде алынған шектеу енді барлық мән жұптарымен қанағаттандырылмайды. Сондықтан ол енді жасырын, қарапайым шектеу емес. "Жол тұрақтылығы" атауы бастапқы анықтамадан шыққан, онда бір жұп айнымалы және олардың арасындағы жол қарастырылған, бір жұп емес. Екі анықтама бір жұп айнымалы үшін әртүрлі болғанымен, олар бүкіл мәселеге қатысты эквивалентті.
Жалпылау
Арка мен жол консистенттілігін екілік емес шектеулерге, айнымалылардың жұптарының орнына топтамаларын қолдану арқылы жалпылауға болады. Егер айнымалылардың кез келген консистентті бағалауы басқа айнымалының мәнімен консистенттілікті сақтай отырып кеңейтілсе, онда айнымалылардың топтамасы басқа айнымалымен консистентті болады. Бұл анықтама барлық проблемаларға оңай түсінікті түрде қолданылады. 2-консистенттіліктің ерекше жағдайы арка консистенттілігімен сәйкес келеді (осы мақалада барлық проблемалар түйіндік консистентті деп есептеледі). Ал 3-консистенттілік жол консистенттілігімен тек барлық шектеулер екілік болған жағдайда ғана сәйкес келеді, себебі жол консистенттілігі үштік шектеулерді қарастырмайды, ал 3-консистенттілік қарастырады. Арка консистенттілігін жалпылаудың тағы бір тәсілі – гиперарка консистенттілігі немесе жалпыланған арка консистенттілігі, ол шектеуді қанағаттандыру үшін бір айнымалының кеңейтілуін қажет етеді. Яғни, егер айнымалының кез келген мәні шектеуді қанағаттандыратындай етіп, шектеудің басқа айнымалыларына кеңейтілсе, онда айнымалы шектеумен консистентті гиперарка болып табылады.
The particular case of 2 consistency coincides with arc consistency (all problems are assumed node consistent in this article). On the other hand, 3 consistency coincides with path consistency only if all constraints are binary, because path consistency does not involve ternary constraints while 3 consistency does. Another way of generalizing arc consistency is hyper arc consistency or generalized arc consistency, which requires extendibility of a single variable in order to satisfy a constraint. Namely, a variable is hyper arc consistent with a constraint if every value of the variable can be extended to the other variables of the constraint in such a way the constraint is satisfied.
Ерекше жағдайлар
Салыстырмалы тұрақтылық туралы кейбір анықтамалар немесе нәтижелер тек ерекше жағдайларда ғана қолданылады. Домендер бүтін сандардан тұрғанда, байланған тұрақтылықты анықтау мүмкін. Осы тұрақтылық түрі домендердің ең шекті мәндерінің – яғни, айнымалының қабылдай алатын ең кішкентай және ең үлкен мәндерінің – тұрақтылығына негізделген. Егер шектеулер алгебралық немесе логикалық болса, доғалық тұрақтылық жаңа шектеу қосуға немесе ескі шектеуді синтаксистік тұрғыдан өзгертуге баламалы, және мұны шектеулерді тиісті түрде біріктіру арқылы іске асыруға болады.
Арнайы шектеулер
Кейбір шектеулер жиі қолданылады. Мысалы, кейбір айнымалылардың барлығы әртүрлі деген шектеу жиі қолданылады. Мұндай шектеулерге қақпақ сәйкестігін қамтамасыз ету үшін тиімді арнайы алгоритмдер бар. Бірнеше айнымалыны әртүрлі болуға мәжбүрлейтін шектеу әдетте alldifferent([X1, ..., Xn]) деп жазылады. Бұл шектеу әр түрлі айнымалылардың барлық жұптарының теңсіздігіне тең, яғни кез келген айнымалының домені бір мәнге дейін төмендетілген кезде, бұл мән доғаның сәйкестігін жүзеге асыру кезінде шектеу тарату арқылы барлық басқа домендерден алынып тасталуы мүмкін. Мамандандырылған шектеуді пайдалану жеке бинарлық теңсіздіктерге жатпайтын қасиеттерді пайдалануға мүмкіндік береді. Бірінші қасиет - барлық айнымалылар доменіндегі элементтердің жалпы саны кем дегенде айнымалылардың санына тең болуы керек. Нақтырақ айтқанда, доғалық сәйкестік орнатылғаннан кейін тағайындалмаған айнымалылардың саны олардың домендерінің бірігіндегі мәндер санынан аспауы тиіс. Әйтпесе, шектеу орындалмайды. Бұл жағдай әртүрлі формадағы шектеуде оңай тексерілуі мүмкін, бірақ теңсіздіктер желісінің доғалық сәйкестігіне сәйкес келмейді. Бірде-бір әр түрлі шектеудің екінші қасиеті - гипер доғаның тұрақтылығын екі жақты сәйкестендіру алгоритмін қолдану арқылы тиімді тексеруге болады. Атап айтқанда, график екі түйін жиынтығы ретінде айнымалылар мен мәндермен құрылады және ондағы сәйкестікті тексеру үшін арнайы екі жақты графикті сәйкестендіру алгоритмі орындалады. Әдетте қолданылатын шектеудің басқа түрі - жинақтаушы (cumulative) шектеу. Ол кестелеу және орналастыру мәселелеріне енгізілген. Мысалы, cumulative([S1, ..., Sm], [D1, ..., Dm], [R1, ..., Rm], L) әрқайсысының басталу уақыты si, ұзақтығы di және ресурстың мөлшері ri бар m іс-әрекеттердің жағдайын ресмилендіру үшін пайдаланылуы мүмкін. Шектеуде ресурстардың жалпы қол жетімді мөлшері L деп көрсетілген. Жинақтаушы шектеулер үшін арнайы шектеу тарату әдістері бар; қай айнымалы домендерінің бір мәнге дейін төмендетілгеніне байланысты әр түрлі әдістер қолданылады. Логикалық шектеулер бағдарламалауда қолданылатын үшінші арнайы шектеу - элемент (element) шектеу. Шектеу логикасы бағдарламалауда тізімдерге айнымалылардың мәндері ретінде рұқсат етіледі. Егер L тізім болса және X осы тізімнің I-інші элементі болса, онда шектеу element(I, L, X) орындалады. Бұл шектеулер үшін арнайы шектеу тарату ережесі бар. Мысалы, егер L және I бір мәндік доменге дейін қысқартылса, X үшін бірегей мән анықталуы мүмкін. Жалпы алғанда, X-тің мүмкін емес мәндері L-дің доменінен және керісінше шығаруға болады.
Бағыттылық сәйкестігі
Бағыттық сәйкестік – берілген айнымалылар тізбегі бойынша айнымалыларға мәндер тағайындайтын алгоритм үшін арналған қисық, жол және сәйкестіктің ерекше түрі. Олар бағытсыз аналогтарына ұқсас, бірақ тек кейбір айнымалыларға дұрыс тағайындалған сәйкестікті, тізбек бойынша олардан кейін келетін басқа айнымалыға да дұрыс кеңейтуді талап етеді.
Бағыттамалық доға мен жолдың сәйкестігі
Егер алгоритм өзгермелілерді , ретімен бағаласа, сәйкестік тек қана төменгі индексті өзгермелілердің мәндері жоғары индексті өзгермелілердің мәндерімен сәйкес келетініне кепілдік берген жағдайда ғана пайдалы. Өзгермеліге мән таңдағанда, тағайындалмаған өзгермелінің барлық мәндерімен сәйкес келмейтін мәндерді ескермеуге болады. Шындығында, егер осы мәндер қазіргі ішінара бағалаумен сәйкес келсе де, алгоритм кейін тағайындалмаған өзгермелі үшін сәйкес мән табуға сәтсіздікке ұшырайды. Екінші жағынан, бұрын бағаланған өзгермелілермен сәйкестікті қамтамасыз етудің қажеті жоқ: егер алгоритм ағымдағы ішінара бағалауға сәйкес келмейтін мәнді таңдаса, сәйкессіздік әйтеуір анықталады. Егер өзгермелілерді бағалау реті , болса, шектеуді қанағаттандыру мәселесі бағытталған түрде доғалық сәйкестікке ие, егер әрбір өзгермелі кез келген басқа өзгермелімен сәйкес болса. Бағытталған жол сәйкестігі де ұқсас, бірақ екі өзгермелінің жол бойынша сәйкес болуы үшін ғана қажет. Күшті бағытталған жол сәйкестігі – бұл бағытталған жол сәйкестігі мен бағытталған доға сәйкестігінің біріктірілген түрі. Сәйкестіктің басқа да түрлері үшін де ұқсас анықтамалар беруге болады.
Арка мен жолдың біркелкілігі үшін шектеудің таралуы
Бағытталған доғаның тұрақтылығын қамтамасыз ететін шектеу тарату, айнымалыларды соңғыдан біріншіге қарай итерациялайды, әр қадамда одан төменгі индекске ие әрбір айнымалының доғалық тұрақтылығын қамтамасыз етеді. Егер айнымалылардың реті , болса, бұл алгоритм айнымалылар бойынша ; үшін , ол индексі төменгі әрбір айнымалының доғалық сәйкестігін қамтамасыз етеді . Бағытталған доғалық тұрақтылығы жоқ мысал: кез келген мәнге сәйкес келмейді және кез келген мәнге сәйкес келмейді. және арасында шектеу жоқ (тиісті қабырғалар жойылған). Бағытталған доғалық тұрақтылықты қамтамасыз ету , -ден басталады және онымен доғалық тұрақтылықты қамтамасыз ету үшін мәнді жояды. Бағытталған доғалық тұрақтылықты қамтамасыз ету , -мен жалғасады. Бұрыннан жойылғандықтан, екі және де жойылады. Бағытталған жолдың тұрақтылығы және күшті бағытталған жолдың тұрақтылығы доғалық тұрақтылық үшін қолданылатын алгоритмдарға ұқсас алгоритмдермен қамтамасыз етілуі мүмкін. Олар ; әрбір айнымалы үшін екі айнымалы қарастырылады, және олардың жол сәйкестігі қамтамасыз етіледі. Егер мәселеде және арасында шектеу болмаса, операция қажет емес. Дегенмен, егер арасында шектеу болмаса да, тривиальды шектеу деп есептеледі. Егер шектеу тарату қанағаттандыратын тапсырмалар жиынтығын азайтатын болса, ол тиімді түрде жаңа тривиальды емес шектеуді жасайды. Шекара тарату күшті бағытталған жолдың тұрақтылығын қамтамасыз етеді, бірақ сонымен қатар доғалық тұрақтылықты да қамтамасыз етеді.
An instance that is not directional arc consistent: does not correspond to any value of and does not correspond to any value of No constraint is present between and (corresponding edges are omitted). Enforcing directional arc consistency starts with , and makes arc consistent with it by removing the value Enforcing directional arc consistency proceeds with Since has already been removed, both and are removed. Directional path consistency and strong directional path consistency can be enforced by algorithms similar to the one for arc consistency. They process variables from to ; for every variable two variables with are considered, and path consistency of them with is enforced. No operation is required if the problem contains no constraint on and or no constraint between and However, even if there is no constraint between and , a trivial one is assumed. If constraint propagation reduces its set of satisfying assignments, it effectively create a new non trivial constraint. Constraint propagation enforcing strong directional path consistency is similar, but also enforces arc consistency.
Бағыттамалық сәйкестік және қанағаттанушылық
Бағыттық сәйкестік, шектеуді қанағаттандыратын ішінара шешімдердің жоғары индексті басқа айнымалыға сәйкес келуін қамтамасыз етеді. Дегенмен, ол әртүрлі айнымалыларға жасалған кеңейтулердің бір-бірімен сәйкес келетініне кепілдік бермейді. Мысалы, ішінара шешімді тұрақты түрде бір немесе екінші айнымалыға кеңейтуге болады, бірақ бұл екі кеңейту бір-бірімен сәйкес келмейді. Мұндай жағдай екі рет туындамайды, және егер ешқандай домен бос болмаса және ешқандай шектеу қанағаттандырылмайтын болса, бағыттық сәйкестік қанағаттандырылатынын қамтамасыз етеді. Бірінші жағдай – айнымалылардың реттелген тізбегімен сипатталатын, ені 1-ге тең шектеу графигі бар бинарлық шектеу мәселесі. Мұндай реттеу тек қана шектеулер графигі ағаш болған жағдайда ғана мүмкін. Егер осылай болса, графиктің ені реттелген тізбек бойынша төменгі орналасқан түйіндердің максималды санын шектейді. Бағыттық доғаның сәйкестігі, әрбір сәйкес айнымалыға жасалған тағайындаманы жоғары орналасқан түйіндерге кеңейтуге кепілдік береді, ал ені 1 болса, түйін бірден артық төменгі түйінге қосылмайды. Осылайша, төменгі айнымалыға мән берілгеннен кейін, оның мәні оған қосылған барлық жоғары айнымалыларға сәйкес кеңейтіледі. Бұл кеңейту кейіннен қайшылыққа әкелмейді, себебі графиктің ені 1 болғандықтан, басқа төменгі айнымалы жоғары айнымалыға қосылмайды. Нәтижесінде, егер шектеу мәселесінің айнымалылар тізбегіне қатысты ені 1 болса (яғни, оның графигі ағаш болса) және мәселе сол тізбек бойынша бағыттық сәйкестікке ие болса, онда шешімді (бар болса) айнымалыларды тізбек бойынша қайталап тағайындау арқылы табуға болады. Егер ешқандай домен бос болмаса және ешқандай шектеу қанағаттандырылмайтын болса, бағыттық сәйкестік қанағаттандырылатынының екінші жағдайы – күшті бағыттық жол сәйкестігін қолданатын, 2 ені бар графигі бар бинарлық шектеу мәселесі. Шындығында, мұндай сәйкестік әрбір айнымалыға немесе айнымалылар жұбына жасалған тағайындаманы жоғары айнымалыға кеңейтуге кепілдік береді, ал ені 2 болса, бұл айнымалы төменгі айнымалылардың басқа жұбына қосылмайды. Ендік орнына индуцирленген енді қарастырудың себебі – бағыттық жол сәйкестігін қолдану шектеулерді қосуы мүмкін. Шындығында, егер екі айнымалы бір шектеуде болмаса, бірақ жоғары айнымалымен шектеуде болса, олардың кейбір мәндері жол сәйкестігін бұзуы мүмкін. Мұндай жұптарды жою жаңа шектеуді тудырады. Нәтижесінде, шектеу таратуы бастапқыдан көбірек жиектері бар мәселені тудыруы мүмкін. Алайда, барлық осы жиектер міндетті түрде индуцирленген графикте болады, себебі олардың барлығы бір түйіннің екі ата-анасы арасында орналасқан. 2 ені, әрбір сәйкес ішінара бағалауды шешімге дейін кеңейтуге кепілдік береді, бірақ бұл ен құрылған графиктің қасиетіне байланысты. Нәтижесінде, күшті бағыттық жол сәйкестігінің шешімдердің болуын қамтамасыз етуі үшін индуцирленген ені 2 болуы қажет.
Бағытты i-салмақтылығы
Бағыттық сәйкестік – өзгермелілерге жасалған әрбір дәйекті тапсырманы реті жоғарырақ басқа өзгермеліге дәйекті түрде кеңейтуге болатындығының кепілі. Күшті бағыттық сәйкестік ұқсас түрде анықталады, бірақ барлық айнымалылардың топтары қарастырылады. Егер мәселе күшті бағыттық сәйкестікке ие болса, ені шектеулі болса, және бос домендер немесе қанағаттандырылмаған шектеулер болмаса, онда оның шешімі бар. Кез келген мәселені күшті бағыттық сәйкестікке келтіруге болады, бірақ бұл операция оның сәйкес графигінің енін арттыруы мүмкін. Бағыттық сәйкестікті қамтамасыз ететін шектеу тарату процедурасы бағыттық доғалық сәйкестік және жол сәйкестігі үшін қолданылатын процедураға ұқсас. Өзгермелілер ретімен қарастырылады, соңғысынан біріншісіне қарай. Белгілі бір өзгермелі үшін алгоритм одан төмен индекске ие және осы өзгермелімен шектеуде болатын барлық өзгермелілердің топтарын қарастырады. Осы өзгермелілердің сәйкестігі тексеріледі және мүмкін болса, осы барлық өзгермелілер арасындағы шектеуден қанағаттандыратын тапсырмаларды алып тастау арқылы (бар болса, немесе әйтпесе жаңасын жасау арқылы) күшпен орындалады. Бұл процедура күшті бағыттық сәйкестікке ие мысал тудырады. Дегенмен, ол мысалға жаңа шектеулер қосуы мүмкін. Нәтижесінде, бастапқы мәселенің ені болса да, алынған мысалдың ені үлкен болуы мүмкін. Егер осылай болса, бағыттық күшті сәйкестік, тіпті ешқандай домен бос болмаса және ешқандай шектеу қанағаттандырылмаса да, қанағаттандырылуын білдірмейді. Алайда, шектеу таратуы тек қазіргі уақытта қарастырылып отырғаннан төменгі өзгермелілерге шектеулер қосады. Нәтижесінде, алгоритм осы өзгермелімен айналысқаннан кейін ешқандай шектеу өзгертілмейді немесе қосылмайды. Белгілі бір енді қарастырудың орнына, оны қарастырылып жатқан әрбір өзгермелінің ата-аналарының санына өзгертуге болады (өзгермелінің ата-аналары – өзгермеліден төмен индекске ие және осы өзгермелімен шектеуде болатын өзгермелілер). Бұл әрбір қадамда берілген өзгермелінің барлық ата-аналарын қарастыруға сәйкес келеді. Басқаша айтқанда, соңғысынан біріншісіне дейінгі әрбір өзгермелі үшін оның барлық ата-аналары олардың мәндерін сәйкес келетіндермен шектейтін жаңа шектеуге кіреді. Бұл алгоритмді бұрынғысының өзгеруі ретінде қарастыруға болады, онда әрбір түйіннің ата-аналарының санына өзгерген мән, ол бейімделуші сәйкестік деп аталады. Бұл алгоритм мәселенің еніне тең бағыттық сәйкестікті күшпен орындайды. Алынған мысал тек егер ешқандай домен немесе шектеу бос болмаса ғана қанағаттандырылады. Егер осылай болса, шешімді оңай табуға болады, тағайындалмаған өзгермеліні кездейсоқ мәнге қайталана орнату және осы ішінара бағалауды басқа өзгермелілерге тарату арқылы. Бұл алгоритм әрқашан полиномиалдық уақытта орындалмайды, өйткені күшті бағыттық сәйкестікті күшпен орындау арқылы енгізілген шектеулер саны экспоненциалдық көлемді ұлғайтуы мүмкін. Алайда, егер күшті бағыттық сәйкестікті күшпен орындау мысалдың көлемін суперполиномиалдық түрде арттырмаса, бұл мәселе полиномиалдық уақытта шешіледі. Нәтижесінде, егер мысал тұрақтымен шектелген енді индукцияласа, оны полиномиалдық уақытта шешуге болады.
Құраны жою
Шектеуді жою – қанағаттандыру алгоритмі. Оны адаптивті консистенцияны қайта құру ретінде анықтауға болады. Оның анықтамасында шектеулерді сақтауға арналған контейнерлер – бөліктер қолданылады, әр айнымалыға сәйкес бөлік бар. Шектеу әрқашан ең жоғары айнымалының бөлігіне жатады. Шектеуді жою алгоритмі жоғары айнымалыдан төменгі айнымалыға қарай жүзеге асырылады. Әр қадамда осы айнымалының бөлігіндегі шектеулер қарастырылады. Анықтама бойынша, бұл шектеулер тек төменгі айнымалыларды ғана қамтиды. Алгоритм осы төменгі айнымалылар арасындағы шектеуді өзгертеді (егер бар болса, болмаса жаңасын жасайды). Атап айтқанда, олардың мәндерін осы айнымалының бөлігіндегі шектеулермен сәйкес келуге мүмкіндік береді. Егер жаңа шектеу болса, ол тиісті бөлікке орналастырылады. Бұл шектеу тек төменгі айнымалыларды қамтитындықтан, ол төменгі айнымалылардың бөлігіне қосылады.
This algorithm is equivalent to enforcing adaptive consistency. Since they both enforce consistency of a variable with all its parents, and since no new constraint is added after a variable is considered, what results is an instance that can be solved without backtracking. Since the graph of the instance they produce is a subgraph of the induced graph, if the induced width is bounded by a constant the generated instance is of size polynomial in the size of the original instance. As a result, if the induced width of an instance is bounded by a constant, solving it can be done in polynomial time by the two algorithms.
Бұл алгоритм адаптивті консистенцияны қамтамасыз етуге тең. Олар екеуі де айнымалының барлық «ата-аналарымен» консистенциясын қамтамасыз етеді және айнымалы қарастырылғаннан кейін жаңа шектеулер қосылмайды, нәтижесінде артқа қайтусыз шешілетін мысал пайда болады. Олар жасайтын мысалдың графигі индукцияланған графиктің ішкі графигі болғандықтан, егер индукцияланған ен тұрақтымен шектелсе, алынған мысал бастапқы мысалдың өлшеміне полиномдық болады. Осылайша, егер мысалдың индукцияланған ені тұрақтымен шектелсе, оны екі алгоритмнің көмегімен полиномдық уақытта шешуге болады.
This algorithm is equivalent to enforcing adaptive consistency. Since they both enforce consistency of a variable with all its parents, and since no new constraint is added after a variable is considered, what results is an instance that can be solved without backtracking. Since the graph of the instance they produce is a subgraph of the induced graph, if the induced width is bounded by a constant the generated instance is of size polynomial in the size of the original instance. As a result, if the induced width of an instance is bounded by a constant, solving it can be done in polynomial time by the two algorithms.
Қарым-қатынас тұрақтылығы
Бұрынғы бірқалыптылық анықтамалары тапсырмалардың сәйкестігі туралы болса, қатынастық бірқалыптылық тек берілген шектеуді немесе шектеулер жиынтығын қанағаттандыруды қамтиды. Нақтырақ айтқанда, қатынастық сәйкестілік – кез келген сәйкес ішінара тапсырманы белгілі бір шектеу немесе шектеулер жиынтығы қанағаттандырылатындай етіп кеңейтуге болады дегенді білдіреді. Формальды түрде, айнымалыларға қатысты шектеу, егер оның айнымалыларының біріне сәйкес келсе, кез келген сәйкес тапсырманы сол айнымалыға осындай жолмен кеңейтуге болады. «Жай» сәйкестілік пен қатынастық доға сәйкестілігінің арасындағы айырмашылық – соңғысы тек берілген шектеуді қанағаттандыру үшін кеңейтілген тапсырманы талап етеді, ал біріншісі барлық қатысты шектеулерді қанағаттандыруды талап етеді. Бұл анықтаманы бірнеше шектеуге және бірнеше айнымалыға қолдануға болады. Атап айтқанда, қатынастық жол сәйкестігі қатынастық доға сәйкестігіне ұқсас, бірақ біреуінің орнына екі шектеу қолданылады. Екі шектеу, егер олардың барлық айнымалыларына сәйкес келетін кез келген сәйкес тапсырма, бірақ қарастырылып отырған біреуі екі шектеуді қанағаттандыратындай етіп кеңейтілсе, айнымалымен қатынастық жол сәйкестігінде болады. Екіден астам шектеулер үшін қатынастық сәйкестілік анықталады. Қатынастық сәйкестілік шектеулер жиынтығын және осы шектеулердің барлық аясындағы айнымалыны қамтиды. Атап айтқанда, егер олардың аясындағы барлық басқа айнымалыларға кез келген сәйкес тапсырманы осы шектеулер қанағаттандырылатындай етіп айнымалыға кеңейтуге болады, онда бұл шектеулер айнымалымен сәйкес келеді. Мәселе қатынастық сәйкес болады, егер шектеулердің кез келген жиынтығы олардың барлық аясындағы кез келген айнымалымен қатынастық сәйкес болса. Күшейтілген қатынастық сәйкестілік жоғарыда көрсетілгендей анықталады: қатынастық сәйкестілік бір емес, бірнеше айнымалы үшін де анықталуы мүмкін. Шектеулер жиынтығы қатынастық сәйкес болады, егер олардың айнымалыларының кез келген ішкі жиынына кез келген сәйкес тапсырманы барлық айнымалыларға барлық шектеулерді қанағаттандыратын мәнге дейін кеңейтуге болады. Бұл анықтама жоғарыдағы анықтаманы толыққанды түрде кеңейте алмайды, өйткені мәндерді кеңейтуге болатын айнымалылар міндетті түрде барлық шектеулердің аясында болуы керек. Егер айнымалылардың реті берілген болса, қатынастық сәйкестік айнымалыларға мән беруді реттегі басқа айнымалылардан кейін ғана жасаумен шектелуі мүмкін. Бұл өзгертілген жағдай бағытталған қатынастық сәйкестік деп аталады.
Relational consistency can also be defined for more variables, instead of one. A set of constraints is relational consistent if every consistent assignment to a subset of of their variables can be extended to an evaluation to all variables that satisfies all constraints. This definition does not exactly extends the above because the variables to which the evaluations are supposed to be extendible are not necessarily in all scopes of the involved constraints. If an order of the variables is given, relational consistency can be restricted to the cases when the variables(s) the evaluation should be extendable to follow the other variables in the order. This modified condition is called directional relational consistency.
Қарым-қатынас сәйкестігі және қанағаттанушылық
Шектілік қанағаттандыру мәселесі қатынастық тұрғыдан дәйекті болуы мүмкін, бос домені немесе қанағаттандырылмаған шектеуі болмауы мүмкін, бірақ бәрібір қанағаттандырылмауы мүмкін. Дегенмен, мұндай болмайтын жағдайлар да бар. Бірінші жағдай – домендері ең көп дегенде элементтерді қамтитын, күшті қатынастық дәйектілікке ие мәселе. Бұл жағдайда, айнымалылардың дәйекті бағалауын әрқашан бір ғана басқа айнымалыға дейін кеңейтуге болады. Егер мұндай бағалау болса және сол айнымалы болса, онда айнымалының алуға болатын тек бірнеше мүмкін мәні болады. Егер осы мәндердің барлығы бағалаумен үйлесімсіз болса, онда бағалау мен оның мүмкін мәндерінің бірі бұзылған (қажетті түрде бірегей емес) шектеулер болады. Нәтижесінде, бағалау осы немесе одан да аз шектеулерді қанағаттандыру үшін кеңейтілмейді, күшті қатынастық дәйектілік шартын бұзады. Екінші жағдай, домендерге емес, шектеулердің сипаттамасына қатысты. Егер кез келген бағалау, оның барлық айнымалылары үшін, біреуін қоспағанда, қалған айнымалының барлық мүмкін мәндерімен немесе оның көпшілігімен шектеуді қанағаттандыру үшін кеңейтілсе, онда шектеу тығыз болады. Тығыз шектеулері бар мәселелер күшті қатынастық дәйектілікке ие болған жағдайда ғана қанағаттандырылады. Үшінші жағдай – қатарлы дөңгелек матрицалармен бейнеленетін бинарлық шектеулер. Бинарлық шектеуді екі өлшемді матрица арқылы көрсетуге болады , мұнда -ның доменіндегі мәні мен -ның доменіндегі мәні шектеуді қанағаттандыра ма, жоқ па, соған байланысты 0 немесе 1 болады. Матрицаның қатары, егер ондағы 1-дер тізбекпен орналасқан болса (формальды түрде, егер екі элемент 1-ге тең болса, арасындағы барлық элементтер де 1-ге тең болады), дөңгелек болып саналады. Матрицаның барлық қатарлары дөңгелек болса, онда ол қатарлы дөңгелек матрица болады. Күшті қатынастық жол дәйектілігін қанағаттандыруға теңестіретін жағдай – бұл барлық шектеулерді қатарлы дөңгелек матрицалармен бейнелейтін айнымалылардың реті бар шектеулерді қанағаттандыру мәселесі. Бұл нәтиже, жұптық ортақ элементі бар дөңгелек қатарлар жиынтығында да жалпы ортақ элемент болатындығына негізделген. Айнымалыларға бағалауды қарастыратын болсақ, -шы айнымалы үшін рұқсат етілген мәндер кейбір шектеулерден қатарларды таңдау арқылы анықталады. Атап айтқанда, айнымалының әрқайсысы үшін, онымен байланысты шектеуді көрсететін матрицадағы оның мәніне қатысты қатар, соңғысының рұқсат етілген мәндерін көрсетеді. Бұл қатарлар дөңгелек болғандықтан және жол дәйектілігіне байланысты олардың жұптық ортақ элементтері бар, олардың да ортақ ортақ элементі бар, ол басқаларымен үйлесімді соңғы айнымалының мәнін көрсетеді.
Жергілікті тұрақтылықтың қолданылуы
Жергілікті консистенцияның барлық түрлері шектеу тарату арқылы қамтамасыз етілуі мүмкін, бұл айнымалылар домендерін және шектеуді қанағаттандыратын тапсырмалар жиынтығын азайтуға, сондай-ақ жаңа шектеулерді енгізуге әкелуі мүмкін. Егер шектеу тарату бос доменді немесе қанағаттандырылмайтын шектеуді тудырса, бастапқы мәселе қанағаттандырылмайды. Сондықтан, жергілікті консистенцияның барлық түрлерін қанағаттандыру шамасы ретінде пайдалануға болады. Нақтырақ айтқанда, оларды толық емес қанағаттандыру емеуі алгоритмдері ретінде қолдануға болады, себебі олар мәселенің қанағаттандырылмайтынын дәлелдей алады, бірақ көбінесе мәселенің қанағаттандырылатынын дәлелдей алмайды. Мұндай шамаланған алгоритмдерді іздеу алгоритмдері (қайтару, артқа секіру, жергілікті іздеу және т.б.) жартылай шешімді одан әрі талдаусыз барлық шектеулерді қанағаттандыру үшін кеңейтуге болатынын анықтау үшін эвристика ретінде пайдалануы мүмкін. Тіпті егер шектеу тарату бос доменді немесе қанағаттандырылмайтын шектеуді тудырмаса да, ол домендерді азайтуға немесе шектеулерді күшейтуге мүмкін. Егер осылай болса, мәселенің іздеу кеңістігі азаяды, демек мәселені шешу үшін қажетті іздеу көлемі азаяды. Жергілікті консистенция кейбір шектеулі жағдайларда қанағаттандыруға болатынын дәлелдейді (қ. қараңыз, Шектеулерді қанағаттандырудың күрделігі#Шектеулер). Бұл кейбір ерекше мәселелер үшін және/немесе жергілікті консистенция түрлері үшін орынды. Мысалы, бинарлық ациклді мәселелерде доғалық консистенцияны қамтамасыз ету мәселенің қанағаттандырылатынын анықтауға мүмкіндік береді. Күшті бағытталған консистенцияны қамтамасыз ету бірдей тәртіп бойынша туындаған ені бар мәселелердің қанағаттандырылатынын көрсетуге мүмкіндік береді. Адаптивті бағытталған консистенция кез келген мәселенің қанағаттандырылатынын анықтауға мүмкіндік береді.