Programowanie genetyczne (Genetic Programming)

Slides:



Advertisements
Podobne prezentacje
Algorytmy genetyczne.
Advertisements

C++ wykład 9 ( ) Szablony.
Wzorce Projektowe Bartosz Baliś, Na podstawie
„Wielokryterialna optymalizacja pracy systemu wytwarzania o strukturze przepływowej – algorytm memetyczny” Przygotował: Dominik Żelazny, IIAR.
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Życiorys mgr inż. Waldemar Korłub Katedra Architektury Systemów Komputerowych WETI PG Urodzony: r. Wykształcenie: studia II stopnia.
Wprowadzenie do optymalizacji wielokryterialnej.
Algorytmy – zapis struktur programowania
Programowanie I Rekurencja.
Algorytmy ewolucyjne Termin EC (Evolutionary Computation) obliczenia ewolucyjne obejmuje wiele technik obliczeniowych kluczowym elementem jest model procesów.
Algorytmy genetyczne Nowak Sławomir
SZTUCZNA INTELIGENCJA ARTIFICIAL INTELLIGENCE
Wyrażenia algebraiczne.
Materiały pochodzą z Platformy Edukacyjnej Portalu
Algorytmy genetyczne Motto:
Hybrydowe metody optymalizacji geometrii. Prezentacja wyników.
Opracowała: Elżbieta Fedko
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Nieelitystyczne algorytmy ewolucyjnej optymalizacji wielokryterialnej
Sztuczna Inteligencja Reprezentacja wiedzy I Wstęp. Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch.
Opracował: dr inż. Michał Krzemiński
Genetyczne systemy uczące się
Algorytmy genetyczne - plan wykładu
Algorytmy genetyczne - plan wykładu
Algorytmy genetyczne - plan wykładu
Java – programowanie obiektowe
CO TO JEST ALGORYTM!.
Kod Graya.
Hipoteza cegiełek, k-ramienny bandyta, minimalny problem zwodniczy
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
O relacjach i algorytmach
Systemy Wspomagania Decyzji
Algorytmy Genetyczne Wprowadzenie.
Automatyczne dereferencje w języku SBQL
Równoległe algorytmy genetyczne w optymalizacji kombinatorycznej
Algorytm genetyczny.
Algorytmy memetyczne i ich zastosowania
Wstęp do algorytmiki Program ELI Marek Magiera
Temat: Komputerowe dokumenty czyli o plikach Wszystkie informacje przeznaczone dla komputera i wyniki jego pracy są zapisywane i przechowywane w plikach.
ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)
Systemy wspomagania decyzji
Model I/O bazujący na HSWN Problem uczenia sieci HSWN
Programowanie strukturalne i obiektowe
Algorytmy.
Elżbieta Fiedziukiewicz
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Podstawowe informacje o maturze dla gimnazjalistów.
Kurs języka C++ – wykład 9 ( )
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Koło Naukowe. Wprowadzenie Organizujemy koło naukowe Institut Informatyki Ekonomicznej / KTI Cele i działania poszerzanie zainteresowań znalezienie interesujących.
Do technik tych zalicza się: * sztuczne sieci neuronowe
Algorytmika.
Wprowadzenie do programowania
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Fraktale Historia Fraktali
K URS JĘZYKA C++ – WYKŁAD 10 ( ) Szablony.
Metoda badań eksperymentalnych i quasi-eksperymentalnych
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Algorytmy Genetyczne Anna Tomkowska Politechnika Koszalińska
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Podstawy programowania
SZTUCZNA INTELIGENCJA
Temat 3: Podstawy programowania Algorytmy – 2 z 2 _________________________________________________________________________________________________________________.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
URZĄDZENIA TECHNIKI KOMPUTEROWEJ Zapis liczb binarnych ze znakiem.
Programowanie dla każdego
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Jerzy Nawrocki Adam Wojciechowski
Zapis prezentacji:

Programowanie genetyczne (Genetic Programming) Prof. Dr hab. Marek Rudnicki

Podłoże powstania GP Trend w informatyce dążący do tego, aby określać komputerowi CO ma być zrobione, zamiast JAK to ma być zrobione. Pisanie bardzo złożonych programów komputerowych jest zadaniem trudnym, żmudnym i obfitującym w pomyłki programisty. Próbą rozwiązania problemu jest programowanie genetyczne (GP).

