Wprowadzenie
W poprzednim wykładzie zajmowaliśmy się algorytmami
aproksymacyjnymi dla przykładowych trudnych problemów
optymalizacyjnych. Dla większości z tych algorytmów udawało nam się
podać gwarancję dokładności za pomocą stałego współczynnika
efektywności przybliżenia.
W tym module postawimy sobie znacznie ambitniejsze zadanie.
Będziemy szukać algorytmów, którym na wejściu ustala się
dopuszczalny błąd przybliżenia rozwiązania optymalnego. Pokażemy
problemy, dla których jest możliwa taka "dowolnie dokładna"
aproksymacja.
W drugiej części poznamy klasę
. Jest to bardzo szeroka i interesująca klasa problemów optymalizacyjnych, a pytanie o to, czy należące do niej problemy mogą być dowolnie dobrze aproksymowane, było bardzo istotnym zagadnieniem teorii algorytmów aproksymacyjnych. Odpowiedź na to pytanie poznamy dopiero w następnym module.
Schematy aproksymacji
Żeby wyrazić te nowe oczekiwania potrzebujemy nowych notacji:
Definicja 2.1
Mówimy, że algorytm
jest {schematem aproksymacji} dla problemu
-optymalizacyjnego
, jeżeli dla wejścia
, gdzie
jest instancją problemu
, a
opisuje dopuszczalny błąd, znajduje rozwiązanie takie, że:
dla problemu minimalizacji.
dla problemu maksymalizacji.
Definicja 2.2
Zauważmy, że w tej definicji wymagamy wielomianowego czasu działania
tylko względem rozmiaru instancji przy ustalonym dopuszczalnym
błędzie. Oznacza to, że czas działania może być nawet wykładniczy
względem wartości parametru
. Nie jest to sytuacja
komfortowa. Możemy w związku z tym wzmocnić wymagania postawione dla
algorytmu.
Definicja 2.3
Wskazówka
Wykorzystaj ograniczenie na wartości funkcji celu do zdefiniowania odpowiedniego
progu dopuszczalnego błędu w algorytmie FPTAS. Otrzymasz algorytm pseudowielomianowy
dla silnie
-zupełnej decyzyjnej wersji problemu
.
Rozwiązanie
Niech
będzie problemem maksymalizacji z funkcją celu
(dla problemu minimalizacji dowód przebiega
analogicznie). Załóżmy, że jej wartości są całkowite dodatnie oraz
dla każdej instancji
,
, gdzie
jest pewnym wielomianem dwóch zmiennych, a Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle NUM(I)}
jest skojarzoną
z problemem funkcją określającą wartość największej liczby
występującej w instancji. Załóżmy, że Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle A}
jest FPTAS dla Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \Pi}
.
Skonstruujemy algorytm pseudowielomianowy dla Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \Pi}
.
Na wejściu dana jest instancja Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle I}
. Algorytm składa sie z dwóch
kroków:
1. oblicz Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \delta = 1/p(|I|,NUM(I))}
,
2. zastosuj Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle A}
dla instancji Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle I}
i dokładności Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \delta}
obliczone
rozwiązanie dopuszczalne Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle S}
wypisz na wyjście.
Ponieważ Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \Pi}
jest maksymalizacyjny, więc Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \text{obj}_\Pi(I,S)\geq (1-\delta)}
. Zatem Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \text{opt}(I)-\text{obj}_\Pi(I,S) \leq \delta \, \text{opt}(I) < 1}
.
Z tego, że wartości funkcji celu są całkowitoliczbowe, wynika
Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \text{obj}_\Pi(I,S)=\text{opt}(I)}
, a zatem nasz algorytm znajduje rozwiązania
optymalne. Zgodnie z definicją FPTAS, algorytm działa w czasie
wielomianowym od Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle |I|}
oraz Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 1/\delta}
, jest to więc algorytm
pseudowielomianowy dla Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \Pi}
.
Z analizowanych w poprzednim wykładzie własności silnej
NP-zupełności wynika, że musi to być algorytm wielomianowy dla
, co oczywiście jest sprzeczne z założeniem
.
Schemat aproksymacji dla problemu KNAPSACK
Pokazaliśmy, że nie warto szukać algorytmów FPTAS dla problemów silnie
-zupełnych. Rozpoczniemy w związku z tym dalsze poszukiwania schematów aproksymacyjnych od przyjrzenia się raz jeszcze problemowi plecakowemu. Wiemy, że nie jest to problem silnie
-zupełny i znamy dla niego algorytm pseudowielomianowy. Bardzo często istnienie algorytmu pseudowielomianowego można wykorzystać przy konstrukcjii schematów aproksymacji. Zobaczymy teraz klasyczną konstrukcję opartą o ten pomysł.
Pokażemy teraz algorytm pseudowielomianowy rozwiązujący problem KNAPSACK. Poznaliśmy już jeden taki alorytm, ale tamten nie nadaje się do konstrukcji schematu aproksymacji.
Algorytm 3.1 [Algorytm pseudowielomianowy dla problemu plecakowego]
1. Oblicz
.
2. Oblicz
określone dla
i
jako "minimalny sumaryczny rozmiar podzbioru przedmiotów
taki, że sumaryczna wartość tych przedmiotów wynosi dokładnie
". Obliczenia można dokonać metodą dynamiczną, korzystając z następujących własności rekurencyjnych:
3. Odczytaj rozwiązanie z wartości
.
Algorytm ten można zakodować tak, aby znajdował optymalne rozwiązanie w czasie
. Szczegóły implementacji pozostawiamy jako ćwiczenie.
Zauważmy, że gdyby wartości przedmiotów były ograniczone przez wielomianową funkcję
, to skonstruowany algorytm byłby wielomianowy. To jest podstawą schematu aproksymacji, który będzie zaokrąglał wartości przedmiotów tak, aby były one wielomianowe względem
i
. Oto algorytm:
Algorytm 3.2 [Algorytm zaokrągleniowy]
1. Oblicz
.
2. Dla każdego przedmiotu oblicz
.
3. Używając algorytmu pseudowielomianowego, rozwiąż problem z wartościami
.
Twierdzenie 3.3
Algorytm zaokrągleniowy jest FPTAS dla problemu plecakowego.
Dowód
Ćwiczenie 3.4
Algorytm pseudowielomianowy.
Doprecyzuj implementację algorytmu pseudowielomianowego dla problemu plecakowego. Jak odzyskać wybór przedmiotów z tablicy
?
Wskazówka
Użyj standardowej konstrukcji algorytmu dynamicznego w oparciu o
podane własności rekurencyjne.
Rozwiązanie
Następujący program wypełni tablicę
:
for
do
end for
for
do
for
do
if
and
then
end if
end for
end for
A ten pozowoli odszukać rozwiązanie optymalne:
for
do
if
end if
end for
while
do
if
then
else
end if
end while
return
Asymptotyczny PTAS dla BIN PACKING
Pokazaliśmy, że problem plecakowy może być aproksymowalny z dowolną
dokładnością w czasie wielomianowo zależnym od wielkości danych i
dopuszczalnego błędu. Dla problemuu pakowania nie możemy się
spodziewać równie dobrych wyników. Jest to problem silnie
-zupełny i o ile
, to nie może istnieć FPTAS.
Pokazaliśmy również, że nie ma algorytmu osiągającego stałą
aproksymacji mniejszą od
. Dowód opierał się o fakt, że
o ile
, to nie da się efektywnie sprawdzać, czy da się
przedmioty upakować do dwóch pojemników.
Instancje, które zabraniały aproksymacji lepszej niż
miały ograniczoną wartość optimum. Skonstruujemy teraz asymptotyczny
PTAS dla problemu pakowania, który może osiągać dowolnie dobrą
aproksymację, ale dla odpowiednio dużych wartości optimum.
Precyzując, podamy rodzinę algorytmów
dla
działających w czasie wielomianowym od liczby przedmiotów i znajdujących rozwiązanie używające co najwyżej
pojemników.
Zanim będziemy mogli przedstawić algorytmy
musimy pokazać dwa pomocnicze lematy, które pokazują rozwiązania dla pewnych uproszczonych instancji problemu.
Lemat 4.1
Dowód
Uwaga 4.2
Niestety czas tego algorytmu jest wielomianem stopnia
. Jest to bardzo wysoki stopień i przez to algorytm ten nie może być traktowany jako praktyczne rozwiązanie problemu.
Lemat 4.3
Dowód
Algorytm 4.4 [Algorytm dzielący na grupy]
1. Oblicz
.
2. Posortuj przedmioty względem rosnącego rozmiaru i podziel posortowany ciąg na
grup tak, aby w każdej grupie było co najwyżej
przedmiotów.
3. Zamień rozmiar każdego z przedmiotów na rozmiar największego przedmiotu w tej samej grupie.
4. Użyj algorytmu z poprzedniego lematu działającego na przedmiotach o
różnych rozmiarach nie mniejszych niż
.
Niech
będzie instancją podaną na wejściu algorytmu. Niech
będzie instancją otrzymaną w trzecim kroku algorytmu, a
instancją, którą otrzymalibyśmy, zamieniając rozmiar każdego z przedmiotów na rozmiar najmniejszego w tej samej grupie.
Wynikiem działania algorytmu jest rozwiązanie optymalne dla instancji
. Musimy wykazać, że
. Łatwo jest uzasadnić oszacowanie
.
Możemy teraz zauważyć, że każde rozwiązanie instancjii
wyznacza pewne rozwiązanie dla
, ponieważ najmniejszy przedmiot z
grupy przedmiotów jest większy lub równy największemu przedmiotowi z grupy
. Zatem rozwiązanie instancji
pozwala upakować wszystkie przedmioty z instancji
oprócz ostatniej grupy. Więc nawet jeżeli każdy z tych przedmiotów zostałby upakowany do osobnego pojemnika, otrzymujemy ograniczenie:
Ostatnia nierówność wynika z tego, że
. Pokazaliśmy zatem, że algorytm jest
-aproksymacyjny.

