Sztuczna Inteligencja. Czy mamy się czego bać?

Temat sztucznej inteligencji gościł na naszym blogu nie raz. Obecny głos możemy potraktować jako kontynuację dyskusji, którą zainicjował historyczny już wpis jednej ze studentek wydziału Fizyki PW. Polecam go jako lekturę wstępną

W niniejszej dyskusji proponuję skupić się na zagrożeniach ze strony SI: egzystencjalnych, społecznych, gospodarczych… (lista nie jest z pewnością zamknięta).

Na dobry początek przedstawiam próbkę spostrzeżeń i argumentów, które nadesłali w ubiegłym semestrze studenci wydziału WEiTI PW.

Oto ona:

1.  Sztuczna inteligencja (SI) rozwija się tak szybko, że według wybitnych badaczy, takich jak Stephen Hawking, już niedługo przewyższy człowieka. Jako następstwo ludzkość może przestać kontrolować poczynania sztucznej inteligencji i zostać zepchnięta na drugi plan (a nawet zniewolona czy fizycznie wyeliminowana).

2.  Bardzo poważnym zagrożeniem jest fakt, że SI może nie być w stanie określać takich samych środków do celu jak ludzie. Pomyślmy, na przykład, o autonomicznej broni, która nie zważając na straty  będzie dążyć do zniszczenia przeciwnika. Może np. ranić wielu niewinnych cywilów czy spowodować nieodwracalne zmiany w naturalnym środowisku.

3.  Dzięki niesamowitej produktywności i precyzji, przy relatywnie niskich kosztach „pracy”, sztuczna inteligencja już zastępuje ludzi w wielu zawodach, a w przyszłości może zastępować nas w większości prac. Grozi to globalnym bezrobociem.

4.  Także autonomiczne algorytmy, które już teraz zbierają o nas dane i wykorzystują je w celach marketingowych, mogą zostać rozwinięte do poziomu, w którym np. polityczna propaganda może być „zaszczepiana” w ogromnej części społeczeństwa i to ze znakomitym skutkiem. Również systemy kamer rozpoznające obywateli i przyznające im tzw. „noty społeczne” są jawną ingerencją w prywatność i wolność człowieka jako jednostki.

Zachęcam do uzupełnienia i rozwinięcia tych głosów…

Podejrzewam także, że są wśród nas osoby, które mają w stosunku do SI zdanie odmienne. To znaczy: widzą w SI nie jakieś mroczne zagrożenie, lecz cywilizacyjną szansę (potężną technologię, która może nam się dobrze przysłużyć).

Czekam zatem na głosy obydwu stron…

Zapraszam do dyskusji wszystkich Czytelników bloga — Paweł Stacewicz.

Opublikowano Dydaktyka logiki i filozofii, Filozofia informatyki, Filozofia nauki, Światopogląd informatyczny, Światopogląd racjonalistyczny | 14 komentarzy

W jaki sposób logika predykatów może być pomocna w badaniu języka naturalnego?

Przeczytałem z ciekawością streszczenie odczytu prof. Andrzeja Włodarczyka na seminarium 30 maja 2019. Z ciekawością, bo interesuje mnie żywo zjawisko interdyscyplinarności, a tekst tego odczytu pozwala dostrzec fakt, że interdyscyplinarność czy transdyscyplinarność (czy jest tu jakaś różnica?) nie jedno ma imię. Różne mogą być jej typy, a tekst prof. Włodarczyka reprezentuje wyraziście pewien określony typ. Nazwałbym go nowatorskim, podczas gdy moje amatorskie wycieczki w interdyscyplinarność mają charakter raczej konserwatywny.

Cechą postawy nowatorskiej jest m.in. pomysłowość w kreowaniu nowych terminów, bez których rozumienia nie jest możliwe, żeby słuchacz lub czytelnik mógł coś wnieść w rozwiązywanie postawionego przez Autora problemu. Co do mnie, mam trudność ze zrozumieniem już pierwszych zdań, gdzie występują terminy: aktywowane moduły, w rozproszeniu, enkapsulacja, architektura kanału komunikacyjnego, budowa lejowata.

Sądzę, że w pełnym tekście wszystko to się wyjaśni, ale nie jestem pewien, czy gdybym nawet terminy te zrozumiał, przyda mi się to w moich własnych rozmyślaniach o języku. Konserwatywnym punktem wyjścia w rozumieniu struktur językowych jest dla mnie rachunek predykatów pierwszego rzędu, a w/w terminy nie mają z nim związku.

Istnieją kolosalne i dobrze przećwiczone możliwości rozbudowy tego rachunku. Wśród nich są takie, które obiecująco go przybliżają do języka naturalnego, nad czym pracował np. Andrzej Grzegorczyk. Jeśli miałbym do Profesora jakieś pytanie dyskusyjne to właśnie to: jak ma się jego program do programu Grzegorczyka?

Opublikowano Filozofia nauki, Logika i metodologia | Otagowano , , | 6 komentarzy

Czy AlanTuring miał rację… gdy pisał o myśleniu maszyn i ludzi?

Czy Alan Turing miał rację, gdy:

a) utożsamił kryterium myślenia maszyn z nieodróżnialnością wypowiedzi językowych maszyn i ludzi,

b) utrzymywał i przekonywał, że nie jest dobrze uzasadniony pogląd jakoby „maszyny (cyfrowe) nie mogły myśleć“?

Pytania te – odnoszące do historycznego artykułu Alana Turinga pt. Maszyny liczące a inteligencja –  kieruję przede wszystkim, choć nie tylko!, do uczestników moich zajęć na wydziale WEiTI PW.

