Lokalna konsystencja - Local consistency

W więzów satysfakcji , lokalne konsystencji warunki są właściwości więzów satysfakcji problemów związanych ze konsystencji podzbiorów zmiennych i ograniczeń. Mogą być stosowane w celu zmniejszenia przestrzeni poszukiwań i sprawiają, że łatwiej jest rozwiązać problemu. Różne rodzaje warunków lokalnych konsystencję stosują dźwigni finansowej, w tym spójność węzła , konsystencji łuku i konsystencji ścieżki .

Każdy lokalny warunek spójności mogą być egzekwowane przez transformację, która zmienia problemu bez zmieniania jego rozwiązania. Taka zmiana jest nazywany ograniczenie propagacji . Ograniczenie propagacji działa poprzez zmniejszenie domen zmiennych, wzmocnienie ograniczenia lub tworzenie nowych. Prowadzi to do zmniejszenia przestrzeni poszukiwań, dzięki czemu łatwiej jest rozwiązać problemu przez niektórych algorytmów. Propagacji Ograniczenie może być również stosowany jako unsatisfiability dzianą niepełnego na ogół, ale pełnego niektórych szczególnych przypadkach.

Lokalne warunki konsystencji mogą być grupowane w różnych klasach. Oryginalne lokalne warunki spójności wymaga, aby każdy zgodny zadanie może być konsekwentnie przedłużony do innej zmiennej. Directional konsekwencja wymaga tylko ten warunek za spełniony, gdy druga zmienna jest wyższe niż te w zadania, według podanej kolejności. Relacyjny konsystencja obejmuje rozszerzeń do więcej niż jednej zmiennej, ale to rozszerzenie jest wymagane tylko w celu zaspokojenia danego ograniczenia lub zestaw ograniczeń.

założenia

W tym artykule, ograniczenie problemu satysfakcja jest zdefiniowany jako zbiór zmiennych, zestaw domen, oraz zestaw ograniczeń. Zmienne i domeny związane są: domena zmienna zawiera wszystkie wartości zmiennej można podjąć. Ograniczenie to składa się z sekwencji zmiennych nazywane jej zakres, a zestaw ich oceny, którymi są oceny spełniające ograniczenie.

Problemy Zadowolenie ograniczenia, o których mowa w tym artykule zakłada się, że w specjalnej formie. Problem jest w znormalizowanej formie , odpowiednio regularnej formie , jeśli każdy ciąg zmiennych jest zakres ograniczeń co najwyżej jeden lub dokładnie jedno ograniczenie. Założeniem prawidłowości wykonanej wyłącznie dla ograniczenia binarnych prowadzi do standardowego formularza . Warunki te mogą być wykonywane zawsze, łącząc wszystkie wiązania w obrębie sekwencji zmiennych w jeden i / lub dodanie ograniczenie, które jest realizowane przez wszystkie wartości sekwencji zmiennych.

Na figurach użytych w niniejszym artykule, brak powiązań między dwiema zmiennymi wskazują, że istnieje albo nie przymus lub ograniczenie spełnione przez wszystkie wartości pomiędzy tymi dwiema zmiennymi.

lokalna konsystencja

„Standard” lokalne warunki konsystencji wszystkie wymagają, aby wszystkie zgodne oceny cząstkowe może zostać przedłużony do innej zmiennej w taki sposób powstały zadaniem jest spójne. Częściowa oceny jest zgodna, czy spełnia on wszystkie ograniczenia, których zakres jest podzbiorem przypisanych zmiennych.

konsystencja węzeł

konsystencja węzeł wymaga, aby każdy jednoskładnikowa ograniczeniem zmiennej jest spełnione przez wszystkie wartości w domenie zmiennej, i vice versa. Stan ten może być trywialnie egzekwowane przez zmniejszenie domenę każdej zmiennej wartości, które spełniają wszystkie Jednoargumentowy ograniczeń na tej zmiennej. W rezultacie, unarne ograniczenia mogą być zaniedbywane i przybrał włączone do domen.

Na przykład, ze względu na zmienną z dziedziny i ograniczeń , konsystencja węzeł ograniczyłaby domenę i ograniczenia mogą następnie być odrzucone. Ten etap wstępnego przetwarzania upraszcza późniejszych etapach.

konsystencja Arc

Image
x2 jest zgodne z łuku, ale nie z x3 x1, x2 jako wartość = 1 nie odpowiada żadnej wartości dla x1.

Zmienna z ograniczeniem problemu satysfakcja jest łukowo spójny z innym, jeżeli każdy z jej dopuszczalnych wartości są zgodne z pewnym dopuszczalnej wartości drugiej zmiennej. Formalnie, zmienna jest łukowo spójna z innej zmiennej , jeśli dla każdej wartości w dziedzinie istnieje wartość w dziedzinie takie, że spełnia binarny więzów pomiędzy i . Problemem jest łuk zgodny jeśli każda zmienna jest łuk zgodny z każdym drugim.

Na przykład, należy rozważyć ograniczenie gdzie zmienne wahać się w domenie 1 do 3. Ponieważ nigdy nie może być 3, nie ma łuk od 3 do wartości w tak jest bezpiecznie usunąć. Podobnie, nigdy nie może być 1, więc nie ma łuk, dlatego można go usunąć.

