Delta 3/2024

Oszczędny listonosz

Wyobraźmy sobie miasteczko, w którym żyje n osób. Nie dotarł tam ani Internet, ani nawet idea urzędu pocztowego. Jest jednak zatrudniony listonosz, u którego można bezpośrednio nadać lub odebrać przesyłkę. Listonosz codziennie odwiedza każdego mieszkańca dokładnie jeden raz. Niektórzy mieszkańcy korespondują z innymi, lecz niekoniecznie każdy z każdym. Jeśli kogoś odwiedzi listonosz, to osoba ta z pewnością zapyta go, do kogo się jeszcze wybiera, a następnie wyśle list do wszystkich, z którymi koresponduje, a których listonosz jeszcze tego dnia nie odwiedził. Listonosz może sam wybrać kolejność, w jakiej odwiedza mieszkańców miasteczka. Zdążył się już też zorientować, kto z kim koresponduje, i chce odwiedzić mieszkańców w takiej kolejności, żeby w żadnym momencie nie dźwigać za dużo listów. Ile listów na pewno będzie musiał w pewnym momencie zmieścić w torbie listonosz?

Sami swoi

Zacznijmy od przypadku najprostszego do analizy – gdy każdy koresponduje z każdym. Wówczas niezależnie od kolejności, jaką wybrał listonosz, sytuacja wygląda następująco: jeśli listonosz odwiedził już dokładnie i mieszkańców, to ma w torbie i(ni) listów. Istotnie, w torbie listonosza znajdują się listy od każdego z odwiedzonych mieszkańców do każdego z ni jeszcze nieodwiedzonych. Wykonując proste szacowanie, możemy przekonać się, że i(ni) wynosi maksymalnie n24 dla n parzystego oraz n214 dla n nieparzystego, co daje nam górne ograniczenie na rozmiar torby potrzebnej listonoszowi.

Rys. 1. Graf reprezentujący miasto z pięcioma mieszkańcami, gdzie każdy koresponduje z każdym. Można dostrzec, że w pewnym momencie listonosz będzie musiał mieć przy sobie 6 listów

Korporacja

A co, jeśli nasze miasteczko to tak naprawdę nie miasteczko, ale wielka korporacja? Naturalnie w korporacji pracownicy mają przypisany jakiś stopień awansu zawodowego. Najwyższy stopień ma oczywiście prezes, którego będziemy oznaczać v1. Ponadto założymy, że każdy pracownik vi, którego stopień awansu nie jest najniższy (czyli nie jest na samym dole hierarchii), ma dokładnie dwóch bezpośrednich podwładnych: v2i oraz v2i+1. Mają oni dokładnie o jeden mniejszy od vi stopień awansu zawodowego. Każdy pracownik oprócz v1 ma dokładnie jednego przełożonego. W przypadku tej korporacji wiadomości będą przesyłane jedynie pomiędzy pracownikiem a jego bezpośrednim podwładnym lub odwrotnie. Jak dużą torbę musi mieć listonosz w takim przypadku?

Ta sytuacja jest już nieco trudniejsza. Sformułujmy nasz problem w języku teorii grafów. Niech v1,,vn oznaczają mieszkańców (albo pracowników, jak w przykładzie z korporacją) i niech V={v1,,vn}. Rozpatrzmy graf G=(V,E), przy czym (vi,vj)E oznacza, że vi i vj korespondują ze sobą. Naszym zadaniem jest znaleźć minimalną potrzebną pojemność torby, czyli dokładnie wartość: c(G)=minσΣnmax1kn|{(vσ(i),vσ(j))E:ik<j}|, gdzie Σn oznacza zbiór wszystkich permutacji zbioru {1,2,,n}. Funkcję c(G) nazywanym szerokością przekroju (ang. cutwidth) grafu G.

Pomyślmy o tym w następujący sposób: Ustawiamy wierzchołki grafu G na prostej . Wówczas c(G) to najmniejsza liczba k, dla której istnieje ustawienie wierzchołków takie że, każda prosta prostopadła do przecina co najwyżej k krawędzi (patrz rys. 1). Proste prostopadłe do  będziemy nazywać przekrojami, zaś liczbę krawędzi G, które przecinają dany przekrój, będziemy nazywać jego szerokością.

Wróćmy do problemu listonosza zatrudnionego w korporacji. Niech Th oznacza pełne drzewo binarne o wysokości h (czyli dokładnie graf reprezentujący korespondujących ze sobą pracowników, jeśli mamy korporację z h+1 możliwymi stopniami awansu zawodowego). Oznaczmy wierzchołki tak jak poprzednio. Zauważmy, że Th ma n=2h+11 wierzchołków. Nasze zadanie polega na obliczeniu c(Th). Warto zacząć od małych wartości h. Łatwo stwierdzić, że c(T0)=0 oraz c(T1)=1. Przy odrobinie wysiłku obliczamy też, że c(T2)=2. Jeśli poświęcimy problemowi nieco więcej czasu i pomysłowości, to udowodnimy, że c(T3)=3 (zachęcamy Czytelnika Dociekliwego do samodzielnego sprawdzenia).