Mając w ręku te dwa pomocnicze lematy, możemy już pokazać algorytm
.
Dowód
Ćwiczenie 4.7
Aproksymacja dla problemu PARTITION.
Optymalizacyjna wersja problemu PARTITION powstaje, kiedy chcemy wybrać podzbiór
taki, że minimalizuje wartość
.
Uzasadnij, że dla tego problemu nie ma algorytmu PTAS.
Inna wersja optymalizacyjna problemu PARTITION powstaje, kiedy mierzymy odległość od równomiernego podziału przez iloraz zamiast przez różnicę. Chcemy wtedy wybrać podzbiór
taki, że iloraz:
jednocześnie minimalizując wartość tego ilorazu.
Pokaż algorytm FPTAS dla tej wersji problemu PARTITION.
Wskazówka
Zauważ, że optimum dla pierwszego problemu wynosi
wtedy i tylko wtedy, gdy elementy wejściowe są pozytywnym przykładem dla zwykłego problemu PARTITION.
Konstrukcję FPTAS dla drugiego problemu rozpocznij od przypomnienia sobie algorytmu pseudowielomianowego.
Rozwiązanie
Pokażemy, że dla pierwszego problemu nie istnieje żaden algorytm
-aproksymacyjny. To w oczywisty sposób pociąga za sobą brak algorytmu PTAS.
Ponieważ optimum dla pierwszego problemu wynosi
tylko dla takiego zbioru
, który da się podzielić na dwie równe części, więc dowolny algorytm
-aproksymacyjny musiałby znajdować rozwiązanie nie większe niż
i tym samym rozstrzygać problem PARTITION.
Żeby skonstruować FPTAS dla drugiego problemu, załóżmy, że
i przypomnijmy, że znamy algorytm pseudowielomianowy dla tego problemu.
Algorytm FPTAS dla tego problemu powstaje poprzez zaokrąglenie liczb podanych na wejściu i wykonanie pseudowielomianowego algorytmu dokładnego.
Przyjmując
i
i znajdując rozwiązanie dokładne przy
, możemy przeprowadzić analizę podobną do tej wykorzystanej w problemie KNAPSACK. Są jednak subtelne różnice.
Może się zdarzyć, że podzbiór
znaleziony przy wagach
nie jest rozwiązaniem dopuszczalnym przy wagach
, gdyż
nie pociąga za sobą takiej samej nierówności przy wagach
. Z problemem tym możemy sobie na szczęście łatwo poradzić, zamieniając znaleziony zbiór
na
. Dalszą analizę przeprowadzimy tylko w przypadku, kiedy nie jest potrzebna taka zamiana, gdyż drugi przypadek jest analogiczny.
Możemy zatem zapisać następujący ciąg nierówności, gdzie
jest rozwiązaniem optymalnym:
Przy przekształceniach korzystamy z własności zaokrągleń, a ostatnia nierówność wynika z tego, że
.
Ćwiczenie 4.8
Problem BIN COVERING.
Rozważ problem dualny do BIN PACKING:
Problem
Pokrywanie BIN COVERING.
Mając dany zbiór
przedmiotów o wagach wymiernych
, należy znaleźć przyporządkowanie ich do jak największej liczby pojemników. Suma wag przedmiotów w jednym pojemniku musi przekraczać
, a część przedmiotów może być w ogóle niewykorzystana.
Można się domyślać, że problem ten ma charakterystykę podobną do BIN PACKING.
Pokaż, że o ile
, to nie ma dla niego algorytmu
-aproksymacyjnego dla
. Skonstruuj asymptotyczny PTAS przy dodatkowym założeniu, że rozmiary wszystkich przedmiotów są większe niż pewna stała
(istnieje również asymptotyczny PTAS bez tego dodatkowego założenia, ale jego analiza jest znacznie trudniejsza).
Rozwiązanie
Aby pokazać pierwszą część, wystarczy zauważyć, że jeżeli mamy instancję problemu PARTITION z elementami
i sumą wag
, to przy użyciu przedmiotów o wagach
można pokryć
pojemniki tylko wtedy, kiedy da się elementy
rozbić na dwa podzbiory o tej samej wadze sumarycznej. Zatem algorytm
-aproksymacyjny dla
pozwoliłby rozstrzygać o problemie PARTITION.
Konstrukcja asymptotycznego PTAS przebiega dokładnie tak samo jak dla prolemu BIN PACKING.
Istnieje algorytm, który dla instancji z co najwyżej
różnymi wagami większymi niż
w czasie wielomianowym podaje rozwiązanie optymalne. Tak jak poprzednio można wtedy rozważyć wszystkie przypadki, których jest wielomianowo wiele.
Dla zadanego
i ograniczeniu instancji do zawierających przedmioty większe niż
możemy przeprowadzić taki sam podział przedmiotów na
grup tak, aby w każdej grupie było co najwyżej
przedmiotów, a następnie zastosować algorytm dokładny dla zaokrągleń do najmniejszego przedmiotu w grupie.
Powtórzenie tej samej analizy pokazuje, że jest to algorytm
-aproksymacyjny.
Dodatkowe założenie o tym, że
, pozwala dla
,nie rozważać przedmiotów o wagach mniejszych od
. Jeżeli natomiast
, możemy użyć algorytmu
.
L-redukcje
Wprowadzimy teraz pojęcie redukcji zachowującej aproksymację. Pozwoli nam to na bardziej systematyczne niż do tej pory zbadanie klasy problemów, dla których możliwa jest aproksymacja. W dalszej części będziemy poszukiwać klasy problemów aproksymowalnych i problemów w tej klasie zupełnych względem podanej redukcji. Definicja interesującej nas redukcji jest podobna do tej, jaką wprowadziliśmy pomiędzy problemami funkcyjnymi.
Definicja 5.1
Intuicyjnie, funkcja
L-redukcji (redukcji liniowej) zamienia instancję problemu
na instancję problemu
, nie zmieniając wartości rozwiązania optymalnego bardziej niż o stałą
. Funkcja
pozwala natomiast przeprowadzić dowolne z rozwiązań z powrotem na rozwiązanie instancji
, nie zmieniając odległości od optimum bardziej niż o stałą
.
Uwaga 5.2
Warto zauważyć, że definicja L-redukcji nie zależy od tego, czy problemy
i
są problami minimalizacyjnymi, czy maksymalizacyjnymi.
Przyjrzyjmy się teraz jeszcze raz redukcji problemu zbioru niezależnego do pokrycia wierzchołkowego. Jest ona oparta o fakt, że problemy te są do siebie dualne. Dopełnienie dowolnego zbioru niezależnego jest pokryciem wierzchołkowym i na odwrót.
Definicje odpowiednich funkcji są w związku z tym bardzo proste.
to po prostu funkcja identycznościowa na grafach, a
zwraca dopełnienie zbioru wierzchołków. Okazuje się, że nie jest to jednak L-redukcja, gdyż stosunku rozmiarów rozwiązań obu problemów nie da się w żaden sposób ograniczyć przez stałe.
Takie ograniczenie można uzyskać, zawężając klasę grafów. Jeżeli ograniczymy maksymalny stopień wierzchołków występujących w grafie przez liczbę
, to otrzymamy problemy
-INDPENDENT SET i
-VERTEX COVER. Przypomnijmy, że z redukcji problemu
SAT wynika, że już problem
-INDEPENDENT SET jest
-zupełny.
Pokażemy, że funkcje
i
tworzą L-redukcję problemu
-INDEPENDENT SET do
-NODE COVER.
Zauważmy, że dla grafu
ze stopniem wierzchołków ograniczonym przez
rozmiar maksymalnego zbioru niezależnego to co najmniej
. Dla każdego zbioru niezależnego o mniejszym rozmiarze, zbiór jego wszystkich sąsiadów jest co najwyżej
razy większy i nie obejmuje w związku z tym całego grafu. Można zatem taki zbiór niezależny poszerzyć.
Tymczasem minimalne pokrycie wierzchołkowe ma w oczywisty sposób co najwyżej
elementów. W związku z tym możemy ustalić wartość parametru
na
.
Wystarczy teraz zauważyć, że odległość rozwiązania znalezionego od optymalnego nie zmienia się przy przejściu przez funkcję
. W związku z tym możemy ustalić wartość parametru
na
.
Ta krótka analiza pozwala stwierdzić, że para
jest L-redukcją problemu
-INDEPENDENT SET do
-NODE COVER.
Można też skonstruować odwrotną L-redukcję problemu
-NODE COVER do
-INDEPENDENT SET. Oczywiście należy użyć tych samych funkcji
i
, ale żeby uzyskać liniową zależność rozmiaru maksymalnego zbioru niezależnego od minimlanego pokrycia wierzchołkowego trzeba się trochę postarać. Zauważmy, że dla antykliki rozmiar minimalnego pokrycia wierzchołkowego wynosi
, a maksymalny zbiór niezależny ma rozmiar równy ilości wierzchołków. Wynika stąd, że punkty izolowane mogą sprawiać problem dla L-redukcji.
W nowej redukcji funkcja
będzie usuwać wierzchołki izolowane z grafu (które i tak nie należą do minimalnego pokrycia wierzchołkowego). Funkcja
nadal będzie zamieniać zbiór wierzchołków na jego uzupełnienie (ale tylko w obrębie wierzchołków nieizolowanych). Rozmiar minimalnego pokrycia wierzchołkowego w grafie bez wierzchołków izolowanych wynosi co najmniej
ponieważ jest co najmniej
krawędzi, a każdy wierzchołek pokrywa co najwyżej
z nich. To oszacowanie pozwala nam stwierdzić, że nowa redukcja jest L-redukcją z parametrami
i
.
Wskazówka
Współczynniki nowej redukcji są iloczynami współczynników redukcji
i
.
Rozwiązanie
Niech
i
będą współczynnikami pierwszej redukcji, a
i
drugiej. Zatem dla dowolnej instancji
problemu
zachodzi:
Dla dowolnego rozwiązania dopuszczalnego
, dla
zachodzi:
Zatem skonstruowana redukcja jest L-redukcją z parametrami
i
.
Rozwiązanie
Niech
będzie L-redukcją problemu
do
ze stałymi
i
.
Niech
będzie
-aproksymacyjnym algorytmem dla problemu
. Skonstruujemy teraz algorytm
dla problemu
, którego działanie dla dowolnej instancji
można opisać poprzez równanie:
Załóżmy, że
jest problemem maksymalizacyjnym.
Fakt, że
jest algorytmem
-aproksymacyjnym i własności L-redukcji gwarantują nam wtedy następujące nierówności:
co po prostym przekształceniu daje:
i pozwala stwierdzić, że
jest algorytmem
-aproksymacyjnym.
Jeżeli
jest problemem minimalizacyjnym to analogiczna analiza dowodzi, że
jest algorytmem
-aproksymacyjnym dla
.
Przeprowadzenie analogicznego rozumowania przy założeniu, że
jest problemem maksymalizacyjnym prowadzi do następujących nierówności:
dla
maksymalizacyjnego i
dla
minimalizacyjnego.
Te wyniki nie pozwalają przenieść gwarancji aproksymacji, gdyż otrzymane współczynniki mogą być ujemne, ale wszystkie cztery ograniczenia mają tę własność, że zmierzają do
przy
zmierzającym do
. To pozwala przenieść PTAS dla problemu
na PTAS dla problemu
.
Ćwiczenie 5.5
Różnica optimum dla NODE COVER i INDEPENDENT SET.
Pokaż, że dla dowolnej liczby wymiernej
można skonstruować graf, dla którego iloraz rozmiaru maksymalnego zbioru niezależnego do minimalnego pokrycia wierzchołkowego wynosi
.
Klasa 
Wprowadzimy teraz formalną definicję klasy
, która pozwoli nam bardziej metodycznie zbadać problemy optymalizacyjne. Dalsze badania nad tą klasą doprowadzą nas do bardzo ciekawych rezultatów dotyczących możliwości aproksymacji.
Zaczniemy od zdefiniowania klasy
, która opisuje problemy maksymalizacyjne. Jej charakteryzacja jest analogiczna do charakteryzacji klasy
podanej w twierdzeniu Fagina.
Definicja 6.1
Problem
należy do klasy
, jeżeli można go wyrazić za pomocą formuły:
Wejściem dla problemu
jest ciąg relacji (być może wieloargumentowych)
nad skończonym uniwersum
. Poszukiwana jest natomiast relacja
, która maksymalizowałaby liczbę naborów zmiennych
takich, że formuła pierwszego rzędu bez kwantyfikatorów
jest spełniona.
Definicja 6.2
Klasa
jest domknięciem
ze względu na L-redukcje.
Zobaczmy teraz przykład problemu, który należy do
. Wybierzemy problem
-INDEPENDENT SET. Zwykła reprezentacja grafu poprzez relację binarną nie pozwala wygodnie przedstawić ograniczenia stopnia wierzchołka i raczej nie prowadzi do reprezentacji poprzez odpowiednią formułę. Dlatego użyjemy niestandardowej reprezentacji grafu poprzez
-argumentową relację
. Każdemu wierzchołkowi
odpowiada jedna krotka relacji
-
, która koduje sąsiedztwo wierzchołka
. Wierzchołki
to sąsiedzi
. Jeżeli
nie ma
sąsiadów, to na brakujących pozycjach występuje
. Problem
-zbioru niezależnego koduje się wtedy w następujący sposób:
Wybór relacji
koduje pewien podzbiór wierzchołków. Formuła kodująca problem jest spełniona dla krotek odpowiadających tym wierzchołkom
, które należą do wybranego zbioru, a żaden z sąsiadów nie należy. Odpowiada to więc zbiorowi niezależnemu.
Pokazaliśmy zatem, że problem
-INDEPENDENT SET należy do klasy
.
Natychmiastowym wnioskiem jest, że problem
-NODE COVER jest problemem z
. Znamy przecież jego L-redukcję do
-INDEPENDENT SET.
Ćwiczenie 6.3
MAX CUT w
.
Pokaż, że problem MAX CUT należy do
.
Wskazówka
Użyj zwykłej binarnej reprezentacji grafu do skonstruowania odpowiedniej formuły pokazującej, że MAX CUT należy do
.
Rozwiązanie
Formuła kodująca problem MAX CUT to:
Problemy MAXSAT i MAX FUNCTION SAT
Problem maksymalnej spełnialności MAXSAT i jego zawężenia pełnią podobną rolę dla klasy
jak problem SAT dla
. W tej części przyjrzymy się dokładniej temu problemowi i jego różnym wersjom. Podamy również algorytmy aproksymacyjne i udowodnimy zupełność zawężeń tego problemu dla klasy
.
Przypomnijmy, że na wejściu problemu MAXSAT dostajemy formułę logiczną w koniunkcyjnej postaci normalnej z
zmiennymi. Poszukujemy takiego wartościowania tych zmiennych, które zmaksymalizowałoby liczbę spełnionych klauzul. Dla wygody dodajemy warunek, aby każda z klauzul była inna.
-aproksymację problemu MAXSAT można osiągnąć bardzo prostą metodą:
Twierdzenie 7.2
Podany algorytm jest algorytmem
-aproksymacyjnym.
Dowód
Zauważmy, że jeżeli któraś z alternatyw jest niespełniona przy wartościowaniu
, to musi być spełniona przy wartościowaniu
. Jeżeli alternatywa jest niespełniona przy jakimś wartościowaniu, to znaczy, że każda ze zmiennych występujących w klauzuli jest wartościowana odwrotnie niż jej wystąpienie. Zatem przy wartościowaniu odwrotnym każdy z literałów występujących w alternatywie jest wartościowany pozytywnie i alternatywa musi być spełniona.
Jeżeli zatem oznaczymy przez
- liczbę alternatyw w formule, przez
liczbę alternatyw spełnionych przy wartościowaniu
, a przez
liczbę alternatyw spełnionych przy wartościowaniu
, to zachodzą następującee nierówności:
Ponieważ algorytm wybiera to z wartościowań
lub
, przy którym więcej alternatyw jest spełnionych, to liczba spełnionych alternatyw jest nie mniejsza niż
. Nawet jeżeli rozwiązanie optymalne zapewnia spełnienie wszystkich
alternatyw, to algorytm jest
-aproksymacyjny.