konsystencja łuk może być także określona w stosunku do określonego przymusu binarnym: binarny ograniczeniem jest łukowo spójna jeśli każda wartość jednej zmiennej ma wartość drugiej zmiennej takie, że spełniają one ograniczenie. Ta definicja spójności łukowej jest podobny do powyższego, ale biorąc pod uwagę specyficzne ograniczenia. Różnica ta jest szczególnie istotna dla non-znormalizowanych problemów, gdzie powyższa definicja będzie uwzględniać wszystkie ograniczenia między dwoma zmiennymi, gdy weźmie się pod uwagę tylko ten konkretny jeden.

Image
Arc konsystencja egzekwowane poprzez usunięcie 1 jako wartość x2. W rezultacie, x3 nie jest już zgodna z łuku x2 x3 = 2, ponieważ nie odpowiada wartości dla x2.

Jeśli zmienna nie jest łuk zgodny z innym, to może być wykonane tak, usuwając niektóre wartości od swojej kategorii. Jest to forma rozmnażania ograniczenie, które wymusza spójność łuku: usuwa z domeny zmiennej, każda wartość, która nie odpowiada wartości drugiej zmiennej. Transformacja ta utrzymuje rozwiązania problemu, ponieważ wartości usunięte w żaden roztworu tak.

Ograniczenie propagacji może sprawić, że cały problem łuk zgodny powtarzając to usunięcie wszystkich par zmiennych. Ten proces może trzeba rozważyć daną parę zmiennych więcej niż jeden raz. Rzeczywiście, usuwając wartości z domeny zmiennej mogą powodować inne zmienne stać już łuk z nim zgodne. Na przykład, jeśli jest zgodna z łuku , ale algorytm zmniejsza domenę , konsystencja łuk ze nie wytrzymuje dłużej i musi być ponownie wykonane.

Uproszczony algorytm będzie cykl ponad par zmiennych, wymuszając Arc-spójności, powtarzając cykl, dopóki nie ma domeny zmienić dla całego cyklu. Algorytm AC-3 poprawia ciągu tego algorytmu ignorując ograniczenia, które nie zostały zmodyfikowane od czasu ich ostatniej analizy. W szczególności, to działa na zbiorze ograniczeń, które początkowo zawiera wszystkie z nich; na każdym kroku, że ma ograniczenia i wymusza Arc-spójności; jeżeli operacja ta może być wytwarzana naruszenie spójności łukiem nad inną przymusu, umieszcza go w zbiorze ograniczeń analizować. W ten sposób, po łuku konsystencja jest wymuszane na ograniczenie, ograniczenie to nie jest uważane znowu chyba domena jednego z jego zmiennych ulega zmianie.

konsystencja ścieżka

Image
x1 i x2 nie są zgodne ze ścieżką-x3. Mogą być wykonane ścieżki spójnej usuwając niebieskie wartości z R12.

Konsystencja jest właściwością ścieżka podobna do łuku konsystencję, ale uważa par zmiennych zamiast tylko jednego. Para zmiennych jest ścieżka spójne z trzecią zmienną, jeśli każda spójna ocena pary może zostać przedłużony do innej zmiennej w taki sposób, że wszystkie binarne ograniczenia są spełnione. Formalnie i są zgodne ze ścieżką , jeśli dla każdej pary wartości spełniającym binarne ograniczenie pomiędzy i istnieje wartość w dziedzinie takie, że i zaspokojenia wiązanie między i oraz między i , odpowiednio.

Forma od ograniczeń propagacji wymusza konsystencję ścieżki działa usuwając pewne zadowalające przypisanie z ograniczeń. Rzeczywiście, konsystencja ścieżka może być egzekwowane przez usunięcie z binarnego przymusu wszystkie oceny, które nie może być przedłużony do innej zmiennej. Jeśli chodzi o konsystencji łuku, to usunięcie może trzeba rozważyć ograniczenie binarną więcej niż jeden raz. Jeśli chodzi o konsystencji łuku otrzymaną Problem ten ma te same roztwory pierwotnego, gdyż wartości są usunięte bez rozwiązania.

Image
Dwa zmienne w nie ograniczające mogą być uważane za ograniczenie związane wirtualnego umożliwiający ewentualne pary wartości reprezentowanej przez niebieskie krawędzie na tym rysunku.
Image
Egzekwowania konsystencji ścieżka x1 i x2, x3 usuwa się z krawędzią na górze. Wartości x1 i x2 nie są już wolny, ale związanych z nowym faktycznego przymusu.

Forma przymusu propagacji który wymusza zgodność ścieżki mogą wprowadzać nowych ograniczeń. Gdy dwie zmienne nie są związane przez binarne ograniczeń, są one praktycznie związane przez ograniczenie umożliwiający dowolną parę wartości. Jednakże, niektóre pary wartości może zostać usunięta pod przymusem propagacji. Powstały ograniczenie nie jest już spełniony przez wszystkich par wartości. Dlatego też nie jest wirtualny, trywialny ograniczenia.

Nazwa „konsystencja ścieżka” pochodzi od pierwotnej definicji, w którym wzięło udział parę zmiennych oraz ścieżkę między nimi, zamiast pary i jedną zmienną. Choć obie definicje są różne dla jednej pary zmiennych, są równoważne w odniesieniu do całego problemu.

uogólnienia