Czym jest programowanie genetyczne? Programowanie genetyczne to: metoda automatycznego generowania rozwiązania problemu (programu komputerowego) na podstawie jego wysokopoziomowego opisu. rozszerzenie, uogólnienie algorytmów genetycznych (GA) oparte na pomyśle zastosowania struktur drzewiastych do kodowania informacji genetycznej dla poszczególnych osobników.

Pomysł GP W 1989 roku John R. Koza wygłosił pierwszy referat na temat GP. W roku 1992 opublikował książkę uważaną do dziś za „biblię” programowania genetycznego: Genetic Programming: On the Programming of Computers by Means of Natural Selection. Pomysł programowania genetycznego jest chroniony patentem.

Charakterystyka GP Algorytm ewolucyjny bardzo podobny do GA. Osobnikami są programy komputerowe zapisane w postaci drzewa. Poszczególne osobniki (programy) wybierane są do reprodukcji w oparciu o funkcję przystosowania. Operatory genetyczne obejmują: mutację, rekombinację, reprodukcję i inne specyficzne dla rozwiązywanego problemu operacje.

Przykładowy prosty program * 2 + 14 x Powyższy program reprezentuje wyrażenie: (14+x)*2

Przykładowy program

Krzyżowanie w GP

Przykład nieco bardziej złożony IF < + y = x 2 x y Powyższy program można zinterpretować jako odpowiednik następującego kodu w C++: if (x+2<y) x=y;

Elementy struktury drzewiastej terminale elementy stanowiące liście drzewa reprezentują stałe lub zmienne programu przykłady: „2”, „3.14159”, „x”, „y” funkcje oznaczają funkcje programu argumenty funkcji znajdują się w poddrzewach przykłady: operacje arytmetyczne, funkcje trygonometryczne, instrukcje warunkowe

Algorytm GP Losowo wygeneruj początkową populację programów. Dopóki nie jest spełniony warunek zakończenia programu generuj kolejne generacje (pokolenia): wylicz dla każdego osobnika odpowiadającą mu wartość funkcji przystosowania. wybierz losowo operację genetyczną (reprodukcja, mutacja, rekombinacja). wykonaj operację genetyczną na wybranych osobnikach z aktualnego pokolenia. Przy wyborze osobników stosuj funkcję przystosowania. przenieś potomstwo do nowego pokolenia.

Mutacja punktowa + + * + * * - - - - * - * - x 1 x 1 x 1 x 1 - - x 1 x

Permutacja + + * + * * - - - - * - * - x 1 x 1 x 1 x 1 - - x 1 x 1 - -

Hoist + * * * - - - - * - x 1 x 1 x 1 x 1 x 1 - - x 1 x 1

Mutacja ekspansywna + + * * * * - - - - * - * - x x 1 x * x 1 - - x 1

Mutacja niszcząca poddrzewo + + * * * * - - - - x - * - x 1 x 1 x 1 x 1 x 1 x 1 - - x 1 x 1

Mutacja poddrzewa + + - * * * x 1 - - * - * - x 1 x 1 - - x 1 x 1 - -

Krzyżowanie wymianą poddrzew

Algorytm GP na diagramie źródło: www.geneticprogramming.com

Losowe generowanie drzew Losowe generowanie drzewa polega na losowym wytworzeniu struktury reprezentującej poprawny program. Losujemy spośród wszystkich dopuszczalnych funkcji i wszystkich dopuszczalnych terminali. Aby nie generować nieskończenie dużych drzew z góry określamy maksymalny ich rozmiar lub głębokość.

Funkcja przystosowania Określa jak dobrze dany program rozwiązuje postawiony przed GP problem. W oparciu o wartość tej funkcji następuje wybór osobników do operacji genetycznych. Prawdopodobieństwo wyboru i-tego osobnika wyraża się wzorem:

Inne metody wyboru osobników metoda turniejowa losowy wybór kilku (co najmniej dwóch) osobników i wybór tego spośród nich, który jest najlepiej przystosowany metoda rankingowa wyboru dokonujemy nie w oparciu o wartość funkcji przystosowania, ale w oparciu o miejsce w rankingu ułożonego według wartości tej funkcji nie liczy się wartość, liczy się miejsce w rankingu