Pokażemy teraz pewną wariację na temat problemu MAXSAT.
Problem
Problem maksymalnej spełnialności funkcyjnej MAX FUNCTION SAT.
Danych jest
zmiennych logicznych
oraz
funkcji logicznych
. Należy znaleźć wartościowanie zmiennych
, przy którym największa liczba funkcji daje wynik pozytywny.
Ciekawym i istotnym dla dalszych rozważań zawężeniem problemów MAXSAT i MAX FUNCTION SAT jest ograniczenie liczby różnych zmiennych występujących w pojedynczej klauzuli lub funkcji logicznej. Jeżeli ta liczba jest ograniczonaa przez
, to mamy do czynienia z problemem MAX
SAT i MAX
FSAT.
Przypomnijmy, iż pokazaliśmy, że już problem MAX
SAT jest
-zupełny (mimo że problem
SAT nie jest). Teraz okaże się, dlaczego te problemy są dla nas tak interesujące:
Twierdzenie 7.3
Problemy MAX
SAT należą do klasy
.
Dowód
Pokażemy, że problem MAX
SAT należy do
. Konstrukcja reprezentacji formuły i kodowania problemu dla większych
jest analogiczna.
Zatem ustalamy, że uniwersum
to zbiór zmiennych występujących w formule, a trzy relacje binarne
kodują formułę. Para
w relacji
koduje wystąpienie klauzuli zawierającej literały
i
, z których
występuje pozytywnie. Żeby zapewnić reprezentację każdej alternatywy przez dokładnie jedną krotkę którejś z relacji, wprowadzamy taką odpowiedniość pomiędzy relacjami i klauzulami:
Możemy teraz użyć następującej formuły reprezentującej problem MAX
SAT:
Wybór relacji
odpowiada ustaleniu wartościowania, a konstrukcja formuły zapewnia, że liczba krotek
spełniających formułę odpowiada liczbie alternatyw spełnionych przy danym wartościowaniu.

