Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Intervalovy solver nelinearnych podmienok
Elif Garajova
Intervalove metody04.12.2013
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Aproximacia mnoziny riesenıProblem splnenia obmedzujucich podmienok
Riesenie sustavy nelinearnych nerovnıc
Prıklad
Vyrieste nasledujucu sustavu nerovnıc:
x2 + y 2 ≤ 16
x2 + y 2 ≥ 9
Ako najst’ mnozinu riesenı sustavy nerovnıc?
Ako zarucit’, ze vysledok bude obsahovat’ vsetky riesenia?
Ako vyslednu mnozinu popısat’?
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Aproximacia mnoziny riesenıProblem splnenia obmedzujucich podmienok
Intervalove boxy
Obr.: Presne riesenie
−4 −3 −2 −1 0 1 2 3 4
−4
−3
−2
−1
0
1
2
3
4
Obr.: Aproximacia intervalovymi boxmi
Definıcia
Realny intervalovy vektor alebo box je podmnozina Rn definovanaako kartezsky sucin n uzavretych realnych intervalov.
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Aproximacia mnoziny riesenıProblem splnenia obmedzujucich podmienok
Formalizacia: Problem splnenia obmedzujucich podmienok
Definıcia
Obmedzujuca podmienka je nelinearna rovnica alebo nerovnicaf (x1, . . . , xn) ◦ 0, kde ◦ ∈ {=,≤,≥} a f : Rn → R.Problem splnenia obmedzujucich podmienok (CSP) je trojica(X ,D,C ), kde:
X je mnozina premennych,
D je mnozina hodnot, ktore mozu premenne nadobudat’
(predp. intervaly),
C je mnozina obmedzujucich podmienok.
Ohodnotenie premennych nazveme konzistentne vzhl’adom kdanemu obmedzeniu c ∈ C , ak splna c . Riesenım nazvememnozinu vsetkych ohodnotenı, ktore su konzistentne vzhl’adom kuvsetkym obmedzujucim podmienkam.
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Set Inverter via Interval AnalysisMoznosti vylepsenia
Od problemu k algoritmu. . .
Prıklad
x2 + y 2 ≤ 16
x2 + y 2 ≥ 9x2 + y 2 ∈ [9, 16]
Najdite vzor mnoziny [9, 16] pri zobrazenı f (x , y) = x2 + y 2.
Riesenie
zvol’me pociatocny box = definicne obory premennych
postupne vytvarame tri subory boxov:
boxy, ktore su podmnozinou mnoziny riesenıboxy, v ktorych sa ziadne riesenie nenachadzaboxy, ktore su uz mensie, nez je pozadovana presnost’
ak box nevieme zaradit’, rozdelıme ho a postup opakujeme
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Set Inverter via Interval AnalysisMoznosti vylepsenia
Set Inverter via Interval Analysis
1 function SIVIA(f, Y, [x ], ε)2 S := ∅;N := ∅;B := ∅3 Stack.push([x ])4 while (Stack 6= ∅) do5 [x ] := Stack.pop()6 if f ([x ]) ∩ Y = ∅ then7 N := N ∪ {[x ]}8 else if f ([x ]) ⊆ Y then9 S := S ∪ {[x ]}
10 else if width([x ]) < ε then11 B := B ∪ {[x ]}12 else13 {[lx ], [rx ]} := dividebox([x ])14 Stack.push([lx ]); Stack.push([rx ])15 end if16 end while17 return (S ,N,B)18 end function
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Set Inverter via Interval AnalysisMoznosti vylepsenia
Presnost’ vs. cas
−4 −3 −2 −1 0 1 2 3 4
−4
−3
−2
−1
0
1
2
3
4
ε = 1.0cas: 0.952 s
−4 −3 −2 −1 0 1 2 3 4
−4
−3
−2
−1
0
1
2
3
4
ε = 0.5cas: 2.224 s
−4 −3 −2 −1 0 1 2 3 4
−4
−3
−2
−1
0
1
2
3
4
ε = 0.125cas: 9.966 s
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Set Inverter via Interval AnalysisMoznosti vylepsenia
Vylepsenie algoritmu SIVIA
Optimalny pocet castı pre delenie boxu
Strategie pre vyber strany na delenie
longest first,round robin,. . .
Vektorizacia algoritmu (Matlab)
Spajanie vytvorenych boxov
Znızenie poctu potrebnych delenı boxu → kontraktory
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Co je kontraktor?
Definıcia
Funkciu C : IRn → IRn nazveme kontraktor pre mnozinu S , ak∀[x] ∈ IRn platı:
C([x]) ⊂ [x]
C([x]) ∩ S = [x] ∩ S
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Vyuzitie kontraktorov
algoritmy zalozene na propagacnych technikach, obecne dvefazy - kontrakcia, propagacia
Kontrakcia: redukcia definicnych oborov premennych nazaklade jednej obmedzujucej podmienky
Propagacia: po skontrahovanı boxu definicnych oborov sazistena redukcia propaguje do ostatnych podmienok
proces sa moze opakovat’, az kym nie je mozne box d’alejzredukovat’
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Rozklad na primitıvne podmienky
Definıcia
Obmedzujucu podmienku nazveme primitıvnou, ak obsahuje jedenoperator (+,−, ·, /) alebo jednu zakladnu funkciu (napr. sin, cos,exp).
Idea: Obmedzujucu podmienku rozlozıme na primitıvnepodmienky, podl’a ktorych redukujeme jednotlive definicneobory.
Dopredna faza: Postupne vyhodnocujeme primitıvnepodmienky, vysledky priradıme ako definicne obory pomocnympremennym.
Spatna faza: Vypocıtame nove hodnoty premennych vobmedzenı na zaklade zıskanych vysledkov.
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Dopredna faza
Prıklad
Obmedzujuca podmienka: x · y − z = 0Pociatocny box: [1, 4]× [1, 4]× [8, 40]
[a1] := [x ] · [y ]
[a2] := [a1]− [z ]
[a2] := [a2] ∩ {0}
[a1] := [1, 4] · [1, 4] = [1, 16]
[a2] := [1, 16]− [8, 40] = [−39, 8]
[a2] := [−39, 8] ∩ [0, 0] = [0, 0]
Pozn.: V prıpade [a2] = ∅ by zadane CSP nemalo riesenie.
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Spatna faza
Prıklad
(pokracovanie)
[a1] := ([a2] + [z ]) ∩ [a1]
[z ] := ([a1]− [a2]) ∩ [z ]
[x ] := ([a1]/[y ]) ∩ [x ]
[y ] := ([a1]/[x ]) ∩ [y ]
[a1] := ([0, 0] + [8, 40]) ∩ [1, 16] = [8, 16]
[z ] := ([8, 16]− [0, 0]) ∩ [8, 40] = [8, 16]
[x ] := ([8, 16]/[1, 4]) ∩ [1, 4] = [2, 4]
[y ] := ([8, 16]/[2, 4]) ∩ [1, 4] = [2, 4]
Povodne vzt’ahy:
[a1] = [x ] · [y ][a2] = [a1]− [z ]
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Strom vyrazu
=
0−
z∗
yx
Prıklad
x · y − z = 0
v uzloch operatory a funkcie
v listoch konstanty apremenne
algoritmus: podobne akoprevod na postfix
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Dopredna faza v strome
=
[0, 0]
0 [0, 0]−
[−39, 8]
z [8, 40]∗
[1, 16]
y [1, 4]x [1, 4]
Prechod stromu
1 nastavıme hodnoty vlistoch
2 hodnotu v rodicovidostaneme z hodnot vsynoch
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Dopredna faza v strome
=
[0, 0]
0 [0, 0]−
[−39, 8]
z [8, 40]∗ [1, 16]
y [1, 4]x [1, 4]
Prechod stromu
1 nastavıme hodnoty vlistoch
2 hodnotu v rodicovidostaneme z hodnot vsynoch
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Dopredna faza v strome
=
[0, 0]
0 [0, 0]− [−39, 8]
z [8, 40]∗ [1, 16]
y [1, 4]x [1, 4]
Prechod stromu
1 nastavıme hodnoty vlistoch
2 hodnotu v rodicovidostaneme z hodnot vsynoch
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Dopredna faza v strome
= [0, 0]
0 [0, 0]− [−39, 8]
z [8, 40]∗ [1, 16]
y [1, 4]x [1, 4]
Prechod stromu
1 nastavıme hodnoty vlistoch
2 hodnotu v rodicovidostaneme z hodnot vsynoch
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Spatna faza v strome
= [0, 0]
0 [0, 0]− [−39, 8]
z [8, 40]∗ [1, 16]
y [1, 4]x [1, 4]
Prechod stromu
1 zacıname v koreni
2 inverzne relacie
3 hodnotu v uzlezıskame pomocourodica, prıp. brata
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Spatna faza v strome
= [0, 0]
0 [0, 0]− [0, 0]
z [8, 40]∗ [1, 16]
y [1, 4]x [1, 4]
Prechod stromu
1 zacıname v koreni
2 inverzne relacie
3 hodnotu v uzlezıskame pomocourodica, prıp. brata
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Spatna faza v strome
= [0, 0]
0 [0, 0]− [0, 0]
z [8, 40]∗ [8, 16]
y [1, 4]x [1, 4]
Prechod stromu
1 zacıname v koreni
2 inverzne relacie
3 hodnotu v uzlezıskame pomocourodica, prıp. brata
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Spatna faza v strome
= [0, 0]
0 [0, 0]− [0, 0]
z [8, 16]∗ [8, 16]
y [1, 4]x [1, 4]
Prechod stromu
1 zacıname v koreni
2 inverzne relacie
3 hodnotu v uzlezıskame pomocourodica, prıp. brata
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Spatna faza v strome
= [0, 0]
0 [0, 0]− [0, 0]
z [8, 16]∗ [8, 16]
y [1, 4]x [2, 4]
Prechod stromu
1 zacıname v koreni
2 inverzne relacie
3 hodnotu v uzlezıskame pomocourodica, prıp. brata
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Spatna faza v strome
= [0, 0]
0 [0, 0]− [0, 0]
z [8, 16]∗ [8, 16]
y [2, 4]x [2, 4]
Prechod stromu
1 zacıname v koreni
2 inverzne relacie
3 hodnotu v uzlezıskame pomocourodica, prıp. brata
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Popis kontraktoru BoxNarrow
bud’ c niektora obmedzujuca podmienka v tvaref (x1, . . . , xn) = 0 (BUNO)
uvazujme intervalovu funkciu jednej premennej fi (xi ), ktorudostaneme dosadenım intervalov (def. oborov) za premennex1, . . . , xi−1 a xi+1, . . . , xn do f
najdeme najpravejsı (r) a najl’avejsı (l) nulovy bod fi naintervale, ktory je definicnym oborom xi
zredukujeme definicny obor xi na [l , r ]
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Hull & Box consistency
Definıcia
Bud’ x vektor n premennych a [x ] definicny obor x .
Hull consistency: Pre kazde obmedzenie c a pre kazdei ∈ {1, . . . , n} je [xi ] intervalovym obalom mnoziny
{xi ∈ [xi ] : ∃x1, . . . ,∃xi−1,∃xi+1, . . . ,∃xn c(x1, . . . , xn)}.
Box consistency: Pre kazde obmedzenie c a pre kazdei ∈ {1, . . . , n} platı intervalove obmedzenie
C ([x1], . . . , [xi−1], xi , [xi+1], . . . , [xn]),C ([x1], . . . , [xi−1], xi , [xi+1], . . . , [xn]).
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Propagacia
1 S := {c1, . . . , cm}2 while (S 6= ∅& [x ] 6= ∅) do3 c := choose(ci ∈ S)4 [x ′] := Revise(c, [x ])5 if [x ′] 6= [x ] then6 S := S ∪ {cj | ∃xk ∈ Var(cj) : [x
′k ] 6= [xk ]}
7 [x ] := [x ′]8 else9 S := S \ {c}
10 end if11 end while
Revise procedura:
Forward-Backward → HC4
BoxNarrow → BC3
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Porovnanie kontraktorov
Prıklad
x2 − x · y = 0, (x , y) ∈ [1, 10]× [4, 50]
Riesenie
Dopredny-spatny kontraktor[0, 0]
[0, 0]
[0, 0][4, 100]
y[4, 50]
x[2, 10]
[4, 100]
x[2, 10]
x ∈ [2, 10] , y ∈ [4, 50]
Riesenie
Kontraktor BoxNarrow
f1(x) = x2 − x · [4, 50]
x ∈ [1, 10]→ x ∈ [4, 10]
f2(y) = [4, 10]2 − [4, 10] · yy ∈ [4, 50]→ y ∈ [4, 25]
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Kontraktor a jeho vyuzitieDopredna a spatna propagaciaAlgoritmus BoxNarrowPorovnanie
Vyuzitie
6body
3 · (b − d) · (B − D) + B + D − 6 · F + 4 = 0
3 · (b − d) · (B + D − 2 · F ) + 5 · (B − D) = 0
3 · (b − d)2 − 6 · (b + d) + 4 · f + 3 = 0
B2 · b3 − 1 = 0
D2 · d3 − 1 = 0
F 2 · f 3 − 1 = 0
Definicny obor: [0, 1× 105]6
robotika, fyzika, optimalizacia, ...
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
Moznosti rozsırenia projektu
linearizacia obmedzujucich podmienok
vylepsenie vyberu obmedzenia pre propagacne techniky
kooperacia kontraktorov
vyuzitie typu funkcie v obmedzenı
polynomy,monotonnost’,. . .
vyuzitie spolocnych podvyrazov
Elif Garajova Intervalovy solver nelinearnych podmienok
Sustavy nelinearnych nerovnıcBranch & Bound algoritmus
Kontraktory a propagaciaDalsı vyvoj
A co vizualizacia. . . ?
Elif Garajova Intervalovy solver nelinearnych podmienok