Кіріспе
Шектеулерді қанағаттандырудың кері іздеу алгоритмдерінде шектеулерді үйрену тиімділікті арттыру тәсілі болып табылады. Ол сәйкессіздік анықталғанда жаңа шектеулерді тіркеу арқылы жұмыс істейді. Бұл жаңа шектеу іздеу кеңістігін азайтуы мүмкін, себебі болашақтағы толық емес бағалаулар қосымша іздеусіз сәйкессіз деп танылуы мүмкін. Ұйғарымдық қанағаттандырылуға қолданған кезде бұл тәсіл клаузалық үйрену деп аталады.
Анықтама
Артқа қарай іздеу алгоритмдері тағайындалмаған айнымалыны таңдап, осы айнымалыға мән беру арқылы алынған мәселелерді рекурсивті түрде шешеді. Егер ағымдағы ішінара шешім сәйкессіз болып табылса, алгоритм рекурсияға сәйкес, бұрын тағайындалған айнымалыға қайта оралады. Шектеуді үйрену алгоритмі басқаша, себебі ол артқа қайтудан бұрын ақпаратты жаңа шектеу түрінде сақтауға тырысады. Бұл келешектегі іздеуді қысқартуы мүмкін, өйткені келесі іздеу осы жаңа шектеуге қайшы келетін басқа ішінара шешіммен кездесуі мүмкін. Алгоритм жаңа шектеуді үйренсе, ол осы шешімнен артқа қайтады, ал бастапқы артқа қайту алгоритмі одан әрі іздеуді жалғастырады. Егер ішінара шешім сәйкессіз болса, мәселенің мысалы барлық жағдайларда да орын алмауы керек екенін көрсететін шектеуді білдіреді. Дегенмен, мұндай шектеуді сақтау пайдалы емес, өйткені артқа қарай іздеудің барысы бойынша бұл ішінара шешім қайтадан кездеспейді. Керісінше, егер осы бағалаудың бір бөлігі сәйкессіз болса, тиісті шектеу келесі іздеуде пайдалы болуы мүмкін, себебі ішінара бағалаудың сол бөлігі іздеу кезінде қайта пайда болуы мүмкін. Мысалы, алгоритм алдыңғы ішінара бағалаудың бөлігін кеңейтетін бағалауға тап болуы мүмкін. Егер бұл бөлік сәйкессіз болса және алгоритм бұл фактіні шектеу түрінде сақтаса, жаңа ішінара бағалауды шешімге жеткізуге болатынын анықтау үшін қосымша іздеудің қажеті жоқ. Іздеу соқпаққа тірелді. Сәйкессіздік тек және мәндерінің өзінен туындауы мүмкін. Бұл фактіні жаңа шектеуде сақтауға болады. Егер алгоритм қайта-қайта бірдей және мәндеріне жетсе, жаңа шектеу іздеуді тоқтатады.
Шектеуді оқытудың тиімділігі
Шектеулерді үйренудің тиімділігін арттыру екі фактор арасында тепе-теңдікпен жүзеге асырылады. Бір жағынан, жазылған шектеу неғұрлым көп бұзылса, кері іздеу (backtracking) неғұрлым көп пайдасыз іздеуден аулақ болады. Ағымдағы жарым-жартылай шешімнің кішігірім сәйкессіз жиынтығы әдетте үлкенінен жақсы, себебі олар бұзуы оңай шектеулерге сәйкес келеді. Екінші жағынан, ағымдағы ішінара бағалаудың кішігірім сәйкессіз жиынтығын табуға уақыт кетіп, нәтижесінде іздеу уақытын қысқарту артықшылығын бермеуі мүмкін. Дегенмен, өлшемі – үйренген шектеулерді ескеру керек жалғыз ерекшелік емес. Расында, іздеу кеңістігінің белгілі бір күйінде кіші шектеудің пайдасы болмауы мүмкін, өйткені оны бұзатын мәндер енді кездеспейді. Мұндай жағдайларда, бұзатын мәндері ағымдағы ішінара тағайындамаға көбірек ұқсас үлкен шектеуге басымдық берілуі мүмкін. Әртүрлі шектеулерді үйрену техникалары бар, олар жазылған шектеулердің қатаңдығы және оларды табу құны бойынша ерекшеленеді.
График негізінде оқыту
Егер алгоритм мәндерінің барлығын мәнімен сәйкес емес деп дәлелдесе, онда бұл бағалау дұрыс болды, әйтпесе алгоритм оны бағаламас еді; нәтижесінде, мәнінің бұзушылыққа әкелген шектеулерінің барлығы да қамтиды. Сәйкес емес бағалау – бұл мәннің шындық бағалауы, егер бұл шектеуде тағайындалмаған айнымалы болмаса. Осы ішінара бағалауды көрсететін шектеулерді оқыту – график негізіндегі оқыту деп аталады. Ол график негізіндегі кері секірудің ұқсас қағидасын қолданады. Бұл әдістер «график негізді» деп аталады, себебі олар шектеуді қанағаттандыру мәселесіне байланысты графиктен табылған, бірдей шектеудегі айнымалылар жұптарына негізделген.
As a result, an inconsistent evaluation is the restriction of the truth evaluation of to variables that are in a constraint with , provided that this constraint contains no unassigned variable. Learning constraints representing these partial evaluation is called graph based learning. It uses the same rationale of graph based backjumping. These methods are called "graph based" because they are based on pairs of variables in the same constraint, which can be found from the graph associated to the constraint satisfaction problem.
Қайта оқыту
Jumpback оқыту конфликтіге негізделген кері секіру арқылы табылған қарама-қайшылық тапсырмаларды шектеулер ретінде сақтауға негізделген. Кез келген толық емес тапсырма қарама-қайшылыққа тап болғанда, бұл алгоритм өзгермелілердің құрылу ретіне сәйкес реттелген ең минималды бұзылған шектеуді таңдайды. Бұл шектеудегі айнымалылардың шектелген бағалауы қарама-қайшылыққа келеді және әдетте толық бағалаудан қысқа болады. Jumpback оқыту осы фактіні жаңа шектеу ретінде сақтайды. Шектеулердің реті айнымалыларға тағайындалған тәртіпке негізделген. Атап айтқанда, екі шектеудің ең кішісі – соңғы ортақ емес айнымалысы бірінші болып құрылған. Қарама-қайшылық тапсырмаға жеткен кезде, Jumpback оқыту осы ретке сәйкес минималды бұзылған шектеуді таңдайды және ағымдағы тапсырманы оның айнымалыларымен шектейді. Осы тапсырманың қарама-қайшылығын көрсететін шектеу сақталады.
Шектеуді сақтау
Шектеулерді оқыту алгоритмдері белгілі бір үйлесімсіз ішінара бағалауға сәйкес келетін шектеуді таңдау бойынша ғана емес, сонымен қатар қай шектеулерді сақтайтынын және қайларын жоятынын таңдау бойынша да ерекшеленеді. Жалпы, барлық үйлесімсіздіктерді шектеулер түрінде оқып, оларды шексіз сақтау қолданылатын жадты толықтырып, ішінара бағалаулардың үйлесімділігін тексеру құнын арттыруы мүмкін. Бұл мәселелерді тек кейбір оқыған шектеулерді сақтау арқылы немесе кейде шектеулерді жою арқылы шешуге болады. Шектелген оқыту шектеулерді тек олар көрсететін үйлесімсіз ішінара бағалау белгілі бір шектеулер санынан кіші болған жағдайда ғана сақтайды. Маңыздылығы бойынша шектелген оқыту іздеу кеңістігінің ағымдағы нүктесіне қатысты маңызсыз деп есептелетін шектеулерді жояды (немесе оларды мүлдем сақтамайды); атап айтқанда, ол берілген тұрақты санмен ғана айырмашылығы бар, ағымдағы ішінара бағалаудан үйлесімсіз ішінара бағалауларды көрсететін барлық шектеулерді жояды немесе сақтамайды.