Rewolucja! W królestwie Bajtocji wynaleziono telefon, i młody król, który właśnie zasiadł na tronie, chce wykorzystać ten wspaniały wynalazek do usprawnienia komunikacji w swoim królestwie. Dawniej każdą wiadomość przenosił gołąb pocztowy, a jak powszechnie wiadomo, jest to system dość wolny i zawodny. Król zarządził zatem zainstalowanie telefonu w każdym mieście. Kiedy jednak jego doradcy pokazali mu kosztorys projektu, król złapał się za głowę i zdecydował na inne rozwiązanie: aparaty mają być zainstalowane w taki sposób, by wszyscy poddani mieli dostęp do telefonu w swoim mieście lub w pewnym innym mieście połączonym bezpośrednio drogą z ich miastem. Doradcy króla głowią się teraz, w których miastach je zainstalować, tak aby było ich jak najmniej i tym samym koszt projektu był jak najniższy.
Przedstawmy nasz problem w języku teorii grafów. Rozważmy graf
Opisany problem w teorii grafów nosi nazwę problemu minimalnego zbioru dominującego. Możemy także rozważyć wariant, gdy koszty wybudowania telefonu w poszczególnych miastach się różnią – każdemu miastu
Naturalnym pomysłem w przypadku tego typu problemów jest podejście zachłanne, w którym zaczynamy od pustego zbioru
W powyższym przykładzie najpierw włączymy do grafu niebieski wierzchołek. Wtedy żółte wierzchołki zostaną zdominowane. W kolejnych krokach nasz algorytm włoży wszystkie trzy szare wierzchołki do zbioru dominującego. W ten sposób otrzymamy zbiór dominujący o mocy
Obydwa opisane problemy możemy rozwiązać, rozważając wszystkie możliwe podzbiory wierzchołków grafu, sprawdzając, które z nich są zbiorami dominującymi, i wybierając najmniejszy z nich. Złożoność czasowa tego algorytmu to
Jednym ze sposobów radzenia sobie z NP-trudnymi problemami grafowymi jest uważne przyjrzenie się grafom, dla których potrzebujemy znaleźć rozwiązanie – być może mają one dodatkowe przydatne własności. Przykładowo wiemy, że w grafie miast połączonych drogami bez mostów, tuneli ani skrzyżowań nie można znaleźć pięciu miast połączonych każde z każdym (korzystamy tutaj z twierdzenia Kuratowskiego charakteryzującego grafy planarne).
Znając lepiej własności grafów, dla których mamy rozwiązywać nasz problem, możemy projektować algorytmy korzystające z tych własności i działające szybciej niż algorytm rozwiązujący nasz problem dla dowolnego grafu.
Przypadek ścieżki
Rozważmy graf, który jest ścieżką (patrz rysunek na marginesie). Oznaczmy jego kolejne wierzchołki przez
W przypadku ważonym nasze zadanie się nieco komplikuje, ale nadal istnieje algorytm liniowy znajdujący optymalne rozwiązanie. Dla każdego
wierzchołek
należy do zbioru dominującego; nie należy do zbioru dominującego, ale jego sąsiad już tak;zarówno
jak i nie należą do zbioru dominującego (zauważmy, że w tym przypadku wierzchołek nie jest zdominowany).
Oznaczmy optymalny zbiór dominujący dla ścieżki
Niech
WtedyZ definicji zachodzi
W ostatnim scenariuszu wierzchołki
i nie należą do zbioru dominującego, zatem wierzchołek musi być zdominowany przez wierzchołek Zatem zachodzi
Aby znaleźć najlepsze rozwiązanie dla całej ścieżki, wybieramy rozwiązanie o mniejszej sumarycznej wadze dla
Szerokość ścieżkowa
Dla ogólnych grafów nie możemy niestety skorzystać z tego algorytmu, bo wierzchołki mogą być ze sobą połączone w znacznie bardziej skomplikowany sposób. Rodzi się jednak pytanie, co w przypadku, gdy rozważany graf jest podobny do ścieżki (np. tak jak grafy przedstawione na obrazkach na marginesie). Może potrafilibyśmy wykorzystać nasze zrozumienie problemu dla ścieżek do skonstruowania algorytmu dla grafów przypominających ścieżki?
Zanim pójdziemy dalej, musimy sformalizować pojęcie podobieństwa do ścieżki. Dekompozycją ścieżkową (ang. path decomposition) grafu
dla każdych dwóch wierzchołków
i połączonych krawędzią w grafie istnieje wierzchołek którego worek zawiera i ;dla każdego wierzchołka
grafu zbiór wierzchołków których worki zawierają tworzy niepusty, spójny podgraf (czyli w tym przypadku ścieżkę).
Szerokość dekompozycji ścieżkowej
Okazuje się, że szerokość ścieżkowa wielu grafów rozważanych w rzeczywistych scenariuszach jest mała (czyli ograniczona przez pewną stałą). Jest to bardzo wygodne, gdyż możemy wykorzystać tę własność do projektowania szybkich algorytmów.
W dalszej części artykułu skoncentrujemy się na problemie najmniejszego zbioru dominującego w grafie bez wag. Algorytm, który podamy, można łatwo zmodyfikować, aby działał również w przypadku grafów z wagami, jednak pominiemy te szczegóły, aby idea algorytmu była bardziej przejrzysta.
Gdy konstruowaliśmy zbiór dominujący o minimalnej wadze dla ścieżki, w momencie
Rozważmy graf
należy do zbioru dominującego; nie należy do zbioru dominującego, ale jest zdominowany przez co najmniej jednego ze swoich sąsiadów; nie należy do zbioru dominującego i nie jest zdominowany przez żadnego ze swoich sąsiadów.
Będziemy konstruować najmniejszy zbiór dominujący, tak jak poprzednio, rozważając kolejne wierzchołki
Najpierw generujemy (czyli rozpatrujemy) wszystkie możliwe stany dla pierwszego worka
Załóżmy teraz, że dla każdego wektora
Chcielibyśmy teraz obliczyć wyniki dla stanów należących do
Teraz możemy w końcu dodać nowe wierzchołki. Rozważmy wszystkie możliwe konfiguracje wierzchołków należących do
Obliczamy w ten sposób wyniki dla kolejnych
Opisana tutaj metoda ma też zastosowanie dla innych problemów NP-trudnych, w których szukamy algorytmów dynamicznych na dekompozycji ścieżkowej. W połączeniu z algorytmem obliczającym prawie optymalną dekompozycję ścieżkową (jest niestety dość skomplikowany, przez co musimy go pominąć) jesteśmy w stanie skonstruować algorytmy działające w czasie wielomianowym dla grafów o szerokości ścieżkowej ograniczonej przez stałą.
Okazuje się również, że grafy o małej szerokości ścieżkowej pojawiają się w prawdziwym życiu.
Przykładowo, w przetwarzaniu języka naturalnego zdania można modelować jako grafy, gdzie wierzchołki odpowiadają pojedynczym słowom, zaś krawędź oznacza jakiś rodzaj zależności między słowami (np. przymiotnik modyfikujący znaczenie rzeczownika).
Eksperymenty pokazują, że takie grafy mają na ogół niską szerokość ścieżkową – lingwiści twierdzą, że gdyby przekraczała ona
Na koniec dodajmy, że szerokość ścieżkowa została zaproponowana przez Neila Robertsona i Paula Seymoura w ich słynnym cyklu artykułów zatytułowanych Graph Minors. Prawdziwą rewolucją na salonach okazał się jednak inny, wprowadzony przez nich parametr uogólniający szerokość ścieżkową: szerokość drzewiasta. To jednak temat na kolejny artykuł.