Gdyby ktoś zechciał ustosunkować się do pytania drugiego, proponuję, aby nie trzymał się kurczowo zaproponowanego przez Turinga kryterium myślenia (maszyn), lecz wziął pod uwagę także intuicyjne pojęcie myślenia – ukształtowane np. w drodze introspekcji (tj. wewnętrznej obserwacji własnych przeżyć psychicznych) czy też analizy warunków, które musi spełniać podmiot myślący (refleksyjny, rozumiejący, interpretujący, samoświadomy…).
Jest to uzasadnione, ponieważ sam Turing nie był tutaj konsekwentny. Pisząc o myśleniu maszyn, niekiedy powoływał się na swój behawioralny test (nazywany dziś testem Turinga), w innych fragmentach jednak uwypuklał pojęcia filozoficzne, tak jak dusza (niematerialna podstawa myśli) czy świadomość (dany w introspekcji, konieczny składnik myślenia).
Proponuję więc, abyśmy i my tutaj, w ramach zbliżającej się dyskusji, nie odrzucili całkowicie tego tego drugiego punktu widzenia.

Czekam zatem na kolejne głosy — które mogą oczywiście odnosić się do siebie wzajem, tworząc żywą dyskusję.

Pozdrawiam i zapraszam do debaty –- Paweł Stacewicz.

Opublikowano Dydaktyka logiki i filozofii, Epistemologia i ontologia, Filozofia informatyki, Filozofia nauki, Światopogląd informatyczny, Światopogląd racjonalistyczny | 14 komentarzy

“Informatics” or “Computer Science”?

As for rendering the Polish phrase “Filozofia w Informatyce” in English,  I think that the translation “Philosophy of Informatics” is obvious (if it is expected to cover the real field of interests at our conferences). Perhaps, the issue is worth of some discussion, but without putting  too much effort; a concise exchange of opinions  within this blog should do.

To contribute to such an exchange, I suggest consulting the article:  https://en.wikipedia.org/wiki/Informatics#Etymology. There you find the explanation: “the field of informatics has great breadth and encompasses many subspecialties, including disciplines of computer science, information systems, information technology and statistics.”.

Now everybody, I believe, has to see that the translation “computer science” proves too narrow (restrictive). To the list of disciplines embraced by the term “informatics” there should be added relevant parts of mathematical logic, like the issues of computability (e.g., relative computability as depending from the power of axioms, inference rules etc.). Moreover, neoroinformatics (nearly 600.000 items in Google), some issues of genetics, of cognitive science, and so on.

Let me add the following definition from a German source, as the term “Informatik” has been coined by German scholars.

“Informatik — Wissenschaft von der systematischen Verarbeitung von Informationen, insbesondere mithilfe von Computern.”

This is to the effect that “Informatik” means: “science of systematic processing of messages, in particular [emphasis mine] with the help of computers.” Note, computers are here treated as distinguished but not the only means of information processing.

Opublikowano Filozofia informatyki, Filozofia nauki | Otagowano , , , | 1 komentarz

What does “computing” mean?
A rejoinder to Dr. Paula Quinon

§1.  Dr. Paula Quinon has kindly shared with me the abstract of her recent work, titled  “What “computing” means?”  (see item 6 in References), and added some comments to more accurately explain her key ideas. Among the comments there was a link to S.Feferman’s paper “Turing’s ‘Oracle’. From Absolute to Relative computability and Back.” (2016).

In that paper I find a passage which seems to me crucial from an epistemological point of  view, though it does not contain any direct references to philosophy. Before I quote and comment on it, let me express my personal attitude to some issues investigated by Ms. Quinon, and how I see their relation to the passage in question.

Frankly speaking, I am no expert in the issues of computing, and my interest in them is  rather, so to say, old-fashioned, going back to Kazimierz Ajdukiewicz’s project in the early 1960s, concerned with the justification of statements and decisions. The subject was discussed at the very impressive international conference in 1961, chaired by Ajdukiewicz, and at a Polish conference, meant like a general rehearsal of Polish participants before that important international meeting.

What I remember best from those events, it is Andrzej Grzegorczyk discussion on the intuitive reasons of accepting axioms in mathematical theories. How such intuitions might be scientifcally justified? This issue seemed then like a puzzle which nobody was ready to solve in the situation (in philosophy of logic and mathematics) at that time. Let us call it
Ajdukiewicz-Grzegorczyk problem.

According to my knowledge, only Hao Wang’s publications in the nineteen-nineties, born from his penetrative discussions with Gödel, are likely to shed some light at the methodological problem of justifying axioms. They are related to the distinction between absolute and relative solvability as considered by Feferman.

Let the fact of adding a new axiom to a theory be exemplified by the transition from arithmetic without the Axiom of Complete Induction — ACI (like, e.g., Presburger arithmetic) to the theory enriched with this axiom. This results in an enormous amplification of the scope of solvability. However, such a success cannot be a decisive argument for the truth of so extended theory. One’s clear intuitive apprehension of the ACI’s truth, as witnessed by what Gödel says about his personal experience of its obviousness, also cannot suffice. However, there does exist an intersubjective evidence for ACI, to wit the gigantic range of its successful applications in every domain of human activity — astronomy,
accounting, engineering etc. — the success experienced during the tens of centuries in each civilization.

§2. Now it is in order to pay attention to Turing’s idea of oracle as presented in the mentioned (above) study by Feferman entitled:  Turing’s ‘Oracle’: From Absolute to Relative computability and Back. The respective passage (slightly by me abbreviated) runs as follows (emphasis by Feferman).

