Matematyka obiektowa
Często słyszymy, że podstawą informatyki jest matematyka. Tak – ale nie jest to taka matematyka, jaką męczą dzieci w szkole. W przeciwieństwie do matematyki, informatyka w całej swej historii dąży do jak najprostszego i zrozumiałego opisu tworzonych systemów. Nie ma też mowy o jakichkolwiek niedopowiedzeniach. Ma być jasno i precyzyjnie. Dlatego kreowany przez programistów świat wirtualny jest łatwiejszy do zrozumienia niż świat matematycznych abstrakcji.
Może więc należałoby sytuację odwrócić, traktując informatykę jako klucz do zrozumienia matematyki?
Czy matematyka jest trudna?
Niektóre teorie czy twierdzenia matematyczne są rzeczywiście bardzo trudne. Jednak na podstawowym poziomie matematyka powinna być bez większych problemów przyswajana przez każdego rozgarniętego człowieka. Dlaczego tak się nie dzieje? Jedną z przyczyn jest przyjęcie przez matematyków zasady „nieoglądowości” – czyli braku odwołań do pojęć jakich używamy w odniesieniu do postrzeganych rzeczy.
Jeszcze w XVII wieku powszechnie uważano, że nasz ogląd świata jest źródłem pojęć z których budujemy sądy matematyczne1. Oczyszczanie matematyki z odniesień do rzeczywistości i naszych wyobrażeń wiązało się z dążeniem do precyzji i absolutnej pewności. Proces ten został domknięty przez Davida Hilberta2, który w celu wykazania niesprzeczności matematyki postulował jej aksjomatyzację – czyli przyjęcie, że każda teoria wynika logicznie z przyjętego zbioru aksjomatów3. Ostatecznie zwyciężył pogląd, że język matematyki jest całkowicie abstrakcyjny4. Nawet liczby naturalne definiuje się obecnie w oparciu o abstrakcyjną teorię mnogości.
Ta sytuacja ma ogromne znaczenie w nauczaniu matematyki. Nauka matematyki to poznawanie świata abstrakcji, co stanowi poważną barierę dla wielu jej adeptów. Na dodatek archaiczna maniera matematyków każe im używać języka naszpikowanego trudnymi do zapamięta symbolami jednoliterowymi (kto dzisiaj zna alfabet grecki?).
Matematyka z informatyką
Matematycy posługiwali się odniesieniami do rzeczywistego świata, które okazały się zbędne na pewnym etapie rozwoju tej nauki. Do zobrazowania tej sytuacji można przywołać za Wittgensteinem metaforę drabiny. Matematycy wspinali się po jej szczeblach (z których każdy był bardziej abstrakcyjny), aż na poziom całkowitej abstrakcji. Po odrzuceniu drabiny mamy czystą matematykę. Tylko dlaczego osobom studiującym matematykę odmawia się użycia tej „drabiny”?
Jest to tym bardziej dziwne, że matematycy w swych publikacjach wcale nie są tak pryncypialni. Weźmy na przykład elementarny tekst na temat „rachunku zdań”: http://wazniak.mimuw.edu.pl/index.php?title=Logika_i_teoria_mnogo%C5%9Bci/Wyk%C5%82ad_2:_Rachunek_zda%C5%84. Próżno w nim szukać na przykład definicji używanego pojęcia „zmienna zdaniowa”. Intuicyjnie rozumiemy, że chodzi o symbol reprezentujący zdanie.
Takie podejście ma zasadniczą wadę: autor zakłada, że czytelnik potrafi trafnie uchwycić znaczenie wprowadzonych pojęć (intuicyjnie, lub poprzez studiowanie innych publikacji). To może być założeniem błędnym.
Połączenie nauki matematyki i programowania sprawia natomiast, że możemy zakładać zrozumienie odwołań do pojęć z dziedziny informatyki. Takie powiązanie matematyki z informatyką nie wiąże się z zagrożeniem, któremu miało zapobiec „oczyszczenie” matematyki z „obrazowości”. Komputery są deterministyczne, a zasada ich działanie daje się opisać przy pomocy elementarnej logiki. Nie ma więc mowy o tym, by powyższy związek był źródłem błędów.
Uniwersalność matematyki
Powyżej wspomniano o dwóch różnicach między informatyką i matematyką:
1) silny związek informatyki ze światem rzeczywistym wobec dążenia matematyki do abstrakcji;
2) język informatyki ma być możliwie najbardziej zrozumiały, czego nie oczekujemy od języka matematyki;
Gdyby różnice między informatyką i matematyką sprowadzały się do takich „drobiazgów” – nie byłoby powodu traktować tych dziedzin jako odrębne (i pewnie z czasem nastąpiłoby „ujednolicenie”).
Istnieją jednak różnice o wiele poważniejsze, które można uznać za fundamentalne.
Porównajmy dwa objaśnienia algorytmu Simplex: matematyczne i informatyczne5. Jednym z kluczowych pojęć jest w tym algorytmie wierzchołek wielościanu wielowymiarowego.
Matematyczna definicja wierzchołka (punktu ekstremalnego zbioru wypukłego)6:
Punkt e ∈ K jest punktem ekstremalnym zbioru wypukłego K, gdy równość
e = 𝜆𝐱 + (1 − 𝜆) y dla pewnych x,y ∈ K oraz 𝜆 ∈ [0,1] implikuje, że e = x lub e = y .
W tej definicji chodzi o to, że jeśli mamy jakiś odcinek (x,y) zawarty w zbiorze wypukłym, to wierzchołkiem może być jedynie jego początek lub koniec. Po tym objaśnieniu - chyba definicja staje się zrozumiała7. Tyle, że w kontekście algorytmu Simplex mało użyteczna.
Porównajmy z definicją wierzchołka sformułowaną przez informatyka:
Ograniczenia [równania liniowe wielu zmiennych] definiują wielościan w przestrzeni n wymiarowej (gdzie n to ilość zmiennych). Wielościan ten nazywamy „wielościanem ograniczeń”. W wielościanie ograniczeń wierzchołek to jedyny punkt wspólny (rozwiązanie dopuszczalne) dla kilku (więcej niż 1) ograniczeń. Inaczej mówiąc wierzchołek to punkt wspólny dla kilku krawędzi. .
Najważniejszą różnicą między tymi definicjami nie jest użycie jednoliterowych symboli.
Definicja matematyczna w sposób dość typowy używa implikacji do zawężenia zbioru możliwości.
Taka definicja jest bardziej uniwersalna, niż opis informatyka (‘jak to jest zrobione i co z tego wynika’). To wspaniale! Dzięki takiemu dążeniu do uniwersalności, wszystkie twierdzenia mogą znaleźć szersze zastosowanie! Tyle, że informatyka nie interesuje ogólne zastosowanie definicji, ale zastosowanie jej w objaśnieniu algorytmu który chce zaimplementować lub zastosować! Jego definicja zawiera własności wierzchołka, które po przyjęciu ogólniejszej definicji trzeba by dopiero udowodnić!
Czy definicja informatyka jest mniej precyzyjna? Taki zarzut staje się bezprzedmiotowy, jeśli definicja zostanie wprost przełożona na działający poprawnie program. Świat komputera z takim programem jest lokalnym „uniwersum”, które możemy objaśniać poprzez zastosowania (świat realny) lub … matematykę! Informatyk może traktować matematykę tak jak elektronikę: są niezbędne, ale rzadko zachodzi potrzeba zgłębiania ich tajników.
Matematyka obiektowa
Współczesny świat budują inżynierowie, dla których – jak się słusznie uważa – matematyka jest podstawą. W szczególności dotyczy to informatyków. Matematyka we współczesnej formie stanowi jedną z barier w kształceniu odpowiedniej ilości programistów. Z drugiej strony – świat kreowany przez programistów jest trudno dostępny dla przeciętnego użytkownika informatycznych produktów. Tu także może pomóc podniesienie ogólnego poziomu znajomości matematyki z uwzględnieniem jej związków z informatyką.
Nadzieję na zmianę tej sytuacji daje podjęcie powszechnej edukacji w zakresie programowania. Niestety wygląda na to, że zmieniono ten z założenia szlachetny przedmiot w naukę programu Scratch. Ten absurd jest już tak ugruntowany, że nawet trudno liczyć na zmianę.
Z powyższej refleksji zrodziła się idea stworzenia „matematyki obiektowej”.
Dlaczego „matematyka obiektowa”? Po co tworzyć nowe terminy, skoro istnieje „matematyka dyskretna”? Termin „matematyka dyskretna” określa zakres (dziedzinę) matematyki związanej z informatyką8. Matematyka obiektowa wprowadza język i system pojęć pomocnych w opisaniu i zrozumieniu tej dziedziny wiedzy.
Abstrakcyjna idea obiektów jest łatwą do zrozumienia (przez analogie ze światem realnych obiektów). Współczesne języki programowania w większości mają charakter obiektowy. Można więc w nich tworzyć obiekty, które objaśniają matematyczne pojęcia i twierdzenia.
Obiekty matematyczne są opisywane poprzez definicje związków i działań w nich zachodzących. By zrozumieć ten opis, nierzadko trzeba zgłębić bardziej elementarne teorie i zapamiętać stosowane oznaczenia. Tymczasem obiekty w programowaniu są opisywane w sposób umożliwiający ich natychmiastowe użycie. Do ich zrozumienia często wystarczą przykłady użycia.
Zmiana terminologii wiąże się więc ze zmianą podejścia: zastępujemy teorię (jak to jest zbudowane) przez praktykę (jak tego użyć). O ile w odniesieniu do elementarnych zagadnień takie podejście jest tylko jednym z możliwych9, to w przypadku zaawansowanych teorii pragmatyzm staje się często koniecznością (gdy chcemy z nich korzystać, ale nie mamy czasu na ich studiowanie).
Semantyka matematyki (refleksja filozoficzna)
Podejście obiektowe może być skuteczne zwłaszcza w matematyce dyskretnej. Czy w ten sposób można opisać całą matematykę?
Najpierw należałoby wyjaśnić – co znaczy „opisać”. Możemy na przykład zrobić zdjęcie dowolnego tekstu czy rysunku i po zeskanowaniu wgrać do komputera. Drugą skrajnością są systemy / programy komputerowe, w których zaimplementowano reguły matematycznej teorii. Interesujące jest jedynie pytanie o tą drugą możliwość. Czyli pytanie - czy można matematykę zredukować do informatyki? Całą matematykę? Odpowiedź na tak postawione pytanie wiąże się z semantyką matematyki.
Jeśli język matematyki jest całkowicie abstrakcyjny, to znaczenie jego zdań możemy ustalić wyłącznie przez odwołanie się do innych zdań matematyki – w tym aksjomatów.
Semantyka referencyjna z odwołaniem do rzeczywistości (np. liczba jako uogólnienie równolicznych zbiorów przedmiotów) groziłaby pozbawieniem matematyki absolutnej pewności.
Takich problemów nie ma, gdy odwołujemy się do rzeczywistości wirtualnej – czyli tworów informatycznych, które dają się zredukować do zdań matematyki.
Gdyby udałoby się zachować jednoznaczne przyporządkowanie konstrukcji matematycznych abstrakcjom (obiektom) informatycznym – można by takie przyporządkowanie uznać za semantykę (referencyjną) języka matematyki. Czy to wykonalne? Konieczne byłaby możliwość zapisania w pamięci komputera odpowiednika dowolnych obiektów matematycznych.
W komputerze można zapisać dowolne obiekty. Jednak może być ich tylko skończona ilość. Nigdy nie będą to więc wszystkie możliwe konstrukcje matematyczne (wynika to z twierdzenia Goedla). Dlatego matematyka nigdy nie zostanie zredukowana do informatyki.
Ten wynik ma ważne konsekwencje semantyczne, filozoficzne i technologiczne.
1. Mamy tu wyjaśnienie dlaczego logicyzm10 nie jest możliwy.
2. Możemy w systemie komputerowym zapisać symbol nieskończoności. Jednak ten symbol nie będzie się odnosił do niczego, co istnieje w systemie komputerowym. Nawet gdy stworzymy obiekty pozwalające na operowanie nieskończonością. Z punktu widzenia semantyki to tylko definiowanie nieznanego przez nieznane. Ściśle rzecz biorąc – w poszukiwaniu znaczenia symboli w komputerze możemy dojść do definicji maszyny iteracyjnej11, albo do „czegoś z zewnątrz”12.
3. Konieczność odwołań do „czegoś z zewnątrz” (istnieje coś więcej) to mocny argument przeciw komputacjonizmowi13.
Podsumowanie
Matematyka obiektowa absolutnie nie ma być „nową” matematyką, ale nowym jej przedstawieniem – łatwiejszym do przyswojenia. Łączy „oglądowość” z ideą abstrakcji, zastępując odniesienia do rzeczywistości, odniesieniami do świata wirtualnego, opisywanego w języku informatyki. Matematyka postrzegana jako teoretyczne objaśnienie elementów świata maszyn cyfrowych wydaje się łatwiejsza do zrozumienia niż matematyka jako czysto abstrakcyjny system.
Dodatkowo, dzięki komputerom abstrakcyjne obiekty informatyki stają się częścią naszej rzeczywistości. Wzmacnia to efekt „oglądowości” (wyjaśniając pojęcia matematyczne można się odwoływać do komputerowych kreacji).
Obiektowy język informatyki powinien ułatwić nauczanie matematyki - zwłaszcza gdy wzorem krajów skandynawskich zastosujemy kształcenie poprzez udział w zespołach rozwiązujących interdyscyplinarne problemy.
Jerzy Wawro, 2022
Przypisy
1Zob. Jerzy Dadaczyński „Filozofia matematyki Immanuela. Kanta jako punkt odniesienia filozofii matematyki stowarzyszonych z klasycznymi kierunkami badań podstaw matematyki” [https://bazhum.muzhp.pl/media/files/Slaskie_Studia_Historyczno_Teologiczne/Slaskie_Studia_Historyczno_Teologiczne-r1999-t32/Slaskie_Studia_Historyczno_Teologiczne-r1999-t32-s22-36/Slaskie_Studia_Historyczno_Teologiczne-r1999-t32-s22-36.pdf]: Wymóg nieogladowości dowodów, zawarty we współczesnej metodologii matematyki, który zadomowił się tam ostatecznie od czasów Hilberta, wydaje się oczywisty i niepodważalny. Dziwne może nawet wydać się przypuszczenie, że kiedykolwiek można było wypowiedzieć twierdzenie przeciwne. Był jednak taki okres w dziejach metodologii matematyki − a precyzyjniej: w dziejach filozofii matematyki − kiedy twierdzono, że dowodząc tez matematycznych, nie tylko można, ale wręcz koniecznie trzeba odwoływać się do pewnych form oglądowości, do pewnego rodzaju przedstawień naocznych. Twórcą tego poglądu był Immanuel Kant.
3Cel Hilberta (matematyka z wykazaną zupełnością i niesprzecznością) nie jest osiągalny.
4Jak zauważa Jerzy Daczyński (dz.cyt.): „współczesne stanowisko można by za pomocą terminologii Kantowskiej oddać następująco: matematyka jest wiedzą czysto pojęciową, w żadnym dowodzie nie można się odwoływać do jakichkolwiek wyobrażeń (empirycznych czy apriorycznych)”. Czyli zdania matematyki nie są – jak uważał Kant – sądami syntetycznymi apriori, tylko sądami analitycznymi!
5Marek Mika, „Teoretyczne podstawy programowania liniowego” (http://www.cs.put.poznan.pl/mmika/Teoretyczne%20podstawy%20programowania%20liniowego.pdf ).
6Definicja przytoczona przez Wikipedię pochodzi z John B. Conway: „A course in functional analysis”.
7Wyjaśnienie wypukłości oraz przytoczonej definicji odcinka znajdziesz na blogu https://byc-matematykiem.pl/tajniki-interpolacji-czesc-1/
8Matematyka dyskretna to nauka o strukturach matematycznych zawierających skończoną liczbę elementów. [Ryan T. White, Archana Tikayat Ray „Practical Discrete Mathematics”]
9Alternatywne podejście: „Need for Equipping Student Teachers with Language of Mathematics” „Znaczenie programu nauczania w budowaniu języka matematyki, który umożliwia uczącym się konstruowanie i przekazywanie wiedzy matematycznej, nie zostało docenione, mimo że od lat dyskutuje się o wyzwaniach pedagogicznych, przed którymi stają uczniowie w nauce matematyki. Nauka języka matematyki jest nie tylko cenna sama w sobie, ale także przydatna w zrozumieniu innych dziedzin wiedzy, zwłaszcza nauk ścisłych. Uważa się, że posługiwanie się narzędziami języka matematyki jest nawet pomocne w nauce języków potocznych, zwłaszcza w nauce gramatyki, rytmiki i wersyfikacji. Oczywiste jest, że rozumienie języka matematyki i jego specjalnych terminów tak płynnie, jak to możliwe, oprócz innych korzyści, uwalnia procesy poznawcze w uczącym się, aby móc podejmować bardziej przydatne czynności, w tym rozwiązywać problem. Dlatego ważne jest, aby programy kształcenia nauczycieli uwzględniały w nim elementy składowe lub elementy matematyki w taki sposób, aby struktura języka matematyki była zrozumiała dla uczniów. W artykule omówiono znaczenie języka matematyki, jego strukturę i znaczenie w kształceniu matematycznym. Sugeruje ponadto sposoby przekazywania nowicjuszom zrozumienia języka matematyki. Mając na uwadze znaczenie języka matematyki w nauczaniu uczenia się, w niniejszym opracowaniu rozważono również strategie, które można zastosować, aby wyposażyć przyszłych nauczycieli w umiejętności i kompetencje niezbędne do radzenia sobie z językiem matematyki”.
10„W najprostszej postaci aksjomat nieskończoności powiada, że dla każdej liczby naturalnej istnieje jej następnik, zaś aksjomat wyboru postuluje, że dla każdej rodziny zbiorów parami rozłącznych istnieje jej selektor. Nie są to aksjomaty logiczne (postulują one istnienie jakichś obiektów, czego aksjomaty logiki nie robią)”. https://open.uj.edu.pl/mod/book/view.php?id=20&chapterid=112
11Maszyna iteracyjna to teoretyczny konstrukt Zdzisława Pawlaka. Można ją traktować jako alternatywę dla Maszyny Turinga. Składa się z pamięci (elementu o wielu stanach) i funkcji przejścia – wyliczającej na podstawie stanu pamięci w jakim stanie znajdzie się ona w chwili następnej.