|
Blog > Komentarze do wpisu
Naprawdę bez krytykanctwa
Ależ to jasne, że umiem wychwalać materiały do uczenia się matematyki! Nieczęsto to robię z ich przyczyny, mój materiał genetyczny nie jest tu winny. W tych zapiskach to i owo już wychwalałem. Zgoda, materiały Stefana Sokołowskiego i Jurka Kocika nie liczą się, bo są to matematycy, czyli spełniają swój obowiązek, a że spełniają dobrze to jest właśnie ich materiał genetyczny. A może i wychowanie domowe. Ale już tu wspominałem nie-matematyków, którzy mówią o rzeczy do rzeczy, ciekawie i z zapałem: Wiesiek Kruszewski, inżynier, ratujący w grupach tematycznych uczniów i studentów, czyniący to z wdziękiem i pomysłowością; i Tomek Pluciński, chemik. Więc dziś do tej listy dopiszę Miłosza Michalskiego, fizyka z Torunia, za wystawioną w Sieci prezentację o algorytmach. Pochwalę się, że tak jak i on używam porównań kuchennych mówiąc o dobrej i przemyślanej robocie matematycznej (z jakichś przyczyn studenci wydziałów technicznych nie lubią takich uwag, ale ich nieliczne koleżanki rozumieją mnie, więc to nie jest daremny trud) i tak jak on nie staram się w spisaną część prezentacji wciskać wszystkiego co wiem i czego nie wiem o sprawie, bo zapis prezentacji to nie jest encyklopedia i chodzi o zainteresowanie, a nie o przytłoczenie słuchacza. Wierzę, że kto chce z grubsza zrozumieć parę słów z matematyki, których nie znał uprzednio, z satysfakcją oglądnie ten wykład. Ponieważ autor dwa razy mówi tam o skończoności, raz nieformalnie definiując algorytm: „Skończony, uporządkowany zbiór jasno zdefiniowanych czynności”, a drugi raz wyjaśniając, że to musi być wykonane w skończonej ilości kroków, szybko wyjaśnię, że to nie jest to samo i obie rzeczy muszą być powiedziane. Przepis: „wyprodukuj liczby nieparzyste zaczynając od 1 i w kolejnym kroku dodając 2 do uprzednio otrzymanej” jest uznawany za proces, ale nie za algorytm, właśnie dlatego, że nigdy nie skończy się. Byłby algorytmem gdyby cel produkcji tak był postawiony: „pisząc cyfry o szerokości 5 mm napisz wszystkie liczby nieparzyste, które mieszczą się w jednej linii typowego szkolnego zeszytu”. Troszkę by to potrwało, ale formalnie rzecz biorąc, w skończonej ilości kroków, jeszcze przed Sądem Ostatecznym, zadanie by zostało wykonane. Przy okazji, jeśli znasz niebanalne materiały napisane dla ludzi a nie dla potomności (takie, które laik z dobrą wolą może zrozumieć) i pisane dobrą polszczyzną, daj znać, zrobimy im wspólnie reklamę. środa, 11 czerwca 2008, andsol-br
TrackBack
Komentarze
Gość: Wiechu., ici2.internetdsl.tpnet.pl
2008/06/11 18:40:41
Problem wygląda interesująco, jeżeli popatrzeć nań tak :
Jest, czyli jak mówimy, dany jest nam prostokąt. Przepis na działanie, czyli na czynności jakie mamy wykonać jest taki: Weź cały prostokąt. Dodaj do niego jego połowę i do tej połowy dodaj połowę tej połowy i następnie dodaj połowę ostatniej połowy i czyń tak do wyczerpania pola całego, danego Ci prostokąta. Można postawić pytanie o miarę pola otrzymanego, z zsumowania kolejnych ''połówek'' z ''połówek''. Zauważymy, że wykonujemy czynność wg instrukcji taką samą, dziel na pól, odciętą połówkę dosuń do jej poprzedniczki. jest to instrukcja na wykonanie kolejnego ''kroku''. Mimo, ze wykonujemy takie same czynności to nie wyczerpujemy całego prostokąta. Za każdym razem pozostanie reszta, kusoczek, też prostokąt, który można podzielić na pół. I jest to nie kończący się ciąg czynności podziału wg instrukcji na dzielenie i dosuwanie, reszty prostokąta jaka pozostanie po odcięciu połówki z poprzednio pozostałej. Skończonym byłby, gdyby postawione było zadanie : '' przerwij po trzykrotnym podziale i podaj miarę....''. Po inżyniersku, to algorytmem będzie np. wiercenie otworu o dużej średnicy. ( wiertłami krętymi). 1.Wierć otwór wiertłem o średnicy 8 mm 2.Wierć kolejny otwór wiertłem o większej średnicy, którego długość ścina jest nie nie większa od średnicy poprzednio wywierconego otworu. 3.Tak postępuj do uzyskanie otworu o potrzebnej (dużej) średnicy. Choć procesem technologicznym jest zbiór kolejnych operacji ( też technologicznych) złożonych z podzbioru zabiegów, a te złożone są z podzbioru podzbioru czynności. Te zaś składają się ze zbioru ruchów elementarnych. Proces ten, technologiczny, jest skończonym zbiorem elementów ( czynności) dającym przedmiot o oczekiwanych właściwościach (kształt, wielkość, twardość). I tu widać jak określenie '' proces'', algorytm, mogą być inaczej rozumiane w zależności od dziedziny ( ha, i znów co innego oznaczające słowo) zainteresowań. Wiechu, profan. 2008/06/12 00:12:52
Do siebie: potem mi przyszło do głowy, że wprawdzie nie prostszym ale naturalniejszym dla laika procesem jest otrzymywanie rozwinięcia dziesiętnego pierwiastka z dwóch. Natomiast otrzymanie pierwszych stu cyfr rozwinięcia dzięki ułamkom ciągłym jest algorytmem.
Do Wieśka: no, chcesz zsumować szereg, czyli przejść do granicy z sumami częściowymi. Z definicji proces nieskończony. Do Nameste: czy nie jesteśmy na rowerach, w których błotnik się telepie? Dołożyłem akapit o rozróżnieniu, bo Michalski skończoności postępowania w nieformalnym ujęciu nie postuluje, ale jasno go przedstawia w następnej odsłonie dokumentu. Nie ma "mojego algorytmu na uzyskanie z jedynki zbioru liczb nieparzystych", jest na uzyskanie ich aż do ostatniej takiej liczby, która się mieści w linii, z podanym wymiarem zapisu. Czyli mówię to co i Ty. Przepis na kaczkę po pekińsku wyrażony w suahili dla Eskimosa? Wyraźnie masz dziś swój Dzień Psuja. W tej linii można daleko zajść jeśli podmienić niepopularnego ptaka na łabędzia. Bo rumuński przepis na łabędzia nad Tamizą jest herezją dla Anglików a świętokradztwem dla Wyznawców Łabędzia. Ale to są kwestie użytkowników a nie programu. Bo zgadzamy się, sądzę, że w nauce z zachodniego punktu widzenia rozumianej, wyjściowym elementem jest konsensus co do języka i jego terminów. Natomiast sprawa robi się delikatna jeśli chodzi, powiedzmy, o rozwinięcie dziesiętne liczby 1/37, bo tu zależymy od poziomu informacji. Ktoś po szkole podstawowej będzie miał to za proces nieskończony, ktoś znający charakteryzację liczb wymiernych powie: daj pozycję, powiem ci czy stoi tam 0, 2 czy 7.
Gość: , ici2.internetdsl.tpnet.pl
2008/06/12 13:29:56
Do Wieśka: no, chcesz zsumować szereg, czyli przejść do granicy z sumami częściowymi. Z definicji proces nieskończony.
A wcześniej piszesz : "Przepis: wyprodukuj liczby nieparzyste zaczynając od 1 i w kolejnym kroku dodając 2 do uprzednio otrzymanej jest uznawany za proces , ale nie za algorytm , właśnie dlatego, że nigdy nie skończy się." Zatem czy potrzeba dodawać słowo "nieskończony" co by sugerowało, że są procesy skończone, ale te nazywasz algorytmami . Czy dobrze Cię zrozumiałem ? Wiechu. 2008/06/12 16:58:25
Któryś z nas coś tu zaplątał, WIeśku. Może my obaj.
Wśród procesów niektóre są algorytmami. Wymogów jest parę. Wszystko jedno czy skończoność jest wnioskiem z analizy opisu (np. algorytm Euklidesa, bo mamy zasadę indukcji, czyli nie da się zjeżdżać nieskończenie z malejącymi liczbami) czy też wyjściowym założeniem (np. sito Eratostenesa: weź liczby naturalne od 1 do n i uczyń co następuje...) Mój komentarz do Twego przepisu (na dopisywanie prostokąta do danego uprzednio) był zaledwie wysłowieniem go w terminach matematycznych. 2008/06/12 18:43:15
Ponownie protestuję, bo chyba moja [wcześniejsza] uwaga uciekła.
Algorytm nie jest procesem, może być co najwyżej opisem procesu (przepisem na przebieg i wynik procesu). Algorytm jest w języku, proces niekoniecznie; gdy zaś przejdziemy w ramach uogólnień do procesów raczej nieopisywalnych (np. żywych), to terminu algorytm użyjemy na metaforę dla sensu procesu albo jego mechanizmu. Algorytm pozostaje w sterowaniu, proces działa w materii (substancji, dziedzinie); przepis na kaczkę to tekst, pieczenie kaczki to fizyka i (al)chemia. A przynajmniej do takiego rozumienia tych terminów się przyzwyczaiłem. 2008/06/12 22:02:54
No popatrz, Nameste, tym razem zrozumiałem. Ze mną trzeba cierpliwie. Po przedtem myślałem, że coś jest nie tak (mówiąc językiem humanistów) w wymiarze skończoności. A teraz widzę, że to wymiar polaryzacji między słowem a uczynkiem.
Tak, tu masz rację i choć to nic nie ma do sprawy, może rozbawi Cię informacja czemu mogłeś mnie zbić. A bo myślę kaszanką językową i w głowie miałem terminy "procedimento - algoritmo". A to pierwsze gra dwuznacznie, można je rozumieć jako przepis czy opis, a można jako proces. Więc chodzi o zagwarantowanie, że realizacja przepisu ma skończoną ilość elementów, wtedy przepis ma nalepkę algorytmu. 2008/06/12 22:46:22
Terminy użyte w moim pierwszym komentarzu są (mniej więcej ;) poprawne. I mają sens te rozróżnienia. Jeśli zamiast "przepis" użyjemy terminu "procedura", to będziemy blisko procedimento (przynajmniej brzmieniowo). W polskiej terminologii "procedurę" traktujemy zazwyczaj jako składową "programu" (można powiedzieć, i często tak się mówi, że i zapis, i wykonanie programu złożone są z bardziej elementarnych procedur, typu "wyjąć wnetrzności z kaczki").
Jako się rzekło, program jest zapisem algorytmu w języku zrozumiałym dla wykonawcy. Istnieje więc mnóstwo programów realizujących "przepis na kaczkę po pekińsku". Załóżmy przez moment, że zaniedbujemy warianty, czyli że jest jakaś kanoniczna kaczka po pekińsku. W tym ujęciu algorytm jest abstrakcyjną strukturą matematyczną (w podobnym sensie jak w matematyce "ogólnej"), którą można utożsamić z niezmiennikiem wszystkich programów implementujących cel algorytmu. Algorytm pieczenia kanonicznej kaczki po pekińsku jest abstrakcją wspólną dla wszystkich programów (przepisów w jakichś tam językach) piekących kaczkę. Wykonanie programu nazywamy procesem (jako się rzekło: obliczeniowym, kulinarnym itd.). Jeśli wykonanie programu nie kończy się (proces nieskończony), to mamy problem. Czy program jest wadliwy (źle implementuje poprawny algorytm), czy może algorytm jest od czapy (choć poprawnie został "wszyty" w program; np. przepis każe po pół godzinie wyrzucić kaczkę przez okno), czy może wreszcie dane, na które napuszczono program, są błędne (i pieczemy kurę ucharakteryzowaną na kaczkę, ale, choćbyśmy piekli w nieskończoność, kaczki po pekińsku z tego nie będzie ;). |
|
Przepis to przepis, nawet jeśli można spędzić na jego realizacji calą wieczność. W rzeczywistości fizykalnej proces wykonywania programu implementującego Twój algorytm ("na uzyskanie z jedynki zbioru liczb nieparzystych") stanie zanim minie wieczność, bo jak by nie był wydajny sposób magazynowania informacji, to gdy potrzebna mu materia prędzej czy później wyczerpie zasoby [skończonego] wszechświata.
A więc algorytm to abstrakcyjny przepis, uporządkowany zbiór jasno zdefiniowanych czynności. Program implementujący taki algorytm to wyrażenie w języku rozumianym przez wykonawcę (przepis na kaczkę po pekińsku wyrażony w suahili nie będzie programem dla Eskimosa). Wykonanie programu jest pewnym procesem (obliczeniowym albo kuchennym ;), na ogół żąda się, by był to proces skończony, bo na ogół stawia się przed przepisem pewien cel, któremu ma służyć realizacja tego przepisu (np. upieczenie kaczki) i który to cel powinien być osiągalny [bez czekania w nieskończoność; w przypadku kaczki nieskończoność to mniej więcej 5 godzin ;)].