JINGPaC



Java Interface for
Neural and Genetic Pattern Classification

EvolvableObject

JINGPaC definisce la classe astratta EvolvableObject come interfaccia di un qualunque oggetto evolutivo. In essa vengono definiti i metodi essenziali che serviranno all'evoluzione dell'oggetto come:

La maggior parte della complessità e delle responsabilità per la corretta evoluzione di uno specifico oggetto sono demandate alla Factory associata, come precedentemente illustrato, tuttavia la definizione di un'unica interfaccia per tutti gli oggetti "evolvibili" rappresenta uno dei pilastri fondamentali su cui regge l'architettura di JINGPaC. La figura seguente mostra come viene estesa il JINGPaC questa classe astratta:

In particolare in JINGPaC vengono definite 3 categorie di oggetti che possono essere fatti evolvere:

Cerchiamo ora di analizzare in dettaglio la realizzazione di ciascuna.

Genetic Program

In JINGPaC un Genetic Program è visto come un insieme di nodi terminali (i dati) e nodi funzione (la logica del programma) organizzati in una struttura ad albero; i nodi funzione presentano un numero di figli pari al numero di argomenti richiesti dalla funzione che implementano, questi nodi "figli" a loro volta possono essere di tipo funzione oppure terminali; in particolare questi ultimi, sono i nodi foglia del nostro albero e in quanto tali non possono possedere altri "figli".



Genetic Algorithm

In JINGPaC un Genetic Algorithm non è solo un tipo di oggetto "evolvibile" piuttosto rappresenta una struttura per l'incapsulamento di più oggetti "evolvibili": semanticamente può esser visto come un oggetto ArrayList<EvolvableObject> Java.

Neural Net

Architettura

Architettura generale del sistema. In cui è possibile notare la suddivisione dei thread all'interno d un environment.
Vi è un ulteriore thread relativo al World che contiene i vari thread Environment.

SourceForge.net Logo