Informatyczny kącik olimpijski
Równoważność palindromiczna (100)
W jubileuszowym odcinku kącika omówimy zadanie Równoważność palindromiczna, które pojawiło się na Obozie Naukowo-Treningowym im. A. Kreczmara w 2010 roku.

Rys. 1 W 8-literowym słowie na pozycji
występuje palindrom nieparzysty aba o długości
gdyż
oraz
Dwa słowa i
o długości
nazwiemy równoważnymi palindromicznie, jeśli dla każdej pary liczb
oraz
takich że
podsłowo
złożone z liter na pozycjach od
-tej do
-tej jest palindromem wtedy i tylko wtedy, gdy palindromem jest podsłowo
złożone z liter na tych samych pozycjach. Mając dane słowo
należy wyznaczyć liczbę słów równoważnych mu palindromicznie, zawierających litery z ustalonego
-literowego alfabetu.
Rozważmy pewien palindrom o nieparzystej długości
którego środek jest na pozycji
w słowie
oraz który nie może być rozszerzony (tzn. nie istnieje dłuższy palindrom o tym samym środku). Zatem w słowie
także musi istnieć analogiczny palindrom, zatem muszą być spełnione równości liter
dla
oraz nierówność
Nietrudno się przekonać, że zbiór takich (nie)równości dla wszystkich pozycji
(wraz z analogicznym zbiorem dla palindromów o parzystej długości) w pełni opisuje warunki, jakie musi spełniać słowo
aby być palindromicznie równoważnym słowu
(patrz Rys. 1).

Rys. 2 Graf odpowiadający słowu
Wierzchołki 2 i 4 są w tej samej składowej grafu
zaś wierzchołki 1 i 5 są połączone krawędzią ciągłą
Zbiór ten możemy przedstawić jako graf o wierzchołkach
odpowiadających pozycjom w słowie
Krawędź łącząca dwa wierzchołki będzie przerywana, jeśli odpowiadające im pozycje w słowie muszą mieć tę samą literę, lub ciągła, jeśli muszą mieć różne litery. W ten sposób sprowadzimy nasze zadanie do problemu kolorowania grafu: liczba słów palindromicznie równoważnych słowu
jest bowiem równa liczbie kolorowań grafu
przy pomocy
kolorów (przy zachowaniu ograniczeń na wynikających z istnienia krawędzi ciągłych i przerywanych; Rys. 2).
Niestety, nie znamy wielomianowego algorytmu dla ogólnego problemu zliczania kolorowań grafów, będziemy musieli więc nieco bliżej przyjrzeć się szczególnej postaci grafu z zadania. Na początek pozbędziemy się krawędzi przerywanych, scalając łączone przez nie wierzchołki. Powiemy, że dwa wierzchołki oraz
należą do tej samej składowej w grafie
jeśli są połączone przerywaną ścieżką. Każdą składową zastępujemy pojedynczym wierzchołkiem (o numerze będącym najmniejszym numerem wierzchołka z tej składowej), do którego wchodzą wszystkie krawędzie ciągłe poprzednio wchodzące do wierzchołków tej składowej.

Rys. 3 Graf po zastąpieniu składowych pojedynczymi wierzchołkami. Liczba kolorowań tego grafu to
W tak uzyskanym grafie będziemy zachłannie kolorować wierzchołki w kolejności rosnących numerów. Załóżmy, że chcemy pokolorować wierzchołek oraz że jest on połączony krawędziami ciągłymi z wierzchołkami o mniejszych numerach
Kluczową własnością grafu, która umożliwi nam kolorowanie zachłanne jest to, że każda para wierzchołków spośród
jest również połączona krawędzią ciągłą, czyli wszystkie one muszą mieć różne kolory, zatem wierzchołek
możemy pokolorować na
sposobów, niezależnie od kolorowania wierzchołków o mniejszych numerach (Rys. 3).
Dowód kluczowej własności jest nieco techniczny i wymaga przyjrzeniu się, jak mogą być położone palindromy w słowie Powiemy, że dwa wierzchołki
oraz
są sąsiednie, jeśli należą do tej samej składowej,
oraz nie istnieje
że
i
też należy do tej samej składowej. Dowód można przeprowadzić, udowadniając następujące własności:
- Jeśli
są sąsiednie, to
jest palindromem.
- Jeśli
są sąsiednie,
oraz
i
są połączone krawędzią ciągłą, to
i
też są połączone krawędzią ciągłą (wynika z tego, że dla danej składowej wystarczy rozważać krawędzie ciągłe wchodzące do jednego wierzchołka z tej składowej - tego o najmniejszym numerze).
- Jeśli
i
jest wierzchołkiem o najmniejszym numerze ze swojej składowej oraz
i
są połączone krawędzią ciągłą oraz
i
są połączone krawędzią ciągłą, to istnieje taki wierzchołek
ze składowej wierzchołka
że
i
są też połączone krawędzią ciągłą.
Pozostaje oszacować efektywność powyższego algorytmu. Zbiór (nie)równości konstruowanych na podstawie słowa a które odpowiadają krawędziom grafu
może mieć rozmiar
i taka też będzie złożoność czasowa i pamięciowa powyższego algorytmu. Zauważmy jednak, że nierówności (czyli krawędzi ciągłych) jest jedynie
pozostałe to równości, czyli krawędzie przerywane, służące do wyznaczenie składowych grafu. Czytelnikom Dociekliwym polecamy zastanowić się, jak można wykorzystać algorytm Manachera znajdowania palindromów w słowie, do zmniejszenia liczby rozważanych krawędzi przerywanych do liniowej.