Obserwowanie przyrody pomaga informatykom podejmować słuszne decyzje. Wybierając spośród milionów możliwych rozwiązań problemów, kierują się tym, by naśladować zjawiska zachodzące w przyrodzie - mówi prof. Franciszek Seredyński z Instytutu Podstaw Informatyki PAN.
Problem przeszukiwania milionów odpowiedzi jest ważny m.in. w logistyce, projektowaniu części samolotów, transporcie, planowaniu produkcji, przetwarzaniu zadań w komputerach o wielordzeniowych procesorach czy w poszukiwaniu rozwiązań w systemach mobilnych i komórkowych.
Rozwiązania wielu problemów znalazła natura. To z jej osiągnięć chętnie korzystają naukowcy. Zdaniem Seredyńskiego, wielkie szanse daje np. wykorzystanie w algorytmice reguł ewolucji darwinowskiej.
"Ewolucja darwinowska polega na dwóch głównych zasadach: +Im jesteś lepszy, tym masz większe szanse na przeżycie+ oraz: +Tylko ten, kto przeżyje, może wydać potomstwo+" - streszcza badacz. Seredyński wyjaśnia, że dzięki krzyżowaniu się genów, może powstawać potomstwo znakomitsze niż rodzice. Informatycy zamiast rodziców podstawiają w algorytmach możliwe rozwiązania problemów, a "potomstwo" powstaje przez zmutowanie ze sobą fragmentów tych rozwiązań. Jeśli proces ten przeprowadza się wystarczająco długo (np. w 300-400 generacji), można otrzymać satysfakcjonujące odpowiedzi.
Jak zauważa profesor, w algorytmach ewolucyjnych zakłada się niejako rywalizację najlepszych rozwiązań. Ale informatycy, opierając się na obserwacjach zachowań ławic ryb czy stad ptaków, układają też programy, których działanie polega na "współpracy" między prostymi fragmentami układów i wspólnym tworzeniu przez nie rozwiązań.
Inspirację informatycy znaleźli też w procesie
wyżarzania, znanego z wytopu szkła czy stali. Informatyk tłumaczy, że
podczas wyżarzania podnosi się temperaturę materiału tak, że cząsteczki
zmieniają swoje miejsce. Jeśli odpowiednio przeprowadzi się potem
schłodzenie tego materiału, cząstki pozostają w miejscach o wiele
korzystniejszych niż wcześniej i dzięki temu poprawia się jakość
materiału.
Dzięki podobnej zasadzie - odpowiedniej modyfikacji elementów składających się na rozwiązanie - programistycznemu "podgrzewaniu" i "schładzaniu" rozwiązań można je właściwie zmodyfikować i usprawnić wydajność całego układu, by uzyskać satysfakcjonujące rozwiązanie.
Informatycy
w programowaniu wykorzystują też zasady zaczerpnięte z naturalnych
systemów immunologicznych. Organizm broni się przed atakiem m.in. dzięki
przeciwciałom, które mają za zadanie wyłapywać "napastników": bakterie,
wirusy czy antygeny. Przeciwciała wyposażone są w wypustki o pewnym
kształcie. Jeśli zauważą antygen, próbują go swoją wypustką pochwycić go
i unieszkodliwić.
Jeśli organizm nie zna danego antygenu, próbuje wytworzyć nowe przeciwciała, zmieniając przy tym kształt wypustek. Taką adaptacyjność wykorzystuje się w programowaniu, aby m.in. rozwiązać problemy bezpieczeństwa systemu czy rozpoznawania ataku w sieciach komputerowych.
Czy można udoskonalić programy komputerowe tak, żeby proponowały rozwiązania skuteczniejsze niż te znane w przyrodzie? "Istnieje pokusa, żeby przewyższyć naturę. Jeśli chodzi np. o programowanie genetyczne - jeden z wariantów algorytmów ewolucyjnych - to zdaniem jego twórców, już powstały algorytmy przewyższające skutecznością rozwiązania zaproponowane przez ludzki umysł" - stwierdza prof. Seredyński.
"Jeśli porównać możliwości człowieka i możliwości maszyny, to w niektórych aspektach komputer będzie z nami wygrywał - potrafi szybciej znaleźć lepsze rozwiązania. Ale nie należy zapominać, że komputery nie są mądre same w sobie, one są tylko wzmocnieniem naszych umiejętności intelektualnych" - dodaje naukowiec.
Źródło: PAP