>>The subject of effective computability began with what were offered as analyses of the absolute limits of effective computability, the immediate primary aim was to establish negative  results of the effective unsolvability of various problems in logic and  mathematics.

From this the subject turned to refined classifications of unsolvability.  […] The germinal step, conceptually, was provided by Turing’s notion  of computability relative to an ‘oracle’. At the hands of Post, this provided  the beginning of the subject of degrees of unsolvability, less directly provided by Turing’s notion, but mplicit  in it, were notions of uniform relative computability.<< Sec. 13.1, Introduction.

Turing  did not say much about the way in which an oracle works, but made a very significant  statement: that an oracle is no mechanical device, and that a machine equipped with that device can solve problems unsolvable for ordinary machines, lacking such a device. In other words, an oracle is able to find the value of an uncomputable function. More is said on the issue by Turing’s commentators like Andrew Hodges who offers convincing arguments that the decisions of an oracle are, in fact (in Turing’s intention) some acts of mathematical intuition. A similar stance has been taken by Roger Penrose. Thus, the amount of negative results diminishes with successive steps extending the scope of the solvability relative to an oracle. Now, as we know that the inventing of new, more powerful, systems of axioms is due to intellectual intuitions, and that axioms should be credited not only for their intutive obviousness, but much more for an immense number of successful applications, we attain at an answer to Ajdukiewicz-Grzegorczyk problem of the intuitive justification of axioms. This is to the effect that the intuition, being at the bottom of the process in question, proves its mettle by the fact the those axioms in which it has been expressed do successively pass the most severe exam of very differentiated and long-lasting applications.

§3. To conclude this part of discussion, let us observe that the interest in the idea of oracle, as involving the theory of grades of relative computability (solvability), is not confined to circle of speculative philosophers (to which belongs the present author). Presently it is found in the focus of highly technical discussions in mathematical logic. As well as in computer science; in the latter not only at the level of theoretical foundations, but also in the everyday practice. As testified by Feferman in the Conclusion of his penetrative study (Section 13.6.6):

>>The case had been made here that notions of relativized (as compared to absolute) computability theory are essentially involved in actual hardware and software design.<<

I made the above comment on some statements by Feferman, having been encouraged by the fact that his conribution was highly appreciated by Dr. Quinon. I am grateful for her message as when making use of it, I gained a new pespective in my thinking about computability.

In this perspective, I think that her research in the extensional equivalence and intensional differences between various treatments of Turingian model of computation should embrace the issue of the gradation of of relative computability; one may also say “relative solvability” for the former is a special case of the latter: computing is one of the ways of problem-solving.

Turings (1939) model of problem-solving makes more precise the notion of mathematical intuition, and then we can moce precisely put important questions, say: whether such an intuition can be obtained by artificial intelligence?

Now, when considering other theoretical models of computability (as those of Post, Church, Markov, Kleene, etc.), can we find in them an analog to relative computability as defined in terms of oracle? May be, the answer in the affirmative would be trivial, but I ask so being aware of my limited in that area expertise.

Another result which may be expected from Dr. Quinon’s inquiries is related to the question being the title of her abstract: “What “computing” means?” Should the notion of computing embrace the non-algorithmic activity performed by an oracle, namely that of finding the value (does it mean computing?) of an uncomputable function? If there is a puzzle in this question, what should be done to improve the terminology?

There would be more interesting issues inspired by  Quinon’s project,  but let those listed above suffice for the time being.

Recommended References

Items 1 and refer to the present author’s articles in which the concept of oracle is  discussed, fairly extensively, with quoting and commenting Turing’s (1939) texts. Note that in both titles there appears the phrase “ever higher solvability”  closely related to the notions of effective computability,  effective unsolvability and  relativized (as compared to absolute) computabilityas employed by Feferman (quotations in §1 and §2 and the title in §1).  Items 3 and 4 are concerned with the idea of oracle. Item  5 is related to that idea as dealing with Gödel’s theorem which can be used to exemplify Turing’s relative computability with respect to oracles.

1. “The progress of science from a computational point of view: the drive towards ever higher solvability” in: Foundations of Computing and Decision Sciences, Volume 44,  Issue 1, 2019, pp. 11-26.

2. “Does science progress towards ever higher solvability through feedbacks between insights and routines? ” in: Studia Semiotyczne,  XXXII no.2 (2018), pp. 153-185.

3.  A.M. Turing. “Systems of Logic Based  on Ordinals”. 1939. URL – local copy:  turing-1939.pdf.

4. Robert I. Soare.  Turing Oracle Machines, Online Computing, and Three Displacements in Computability Theory.  2009.  URL  – local copy:  soare.pdf.

5. Samuel R. Buss.  On Gödel’s Theorems on Lengths of Proofs I:
Number of Lines and Speedup for Arithmetics.  1992. URL  – local copy : god-buss.pdf.

6.  Paula Quinon. Abstract of the paper:  What computiong” means

The Church-Turing thesis identifies the intuitive concept of what means ˙to compute˙ with a formal model of computation. There are multiple models of computation and all of them can be proved to be extensionally equivalent (they capture the same functions, such as ˙identity˙, or ˙the next element of the sequence˙). However, despite the extensional equivalence, models differ intensionally (they capture different aspects of computation, for instance computations on abstract natural numbers are intensionally different from computations performed by a machine using concrete electric signals). The main objective of this project is to characterize intensional differences between various concepts of computation.

Postscript

