Jak mają się do siebie wzajem
obliczanie i przetwarzanie informacji?

Niniejszy wpis podejmuje dyskusję z kluczową tezą książki dra Marcina Miłkowskiego „Explaining the Computational Mind” (the MIT Press 2013), do której odnoszę się dalej skrótem ECM, rzeczoną zaś tezę określam skrótowo jako KRM — Kluczowa Równoważność Miłkowskiego.

KRM.  Proponuję, żeby pojęcia przetwarzania informacji i obliczania traktować jako zamienne.  Dzięki temu wszelkie wypowiedzi dotyczące przetwarzania informacji można będzie przekładać na precyzyjne terminy obliczeniowe.

Jest to przekład następującego tekstu kończącego rozdział 1 (str.24).
I propose that the notions of computation and information processing be used interchangeably. This will allow us to translate all talk of information processing into clear computational terms.

Jako czytelnik ECM starałem się tę tezę dobrze zrozumieć, dostrzegając jej podstawową w książce rolę. Z tych prób zrozumienia zrodziły się następujące pytania, które odróżniam numerami poprzedzanymi znakiem §.

§1.  Czy zgodne jest z intencją Autora rozumienie terminu „zamiennie” jako wskazującego na stosunek równozakresowości (a nie np.  równoznaczności)?

§2.1.   Jeśli tak, to skąd wiadomo, że te pojęcia są równozakresowe? Równozakresowość rozumiem tu w myśl następującej parafrazy propozycji KRM (gwiazdka wskazuje, że jest to parafraza).

KRM*.  x jest procesem Przetwarzania INformacji (PIN)  m w informację n wtedy i tylko, gdy x jest procesem OBLiczania (OBL) funkcji n=f(m).

Widzę dwie możliwe odpowiedzi (A,B) na pytanie, jak uzasadnić równozakresowość.

(A) Przyjmuje się KRM* jako postulat znaczeniowy.
(B) Dowodzi się na podstawie określonych założeń, że z każdej ze stron równoważności KRM* wynika druga strona.

§2.2.  Czy parafraza KRM* oddaje intencje KRM?

§2.3.  Poprawna jest odpowiedź A czy B?

§2.4.  Jeśli A, to czy jest ten postulat definicją sprawozdawczą, projektującą czy regulującą?

§2.5.  Jeśli B, to z jakich założeń wynika każda z implikacji:
PIN(x)=>OBL(x)  oraz  OBL(x)=>PIN(x)?

§3.1.  Zarówno przy odpowiedzi A jak i B powstaje pytanie: w jakim sensie brany jest predykat OBL?  Odróżnijmy następujące znaczenia:

OB/T (OBliczanie w sensie Turinga): obliczyć = znaleźć wartość funkcji obliczalnej w sensie Turinga 1936, czyli przez zastosowanie jakiegoś algorytmu.

OB/S (OBliczanie w sensie Szerszym):  obliczyć = (a) znaleźć wartość funkcji obliczalnej lub (b) funkcji nieobliczalnej lub (c) wykazać, że równanie wyrażające daną funkcję nie ma rozwiązania.

Co się tyczy punktu  b, Turing 1939  („Systems of Logic Based on Ordinals”) określał metaforycznie takie „obliczanie”  jako czynność wyroczni (oracle); w zwyczajowym idiomie matematycznym mówi się w tym przypadku o postępowaniu intuicyjnym. Jako osiagnięcie wyroczni podawał Turing przykładowo rozumowanie prowadzące do znalezienia liczby będącej numerem zdania gödlowskiego.

Jako inny znaczący przykład postępowania intuicyjnego podałbym Andrew Wilesa słynny dowód Wielkiego Twierdzenia Fermata (1995), o którym wiemy na pewno, że ten 200-stronicowy tekst nie jest dowodem sformalizowanym, a więc jest obliczaniem w sensie szerszym — dopuszczającym postępowanie, które nie jest algorytmiczne (mamy tu przypadek c z definicji OB/S).  Pozostaje sprawą otwartą, czy problem Fermata jest rozstrzygalny na drodze algorytmicznej (tj.  w sensie OB/T); to jest, czy da się skonstruować program, który umożliwiłby komputerowi samodzielne (tj.  bez wspomagania heurystykami) wykonanie tego dowodu, poczynając od punktu, z którego startował Wiles.

§3.2.  Czy przy takiej interpretacji OB/S zgodne będzie z intencją Autora domniemywać, że w KTM* przyjmuje on szerokie pojęcie obliczania (OB/S)? Opierałbym to domniemanie na deklarowanym przez Autora pluralistycznym ujmowaniu kognitywistyki, przy czym ów pluralizm mieści w sobie hiperkomptacjonizm (por.str.49, gdzie dopuszcza się hyper-Turing functions). Ten zaś polega (jeśli dobrze rozumiem) na uwzględnianiu funkcji nieobliczalnych jako jednego z możliwych przedmiotów poznania, mianowicie poznania intuicyjnego w matematyce.

