Życie w RAM-ie

Parametr intensywnosc - tak jak w funkcji mutacja() - znów dba o udział procesu rozmnażania w globalnej ewolucji. Parametry te są niezwykle ważne w nauce zwanej ekologią populacji i dlatego wprowadziliśmy je do naszych algorytmów.

Zaczynamy od wylosowania partnera, z którym stworek oznaczony numerem najlepszy wymiesza geny i stworzy nowego osobnika w procesie zwanym rozmnażaniem. Mieszanie genów polega na ustalaniu wartości flagi czyj_gen. Jeśli flaga ma wartość 0, na odpowiednie miejsce w genotypie stworka oznaczonego numerem najgorszy trafia gen pobrany od najlepszego; jeśli ma wartość 1 - gen jest pobierany od partnera.

Cała funkcja jest wypełnianiem tablicy S[najgorszy] wartościami pobranymi albo z tablicy S[najlepszy], albo S[partner]. W ogólnym obrazie nowa zawartość tablicy S[najgorszy] pochodzi mniej więcej w połowie od najlepszego stworka i jego partnera.

Rysunek 4 przedstawia nieco bardziej rozbudowany program - widoczna jest cała populacja stworków w bieżącym pokoleniu i gdzie presja środowiska nie jest już przypadkowo zmienna. Obserwator tej społeczności steruje niezwykle istotną intensywnością rozmnażania oraz intensywnością mutacji, kliknięciami myszy decyduje o losie pojedynczych stworków, ustala liczbę pokoleń między dwoma spojrzeniami w ten tajemniczy, graficzny świat.

Naszkicowany tutaj algorytm genetyczny nie musi operować akurat na dywanach afinicznych - mogą to być parametry dowolnego układu, procesu, zadania. Funkcja mutuj() powinna przypadkowo modyfikować parametry, oczywiście w takich granicach, żeby obserwowany układ nadal poprawnie działał. Funkcja rozmnazaj() powinna tworzyć nowy układ przez zmieszanie parametrów dwóch istniejących układów. I rzecz najważniejsza - ktoś lub coś musi bezustannie obserwować zbiór takich układów i na każdym etapie ewolucji wskazywać najlepszy oraz najgorszy z nich.

Jak zwykle, czekam na opracowania tego pasjonującego i trudnego tematu. Proszę przysyłać swoje programy, spostrzeżenia i uwagi pod adres [email protected]

<hr size=1 noshade>Przekształcenie piekarza

Życie w RAM-ie

Program pana Michała Bryłki ilustruje przekształcanie obrazów, polegające na wielokrotnym powtarzaniu operacji rozciągania i składania (podobnie jak robi to piekarz z ciastem). Program wraz z obszernym komentarzem znajduje się na krążku CD, dołączonym do naszego miesięcznika.

Nasz stały czytelnik pan Michał Bryłka nadesłał bardzo interesujący program, ilustrujący zjawisko przekształcania obrazu przez jego wielokrotne składanie. W matematyce przekształcenie to nazywa się transformacją piekarza (przez analogię do operacji wielokrotnego składania i rozwałkowywania ciasta). Do programu jest dołączony starannie zredagowany dokument PDF, wyjaśniający matematyczne podstawy zjawiska. Program wraz z plikami źródłowymi w Delphi znajduje się w załączonych materiałach. Zachęcam do zapoznania się z propozycją pana Michała i oczywiście do nadsyłania swoich prac na ten i inne tematy. A pan Michał otrzymuje od redakcji drobny upominek: pamięć FlashDrive 128 MB firmy Actina.


Nie przegap

Zapisz się na newsletter i nie przegap najnowszych artykułów, testów, porad i rankingów: