You are on page 1of 14

Sveuilite u Zagrebu

Fakultet organizacije i informatike u Varadinu












Seminar iz kolegija Algoritmi
Minimalni pokriva skupa












U Varadinu, lipanj 2014.
Sveuilite u Zagrebu
Fakultet organizacije i informatike u Varadinu



Balen Ana-Marija / 42605






Seminar iz kolegija Algoritmi
Minimalni pokriva skupa



Nositelj kolegija:
Prof. dr. sc. Alen Lovreni







U Varadinu, lipanj 2014.
Sadraj

Uvod ............................................................................................................................................................. 4
Minimalni pokriva skupa ............................................................................................................................. 5
Pohlepni aproksimacijski algoritam .............................................................................................................. 6
Analiza ........................................................................................................................................................... 7
Teorem .................................................................................................................................................. 7
Dokaz ..................................................................................................................................................... 7
Korolar ................................................................................................................................................... 9
Dokaz ..................................................................................................................................................... 9
Linearno programiranje ................................................................................................................................ 9
Primjer problema ................................................................................................................................ 10
Linearno dvostruko programiranje Teorem ........................................................................................ 11
Tjemeni pokriva ......................................................................................................................................... 12
Primjer ................................................................................................................................................. 12
Zakljuak .................................................................................................................................................... 13
Literatura .................................................................................................................................................... 14


Uvod

Pokriva skupa je jedan od najstarijih i najvie uenih NP tekih problema (NP je
oznaka za nedeterministiki polinomni). Zadan je skup U od n elemenata i cilj je pokriti
U s najmanjim moguim brojem skupova. Jedan od najboljih polinomnih vremenskih
algoritama za pribliavanje skupu pokrivaa je pohlepni algoritam: u svakom koraku bira
nekoriteni skup koji pokriva najvei broj preostalih elemenata.
Minimalni pokriva skupa moe se objasniti na jednostavnom primjeru.
Ova upanija je u stanju planiranja gradnje kola. Postoje dva uvjeta: svaka kola mora
biti smjetena u gradu i nitko ne smije putovati do kole vie od 30 kilometara. Koji je
minimalni broj kola koje su potrebne?
Ovo je tipini problem pokrivaa skupa. Svaka tokica predstavlja jedan grad. Za svaki
grad x, neka Sx bude skup gradova u krugu 30km. kola u mjestu x e pokrivati ove
ostale gradove. Pitanje je sada koliko skupova Sx trebaju biti izabrani da bi se pokrili svi
gradovi?

Slika 1. 11 gradova i njihova povezanost u krugu 30km

Minimalni pokriva skupa

Problem pokrivaa skupa je optimizacijski problem koji modelira mnotvo problema
izbora resursa. Njegov problem odgovarajue odluke generalizira nedeterministiki
polinomni konani problem tjemenog pokrivaa i stoga je takoer nedeterministiki
polinomni teak.
Aproksimacijski algoritam izraen za rjeavanje problema tjemenog pokrivaa ne vrijedi
ovdje pa moramo probati druge pristupe. Ispitat emo jednostavne pohlepne istraivae
s udiom logaritamske aproksimacije. Kao to se veliina instance poveava, veliina
priblinog rjeenja moe rasti, s obzirom na veliinu optimalnog rjeenja. Budui da
logaritamska funkcija raste sporo, ovaj aproksimacijski algoritam moe ipak dati korisne
rezultate.
Instance (X, F) problema pokrivanja skupa sastoji se od konanog skupa X i familije F
podskupa od X, tako da svaki element iz X pripada barem jednom podskupu u F.

Slika 2. Instanca (X, F) problema pokrivaa skupa
Slika 2. prikazuje instancu (X, F) problema pokrivaa skupa, gdje se X sastoji od 12
crnih toaka, a F = { S
1
, S
2
, S
3
, S
4
, S
5
, S
6
}. Minimalni pokriva skupa je C = {S
3
, S
4
, S
5
}.
Pohlepni algoritam stvara pokriva veliine 4 odabirom skupova S
1
, S
4
, S
5
i S
3
.

Kaemo da podskup S F pokriva njegove elemente. Problem je pronai minimalni
podskup C F iji lanovi pokrivaju cijeli X.

Kaemo da bilo koji C zadovoljavajui gornju jednadbu pokriva X.
Slika 2. prikazuje problem pokrivaa skupa. Veliina C je definirana brojem skupova
koje sadri, a ne brojem pojedinanih elemenata u tim skupovima. Na slici, minimalni
pokriva skupa je veliine 3.
Problem pokrivaa skupa je apstrakcija mnogih problema koji esto nastaju
kombinacijama. Na primjer, pretpostavimo da je X skup vjetina koje su potrebne za
rjeavanje problema i da imamo zadan skup ljudi na raspolaganju za rad na problemu.
elimo da se formira grupa koja sadri to manje mogue ljudi, tako da za svaku
potrebnu vjetinu iz X postoji lan koji ima tu vjetinu.
Pohlepni aproksimacijski algoritam