When browsing  my notes  on solvability, I found a very illuminating remark by Gregory Chaitin. His phrase “intuition and creativity” may be interpreted as an exemplification of oracle,  while the infinite chain  of ever stronger axiomatic systems does resemble Turing’s ordering of logics.

Gödel’s own belief was that in spite of his incompleteness theorem there is in fact no limit to what mathematicians can achieve by using their intuition and creativity instead of  depending only on logic and the axiomatic method. He believed that any important mathematical question could eventually be settled, if necessary by adding new fundamental principles to math, that is, new axioms or postulates. Note however that this implies that the concept of mathematical truth becomes something dynamic that evolves, that changes with time, as opposed to the traditional view that mathematical truth is static and eternal.  See “Chaitin interview for Simply Gödel website” (9 February 2008).

Consider the phrase I have emphasised (through red type). Does the process of  “adding new fundamental principles” belong to the processes of computation? If so, which model of computation would explain the intuitive meaning of the a phrase like that? This is a question which seems to be implied by Quinon’s plan of comparing the existing explications of the term “computing”.

Opublikowano Bez kategorii, Epistemologia i ontologia | Otagowano , | 7 komentarzy

Jakie techniki obliczeniowe są przyszłością informatyki?

Niniejszy wpis kieruję przede wszystkim – choć nie tylko! – do uczestników moich zajęć na Wydziale Elektroniki i Technik Informacyjnych PW, pt. „Filozofia informacji i techniki”. Na kolejnym spotkaniu mamy dyskutować temat  technik obliczeniowych przyszłości. Umówiliśmy się, że osoby zapisane do dyskusji przedstawią swoje argumenty w blogu, w postaci osobnych komentarzy…

Czekając na pierwsze głosy, przedstawiam niżej – dla rozgrzewki i zachęty zarazem – krótką składankę argumentów, których używali studenci w roku ubiegłym.

Oto ona:

1. Pierwszą kwestią na jaką warto zwrócić uwagę jest fakt, że dzisiaj przy budowie tranzystorów, które stanowią konieczny element współczesnych komputerów cyfrowych, używa się krzemu. Naukowcy przewidują że do 2023 roku możliwości tego pierwiastka wyczerpią się i nie będziemy w stanie bardziej zmniejszyć układów, ponieważ będą nas ograniczały rozmiary elektronów.
W tym kontekście warto zauważyć, że często lepsze osiągi otrzymujemy nie dzięki rozwojowi hardware’u, lecz dzięki optymalizacji software’u. Dlatego, nawet kiedy wykorzystamy już całkowicie możliwości krzemu, mimo wszystko wciąż będziemy mogli z niego „wyciągnąć” więcej. Również za sprawą technik sztucznej inteligencji.

2. Jedną z najbardziej obiecujących technologii przyszłości, rozwijaną już dzisiaj, są komputery kwantowe. Pozwalają one na tysiące razy wydajniejsze przetwarzanie danych, ponieważ stosowane w nich q-bity (kwantowy odpowiednik bitów) mogą być jednocześnie w obu stanach (a w standardowych komputerach przyjmują tylko jeden stan).
Istnieje już IBM Q Experience – platforma online dająca każdemu dostęp do zestawu prototypów komputerów kwantowych IBM przez chmurę. Może być wykorzystywana do testowania algorytmów „kwantowych” czy innych eksperymentów.

3. Kolejne kilka technologii, o których wspomnę jest wymieniana jako jedne z możliwych technologii, które zastąpią komputery cyfrowe, jednak póki co są dalekie do jakiejkolwiek realizacji.
Pierwszą z nich są komputery oparte nie o przepływ elektronów, ale o przepływ światła. Jak wiemy światło osiąga największą prędkość we wszechświecie, czyli dałoby to możliwości zbudowania komputera o maksymalnej możliwej szybkości przesyłania sygnałów. Problemem jaki napotykamy jest to, że fotony nie mają masy i związane z tym problemy zbudowania czegoś podobnego do tranzystora w oparciu o światło.
Drugą ciekawą koncepcją jest zbudowanie komputera opartego o DNA. DNA posiada każdy organizm żywy, więc jeśli chodzi o zasoby to są one ogromne zwłaszcza, że może się ono odnawiać. Z pewnych opracowań naukowych wiadomo także, że za pomocą odpowiedniej manipulacji łańcuchami DNA udaje się rozwiązywać bardzo złożone problemy kombinatoryczne.
Kolejną ideą, która stanowi rozwinięcie powyższej, jest komputer biologiczny, którego i podstawowe elementy przetwarzające byłyby wzięte wprost z natury (np. byłyby to realne komórki nerwowe jakiegoś organizmu, np. szczura). Architektura takiego układu byłaby również wzorowana na naturze, np. przypominałaby architekturę mózgu.

Powyższe argumenty są oczywiście tylko „sygnałem wywoławczym”.
Czekam na głosy tegoroczne, równie ciekawe (i rozbudowane) jak powyższy miks.

Zapraszam do dyskusji WSZYSTKICH czytelników bloga — Paweł Stacewicz

Opublikowano Filozofia informatyki, Filozofia nauki, Światopogląd informatyczny | 14 komentarzy

Czy komputery mogą zagrozić naszej cywilizacji?

Jakiego rodzaju zagrożenia może nieść ze sobą wynalazek, którego zaistnienie pchnęło cywilizację ludzką na zupełnie nowe tory? Tory, po których ruszyliśmy w przyszłość z iście zawrotną prędkością. Ku automatyzacji, robotyzacji, wirtualizacji, globalizacji… W stronę zupełnie nowej jakości życia i międzyludzkiej komunikacji.

