Rozróżnianie słów
Żeby przedstawić problem otwarty, o którym chcemy opowiedzieć, przypomnimy intuicję stojącą za pojęciem automatu skończonego, które zresztą niedawno pojawiło się w migawce informatycznej w Delcie 5/2018.

Deterministyczny automat skończony ma zbiór stanów z których jeden jest początkowy, a niektóre są akceptujące. Taki automat czyta słowo wejściowe od lewej do prawej. Zaczyna przed pierwszą literą i jest wtedy w stanie początkowym. Następnie, w zależności od litery w słowie, którą aktualnie widzi i stanu, w którym jest, uaktualnia swój stan i przesuwa się w prawo po słowie. Jeśli po przeczytaniu ostatniej litery automat znajduje się w stanie akceptującym, to akceptuje słowo wejściowe, a w przeciwnym razie je odrzuca.
Przykładowo automat może akceptować słowa, których długość przystaje do modulo
Wówczas naturalnym zbiorem stanów jest
stan początkowy to
a stan akceptujący jest tylko jeden, mianowicie
Automat, niezależnie od litery w słowie, przechodzi ze stanu
do stanu
Inny automat akceptuje słowa nad
które na pozycjach przystających do
modulo
mają w sumie parzyście wiele liter
Pamięta on, jaka jest reszta modulo
aktualnej pozycji oraz jaka jest parzystość liczby
które do tej pory widział na interesujących go pozycjach. A zatem zbiór stanów to
Stan początkowy to
bo zaczynamy od litery na pozycji
i bez zobaczonych
Stany akceptujące to wszystkie postaci
gdyż akceptujemy, gdy liczba
na istotnych pozycjach jest parzysta, niezależnie od tego, jaka jest długość słowa. Jeśli automat widzi
w stanie
to przechodzi do
W przeciwnym przypadku automat, niezależnie od tego, co widzi, przechodzi ze stanu
do
Taki automat nazwiemy
Możemy już sformułować problem rozróżniania słów. Pyta on, jakie jest takie minimalne że dla każdych dwóch różnych słów
o długości co najwyżej
istnieje automat o co najwyżej
stanach, który rozróżnia
i
tj. jedno z nich akceptuje, a drugie odrzuca.
Zauważmy najpierw, że, oczywiście, istnieje pewien taki automat. Istotnie, łatwo skonstruować automat, który akceptuje tylko słowo a więc odrzuca
A zatem pytanie o najmniejszy taki automat ma w ogóle sens. Powyższy automat ma jednak
stanów, czyli pesymistycznie
Problem rozróżniania słów został postawiony w 1986 roku przez Goralčika i Koubeka, którzy pokazali, że zawsze da się stworzyć automat wielkości
Zauważmy najpierw, że rozróżnianie słów i
różnej długości jest stosunkowo proste. Wtedy wystarczy, by automat obliczał długość słowa modulo pewna liczba wielkości
Nietrudno to udowodnić, a jeszcze prościej uwierzyć. Istotnie, aby
i
dawały te same reszty modulo wszystkie liczby
to liczba
musi dzielić się przez
co, jak dość łatwo wykazać, jest wykładnicze względem
Zatem do rozróżnienia wystarczy
rzędu
Okazuje się też, że jeśli umiemy rozróżniać słowa nad alfabetem dwuliterowym, powiedzmy
to umiemy rozróżniać słowa nad dowolnym skończonym alfabetem automatami tej samej wielkości.
Niestety, dla słów i
równej długości, nawet nad alfabetem
nie jest już tak prosto. Najmocniejszy obecnie jest rezultat Robsona z 1989 roku, który pokazał, że dowolne dwa słowa da się rozróżnić pewnym automatem wielkości
Przy tym nie są znane pary słów, które rzeczywiście wymagają tak dużych automatów. Najtrudniejsze znane przykłady potrzebują jedynie automatów wielkości rzędu
A więc wciąż możliwe jest, że każde dwa słowa, nawet tej samej długości, da się rozróżnić automatem wielkości
Ciekawy jest trochę późniejszy wynik Robsona, z 1996 roku. Pokazał on, że każde dwa różne słowa równej długości nad alfabetem można rozróżnić automatem
dla
podobnym do przedstawionego wyżej
Akceptuje on słowa mające na pozycjach przystających do
modulo
parzyście wiele liter
To daje ograniczenie
gorsze od
ale za to rozważane automaty są bardzo proste.
Od 1996 roku nie ma żadnych postępów w tej sprawie. Amerykański informatyk, pracujący teraz w Waterloo, Jeffrey Shallit, zaoferował w 2014 roku nagrodę 100 funtów brytyjskich każdemu, kto poprawi wynik Robsona z 1989 roku. Warto podkreślić, że rozróżnianie słów jest problemem zupełnie innego kalibru niż izomorfizm grafów i mnożenie macierzy. Moim zdaniem jest to problem potencjalnie w zasięgu pasjonata informatyki bez wielkiego doświadczenia w badaniach. Dodatkowo jest on elegancko sformułowany, jego rozwiązanie może przynieść nowe metody lub zrozumienie głębszych zagadnień, a luka między a
jest intrygująca. Dlatego zachęcam Czytelników Żądnych Wyzwań do przyjrzenia się sprawie.