Mutacja Operację mutacji wykonujemy w następujący sposób: Wybieramy losowo wierzchołek drzewa. Odcinamy z drzewa wybrany wierzchołek wraz z jego potomkami. W miejscu usuniętego wierzchołka generujemy losowo nowe poddrzewo. Możemy też mutować tylko pojedyncze terminale i pojedyncze funkcje.

Mutacja źródło: www.genetic-programming.com

Rekombinacja Rekombinacja w GP odbywa się następująco: Wybieramy losowo wierzchołki w obu drzewach. Odcinamy od drzew macierzystych poddrzewa rozpoczynające się wybranymi wierzchołkami. Do pierwszego drzewa w miejsce usuniętego wierzchołka wstawiamy poddrzewo wycięte z drugiego drzewa i odwrotnie. Czasem stosuje się wersję uproszczoną, kiedy to zmienia się poddrzewo u tylko jednego z biorących udział w rozmnażaniu osobników.

Rekombinacja wersja uproszczona źródło: www.genetic-programming.com

Rekombinacja rodzice potomstwo źródło: www.geneticprogramming.com

Jeszcze o rekombinacji Rekombinacja w GP ma następującą ciekawą własność: Rekombinacja dwóch identycznych osobników rodzicielskich z reguły daje parę potomków różniących się od rodziców. Wystarczy, aby wylosowano dwa różne wierzchołki jako punkty krzyżowania.

Reprodukcja Reprodukcją nazywamy zwykłe skopiowanie osobnika tak, że bez zmian przechodzi on do nowego pokolenia. Tak, jak rekombinację można uznać za odpowiednik płciowego rozmnażania się organizmów żywych, tak reprodukcję można przyrównać do procesu rozmnażania bezpłciowego.

Prawdopodobieństwo operacji genetycznych Główną i dominującą operacją genetyczną jest rekombinacja. Powinna ona zachodzić z prawdopodobieństwem 85-90%. Mutacja powinna być operacją zachodzącą stosunkowo rzadko. Jej prawdopodobieństwo powinno wynosić około 1%. W pozostałych przypadkach stosujemy reprodukcję.

Architektura programu W strukturze drzewiastej można zapamiętywać struktury typowe dla programów takie jak: instrukcje warunkowe pętle funkcje zdefiniowane w samym programie (podprocedury) Można specjalnie z myślą o tych strukturach zdefiniować i stosować dodatkowe operacje genetyczne.

Podprocedury źródło: www.genetic-programming.com

Duplikacja podprocedury Polega na rozdzieleniu wywoływanej więcej niż raz w programie podprocedury na dwie osobne. Utworzone w ten sposób dwie kopie będą mogły się różnicować (specjalizować) w kolejnych operacjach genetycznych. Każda kopia podprocedury otrzymuje osobną nazwę.

Duplikacja podprocedury źródło: www.genetic-programming.com

Duplikacja argumentów podprocedury Polega na zwiększeniu liczby argumentów przyjmowanych przez podprocedurę poprzez zduplikowanie jednego z nich. W definicji funkcji losowo rozdziela się wystąpienia zmiennej między starą i nową kopię argumentu. W wywołaniach procedury również duplikujemy argumenty.

Duplikacja argumentów podprocedury źródło: www.genetic-programming.com

Utworzenie podprocedury Tworzymy podprocedurę poprzez wyodrębnienie sekwencji operacji z wybranej części drzewa. Podprocedurze nadajemy unikalną nazwę. Drzewo modyfikujemy tak, aby wynik wykonania programu przed dokonaniem zmiany zgadzał się z wynikiem po jej dokonaniu.

Utworzenie podprocedury źródło: www.genetic-programming.com

Usuwanie podprocedur i usuwanie ich argumentów Operacje odwrotne do duplikacji podprocedur i duplikacji argumentów podprocedur. Prowadzą do zmniejszenia złożoności struktury programu.

Usuwanie podprocedury źródło: www.genetic-programming.com

Usuwanie argumentów podprocedury źródło: www.genetic-programming.com

Przykład: GP w języku C Regresja symboliczna