Łuk i konsystencja ścieżka może być uogólnione na non-binarnych ograniczeń wykorzystujących krotki zmiennych zamiast tylko jednego lub pary. Krotką zmiennych jest -consistent z innej zmiennej, jeśli każdy spójna ocena zmiennych może być przedłużony o wartości innej zmiennej, przy jednoczesnym zachowaniu spójności. Definicja ta obejmuje całość problemów w oczywisty sposób. Silne -consistency jest -consistency dla wszystkich .

Szczególny przypadek 2-konsystencji zbiega się z konsystencji łuku (wszystkie problemy są traktowane węzła konsekwentny w tym artykule). Z drugiej strony, 3-konsystencja pokrywa się ze konsystencji ścieżki tylko wtedy, gdy wszystkie warunki są binarne, ponieważ ścieżka konsystencja nie powoduje ograniczeń trójskładnikowych podczas 3-konsystencja robi.

Innym sposobem uogólniając konsystencję łuku jest hiper-arc konsystencji lub uogólnione konsystencja łuk , który wymaga Rozszerzalność pojedynczej zmiennej w celu zaspokojenia ograniczenie. Mianowicie, zmienna jest hiper-łuk zgodny z przymusu czy każda wartość zmiennej może zostać przedłużony do innych zmiennych ograniczeń w taki sposób, ograniczenie jest spełnione.

Spójność i spełnialności

Image
Ten przypadek jest łuk spójne i nie zawiera pusty domenę, ale nie ma rozwiązania. Niebieskie linie wskazują zadania wymuszonych przez wybór x1 = 1.

Ograniczenie propagacji (egzekwowania postać lokalnej konsystencji) można wytwarzać puste domeny lub unsatisfiable ograniczenie. W tym przypadku problem nie ma rozwiązania. Odwrotna nie jest prawdą ogólnie: niespójne instancji mogą być zgodne lub łuk ścieżka zgodna natomiast nie mając pustą domenę lub unsatisfiable ograniczenie.

Istotnie, miejscowy konsystencja jest tylko w stosunku do konsystencji grup zmiennych. Na przykład, konsystencja gwarantuje, że każdy łuk spójna ocena zmiennej może być konsekwentnie przedłużony do innej zmiennej. Jednak, gdy pojedyncza wartość zmiennej zostaje przedłużony do dwóch innych zmiennych, nie ma gwarancji, że te dwie wartości są ze sobą spójne. Na przykład, może być zgodne z iz , ale te dwie oceny nie mogą być ze sobą spójne.

Jednak ograniczenie propagacji mogą być wykorzystane do udowodnienia spełnialności w niektórych przypadkach. Zestaw ograniczeń binarnych czyli łuk spójna i ma pustą domeny mogą być niezgodne tylko wtedy, gdy sieć ograniczeń zawiera cykli. Rzeczywiście, jeśli ograniczenia są binarne i tworzą acykliczny graf, wartości zawsze mogą być propagowane w całej ograniczeń: dla każdej wartości zmiennej, wszystkie zmienne ograniczenie z nim mają wartość spełniającą to ograniczenie. W rezultacie rozwiązanie można znaleźć iteracyjnie wyborze zmiennej obsadzony i rekurencyjnie propagowanie całej ograniczeń. Algorytm ten nie próbuje przypisać wartość do zmiennej, która jest już przypisany, jako że oznaczałoby istnienie cykli w sieci ograniczeń.

Podobny warunek odnosi się do spójności ścieżki. Szczególne przypadki, w których spełnialności można ustalić poprzez egzekwowanie łuku konsekwencja i spójność ścieżki są następujące.

  1. egzekwowanie zgodności łuku ustanawia spełnialności problemów wykonanych z ograniczeniami binarnych bez żadnych cykli (a drzewa ograniczeń binarne);
  2. egzekwowania konsystencji ścieżkę ustala spełnialności dla ograniczenia binarnych (ewentualnie z cykli) z domenami binarnych;
  3. egzekwowanie silną spójność ustanawia spełnialności problemów zawierających zmienne.

przypadki szczególne

Niektóre definicje lub wyniki o względnej spójności trzymać tylko w szczególnych przypadkach.

Kiedy domeny składa się z liczb , oprawiony konsystencja może być zdefiniowana. Ta forma spójności opiera się na spójności skrajnymi wartościami domen, czyli minimalne i maksymalne wartości zmiennej można podjąć.

Gdy ograniczenia są algebraiczne lub logiczna spójność łuk jest równoznaczne z dodaniem nowego ograniczenia lub składniowo modyfikacji starego, a to może być wykonywane przez odpowiednio składających ograniczeń.

wyspecjalizowane ograniczenia

Niektóre rodzaje ograniczeń są powszechnie stosowane. Na przykład, że pewne ograniczenia są różne zmienne są często używane. Efektywne wyspecjalizowane algorytmy egzekwowania spójność łuku na takich ograniczeń istnieje.

Ograniczenie egzekwowania szereg zmiennych być inna jest zwykle napisane lub . To ograniczenie jest równoznaczne z brakiem równości wszystkich par różnych zmiennych, to znaczy dla każdego . Gdy domena zmienna jest zredukowana do jednej wartości, wartość ta może zostać usunięty ze wszystkich innych domen pod przymusem propagacji przy egzekwowaniu spójności łuku. Zastosowanie specjalistycznego ograniczeń pozwala na właściwości, które nie posiadają indywidualnych disequalities binarnych eksploatacji. alldifferent([X1,...,Xn])

