Difference -map algoritm - Difference-map algorithm
Den skillnaden-kartalgoritmen är en sökalgoritm för allmän villkorstillfredsställelse problem. Det är en meta-algoritm i den meningen att den är byggd från mer grundläggande algoritmer som utför projektioner på begränsningsuppsättningar . Ur ett matematiskt perspektiv är skillnadskartalgoritmen ett dynamiskt system baserat på en kartläggning av det euklidiska utrymmet . Lösningar kodas som fasta punkter i kartläggningen.
Även om den ursprungligen var tänkt som en allmän metod för att lösa fasproblemet , har skillnadskartalgoritmen använts för det booleska tillfredsställelsesproblemet , förutsägelse av proteinstruktur , Ramsey-tal , diofantiska ekvationer och Sudoku , samt sfär- och diskförpackningsproblem . Eftersom dessa applikationer inkluderar NP-kompletta problem är omfattningen av skillnadskartan en ofullständig algoritm . Medan ofullständiga algoritmer effektivt kan verifiera lösningar (när en kandidat hittats) kan de inte bevisa att det inte finns någon lösning.
Skillnadskartalgoritmen är en generalisering av två iterativa metoder : Fienups algoritm för hybridinmatning (HIO) för fashämtning och Douglas-Rachford-algoritmen för konvex optimering . Iterativa metoder har i allmänhet en lång historia inom fashämtning och konvex optimering. Användningen av denna algoritmstil för hårda, icke-konvexa problem är en nyare utveckling.
Algoritm
Problemet som ska lösas måste först formuleras som ett uppsättningskorsningsproblem i det euklidiska rummet: hitta en i korsningen av uppsättningar och . En annan förutsättning är en implementering av projektionerna och att, med tanke på en godtycklig ingångspunkt , returnera en punkt i begränsningsuppsättningen eller som är närmast . En iteration av algoritmen ges av kartläggningen:
Den verkliga parametern ska inte vara lika med 0 men kan ha antingen tecken; optimala värden beror på applikationen och bestäms genom experiment. Som en första gissning rekommenderas valet (eller ) eftersom det minskar antalet projektionsberäkningar per iteration:
En punkt är en fast punkt på kartan exakt när . Eftersom vänster sida är ett element i och RHS är ett element i , innebär jämställdheten att vi har hittat ett gemensamt element i de två begränsningsuppsättningarna. Observera att själva fixpunkten inte behöver tillhöra antingen eller . Uppsättningen av fasta punkter kommer vanligtvis att ha mycket högre dimension än uppsättningen lösningar.
Algoritmens framsteg kan övervakas genom att inspektera normen för skillnaden mellan de två prognoserna:
- .
När detta försvinner har en gemensam punkt för båda begränsningsuppsättningarna hittats och algoritmen kan avslutas.
Exempel: logisk tillfredsställelse
Ofullständiga algoritmer, till exempel stokastisk lokal sökning , används i stor utsträckning för att hitta tillfredsställande sanningstilldelningar till booleska formler. Som ett exempel på att lösa en instans av 2-SAT med skillnadskartalgoritmen, överväg följande formel (~ indikerar INTE):
- ( q 1 eller q 2 ) och (~ q 1 eller q 3 ) och (~ q 2 eller ~ q 3 ) och ( q 1 eller ~ q 2 )
Till var och en av de åtta bokstavarna i denna formel tilldelar vi en verklig variabel i ett åttimensionellt euklidiskt utrymme. Strukturen för 2-SAT-formeln kan återställas när dessa variabler är ordnade i en tabell:
x 11 x 12 ( x 21 ) x 22 ( x 31 ) ( x 32 ) x 41 ( x 42 )
Rader är klausulerna i 2-SAT-formeln och bokstäver som motsvarar samma booleska variabel är ordnade i kolumner, med negation indikerat med parenteser. Till exempel motsvarar de verkliga variablerna x 11 , x 21 och x 41 samma booleska variabel ( q 1 ) eller dess negation, och kallas repliker . Det är bekvämt att associera värdena 1 och -1 med TRUE och FALSE snarare än de traditionella 1 och 0. Med denna konvention har kompatibiliteten mellan replikerna formen av följande linjära ekvationer:
- x 11 = - x 21 = x 41
- x 12 = - x 31 = - x 42
- x 22 = - x 32
Det linjära delrummet där dessa ekvationer uppfylls är ett av begränsningsrummen, säg A , som används av skillnadskartan. För att projicera till denna begränsning ersätter vi varje replika med det signerade replikgenomsnittet eller dess negativa:
- a 1 = ( x 11 - x 21 + x 41 ) / 3
- x 11 → a 1 x 21 → - a 1 x 41 → a 1
Den andra skillnaden-kartbegränsningen gäller raderna i tabellen, klausulerna. I en tillfredsställande tilldelning måste de två variablerna i varje rad tilldelas värdena (1, 1), (1, -1) eller (-1, 1). Motsvarande begränsningsuppsättning, B , är således en uppsättning av 3 4 = 81 poäng. Vid projicering till denna begränsning tillämpas följande operation på varje rad. Först avrundas de två verkliga värdena till 1 eller -1; om resultatet är (-1, -1), ersätts det större av de två ursprungliga värdena med 1. Exempel:
- (-.2, 1.2) → (-1, 1)
- (-.2, -.8) → (1, -1)
Det är en enkel övning att kontrollera att båda beskrivna projektionsoperationer minimerar det euklidiska avståndet mellan in- och utgångsvärden. Dessutom, om algoritmen lyckas hitta en punkt x som ligger i båda tvångsuppsättningarna, vet vi att (i) klausulerna som är associerade med x är alla SANNA , och (ii) tilldelningarna till replikerna överensstämmer med en sanningstilldelning till de ursprungliga booleska variablerna.
För att köra algoritmen genererar man först en initialpunkt x 0 , säg
-0,5 -0,8 (-0,4) -0,6 (0,3) (-0,8) 0,5 (0,1)
Med β = 1 är nästa steg att beräkna P B ( x 0 ):
1 -1 (1) -1 (1) (-1) 1 (1)
Detta följs av 2 P B ( x 0 ) - x 0 ,
2.5 -1,2 (2.4) -1,4 (1.7) (-1,2) 1.5 (1.9)
och projiceras sedan på den andra begränsningen, P A (2 P B ( x 0 ) - x 0 ):
0,53333 -1,6 (-0.53333) -0,1 (1.6) (0,1) 0,53333 (1.6)
Ökning av x 0 med skillnaden mellan de två projektionerna ger den första iterationen av skillnadskartan, D ( x 0 ) = x 1 :
-0,966666 -1,4 (-1.93333) 0,3 (0,9) (0,3) 0,03333 (0,7)
Här är den andra iterationen, D ( x 1 ) = x 2 :
-0,3 -1,4 (-2,6) -0,7 (0,9) (-0,7) 0,7 (0,7)
Detta är en fast punkt: D ( x 2 ) = x 2 . Iteraten är oförändrad eftersom de två prognoserna är överens. Från P B ( x 2 ),
1 -1 (-1) 1 (1) (-1) 1 (1)
vi kan läsa av den tillfredsställande sanningsuppgiften: q 1 = SANT , q 2 = FALSKT , q 3 = SANT .
Kaotisk dynamik
I det enkla 2-SAT-exemplet ovan minskade normen för skillnaden-kartökningen Δ monotont till noll i tre iterationer. Detta kontrasterar beteendet hos Δ när skillnadskartan ges en hård instans av 3-SAT , där den fluktuerar starkt innan upptäckten av den fasta punkten. Som ett dynamiskt system anses skillnadskartan vara kaotisk och att utrymmet som söks är en märklig attraktion .
Fashämtning
Vid fasåterhämtning rekonstrueras en signal eller bild från modulen (absolut värde, storlek) för dess diskreta Fouriertransformation . Till exempel kan källan till moduldata vara Fraunhofer -diffraktionsmönstret som bildas när ett objekt belyses med koherent ljus .
Utsprånget till Fourier-modul begränsningen, säger P A , åstadkommes genom att först beräkna den diskreta Fouriertransformen av signalen eller bilden, rescaling modulerna att komma överens med de data och sedan invers transformering resultatet. Detta är en projektion, i den meningen att det euklidiska avståndet till begränsningen är minimerat, eftersom (i) den diskreta Fouriertransformen, som en enhetlig transformation , bevarar avståndet och (ii) att skala om modulen (utan att ändra fasen) är minsta förändring som inser modulens begränsning.
För att återvinna de okända faserna av Fouriertransformen skillnaden kartan förlitar sig på utsprånget till en annan begränsning, P B . Detta kan ha flera former, eftersom objektet som rekonstrueras kan vara känt för att vara positivt, har ett begränsat stöd , etc. I rekonstruktionen av ytbilden, till exempel, var effekten av projektionen P B att upphäva alla värden utanför en rektangulärt stöd, och också för att upphäva alla negativa värden inom stödet.
externa länkar
- Sudoku Solver - En Sudoku -lösare baserad på Difference Map -algoritm.