Oglądałem kiedyś program przyrodniczy o inteligencji owadów. Naukowcy zastanawiali się jakim cudem w tak małych łepkach mieszczą się procedury do tak wydawałoby się skomplikowanych zadań i wymyślali czy da się je zrealizować jakimiś prostymi algorytmami. Zaintrygował mnie przykład wg którego mrówki porządkują rzeczy w mrowisku. Podobno po prostu szwendają się w przypadkowych kierunkach póki nie napotkają czegoś co potrzebują np (grudka jakiegoś jedzonka, kory, glona, grzyba, larwa, pusta powłoczka po owadzie itp.) wtedy bierze to i szwenda się dalej tak długo aż spotka inny egzemplarz tego samego co niesie i kładzie niesiony obok.
I teraz run program od początku, czyli szwenda się aż coś znajdzie potem aż znajdzie to samo i gładzie obok.
Podobno stadko mrówek postępujących w ten sposób robi porządek ale nie uwierzyłem na słowo bo na mój rozum zrobiłyby bajzel. Więc napisałem programik rozsypujący po ekranie piksele w kilku kolorach, potem też losowo rozmieściłem mrówki (pikselki czerwone) i każda zaczęła realizować wspomniany wyżej algorytm, zmieniając w chwili niesienia czegoś swój kolor na inny odcień tego co niosła. Oczywiście dodałem omijanie innych mrówek, brzegów ekranu oraz pikseli które nie były tym samym co niosła. I zdziwiłem się gdy po pewnym czasie tak chaotycznych działań wszystkie kolory pikseli były ułożone w jednej lub w dwóch kupkach i nigdzie indziej.
Dodałem też sieć korytarzy i pomieszczeń (bo dotąd działo się to na pustym ekranie) co początkowo spowolniło robienie porządku potem podzieliło każdy kolor pikseli na kilka kupek w różnych rejonach. Jednak przeciwnie do eksperymentu bez korytarzy zmniejszyło się prawdopodobieństwo że te szwendaczki wezmą już ułożony piksel i wyniosą w inne miejsce lub połażą z nim po czym trafią z powrotem do tej samej kupki, bo to ostatnie zdarzało się dzięki ścianom znacznie częściej więc mniej mrówek niosło coś bez sensu i więcej nic nie niosła niż w przykładzie bez korytarzy.
Ciekawe ile podobnych procedur mają w swoich łepkach?