Pierwszy obiekt jest, że całkowita liczba elementów w domenach wszystkich zmiennych musi być co najmniej liczba zmiennych. Dokładniej, po konsystencja łuk jest egzekwowane, liczba zmiennych nieprzypisanych nie może przekraczać liczby wartości w związku z ich domen. W przeciwnym razie, ograniczenie nie może być spełniony. Stan ten może być łatwo sprawdzone na ograniczenia w alldifferentformie, ale nie odpowiada łuk spójność sieci disequalities. Drugą właściwością pojedynczym alldifferentograniczeniem jest to, że konsystencja hiper-łuk może być skutecznie sprawdzony przy użyciu dopasowania dwustronnego algorytmu. W szczególności wykres jest zbudowany ze zmiennych i wartości, jak dwóch grup węzłów, a wyspecjalizowanym algorytm dopasowywania wykres dwustronny prowadzony jest na to, aby sprawdzić istnienie takiego dopasowania.

Inny rodzaj przymusu, który jest powszechnie stosowany jest cumulativejeden. Został on wprowadzony do problemów planowania i rozmieszczenia. Jako przykład, cumulative([S1,...,Sm], [D1,...,Dm], [R1,...,Rm], L)może być stosowany do sformalizowania stan, w którym występują mdziałania, każdy z rozpoczęciem meczu si, czas trwania dii stosując ilość rizasobu. Ograniczenie stanowi, że łączna kwota środków dostępnych jest L. Specjalistycznych technik rozmnażania ograniczenie skumulowanych ograniczeń istnieje; Różne techniki są stosowane w zależności od zmiennej domeny są już zmniejszona do jednej wartości.

Trzeci specjalizuje przymus, który jest używany w więzów programowania logicznego jest elementjeden. W więzów programowania logicznego, listy są dopuszczone jako wartości zmiennych. Ograniczenie element(I, L, X)jest spełniony, jeżeli Lznajduje się lista i Xjest I-ty element tej listy. Wyspecjalizowane zasady propagacji ograniczeniem dla tych ograniczeń istnieją. Jako przykład, La Izmniejsza się z domeną jednowartościowym, unikalną wartość Xmożna ustalić. Mówiąc bardziej ogólnie, niemożliwych wartości Xmożna wywnioskować z domeny i vice versa.

Directional konsystencja

Directional konsystencja jest wariant z łuku, ścieżki i -consistency dostosowaną do używanego przez algorytm, który przypisuje wartości do zmiennych następujące danego zlecenia zmiennych. Są one podobne do ich odpowiedników bezkierunkowych, ale wymagają jedynie, że konsekwentna przypisania niektórych zmiennych może być konsekwentnie przedłużony do innej zmiennej, która jest większa niż ich według kolejności.

Kierunkowy łuk i konsystencja ścieżka

Image
Instancja jest kierunkowo łuk zgodne zgodnie z porządkiem x1 x2 x3 ale nie łuk spójna (nie ograniczenie występuje między X1 i X3, odpowiadających sobie krawędzi pominięto). Każda wartość zmiennej niższego indeksu odpowiada wartości wyższych zmiennych indeksowych. Znaki zapytania wskazać punkty, gdzie rozmawiać nie trzyma.

Jeśli algorytm ocenia zmienne w kolejności , konsystencja jest przydatna tylko gdy to gwarantuje, że wartości zmiennych niższych indeksów są zgodne z wartościami tych wyższego indeksu.

Wybierając wartość zmiennej wartości, które są niezgodne z wszystkich wartości zmiennej nieprzypisane można pominąć. Rzeczywiście, nawet jeśli wartości te są zgodne z aktualną oceną częściowego, algorytm będzie później nie znaleźć spójne wartość dla zmiennej nieprzypisane. Z drugiej strony, egzekwowanie zgodności ze zmiennymi, które są już ocenianych nie jest konieczne: jeśli algorytm wybiera wartość, która jest niezgodna z aktualną oceną częściowego, niespójność jest wykrywany w każdym razie.

Zakładając, że kolejność oceny zmiennych jest , ograniczenie problemu satysfakcja jest kierunkowo łuk zgodny jeśli każda zmienna jest łuk zgodny z żadną inną zmienną takie, że . Directional konsystencja ścieżka jest podobna, ale dwie zmienne muszą być zgodne ze ścieżką tylko wtedy . Silny kierunkowy konsystencja ścieżka oznacza zarówno kierunkową konsystencję ścieżki i kierunkową konsystencję łuku. Podobne definicje można podać do innych form konsystencji.

Ograniczenie propagacji dla spójności łuku i ścieżki

Ograniczenie propagacji egzekwowania kierunkowe iteracje spójności łuk nad zmiennymi od ostatniego do pierwszego, enforcing na każdym kroku konsystencję łuku każdej zmiennej niższym indeksem z nim. Jeśli kolejność zmiennych jest , ten algorytm iteracje nad zmiennymi się ; dla zmiennej , to wymusza łuku spójność każdej zmiennej wskaźnik niższy niż z .

