Programowanie genetyczne, gra SNAKE



Podobne dokumenty
Programowanie genetyczne - gra SNAKE

Algorytmy genetyczne

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Algorytm genetyczny (genetic algorithm)-

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

ALGORYTMY GENETYCZNE ćwiczenia

Strategie ewolucyjne (ang. evolu4on strategies)

Algorytmy ewolucyjne NAZEWNICTWO

Problem Komiwojażera - algorytmy metaheurystyczne

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Algorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

Metody Rozmyte i Algorytmy Ewolucyjne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

Testy De Jonga. Problemy. 1 Optymalizacja dyskretna i ciągła

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

6. Klasyczny algorytm genetyczny. 1

Algorytmy genetyczne

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

WAE Jarosław Arabas Pełny schemat algorytmu ewolucyjnego

Algorytmy genetyczne

Algorytmy ewolucyjne (3)

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań

Obliczenia ewolucyjne - plan wykładu

Algorytmy genetyczne

Inspiracje soft computing. Soft computing. Terminy genetyczne i ich odpowiedniki w algorytmach genetycznych. Elementarny algorytm genetyczny

Algorytmy ewolucyjne 1

Algorytmy ewolucyjne Część II

Rój cząsteczek. Particle Swarm Optimization. Adam Grycner. 18 maja Instytut Informatyki Uniwersytetu Wrocławskiego

Algorytmy sztucznej inteligencji

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

CZAS NA PROGRAMOWANIE

Algorytmy ewolucyjne. wprowadzenie

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Dobór parametrów algorytmu ewolucyjnego

Algorytmy genetyczne w interpolacji wielomianowej

Algorytmy genetyczne w optymalizacji

Scenariusz lekcji Ozobot w klasie: Spacer losowy po układzie współrzędnych

Aproksymacja funkcji a regresja symboliczna

Metody Kompilacji Wykład 3

Patrycja Prokopiuk. Zastosowanie rachunku prawdopodobieństwa w Pokerze Pięciokartowym

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Program "FLiNN-GA" wersja 2.10.β

Techniki optymalizacji

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty).

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin., Oeconomica 2017, 337(88)3, 5 12

Równoważność algorytmów optymalizacji

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

Generowanie i optymalizacja harmonogramu za pomoca

Programowanie genetyczne (ang. genetic programming)

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Zadania laboratoryjne i projektowe - wersja β

Metody przeszukiwania

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Programowanie genetyczne

Algorytmy ewolucyjne (2)

5. Algorytm genetyczny przykład zastosowania

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

Algorytmy ewolucyjne `

Układy VLSI Bramki 1.0

Biologicznie motywowane metody sztucznej inteligencji

ALHE Z11 Jarosław Arabas wykład 11

Teoria algorytmów ewolucyjnych

Wybrane podstawowe rodzaje algorytmów

METODY SZTUCZNEJ INTELIGENCJI algorytmy ewolucyjne

lekcja 8a Gry komputerowe MasterMind

Projekt wprowadzający Tester umiejętności z wykorzystaniem zestawu ewaluacyjnego EVK1100

SZTUCZNA INTELIGENCJA

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

Modyfikacje i ulepszenia standardowego algorytmu genetycznego

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

6. Algorytm genetyczny przykłady zastosowań.

ALGORYTMY I PROGRAMY

WAE Jarosław Arabas Adaptacja i samoczynna adaptacja parametrów AE Algorytm CMA-ES

CMAES. Zapis algorytmu. Generacja populacji oraz selekcja Populacja q i (t) w kroku t generowana jest w następujący sposób:

Podstawy OpenCL część 2

SZTUCZNA INTELIGENCJA

Programowanie w VB Proste algorytmy sortowania

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał

Kompletna dokumentacja kontenera C++ vector w -

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Programowanie Genetyczne

Algorytmy genetyczne jako metoda wyszukiwania wzorców. Seminarium Metod Inteligencji Obliczeniowej Warszawa 26 X 2005 mgr inż.

Wstęp. Kurs w skrócie

Obliczenia Naturalne - Algorytmy genetyczne

Kodu z klasą. Kodu, zbierzesz dla mnie trochę jabłek? Scenariusz 3

Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych

Systemy Inteligentnego Przetwarzania wykład 4: algorytmy genetyczne, logika rozmyta

Strategie ewolucyjne (ang. evolution strategies)

Metoda ewolucyjnego doboru współczynników funkcji oceniającej w antywarcabach

Algorytmy genetyczne służą głównie do tego, żeby rozwiązywać zadania optymalizacji

KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT

Transkrypt:

STUDENCKA PRACOWNIA ALGORYTMÓW EWOLUCYJNYCH Tomasz Kupczyk, Tomasz Urbański Programowanie genetyczne, gra SNAKE II UWr Wrocław 2009

Spis treści 1. Wstęp 3 1.1. Ogólny opis..................................... 3 1.2. Informacje dla użytkowników........................... 3 2. Charakterystyka systemu 4 2.1. Schematy ewolucji................................. 4 2.2. Zastosowane operatory genetyczne........................ 4 2.2..1 MaxReproduction............................. 4 2.2..2 AdaptationCrossover............................ 5 2.2..3 MultipleMutation............................. 5 2.2..4 ClassicCrossover.............................. 5 2.2..5 ClassicMutation.............................. 5 2.2..6 ClassicReproduction............................ 5 3. Wyniki 5 2

1. Wstęp 1.1. Ogólny opis Projekt jest próbą wygenerowania w miarę dobrze grającego programu w popularną grę Wąż przy pomocy algorytmów ewolucyjnych. Reguły gry Wąż są bardzo proste. Sterujemy osobnikiem złożonym z wielu segmentów o tej samej wielkości połączonych razem ze sobą. W grze poruszamy się w trzech możliwych kierunkach: lewo, prawo, prosto (w zależności od orientacji głowy węża). W każdym momencie na planszy znajduje się dokładnie jeden kawałek jedzenia. Gdy wąż go zjada jego ogon wydłuża się o jeden segment, a nowy kawałek jedzenia pojawia się w innym losowym miejscu. Celem gry jest zjedzenie jak najwięcej kawałków jedzenia. Do stworzenia osobnika wykorzystujemy programowanie genetyczne. 1.2. Informacje dla użytkowników Program zrealizowany jest jako applet Java. Można w nim ustalić wielkość populacji oraz liczbę generacji, czyli dane wejściowe dla algorytmu ewolucyjnego. Interfejs graficzny zawiera cztery podstawowe przyciski: Rozpocznji ewolucje, Zakończ ewolucje, Rozpocznji symulacje, Zakoncz Symulacje. 3

2. Charakterystyka systemu 2.1. Schematy ewolucji Przez schemat ewolucji rozumiem sposób tworzenia populacji potomków z populacji rodzicielskiej. Niech P t oznacza populację rodziców w t-tej generacji. SCHEMAT PIERWSZY - pierwszy zaimplementowany schemat nie opiera się na klasycznym schemacie ewolucji w programowaniu genetycznym. Występują w nim trzy operatory, które będą opisane później. Działa on następująco: Wybierz najlepszego osobnika w populacji P t i zastąp nim pewien ustalony ułamek populacji P t (MaxReproduction). Wybierz m-krotnie po dwóch różnych osobników (metodą ruletki) z P t, skrzyżuj ich i zastąp ich wynikłymi z krzyżowania osobnikami (AdaptationCrossover). Wybierz jednego osobnika (metodą ruletki) z P t, usuń jego dowolne poddrzewo i zastąp je losowym poddrzewem. Umieść osobnika spowrotem w P t (MultipleMutation). SCHEMAT DRUGI - opiera się na klasycznym schemacie programowania genetycznego. Występują również trzy operatory, które zostaną opisane później. Z każdym operatorem związane jest prawdopodobieństwo p 1, p 2 oraz p 3. W każdej generacji każdy z operatorów jest stosowany zgodnie z jednym z powyższych prawdopodobieństw. Schemat działa następująco: Stwórz pustą populację potomków C t. Dopóki liczba osobników w C t nie jest równa liczbie osobników w P t wykonuj poniższy krok. Jeżeli udał się (z ppb. p1) ClassicCrossover, to wybierz dwa osobniki z P t metodą ruletki. Skrzyżuj je i wstaw dwóch potomków do C t. Jeżeli udał się (z ppb. p2) ClassicMutation, to wybierz osobnika z P t metodą ruletki. Zamień jest dowolne losowe poddrzewo na losowe drzewo. Wstaw tak zmutowanego osobnika do C t. Jeżeli udał się (z ppb. p3) ClassicReproduction, to wybierz osobnika z P t metodą ruletki. Wstaw tego osobnika do C t. Zastąp P t przez C t. 2.2. Zastosowane operatory genetyczne 2.2..1 MaxReproduction Operator ten pobiera trzy parametry: populację P, adaptację A oraz p [0, 1). Parametr p oznacza jaki procent populacji P należy zastąpić najlepszym osobnikiem w populacji P. Operator ten z początku znacznie polepszył wyniki, ale później okazało się, że dość szybko prowadzi on do dominacji najlepszego osobnika w populacji, a co za tym idzie do skupienia się algorytmu w obrębie tego osobnika i słabego rozproszenia poszukiwań. 2.2..2 AdaptationCrossover Operator ten pobiera trzy parametry: populację P, adaptację A oraz nieujemną liczbą całkowitą times, która oznacza ile razy mamy powtórzyć działanie operatora. Działaniem tym jest 4

wylosowanie dwóch osobników metodą ruletki i skrzyżowanie ich. Pierwotne osobniki w P są zastępowane przez swoje dzieci. Bardzo trudno jest określić czy operator ten ma pozytywny czy negatywny wpływ na działanie algorytmu. Może się zdarzyć tak, że dwa dobre programy po tej operacji będą miały mierne wyniki, ale również może zajść sytuacja zupełnie odwrotna. Napewno operator ten jest dobry pod względem rozszerzenia obszaru poszukiwań w obrębie tych najlepszych osobników. Operator ten przypomina trochę przeszukiwanie lokalne, gdyż po skrzyżowaniu najprawdopodobniej dostaniemy osobników bliskich swoim rodzicom. 2.2..3 MultipleMutation Operator ten pobiera trzy parametry: populację P, adaptację A oraz p [0, 1]. Parametr p jest szansą na zastosowanie tego operatora. Operator ten losuje osobnika metodą ruletki, następnie losuje jego losowe poddrzewo i zastępuje je losowym drzewem o losowej wielkości. Pierwotny osobnik jest zastępowany przez zmutowanego osobnika. Głównym zadaniem tego operatora jest rozproszenie przeszukiwań. 2.2..4 ClassicCrossover Działa tak samo jak AdaptationCrossover z tą różnicą, że pobiera dodatkowy parametr, którym jest nowa populacja. Skrzyżowane osobniki nie zastępują swoich rodziców w starej populacji, lecz trafiają do nowej. 2.2..5 ClassicMutation Działa tak samo jak MultipleMutation z tą różnicą, że pobiera dodatkowy parametr, którym jest nowa populacja. Zmutowany osobnik nie zastępuje swojego rodzica, lecz trafia do nowej populacji. 2.2..6 ClassicReproduction Metodą ruletki wybiera osobnika z populacji rodzicielskiej. Pobiera dodatkowy parametr, którym jest nowa populacja. Wybrany osobnik trafia do nowej populacji, populacja rodzicielska pozostaje bez zmian. 3. Wyniki Poniżej przedstawiam dwa wykresy. Obrazują one ilość zjedzonych kawałków jedzenia w zależności od prawdopodobieństwa wyboru operatorów reprodukcji oraz krzyżowania. 5

Rysunek 1: Ewolucja ze zwiększoną mutacją. Rysunek 2: Ewolucja ze zmniejszoną mutacją. 6