§4.  Nawet przy tak szerokim pojęciu obliczania, utożsamienie go z wszelkim przetwarzaniem informacji zdaje się napotykać na kontrprzykłady, które są może do uchylenia, ale pod warunkiem dodatkowych wyjaśnień.  Wprawdzie przy rozumieniu szerokim możemy zaliczyć do obliczeń takie procesy przetwarzania informacji, jak twórcze pomysły, nie mające wsparcia w żadnym algorytmie. Wtedy, stwierdzając, że nie jest to obliczanie Turingowskie, można domniemywać, że mamy tu obliczanie jakiejś „hyper-Turing function” (por.3.2 wyżej).

Jak jednak będziemy kwalifikować np.  marzenia senne? W potocznym rozumieniu są to jakieś przetworzenia informacji,  gdy np.  przechowane w pamięci realistyczne obrazy z minionego dnia przekształcają się w jakieś zwidy surrealistyczne.  Jest to czy nie jest przekształcanie?  Jeśli jest, a przy tym nie ma powodu, żeby taki proces uznać za obliczanie w jakimkolwiek sensie, to będziemy mieć wyraźny kontrprzykład do KRM*.

Oczywiście, można zdecydować, że sny itp. procesy przekształcania obrazów i myśli w wyniku przygodnych asocjacji (np.  w luźnej pogawędce) nie należą do kategorii „information processing, nawet jeśli przemawiają za tym nawyki języka potocznego.  Wolno tak postanowić, o ile czyni się to świadomie i z odpowiednią motywacją.

Czy taka jest właśnie strategia Autora?

Ten wpis został opublikowany w kategorii Dialogi wokół recenzji, Filozofia informatyki, Światopogląd informatyczny. Dodaj zakładkę do bezpośredniego odnośnika.