Directional-arc-2.svg Directional-arc-3.svg Directional-arc-4.svg
Instancja, która nie jest zgodna łuk kierunkowe: nie odpowiada żadnej wartości i nie odpowiada żadnej wartości . Nie ma ograniczenia pomiędzy i (odpowiednie krawędzie są pominięte). Egzekwowanie kierunkowe konsystencja łuk zaczyna się i sprawia, że łuk z nim zgodne usuwając wartość . Egzekwowanie kierunkowej zgodności z łukiem przechodzi . Ponieważ został już usunięty, zarówno i są usuwane.

Directional konsystencja ścieżka i silny kierunkowy konsystencja ścieżka może być egzekwowane przez algorytmy podobnej do tej, do konsystencji łukowego. Przetwarzają one zmienne od do ; dla każdej zmiennej dwóch zmiennych z uznaje i konsystencji ścieżki z nich jest egzekwowane. Operacja nie jest wymagane, jeżeli problem nie zawiera żadnego ograniczenia na i lub bez ograniczenia między i . Jednakże, nawet jeśli nie ma między ograniczeniem i , trywialne jeden zakłada. Jeżeli ograniczenie propagacji zmniejsza zbiór satysfakcjonujących przypisań skutecznie utworzyć nowy nietrywialne ograniczenie. Ograniczenie propagacji egzekwowania silną spójność kierunkowa ścieżka jest podobna, ale także wymusza spójność łuku.

Directional spójność i spełnialności

Directional konsystencja gwarantuje, że częściowe rozwiązania spełniające ograniczenie może być konsekwentnie przedłużony do innej zmiennej o wyższym indeksie. Jednakże, nie ma gwarancji, że rozszerzenia do różnych zmiennych są ze sobą spójne. Na przykład, częściowym rozwiązaniem może być konsekwentnie przedłużony do zmiennej lub zmiennych , ale jeszcze te dwa rozszerzenia nie są ze sobą spójne.

Istnieją dwa przypadki, w których tak się nie dzieje, a kierunkowe konsystencja gwarantuje spełnialności jeśli nie domena jest pusta, a nie ograniczeniem jest unsatisfiable.

W pierwszym przypadku jest to, że binarnego problemu więzów z uporządkowania zmiennych sprawia, że zamówione wykres przymusu posiadania szerokości istniejącej 1. Taka kolejność wtedy i tylko wtedy, gdy wykres ograniczeń jest drzewem. Jeżeli tak jest, szerokość wykresu ograniczającą maksymalną liczbę niższe (według kolejności) węzłów, węzeł jest połączony. Directional konsystencja gwarantuje, że każdy łuk zgodny przypisanie do zmiennej może zostać przedłużony do wyższych węzłów, a szerokość 1 gwarancje, że węzeł nie jest przyłączony do więcej niż jednego węzła niższy. W rezultacie, gdy przypisana jest niższa zmienna, jego wartość może zostać przedłużony do każdego konsekwentnie wyższe zmiennej jest ona połączona z. To rozszerzenie nie może później prowadzić do niespójności. Żaden inny niższy zmiennej jest przyłączony do wyższej zmiennej, a wykres szerokością 1.

W rezultacie, jeżeli problem ograniczenia ma szerokość 1 w odniesieniu do zamawiania jego zmiennych (co oznacza, że ​​jej odpowiedni wykres jest drzewo) i problem jest kierunkowo łuk zgodne w stosunku do tej samej kolejności, roztwór (jeśli w ogóle) można znaleźć iteracyjnie przypisywania zmiennych w zależności od zamówienia.

W drugim przypadku, w którym kierunkowe konsystencji gwarantuje spełnialności jeżeli domena nie jest pusty i nie ograniczenie jest unsatisfiable jest binarnych problemów ograniczającego którego wykres został indukowany szerokość 2, stosując silne konsystencję kierunkowe ścieżki. Rzeczywiście, ta forma konsystencji gwarantuje, że każde przyporządkowanie do zmiennej lub parę zmiennych może być rozszerzony do wyżej zmienne, i szerokość 2 zapewnia, że zmienne nie jest przyłączony do drugiej pary dolnych zmiennych.

Powodem, dla którego szerokość jest uważany wywołanej zamiast szerokości jest to, że egzekwowanie kierunkową konsystencję ścieżka może dodać ograniczenia. Rzeczywiście, jeśli dwie zmienne nie są w tym samym ograniczenia, ale są w ograniczeniu z wyższym zmiennej, niektóre pary ich wartości mogą naruszać spójność ścieżki. Usuwanie takich par tworzy nowe ograniczenie. W wyniku propagacji ograniczenie może spowodować problemy, którego wykres ma więcej krawędzi niż oryginalny. Jednakże wszystkie te krawędzie muszą indukowanego wykres, jak wszystkie są pomiędzy dwoma rodzice tego samego węzła. Szerokość 2 gwarantuje, że każdy zgodny oceny cząstkowe może zostać przedłużony do rozwiązania, ale ta szerokość jest w stosunku do generowanego wykresu. W rezultacie wywołane jest szerokość 2 wymaga silnego konsystencji kierunkowe toru, aby zapewnić istnienie rozwiązań.

Kierunkowe I-konsystencja

Image
Niebieskie linie wskazują, że nie ma ograniczenia pomiędzy X3 i X4, tak, że każda para wartości jest dozwolone. W tych obrazów, brak krawędzi między dwiema zmiennymi pośrednio wskazuje na brak ograniczeń. Problem ten ma szerokość 2.

