Bez szans

Niewykonalny plan

Ograniczenia związane z procesem algorytmizacji nie ograniczają się tylko do przypadków teoretycznych. Istnieje wiele praktycznych, często banalnych problemów, których nie da się rozwiązać w sposób optymalny za pomocą komputerów (chociaż ludzie potrafią im sprostać w inny sposób).

Załóżmy, że chcielibyśmy poprowadzić najkrótszą trasą kable telefoniczne przez 150 punktów w mieś-cie. Nie możemy liczyć na to, że komputer wskaże nam 100-proc. najlepsze rozwiązanie. Problem ten jest z informatycznego punktu widzenia rozwiązywalny, ale jedyny znany do tej pory algorytm musiałby przeglądać po kolei wszystkie możliwe kombinacje. Oczekiwanie na wynik obliczeń na długo zablokowałoby możliwości budowy linii. Nikomu dotychczas nie udało się wymyślić innego, sprawniejszego algorytmu, chociaż nie udowodniono również, że taki nie może istnieć.

Orzeł czy reszka?

Naukowcy nie dają jednak za wygraną. Wciąż szukają sposobów rozwiązania problemów nieobliczalności czy niewykonalności algorytmów. Jedną z dostępnych metod stanowi równoległość (współbieżność) obliczeń. Jest to znane, m.in. z Internetu, połączenie mocy wielu komputerów do jednoczesnego wykonywania obliczeń. Na innych zasadach opiera się metoda randomizacji, gdzie podstawową rolę odgrywa zastosowanie rachunku prawdopodobieństwa. Chociaż wydaje się to niezwykłe, przybliżenie do optymalnego rozwiązania odbywa się na drodze wyborów losowych, tak jakby komputer rzucał monetą. Duże nadzieje ostatnio są wiązane z perspektywami zastosowania obliczeń kwantowych i molekularnych. Na razie jednak pozostają w sferze teorii, gdyż nikomu jeszcze nie udało się zbudować działającego komputera kwantowego lub molekularnego.

Szkolne algorytmy

Gdy mowa o perspektywach nowych zastosowań technik komputerowych, warto mieć na uwadze najnowsze odkrycia z nowych dziedzin matematyki, przede wszystkim teorii chaosu i algorytmiki. Warto pamiętać o zagadnieniach opisanych w prosty, lecz jednocześnie bardzo sugestywny i skłaniający do zastanowienia się sposób przez Davida Harela.

Często zastanawiamy się, jak powinna przebiegać edukacja informatyczna w szkołach. Czego uczyć uczniów, jaką wiedzę o komputerach im przekazywać. Jedni mówią, że trzeba uczyć praktycznego wykorzystania komputerów, pokazywać działanie konkretnych programów i aplikacji w konkretnych sytuacjach. Inni są zdania, że powinno się uczyć przede wszystkim teoretycznych podstaw programowania i podstawowych reguł funkcjonowania techniki komputerowej.

Lektura książki Komputery - spółka z o.o. podsuwa jeszcze jedną propozycję. Może warto by było, zanim nauczy się młodych ludzi korzystania ze sprzętu i oprogramowania, zanim pokaże się im, jak wyglądają składnia i semantyka konkretnych języków programowania, jak działa procesor i dysk, uzmysłowić im, jakie są możliwości odwzorowania złożonych reguł rzeczywistości w instrukcjach kodu informatycznego. Nie da się tego zrobić bez wiedzy o algorytmach. Gdyby taki program nauczania znalazł się w szkołach, to książka Davida Harela powinna się znaleźć wśród lektur obowiązkowych. Warto także, aby przeczytał ją każdy, kto chce się wypowiadać o perspektywach rozwoju techniki komputerowej i nowych zastosowaniach informatyki.

David Harel, "Komputery - spółka z o.o. Czego komputery naprawdę nie umieją robić". Warszawa 2002, Wydawnictwa Naukowo-Techniczne


TOP 200