Rys. 3. Przykład ustawienia wierzchołków grafu T2 na prostej, realizujący szerokość przekroju równą 2

Można więc wysnuć hipotezę, iż c(Th)=h dla wszystkich hN. Niemałym zaskoczeniem może być zatem fakt, że c(T4)=3. Ogólne rozwiązanie daje następujące twierdzenie:

Twierdzenie. Dla h2 zachodzi c(Th)=h2+1.

Aby wykazać powyższą równość, zaczniemy od udowodnienia c(Th)h2+1 dla h2. Dowód będzie indukcyjny. Zostawiamy jako ćwiczenie sprawdzenie przypadków h=2h=3. Chcemy udowodnić tezę dla Th+2 przy założeniu tezy dla Th. Rozważmy dowolną permutację σ wierzchołków Th+2. Rozważmy też poddrzewa Th+2 o korzeniach odpowiednio v4,v5,v6,v7. Wśród nich na pewno znajdziemy takie poddrzewo P, które nie zawiera vσ(1) ani vσ(n).

Ponieważ P wygląda tak samo jak Th (tzn. różnią się one jedynie nazwami wierzchołków, a matematyk powiedziałby, że są izomorficzne), więc z założenia indukcyjnego c(P)h2+1. Oznacza to, że jeśli ustawimy wierzchołki Th+2 na prostej w takiej kolejności jak w permutacji σ, to pewna prosta  prostopadła do  będzie przecięta przez co najmniej h2+1 krawędzi P. Zauważmy, że istnieje ścieżka z vσ(1) do vσ(n), która nie zawiera wierzchołków z P. Oznacza to, że prostą przecina też pewna krawędź z tej ścieżki, czyli łącznie co najmniej h2+2=h+22+1 krawędzi, co należało udowodnić.

Teraz trzeba jeszcze znaleźć dla każdego h2 taką permutację σh wierzchołków Th, która zaświadcza, że szerokość przekroju Th faktycznie wynosi co najwyżej h2+1. Zaczniemy od konstrukcji dla nieparzystych h. Teza indukcji będzie nawet nieco mocniejsza: istnieje takie ustawienie σh wierzchołków Th na prostej, przy którym każdy przekrój na lewo od korzenia ma szerokość co najwyżej h2+1, zaś każdy przekrój na prawo od korzenia ma szerokość co najwyżej h2. Łatwo znaleźć takie ustawienie dla h=1. Udowodnimy teraz tezę dla h+2 przy założeniu tezy dla h. Niech σh+ oznacza ustawienie wierzchołków Th powstałe z σh przez zapisanie wierzchołków w odwrotnej kolejności (wtedy każdy przekrój na prawo od korzenia ma szerokość co najwyżej h2+1, zaś każdy przekrój na lewo od korzenia co najwyżej h2). Zauważmy, że poddrzewa P4,P5,P6,P7 drzewa Th+2 o korzeniach odpowiednio v4,v5,v6,v7 są izomorficzne z Th, więc ma sens powiedzenie, że ustawiamy wierzchołki któregoś z nich w kolejności σh+ lub σh. Ustawmy więc wierzchołki Th+2 w następującej kolejności: najpierw wierzchołki P4 w kolejności σh, potem v2, następnie wierzchołki P5 w kolejności σh+, wierzchołki P6 w kolejności σh, v3, v1, a na koniec wierzchołki P7 w kolejności σh+ (rys. 5). Nietrudno sprawdzić, że tak otrzymana kolejność σh+2 spełnia tezę indukcyjną, to znaczy przekroje na lewo od v1 mają szerokość co najwyżej h+22+1, zaś te na prawo – co najwyżej h+22.

Rys. 5. Kolejność wierzchołków Th+2 w konstrukcji indukcyjnej

Mając tak wzmocnioną tezę udowodnioną dla wszystkich h nieparzystych, nietrudno już udowodnić, że dla h parzystych również mamy permutację zaświadczającą, że szerokość

przekroju Th wynosi co najwyżej h2+1. Odpowiednią konstrukcję przedstawia rysunek na marginesie, a szczegóły pozostawiamy jako zadanie dla Czytelnika.

W ten sposób problem listonosza w korporacji został rozwiązany. Zachęcamy do pomyślenia, jak dużej torby będzie potrzebował listonosz w jeszcze innych sytuacjach, np. gdy graf pokazujący komunikowanie się mieszkańców w miasteczku jest cyklem albo pełnym grafem dwudzielnym.

Na koniec dodajmy, że w teorii grafów rozważa się wiele różnych parametrów nazywanych ogólnie szerokościami grafowymi. Typowo z każdym takim parametrem wiąże się pewna dekompozycja i jeśli graf ma małą wartość parametru, to możemy znaleźć odpowiednio prostą dekompozycję. Cutwidth jest uznawany za jeden z najbardziej podstawowych parametrów tego typu – dekompozycja to liniowe ułożenie wierzchołków grafu i jest ona prosta, jeśli przez każdy jej przekrój przechodzi mało krawędzi.