Algoritmika pre ťažké problémy

¡Supera tus tareas y exámenes ahora con Quizwiz!

Ú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)|


Conjuntos de estudio relacionados

History of Mathematics Test 2 and more

View Set

Data/Collection/Behavior/Decisions

View Set