Directional -consistency jest gwarancja, że każdy zgodny przypisanie do zmiennych może być konsekwentnie przedłużony do innej zmiennej, która jest wyższa w zamówieniu. Silne kierunkowe -consistency jest określony w podobny sposób, ale wszystkie grupy na wielu zmiennych są brane pod uwagę. Jeśli problem jest silnie kierunkowo -consistent i ma szerokość mniejszą niż i ma pustą domenę lub unsatisfiable ograniczenie, ma rozwiązania.

Każdy problem można silnie kierunkowo -consistent, ale operacja ta może zwiększyć szerokość jej odpowiednimi wykresami. Procedura propagacji ograniczenie wymusza kierunkową konsystencja jest podobna do tej stosowanej dla kierunkowego konsystencji łuku toru i konsystencji. Zmienne są uważane z kolei od ostatniego do pierwszego zgodnie z zamówieniem. Dla zmiennej , algorytm uważa każdą grupę zmiennych, które mają wskaźnik niższy niż i są w ograniczeniu z . Spójność z tych zmiennych jest sprawdzana i ewentualnie egzekwowane poprzez usunięcie satysfakcjonujących zadań z przymusu wśród wszystkich tych zmiennych (jeśli w ogóle, lub utworzenie nowego inaczej).

Image
Wymuszanie spójności na x5 usuwa czerwoną linię, tworząc w ten sposób nową nietrywialne wiązanie pomiędzy X3 i X4. W efekcie ma x4 x3 jako nowego rodzica, oprócz x1 i x2. Zmiana ta zwiększa szerokość do 3.

Procedura ta generuje silnie kierunkowy -consistent przypadku. Jednakże, może również dodawać nowe ograniczenia do instancji. W efekcie, nawet jeśli szerokość pierwotnej problemu jest szerokość powstałej przykład może być większa. Jeśli jest to przypadek, kierunkowe silny konsystencja nie oznacza spełnialności nawet jeśli nie domena jest pusta, a nie ograniczeniem jest unsatisfiable.

Jednak ograniczenie propagacji ograniczeń dodaje tylko do zmiennych, które są niższe niż to, które jest obecnie rozważa. W rezultacie, nie ma ograniczenia na zmiennej zmienione lub dodane, gdy algorytm rozpatrywane tej zmiennej. Zamiast rozważa stałą , można zmodyfikować go do liczby rodziców każdego badanego zmiennej (rodzice zmiennej są zmienne indeksu niższej niż zmiennej i że są w ograniczeniu ze zmienną). Odpowiada rozważeniu wszystkich rodziców danej zmiennych na każdym kroku. Innymi słowy, dla każdej zmiennej od ostatniego do pierwszego, wszystkie jej rodzice są zawarte w nowym przymusu, który ogranicza ich wartości do tych, które są zgodne z . Ponieważ algorytm ten może być postrzegany jako modyfikacja poprzedniego o wartości , która jest zmieniana na liczbę rodziców każdego węzła, nazywa adaptacyjne konsystencja .

Algorytm narzuca silnie kierunkowy -consistency z równą indukowanego szerokości problemu. Otrzymany przykład jest spe wtedy i tylko wtedy, gdy nie jest domeną lub ograniczenie jest pusta. Jeśli tak jest, to rozwiązanie można łatwo znaleźć iteracyjnie przez ustawienie zmiennej obsadzony na dowolną wartość, a propagowanie tej częściowej ewaluacji do innych zmiennych. Algorytm ten nie zawsze jest wielomian w czasie, jak liczba ograniczeń wprowadzonych przez wymuszenie silny kierunkowy spójności może powodować gwałtowny wzrost wielkości. Problemem jest jednak rozwiązywalne w czasie wielomianowym , czy egzekwowanie silny kierunkowy konsystencja nie superpolynomially powiększyć instancji. W rezultacie, jeśli to przykład indukowała szerokość ograniczony stałym, to może być rozwiązane w czasie wielomianowym.

eliminacja wiadro

Łyżka eliminacja jest algorytmem spełnialności. To może być zdefiniowana jako przeformułowania adaptacyjnego konsystencji. Jego definicje stosuje wiadra, które są pojemniki do ograniczeń, każda zmienna z którym powiązany jest wiadro. Ograniczenie zawsze należy do wiadra z najwyższym zmiennej.

Algorytm eliminacji wiadro przebiega od najwyższego do najniższego zmiennej z kolei. Na każdym kroku, ograniczenia w wiadrach tej zmiennej są uznawane. Z definicji, te ograniczenia dotyczyć tylko zmienne, które są niższe niż . Algorytm modyfikuje ograniczenie pomiędzy tymi niższymi zmiennych (jeśli istnieje, w przeciwnym razie tworzy nową). W szczególności, to wymusza ich wartości, aby być wysuwana na stale z ograniczeniami w wiadrze . To nowe ograniczenia, jeśli w ogóle, jest następnie umieszczany w odpowiednim segmencie. Ponieważ to ograniczenie dotyczy wyłącznie zmienne, które są niższe niż , jest on dodawany do wiadra zmiennej, która jest niższa niż .