Zbudowanie algorytmu aproksymacyjnego dla problemu MAX
FSAT nie jest już tak proste, jak dla problemu MAXSAT. Załóżmy, że mamy
zmiennych
i
funkcji logicznych
, z których każda zależy od co najwyżej
zmiennych. Żeby dobrze zobrazować działanie algorytmu, wyobraźmy sobie pełne drzewo binarne o
liściach. Każdy węzeł wewnętrzny reprezentuje pewne częściowe wartościowanie zmiennych (rysunek Drzewo wartościowań).
Dla każdego węzła drzewa
i funkcji
określamy funkcję:
Łatwo zauważyć, że jeżeli węzły
i
są dziećmi
w drzewie wartościowań, to zachodzi:
Rozważmy teraz funkcję
. Oczywistym wnioskiem z poprzedniej równości jest:
Zauważmy jeszcze, że obliczenia wartości
dla konkretnego
można dokonać w czasie wielomianowym. Ponieważ każda z funkcji
zależy tylko od
zmiennych, więc można dokonać wyczerpującego przeglądu wszystkich
wartościowań tych zmiennych, zliczając te, dla których
daje wynik pozytywny i są rozszerzeniami wartościowania
. Można zatem w czasie wielomianowym zsumować wartości
dla wszystkich
funkcji
.
Możemy już teraz przedstawić algorytm:
Twierdzenie 7.5
Algorytm schodzący po drzewie wartościowań jest algorytmem
-aproksymacyjnym dla problemu MAX
FSAT.
Dowód
Liczba funkcji dających wynik pozytywny przy wartościowaniu
znalezionym przez algorytm jest równa dokładnie
. Ponieważ węzeł
określa wartość każdej ze zmiennych, to
jest równe
dla funkcji dających wynik pozytywny, a
dla tych dających wynik negatywny.
Zauważmy, że
. Jest tak dlatego, że przy każdym zejściu w dół drzewa od węzła
jest spełnione
, więc któraś z wartości
, lub
jest większa lub równa
, a algorytm wybiera zejście w kierunku większej z nich. W związku z tym wartość funkcji
dla aktualnie przeglądanego węzła nigdy nie maleje.
Zatem liczba funkcji z wynikiem pozytywnym w rozwiązaniu znalezionym przez algorytm jest nie mniejsza niż
. Ponieważ dla każdej funkcji, która może w ogóle dać wynik pozytywny, przy jakimkolwiek wartościowaniu zachodzi
, to liczba funkcji, które dają wynik pozytywny w rozwiązaniu optymalnym, jest ograniczona z góry przez
. To dowodzi, że algorytm jest algorytmem
-aproksymacyjnym.

