From 834dafa4b6a179748af8fe22551d62573aa326f8 Mon Sep 17 00:00:00 2001
From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz>
Date: Wed, 8 May 2024 20:09:01 +0200
Subject: [PATCH] =?UTF-8?q?prace:=20Snad=20ji=C5=BE=20fin=C3=A1ln=C3=AD=20?=
 =?UTF-8?q?korektury?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 prace/bakalarka/index.md | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/prace/bakalarka/index.md b/prace/bakalarka/index.md
index c3313edf..005661f3 100755
--- a/prace/bakalarka/index.md
+++ b/prace/bakalarka/index.md
@@ -432,20 +432,20 @@ Minimalizovat počet intervalů je to stejné jako minimalizovat počet hranic m
 Ve vstupu problému dělení náhrdelníku navíc musí platit, pro každý typ má být stejný počet aut obarvený jednotlivými barvami
 (a tedy počet aut daného typu musí být násobkem $k$).
 Naopak binární paint shop problém je speciálním případem dělení náhrdelníku
-pro dva lupiče, kde navíc platí, že všechna $a_i$ jsou 1 (tedy od každého drahokamu jsou na náhrdelníku právě dva drahokamy).
+pro dva lupiče, kde navíc platí, že všechna $a_i$ jsou 1 (tedy od každého typu jsou na náhrdelníku právě dva drahokamy).
 
 Semidefinitní programování
 ==========================
 
 V této kapitole si představíme princip semidefinitního programování (dále též SDP), jak jej popisují Gärtner a Matoušek [@semidef], a jeho použití na problém maximálního řezu,
-z něhož vychází algoritmus na  binary paint shop.
+z něhož vychází algoritmus na  binární paint shop.
 
 Nejprve zavedeme a připomeneme notaci důležitou v této kapitole.
 Nechť $\R^{n\times m}$ značí množinu $n$-řádkových $m$-sloupcových matic
 složených z reálných čísel.
 Řádky i sloupce indexujeme od $0$,
 tedy matice $A\in \R^{n\times m}$ obsahuje prvky $A_{i,j}$ pro všechna $0\le i < n$ a $0 \le j < m$.
-Nechť $\SYM_n = \{X \in \R^{n\times n} \mid x_{i,j} = x_{j,i} \hbox{\ pro všechna\ } 0 \le i,j < n\}$ je třída všech symetrických matic a nechť $X \circ Y = \sum_{0\le i<n} \sum_{0\le j<0} x_{i,j} y_{i,j}$ značí součet součinu matic po složkách.
+Nechť $\SYM_n = \{X \in \R^{n\times n} \mid x_{i,j} = x_{j,i} \hbox{\ pro všechna\ } 0 \le i,j < n\}$ je třída všech symetrických matic a nechť $X \circ Y = \sum_{0\le i<n} \sum_{0\le j<m} x_{i,j} y_{i,j}$ značí součet součinu matic po složkách.
 Nakonec $X \succeq 0$ bude značit skutečnost, že matice $X$ je pozitivně semidefinitní (bude vysvětleno později).
 
 Úloha semidefinitního programování je optimalizační úloha (podobně jako lineární programování) následujícího formátu:
