Skip to content
Snippets Groups Projects
Commit 0420574e authored by Jiří Kalvoda's avatar Jiří Kalvoda
Browse files

prace: Korektury

parent 829e870d
No related branches found
No related tags found
No related merge requests found
...@@ -20,7 +20,6 @@ ft: ...@@ -20,7 +20,6 @@ ft:
V této práci je představen nový algoritmus založený na semidefinitním programování, V této práci je představen nový algoritmus založený na semidefinitním programování,
který dle provedených měření pro náhodné vstupy dosahuje výsledků okolo 0.34-násobku počtu typů aut. který dle provedených měření pro náhodné vstupy dosahuje výsledků okolo 0.34-násobku počtu typů aut.
O algoritmu jsme dokázali, že pro každý vstup vrátí ve střední hodnotě řešení nejhůře o 0.212 násobek počtu typů aut horší než optimum. O algoritmu jsme dokázali, že pro každý vstup vrátí ve střední hodnotě řešení nejhůře o 0.212 násobek počtu typů aut horší než optimum.
Bohužel se nám nepodařilo dokázat žádný netriviální horní odhad na střední hodnotu počtu změn na náhodném vstupu.
keywords: [binární paint shop problém, aproximační algoritmus] keywords: [binární paint shop problém, aproximační algoritmus]
year: 2024 year: 2024
study_programme: Informatika study_programme: Informatika
...@@ -41,15 +40,19 @@ ft: ...@@ -41,15 +40,19 @@ ft:
In this thesis is introduced new algorithm based on semidefinite programming In this thesis is introduced new algorithm based on semidefinite programming
which considered to madden test on random inputs reach solutions near to 0.34 times number of car types. which considered to madden test on random inputs reach solutions near to 0.34 times number of car types.
We proved that for each input this algorithm returns a solution with expected deviation from optimum of at most 0.212 times the number of car types. We proved that for each input this algorithm returns a solution with expected deviation from optimum of at most 0.212 times the number of car types.
We can't prove any nontrivial upper bound on the expected number of color changes on random input.
--- ---
``` {c=cmt} ``` {c=cmt}
Algoritmus na Maximální řez: rozčlenit na věty a podobné Abstract: Co je vstup/výstup + typy nejsou u sebe
Pozicování stránek: nadpisy na konci, float do dalších sekcí Obrázek koule
Opravit tvrzení o skoropotimáľníĺ řešení SDP
Klikaci věci + generování obsahu formátítkem Klikaci věci + generování obsahu formátítkem
Více řezů Více řezů
složitost je n^c pro jaké c? složitost je n^c pro jaké c?
Absolutní číslování ve struktuře
Popisky obrázků
Popisky os
Obsah bez změn velikostí
barevné schéma grafu
font grafů
``` ```
::: {only=html} ::: {only=html}
...@@ -123,7 +126,7 @@ Cíle práce ...@@ -123,7 +126,7 @@ Cíle práce
Naším cílem bude najít co nejlepší algoritmus řešící BPS Naším cílem bude najít co nejlepší algoritmus řešící BPS
a odhadnout u něj střední hodnotu skóre pro náhodný vstup. a odhadnout u něj střední hodnotu skóre pro náhodný vstup.
Dále se pokusíme porovnat již známé algoritmy.
Struktura práce Struktura práce
--------------- ---------------
...@@ -165,7 +168,7 @@ Nakonec označme $\delta_{\alg} = \lim_{n\to\infty} \delta_{\alg}(n) = \lim_{n\t ...@@ -165,7 +168,7 @@ Nakonec označme $\delta_{\alg} = \lim_{n\to\infty} \delta_{\alg}(n) = \lim_{n\t
Protože limita nemusí vždy existovat, zavedeme ještě limes superior a limes inferior: Protože limita nemusí vždy existovat, zavedeme ještě limes superior a limes inferior:
$\delta^+_{\alg} = \limsup_{n\to\infty} \delta_{\alg}(n)$ a $\delta^+_{\alg} = \limsup_{n\to\infty} \delta_{\alg}(n)$ a
$\delta^-_{\alg} = \liminf_{n\to\infty} \delta_{\alg}(n)$. $\delta^-_{\alg} = \liminf_{n\to\infty} \delta_{\alg}(n)$.
Význam těchto definicí bude vysvětlen v následující kapitole. Význam těchto definic bude vysvětlen v následující kapitole.
Dále označme $\gamma(\alpha)$ optimální skóre na vstupu $\alpha$. Dále označme $\gamma(\alpha)$ optimální skóre na vstupu $\alpha$.
A následně analogicky definujeme $\gamma(n), \delta(\alpha), \delta(n)$, $\delta$, $\delta^+$ a $\delta^-$ A následně analogicky definujeme $\gamma(n), \delta(\alpha), \delta(n)$, $\delta$, $\delta^+$ a $\delta^-$
...@@ -183,7 +186,7 @@ Problém je _optimalizační_, pokud pro každý vstup $I$, existuje množina ...@@ -183,7 +186,7 @@ Problém je _optimalizační_, pokud pro každý vstup $I$, existuje množina
přípustných řešení $F(I)$. přípustných řešení $F(I)$.
Dále existuje účelová funkce $f$, která pro každý vstup a jeho přípustné řešení určuje reálné nezáporné číslo -- jeho hodnotu. Dále existuje účelová funkce $f$, která pro každý vstup a jeho přípustné řešení určuje reálné nezáporné číslo -- jeho hodnotu.
Pokud se jedná o minimalizační problém, tak pod pojmem _optimum_ daného vstupu (značíme $\opt(I)$) myslíme infimum hodnot účelové funkce přes všechny přípustné řešení, tedy $\inf f[F(i)]$. Pokud se jedná o minimalizační problém, tak pod pojmem _optimum_ daného vstupu (značíme $\opt(I)$) myslíme infimum hodnot účelové funkce přes všechna přípustná řešení, tedy $\inf f[F(i)]$.
Pro maximalizační problém analogicky použijeme supremum. Pro maximalizační problém analogicky použijeme supremum.
::: :::
...@@ -194,7 +197,7 @@ Algoritmus $\alg$ je $g(n)$-aproximační na minimalizačním problému, ...@@ -194,7 +197,7 @@ Algoritmus $\alg$ je $g(n)$-aproximační na minimalizačním problému,
pokud pro každý vstup $I$ algoritmus vrátí přípustné řešení $\alg(I)$, pro které platí, že $f(\alg(I)) \le g(|I|) \cdot \opt(I)$. pokud pro každý vstup $I$ algoritmus vrátí přípustné řešení $\alg(I)$, pro které platí, že $f(\alg(I)) \le g(|I|) \cdot \opt(I)$.
::: :::
Předešlá definice záleží na tom, co považujeme za velikost vstupu, což se pro různé problémy a jejich interpretace může lišit. Předešlá definice záleží na tom, co považujeme za velikost vstupu, což se pro různé problémy a jejich interpretace liší.
Naštěstí nás většinou budou zajímat $c$-aproximace, tedy Naštěstí nás většinou budou zajímat $c$-aproximace, tedy
aproximace, kde $g(n)$ je konstantní funkce rovna $c$. aproximace, kde $g(n)$ je konstantní funkce rovna $c$.
...@@ -223,10 +226,12 @@ Pokud řešíme složitost algoritmů a úloh, ...@@ -223,10 +226,12 @@ Pokud řešíme složitost algoritmů a úloh,
většinou vyžadujeme, aby účelová funkce i rozhodování přípustnosti řešení byly vyčíslitelné v polynomiálním čase. většinou vyžadujeme, aby účelová funkce i rozhodování přípustnosti řešení byly vyčíslitelné v polynomiálním čase.
Navíc chceme, aby všechna přípustná řešení měla omezenou délku nějakým polynomem v délce vstupu. Navíc chceme, aby všechna přípustná řešení měla omezenou délku nějakým polynomem v délce vstupu.
Snadno nahlédneme, že za takovýchto podmínek je rozhodovací verze, Snadno nahlédneme, že za takovýchto podmínek je rozhodovací verze,
jestli je optimum alespoň zadané číslo, v $NP$. jestli je optimum alespoň zadané číslo, v $\NP$.
Pro takovou úlohu většinou hledáme polynomiální aproximační algoritmus. Pro takovou úlohu většinou hledáme polynomiální aproximační algoritmus.
Binární paint shop vyhovuje všem těchto podmínkám. Binární paint shop vyhovuje všem těchto podmínkám.
Pokud existuje $(1-\varepsilon)$-aproximační algoritmus pro každé $\varepsilon > 0$, říkáme, že máme aproximační schéma.
Doposud známé výsledky Doposud známé výsledky
====================== ======================
...@@ -333,7 +338,7 @@ aby byl počet změn co možná nejmenší možný. ...@@ -333,7 +338,7 @@ aby byl počet změn co možná nejmenší možný.
::: :::
Autoři algoritmu, Andres and Hochstättler [@gr], o něm dokázali, že Autoři algoritmu, Andres and Hochstättler [@gr], o něm dokázali, že
${2\over 5}\ n - {8\over 15} \le \gamma_{\algo{rg}}(n) \le {2\over 5}\ n + {7\over 10}$, ${2\over 5}\,n - {8\over 15} \le \gamma_{\algo{rg}}(n) \le {2\over 5}\,n + {7\over 10}$,
tedy $\delta_{\algo{rg}} = 2/5 = 0.4$. tedy $\delta_{\algo{rg}} = 2/5 = 0.4$.
Dále se o zlepšení tohoto algoritmu pokusili Hančl a kol. [@docw]. Dále se o zlepšení tohoto algoritmu pokusili Hančl a kol. [@docw].
...@@ -394,14 +399,14 @@ fig.add_vline(x=200*hypoth, ...@@ -394,14 +399,14 @@ fig.add_vline(x=200*hypoth,
Graf skóre $100$ běhů hvězdičkového rekurzivního řešení pro $n=200$. Graf skóre $100$ běhů hvězdičkového rekurzivního řešení pro $n=200$.
::: :::
Autoři algoritmu o něm vyslovili domněnku, že $\delta_{\algo{rsg}} = {1\over 13} \cdot \sqrt{61} - {3\over 13} \sim 0.370$ . Autoři algoritmu o něm vyslovili domněnku, že $\delta_{\algo{rsg}} = {1\over 13} \cdot \sqrt{61} - {3\over 13} \doteq 0.370$.
Na obrázku [](#rsg) je zobrazen histogram skóre tohoto algoritmu spuštěného na náhodných vstupech a hodnota z předešlé hypotézy. Na obrázku [](#rsg) je zobrazen histogram skóre tohoto algoritmu spuštěného na náhodných vstupech a hodnota z předešlé hypotézy.
Zobecněné verze a související problémy Zobecněné verze a související problémy
-------------------------------------- --------------------------------------
Zobecněním binárního paint shopu je obecný paint shop problém, zavedený Epingem a spol. [@ps], Zobecněním binárního paint shopu je obecný paint shop problém, zavedený Eppingem a spol. [@ps],
Z něj pochází motivace k binární verzi. Z něj pochází motivace k binární verzi.
::: {c=box t=task name="Obecný paint shop problém"} ::: {c=box t=task name="Obecný paint shop problém"}
...@@ -821,6 +826,7 @@ Měření SDP řešení ...@@ -821,6 +826,7 @@ Měření SDP řešení
Součástí práce je implementace algoritmů řešících Binární paint shop problém. Součástí práce je implementace algoritmů řešících Binární paint shop problém.
Každý z nich byl následně spuštěn pro různé velikosti, pokaždé na 100 nezávisle náhodně vybraných vstupech. Každý z nich byl následně spuštěn pro různé velikosti, pokaždé na 100 nezávisle náhodně vybraných vstupech.
Celý test běžel jedno vláknově zhruba dva dny a využíval nejvýše 16 GB operační paměti. Celý test běžel jedno vláknově zhruba dva dny a využíval nejvýše 16 GB operační paměti.
U $\algo{sdp}$ řešení bylo použito 10 náhodných řezů a vždy byl vybraný nejlepší z nich.
Na následujících stranách jsou zpracovaná různá naměřená data. Na následujících stranách jsou zpracovaná různá naměřená data.
Praktické řešení semidef. programů Praktické řešení semidef. programů
...@@ -907,6 +913,7 @@ Vzhledem k výše uvedeným problémům dává smysl se porozhlédnout po altern ...@@ -907,6 +913,7 @@ Vzhledem k výše uvedeným problémům dává smysl se porozhlédnout po altern
SageMath je dle oficiálních stránek [@sagemath] open-source software pro matematické výpočty založený na rozšířené syntaxi pythonu, SageMath je dle oficiálních stránek [@sagemath] open-source software pro matematické výpočty založený na rozšířené syntaxi pythonu,
takže je poměrně snadné ho využívat i jako programovací jazyk. takže je poměrně snadné ho využívat i jako programovací jazyk.
Pro účely práce byla použita verze sage 10.1 ze dne 2023-08-20.
Sage mimo jiné obsahuje rozhraní pro řešení semidefinitních programů. Sage mimo jiné obsahuje rozhraní pro řešení semidefinitních programů.
Rozhraní je navrženo tak, aby bylo schopné pracovat s více různými backendy pro řešení semidefinitních programů. Rozhraní je navrženo tak, aby bylo schopné pracovat s více různými backendy pro řešení semidefinitních programů.
Bohužel z dokumentace [@sage-semidef-doc] nebylo zřejmé, jaké backendy sage podporuje. Bohužel z dokumentace [@sage-semidef-doc] nebylo zřejmé, jaké backendy sage podporuje.
...@@ -1152,7 +1159,7 @@ Z naměřených dat jsme jednak odhadli střední hodnotu skóre algoritmu přes ...@@ -1152,7 +1159,7 @@ Z naměřených dat jsme jednak odhadli střední hodnotu skóre algoritmu přes
A druhak jsme si všimli, že dimenze řešení semidefinitního programování je poměrně malá, což jsme zformulovali jako hypotézu. A druhak jsme si všimli, že dimenze řešení semidefinitního programování je poměrně malá, což jsme zformulovali jako hypotézu.
Stále však zůstává otevřená otázka, kolik přesně je $\delta^+$ a $\delta^-$ (a případně zda se rovnají) Stále však zůstává otevřená otázka, kolik přesně je $\delta^+$ a $\delta^-$ (a případně zda se rovnají)
a jaké nejlepší $\delta^+_{\alg}$ jsme schopní dosáhnout polynomiálním algoritmem $\alg$. a jaké nejlepší $\delta^+_{\alg}$ je možno dosáhnout polynomiálním algoritmem $\alg$.
Seznam zkratek {-} Seznam zkratek {-}
================== ==================
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment