Oznaczanie wsteczne
W przypadku spełniania ograniczeń znakowanie wsteczne jest wariantem algorytmu śledzenia wstecznego .
Oznaczanie wsteczne działa jak śledzenie wsteczne poprzez iteracyjne ocenianie zmiennych w określonej kolejności, na przykład . Poprawia to śledzenie wsteczne, zachowując informacje o ostatnim przypadku do wartości oraz informacje o tym, co zmieniło się od tego czasu W szczególności:
- dla każdej zmiennej wartości informacje o ostatnim ustawieniu na \ ; w przechowuje minimalny indeks przypisanie do był wtedy niespójny ;
- dla każdej zmiennej pewne informacje dotyczące tego, co zmieniło się ostatniej w szczególności przechowuje minimalny indeks została zmieniona od tego czasu
Pierwsza informacja jest zbierana i przechowywana za każdym razem, gdy algorytm ocenia zmienną do { się to po prostu poprzez sprawdzenie spójności bieżących przypisań dla , dla , dla itd.
Druga informacja jest zmieniana za każdym razem, gdy oceniana jest inna zmienna. W szczególności indeks „maksymalnej niezmienionej zmiennej od ostatniej oceny zmienna zmienia wartość. Za każdym razem zmienna , wszystkie zmienne są rozpatrywane po kolei. Jeśli indeks był ich poprzednim powiązanym indeksem, ta wartość jest zmieniana na .
Zebrane w ten sposób dane służą do uniknięcia pewnych kontroli spójności. W szczególności, ilekroć śledzenie ustawiłoby , oznaczenie wsteczne porównuje indeksy względem pary Dwa warunki pozwalają określić częściową zgodność lub niezgodność bez sprawdzania z ograniczeniami. jeśli jest minimalnym indeksem zmiennej, która zmieniła się od czasu ostatniej i minimalnym indeksem takim był spójny ostatnim razem, gdy został oceniony na , a następnie: x ja
- jeśli , ocena jest nadal niespójna, ponieważ tak było wcześniej, bo jak dotąd żadna z tych zmiennych nie uległa zmianie; w rezultacie dalsze sprawdzanie spójności nie jest konieczne;
- jeśli ocena nadal przypisanie może nadal niespójne
W przeciwieństwie do innych wariantów backtrackingu, backmarking nie zmniejsza przestrzeni poszukiwań, a jedynie ewentualnie zmniejsza liczbę ograniczeń, które spełnia częściowe rozwiązanie.
- Dechter, Rina (2003). Przetwarzanie ograniczeń . Morgana Kaufmanna. ISBN 1-55860-890-7 .