Skip to main content

Co to jest programowanie genetyczne?

Programowanie genetyczne to proces korzystania z jednego programu komputerowego do napisania innego programu komputerowego przy użyciu metodologii opartej na algorytmie ewolucyjnym.Proces ten jest często porównywany z programowaniem liniowym, w którym programista pisze konkretne instrukcje dla komputera.LISP i schemat są najczęstszymi językami programowania dla tego rodzaju pracy ze względu na ich funkcjonalność i elastyczność na wysokim poziomie.W wyniku jego koncepcyjnego podobieństwa do ewolucji biologicznej programowanie genetyczne jest często cytowane jako przykład komputerów inspirowanych bio.Na przykład GP może zostać wykorzystany do utworzenia programu do narysowania szkicu zdjęcia.Pierwszą rzeczą, którą zrobiłby GP, jest utworzenie zestawu programów korzystających z różnych funkcji rysowania komputerowego w losowych kombinacjach.Następnie GP uruchomiłby każdy z tych programów w kolejności, wyświetlając wyniki każdego z plików obrazu.

Kolejnym krokiem dla GP jest wybór najlepszych z tych programów z zestawu.Proces ten jest ogólnie najtrudniejszą częścią programowania genetycznego.W przypadku programu rysowania GP użyłby oprogramowania porównawczego obrazu, aby określić, który z losowych rysunków był najbardziej podobny do obrazu, który oprogramowanie próbowało narysować.Spośród losowo wygenerowanych programów GP wybrałby kilka najlepszych i odrzuci resztę.Proces selekcji jest znany jako ocena sprawności i jest ogólnie uważana za najtrudniejszą część programowania genetycznego.

Po wybraniu kilku najważniejszych programów GP wykorzysta je jako podstawę nowej partii programów.Każda nowa partia nazywa się pokoleniem.Dwa sposoby tworzenia nowego pokolenia to mutacja i crossover.Mutacja działa, przyjmując jeden z istniejących programów i wprowadzając w nią losowe zmiany, miejmy nadzieję na lepsze.Crossover, zwany także hodowlą, pracuje, biorąc dwa najlepsze programy i łączą ich elementy w celu tworzenia nowych programów.

Po utworzeniu nowej partii programów, GP powtarza proces ich uruchamiania i oceny, a następnie powtarza wybór, eliminacja i procesy generowania.GPS często uruchamia setki pokoleń, zanim znajdzie jeden program z satysfakcjonującym rezultatem.Pomimo tego ograniczenia programowanie genetyczne jest powszechnym sposobem rozwiązania niektórych rodzajów trudnych problemów z obliczeniami, w tym inżynierii robotycznej i problemów ze sztuczną inteligencją.