Przykładowe wyniki Przeprowadzono 50 generacji, populacja liczyła 500 osobników. Przykładowy genotyp 1100 0010 1000 0111 1001 0010 1101 1001 0111 1100 0000 1011 1001 1110 1001 1010 1101 0011 1100 1111 0101 1010 0110 1110 0001 Ciąg symboli uproszczonych T*(a)*R)aE+C)E)SRDT)vSqE* Ciąg ten jest błędny składniowo i należy go poprawić {T((a)*R(a+m)+(S(D((v+q+D} Ostatecznie mamy {T((a)*R(a+m))+(S(D((v+q+D(m)))))}

Przykład Edycja prowadzi do wyrażenia double ind(double m, double v, double a) {return T((a)*R(a+m))+(S(D((v+q+D(m))))); } Kompilator C generuje kod wynikowy Kod wynikowy zawiera końcowy fenotyp rozkodowany z genotypu

Regresja symboliczna

GP a twierdzenie o schematach Podobieństwo GP do GA sugeruje możliwość dowodu poprawności funkcjonowania algorytmu GP w oparciu o zmodyfikowane twierdzenie o schematach. Mimo wielu ciekawych opracowań (O’Reilly & Oppacher – 1995, Rosca & Ballard – 1997) próby zdefiniowania schematu dla GP analogicznie jak dla GA natrafiają na duże trudności związane z dynamiką struktury programu zapamiętanej w drzewie.

GP gra w kółko i krzyżyk Peter J. Angeline i Jordan B. Pollack wykonali eksperyment ucząc komputer gry w kółko i krzyżyk opierając się na algorytmie programowania genetycznego. Eksperyment miał sprawdzić możliwości GP, w którym Angeline i Pollack zastosowali własne usprawnienia. Skorzystali z systemu obsługi podprocedur, dzięki czemu w istotny sposób ograniczyli rozmiary generowanych drzew.

GP gra w kółko i krzyżyk Wygenerowano 200 pokoleń po 1000 osobników w każdym pokoleniu. Funkcję dopasowania określono w ten sposób, że wygenerowane programy rozgrywały ze sobą partie i w zależności od wyniku otrzymywały odpowiednią liczbę punktów. Znaleziony w wyniku eksperymentu program nie przegrywał nawet z zewnętrznym ekspertem.

GP gra w kółko i krzyżyk Rozmiar drzewa 60 wierzchołków 13 poziomów głębokości 15 podprocedur w osobnych drzewach Rozmiar drzewa po rozwinięciu podprocedur 477 wierzchołków 39 poziomów głębokości dwie podprocedury były wywoływane aż dziewięciokrotnie!

Do czego można stosować GP? Przykładowe możliwe zastosowania GP: klasyfikacja sterowanie aproksymacja funkcji optymalizacja całkowanie i różniczkowanie symboliczne wiele innych...

Drogi rozwoju GP Prace nad lepszą obsługą w GP mechanizmu tworzenia i wywoływania podprocedur (Koza, Angeline, Pollack, Rosca, Ballard). Różnicowanie typów danych używanych w generowanych programach (Hicklin, Montana, Haynes, Gruau). Implementacja w programie zmiennych tymczasowych przechowujących informacje o stanie programu (Koza, Teller, Angeline). Alternatywy wobec reprezentacji w postaci drzewa (Nordin – struktury liniowe zawierające kod maszynowy, Teller & Veloso – graf, Ashlock – zastosowanie teorii automatów skończonych, osobne drzewo dla każdego stanu).

Historia języka Lisp •Lisp--opracowany (ok. 1958) przez logika Johna McCarthy •Stosowany w AI od 30 lat •Zastosowania praktyczne » Systemy ekspertowe & oraz aplikacje AI » Rapid Application Development (RAD)

Historia języka Lisp •Lisp stosowany jest jako język wbudowany •Zastosowania: edytor tekstowy EMACS (MLisp) oraz AutoCAD (AutoLisp). •Język Prolog jest wbudowany w MS Office! •Działa na głównych platformach sprzętowych •Liczne wersje free- oraz shareware. • Standard: Common Lisp

Prolog •Prolog opracowany został w 1972 przez specjalistę AI Alana Colmeraurer Rozwinięty na University of Montreal oraz University of Marseilles •Stosowany w systemach kspertowych & i aplikacjach AI w tym przetwarzanie języków •Dostępny na głównych platformach sprzętowych •Wersje free- oraz shareware •Standard: ‘Edinburgh-style’

LISP Dane i programy są listami Programowanie modularne za pomocą licznych funkcji Duża liczba nawiasów z których nie wszystkie są znaczące Listy są drzewami binarnymi! Definicja rekursywna

Co to jest ten LISP? Większość bibliotek i projektów związanych z GP pisana jest w języku LISP ze względu na to, iż dostarcza on wygodnych mechanizmów do interpretacji struktur zapisanych w postaci drzew. Nic nie stoi na przeszkodzie, aby stosować inne języki programowania, takie jak np. C++ , Object Pascal, Java lub Matlab.

LISP & GP Przykład: Funkcja 5+3*4: Wyrażenie LISP Drzewo parsera

LISP & GP

Aproksymacja funkcji

Aproksymacja funkcji • Losowo wygenerować populację wyrażeń, y(x), stosując +, –, *, /, sin, cos, exp , log, oraz terminale 1 and x • Dostosowanie: 0 jeżeli wyrażenie jest niepoprawne , w przeciwnym przypadku 1/(d+1), gdzie d = |f(x) – y(x)| • Dostosowanie należy do przedziału [0,1])

John Koza David Andre Forrest H Bennett III

Kinnear, K. E. Jr. (ed. ) (1994). Advances in Generic Programming Kinnear, K.E. Jr. (ed.) (1994). Advances in Generic Programming. MIT Press, Cambridge, MA. Angeline, P.J. and Kinnear, K.E. Jr. (eds.) (1996), Advances in Generic Programming 2. MIT Press, Cambridge, MA. Koza, J.R. and Goldberg, D. E. and Fogel, D. B. and Riolo, R. L. (eds.) (1996). Genetic Programming 1996: Proceedings of the First Annual Conference. Stanford University, Stanford, CA. MIT Press, Cambridge, MA. Koza, J.R. and Deb, K. and Dorigo, M. and Fogel, D. B. and Garzon, M. and Iba, H. and Riolo, R. L. (eds.) (1996). Genetic Programming 1996: Proceedings of the Second Annual Conference. Stanford University, Stanford, CA. Morgan Kaufmann San Francisco, CA.

David E. Goldberg Melanie Mitchell

GP taśmy video Koza, J. R. and Rice, J. P. (1992). Genetic Programming: the Movie. MIT Press. Cambridge, MA. Koza, J. R. (1994). Genetic ProgrammingII: Videotape. The Next Generation. MIT Press. Cambridge, MA. (1996). Genetic Programming 1996: Video Proceedings of the First Annual Conference Sound Photo Synthesis, CA.

Literatura: algorytmy ewolucyjne Holland, J.H. (1975 and 1995). Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor, MI. Davis, L. (ed.) (1987). Genetic Algorithms and Simulated Annealing. Pitman, London. Goldberg, D. E. (1989). Genetic Algorithm in Search, Optimization, and Machine Learning. Addison-Wesley, Reading, MA. Michalewicz, Z. (1992). Genetic Algorithm + Data Structures = Evolution Programs. Springer-Verlag, Berlin,. 1996: 3rd edition. (tłumaczenie polskie, PWN, 1996) Michell, M. (1996). An Introduction to Genetic Algorithms . MIT Press, Cambridge, MA.

Center for Applied Systems Analysis (CASA) Informatik Centrum Dortmund (ICD) Schwelfel, H.-P. (1981 i 1995). Evolution and Optimum Seeking. John Wiley & Sons, New York. http://ls11-www.informatik.uni-dortmund.de/people/people-e.html Thomas Back Schwelfel, H.-P.

Fogel, D.B. (1995). Evolutionary Computation. IEEE Press, New York. Dr. Fogel (redaktor naczelny) IEEE Transactions on Evolutionary Computation. http://www.natural-selection.com/people/dbf.html

Evolutionary Computation Czasopisma Adaptive Behavior Artificial Life Evolutionary Computation

Artificial Intelligence Machine Learning

IEEE Transaction on Evolutionary Computation, IEEE IEEE Transaction on Systems, Man, and Cybernetics, IEEE Biological Cybernetics, Springer-Verlag BioSystems, Elsevier Science Complexity, Academic Press Complex Systems, Complex Systems Publications

Materiały Internetowe GP tutorials http://metricanet.com/people/jjf/ http://www.geneticprogramming.com/ http://alphard.ethz.ch/gerber/ http://www.byte.com/art/9402/sec10/art1.htm Genetic Programming with C++

GP Częste pytania (FAQ) http://www-dept.cs.ucl.ac.uk/research/genprog/gp2faq/gp2faq.html http://www-dept.cs.ucl.ac.uk/research/genprog/gpfaq/gpfaq.html

Computer Science Bibliographies B.3 GP Bibliografie http://liinwww.ira.uka.de/bibliography/Ai/genetic.programming.html http://skippy-bb.cs.bham.ac.uk/~wbl/biblio/gp-bibliography.html The Collection of Computer Science Bibliographies Up: Bibliographies on Artificial Intelligence Collection Home Search Search

B.4 GP Badacze http://metricanet.com/people/jjf/ http://www.cs.ucl.ac.uk/research/genprog/ The Genetic Programming researchers notebook

http://www.cs.ucl.ac.uk/research/genprog/ Genetic Programming FAQs People who do GP Software Available Where to publish work on Genetic Programming and Conferences Interactive Genetic Art & Music

Obliczenia ewolucyjne GGAA http://www.aic.nrl.navy.mil/galist ENCORE http://research.germany.eu.net:8080/encore/www/top.htm Evolutionary Computation Page http://rodin.cs.uh.edu/~twryu/genetic.html

Listy subskrypcyjne subscribe genetic-programming to genetic programming-REQUEST@cs.standford.edu unsubscribe genetic-programming subscribe ba-gp ba-gp-REQUEST@cs.standford.edu

Listy wysyłkowe i grupy zainteresowań GA mailing list ga-list-request@ga-list-request@aic.nrl.navy.mil GA and NN mailing list gann-request@cs.iastate.edu GA news group comp.ai.genetic AL news group USENET news group alife.bbs.ga

Indeks Public Domain GP Systems Related Software Drawing Package C++ Implementation issues GP conference Related Conference and Workshops

Public Domain GP GP in C++ GP-quick ftp://ftp.salford.ac.uk/pub/gp/ GP-quick ftp://ftp.io.com/pub/genetic-programming/Gpdata-20-aug-95.tar.Z Genetic Programming kernel. C++ library http://aif.wu-wien.ac.at/~geyers/archive/gpk/Dok/kurz/kurz.html List Implementation of GP ftp://ftp.io.com/pub/genetic-programming/code/koza-book-go-implementation.lisp framework for GP of neural network ftp://ftp.io.com/pub/genetic-programming/code/cerebrum.tar.Z

Cd. Related Software Package C++ implementation Issues http://www.informatik.uni-bremen.de/~inform/forschung/daVinci/daVinci.html C++ implementation Issues http://www.frc.ri.cmu.edu/~mcm/chapt.html

GP Konferencje Annual. Started 1996. GP 1997 conference http://www.cs.brandeis.edu/~zippy/gp-96.html GP 1997 conference http://www-cs-faculty.stanford.edut/~koza/gp97.html GP 1998 conference http://www.genetic-programming.org/

Konferencje (cd) GP-99 Conference (part of GECCO Conference) in Orlando, Florida Euro-GP-99 Workshop in Goteborg, Sweden in May 26 - 27 1999. GP-2000 Conference GP-98 Conference at University of Wisconsin SGA-98 (Symposium on Genetic Algorithms) at University of Wisconsin Euro-GP-98 Workshop in Paris

Konferencje o zbliżonej tematyce ICGA conference series international conference on genetic algorithm PPSN conference series parallel problem solving from nature EP conference series evolutionary programming

Literatura Trylogia Johna R. Kozy: Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press, 1992. Genetic Programming II: Automatic Discovery of Reusable Programs, MIT Press, 1994. Genetic Programming III: Darwinian Invention and Problem Solving, Morgan Kaufmann, 1999. (autorzy: John R. Koza, Forrest H Bennett III, David Andre, and Martin A. Keane)

Ciekawe miejsca w sieci www.genetic-programing.org Ogólne informacje o programowaniu genetycznym www.genetic-programming.com Strona internetowa firmy Genetic Programming Inc. założonej przez J. R. Kozę. www.cs.ucl.ac.uk/research/genprog/gp2faq/gp2faq.html Najczęściej zadawane pytania dotyczące programowania genetycznego.