Dokumentacja systemu EvNet
contents.gif | index.gif
Topics
Opis wybranych zagadnień
Topics
Topic Description
Agent: sieć neuronowa Parametry konfiguracyjne sieci neuronowych, będących zarazem agentami - osobnikami zamieszkąjącymi środowisko, zawarte są w klasie  FeedForward (namespace Evolution.NeuralNet). Zawarte są w niej minimalne i maksymalne zakresy wartości (liczba neuronów w wartwie wejściowej i obu warstwach ukrytych, szybkość nauki itd).

 

Logika działania sieci neuronowej zaszyta jest w klasie MultiLayerNetwork (namespace Evolution.NeuralNet). Instancje tej klasy agregują w sobie neurony (w formie tablicy dwuwymiarowej, odzwierciedlającej warstwy i położenie neuronów w tych warstwach) W systemie EvNet klasa Neuron jest w zasadzie definicją struktury danych, służącą do przechowywania aktualnych parametrów (np. wag na wejściu) neuronu. Pozbawiona jest metod.

 

Sama funkcjonalność agenta zrealizowana jest poprzez klasy Agent / EvAgent / PredAgent.

 

API W namespace Evolution.Api zawarte są przede wszystkim interfejsy, implementowane przez poszczególne klasy.

Komórka (Cell)  
Most (bridge) Mosty implementowane są przez klasę Bridge (namespace Evolution.Platform). Mosty łączą ze sobą wyspy i są jedyną drogą, dzięki której agenty mogą się przemieszczać pomiędzy nimi (metoda TransferAgent).

Polecenia W namespace Evolution.Platform zawarte są klasy - czynności, które mogą wykonywać agenty. Należą do nich:

Przekształcenia ewolucyjne: mieszane genotypów (cross-over) Algorytm mieszania genotypów zawarty jest w klasie NormalCrossover (namespace Evolution.Crossover).

Klasa zawiera metodę Crossover, która pobiera jako parametry wejściowe dwuwymiarową tablicę zawierające genotypy obu rodziców, a jako wynik zwraca tablicę zawierającą  genotyp powstały w wyniku wymieszania danych wejściowych. Każde pole w zwracanej tabeli wypełniane jest wartością będące pewną kombinacją liniową odpowiadających pól z genotypów wejściowych (suma współczynników kombinacji przy iloczynach równa jest 1).

           

Przekształcenia ewolucyjne: mutacja (mutation) Algorytm mutacji genotypów zawarty jest w klasie NormalMutation (namespace Evolution.Mutation).

Metoda Mutate która pobiera jako parametry tablicę zawierającą genotyp osobnika, a na wyjściu pojawia się tablica zawierająca zmutowany genotyp. Na etapie inicjalizacji dla każdego genu (atrybutu) niezależnie określa się odchylenie standardowe. Funckja mutate korzysta z tej informacji, mutując (zmieniając wartość) parametrów otrzymanych na wejściu. Każda wartość modyfikowana jest zgodnie z rozkładem normalnym (dla zdanego odchylenia standardowego).

Wyspa Klasa implementująca funkcjonalność wymaganą od wyspy nazywa się EvIsland (namespace Evolution.App), potomek klasy Island.

Wyspa posiada metody służące do zarządzania agentami na jej obszarze (dodawanie, usuwanie, przemieszczenie na sąsiednią wyspę), wysyłania wiadomości na zewnątrz oraz przekazywania wiadomości pomiędzy agentami, które znajdują się na niej. Wyspa może także wykonywać polecenia (Instruction).

Bardzo ważną cechą wyspy jest cykliczne aktywowanie agentów. Agenty na wyspie nie działają równolegle, tylko są cyklicznie "przełączane". Równolegle mogą działać natomiast całe wyspy, jeśli w środowisku jest zdefiniowane kilka.

Wyspa agreguje w sobie komórki (cells), w których z kolei mogą znajdować się agenty.

Zarządzanie wyspami Klasa implementująca funkcjonalność zarządcy wysp nazywa się IslandController (namespace Evolution.Platform).

Zarządca wysp posiada informację do wszystkich wysp obecnych w systemie.


contents.gif | index.gif