Wskazówka
Użyj reprezentacji funkcji logicznej przez układ bramek logicznych, a następnie przedstaw każdą bramkę jako klauzulę
SAT.
Rozwiązanie
Dla wygody załóżmy, że żadna z funkcji nie przyjmuje stale wartości negatywnej. Gdyby któraś z nich miała taką własność, to możemy to rozpoznać i usunąć ją z instancji problemu.
Skorzystamy teraz z tego, że każdą funkcję logiczną można przedstawić jako układ bramek logicznych zbudowany z bramek:
- wejściowych,
- negacji (
),
- koniunkcji (
),
- alternatywy (
),
- jednej bramki wyjściowej.
Skonstruowana formuła
SAT będzie modelować układ takich bramek. Zmienne formuły będą odpowiadać bramkom i zmiennym występującym w modelowanej funkcji.
Dla każdej bramki wejściowej
dodajemy klauzule:
jeżeli bramka
odpowiada zmiennej
.
lub
jeżeli bramka
ma stałą wartość logiczną.
Dalej, konstrukcja dla bramek operatorów logicznych jest następująca:
bramka
odpowiadająca operacji
z wejściem z bramki
.
bramka
odpowiadająca operacji
z wejściami z bramek
i
.
bramka
odpowiadająca operacji
z wejściami z bramek
i
.
Dla bramki wyjściowej
dodajemy jedną klauzulę
. W tak skonstruowanej formule wszystkie klauzule mogą być spełnione, być może z wyjątkiem ostatniej. Wystarczy zauważyć, że w każdej dodanej grupie mogą być spełnione wszystkie klauzule, o ile wartościowania są "zgodne" z zachowaniem bramki.
Możemy zatem zamienić wszystkie funkcje logiczne występujące w problemie MAX
FSAT na formuły MAX
SAT. Optimum tego drugiego problemu będzie równe ilości wszystkich bramek poza wyjściowymi zwiększonym o liczbę funkcji, które mogą jednocześnie dawać wynik pozytywny. Stąd możemy ustalić współczynnik
redukcji na
.
Żeby uzasadnić, że optimum w skonstruowanej formule jest ograniczone liniowo od optimum problemu MAX
FSAT, przypomnijmy dowód dla algorytmu aproksymacyjnego dla problemu MAX
FSAT. Pokazaliśmy tam, że optimum problemu wynosi co najmniej
, gdzie
jest liczbą funkcji. Tymczasem liczba klauzul zależy liniowo od liczby funkcji. Skonstruowana redukcja jest zatem L-redukcją.
Ćwiczenie 7.7
Lepsza aproksymacja MAXSAT.
Pokaż, że jeżeli wymagalibyśmy od instancji problemu MAXSAT, aby w każdej alternatywie występowało przynajmniej
literałów, to istnieje algorytm
-aproksymacyjny dla takiego problemu.
Wskazówka
Jak wygląda oszacowanie
, gdy
reprezentuje klauzulę?
Problemy
-zupełne
Pokażemy teraz, że problem MAX
SAT jest problemem zupełnym w sensie L-redukcji w klasie
. Jest to bardzo istotny fakt, bo oznacza, że pozytywne wyniki aproksymacjii tego elementarnego problemu przekładają się poprzez L-redukcje na wszystkie problemy z klasy
. Jest też to fakt interesujący ze względu na to, że wcale nie jest oczywiste, iż problemy
-zupełne muszą w ogóle istnieć.
Twierdzenie 8.1
MAX
SAT jest problemem zupełnym w sensie L-redukcji w klasie
.
Dowód
Przypomnijmy, że klasa
jest definiowana jako klasa problemów L-redukowalnych do problemów z
. Zatem wystarczy, że pokażemy, iż każdy problem z
jest L-redukowalny do problemu MAX
SAT i skorzystamy z tego, że złożenie L-redukcji jest L-redukcją.
Rozważmy zatem problem
z klasy
definiowany formułą:
Rozważymy teraz konkretną instancję problemu
z ustalonym uniwersum
i relacjami
. Dla każdej krotki
definiujemy formułę
, która powstaje z
przez podstawienie wartości
za zmienne
. Każdą w formuł
możemy uprościć, zamieniając każde wystąpienie relacji
i symbolu
wartościami prawdy i fałszu, które w konkretnej instancji są ustalone. W wyniku otrzymujemy formułę
, w której występują tylko symbole logiczne i relacja
.
Możemy teraz spojrzeć na rozwiązanie tej instancjii problemu
jak na ustalenie wartościowania formuł
, tak aby zmaksymalizować liczbę spełnionych formuł
. Jeżeli któraś z formuł
jest niespełnialna dla żadnego wartościowania, to już na tym etapie usuwamy ją z opisu problemu.
Właśnie opisaliśmy redukcję problemu
do problemu MAX
FSAT, gdzie jest
zmiennych odpowiadających
i
funkcji logicznych odpowiadających formułom
. Stała
zależy tylko od postaci formuły
i należy ją ustalić równą liczbie wystąpień symbolu relacyjnego
w formule
. Możemy teraz użyć redukcji MAX
FSAT do MAX
SAT.
Musimy teraz pokazać, że otrzymana w ten sposób redukcja jest L-redukcją. Na podstawie instancji
problemu
możemy zbudować
instancję problemu MAX
SAT. Rozwiązanie
możemy łatwo obliczyć, odczytując relację
z wartości zmiennych występujących w rozwiązaniu problemu
.
Musimy teraz skorzystać z pewnych własności problemu MAX
FSAT i jego redukcji do MAX
SAT.
Po pierwsze, każda formuła
jest reprezentowana przez co najwyżej
klauzul, gdzie
zależy tylko od liczby bramek potrzebnych do wyrażenia formuły
.
Po drugie, istnieje stała
taka, że dla
funkcji w problemie MAX
SAT istnieje wartościowanie, przy którym przynajmniej
spośród funkcji ma wartość pozytywną. Skorzystamy z tego, że odrzuciliśmy funkcje, które stale przyjmują wartość negatywną. Stałą
równą
otrzymujemy z dowodu, że algorytm schodzący po drzewie wartościowań jest algorytmem
-aproksymacyjnym.
Po trzecie, zastosowana redukcja MAX
FSAT do MAX
SAT gwarantuje, że w rozwiązaniu optymalnym problemu
wszystkie klauzule poza tymi przechowującymi wyniki funkcji są spełnione.
Te trzy fakty sprawiają, że opisana redukcja jest L-redukcją z parametrami
,
) i
(w rozwiązaniu optymalnym
problemu
liczba spełnionych alternatyw zmniejszona o liczbę alternatyw innych niż przechowujące wyniki funkcji wyznacza dokładnie liczbę krotek
, dla których relacja
zachodzi).

Ćwiczenie 8.2
Problemy z
są aproksymowalne ze stałą.
Pokaż, że dla każdego problemu z klasy
istnieje algorytm
-aproksymacyjny dla pewnej stałej.
Wskazówka
Wykorzystaj technikę użytą w dowodzie
-zupełności problemu MAX
SAT.
Testy końcowe