Bez szans

Możliwości nowoczesnych technik informacyjnych są często przeceniane. Jeżeli zadanie jest nieobliczalne (nierozwiązywalne) na prostej maszynie Turinga, to pozostanie również nieobliczalne nawet na najnowocześniejszym superkomputerze.

Możliwości nowoczesnych technik informacyjnych są często przeceniane. Jeżeli zadanie jest nieobliczalne (nierozwiązywalne) na prostej maszynie Turinga, to pozostanie również nieobliczalne nawet na najnowocześniejszym superkomputerze.

Bez szans
Wiara w niebywałe możliwości nowoczesnych technik informacyjnych bywa jednak często silniejsza niż wiedza na temat rzeczywistych wyznaczników ich funkcjonowania. Emocje nierzadko biorą górę nad racjonalną analizą zjawiska. Wyjaś-nienia barier nieograniczonego rozwoju zastosowań urządzeń komputerowych mają w wielu przypadkach charakter bardziej ideologiczny niż naukowy.

Wyraźnie widać to w opiniach na temat sztucznej inteligencji, która jest uważana zarówno przez jej zwolenników, jak i przeciwników za najwyższe stadium rozwoju techniki komputerowej. Wśród najważniejszych przyczyn uniemożliwiających jej powstanie wymienia się z jednej strony doskonałość ludzkiego wzorca (umysł ludzki jest zjawiskiem tak skomplikowanym i niepowtarzalnym, że nie ma szans na jego odwzorowanie w jakiejkolwiek postaci) oraz z drugiej strony niedoskonałość istniejących aktualnie technologii (myślące maszyny uda się stworzyć bez problemu, gdy będziemy dysponowali odpowiednimi mocami obliczeniowymi).

Zwolennicy obu stron sporu poszukują uzasadnień dla swoich hipotez na zewnątrz, nie zagłębiając się w dyskusje o samej istocie sztucznej inteligencji. Zazwyczaj zapomina się o podstawowym, ale mającym kolosalne znaczenie dla dalszych rozważań fakcie, że sztuczna inteligencja jest po prostu programem komputerowym i zachowuje się, tak jak wszystkie inne programy komputerowe. O jej ostatecznym kształcie decydują te same ograniczenia i czynniki, które składają się na działania każdego innego oprogramowania. Wśród nich najważniejsze zaś są algorytmy. To one wpływają na jakość funkcjonowania programu, stanowią o jego możliwościach i ograniczeniach.

Tę podstawową, a jednak paradoksalnie zapom-nianą w dobie powszechnego zastosowania komputerów prawdę przypomina David Harel, dziekan Wydziału Matematyki i Informatyki w Weizmann Institute of Science w Izraelu, w przetłumaczonej niedawno na język polski książce Komputery - spółka z o.o. Czego komputery naprawdę nie umieją robić.

Lata świetlne i dłużej

Kształt algorytmu, jego stopień doskonałości, skuteczność rozwiązywania problemu zależą w dużej mierze od jego autora: od zdolności, umiejętności, talentu oraz wiedzy projektanta i programisty. Ale nie tylko. David Harel pokazuje, że do rozwiązania wielu problemów nie da się po prostu znaleźć żadnych, absolutnie żadnych algorytmów. Wiele zadań jest nieobliczalnych, nierozstrzygalnych, a tym samym do ich rozwiązania nie mogą być zastosowane programy komputerowe.

Nic tu nie pomogą nawet największe moce obliczeniowe, najszybsze procesory i najbardziej pojemne pamięci. Jeżeli coś jest nieobliczalne (nierozwiązywalne) na prostej maszynie Turinga, to pozostanie również nieobliczalne nawet na najnowocześniejszym superkomputerze. I odwrotnie. Wynik w zakresie możliwości rozwiązania problemu zależy nie od użytego sprzętu, lecz od możliwości znalezienia odpowiedniego algorytmu.

Innym, istotnym ograniczeniem zastosowania komputerów, wymienianym przez Harela, jest czynnik czasu, związany również ściśle z regułami algorytmiki. Jeżeli nawet uda się znaleźć odpowiedni algorytm, to czas potrzebny do jego wykonania może być tak długi, że z praktycznego punktu widzenia staje się on nie do przyjęcia. Problem jest więc niewykonalny. Decydują o tym, w gruncie rzeczy, nie zdolności techniczne sprzętu, lecz reguły logiki i matematyki.

Udowodniono, że dla wielu problemów nie ma algorytmów innych niż te, których przebieg czasowy wykonania jest określony funkcją wykładniczą. A wtedy nawet wielkie przyrosty mocy obliczeniowych mogą nie mieć najmniejszego znaczenia praktycznego. Przy funkcji N do n-tej, przy wielkości danych wejściowych 100 i zakładanym czasie wykonywania jednej instrukcji w ciągu mikrosekundy czas wykonania algorytmu musiałby być określony 185-cyfrową liczbą stuleci. Gdybyśmy dysponowali maszyną 10 tys. razy szybszą, czas zmniejszyłby się do 180-cyfrowej liczby stuleci. Ale już niewielka zmiana ilości danych wejściowych, ze 100 do 102, spowoduje powrót do poprzedniej 185-cyfrowej liczby stuleci.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200