Algorytm mapy różnic

Iteracje 0, 100, 200, 300 i 400 w rekonstrukcji mapy różnic obrazu w skali szarości z jego modułu transformacji Fouriera

Algorytm mapy różnic jest algorytmem wyszukiwania ogólnych problemów spełniania ograniczeń . Jest to metaalgorytm w tym sensie, że jest zbudowany z bardziej podstawowych algorytmów, które wykonują projekcje na zbiory ograniczeń . Z matematycznego punktu widzenia algorytm mapy różnicowej jest systemem dynamicznym opartym na mapowaniu przestrzeni euklidesowej . Rozwiązania są kodowane jako stałe punkty odwzorowania.

Chociaż pierwotnie pomyślany jako ogólna metoda rozwiązywania problemu fazowego , algorytm mapy różnicowej został użyty do problemu spełnialności logicznej , przewidywania struktury białek , liczb Ramseya , równań diofantycznych i Sudoku , a także problemów z pakowaniem sfer i dysków . Ponieważ aplikacje te obejmują NP-zupełne , zakres mapy różnic obejmuje algorytm niekompletny. Podczas gdy niekompletne algorytmy mogą skutecznie weryfikować rozwiązania (po znalezieniu kandydata), nie mogą udowodnić, że rozwiązanie nie istnieje.

Algorytm mapy różnicowej jest uogólnieniem dwóch iteracyjnych metod : hybrydowego algorytmu wejścia i wyjścia (HIO) Fienupa do odzyskiwania fazy oraz algorytmu Douglasa-Rachforda do optymalizacji wypukłej . Ogólnie rzecz biorąc, metody iteracyjne mają długą historię w odzyskiwaniu faz i optymalizacji wypukłej. Zastosowanie tego stylu algorytmu do trudnych, niewypukłych problemów jest nowszym osiągnięciem.

Algorytm

Problem do rozwiązania należy najpierw sformułować jako przecięcia zbioru w przestrzeni euklidesowej znajdź na zbiorów i . Innym warunkiem wstępnym jest implementacja rzutów i , które przy dowolnym punkcie wejściowym punkt w zbiorze ograniczeń lub , który jest najbliższy . Jedna iteracja algorytmu jest dana przez mapowanie:

parametr nie powinien być równy 0, ale może mieć dowolny znak optymalne wartości zależą od zastosowania i są ustalane eksperymentalnie. Jako pierwsze przypuszczenie, wybór lub ponieważ zmniejsza liczbę obliczeń projekcji na iterację:

Punkt jest stałym punktem mapy wtedy, gdy . Ponieważ lewa strona jest elementem , RHS jest elementem , równość oznacza, ​​znaleźliśmy wspólny element dla dwóch zestawów Zauważ, że sam punkt stały musi należeć ani do ani . Zbiór punktów stałych będzie zazwyczaj miał znacznie większy wymiar niż zbiór rozwiązań.

Postęp algorytmu można monitorować, sprawdzając normę różnicy dwóch projekcji:

.

Kiedy to zniknie, znaleziono punkt wspólny dla obu zestawów ograniczeń i algorytm można zakończyć.

Przykład: logiczna spełnialność

Algorytmy niekompletne, takie jak stochastyczne przeszukiwanie lokalne , są szeroko stosowane do znajdowania satysfakcjonujących przypisań prawdy do formuł boolowskich. Jako przykład rozwiązania instancji 2-SAT za pomocą algorytmu mapy różnic, rozważ następującą formułę (~ oznacza NIE):

( q 1 lub q 2 ) i (~ q 1 lub q 3 ) i (~ q 2 lub ~ q 3 ) i ( q 1 lub ~ q 2 )

Każdemu z ośmiu literałów w tym wzorze przypisujemy jedną zmienną rzeczywistą w ośmiowymiarowej przestrzeni euklidesowej. Strukturę formuły 2-SAT można odtworzyć, gdy te zmienne zostaną ułożone w tabeli:

x 11 x 12
( x21 ) _ x22 _
( x 31 ) ( x 32 )
x 41 ( x 42 )

Wiersze to klauzule w formule 2-SAT, a literały odpowiadające tej samej zmiennej boolowskiej są ułożone w kolumnach, z negacją wskazaną w nawiasach. Na przykład zmienne rzeczywiste x 11 , x 21 i x 41 odpowiadają tej samej zmiennej boolowskiej ( q 1 ) lub jej negacji i są nazywane replikami . Wygodnie jest powiązać wartości 1 i -1 z PRAWDA i FAŁSZ zamiast tradycyjnych 1 i 0. W tej konwencji zgodność między replikami przyjmuje postać następujących równań liniowych:

x 11 = - x 21 = x 41
x 12 = - x 31 = - x 42
x 22 = - x 32

Podprzestrzeń liniowa, w której te równania są spełnione, jest jedną z przestrzeni ograniczeń, powiedzmy A , używaną przez mapę różnic. Aby odwzorować to ograniczenie, każdą replikę zastępujemy średnią repliki ze znakiem lub jej wartością ujemną:

za 1 = ( x 11 - x 21 + x 41 ) / 3
    x 11 za 1 x 21 → - za 1 x 41 za 1