Algorytm ten jest równoważny do egzekwowania adaptacyjne konsystencję. Ponieważ oboje egzekwować zgodność zmiennej ze wszystkimi jego rodziców, a ponieważ żadne nowe ograniczenia dodaje się po zmienna jest uważane, co powoduje, że jest to przykład można rozwiązać bez nawrotów .

Ponieważ wykres przykład, że produkt jest subgraph indukowanego wykres, gdy wywołane szerokość jest ograniczona przez stałą generowanego przykład ma wielkość wielomian wielkości oryginalnego przykładu. W rezultacie, jeśli wywołane na przykład szerokość jest ograniczona przez stałą Rozwiązanie to może być wykonane w czasie wielomianowym przez dwa algorytmy.

relacyjny konsystencja

Podczas gdy poprzednie definicje spójności są o konsystencji zadań, relacyjny konsystencja obejmuje satysfakcję danego ograniczenia lub ustawić tylko z ograniczeniami. Dokładniej, relacyjny konsystencja powoduje, że każdy zgodny przydział częściowa może zostać rozszerzony w taki sposób, że dana ograniczenie lub zestaw ograniczeń jest spełniony. Formalnie ograniczenie zmiennych jest relacyjna łukowo spójne z jednym z jego zmiennych jeśli każdy zgodny przydział do może zostać rozszerzona na w taki sposób jest spełniony. Różnica między „zwykłym” konsekwencję i spójność relacyjnej łuku jest to, że ta ostatnia wymaga jedynie rozszerzony zadanie do spełnienia określonego ograniczenia, podczas gdy były wymaga, aby zaspokoić wszystkie istotne ograniczenia.

Image
(Regular) i-konsystencja: jeśli ocena jest zgodna, może zostać przedłużony do innej zmiennej w taki sposób wszystkie istotne ograniczenia są spełnione.
Image
Relacyjny konsystencja łuku: jeżeli z oceny zmiennych ograniczenie lecz jedno jest spójne, to zawsze może zostać przedłużony do tej zmiennej w taki sposób, ograniczenie jest spełnione. Cyjan krawędzie stanowią ograniczenia, które nie muszą być spełnione przez rozszerzenie.

Definicja ta może zostać rozszerzona na więcej niż jednym przymusu i więcej niż jednej zmiennej. W szczególności ścieżka relacyjny konsystencja jest podobna do relacyjnej łukiem konsystencji, ale dwa ograniczenia są stosowane w miejsce jednego. Dwa ograniczenia są relacyjne ścieżka zgodna ze zmienną jeśli każdy zgodny przypisanie do wszystkich swoich zmiennych ale uważany za jeden może zostać rozszerzony w taki sposób, że dwa ograniczenia są spełnione.

Przez ponad dwa ograniczenia, relacyjny -consistency jest zdefiniowana. Relacyjny -consistency obejmuje szereg ograniczeń i zmienną, która jest w zakresie wszystkich tych ograniczeń. W szczególności, te ograniczenia są relacyjne -consistent ze zmienną jeśli każdy zgodny przypisanie do wszystkich innych zmiennych, które są w ich zakres może być rozszerzony do zmiennej w taki sposób, te ograniczenia są spełnione. Problemem jest -relational spójne, jeśli każdy zestaw ograniczeń jest relacyjna -consistent z każdej zmiennej, która jest we wszystkich swoich zakresów. Silne relacyjny konsystencja jest zdefiniowany jak powyżej: jest to właściwość bycia relacyjny -consistent dla każdego .

Relacyjny konsystencja może być również zdefiniowane dla większej liczby zmiennych, zamiast jednego. Zestaw ograniczeń jest relacyjna -consistent jeśli każdy zgodny przydział do podzbioru swoich zmiennych może być przedłużony do oceny do wszystkich zmiennych, które spełnia wszystkie ograniczenia. Definicja ta nie rozciąga się dokładnie z powyższym, ponieważ zmienne, do których oceny mają być wysuwana niekoniecznie we wszystkich zakresach zaangażowanych ograniczeń.

Jeśli kolejność zmiennych podano, relacyjny konsystencja może być ograniczone do przypadków, gdy zmienne (e) ocena powinna być rozszerzalna do naśladowania innych zmiennych w kolejności. Ten zmodyfikowany stan nazywany jest kierunkowy relacyjny konsystencja.

Relacyjny spójność i spełnialności

Ograniczenie problemem satysfakcja może być relationally spójne, nie ma pustego domenę lub unsatisfiable ograniczenie, a jednak być unsatisfiable. Istnieje jednak kilka przypadków, w których nie jest to możliwe.

W pierwszym przypadku jest to, że silnie relacyjnej -consistent problemu, gdy domeny zawierają w większości elementów. W tym przypadku zgodna ocena zmiennych zawsze można rozszerzyć do pojedynczego innej zmiennej. Jeśli jest taka ocena i jest zmienna, są tylko możliwe wartości zmiennej można podjąć. Jeśli wszystkie te wartości są sprzeczne z oceną, istnieje (nie koniecznie unikatowy) ograniczenia, które są łamane przez oceny i jedno z jego możliwych wartości. W rezultacie, ocena nie może być przedłużony, aby zaspokoić wszystkie te -lub mniej ograniczeń, łamiąc stan silnego relacyjnej -consistency.