Pohlepna metoda bira u svakoj fazi skup S koji pokriva najvei broj preostalih
elemenata koji nisu pokriveni.
POHLEPNI POKRIVA SKUPA (X, F )
1 U X
2 C
3 while U
4 do select an S F that maximizes |S U |
5 U U S
6 C C {S}
7 return C
U primjeru slike 1. pohlepni pokriva skupa dodaje u C skupove S
1
, S
4
, S
5
i S
3
po redu.
Algoritam radi na sljedei nain. Skup U sadri, u svakoj fazi, skup preostalih
nepokrivenih elemenata. Skup C sadri pokriva koji se stvara. Linija 4 je pohlepni
korak odluivanja. Podskup S je odabran da obuhvaa to je mogue vie nepokrivenih
elemenata. Nakon to je S oznaen, njegovi elementi su uklonjeni iz U, a S je prebaen
u C. Kada algoritam zavri, skup C sadri podfamiliju od F koji pokriva X.
Algoritam pohlepnog pokrivaa skupa moe jednostavno biti implementiran kako bi se
proveo u polinomnom vremenu u |X| i |F|. Budui da je broj ponavljanja petlje na
linijama 3-6 omeen s gornje strane minimumom (|X|, |F|) i tijelo petlje moe biti
implementirano da se provede u vremenu O (|X|, |F|), tu je implementacija koja se
pokree u vremenu O(|X|, |F| min(|X|, |F|)).
Analiza
Sada emo pokazati da pohlepni algoritam vraa skup pokrivaa koji nije puno vei od
optimalnog skupa pokrivaa. Radi lakeg snalaenja, oznaavamo d-ti harmonijski broj
H
d
=

s H(d). Kao uvjet granice, definiramo H(0) = 0.


Teorem
Pohlepni pokriva skupa je polinomni vremenski (n) aproksimacijski algoritam gdje je
(n) = H (max { |S| : S F }).
Dokaz
Ve smo pokazali da se pohlepni pokriva skupa izvodi u polinomnom vremenu.
Kako bi pokazali da je pohlepni pokriva skupa (n) aproksimacijski algoritam
dodjeljujemo troak od 1 za svaki skup oznaen algoritmom, distribuiramo taj troak po
elementima pokrivenim po prvi put, i onda koristimo trokove da izvuemo eljeni odnos
izmeu veliine optimalnog skupa pokrivaa C i veliine pokrivaa skupa C koji je
vraen algoritmom. Neka S
i
oznaava i-ti podskup oznaen pohlepnim pokrivaem
skupa; algoritam predstavlja troak od 1 kada dodaje S
i
u C. irimo taj troak odabira S
i

ravnomjerno izmeu elemenata pokrivenih po prvi puta s S
i
. Neka c
x
oznaava trokove
dodijeljene elementu x, za svaki x X. Svakom elementu su dodijeljeni trokovi samo
jednom, kada je pokriven po prvi put. Ako je x pokriven po prvi puta od S
i
, onda
.
U svakom koraku algoritma, 1 jedinica troka je dodijeljena, i tako je
.
Troak dodijeljen optimalnom pokrivau je
,
i otkada je svaki x X barem u jednom skupu S C, imamo
.
Kombinacijom prethodne dvije nejednakosti, imamo
.
Ostatak dokaza poiva na sljedeim kljunim nejednakostima, to emo uskoro i
dokazati. Za svaki skup S koji pripada familiji F ,
.
Iz posljednje dvije nejednakosti, slijedi da je
,
to dokazuje teorem.
Sve to nam preostaje je dokazati nejednakost . Razmotrimo svaki skup S F i i = 1,
2, , |C|, i neka

bude broj preostalih nepokrivenih elemenata u S nakon S
1
, S
2
, , S
i
koji su odabrani
algoritmom.
Definiramo u
0
= |S| kao broj elemenata u S, koji su svi inicijalno nepokriveni. Neka k
bude najmanji indeks, takav da je u
k
= 0, tako da je svaki element u S pokriven barem
jednim od skupova S
1
, S
2
, , S
k
. Zatim u
i-1
u
i
i u
i-1
u
i
elementi iz S su pokriveni po
prvi puta od S
i
, za i = 1, 2, , k.
Obratimo panju da je

Zato to pohlepni izbor od S
i
garantira da S ne moe pokriti vie novih elemenata nego
to S
i
moe (inae bi S bio izabran umjesto S
i
).
Korolar
Pohlepni pokriva skupa je polinomni vremenski ( ln |X| +1 ) aproksimacijski algoritam.
Dokaz
U nekim aplikacijama, max { |S| : S F } je mala konstanta, pa su tako i rjeenja od
pohlepnog pokrivaa skupa za malu konstantu puta vei od optimalnog.
Jedna takva aplikacija se javlja kada se koristi takav izbor za dobivanje priblinog
pokrivaa tjemena za graf iji vrhovi imaju stupanj uglavnom 3. U ovom sluaju, rjeenje
koje je pronaao pohlepni pokriva skupa nije vie od H(3) = 11/6 puta tako veliko kao
optimalno rjeenje, a jamstvo za dobro izvrenje koje je malo bolje nego ono od
priblinog pokrivaa tjemena.
Linearno programiranje
Linearno programiranje je problem optimizacije (minimizacije ili maksimizacije) subjekta
linearne funkcije u linearno nejednaka ogranienja.
1