Drugie ograniczenie mapy różnic dotyczy wierszy tabeli, czyli klauzul. W zadawalającym zadaniu dwóm zmiennym w każdym wierszu należy przypisać wartości (1, 1), (1, -1) lub (-1, 1). Odpowiedni zbiór ograniczeń, B , jest więc zbiorem 3 4 = 81 punktów. Podczas rzutowania na to ograniczenie następująca operacja jest stosowana do każdego wiersza. Najpierw dwie wartości rzeczywiste są zaokrąglane do 1 lub -1; następnie, jeśli wynikiem jest (-1, -1), większa z dwóch pierwotnych wartości jest zastępowana przez 1. Przykłady:

(-.2, 1.2) → (-1, 1)
(-.2, -.8) → (1, -1)

Jest to proste ćwiczenie, aby sprawdzić, czy obie opisane operacje projekcji minimalizują odległość euklidesową między wartościami wejściowymi i wyjściowymi. Co więcej, jeśli algorytmowi uda się znaleźć punkt x , który leży w obu zbiorach ograniczeń, to wiemy, że (i) wszystkie klauzule związane z x PRAWDĄ oraz (ii) przypisania do replik są zgodne z przypisaniem prawdy do oryginalne zmienne boolowskie.

0 Aby uruchomić algorytm, najpierw generuje się punkt początkowy x , powiedzmy

-0,5 -0,8
(-0,4) -0,6
(0,3) (-0,8)
0,5 (0,1)

0 Używając β = 1, następnym krokiem jest obliczenie P B ( x ) :

1 -1
(1) -1
(1) (-1)
1 (1)

00 Po tym następuje 2 P B ( x ) - x ,

2.5 -1,2
(2.4) -1,4
(1,7) (-1,2)
1.5 (1,9)

00 a następnie rzutowane na inne ograniczenie, P A (2 P B ( x ) - x ) :

0,53333 -1,6
(-0,53333) -0,1
(1,6) (0,1)
0,53333 (1,6)

00 Zwiększenie x o różnicę dwóch projekcji daje pierwszą iterację mapy różnic, D ( x ) = x 1 :

-0,96666 -1,4
(-1,93333) 0,3
(0,9) (0,3)
0,03333 (0,7)

Oto druga iteracja, D ( x 1 ) = x 2 :

-0,3 -1,4
(-2,6) -0,7
(0,9) (-0,7)
0,7 (0,7)

To jest punkt stały: D ( x 2 ) = x 2 . Iteracja pozostaje niezmieniona, ponieważ obie projekcje są zgodne. Z P B ( x 2 ),

1 -1
(-1) 1
(1) (-1)
1 (1)

możemy odczytać satysfakcjonujące przypisanie prawdy: q 1 = PRAWDA , q 2 = FAŁSZ , q 3 = PRAWDA .

Chaotyczna dynamika

Szeregi czasowe normy przyrostu mapy różnicowej Δ w trakcie rozwiązywania losowej instancji 3-SAT z 1000 zmiennymi i 4200 klauzulami.

W powyższym prostym przykładzie 2-SAT norma przyrostu mapy różnic Δ spadła monotonicznie do zera w trzech iteracjach. Kontrastuje to z zachowaniem Δ , gdy mapa różnicowa otrzymuje twardą instancję 3-SAT , gdzie silnie się waha przed odkryciem stałego punktu. Uważa się, że jako system dynamiczny mapa różnic jest chaotyczna , a przeszukiwana przestrzeń jest dziwnym atraktorem .

Odzyskiwanie fazy

Moduł transformaty Fouriera (wzór dyfrakcyjny) obrazu w skali szarości pokazany jako rekonstruowany u góry strony.

W odzyskiwaniu fazy sygnał lub obraz jest rekonstruowany z modułu (wartości bezwzględnej, wielkości) jego dyskretnej transformaty Fouriera . Na przykład źródłem danych modułu może być dyfrakcyjny Fraunhofera utworzony, gdy obiekt jest oświetlany spójnym światłem .

Odwzorowanie na ograniczenie modułu Fouriera, powiedzmy PA , jest realizowane przez obliczenie najpierw dyskretnej transformaty Fouriera sygnału lub obrazu, przeskalowanie modułów w celu uzgodnienia z danymi, a następnie odwrotne przekształcenie wyniku . Jest to projekcja w tym sensie, że odległość euklidesowa do ograniczenia jest zminimalizowana, ponieważ (i) dyskretna transformata Fouriera, jako transformacja jednostkowa, zachowuje odległość, oraz (ii) przeskalowanie modułu (bez modyfikacji fazy) jest najmniejsza zmiana, która realizuje ograniczenie modułu.

Aby odzyskać nieznane fazy transformaty Fouriera, mapa różnic opiera się na odwzorowaniu na inne ograniczenie PB . Może to przybierać różne formy, ponieważ rekonstruowany obiekt może być dodatni, mieć ograniczone podparcie itp . Na przykład w rekonstrukcji obrazu powierzchni efektem projekcji P B było unieważnienie wszystkich wartości poza a prostokątnej podpory, a także unieważnić wszystkie wartości ujemne w ramach podpory.

Linki zewnętrzne

Notatki