Drugi przypadek dotyczy miary ograniczeń, a nie domen. Ograniczenie to -tight jeśli każda ocena wszystkich jego zmiennych, ale można być przedłużony do spełnienia ograniczenia albo przez wszystkich możliwych wartości innej zmiennej lub co najwyżej jej wartości. Problem posiadające -tight ograniczenia są spełnialna wtedy i tylko wtedy, gdy są mocno relationally -consistent.

Image
Wiersz wypukła matryca: W 1 jest w każdym rzędzie są ciągłe (nie 0 między nimi).

Trzecim przypadkiem jest ograniczeń dwuskładnikowych, które mogą być reprezentowane przez rząd wypukłych matryc. Binarna Ograniczenie może być przedstawiony za pomocą dwuwymiarowego matrycy , gdzie oznacza 0 lub 1, zależnie od tego, czy -tym wartości dziedzinie i -tej wartości dziedziny spełnić ograniczenie. Wiersz tej macierzy jest wypukły, gdy 1-on zawiera kolejno po sobie (formalnie jeżeli dwa elementy 1, wszystkie elementy, są następujące: 1, a). Matryca jest rzędu wypukły, jeżeli wszystkie jej rzędów są wypukłe.

Image
Każda matryca oznacza wiązanie między x I i x k +1 . Jeśli o 1 ... k są wartościami dla x 1 ... x k , wiersze o 1 ... k w każdej matrycy powiedzieć dozwolonych wartości dla x k +1 . Row-wypukła-ności i silny konsystencja relacyjny ścieżka sugerować istnienie spójnej wartości k +1 dla x k +1 .

Stan, który powoduje silne konsystencję relacyjną ścieżka odpowiada spełnialności jest ograniczenie problemów satysfakcji, dla których istnieje kolejność zmiennych, które sprawia, że wszystkie ograniczenia być reprezentowane przez rząd wypukłych matryc. Wynik ten opiera się na fakcie, że zestaw wierszy wypukłych mających wspólny element parami mają także wspólny globalnie element. Biorąc pod uwagę ocenę nad zmiennymi, dozwolone wartości dla -tej jednym podano wybierając kilka wierszy z pewnymi ograniczeniami. W szczególności, dla każdej zmiennej wśród nich, wiersz w stosunku do jego wartości w matrycy reprezentującą ograniczenia odnoszące się go z jednej przedstawia dozwolone wartości ostatniego. Ponieważ te row są wypukłe i mają wspólny element parami z powodu konsystencji ścieżki, mają też wspólny wspólny element, który reprezentuje wartość ostatniej zmiennej, która jest spójna z innymi.

Korzysta z lokalnym konsystencji

Wszystkie formy lokalnego konsystencji mogą być egzekwowane przez więzów propagacji, która może zmniejszyć domen zmiennych oraz zestawy zadań spełniających ograniczenie i mogą wprowadzać nowych ograniczeń. Ilekroć ograniczenie propagacji tworzy pusty domenę lub unsatisfiable ograniczenia, oryginalny problemem jest unsatisfiable. Dlatego wszelkie formy lokalnej spójności może być stosowany jako przybliżeń spełnialności. Dokładniej, można je stosować jako niekompletne algorytmów unsatisfiability, ponieważ mogą one okazać się, że problem jest unsatisfiable, ale są na ogół w stanie udowodnić, że problem jest spe. Takie przybliżone algorytmy mogą być wykorzystane przez algorytmy wyszukiwania ( backtracking , backjumping , Local Search , itd.), Jak heurystyki za mówienie czy częściowym rozwiązaniem może być przedłużony, aby zaspokoić wszystkie ograniczenia bez dalszego analizowania.

Nawet jeśli ograniczenie propagacji nie wywołuje pusty domenę lub unsatisfiable ograniczenie, może to jednak ograniczyć domen lub wzmocnienia ograniczeń. Jeśli jest to przypadku, przestrzeń poszukiwań problemu jest zmniejszona, zmniejszając w ten sposób ilość poszukiwaniu potrzebnych do rozwiązania problemu.

Lokalna konsystencja dowodzi spełnialności w niektórych ograniczonych przypadkach (patrz złożoności przymusu satysfakcja # Ograniczeń ). Dzieje się tak z jakiegoś szczególnego rodzaju problemy i / lub dla niektórych rodzajów lokalnej konsystencji. Na przykład, na łuku spójność egzekwowania binarnych problemów alifatycznych pozwala na mówienie, czy problem jest spe. Egzekwowania silne kierunkową -consistency pozwala mówi spełnialności problemów, które zostały wywołane szerokości według tej samej kolejności. Adaptacyjne kierunkowe konsystencja umożliwia mówienie spełnialności z dowolnego problemu.

Zobacz też

Linki zewnętrzne

Referencje

  • Lecoutre Christophe (2009). Ograniczające Sieci: Techniki i algorytmy . ISTE / Wiley. ISBN  978-1-84821-106-3
  • Dechter, Rina (2003). Ograniczenie przetwarzania . Morgan Kaufmann.ISBN  1-55860-890-7
  • Apt, Krzysztof (2003). Zasady programowania więzów . Cambridge University Press.ISBN  0-521-82583-0
  • Marriott, Kim; Peter J. Stuckey (1998). Programowanie z ograniczeniami: Wprowadzenie . MIT Press.ISBN  0-262-13341-5