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:

Przykład, w którym wyszukiwanie osiągnęło xi=d za pierwszym razem.
  1. dla każdej zmiennej wartości informacje o ostatnim ustawieniu na \ ; w przechowuje minimalny indeks przypisanie do był wtedy niespójny ;
  2. 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.

Kiedy wyszukiwanie osiąga xi=d po raz drugi, część ścieżki jest taka sama jak za pierwszym razem.

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

  1. 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;
  2. 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 .