@@ -501,14 +501,14 @@ Problém maximálního řezu (resp. rozhodovací verze, kde se ptáme na existen
 je NP-úplný [@maxcut-np], proto
 se u něj zkoumají aproximační algoritmy a pravděpodobnostní aproximační algoritmy.
 
-Nejprve si ukážeme triviální $0.5$-aproximační pravděpodobnostní algoritmus:
+Nejprve si ukážeme triviální pravděpodobnostní $0.5$-aproximační algoritmus:
 
 ::: {c=box t=algo}
 Každý vrchol uniformně náhodně přiřaď do množiny $A$ nebo $B$.
 :::
 
 ::: {c=box t=theorem}
-Triviální algoritmus je $0.5$-aproximační pravděpodobnostní algoritmus.
+Triviální algoritmus je pravděpodobnostní $0.5$-aproximační algoritmus.
 :::
 
 ::: {c=proof}
@@ -526,9 +526,9 @@ Předešlý algoritmus lze derandomizovat, jak popisuje Dimitrakakis [@maxcut-de
 Výsledný algoritmus pak vždy najde řešení obsahující alespoň $1/2$ hran, tedy alespoň $1/2$ optima.
 
 
-Lepšího aproximačního poměru můžeme dosáhnout
-Goemansův-Williamsonovým algoritmem, založeným na semidefinitním
-programování a proto popsaného mimo jiné v již dříve zmíněném úvodu do semidefinitního programování [@semidef].
+Lepšího aproximačního poměru dosáhneme
+Goemansovým-Williamsonovým algoritmem, založeným na semidefinitním
+programování a proto popsaným mimo jiné v již dříve zmíněném úvodu do semidefinitního programování [@semidef].
 
 Naivní implementace je, že si pro každý vrchol $u$
 vyrobíme proměnnou $x_u$, která může nabývat hodnot $\pm 1$, která bude říkat, do jaké množiny máme vrchol umístit.
@@ -562,7 +562,7 @@ $n-1$ dimenzionální sféru v $\R^n$.
 Účelová funkce se snaží umístit body vrcholů spojených hranou co nejdále od sebe.
 
 V případě, kdy jsme povolovali pouze hodnoty $\pm 1$, bylo jasné, které vrcholy patří do které množiny.
-Nyní jsou však výstupem optimalizace vektory a tedy přiřazení množinám není tak jednoznačné.
+Nyní však výstupem optimalizace jsou vektory a tedy přiřazení množinám není tak jednoznačné.
 Rádi bychom umístili od sebe vzdálené body do různých množin.
 Na to můžeme rovnoměrně náhodně zvolit nadrovinu 
 procházející počátkem a rozdělit body
@@ -745,7 +745,7 @@ Ovšem v našem případě místo maximalizace děláme minimalizaci účelové
 Tedy abychom mohli tvrdit, že pravděpodobnost je menší než nějaký násobek účelové funkce,
 potřebovali bychom horní odhad poměru. Ovšem tento poměr je neomezený (viz obrázky [](#gw-func) a [](#gw-frac)).
 V okolí $x=1$ jsou obě funkce poblíž $0$, ovšem pravděpodobnost se k nule blíží mnohem strměji.
-Tedy pro dvojici vektorů poblíž sobě je skalární součin skoro 1, ovšem pravděpodobnost oddělení je libovolně krát větší než vzdálenost součinu od jedné.
+Tedy pro dvojici vektorů poblíž sebe je skalární součin skoro 1, ovšem pravděpodobnost oddělení je libovolně krát větší než vzdálenost součinu od jedné.
 
 O binárním paint shop problému je navíc známé, že je za předpokladu Unique game conjecture a $\P\neq \NP$ je polynomiálně  neaproximovatelný s konstantním faktorem [@neaprox], takže nemožnost výše uvedeného
 postupu by nás ani neměla zaskočit, protože v případě, že by šlo udělat odhad tímto způsobem, získali bychom pravděpodobnostní aproximační algoritmus.
@@ -844,8 +844,9 @@ Měření řešení BPS
 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 $1\,000$ nezávisle náhodně vybraných vstupech s počtem typů aut
 10, 20, 50, 100, 200, 400, 566, 800, 1131, 1600, 2263 a 3200.[^2]
-Jedna z implementací $\algo{sdp}$ -- pomocí sage vyžaduje moc paměti a proto byla spuštěna jen na vstupech do velikosti $566$.
-Celý test běžel jednovláknově zhruba dva dny a využíval nejvýše 16 GB operační paměti.
+Jedna z implementací $\algo{sdp}$ -- pomocí sage vyžaduje velké množství paměti a proto byla spuštěna jen na vstupech do velikosti $566$.
+Celý test běžel několik dní na čtveřici stojů, na každém dva programy současně,
+každý z nich běžel jednovlákonvě 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.
 Gitový repozitář s implementací i naměřenými daty je k dispozici na <https://gitlab.kam.mff.cuni.cz/jirikalvoda/binary-paint-shop-problem>.
 Na následujících stranách jsou zpracovaná různá naměřená data.
@@ -860,7 +861,7 @@ tedy v polovině mezi okolními hodnotami na logaritmické stupnici.
 
 Praktické řešení semidef. programů
 -----------------------------------------
-U triviálních algoritmů byla implementace poměrně přímočará.
+U většiny algoritmů byla implementace poměrně přímočará.
 Ovšem u řešení semidefinitního programování je většina složitosti algoritmu schovaná právě v řešení semidefinitních programů,
 což už svojí složitostí nepatří mezi algoritmy, které bychom chtěli (re)implementovat.
 Proto je žádoucí se spolehnout na funkčnost již existujících implementací.
@@ -960,7 +961,7 @@ Hodnoty skalárních součinů
 --------------------------
 
 V odhadu střední hodnoty počtu změn barev v $\algo{sdp}$ řešení jsme využívali toho, že funkce rozdílu pravděpodobnosti řezu a účelové funkce (funkce $f$) je nejvýše $d = 0.1053$.
-Ovšem tato funkce nenabývá takto vysokých hodnot zdaleka všude, na polovině definičního oboru je dokonce záporná (viz obrázek [](#sdp-diff)). Kdyby tedy alespoň část optimalizovaných skalárních součinů se vyskytovala mimo oblast, kde $f$ nabývá vysokých hodnot, šel by odhad zlepšit.
+Ovšem tato funkce nenabývá takto vysokých hodnot zdaleka všude, na polovině definičního oboru je dokonce záporná (viz obrázek [](#sdp-diff)). Kdyby se tedy alespoň část optimalizovaných skalárních součinů vyskytovala mimo oblast, kde $f$ nabývá vysokých hodnot, šel by odhad zlepšit.
 
 Bohužel dle naměřených dat to vypadá, že hodnoty skalárních součinů se
 koncentrují pouze poblíž maxima $f$. Viz obrázek [](#scalar_products_200).
@@ -1211,7 +1212,7 @@ fig.update_layout(
 Naměřená závislost relativního skóre řešení na velikosti vstupu.
 :::
 
-Na výše uvedeném grafu a tabulek na následujících stranách si můžeme všimnout, že s rostoucím $n$
+Na výše uvedeném grafu a tabulkách na následujících stranách si můžeme všimnout, že s rostoucím $n$
 se u všech měřených algoritmů zmenšuje rozptyl relativního skóre.
 
 Z grafu vidíme, že pro dostatečně velká $n$ je naměřené relativní skóre algoritmu $\algo{sdp}$ menší než $0.34$.
-- 
GitLab