Komentarze do Jak mają się do siebie wzajem
obliczanie i przetwarzanie informacji?

  1. Mogę od razu odpowiedzieć na te pytania:

    1. KRM* dobrze oddaje moje intencje.

    2. To jest definicja regulująca; uzus w kognitywistyce jest niespójny, raz mówi się o obliczaniu w sensie wąskim (Turinga), czasem niesłychanie wąskim (w medium językopodobnym w sensie „myśleńskiego” Fodora), a czasem szerokim, takim, że obejmuje przetwarzanie analogowe. Uznałem, że skoro zakresy węższe to podzakresy szerszego pojęcia, tworzenie definicji sprawozdawczej będzie podtrzymywaniem chaosu terminologicznego, gdzie trudno dociec, cóż kryje się pod nazwą obliczania.

    3. Śnienie czy twórcze rozwiązywanie problemów oczywiście jest przetwarzaniem informacji i oczywiście istnieje algorytm w obu wypadkach (słowo „oczywiście” jest użyte prowokacyjnie). To mocne twierdzenie, więc zaraz wyjaśniam:

    (a) Mówię o algorytmie w sensie czysto deskrypcyjnym.

    (b) Przetwarzanie informacji może przecież polegać na zanegowaniu prawdziwego twierdzenia lub generowaniu sprzeczności. Bardzo łatwo też napisać program, który dokładnie coś takiego czyni. Dlatego opis przetwarzania informacji – a także przepływu informacji – nie musi odzwierciedlać wcale operacji dowodowych w klasycznej logice; opisanie takiego procesu w logice wymaga zastosowania logik nieklasycznych (non-sound logics), co zresztą uczynili Barwise i Seligman w swojej świetnej książce „Information Flow”. Skoro dla każdego, nawet najdziwniejszego przetworzenia informacji można w banalny sposób podać tekst programu, który dokonuje takiego przetworzenia, nie do końca rozumiem, skąd bierze się przekonanie, że nie jest to obliczanie w „jakimkolwiek sensie”. Większość maszyn Turinga i programów nie robi nic przydatnego dla człowieka, ale to nie znaczy, że nie obliczają. Coś obliczają, tylko nam z tego nic nie przychodzi.

    Istnieją interesujące hipotezy na temat myślenia twórczego:

    http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3703539/?tool=pmcentrez&report=abstract

    Nie sądzę, aby autorzy tych prac, których jako filozof nauki chcę zrekonstruować, chcieli powiedzieć, że myślenie twórcze wymyka się metodom obliczeniowym. Dlaczego mielibyśmy powiedzieć, że nie jest to obliczanie?

    Co więcej, luźne skojarzenia też mogą być opisane algorytmem i jest to nawet stosunkowo łatwe, bo mamy przecież algorytmy uczenia asocjacyjnego dla sieci neuropodobnych. Dlaczego to nie miałoby być algorytmiczne i obliczeniowe? Nie do końca rozumiem, dlaczego mielibyśmy rezerwować nazwę „obliczanie” dla procedur związanych wyłącznie z poprawnym przekształcaniem dobrze zbudowanych formuł w matematyce. Sądzę, że pojęcie obliczania – i tu jestem nieoryginalny, bo to podkreślał Herbert Simon razem z Allanem Newellem – może myląco brzmieć; oni dlatego mówili chętnie o przekształcaniu symboli, co niestety sprowokowało niepotrzebną debatę na temat natury samych symboli. A im chodziło o to, że to nie muszą być matematyczne przekształcenia liczb, tylko po prostu przekształcenia dowolnych znaków.

  2. I może jako ciekawa rzecz z aktualnych badań – artykuł Gary’ego Lupyana o tym, dlaczego mózgi nie realizują wprost algorytmów, których świadomie staramy się nauczyć:

    http://sapir.psych.wisc.edu/papers/lupyan_brainsAlgorithms_proof.pdf

    Nigdzie jednak Lupyan nie twierdzi, że mózg nie jest urządzeniem obliczeniowym, lecz że nie jest po prostu komputerem cyfrowym. Ja raczej bym powiedział, że świadome wykonywanie reguł bynajmniej nie opiera się wprost na realizacji tych reguł; one są realizowane w zdecydowanie bardziej skomplikowany sposób, niż by się zdroworozsądkowo wydawało. Mamy do czynienia zapewne z bardzo złożoną hierarchią maszyn wirtualnych.

    • Czy istnieje jakikolwiek proces mózgowy/obliczeniowy, który nie byłby obliczaniem w sensie przyjętym przez w/w Lupyana? A w sensie Miłkowskiego?

      Errata 26.11 o godz.10.
      W pierwszym wiersz powyżej miałem intencję napisać alternatywę „mózgowy/umysłowy”, a przez pomyłkę napisałem po ukośniku „obliczeniowy”, co nie ma sensu, i stąd komentarz MM nie mógł odpowiedzieć moim intencjom.

      • Proces mózgowy oczywiście nie musi być obliczeniowy, np. pompa sodowo-potasowa jako taka jeszcze nic nie oblicza. Natomiast procesy mózgowo/obliczeniowe są dla mnie po prostu obliczeniowe.

        • Mój wczorajszy komentarz zawiera błąd, na który wskazuję w dzisiejszym do niego dopisku (Errata). Powtórzę tamto pytanie, już bez deformacji: Czy istnieje jakikolwiek proces umysłowy, który nie byłby obliczaniem w sensie przyjętym przez Lupyana?

          Uzupełniam jeszcze to pytanie, jak następuje.

          Czy przez algorytm mamy rozumieć zbiór jakichkolwiek reguł czy instrukcji (np. drukuj bez końca same zera), czy tylko instrukcji zmierzających do ROZWIĄZANIA określonego problemu? Czy jest np. algorytmem reguła „rozpoznawaj liczby nieparzyste zapisane wielocyfrowo po tym, że w zapisie jest więcej jednocyfrowych liczb nieparzystych niż parzystych”? (przypadek opisany przez Lupyana). Jak daleko można się w poszerzaniu pojęcia algorytmów posuwać, a nie dojść do tego, że zaliczy się do nich nawet idiotyzmy – jako produkt określonych procesów, których przebieg da się zawsze opisać jakąś regułą (jak cytowana wyżej za Lupyanem).

          Czy jest dobry powód, żeby również reguły opisujące błędy nazywać algorytmami? Wtedy np. pogląd, ze dwa razy zero równa się dwa (niestety, żywiłem go sam mając lat 10) trzeba by uznać za powstały w wyniku algorytmu, który mi się jakoś wykluł w głowie.

          • Zgodnie z definicją algorytmu u Knutha reguła podana przez Lupyana byłaby algorytmem w sensie tylko przybliżonym (Sztuka programowania, t. 1, s. 1-9), gdyż:

            (1) kończy się po skończonej ilości kroków (raczej tak);
            (2) jest dobrze zdefiniowana (jednoznaczna) — tu Lupyan nie podaje dokładnej sekwencji kroków, które ludzie muszą podejmować, a nie wiadomo, czy wszyscy tak naprawdę dobrze wiedzą, że wystarczy patrzeć na ostatnia cyfrę i stąd chyba wyniki badań;
            (3) ma dane wejściowe (liczby dziesiętne zapisane wielocyfrowo);
            (4) ma dane wyjściowe (decyzja o kategoryzacji, czyli rozstrzygnięcie tak/nie);
            (5) jest efektywnie zdefiniowana (no załóżmy)…

            Tak czy inaczej Lupyan nie podaje badanym żadnej sekwencji kroków do nauczenia. Załóżmy jednak, że odkrywa jakiś algorytm, a wówczas oczywiście spełnienie warunków Knutha jest bardzo proste, bo każda skończona sekwencja kroków wykonywanych na jakichś danych wejściowych, kończąca się jakimś wynikiem jest algorytmem. To jest podręcznikowa definicja.

            Inna rzecz, że ta definicja ma swoje wady. W typowych programach obsługi interfejsu mamy zwykle wieczne pętle – przerywane w celu wyłączenia komputera, ale ten warunek można naruszyć np. w oprogramowaniu elektrowni jądrowej. Mówiąc inaczej, bez trudu można zaprogramować komputer tak, aby naruszał warunek (2), a chyba nie przestaje przez to ten program być algorytmem, bo może być nawet użyteczny. Knuth nazywa przypadek procesu interakcyjnego (np. obsługi interfejsu użytkownika) „metodą obliczeniową” (s. 5), ale podaje też przykłady metod, które nie zakończą się (metoda „największej wspólnej miary” Euklidesa) i nie są w tym sensie w pełni użyteczne. To nie do końca szczęśliwa cecha typowych definicji algorytmów.

            Jeśli weźmiemy inną teorię algorytmów, np. Gurevitcha, to też okaże się, że nawet najdziwniejsze reguły są zgodnie z nią algorytmami. Choćbyśmy mieli dziwnie zdefiniowane mnożenie (2 x 0 = 2), to przecież nie ma żadnej przeszkody, żeby stworzyć maszynę Turinga czy algorytm Markowa, który tak przekształca te symbole. Dlaczego mielibyśmy nie nazywać tego algorytmami?

            Moja intuicja, że to są algorytmy, bierze się z praktyki programistycznej. Większość tekstów programów, z którymi mam do czynienia, nie robi (przynajmniej na początku) tego, co programista sobie wyobrażał. Ale nie powiem, że one nie są obliczeniowe lub że nie zawierają one algorytmów. Zawierają, ale inne niż wyobrażone przez nieuważnego programistę.

      • W sensie Lupyana cyfrowe obliczanie to realizacja reguł produkcji, ale on raczej uważa, że mózg jest komputerem analogowym. Tu moja króciutka dyskusja z nim:

        http://mindingthebrain.blogspot.com/2013/10/the-mind-is-not-digital-computer.html

        A co do mojego stanowiska, to jestem przekonany, że istnieją procesy mózgowe, które nie są obliczeniowe. Nie mam jasności, jakie są granice procesów umysłowych, ale przypadki takie jak marzenia senne i twórcze rozwiązywania problemów nie wydają mi się kontrprzykładami. Błądzić też można regularnie i uwielbienie dla odrzucania poprzednika jest dosyć regularne. Niektórzy rekonstruują takie błędy logiczne w kategoriach bayesowskich (np. Oaksford i Chater) i okazują się one błędami tylko z pewnego punktu widzenia (o dziwo).

  3. Paweł Stacewicz pisze:

    Dobry wieczór — bardzo ciekawa wymiana myśli.

    Zainteresował mnie następujący fragment wypowiedzi MM:
    „Sądzę, że pojęcie obliczania – i tu jestem nieoryginalny, bo to podkreślał Herbert Simon razem z Allanem Newellem – może myląco brzmieć; oni dlatego mówili chętnie o przekształcaniu symboli”.

    Chętnie podpiszę się pod tym sądem — dziwiąc się jednak, skąd tak wielkie zamiłowanie do używania terminu „obliczanie”.
    Mamy wszak, nie tylko w języku polskim, trzy dobre terminy, które niekoniecznie trzeba traktować jako równoznaczne; co więcej ich potencjalną nierównoznaczność można uczynić punktem wyjścia dyskusji o relacji umysł-komputer.
    Są to następujące terminy: 1) liczba (i pochodny od niego: obliczanie), 2) dane (i pochodny od niego: przetwarzanie danych), 3) informacja (i pochodny od niego: przetwarzanie informacji).
    Przyjmując wstępnie nierównoznaczność tych terminow, moglibyśmy stwierdzić dalej, że: a) oblicza kalkulator (pierwsze komputery były tylko kalkulatorami i slużyły tylko do matematycznych obliczeń), b) dane przetwarza komputer (przy czym mogą one być symboliczne lub subsymboliczne, jak w przypadku sieci neuropodobnych), c) informacje przetwarza ludzki umysł.
    I dopiero wtedy moglibyśmy pytać (nie popadając w kłopoty z wieloznacznością terminu „obliczanie”) czy: informacje redukują się do danych, a dane do liczb.
    Albo: czy (przetwarzający informacje) umysł redukuje się do (przetwarzającego dane) komputera, a ten ostatni jest tylko i wyłącznie wyrafinowanym kalkulatorem (przetwornikiem liczb).
    Na obecnym etapie moich przemyśleń wskazane redukcje są wątpliwe (choć z pewnych względów mogą być poznawczo cenne), co najważniejsze jednak, rozróżniając wstępnie informacje, dane i liczby, zyskujemy dobry punkt wyjścia do precyzowania swoich filozoficznych stanowisk.

    • Może zamiłowanie do terminu „obliczanie” wynika z odrazy do stosowanego przez polskich psychologów terminu „komputacja”. Teoria, która opisuje algorytmy, nazywa się „teorią obliczeń” na informatyce i taka jest polska tradycja terminologiczna. Algorytmy Markowa to dla mnie najbardziej intuicyjny model obliczeń, bo tak zawsze czytałem w dobrych podręcznikach i słyszałem od innych, którzy o tej dziedzinie mówili.

      Natomiast dyskusja nie dotyczy tak naprawdę polszczyzny, ale angielskiego. Tyle że tam sytuacja jest prawie identyczna („prawie” robi różnicę: psychologia anglojęzyczna nie zna odpowiednika „komputacji”, bo zawsze jest „computation”).

    • Zgadzam się z kol. Stacewicza sceptycyzmem co do takiego rozciągania terminu „obliczanie”, że np. moje przetwarzanie w dzieciństwie informacji „zero razy dwa” na informację „=2” (opisane w odpowiedzi kol. Miłkowskiemu, 25.XI), trzeba by nazwać wynikiem obliczania.

      Mamy tu pułapkę językową, z której wyjście może podpowiedzieć kol. Miłkowskiego uwaga 3a: „Mówię o algorytmie w sensie czysto deskrypcyjnym.” (kom. z 25.XI, godz.19.28).

      Istnieje rodzina słów, których sens deskrypcyjny czyli czysto opisowy funkcjonuje równolegle z sensem normatywnym (lub aksjologicznym). Prosty przykład „pogoda”. Mówiąc ,,nastała wreszcie pogoda” mam na myśli dobrą pogodę, czyli używam terminu w sposób aksjologiczny, wartościujący dodatnio. Natomiast kontekst „zła pogoda” uchyla moment aksjologiczny i wtedy wskazuje na sens aksjologicznie neutralny, a więc opisowy.

      Bliższe naszemu tematowi jest słowo „metoda”. Podobnie jak z „pogoda”, kontekst „zła metoda” odziera ten termin z szaty aksjologicznej czy może (lepiej w tym przypadku) – normatywnej. Ale już w szekspirowskim „w tym szaleństwie jest metoda” — ze względu na opozycję do czegoś tak negatywnego jak szaleństwo — pojęcie metody nabiera nieco blasku aksjologicznego czy normatywnego. Jeszcze wyraźniej jawi się to w zarzucie promotora „tej rozprawie brak metody”. Jeśli zarzuca się czegoś brak, to ma się na uwadze coś, co być POWINNO.

      Dokładnie tak samo można rozpiąć na dwóch biegunach, opisowym i normatywnym, sens słowa „algorytm” (jak też „obliczanie”). Mój dotychczasowy kontakt z literaturą, może nieco staroświecką (Penrose itp.), nie oswoił mnie z pojęciem czysto opisowym, znalazłem je dopiero u Miłkowskiego i autorów przez niego omawianych.

      Można przyjąć taką jak oni strategię terminologiczną. Pytanie, co nam to da, wymaga głębszego teoretycznego namysłu. Zachętę do tego dostrzegam w komentarzu Pawła Stacewicza, i pójdę za nią w swoim czasie.

      • Ja przyznam się do mojego uwarunkowania terminologią Dennetta, który swego czasu głosił, że ewolucja jest procesem algorytmicznym. I to miało być raczej zgodnie z deskrypcyjnym pojęciem algorytmu, a nie normatywnym. Zresztą ten normatywny sens nie jest jawnie ukazywany przez definicje w podręcznikach (np. Knuth) czy teoriach (np. Gurevich).

        • Algorytmiczność ewolucji to przypadek wart zastanowienia, bo poszerza stosowalność pojęcia algorytmu, wyprowadzając poza tezę Churcha-Turinga. To jednak nie odbiera temu pojęciu charakteru normatywnego, bo Przyroda rozwiązuje SKUTECZNIE problem produkowania jestestw zdolnych do życia i rozwoju, nawet jeśli to czyni metodą prób błędów i zapędza się nieraz w ślepe uliczki, podczas gdy mój dziecinny „algorytm” [?] mnożenia przez zero był w 100% nieskuteczny. Więc choć mózg działał tu wedle pewnej reguły przetwarzania informacji, nie zaliczyłbym tego procesu do algorytmicznych czyli obliczeniowych.

          Normatywność czy aksjologiczność nie musi być explicite w definicji algorytmu, skoro wciąż się przejawia w praktyce, np. gdy się klasyfikuje algorytmy ze względu na efektywność (pracujące wielomianowo, wykładniczo etc). Te wymagające mniej czasu czy pamięci są LEPSZE od tych bardziej gnuśnych, mamy tu więc swoistą jakby aksjologię prakseologiczną.

          • Hm, może po prostu to jest kwestia powiedzenia, co ten algorytm robi. Jeśli dziecięcy algorytm mnożenia nie daje jako wyniku mnożenia, to jest gorszym algorytmem niż algorytm rzeczywiście mnożący (przynajmniej w jakimś zakresie, jak kalkulator kieszonkowy).

            Problemem ewolucji u Dennetta jest raczej produkcja porządku z chaosu, no i to rzeczywiście jest skutecznie realizowane. W psychologii poznawczej cel algorytmu jest opisywany na poziomie obliczeniowym Marra; jeśli znajdziemy uznamy, że celem algorytmu jest tworzenie marzeń sennych, to i na nie będzie istnieć algorytm, też w sensie normatywnym. Ale być może to nie jest celem, gdyż wydaje się z powodów biologicznych niepotrzebne, a jedynie jest produktem ubocznym endogennej aktywności mózgu, m.in. w obszarze globalnej pamięci roboczej. W tym sensie nie istnieje algorytm, który to realizuje; sny byłyby po prostu skutkiem ubocznym wyłączenia ośrodków czynnych na jawie (w tym aktywnej eksploracji przy użyciu zmysłów).

  4. Paweł Stacewicz pisze:

    Ponowię spostrzeżenie, że wątek stał się bardzo ciekawy.
    Dorzucę trzy uwagi.

    1) W moim przekonaniu (i chyba nie tylko moim; podejrzewam, że tak mniema większość informatyków) skuteczność czy też niezawodność w rozwiązywaniu problemów określonego typu nie jest cechą definicyjną algorytmu. Algorytm jest po prostu pewnym schematem działania – sensownego lub bezsensownego, skutecznego lub nieskutecznego, ważne by opisywał precyzyjnie (choć niekiedy niedetermistycznie), jak maszyna pewnego typu ma działać. Jesli pewna maszyna ma realizować operację „zero razy x” i zwracać za każdym razem x, to schemat zapewniający niezawodnie takie jej działanie (niezależnie od sensu czy bezsensu takiej operacji w tradycyjnej atytmetyce) trzeba nazwać algorytmem.

    2) Wydaje mi się, że pojęcie algorytmu jest nierozerwalnie związane z pojęciem automatu (takiego czy innego rodzaju). [Algorytm, automat i dane to trójka kluczowych i powiązanych ze sobą pojęć – stanowiących o specyfice informatyki].

    W tym kontekście rozróżniam (w różnych swoich pracach) dwa pojęcia algorytmu: wąskie i szerokie.

    W sensie wąskim i jednocześnie najbardziej precyzyjnym algorytmem jest każdy ogólny schemat procedury możliwej do wykonania przez uniwersalną maszynę Turinga (UMT). Ze względu na obliczeniową równoważność UMT i komputerów cyfrowych jest to pojęcie algorytmu dla maszyn cyfrowych.

    W sensie szerszym (a precyzowanym cząstkowo w ramach różnych modeli obliczeń) algorytmem jest każdy ogólny schemat procedury możliwej do wykonania przez pewną maszynę, niekoniecznie cyfrową i niekoniecznie deterministyczną (np. analogową, kwantową, ewolucyjną – lista nie jest zamknięta).

    3) Szerokie pojęcie algorytmu (o ile nie zakładamy z góry, że sprowadza się ono do pojęcia węższego; bo wszystko jest realizowalne w dostatecznie dobrym przybliżeniu przez UMT) jest pojęciem otwartym, to znaczy wraz z wynajdowaniem nowych typów maszyn pojęcie to będzie stawało się coraz szersze.

    • Nie zamierzam się spierać, co zasługuje, a co nie na miano algorytmu; jako encyklopedysta dbałbym o to, żeby podać definicje sprawozdawcze wiernie oddające aktualny stan piśmiennictwa, ale w obecnej dyskusji nie występuję jako encyklopedysta.

      Zależy mi na tym, żeby dostać klasyfikację procesów przetwarzania informacji, a mając listę podzbiorów tej klasy procesów, ustalić, czy każdy z nich jest zbiorem procesów obliczeniowych. Jeśliby okazało się, że nie każdy, byłby to argument przeciw równoważności KTM* w punkcie 3.2 mojego wpisu z 23.XI.

      W tym dociekaniu za absolutny punkt odniesienia przyjmuję pojęcie obliczania jako ZNAJDOWANIA WARTOŚCI FUNKCJI – obliczalnej po Turingowsku lub nieobliczalnej. Wtedy marzenia senne jako uboczny produkt aktywności mózgu nie zasłużą na miano obliczeń, nie zasłuży też na to operacja mnożenia x przez zero dająca wynik x, gdyż nie ma funkcji x.0=x. A jedno i drugie, sen i owa operacja, jest w moim rozumieniu przetwarzaniem informacji (PIn). Ergo non(KTM*).

      Żeby utrzymać KTM*, trzeba bądź (A) odrzucić tę intuicję co do pojęcia PIn, której przed chwilą dałem wyraz, bądź też (B) przyjąć inne pojęcie obliczania. Na opcję B się nie godzę, i w razie potrzeby będę wyjaśniał dlaczego. Na modyfikację opcji A jestem otwarty, i czekam na propozycje.

  5. Paweł Stacewicz pisze:

    I tak oto mamy doskonały przykład ilustrujący moje intuicje/propozycje związane z rozróżnieniem (dane vs informacja)

    Operacja f(x,0)=x jest dobrze określoną funkcją dwóch zmiennych (druga zmienna jest w tym wypadku stałą, ale to nic nie szkodzi), której realizację możemy opisać prostym algorytmem, i powierzyć do wykonania komputerowi cyfrowemu. Realizując tę funkcję algorytmicznie komputer będzie przetwarzał dane, nic nie wiedząc o tym, że nam chodzi o mnożenie (albo o zero; a nie np. o symbol „0” rozumiany jako 1). Komputer będzie bezbłędnie przetwarzał dane, czyli informacje nijak nie interpretowane.

    Dojrzały umysł ludzki natomiast, interpretując tę operację jako mnożenie przez zero (w kontekście znanych mu teorii arytmetycznych), będzie przetwarzal informacje, a więc dane ściśle zinterpretowane, i rozpozna bezsensowność stosowanego algorytmu.

    Umysł dziecięcy także, nic nie wiedząc o znaczeniu zera i mnożeniu przez zero (lub ewentualnie interpretując symbol zera jako jedynkę), będzie przetwarzał informacje – czyli dane interperetowane na sposób dziecięcy.

    Być może odszedłem nieco od głównego wątku — ale chciałbym wyciągnąć z tej dyskusji również coś dla siebie.

  6. Radek Siedliński pisze:

    Dyskusja zaiste zrobiła się niezwykle ciekawa. Pozwolę sobie do niej dołączyć i podzielić się garścią uwag świeżo po lekturze.

    1.
    Zacznę od zwrócenia uwagi na pewna kwestię natury fundamentalnej: otóż sądzę, że nie ma powodów, aby redukować pojęcie funkcji do pojęcia funkcji liczbowej, tzn. o wartościach będących liczbami.
    Funkcją, najogólniej rzecz biorąc, jest dowolne przyporządkowaniem elementom zbioru X (argumenty) elementów zbioru Y (wartości) wedle pewną reguły.
    Natura wzajem przyporządkowywanych elementów nie musi być zatem liczbowa. Jeżeli tak, to znajdowanie wartości funkcji niekoniecznie musi być rozumiane jako znajdowanie liczby.

    [Na marginesie: będę konsekwentnie pisać „przyporządkowywanie” a nie „przekształcanie”, gdyż to ostatnie sugeruje zawsze – przynajmniej w moim odczuciu – rodzaj ciągłej transformacji między argumentem a wartością.]

    2.
    Znajdowanie wartości funkcji dla danego argumentu niezależnie od tego, czy wartość owa jest liczbą nazywam obliczaniem w sensie szerokim: OBL-S.
    Funkcję, której wartość niekoniecznie jest liczbą nazywam funkcją obliczalną w sensie szerokim: F/OBL-S

    2.
    Jeżeli jednak poszukiwana wartość jest liczbą, to jej znajdowanie nazywam obliczaniem w sensie wąskim: OBL-W (przy czym nie rozróżniam tu między obliczaniem turingowskim a nieturingowskim).
    Funkcja której wartość z konieczności jest liczbą nazywam funkcją obliczalną w sensie wąskim: F/OBL-W

    3.
    Oczywiście zbiór F/OBL-W zawiera się w zbiorze F/OBL-S

    4.
    Zauważmy, że zaproponowane przez prof. Marciszewskiego pojęcie OB/S pokrywa się z OBL-W. Pojęcie OBL-S w ogóle chyba nie było brane w obecnej dyskusji pod rozwagę.

    5.
    Skupię się teraz na procesach PIN.
    Z pewnością procesy owe polegają na przyporządkowywaniu pewnych obiektów (tu: znaków) innym. Są zatem F/OBL-s. Nie całkiem jednak rozumiem dlaczego powinniśmy przyjąć, że są one także także F/OBL-W. Pojęcie znaku nie pokrywa się wszakże z pojęciem liczby. W tym punkcie podzielam chyba wątpliwości Pawła co do możliwości redukcji informacji do liczb.

    6.
    Pytanie: czy winniśmy zakładać cokolwiek o naturze elementów należących do dziedziny oraz przeciwdziedziny dowolnej funkcji? W szczególności: czy winniśmy zakładać, że musza być one w ogóle znakami?

    7.
    Pytanie: czy winniśmy zakładać, że reguła przyporządkowująca elementy wartości argumentom musi być algorytmem?

    8.
    Wydaje się, że w przypadku procesów PIN odpowiedź na pytania 6. i 7. jest twierdząca, lecz czy musi tak być dla dowolnej funkcji?

    9.
    Zakładamy, że wiele rozmaitych procesów naturalnych (tu: niezależnych od człowieka i jego specyficznych zdolności poznawczych) jest OBL-S – to jasne. Dlaczego jednak założenie to z konieczności miałoby pociągać za sobą rozstrzygnięcie co do natury przyporządkowywanych sobie wzajem elementów z dziedziny i przeciwdziedziny? Dlaczego mielibyśmy zakładać, że muszą to być znaki? Np. procesy transkrypcji z pasma antysensownego DNA w nowe pasmo sensowne z pewnością są przyporządkowaniem sobie elementów wg. specjalnych reguł, lecz czy są one tym samym manipulacją na znakach? Tzn. są takowymi dla nas, ludzi, czyli istot potrafiących nadawać znaczenie – interpretować, ale czy są one znakowe jako takie?

    Tyle uwag na gorąco. Proszę wybaczyć, że nie pomagam w klaryfikacji już poruszonych problemów, lecz dorzucam do nich jeszcze kolejne (być może zresztą trywialne). Być może jednak pozwolą zobaczyć dyskutowane kwestie w nieco innym oświetleniu..?

    • Paweł Stacewicz pisze:

      Ad 4) Przejrzałem powyższą dyskusję i wydaje mi się, że nikt nie sformułował explicite tezy, że funkcje definiujące przetwarzanie informacji muszą być liczbowe (choć, jak zwracano uwagę, wrażenie takie mogą wywoływać sugestywne brzmienia terminów „obliczanie” (jako przetwarzanie informacji), „funkcja obliczalna/nieobliczalna” i „obliczalność”).

      Mimo tego wydaje mi się, że rozróżnienia Radka są cenne.

      W przypadku maszyn cyfrowych redukcja danych/znaków do liczb wydaje się naturalna (choć pozostaje tylko redukcją), bo na najniższym poziomie realizacji maszyny takie operują na ciągach zero-jedynkowych (przy czym moim zdaniem te ciągi nie zawsze mają sens liczbowy; można się też zastanawiać, czy w ogóle musimy tak podkreślać ich matematyczność/liczbowość, czy nie wystarczy mówić o dwóch rozróżnialnych stanach fizycznych: impuls i jego brak).

      W przypadku maszyn analogowych (jest to opinia laika) redukcja danych/znaków do liczb jest bardziej dyskusyjna, bo a) są to w ogólności liczby rzeczywiste (to może stwarzać pewne problemy związane z „nieskończonościowym” ich charakterem), b) za kody można uznać stany fizyczne pewnych struktur fizycznych (które wykazują podobieństwo/analogię do przetwarzanych danych) – np. kształty rowków na płycie gramofonowej przypominają kształty przetwarzanych fal dźwiękowych. W przypadku b) mniej naturalne wydaje się utożsamianie kodów z układami liczb, bo o pewnych mediach (używając ich) możemy nie wiedzieć dokładnie jakie są ich charakterystyki liczbowe, a mimo to możemy wykorzystywać te media.

  7. km pisze:

    ‘Dane’ (poznaniu przyrodoznawstwa) regularnie się przejawiając „zmieniają się” w ‘informacje’ o świecie przedstawione za pomocą ‘liczb’- w obliczalnych funkcjach.
    Sukces nauki jest dowodem (przez pokazanie palcem) algorytmiczności procesów (danych poznaniu).
    Kalkulator-komputer nie wie co ani dlaczego przetwarza regularnie ‘dane’. Zjawiska ‘dane’ w przyrodoznawstwie też regularnie się przejawiają (w świecie się „przetwarzając”) – w obu wypadkach to my nadajemy znaczenie
    Perspektywa świadomego obserwatora przypisującego znaczenia wyróżnia ‘liczby’, ‘dane’, ‘informacje’. Czy dane można zredukować do liczb, liczby do danych, czy przetwarzanie jednych można zredukować do obliczanie drugich? Jeśli znaczenia nie da się zredukować do przetwarzania danych przyrodoznawstwa to skąd sukces nauk przyrodniczych? Czy dane przyrodoznawstwa nie są w nim ujęte w pełni za pomocą liczb będących jedyną informacją o „realnych”(danych) bytach poddanych obserwacji?

    Liczby same w sobie mają już znaczenie jako „elementy zdefiniowane przez relację i pozycję w idealnym uszeregowaniu”. (zinterpretowane i znaczące nie poddają się liczby dowolnym przekształceniom np. 2*0=2) W idealnym uszeregowaniu wyczerpuje się ich (liczb) treść.
    Tak jak treść jaką można przypisać przedmiotom w przyrodoznawstwie „wyczerpuje się w relacjach, których są intelektualnym centrum”.
    I tak ‘substancje’ „zmieniają się” w ‘funkcje’ w oglądzie rzeczywistości nauk ścisłych- właściwości przejawiane przez domniemane substancje „stają się” wynikiem obliczanych funkcji.

    Obserwujemy regularności w zjawiskach. Świat przypisuje zjawisku A pewne zjawiska B i C regularnie i te relacje opisujemy funkcjami z pomocą liczb. Trafnie przewidujemy B i C w relacji do wystąpienia A- metoda przyrodoznawstwa (sukces) sprawia, że rezultat konieczności związku ideału ‘liczb’ z ‘danymi’ jest weryfikowany (pozytywnie).

    Otaczające nas zjawiska (‘dane’ naszemu oglądowi) podlegają regułom. Możemy to z sukcesem odzwierciedlić więc wręcz utożsamiamy ‘dane’ („realne byty”) z matematycznymi funkcjami („świat nie matematyzowany a matematyczny”). Liczby, dane, informacje wzajemnie się warunkują i konstruują. Obliczenie wartości funkcji jako wyznacznik jakości obliczenia- funkcja „znajduje” algorytmicznie wartość trafnie odwzorowując, a symulacja „staje się” obliczeniem.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *