Algorytmika Problemów Trudnych
Wykªad 2 Tomasz Krawczyk
krawczyk@tcs.uj.edu.pl
Kraków, semestr letni 2020/21
plan wykªadu
I Algorytmy parametryzowane.
I Algorytmy kernelizacji.
I Przykªady algorytmów kernelizacji dla problemów:
I
pokrycia wierzchoªkowego grafu.
I
zbioru przecinaj¡cego wszystkie cykle w turnieju.
Zªo»ono±¢ Parametryzowana
Analizuj¡c algorytmy parametryzowane badamy ich zªo»ono±¢ czasow¡ w zale»no±ci nie tylko od wielko±ci instancji wej±ciowej (np. grafu) ale równie» w zale»no±ci od innych parametrów (czasami wynikaj¡cych z wej±cia lub implicite danych na wej±ciu).
Parametrem mo»e by¢:
I stopie« `skomplikowania' instancji wej±ciowej (np. szeroko±¢ drzewowa grafu),
I rozmiar rozwi¡zania, które nas ju» zadowala.
Problemy parametryzowane
Problem parametryzowany to j¦zyk L ⊂ Σ
∗× N, gdzie Σ jest ustalonym sko«czonym j¦zykiem. Dla pary (x, k) ∈ L:
I x nazywamy instancj¡ wej±ciow¡ (x opisuje np. graf), I k nazywamy parametrem.
Mo»na rozwa»a¢ przypadki, w których j¦zyk L zawiera wi¦cej parametrów.
Problemy FPT (Fixed Parameter Tractable)
Parametryzowany problem L jest w klasie FPT (ang. xed parameter
tractable) je»eli istnieje algorytm testuj¡cy przynale»no±¢ (x, k) do L dziaªaj¡cy
w czasie f (k)(|x|)
c, gdzie f jest pewn¡ funkcj¡ obliczaln¡ a c jest pewn¡ staª¡.
Przykªady problemów parametryzowanych
I (G, k): graf G jest k-kolorowalny?
(nie jest FPT o ile P 6= NP), I ( G, k): graf G ma pokrycie wierzchoªkowe rozmiaru k (jest FPT), I ( T , k): turniej T ma k kraw¦dzi, które przecinaj¡ wszystkie cykle turnieju
(Feedback Arc Set in Tournaments), (jest FPT),
I (G, k): graf G ma klik¦ rozmiaru k (nie jest FPT, ale musimy mie¢
mocniejsze zaªo»enie zªo»ono±ciowe ni» P 6= NP, wystarczy ETH).
Przykªady problemów parametryzowanych
I (G, k): graf G jest k-kolorowalny? (nie jest FPT o ile P 6= NP),
I ( G, k): graf G ma pokrycie wierzchoªkowe rozmiaru k (jest FPT), I ( T , k): turniej T ma k kraw¦dzi, które przecinaj¡ wszystkie cykle turnieju
(Feedback Arc Set in Tournaments), (jest FPT),
I (G, k): graf G ma klik¦ rozmiaru k (nie jest FPT, ale musimy mie¢
mocniejsze zaªo»enie zªo»ono±ciowe ni» P 6= NP, wystarczy ETH).
Przykªady problemów parametryzowanych
I (G, k): graf G jest k-kolorowalny? (nie jest FPT o ile P 6= NP), I ( G, k): graf G ma pokrycie wierzchoªkowe rozmiaru k
(jest FPT), I ( T , k): turniej T ma k kraw¦dzi, które przecinaj¡ wszystkie cykle turnieju
(Feedback Arc Set in Tournaments), (jest FPT),
I (G, k): graf G ma klik¦ rozmiaru k (nie jest FPT, ale musimy mie¢
mocniejsze zaªo»enie zªo»ono±ciowe ni» P 6= NP, wystarczy ETH).
Przykªady problemów parametryzowanych
I (G, k): graf G jest k-kolorowalny? (nie jest FPT o ile P 6= NP), I ( G, k): graf G ma pokrycie wierzchoªkowe rozmiaru k (jest FPT),
I ( T , k): turniej T ma k kraw¦dzi, które przecinaj¡ wszystkie cykle turnieju (Feedback Arc Set in Tournaments), (jest FPT),
I (G, k): graf G ma klik¦ rozmiaru k (nie jest FPT, ale musimy mie¢
mocniejsze zaªo»enie zªo»ono±ciowe ni» P 6= NP, wystarczy ETH).
Przykªady problemów parametryzowanych
I (G, k): graf G jest k-kolorowalny? (nie jest FPT o ile P 6= NP), I ( G, k): graf G ma pokrycie wierzchoªkowe rozmiaru k (jest FPT), I ( T , k): turniej T ma k kraw¦dzi, które przecinaj¡ wszystkie cykle turnieju
(Feedback Arc Set in Tournaments),
(jest FPT),
I (G, k): graf G ma klik¦ rozmiaru k (nie jest FPT, ale musimy mie¢
mocniejsze zaªo»enie zªo»ono±ciowe ni» P 6= NP, wystarczy ETH).
Przykªady problemów parametryzowanych
I (G, k): graf G jest k-kolorowalny? (nie jest FPT o ile P 6= NP), I ( G, k): graf G ma pokrycie wierzchoªkowe rozmiaru k (jest FPT), I ( T , k): turniej T ma k kraw¦dzi, które przecinaj¡ wszystkie cykle turnieju
(Feedback Arc Set in Tournaments), (jest FPT),
I (G, k): graf G ma klik¦ rozmiaru k (nie jest FPT, ale musimy mie¢
mocniejsze zaªo»enie zªo»ono±ciowe ni» P 6= NP, wystarczy ETH).
Przykªady problemów parametryzowanych
I (G, k): graf G jest k-kolorowalny? (nie jest FPT o ile P 6= NP), I ( G, k): graf G ma pokrycie wierzchoªkowe rozmiaru k (jest FPT), I ( T , k): turniej T ma k kraw¦dzi, które przecinaj¡ wszystkie cykle turnieju
(Feedback Arc Set in Tournaments), (jest FPT), I (G, k): graf G ma klik¦ rozmiaru k
(nie jest FPT, ale musimy mie¢
mocniejsze zaªo»enie zªo»ono±ciowe ni» P 6= NP, wystarczy ETH).
Przykªady problemów parametryzowanych
I (G, k): graf G jest k-kolorowalny? (nie jest FPT o ile P 6= NP), I ( G, k): graf G ma pokrycie wierzchoªkowe rozmiaru k (jest FPT), I ( T , k): turniej T ma k kraw¦dzi, które przecinaj¡ wszystkie cykle turnieju
(Feedback Arc Set in Tournaments), (jest FPT),
I (G, k): graf G ma klik¦ rozmiaru k (nie jest FPT, ale musimy mie¢
mocniejsze zaªo»enie zªo»ono±ciowe ni» P 6= NP, wystarczy ETH).
Algorytm FPT dla pokrycia wierzchoªkowego
Alg(G,k) sprawdza, czy graf ma pokrycie wierzchoªkowe rozmiaru k.
I if G = ∅ return YES, I if k = 0 return;
I if G has an edge e = {u, v}:
I
return Alg(G \ u,k − 1)
I
return Alg(G \ v,k − 1)
Komentarz:
I czas dziaªania O(2
k· n) (ale mo»na szybciej), jest wi¦c FPT,
I powy»szy algorytm nale»y do grupy algorytmów rozgaª¦ziaj¡cych si¦ (ang.
branching algorithms ).
Algorytm FPT dla pokrycia wierzchoªkowego
Alg(G,k) sprawdza, czy graf ma pokrycie wierzchoªkowe rozmiaru k.
I if G = ∅ return YES, I if k = 0 return;
I if G has an edge e = {u, v}:
I
return Alg(G \ u,k − 1)
I
return Alg(G \ v,k − 1)
Komentarz:
I czas dziaªania O(2
k· n) (ale mo»na szybciej), jest wi¦c FPT,
I powy»szy algorytm nale»y do grupy algorytmów rozgaª¦ziaj¡cych si¦ (ang.
branching algorithms ).
kernelizacja
Algorytm kernelizacji dla problemu parametryzowanego Q ⊂ Σ
∗× N to algorytm, który maj¡c na wej±ciu (x, k) ∈ Σ
∗× N w czasie wielomianowym od (|x| + k) zwróci par¦ (x
0, k
0) tak¡, »e:
I ( x, k) ∈ Q wtedy i tylko wtedy, gdy (x
0, k
0) ∈ Q, I |x
0|, k
06 g (k) dla pewnej funkcji obliczalnej g .
Zredukowana instancja (x
0, k
0) to j¡dro dla problemu (x, k) rozmiaru g(k).
Kernelizacja to proces polegaj¡cy na redukowaniu (w czasie wielomianowym) instancji wej±ciowej (x, k) do instancji równowa»nej o rozmiarze ograniczonym funkcj¡ parametru k.
Zakªadaj¡c, »e k jest zapisane w sposób unarny, algorytmy kernelizacji s¡
wielomianowe od rozmiaru wej±cia.
kernelizacja vs FPT
Twierdzenie
Niech Q b¦dzie rozstrzygalnym problemem parametryzowanym. Q jest w klasie FPT wtedy i tylko wtedy, gdy Q posiada algorytm kernelizacji.
Je»eli problem Q posiada algorytm kernelizacji, to jest FPT. Algorytm FPT:
I zredukuj instancj¦ wej±ciow¡ (x, k) w czasie wielomianowym do instancji równowa»nej (x
0, k
0) rozmiaru g(k),
I rozstrzygnij, czy (x
0, k
0) jest w L (czas ograniczony pewn¡ funkcj¡ k
0).
kernelizacja vs FPT
Twierdzenie
Niech Q b¦dzie rozstrzygalnym problemem parametryzowanym. Q jest w klasie FPT wtedy i tylko wtedy, gdy Q posiada algorytm kernelizacji.
Je»eli problem Q posiada algorytm kernelizacji, to jest FPT.
Algorytm FPT:
I zredukuj instancj¦ wej±ciow¡ (x, k) w czasie wielomianowym do instancji równowa»nej (x
0, k
0) rozmiaru g(k),
I rozstrzygnij, czy (x
0, k
0) jest w L (czas ograniczony pewn¡ funkcj¡ k
0).
kernelizacja vs FPT
Twierdzenie
Niech Q b¦dzie rozstrzygalnym problemem parametryzowanym. Q jest w klasie FPT wtedy i tylko wtedy, gdy Q posiada algorytm kernelizacji.
Je»eli problem Q posiada algorytm kernelizacji, to jest FPT.
Algorytm FPT:
I zredukuj instancj¦ wej±ciow¡ (x, k) w czasie wielomianowym do instancji równowa»nej (x
0, k
0) rozmiaru g(k),
I rozstrzygnij, czy (x
0, k
0) jest w L (czas ograniczony pewn¡ funkcj¡ k
0).
Kernelizacja vs FPT
Twierdzenie
Niech Q b¦dzie rozstrzygalnym problemem parametryzowanym. Q jest w klasie FPT wtedy i tylko wtedy, gdy Q posiada algorytm kernelizacji.
Je»eli Q posiada algorytm FPT (z czasem dziaªania f (k)|x|
c), to ma równie» algorytm kernelizacji.
Algorytm kernelizacji:
I symuluj algorytm kernelizacji przez |x|
c+1kroków,
I je»eli algorytm zako«czy prac¦ (na pewno tak si¦ stanie, gdy |x| ≥ f (k)), przepisz jego odpowied¹, w przeciwnym przypadku zwró¢ (x, k).
Powy»szy algorytm daje j¡dro o rozmiarze f (k).
Kernelizacja vs FPT
Twierdzenie
Niech Q b¦dzie rozstrzygalnym problemem parametryzowanym. Q jest w klasie FPT wtedy i tylko wtedy, gdy Q posiada algorytm kernelizacji.
Je»eli Q posiada algorytm FPT (z czasem dziaªania f (k)|x|
c), to ma równie»
algorytm kernelizacji.
Algorytm kernelizacji:
I symuluj algorytm kernelizacji przez |x|
c+1kroków,
I je»eli algorytm zako«czy prac¦ (na pewno tak si¦ stanie, gdy |x| ≥ f (k)), przepisz jego odpowied¹, w przeciwnym przypadku zwró¢ (x, k).
Powy»szy algorytm daje j¡dro o rozmiarze f (k).
Kernelizacja vs FPT
Twierdzenie
Niech Q b¦dzie rozstrzygalnym problemem parametryzowanym. Q jest w klasie FPT wtedy i tylko wtedy, gdy Q posiada algorytm kernelizacji.
Je»eli Q posiada algorytm FPT (z czasem dziaªania f (k)|x|
c), to ma równie»
algorytm kernelizacji.
Algorytm kernelizacji:
I symuluj algorytm kernelizacji przez |x|
c+1kroków,
I je»eli algorytm zako«czy prac¦ (na pewno tak si¦ stanie, gdy |x| ≥ f (k)), przepisz jego odpowied¹, w przeciwnym przypadku zwró¢ (x, k).
Powy»szy algorytm daje j¡dro o rozmiarze f (k).
Kernelizacja vs FPT
Twierdzenie
Niech Q b¦dzie rozstrzygalnym problemem parametryzowanym. Q jest w klasie FPT wtedy i tylko wtedy, gdy Q posiada algorytm kernelizacji.
Je»eli Q posiada algorytm FPT (z czasem dziaªania f (k)|x|
c), to ma równie»
algorytm kernelizacji.
Algorytm kernelizacji:
I symuluj algorytm kernelizacji przez |x|
c+1kroków,
I je»eli algorytm zako«czy prac¦ (na pewno tak si¦ stanie, gdy |x| ≥ f (k)), przepisz jego odpowied¹, w przeciwnym przypadku zwró¢ (x, k).
Powy»szy algorytm daje j¡dro o rozmiarze f (k).
Pokrycie wierzchoªkowe - algorytm kernelizacji
Trzy reguªy redukcji (G, k):
I Reguªa 1: Je»eli G posiada wierzchoªek izolowany, usu« go z G. Nowa instancja: (G \ v, k).
I Reguªa 2: Je»eli G posiada wierzchoªek v o stopniu istotnie wi¦kszym od k, usu« go z G. Nowa instancja:(G \ v, k − 1).
I Reguªa 3: Je»eli nie mo»emy stosowa¢ reguªy 1 oraz 2, oraz je»eli G posiada istotnie wi¦cej ni» k
2+ k wierzchoªków b¡d¹ istotnie wi¦cej ni» k
2kraw¦dzi, zwró¢ prost¡ NIE instancj¦.
Ka»da z tych reguª jest poprawna tzn. instancja przed zastosowaniem ka»dej z
reguª jest równowa»na instancji wynikowej. A zatem, rozwa»any przez nas
parametryzowany problem pokrycia wierzchoªkowego ma j¡dro o O(k
2)
wierzchoªkach i O(k
2) kraw¦dziach.
Pokrycie wierzchoªkowe - algorytm kernelizacji
Trzy reguªy redukcji (G, k):
I Reguªa 1: Je»eli G posiada wierzchoªek izolowany, usu« go z G. Nowa instancja: (G \ v, k).
I Reguªa 2: Je»eli G posiada wierzchoªek v o stopniu istotnie wi¦kszym od k, usu« go z G. Nowa instancja:(G \ v, k − 1).
I Reguªa 3: Je»eli nie mo»emy stosowa¢ reguªy 1 oraz 2, oraz je»eli G posiada istotnie wi¦cej ni» k
2+ k wierzchoªków b¡d¹ istotnie wi¦cej ni» k
2kraw¦dzi, zwró¢ prost¡ NIE instancj¦.
Ka»da z tych reguª jest poprawna tzn. instancja przed zastosowaniem ka»dej z
reguª jest równowa»na instancji wynikowej. A zatem, rozwa»any przez nas
parametryzowany problem pokrycia wierzchoªkowego ma j¡dro o O(k
2)
wierzchoªkach i O(k
2) kraw¦dziach.
Pokrycie wierzchoªkowe - algorytm kernelizacji
Trzy reguªy redukcji (G, k):
I Reguªa 1: Je»eli G posiada wierzchoªek izolowany, usu« go z G. Nowa instancja: (G \ v, k).
I Reguªa 2: Je»eli G posiada wierzchoªek v o stopniu istotnie wi¦kszym od k, usu« go z G. Nowa instancja:(G \ v, k − 1).
I Reguªa 3: Je»eli nie mo»emy stosowa¢ reguªy 1 oraz 2, oraz je»eli G posiada istotnie wi¦cej ni» k
2+ k wierzchoªków b¡d¹ istotnie wi¦cej ni»
k
2kraw¦dzi, zwró¢ prost¡ NIE instancj¦.
Ka»da z tych reguª jest poprawna tzn. instancja przed zastosowaniem ka»dej z
reguª jest równowa»na instancji wynikowej. A zatem, rozwa»any przez nas
parametryzowany problem pokrycia wierzchoªkowego ma j¡dro o O(k
2)
wierzchoªkach i O(k
2) kraw¦dziach.
Pokrycie wierzchoªkowe - algorytm kernelizacji
Trzy reguªy redukcji (G, k):
I Reguªa 1: Je»eli G posiada wierzchoªek izolowany, usu« go z G. Nowa instancja: (G \ v, k).
I Reguªa 2: Je»eli G posiada wierzchoªek v o stopniu istotnie wi¦kszym od k, usu« go z G. Nowa instancja:(G \ v, k − 1).
I Reguªa 3: Je»eli nie mo»emy stosowa¢ reguªy 1 oraz 2, oraz je»eli G posiada istotnie wi¦cej ni» k
2+ k wierzchoªków b¡d¹ istotnie wi¦cej ni»
k
2kraw¦dzi, zwró¢ prost¡ NIE instancj¦.
Ka»da z tych reguª jest poprawna tzn. instancja przed zastosowaniem ka»dej z
reguª jest równowa»na instancji wynikowej. A zatem, rozwa»any przez nas
parametryzowany problem pokrycia wierzchoªkowego ma j¡dro o O(k
2)
wierzchoªkach i O(k
2) kraw¦dziach.
Minimalny zbiór przecinaj¡cy wszystkie cykle w turnieju
Problem parametryzowany (T , k): czy turniej T ma zbiór k kraw¦dzi, które
przecinaj¡ wszystkie cykle turnieju T ?
Zbiór przecinaj¡cy wszystkie cykle w turnieju
I F zbiór kraw¦dzi turnieju,
I T ◦ F turniej powstaªy z T poprzez odwrócenie kraw¦dzi z F .
Lemat
Zbiór F kraw¦dzi turnieju T jest minimalnym zbiorem przecinaj¡cym wszystkie cykle T wtedy i tylko wtedy, gdy F jest minimalnym zbiorem kraw¦dzi takim,
»e T ◦ F jest acykliczny.
F - minimalny zbiór przecinaj¡cy wszystkie cykle ⇒ F - minimalny zbiór taki,
»e T ◦ F jest acykliczny.
I F minimalny zbiór przecinaj¡cy wszystkie cykle T , I zaªó»my, »e T ◦ F zawiera cykl C,
I niech f
1, . . . , f
kb¦d¡ wszystkimi kraw¦dziami z C, którym zmieniono kierunek,
I z minimalno±ci F , ka»da kraw¦d¹ f z F le»y na (prywatnym) cyklu C
fw T , który nie zawiera innych kraw¦dzi z F ,
I cykl C wraz z cyklami C
fidla i = 1, . . . , k daje cykl w T omijaj¡cy kraw¦dzie z F , sprzeczno±¢.
I minimalno±¢ F jest oczywista.
Zbiór przecinaj¡cy wszystkie cykle w turnieju
I F zbiór kraw¦dzi turnieju,
I T ◦ F turniej powstaªy z T poprzez odwrócenie kraw¦dzi z F .
Lemat
Zbiór F kraw¦dzi turnieju T jest minimalnym zbiorem przecinaj¡cym wszystkie cykle T wtedy i tylko wtedy, gdy F jest minimalnym zbiorem kraw¦dzi takim,
»e T ◦ F jest acykliczny.
F - minimalny zbiór taki, »e T ◦ F jest acykliczny ⇒ F - minimalny zbiór przecinaj¡cy wszystkie cykle T .
I F - minimalny zbiór taki, »e T ◦ F jest acykliczny, I F - zbiór kraw¦dzi przecinaj¡cy wszystkie cykle,
I je»eli istnieje mniejszy zbiór F
0w F przecinaj¡cy wszystkie cykle, to
T ◦ F
0jest acykliczny (z poprzedniej cz¦±ci).
Zbiór przecinaj¡cy wszystkie cykle w turnieju - kernelizacja
( T , k): czy T ma zbiór kraw¦dzi F o mocy k taki, »e T ◦ F jest acykliczny?
Trójk¡t w turnieju: trzy wierzchoªki turnieju le»¡ce na cyklu. Reguªy redukcji instancji (T , k):
I Reguªa 1: Je»eli kraw¦d¹ e nale»y do k + 1 trójk¡tów, odwró¢ e i zmniejsz k o 1.
I Reguªa 2: Je»eli wierzchoªek e nie nale»y do »adnego trójk¡ta, usu« go z T i pozostaw k bez zmian.
I Reguªa 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ i je»eli turniej ma istotnie wi¦cej ni» k
2+ 2k wierzchoªków, zwró¢ NIE instancj¦.
Poprawno±¢ Reguªy 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ oraz turniej ma zbiór F taki, »e T ◦ F jest acykliczny, to ka»dy wierzchoªek turnieju nale»y do trójk¡ta, którego jedna z kraw¦dzi nale»y do F .
Powy»szy algorytm daje j¡dro rozmiaru O(k
2) .
Zbiór przecinaj¡cy wszystkie cykle w turnieju - kernelizacja
( T , k): czy T ma zbiór kraw¦dzi F o mocy k taki, »e T ◦ F jest acykliczny?
Trójk¡t w turnieju: trzy wierzchoªki turnieju le»¡ce na cyklu.
Reguªy redukcji instancji (T , k):
I Reguªa 1: Je»eli kraw¦d¹ e nale»y do k + 1 trójk¡tów, odwró¢ e i zmniejsz k o 1.
I Reguªa 2: Je»eli wierzchoªek e nie nale»y do »adnego trójk¡ta, usu« go z T i pozostaw k bez zmian.
I Reguªa 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ i je»eli turniej ma istotnie wi¦cej ni» k
2+ 2k wierzchoªków, zwró¢ NIE instancj¦.
Poprawno±¢ Reguªy 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ oraz turniej ma zbiór F taki, »e T ◦ F jest acykliczny, to ka»dy wierzchoªek turnieju nale»y do trójk¡ta, którego jedna z kraw¦dzi nale»y do F .
Powy»szy algorytm daje j¡dro rozmiaru O(k
2) .
Zbiór przecinaj¡cy wszystkie cykle w turnieju - kernelizacja
( T , k): czy T ma zbiór kraw¦dzi F o mocy k taki, »e T ◦ F jest acykliczny?
Trójk¡t w turnieju: trzy wierzchoªki turnieju le»¡ce na cyklu.
Reguªy redukcji instancji (T , k):
I Reguªa 1: Je»eli kraw¦d¹ e nale»y do k + 1 trójk¡tów, odwró¢ e i zmniejsz k o 1.
I Reguªa 2: Je»eli wierzchoªek e nie nale»y do »adnego trójk¡ta, usu« go z T i pozostaw k bez zmian.
I Reguªa 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ i je»eli turniej ma istotnie wi¦cej ni» k
2+ 2k wierzchoªków, zwró¢ NIE instancj¦.
Poprawno±¢ Reguªy 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ oraz turniej ma zbiór F taki, »e T ◦ F jest acykliczny, to ka»dy wierzchoªek turnieju nale»y do trójk¡ta, którego jedna z kraw¦dzi nale»y do F .
Powy»szy algorytm daje j¡dro rozmiaru O(k
2) .
Zbiór przecinaj¡cy wszystkie cykle w turnieju - kernelizacja
( T , k): czy T ma zbiór kraw¦dzi F o mocy k taki, »e T ◦ F jest acykliczny?
Trójk¡t w turnieju: trzy wierzchoªki turnieju le»¡ce na cyklu.
Reguªy redukcji instancji (T , k):
I Reguªa 1: Je»eli kraw¦d¹ e nale»y do k + 1 trójk¡tów, odwró¢ e i zmniejsz k o 1.
I Reguªa 2: Je»eli wierzchoªek e nie nale»y do »adnego trójk¡ta, usu« go z T i pozostaw k bez zmian.
I Reguªa 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ i je»eli turniej ma istotnie wi¦cej ni» k
2+ 2k wierzchoªków, zwró¢ NIE instancj¦.
Poprawno±¢ Reguªy 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ oraz turniej ma zbiór F taki, »e T ◦ F jest acykliczny, to ka»dy wierzchoªek turnieju nale»y do trójk¡ta, którego jedna z kraw¦dzi nale»y do F .
Powy»szy algorytm daje j¡dro rozmiaru O(k
2) .
Zbiór przecinaj¡cy wszystkie cykle w turnieju - kernelizacja
( T , k): czy T ma zbiór kraw¦dzi F o mocy k taki, »e T ◦ F jest acykliczny?
Trójk¡t w turnieju: trzy wierzchoªki turnieju le»¡ce na cyklu.
Reguªy redukcji instancji (T , k):
I Reguªa 1: Je»eli kraw¦d¹ e nale»y do k + 1 trójk¡tów, odwró¢ e i zmniejsz k o 1.
I Reguªa 2: Je»eli wierzchoªek e nie nale»y do »adnego trójk¡ta, usu« go z T i pozostaw k bez zmian.
I Reguªa 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ i je»eli turniej ma istotnie wi¦cej ni» k
2+ 2k wierzchoªków, zwró¢ NIE instancj¦.
Poprawno±¢ Reguªy 3: Je»eli Reguªy 1 i 2 si¦ nie stosuj¡ oraz turniej ma zbiór F taki, »e T ◦ F jest acykliczny, to ka»dy wierzchoªek turnieju nale»y do trójk¡ta, którego jedna z kraw¦dzi nale»y do F .
Powy»szy algorytm daje j¡dro rozmiaru O(k
2) .
Programowanie Liniowe
Problem Programowania Liniowego jest problemem optymalizacyjnym zdeniowanym nast¦puj¡co:
zminimalizuj: P
n j=1c
jx
jprzy warunkach: P
nj=1
a
ijx
j≥ b
ii = 1, . . . , m x
j≥ 0 j = 1, . . . , n.
W Programowaniu Liniowym Caªkowitoliczbowym ILP (Zero-Jedynkowym 01LP) na zmienne x
inakªadamy warunek x
i∈ Z (x
i∈ {0, 1} odpowiednio).
I Istniej¡ algorytmy o wielomianowym czasie dziaªania dla problemu Programowania Liniowego.
I Problem Programowania Caªkowitoliczbowego jest NP-trudny.
Pokrycie wierzchoªkowe - programowanie caªkowitoliczbowe
Problem pokrycia wierzchoªkowego jest równowa»ny rozwi¡zaniu nast¦puj¡cego programu caªkowitoliczbowego:
zminimalizuj: P
n j=1x
jprzy warunkach: x
i+ x
j≥ 1 dla ka»dej kraw¦dzi {i, j} grafu G
x
i∈ {0, 1}, i = 1, . . . , n. (1)
Relaksacja powy»szego programu wygl¡da nast¦puj¡co:
zminimalizuj: P
nj=1
x
jprzy warunkach: x
i+ x
j≥ 1 dla ka»dej kraw¦dzi {i, j} grafu G
x
i≥ 0 i = 1, . . . , n. (2)
J¡dro rozmiaru 6 2k
I Przyjmijmy: x
i∗rozwi¡zanie równania (2).
I Je»eli P
ni=1x
i∗> k, to zwró¢ NIE (pokrycie wierzchoªkowe rozmiaru 6 k przekªada si¦ na dopuszczalne rozwi¡zanie (2) o koszcie 6 k).
I Przyjmijmy:
V
0= {x
i∈ V : x
i∗<
12} V
12
= {x
i∈ V : x
i∗=
12} V
1= {x
i∈ V : x
i∗>
12} .
Lemat
Istnieje minimalne (na liczno±¢) pokrycie wierzchoªkowe S
∗grafu G takie, »e V
1⊆ S
∗⊆ V
1∪ V
12
. J¡dro rozmiaru 6 2k: zwró¢ podgraf indukowany na V
12