Algoritmika pre ťažké problémy
Úloha lineárneho programovania
Úloha LP (ve standardním tvaru) je optimalizační úloha s cílem maximalizovat c^T x za podmínek Ax≤b (porovnání po složkách) přes x∈R^n pro A∈R^(m×n), b∈R^m, c∈R^n
Pseudopolynomiálny algoritmus pre problém batohu
časová zložitosť: pre vstupnú inštanciu x = (v1, ..., vn, h1, ..., hn, V) platı́ n≤|x| a H≤n·Max(x) → TimeA(x)=O(|x|^2·Max(x)) // Max(x) môže byť až 2^|x|
Relácia susednosti - TSP
→ 2-Exchange v danom Hamiltonovskom cykle vyber dve hrany(a,b) a (c,d) (vrcholy a, b, c, d musia byt' navzájom rôzne) a nahrad' ich hranami (a,c), (b,d); vel'kost' okolia je Θ(n^2) → k-Exchange nahradzuje sa k hrán; vel'kost' okolia je Θ(n^k)
Algoritmus 1MC - amplifikácia
→ algoritmus A k zopakuje výpočet 1MC algoritmu A na vstupe x nezávisle k krát za sebou → nech α1, α2, ..., αk , αi∈{0,1}, sú výstupy jednotlivých výpočtov → ak existuje index j taký, že αj=1, tak algoritmus Ak akceptuje vstup; v tomto prı́pade x zaručene patrı́ do L → naopak, ak α1=α2=...=αk=0, tak algoritmus A k zamietne; v tomto prı́pade rozhodnutie x∉L môže byt' nesprávne (Pr(A(x)=0))^k≤(1/2)^k
Hopfieldova neurónova sieť
→ hrana e = (u, v ) sa (v danej konfigurácii) nazýva dobrá práve ak je splnený požiadavok, ktorý predstavuje, tj. w(e)s(u)s(v)<0 v opačnom prı́pade za nazýva zlou → vrchol u je splnený (v danej konfigurácii) ak váha dobrých hrán incidujúcich s u prevažuje váhu zlých hrán incidujúcich s u, t.j.: ∑((u,v)∈E)w(e)s(u)s(v)≤0 → konfigurácia je stabilná práve ak všetky vrcholy sú splnené
Aproximatívny algoritmus pre problém rozvrhu
→ naivná fronta = 2 aprox → usporiadaná fronta = 4/3
Modely náhodnostných algoritmov (1)
→ náhodnostný algoritmus A chápeme ako pravdepodobnostné rozdelenie nad kolekciou A1, A2, ..., An deterministických stratégií → pre vstupnú inštanciu w sa náhodne vyberie stratégia Ai
Problém obchodného cestujúceho je silne NP-t'ažký (Dôkaz)
→ prevedieme HC na h-zúženie TSP → G=(V,H) inštancia HC → G'=(V,V×V), t.že c(e)=1 ak e∈H, c(e)=2 inak → G má HC ak OptTSP(G')=n
Lokálne vyhľadávanie
→ technika je založená na sekvenčnom prehl'adávanı́ priestoru prı́pustných riešenı́ → od aktuálneho prı́pustného riešenia algoritmus prechádza k d'alšiemu, blı́zkemu riešeniu → nad priestorom prı́pustných riešenı́ je definovaná reláciu susednosti ∼, ktorá definuje okolie N(S) riešenia S, N(S)={S'|S'∼S}
Modely náhodnostných algoritmov (2)
→ v každom kroku výpočtu existuje niekoľko možnostı́, ako vo výpočte pokračovat' → každá možnost' má určenú pravdepodobnost' → pravdepodobnostný priestor sa definuje rovnako ako pre model 1 → hodnota Pr(Ci) je definovaná ako súčin pravdepodobnostı́ výberov uskutočnených vo výpočte Ci → všetky ostatné pojmy sú definované analogicky ako pre model 1
Celočíselné problémy
→ výpočtové problémy, kde vstupom je súbor celých čı́sel → vstupné inštancie kódujeme reťazcami nad abecedou {0,1,#} → vstup x = (x1, ..., xn) kódujeme reťazcom b(x) = bx1#...#bxn kde bz označuje binárny zápis čı́sla z → vel'kost' vstupu x označujeme |x| a definujeme ako dĺžku reťazca b(x) → definujeme hodnotu Max(x) = max{x1, ...,xn}
Algoritmus 2MC - amplifikácia
→ zopakuj výpočet A na x t krát za sebou výstupy jednotlivých výpočtov označ α1, ..., αt →ak existuje hodnota α, ktoré sa v postupnosti opakuje aspoň t/2 krát, tak výstupom výpočtu je α → v opačnom prı́pade je výstupom neviem Nech pre všetky vstupy 2MC algoritmu A platı́ Pr (A(x) = F (x)) ≥ 12 + ε. Potom algoritmus A t vypočı́ta správny výsledok s pravdepodobnosťou aspoň 1−(1−4·ε^2)^(t/2)
Vzt'ah pseudopolynomiálnych a polynomiálnych algoritmov [Dôkaz]
(str. 34) A je pseudopol. → ∀x∈U platí TimeA(x)≤p(|x|, Max(x)) h∈O(n^c) x∈U' je Max(x) ≤ d·|x|^c dosad9me do TimeA...
Silne NP ťažký problém
(strong NP hard problem) Celočı́selný problém U sa nazýva silne NP-ťažký ak existuje polynóm h taký, že h-zúženie problému U je NP-ťažký problém.
Aproximatívny algoritmus pre problém výberu centier
// Problém = potrebujeme zadať r > 2 najvzdialenejšie mestá = rmax→ r=rmax/2 ... /2 etc > vyberieme mesto, ktoré má najväčšiu vzdialenosť od predtým vybraných centier
Parametrizovaný algoritmus pre váženú nezávislú množinu na stromoch
// dá sa použiť na grafy z ohraničenou stromovou šírkou
Parametrizovaný algoritmus pre problém nezávislej množiny
// môže fungovať aj pre obecné grafy
Parametrizovaný algoritmus pre vrcholové pokrytie (1)
1.a. Do vrch. pokrytia pridám vrcholy s deg>k 1.b. Ak ich je viac ako k → REJECT 2. G' - ak má viac vrcholov ako m(k+1) reject // m vrch pok, k max deg 3. Úplným prehľadávaním nájdem vrch pok, G'
Hladový algoritmus pre vrcholové pokrytie
1/2|T|≤Opt(G)≤|T| |T|/Opt(G)≤2 −−−−−− Výber podľa stupňa vrchola aproximatı́vny pomer algoritmu je H(∆), kde ∆ je maximálny stupeň vrchola v grafe (tj. O(log n))
Primal dual multirez
2 aproximatívny
Prevod LV s neviem na vždy správny alg.
Ak dostanem odpoveď neviem → skúsim znovu Očakávaná zložitosť: ExpTimeB(n)∈O(TimeA(n))
Veta o neexistencii p-aprox. algoritmu pre problém centier s p<2
Ak existuje ρ-aproximatı́vny algoritmus pre problém výberu centier taký, že ρ < 2, tak P=NP Dôkaz: → Dominating Set na problém centier → vzdialenosť vrcholov spojených hranov = 1, ostatných 2 → graf má dom set k ↔ opt rádius centier = 1 → ak p-approx s p<2 potom nutne nájde opt riešenie
Náhodnostný algoritmus pre problém globálneho minimálneho rezu
Algorimus kontrakciı́ nájde globálny minimálny rez s pravdepodobnosťou aspoň 1/(n nad 2) ak opakujeme výpočet (n nad 2) krát, tak pravdepodobnost' neúspechu je nanajvýš 1/e
P-parametrizovaný algoritmus
Algoritmus A je P-parametrizovaným algoritmom pre U ak rieši tento problém a existujú polynóm p a funkcia f:N→N také, že pre každé x∈U: TimeA(x)≤f(P(x))·p(|x|)
Konzistentnosť a optimálnosť
Algoritmus A je konzistentný pre U ak pre každú vstupnú inštanciu x∈L platı́ A(x)∈M(x) (t.j. A(x) je prı́pustné riešenie) algoritmus A je optimálny pre U ak je konzistentný pre U a naviac pre každú vstupnú inštanciu x ∈ L je A(x) optimálnym riešenı́m
Vzťah k pseudo-polynomiálnym algoritmom
Každý pseudo-polynomiálny algoritmus pre U je zároveň Max-parametrizovaným algoritmom pre U
Očakávaná hodnota
Nech (S, Pr ) je pravdepodobnostný priestor a X náhodná premenná na S. Očakávaná hodnota náhodnej premennej X je E[X]=∑(s∈S)X(s)*Pr({s})
Monte Carlo s jednostranou chybou
Nech A je randomizovaný algoritmus pre rozhodovacı́ problém (jazyk) L. A je Monte Carlo algoritmus s jednostrannou chybou (1MC) pre L ak: 1. pre každé x∈L, Pr(A(x)=1)≥1/2 2. pre každé x∉L, Pr(A(x)=0)=1
Monte Carlo s neohraničenou chybou
Nech F je funkcia. Randomizovaný algoritmus A je Monte Carlo algoritmus s neohraničenou chybou pre F (MC) ak pre každý vstup x Pr(A(x)=F(x))>1/2
Monte Carlo algoritmus s ohraničenou chybou
Nech F je funkcia. Randomizovaný algoritmus A je Monte Carlo algoritmus s ohraničenou chybou pre F (2MC) ak existuje reálne čı́slo ε, 0<ε<1/2, také, že pre každý vstup x pre F Pr(A(x)=F(x))≥1/2+ε
Veta o silne NP ťažkých problémoch
Nech P≠NP a nech U je silne NP-ťažký celočı́selný problém. Potom pre U neexistuje žiaden pseudopolynomiálny algoritmus
Pravdepodobnostné rozdelenie
Nech S je (konečný) priestor (elementárnych) udalostı́. Pravdepodobnostné rozdelenie je každá funkcia Pr:P(S) → [0, 1] s vlastnost'ami → Pr({x})≥0 pre každú elementárnu udalost' x∈S → Pr(S)=1 → Pr(A∪B)=Pr(A)+Pr(B) pre každé udalosti A,B⊆S také, že A∩B=∅
Náhodná premenná
Nech S je konečný priestor udalostı́. Každá funkcia X:S→R sa nazýva (diskrétna) náhodná premenná na S
Pseudopolynomiálny algoritmus
Nech U je celočı́selný problém a A algoritmus, ktorý ho rieši. A sa nazýva pseudopolynomiálny algoritmus pre U práve ak existuje polynóm p dvoch premenných taký, že pre každú inštanciu x problému U platı́: TimeA(x)≤p(|x|, Max(x)) // závisí nielen na dĺžke vstupu, ale aj na najväčšom čísle, ktoré sa v danom vstupe nachádza
Vzt'ah pseudopolynomiálnych a polynomiálnych algoritmov
Nech U je celočı́selný problém a A pseudopolynomiálny algoritmus pre U. Potom pre každý polynóm h existuje polynomiálny algoritmus pre h-zúženie problému U
Zúženie celočíselného problému
Nech U je celočı́selný problém a h:N→N ľubovoľná neklesajúca funkcia. h-zúženı́m problému U je problém U0 , ktorý je obmedzenı́m problému U na vstupné inštancie x také, že: Max(x) ≤ h(|x|) // vyberieme inštancie, kde najväčšie číslo je menšie ako veľkosť vstupu
Aproximatívny algoritmus
Nech U je optimalizačný problém. Nech A je konzistentný algoritmus pre U a nech jeho časová zložitost' je polynomiálna vzhľadom k dĺžke vstupnej inštancie x ∈ L. Algoritmus A nazveme δ-aproximatı́vny pre U pre nejaké reálne δ>1 práve ak RA(x)≤δ pre každé x ∈ L Algoritmus nazveme f (n)-aproximatı́vny pre U pre nejakú funkciu f:N→R+ práve ak pre každé n∈N je RA(n)≤f(n)
Aproximatívna schéma
Nech U je optimalizačný problém. Nech A je konzistentný algoritmus pre U. Algoritmus A nazveme polynomiálnou aproximatı́vnou schémou pre U práve ak pre každú dvojicu (x,ε)∈L×R⁺ vypočı́ta A prı́pustné riešenie A(x) s aproximatı́vnym pomerom (1 + ε) a pritom časová zložitost' algoritmu A je pre každé fixované ε polynomiálna voči dĺžke x Ak naviac časová zložitost' algoritmu A sa dá zhora ohraničit' funkciou, ktorá je polynomiálna voči |x| aj voči ε⁻¹ , tak A nazveme úplnou polynomiálnou aproximatı́vnou schémou pre U.
Parametrizácia problému
Nech U je výpočtový problém. Parametrizáciou problému U je ľubovoľná funkcia P:U→N taká, že → P je polynomiálne vypočı́tateľná → pre nekonečne veľa hodnôt k ∈ N je k-parametrizovaná množina SetU(k)={x∈U | P(x)=k} nekonečná.
Las Vegas algoritmy
Náhodnostný algoritmus A sa nazýva Las Vegas algoritmus pre funkciu F ak pre každý vstup x Pr(A(x)=F(x))=1 // algoritmus pre každý vstup vypočı́ta správny výstup S hodnotou neviem: Pr(A(x)=F(x))≥1/2 Pr(A(x)=neviem)=1−Pr(A(x)=F(x))
Amplifikácia algoritmu pre problém globálneho minimálneho rezu
O(n^2(logn)^3)
Optimalizačný problém
Optimalizačný problém je 6-tica U=(ΣI, ΣO, L, M, cena, ciel), kde → ΣI, ΣO je vstupná resp. výstupná abeceda → L ⊆ Σ*I je množina vstupných inštanciı́ → M:L→2^ΣO je funkcia, ktorá každej vstupnej inštancii priradı́ množinu jej prı́pustných riešenı́ → cena je funkcia, ktorá dvojici (u,x), x∈L, u∈M(x) priradı́ reálne čı́slo cena(u, x) → ciel ∈ {maximum, minimum} pre každú vstupnú inštanciu x∈L optimalizačného problému U sa prı́pustné riešenie y∈M(x) nazýva optimálnym, práve ak: cena(y,x)=ciel{cena(z,x)|z∈M(x)} cenu optimálneho riešenia inštancie x značı́me OptU(x)
Randomizovaný δ-aproximatívny algoritmus
Pre každé δ > 1, randomizovaný algoritmus A je randomizovaný δ-aproximatı́vny algoritmus pre U ak pre každé x∈L (i) Pr(A(x)∈M(x))=1 (ii) Prx(RA(x)≤δ)≥1/2
Randomizovaný E[δ]-aproximatívny algoritmus
Pre každé δ>1, randomizovaný algoritmus A je randomizovaný E[δ]-aproximatı́vny algoritmus pre U ak pre každé x∈L (i) Pr(A(x)∈M(x))=1 (ii) E[(RA(x)]≤δ
Aproximatívny algoritmus pre vrcholové pokrytie
Pre množinu S a cenovú P funckciu p vypočı́tanú algoritmom cenovej funkcie platı́ w(S)≤2*∑(h∈H)ph
α(n)-aproximatívny algoritmus pre problém obchodného cestujúceho
Predpokladajme P≠NP. Potom pre pre žiadnu polynomiálne vypočı́tatel'nú funkciu α:N→Q neexistuje α(n)-aproximatı́vny algoritmus pre problém obchodného cestujúceho
Rozhodovací problém
Rozhodovacı́ problém je trojica (L, U, Σ), kde Σ je abeceda a L⊆U⊆Σ* Algoritmus A rieši rozhodovacı́ problém (L, U, Σ) ak pre každé x ∈ U (i) A(x) = 1 ak x ∈ L a (ii) A(x) = 0 ak x ∈ U \ L symbolom A(x) označujeme výstup algoritmu A na vstupe x
LP Problém rozvrhu
Zaokrúhlenie: Bipartitný graf → odstrániť cykly → priradiť úlohy strojom potomkom 2 aprox.
LP pokrytie množín
Zaokrúhlenie: ak xF≥f1 tak množinu F zarad' do pokrytia
Prevod LV bez neviem na s neviem
Zastaviť beh po čase 2·ExpTimeA(w)
Aproximatívna schéma pre problém súčtov (s pomocou Exact Subset Sum)
Zoznam v procedúre Trim preškrtáme L na L', tak, že tam necháme len reprezentantov pre nejaké δ a každé y∈L existuje z∈L': y(1+δ)<z<y
Primárny duálny algoritmus pre Set Cover
algoritmus je f-aproximatívny (pre α = 1, β = f)
Aproximatívna schéma pre problém batohu
aprox. pomer = 1+ε
Randomizácia a optimalizačné problémy
aproximatı́vny pomer R A algoritmu A chápeme ako náhodnú premennú cieľom je: →odhadnút' strednú hodnotu náhodnej premennej RA , alebo → garantovat', že aproximatı́vny pomer δ sa dosiahne s pravdepodobnosťou aspoň 1/2
Genetické algoritmy
genetický algoritmus pracuje s populáciou riešenı́, ktorá sa vyvı́ja cez generácie typicky sa nová generácia počı́ta v troch fázach 1. vyhodnotenie kvality: kvalita každého riešenia v populácii sa hodnotı́ vhodne definovanou funkciou 2. výber: riešenie prechádza do novej generácie s pravdepodobnosťou úmernou jeho kvalite 3. generovanie nových riešenı́: ak do novej generácie prešlo menej než N riešenı́, generácia sa doplnı́ o nové riešenia, ktoré vzniknú rekombináciou niektorých riešenı́ (crossover) alebo ich modifikáciou (mutation)
Pojem problému
nech Σ1 a Σ2 sú abecedy; U ⊆ Σ*1 výpočtový problém je definovaný ako úloha vypočı́tat' funkciu z U do Σ*2 prvky x∈U sa nazývajú vstupné inštancie (vstupy) problému
crossover
nová dvojica reťazcov σ3 a σ4 sa vytvorı́ z dvojice riešenı́ σ1 a σ2 tak, že sa náhodne zvolı́ hodnota i a zreťazı́ sa prých i-bitov reťazca σ1 a posledných |σ2|−i bitov z σ2
MAX-SAT - kombinovaný náhodnostný algoritmus
náhodne (s pravdep. 1/2) vyber algoritmus pre vel'ké klauzule alebo algoritmus randomizovaného zaokrúhľovania Pre kombinovaný algoritmus platı́: E[W]≥3/4OPT
Náhodnostný protokol pre problém rovnosti
platı́ s<p<n^2 zložitost' protokolu je rovná dĺžke binárneho zápisu čı́sel s, p, tj. 2·log(n^2) ≤ 4·log(n)
Derandomizácia MAX-SAT
predstavme si, že hodnotu premennej x1 určı́me deterministicky, ale hodnoty všetkých ostatných premenných určı́me náhodne → x1=1 ak E[Z|x1=1]≥E[Z|x1=0] → 0 inak E[Z|x1=a1, ..., xi=ai] = ∑(1-(1/2)^k)
branch-and-bound
prehľadávaný strom prerezávame, tj. neprehľadávame podstrom s koreňom v , ak žiaden list tohoto podstromu nemôže byť optimálnym riešenı́m
Technika cenovej funkcie
pricing method, primal - dual method - váhu vrchola chápeme ako cenu - každá hrana musı́ zaplatit' za svoje pokrytie čast' tejto ceny algoritmus počı́ta vrcholové pokrytie S a zároveň určuje ceny p_h ≥ 0 pre každú hranu h ∈ H tak, že ak každá hrana zaplatı́ svoju cenu p_h tak súčet cien (približne) zopdpovedá váhe S
mutation
realizuje sa bit po bite, každý bit sa s danou pravdepodobnosťou preklopı́
Maximálny rez - lokálne vyhľadávanie
rezy (A,B) a (A',B') sú v relácii susednosti práve ak (A',B') vznikne z (A,B) presunutı́m jedného vrchola w(A,B)≥1/2w(A*,B*)
Simulované žíhanie
simulované žı́hanie Metropolisov algoritmus, kde v priebehu výpočtu sa postupne znižuje pravdepodobnosť akceptovania horšieho riešenia
3/2-aproximatívny algoritmus pre metrický TSP (Christofidesov)
vstup (G = (V , H), c) → nájdi najlacnejšiu kostru T v G → nájdi najlacnejšie úplné párovanie M na množine vrcholov z T , ktoré majú nepárny (lichý) stupeň → pridanı́m párovania M ku kostre T vytvor Eulerovský graf G' → nájdi Eulerovský ťah τ v G' → výstupom je cyklus Z, ktorý navštevuje vrcholy v poradı́, v akom boli po prvý krát navštı́vené v Eulerovskom ťahu τ
MAX-SAT randomizované zaokrúhľovanie
vyriešime relaxovanú úlohu LP; nech y*, z* je optimálne riešenie premennej xi priradı́me hodnotu true s pravdepodobnosťou yi Algoritmus randomizovaného zaokrúhl'ovania je (1−1/e) aproximatı́vny algoritmus pre MAX-SAT
Algoritmus lokálneho vyhl'adávania v Hopfieldovej sieti
while konfigurácia siete nie je stabilná do vyber nesplnený vrchol zmeň stav vybraného vrchola od Každá Hopfieldova siet' má stabilnú konfiguráciu. Naviac, existuje algoritmus, ktorý nájde stabilnú konfiguráciu siete P v čase polynomiálnom vzhl'adom k počtu vrcholov siete a hodnote W=∑(e∈E)|w(e)|