Na primjer,
minimizacija


1
Vezirani, Vijay : Approximation Algorithms, dio 2.1. I 12.
subjekta

Postoji vremenski algoritam za problem linearnog programiranja.
Primjer problema
U = {1, 2, 3, 4, 5, 6}, S
1
= {1, 2}, S
2
= {1, 3}, S
3
= {2, 3}, S
4
= {2, 4, 6}, S
5
= {3, 5, 6}, S
6
=
{4, 5, 6}, S
7
= {4, 5}
-varijabla x
j
za skup S
j
= {



-minimizacija troka: Min

= OPT
-subjekt :
x
1
+ x
2
1
x
1
+ x
3
+ x
4


1
x
2
+ x
3
+ x
5


1
x
4
+ x
6
+ x
7


1
x
5
+ x
6
+ x
7


1
x
4
+ x
5
+ x
6


1

Mogue rjeenje x
1
= x
2
= x
3
=

, x
4
= x
5
= x
7
= 0, x
6
= 1

= 2.5
To e biti mogue rjeenje, meutim, trebamo x
j
{0, 1} to nije vaee ogranienje za
linearno programiranje. Umjesto toga, mi emo koristiti jo vie rjeenja gdje je dio ili
vei od 1, koji e nam dati sva tona rjeenja.
Danim prvim linearnim programom, moemo napraviti dvostruki linearni programi.
Ponovno emo razmotriti linearni program
minimizacija

subjekta

Uvodimo varijable y
i
za i-tu nejednakost, dobivamo dvostruki program:
Maksimizacija

Subjekta

Linearno dvostruko programiranje Teorem

Prvi program ima konani optimum ako njegov dvostruki program ima konani optimum.
Osim toga, ako su x* = (x*
1
, , x*
n
) i y* = (y*
1
, , y*
m
) optimalna rjeenja za prvi i drugi
program, tada .
Rjeavanjem dvostrukog problema, za bilo koje mogue rjeenje, moete jamiti da je
optimalni rezultat rjeenje veeg.


Tjemeni pokriva
Svaki problem tjemenog pokrivaa moe biti promijenjen u problem pokrivaa skupa.

Primjer
G = (V, E), gdje je V = {u
1
, u
2
, u
3
, u
4
, u
5
} i E = {e
1
, e
2
, , e
8
}.
U = { e
1
, e
2
, e
3
, e
4
, e
5
, e
6
, e
7
, e
8
}
S = { (e
1
, e
2
, e
3
), (e
1
, e
4
, e
5
), (e
3
, e
4
, e
6
, e
7
), (e
2
, e
6
, e
8
), (e
5
, e
7
, e
8
) }
c(S
i
) = 1 , S
i
S

Slika 3. Primjer tjemenog pokrivaa
Od izgradnje, kada se koristi LP zaokruujui pokriva skupa za rjeavanje problema
tjemenog pokrivaa, maksimalna frekvencija je broj vrhova koji pripadaju odreenom
rubu, to je 2. Stoga je f = 2 i koristei LP zaokruujui pokriva skupa, moemo dobiti
aproksimacijski algoritam s aproksimacijskom stopom 2 za problem tjemenog
pokrivaa. LP oznaava linearno programiranje.

Zakljuak

Minimalni pokriva skupa ima zadatak donijeti optimalno rjeenje kod donoenja odluka.
Zadatak je pokriti to vei broj elemenata, napraviti to manje skupova i usput
zadovoljiti uvjet. Na poetku seminara navela sam primjer sa kolama, slian primjer
moe se navesti i kod odabira koji stroj e to raditi u tvornicu, pritom je bitno da rade
paralelno. Takoer jedna od bitnih stavki je da se to izvede u najkraem roku i uz
najmanji troak. Kao primjer rjeenja problema naveli smo pohlepni algoritam kojemu je
u cilju da to vie elemenata privede u skup te da onda ima to manje skupova od
tuda i sam naziv pohlepni, tono ono to je i cilj minimalnog pokrivaa skupa.

Literatura

[1] T. H. Comen, C. E. Leiserson, E. L. Rivest, C. Stein: Introduction to Algorithms,
second edition, The MIT Press, Cambridge, Massachusetts, London, England, str.
1035.
[2] Cheng Chen, Lingxiao Huang: Advanced Algorithms - Approximation algorithms for
Set Cover; 2011.g.
[3] Vezirani, Vijay : Approximation Algorithms
[4]

You might also like