A jednak… Coraz częściej słyszy się o komputerowych uzależnieniach: od gier, portali społecznościowych, internetowej pornografii… Coraz głośniej o programach i systemach, które z powodzeniem zastępują lekarzy, prawników czy doradców podatkowych, a tym samym wysyłają na bezrobocie  całe rzesze dobrze wykształconych specjalistów. Coraz śmielej przebijają się do ludzkiej świadomości wizje autorów science fiction, w których sztuczna inteligencja przejmuje władzę nad światem…

Czy mamy zatem się czego bać? Czy są jakieś istotne racje po temu, by postrzegać komputery, technologie informatyczne oraz  towarzyszące im zjawiska społeczne jako pewnego rodzaju zagrożenie? Czy stanowią one zagrożenie w skali cywilizacyjnej? Czy mogą przyczynić się do degeneracji, upadku, a może nawet całkowitego zniknięcia naszej cywilizacji?

Do podjęcia powyższych pytań zapraszam przede wszystkim –  ale nie tylko! – uczestników seminarium pt. „Społeczeństwo informacji i wiedzy”, które prowadzę  na wydziale WEiTI PW…

Przydatne w dyskusji lektury, w tym wybrane prezentacje studentów,  znajdują się na stronie:

♦   Społeczeństwo informacji i wiedzy

Zapraszam serdecznie do dodawania komentarzy, najlepiej odnoszących się do siebie wzajem, czyli dyskusyjnych.

Pozdrawiam i zapraszam – Paweł Stacewicz

Opublikowano Dydaktyka logiki i filozofii, Światopogląd informatyczny, Światopogląd racjonalistyczny | 12 komentarzy

O nieistnieniu liczb w informatyce

Trurl i Klapaucjusz byli uczniami wielkiego Kerebrona Emtadraty, który w Wyższej Szkole Neantycznej wykładał przez czterdzieści siedem lat Ogólną Teorię Smoków. Jak wiadomo, smoków nie ma. Prymitywna ta konstatacja wystarczy może umysłowi prostackiemu, ale nie nauce, ponieważ Wyższa Szkoła Neantyczna tym, co istnieje, wcale się nie zajmuje; banalność istnienia została już udowodniona zbyt dawno, by warto jej poświęcać choćby jedno jeszcze słowo. Tak tedy genialny Kerebron, zaatakowawszy problem metodami ścisłymi, wykrył trzy rodzaje smoków: zerowe, urojone i ujemne. Wszystkie one, jak się rzekło, nie istnieją, ale każdy rodzaj w zupełnie inny sposób.

To będzie oczywiście polemika z poprzednim tekstem Pawła Stacewicza: liczby w informatyce potrafią nie istnieć na wiele sposobów, w czym są bardzo podobne smokom.

Ale zacznijmy od matematyki. Tutaj oczywiście liczby istnieją, choć nie jest to istnienie samoistne. Matematyk potrafi długo i z uciechą opowiadać o ciekawych własnościach liczb rzeczywistych (wszystkich, lub o każdej z osobna), ale gdy to robi, to przynajmniej w duchu zakłada nie tylko istnienie samych liczb, ale również istnienie ciała liczb rzeczywistych. Teoria ciał nadaje sens istnienia pojęciom takim jak liczby rzeczywiste, wymierne czy zespolone. Łącząc je z pojęciem operacji, jakie na tych liczbach można wykonać bez potrzeby powoływania do życia nowych bytów, którymi będą wyniki owych operacji. Jeśli ktoś w tym miejscu pomyślał o programowaniu obiektowym i jego paradygmatach, to znaczy, że ma dobre skojarzenia. Tak, pomysł traktowania działań jako „czynności wewnętrznych” stosowany jest w matematyce, jak i w językach programowania (poza tym jest chlebem powszednim dla monad Leibniza).

W komputerach dane istnieją pod postacią zmiennych, czyli wyznaczonych miejsc w pamięci. Żeby uznać istnienie liczb, musimy mieć zmienne typu liczbowego gotowe do ich przechowywania. Wczesne języki programowania (Algol) mają pierwotne typy: integer i real (całkowite i rzeczywiste). Czytelnik powinien tu zauważyć, że o nieistnieniu liczb rzeczywistych od dawna dobrze wiemy – do tego potrzebny by był komputer analogowy. Racja. Nie wiem co przyświecało twórcom języka w takim wyborze słowa, nadmierny optymizm czy może zuchwałość, ale w nowszych językach zamiast real już przeważnie występuje określenie float. Jest to termin bardziej techniczny niż matematyczny, opisuje sposób przybliżonego zapisu liczby w pamięci.

Skoro nie liczby rzeczywiste, to może istnieją chociaż liczby wymierne? Też nie. Przybliżenie w zapisie float dotyczy każdej liczby, nie tylko tej o nieskończonym rozwinięciu dziesiętnym. Nader często jest tak, że x + y = x, również dla niezerowych wartości y.  Z kolei działanie 0.1+0.1+0.1-0.3 nie daje wyniku zerowego, jak można się spodziewać (liczba 0.1 nie ma skończonego rozwinięcia w systemie binarnym). Zmienne float sprawdzają się w obliczeniach inżynierskich (przy rozsądnym używaniu), w zagadnieniach rozstrzygalności nie mają zastosowania.

