Na początku grudnia bieżącego roku odbyła się w Poznaniu IV Konferencja Filozofii Matematyki i Informatyki, na której miałem zaszczyt wygłosić referat p.t. „Informatyczne kłopoty z nieskończonością?” .
W niniejszym wpisie udostępniam link do mojej prezentacji i zachęcam wszystkich do dyskusji nad kolejnymi punktami.
Oto link:
INFORMATYCZNE KŁOPOTY Z NIESKOŃCZONOŚCIĄ?
(czyli o zdrowym sceptycyzmie w filozofii informatyki)
Punktem wyjścia prezentowanego wywodu jest rozróżnienie trzech sposobów rozumienia terminu „nieskończoność” w informatyce:
a) nieskończoność na poziomie działania programów
[czyli: niekończący się, w ogóle lub praktycznie, czas działania programów]
b) nieskończoność na poziomie struktury programów
[czyli: niekończący się ciąg zagnieżdżonych modułów oprogramowania]
c) nieskończoność na poziomie efektów działania programów
[czyli: potencjalnie nieskończona liczba problemów, rozwiązywalnych za pomocą
skończonych programów]
Nieskończoność typu c) stanowi o niewątpliwej sile informatyki – sile, która polega na tym, że programy komputerowe, będące skończonymi ciągami instrukcji, pozwalają rozwiązywać nieskończenie wiele problemów określonego typu. Mówiąc obrazowo: ich skończone zapisy zdają się sięgać nieskończoności.
Zachodzi jednak pytanie: czy siły nieskończoności typu c) nie osłabiają zbyt mocno dwie jej poprzedniczki, oznaczone wyżej literkami a) i b)?
Zdają się przemawiać za tym pewne nowe wersje argumentów sceptyckich.
Co to jednak za argumenty i jak można podważyć ich moc?
A ponadto: jakie pytania filozoficzne trzeba rozstrzygnąć, by ów nowy (informatyczny) sceptycyzm uchylić?
Kto ciekaw, niech zajrzy do wskazanej wyżej prezentacji…
Ze świątecznymi pozdrowieniami – Paweł Stacewicz.
W sprawie nieskończoności a, b.
Co do działania i struktury programów nie czuję się dość kompetentny, żeby zająć stanowisko, ale mogę się powołać na pewną analogię z nieskończonością działań i struktur w procedurze sprawdzania tautologiczności formuł metodą drzew semantycznych (tabel semantycznych – w terminologii Betha). Czy ta analogia rzuca światło na poruszony we wpisie problem informatyczny, niech oceni ekspert od informatyki.
Opisałem pewien tego rodzaju przypadek dość szczegółowo na stronie
http://calculemus.org/MathUniversalis/NS/11/Beyond.pdf
Wspomnę tylko, ze chodzi o sytuację, w której procedura sprawdzająca tautologiczność zapętla się i działa w nieskończoność. Mamy więc nieskończoność na poziomie działania. Nie wiem, czy fakt pojawianie się wciąż nowych termów, w wyniku konkretyzacji (tj. opuszczania kwantyfikatora egzystencjalnego) i podstawianie ich kolejno za zmienne związane kwantyfikatorem ogólnym podpada pod pojęcie zagnieżdżania modułów. Jeśli tak, to byłby też analogon nieskończoności strukturalnej.
W opisanym przypadku nie widzę niczego, co byłoby narażone na argumenty sceptyczne.
Dodam, że zacytowany artykuł był przedmiotem krytycznej analizy prof. Jerzego Pogonowskiego w tomie jubileuszowym na 75-lecie egzystowania jego autora. W razie potrzeby udostępnię treść tej dyskusji.
Czytając slajdy z odczytu pt. Informatyczne kłopoty z nieskończonością ?, nasunęły mi się na myśl dwie kwestie.
Kwestia pierwsza: skąd się biorą kłopoty z nieskończonością
Nie ulega chyba wątpliwości, że macierzą kłopotów, jakie informatyka ma z nieskończonością jest matematyka, ale nie tylko. Wydaje mi się, że w pewnej mierze wyjaśnienia tej sprawy można by się doszukiwać także i języku, czy ogólniej w znaku.
Pojęciowo liczby można wyliczać w nieskończoność. Jednakże wystarczy tylko zacząć je nazywać słowami, a od razu pojawiają się kłopoty. Słowa będąc znakami posiadają dwie strony: znaczącą (nośnik) i oznaczoną (treść). Liczby różnią się od siebie teoretycznie (logicznie, formalnie), co stanowi samo przez się źródło informacji, lecz należy zwrócić uwagę na fakt, że z chwilą kiedy się ich używa w mowie stają się znakami, tj. obiektami semiotycznymi. Nośniki liczb mogą być różne (np. nominalne lub cyfrowe), lecz ich treści (znaczenia, wartości) są uniwersalne, ze złudzeniem „pustki” oraz „nieskończoności” włącznie (do tego jeszcze powrócę). Nośniki znaków (ich strony znaczące) są materialne, skończone. Mamy zatem kłopot ze stosowaniem matematyki do opisu świata ze względu na język: praktyczna skończoność nośników (wyrażeń językowych) wobec teoretycznej nieskończoności treści (znaczeń). Ogólnie mówiąc, to właśnie z tego powodu czasem „brakuje nam słów”, by wyrazić pewne treści (myśli).
W trosce o w miarę właściwe zrozumienie zajętego przeze mnie stanowiska, dodam jeszcze kilka słów odnośnie wspomnianej dwoistej natury znaków. Z uwagi na fakt, że procesy umysłowe zachodzą w środowisku o niezwykle dużej złożoności strukturalnej, zasadną wydaje się być hipoteza o dużej, wielowymiarowej złożoności strony oznaczonej znaku (jego treści), podczas gdy bez cienia wątpliwości można stwierdzić, że stronę znaczącą (nośnik) cechują niewspółmiernie prostsze struktury.
Przykład trudności na polu lingwistyki teoretycznej: pewien bardzo słynny lingwista – stwierdziwszy obecność rekursywności w językach naturalnych – orzekł na wzór matematyki, że systemy języków naturalnych wyposażone są w gramatyki zdolne budować zdania nieskończenie długie. Jednakże praktyka niezbicie przeczy temu twierdzeniu, choćby nawet dlatego, że (proszę wybaczyć mi tę butadę) żaden osobnik posługujący się jakimkolwiek językiem naturalnym za swego żywota nigdy nie utworzył choć jednego zdania, które swoją długością zbliżałoby się do nieskończoności, czyli było jej złudzeniem.
Przykład trudności na polu lingwistyki informatycznej: użycie procedur rekursywnych w automatycznej analizie składni języków naturalnych mającej na celu rozumienie treści przez komputery sprawia, że takie programy nie są odwracalne, tj. te same algorytmy rekursywne zdane są na wykonywanie operacji syntezy mowy ludzkiej bez końca (bez stopu).
Kwestia druga: czy komputer będzie kiedyś w stanie rozwiązywać wszystkie problemy ?
Powyższe stwierdzenia pozwolą mi ustosunkować się do kwestii dotyczącej wykonalności obliczeń przy pomocy istniejących maszyn liczących. Informatycy potrzebowali prawie ćwierć wieku na badania nad sztuczną inteligencją, by zagadnienie to uznać właściwie za „nierozstrzygalne”. Mam na myśli oczywiście wspomniane w materiałach Pawła Stacewicza kłopoty ze zbudowaniem ogólnego programu do rozwiązywania problemów (General Problem Solver – GPS).
Jednakże, chociaż maszyna Turinga jest automatem stanów skończonych, nadal nie ma pewności co do kwestii, czy – rzeczywiście – nigdy nie będzie można zaprogramować nawet automatu tego rodzaju w sposób umożliwiający rozwiązywanie wszelkich problemów, a przynajmniej takich, jakie potrafi rozwiązywać człowiek. Jeżeli chodzi o moje osobiste zdanie, to sadzę, że tak sie może stać. Dlaczego ? Ot, chociażby dlatego, że nawet dzięki automatom stanów skończonych, można przecież także i bardzo złożone wielowymiarowe „przestrzenie” sprowadzić do odpowiednio bardzo złożonych sieci połączeń nawet w „przestrzeni” zaledwie o dwóch (czy trzech) wymiarach. Można więc chyba przyjąć, że poddana pod dyskusję i – jak sądzę – mająca stanowić jej przewodni temat kwestia pozostaje wciąż otwarta pod warunkiem jednak, że nikt nie ma zamiaru zbudować maszyny, dla której tak „pustka” jak i „nieskończoność” nie będą niczym więcej niż symbolami „0” i „∞” (abstrakcjami, artefaktami), a może nawet może po prostu „złudzeniami”. Inaczej, byłoby to bowiem conajmniej checią wyprzedzenia ewolucji, o ile nie … w tym momencie ciśnie mi się pod dyktando natrętna myśl rodzaju „déjà vu” (czyli po polsku potocznie „skąd ja to znam”), a konkretnie biblijna przypowieść o wieży Babel. Pozostawmy może jednak tę kwestię na jakąś inną okazję.