A jak wygląda sprawa istnienia liczb całkowitych (integer)? Słabo. Przed Algolem wiele komputerów mogło ich w ogóle nie używać. O tym fakcie często się zapomina, ale komputery z lat czterdziestych wcale nie operowały na liczbach binarnych. Miały arytmometry posługujące się notacją BCD (Binary-Coded Decimal) – obliczenia prowadzone były na symbolach odpowiadających cyfrom dziesiętnym. Dopiero gdy zmienił się sposób liczenia, zaczęto na ciąg bitów zapisanych w rejestrze procesora mówić integer. Określenie na wyrost. Dzisiaj i z tego też się wycofano. Osiem bitów zapisanych w pamięci i tworzących bajt przeważnie określa się jako zmienna typu char (znak). Zmienna 16-bitowa bywa jeszcze opisywana jako word (słowo), co miało sens przy 16-bitowych procesorach, a częściej używa się słowa short. Zmienne 32- i 64-bitowe to long i long long. Nazwa „Integer” na nowo pojawia się dopiero w językach obiektowych jako nazwa typu złożonego, który w swoim wnętrzu musi radzić sobie z tym, że opisuje coś, co nie jest liczbą w matematycznym znaczeniu.

Skoro nie w informatyce stosowanej, to może choć w teoretycznej jest godne miejsce dla liczb? Niestety, tu również słabo nadają się one na pojęcie pierwotne. A już zwłaszcza wtedy, gdy narzędziem w rozważaniach ma być maszyna Turinga. Załóżmy, że chcemy liczyć kolejne cyfry rozwinięcia liczby π bezpośrednio ze wzoru na szereg Leibniza:

\frac{\pi}{4} =\frac{1}{1}-\frac{1}{3}+\frac{1}{5} -\frac{1}{7}\cdots

Najpierw musimy pokonać problem zapisu ułamków dziesiętnych (teoretycznie mamy do dyspozycji tylko liczby całkowite). To nie jest trudne. Ale natychmiast wystąpi problem zapisu liczby 1/3 – ta ma nieskończone rozwinięcie. Cóż z tego że mamy nieskończoną taśmę, skoro musimy przeznaczyć nieskończony czas na zapis tak banalnej rzeczy, jak prosty ułamek? Jeśli chcemy w ogóle otrzymać jakiś wynik w skończonym czasie, to musimy pogodzić się ze skończoną dokładnością i z góry określić ile cyfr nas zadowoli.

Oczywiście istnieją też algorytmy, dzięki którym komputery potrafią szybko znajdować kolejne cyfry rozwinięcia (znamy już ponad 1013 cyfr). Algorytmy te operują nie na liczbach jako takich, tylko na liczbach w konkretnym systemie pozycyjnym. Inaczej mówiąc, algorytmu stworzony do liczenia w systemie szesnastkowym (często używany w informatyce) nie da się zaadaptować do liczb w systemie dziesiętnym. I odwrotnie. W operacjach istotna jest nie tylko sama wartość liczbowa, a symbole (cyfry) tworzące jej zapis. Dla bliżej zainteresowanych opis algorytmu Czudnowskiego, najszybszego w chwili obecnej.

Gdy niżej podpisany uruchomił podany na stronie Wiki kod pythona, ze zdziwieniem (i satysfakcją) stwierdził że cyferki wyskakują z niego z prędkością kilkadziesiąt razy większą, niż ze znanego w Uniksach od dziesięcioleci języka bc służącego do obliczeń arbitralnej precyzji, a do trygonometrii używającego algorytmów pokrewnych leibniziańskiemu. Zwięzłość algorytmu też powinna dziwić — to tylko kilkanaście linijek kodu z bardzo dziwnymi długimi liczbami. Śpieszę więc z wyjaśnieniem, że moc tkwi w przywołanej w pierwszym wierszu bibliotece Decimal. Ta ma przeszło sześć tysięcy wierszy i jest kunsztowną realizacją arytmetyki, całkowicie oderwaną od maszynowej reprezentacji liczb.

Tak oto dotarliśmy do finału, w którym możemy stwierdzić: liczby w podstawach informatyki nie istnieją, lecz bardzo łatwo powołać je do życia w takiej formie, że rozwiązywaniu problemów służą lepiej, niż liczby “matematyczne”

❄   ❄   ❄

Tekst ten napisany został w niedzielę 23 grudnia, po wyczerpaniu “polemicznych możliwości” pod tekstem Pawła Stacewicza. Jednak publikację zlecam dopiero na wigilijną północ, by nie mącić nikomu tradycyjnego spokoju dnia Wigilii. Korzystając z okazji składam wszystkim życzenia pogody: ducha, ciała i aury. Oraz zachęcam do polemiki — szczególnie tych, którzy mają zdanie całkowicie odmienne od mojego.

Opublikowano Filozofia informatyki, Logika i metodologia | 7 komentarzy

O teoretycznej (nie)zbędności kategorii liczby w informatyce i jej metodologii

Obecny wpis ma charakter nietypowy, ponieważ przedstawiam w nim urywki dyskusji, która wynikła przy okazji analizy pewnego mojego  tekstu nt. granic kodowania w informatyce (samego tekstu nie linkuję, ponieważ przygotowuję go do publikacji). Dyskusja była prowadzona drogą e-mailową, ale wspólnie z drugim jej uczestnikiem, postanowiliśmy udostępnić ją w blogu.

Dyskusja dotyczy niezbędności matematycznej kategorii liczby w szeroko pojętych badaniach informatycznych, obejmujących także metodologię i filozofię tej dyscypliny.

Ja uważam, że kategoria ta jest niezbędna.
I to zarówno w aspekcie syntaktycznym, gdy odwołujemy się do samych zapisów liczb w odpowiedniej notacji (tzw. numerałów), jak i  w aspekcie abstrakcyjnym, gdy odwołujemy się do własności liczb rozumianych jako obiekty abstrakcyjne (np. takich własności liczb rzeczywistych, które gwarantują ciągłość zbioru R).
Mój oponent przekonanie powyższe traktuje co najmniej sceptycznie.

W przedstawionych dalej fragmentach rozmowy moje wypowiedzi są oznaczone jako PS (Paweł Stacewicz), zaś wypowiedzi oponenta jako Harry (co jest jego blogowym pseudonimem).

A oto zapis anonsowanej dyskusji:

1. (PS)

W mojej opinii zarówno pojęcie liczby, jak i pokrewne mu pojęcie kodowania liczbowego (tj. zapisywania danych  przetwarzanych przez komputery za pomocą liczb), jest w metodologii i filozofii informatyki niezbędne. Obydwa pojęcia są niezbędne, o ile chcemy traktować informatykę szeroko, a nie tylko jako teorię i praktykę działania/wykorzystywania maszyn cyfrowych.
W informatyce rozumianej szeroko możemy rozważać chociażby maszyny analogowe, operujące na kodach rzeczywisto-liczbowych (de facto układy takie były konstruowane i opisywane teoretycznie przed erą maszyn cyfrowych); w przypadku obliczeń biologicznych też nie jest wykluczone, że przez odpowiednie układy są przetwarzane sygnały, którym odpowiadają liczby rzeczywiste; a są ponadto pewne przesłanki, żeby przyjąć, iż dla opisu sygnałów przetwarzanych przez komputery kwantowe są niezbędne liczby zespolone.
Można próbować ująć sprawę tak, że opis sygnałów przetwarzanych przez takie czy inne maszyny w kategoriach liczb jest tylko wygodnym zabiegiem teoretycznym…
Rzecz jednak w tym, że ten zabieg jest niezbędny do uprawiania informatyki teoretycznej, która w przeszłości inicjowała, a w przyszłości prawdopodobnie będzie inicjować, pewne rozwiązania praktyczne i fizyczne zarazem (np. komputery cyfrowe o takiej a takiej konstrukcji fizycznej).

2. (Harry)

Co do kwestii konieczności reprezentacji matematycznej (w informatyce), to powyższe Twoje wyjaśnienia nie bardzo przekonują mnie. Ten sam problem pojawia się bowiem na poziomie metateoretycznym: czy na pewno reprezentacja matematyczna jest niezbędna w informatyce teoretycznej? Jeśli tak, to dlaczego?

 3. (PS)

Powołam się na trzy argumenty:

– argument historyczny: fizyczne komputery cyfrowe nie zaistniałyby bez koncepcji uniwersalnej maszyny Turinga (która jest obiektem matematycznym, powiązanym z pojęciami liczby obliczalnej i nieobliczalnej; a w dodatku jest punktem wyjścia teorii obliczeń, czyli fundamentu informatyki teoretycznej).

– argument metodologiczny (obecny pośrednio wyżej): poprzez pojęcie algorytmu (objaśnianego m.in za pomocą pojęcia f. rekurencyjnych albo UMT; czyli obiektów matematycznych ) informatyka jest w sposób konieczny (tak mi się wydaje) częściowo przynajmniej matematyczna; niemożliwa do uprawiania bez narzędzi matematycznych.

– inny argument metodologiczny: bez rozważań/dowodów matematycznych dot. UMT, a także aktualnie nieskończonych reprezentacji liczb nieobliczalnych (czego dotyczy anonsowany we wstępie artykuł), nie dowiedzielibyśmy się niczego o (minimalnych) ograniczeniach technik cyfrowych.

4. (Harry)

Nie do końca mnie zrozumiałeś. Chodziło mi o “matematyczność” w wąskim sensie, związanym z teorią liczb. W tym sensie maszyny Turinga i algorytmy nie są obiektami matematycznymi. Są właśnie obiektami typowo informatycznymi, w opisie których nie posługujemy się (lub ostrożniej: nie musimy posługiwać się) “językiem liczb”. Dlatego wydaje mi się, że podane przez Ciebie (powyżej) argumenty są nie do końca trafne.

Nawiązywałem do zawartej w Twojej ostatniej wypowiedzi tezy:

opis sygnałów przetwarzanych przez takie czy inne maszyny w kategoriach liczb jest teoretycznie niezbędny

Wydaje mi się, że przyjmujesz ją w sposób mało krytyczny i wyciągasz z niej mocne filozoficzne wnioski lub metafory (jak np. ta o dualnej, liczbowo-fizycznej naturze programów). Nawet gdyby okazało się, że ze względu na swój praktyczno-inżynieryjny charakter (np. dwójkowy charakter impulsów elektrycznych) nie może istnieć inna informatyka niż “liczbowa” (w co zdają się powątpiewać niektórzy praktycy), to i tak z tego nie wynika, że reprezentacje liczbowe programów są niezbędne w ich teoretycznej charakterystyce. Dość dobitnie świadczą o tym niektóre twierdzenia o nierozstrzygalności (m.in. twierdzenia Grzegorczyka o nierozstrzygalności teorii konkatenacji). Wynika z nich, że można skutecznie posługiwać się pojęciem obliczalności bez używania kategorii liczby (i co za tym idzie – bez pojęcia liczbowej reprezentacji).

5. (PS)

Rozumiem.
Uznaję jednak, że rozróżnienie między liczbami naturalnymi i rzeczywistymi jest niezwykle ważne dla informatyki, bo pozwala uchwycić/wyrazić/wyjaśnić różnicę miedzy technikami/maszynami cyfrowymi i analogowymi. Nawet jeśli ktoś twierdzi, że prawdziwe maszyny analogowe nie istnieją, to najbardziej podstawowe uzasadnienie tego faktu musi czerpać z założenia, że nie istnieją obiekty fizyczne odpowiadające liczbom rzeczywistym.  Wtedy jednak odwołuje się do własności liczb (twierdząc coś o istnieniu bądź nieistnieniu maszyn, czyli obiektów informatycznych).

Zapraszam serdecznie wszystkich Czytelników bloga do kontynuacji powyższej wymiany argumentów…

Paweł Stacewicz

Opublikowano Epistemologia i ontologia, Filozofia informatyki, Filozofia nauki, Logika i metodologia, Światopogląd informatyczny, Światopogląd racjonalistyczny | Otagowano , | 35 komentarzy

Monadologia Leibniza w porównaniu
z obiektowym paradygmatem programowania

Niniejszy wpis powstał dzięki abstraktowi do odczytu dra inż. Jarosława Strzeleckiego pt. “Czy monada może być szczegółowym przypadkiem obiektu OOP?” przewidzianego na seminarium w PW 25.X.2018.  Zob. link do abstraktu w zawiadomieniu o referacie: http://marciszewski.eu/?page_id=8381

Zadaniem tych uwag jest konfrontacja proponowanych  przez Autora interpretacji  “Monadologii” z  odpowiednimi tekstami tego utworu.   W tabeli zestawiającej tezy monadologii z zasadami projektowania obiektowego Autor zawarł  definicję monady, rozpisując ją na 12 numerowanych wierszy. Cytuję te elementy definicji wg ich numerów, poprzedzając je literą R (od “Referat”). Odpowiadające im ustępy z tekstu “Monadologii” oznaczam numerami ustępów z tekstu Leibniza, poprzedzonymi  literą M oraz  wyróżniam kolorem.

R.1: “Monada jest substancją prostą, czyli bez części.”
M.1.  “Monada jest substancją prostą tzn. pozbawioną części.”

R.2: “Monada  jest elementem agregatu.”
M.66. “W najdrobniejszej cząstce materii [ożywionej] istnieje świat …
entelechii” (tj. monad,  por. M.18).

Wg Leibniza agregaty  to obiekty złożone. Są wśród nich ciała organiczne, które L. określa jako automaty boskie, tj. nie będące artefaktami człowieka (nazywa je też boskimi maszynami). Monady są częściami  takich agregatów (zob. M.66: “w najdrobniejszej cząstce materii istnieje … świat entelechii i dusz [tj. monad”]). Nie są to części w sensie
mereologicznym. Są częściami  w sensie, który L. określa w jednym z listów następująco: (cytuję za https://plato.stanford.edu/entries/leibniz-exoteric/, odc.6): “properly speaking, matter isn’t composed of constitutive unities, but results from them … Substantial unities aren’t really parts, but the foundations of phenomena“.

Nasuwa się tu interpretacja informatyczna, że monada jest częścią organizmu jako agregatu w takim sensie, jak np. system operacyjny jest częścią komputera. Przy takiej jednak interpretacji załamie się postulowana w Referacie analogia z OOP, gdzie w prawym wierszu R.2 mówi się, że OOP może być agregatem. Monada zaś nie może być agregatem, bo wtedy byłaby złożona, wbrew R.1 oraz M.1. Wiersz więc R2 wskazywałby na różnicę, a nie analogię.

Jest też dwoistość w używaniu przez Leibniza słowa “automat”. W sensie M.64 automaty są agregatami, a więc są materialne, monady zaś nie, ale w M.18 pojawia się pojęcie monady jako automatu bezcielesnego w sensie bytu mającego “własne czynności wewnętrzne”. Czy nie należałoby więc w Referacie odróżnić automaty bezcielesne (software?) od cielesnych (hardware?).

R.4: “Monada powstaje lub ginie za jednym zamachem”. To jest sprzeczne z następującą tezą Leibniza.

M.73: “Nie ma ani całkowitych narodzin ani śmierci zupełnej, ściśle pojętej, polegającej na odosobnieniu duszy [monady]. A to, co my zwiemy narodzinami  jest tylko rozwojem i wzrostem, podobnie jak to, co nazywamy śmiercią  jest tylko zwinięciem się i  zmniejszeniem.”

M.77: “Dusza jest niezniszczalna.”  Jak to się ma do R.4? Jest niezniszczalna w tym sensie, że nie rozpadnie się sama z siebie, ale może być unicestwiona przez Stwórcę (por. M.6). O który sens chodzi w R.4?

R.10: “Monada jest bezcielesnym automatem.”

M.64: Monada nie może być automatem, bo automaty czyli maszyny są złożone z części fizycznych. Punkt M.64 porównuje automaty wytworzone przez człowieka z “divina automata”, jakimi są żywe istoty. Pierwsze są złożone skończenie; np. trybik w zegarku jest częścią w danej strukturze zegarka, ale zawarte w nim atomy nie należą do tej  struktury, będąc bez ograniczeń wymienne. Organizmy natomiast są podzielne w nieskończoność (nawet jeśli wiedza o nich wiedza za tym podziałem nie nadąża, kończąc się po pewnej liczbie kroków).

Ten sam tekst w formacie PDF jest dostępny pod adresem: calculemus.org/CA/fil-inform/2018/blog-sem/10-monada.pdf

Opublikowano Epistemologia i ontologia, Filozofia informatyki, Światopogląd informatyczny | Otagowano , , , , , , | 9 komentarzy