/u/ia02/s51068/local/projects/release/programme/ga.h-Dateireferenz

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  validPart

Makrodefinitionen

#define COMPILE_DEPRECATED_FUNCTIONS
#define UNIFORM   1
#define POINT   2
#define TWOPOINT   3
#define DIE   1
#define SURVIVE   2
#define RESCORE   3
#define BESTOF   1
#define BESTOF2   2
#define RANK   3
#define ROULETTE   4

Funktionen

void getSynonym (validPart *validInput, int _validCount, keyword *cb, int cbSize, int tbSize, char **original, int originalSize, char **_smallCB, int _smallCBSize)
bool calcFitness (population *pop, entity *entity)
int equalByBMU (int *compare, float *result, int n, float breakVal)
float getFitness (validPart *validInput, int validCount, outputPart *testInput, int testCount, char **inputWords, int inputWordCount)
void getWordsByChromosome (entity *item, int chromoLength, char ***words, int *count)
int getIndexOfWord (char **smallCB, int smallCBSize, char *word)
char * getWordOfIndex (char **smallCB, int smallCBSize, int index)
float calcOrderness (char **sortWords, int sortWordsCount, char **compareWords, int compareWordsCount)
int hasPeak (float threshold, float *vector, int size)
void setParams (int populationSize_, int maxGenerations_, float crossoverRate_, float mutationRate_, int crossoverMethod_, int selectionMethod_, int eliteMethod_)
void setOrderPhrase (char **orderPhrase_, int orderPhraseSize_)
void printPhraseByChromo (entity *et, population *pop)
void setSpecialSeed (int seed, float chance)
GAULFUNC boolean mySeed (population *pop, entity *adam)


Makro-Dokumentation

#define BESTOF   1

#define BESTOF2   2

#define COMPILE_DEPRECATED_FUNCTIONS

#define DIE   1

#define POINT   2

#define RANK   3

#define RESCORE   3

#define ROULETTE   4

#define SURVIVE   2

#define TWOPOINT   3

#define UNIFORM   1


Dokumentation der Funktionen

bool calcFitness ( population *  pop,
entity *  entity 
)

Berechnet die Fitness eines Individuums entity innerhalb der Population pop. In dieser Funktion wird die Unterfunktion getFitness(...) aufgerufen, welche weitere Berechnungen anstellt.

Parameter:
pop Ist die Population in der sich das Individuum befindet.
entity Ist das Individuum, dessen Fitness berechnet werden soll.

float calcOrderness ( char **  sortWords,
int  sortWordsCount,
char **  compareWords,
int  compareWordsCount 
)

Berechnet einen Faktor € [0,1], der die Reihenfolge von notwendigen Woertern berechnet. Ein Wert von 1 beschreibt die absolut korrekte geforderte Reihenfolge. Ein Wert von 0 sagt aus, dass die Reihenfolge absolut nicht eingehalten wird. Naeheres in der Diplomarbeit (Funktion f_orderness)

Parameter:
sortWords Ist der Vektor, der die Worte in der geforderten Reihenfolge festlegt.
sortWordsCount Ist die Groesse des Vektors der Worte der geforderten Reihenfolge.
compareWords Ist der Vektor, der die Worte beinhaltet, dessen Reihenfolge bewertet werden soll.
compareWordsCount Ist die Groesse des Vektors compareWords.

int equalByBMU ( int *  compare,
float *  result,
int  n,
float  breakVal 
)

Berechnet die Gleichheit zwischen Netzausgabe und geforderter Ausgabe anhand der BMU-Funktion (Best-Matching-Unit)

Parameter:
compare Ist der Vektor, welcher die geforderten Netzausgaben (Referenzwerte) beinhaltet.
result Ist der Vektor, welche die tatsaechliche Netzausgabe beinhaltet.
n die Groesse jeweils beider Vektoren.
breakVal Ist der Schwellwert der BMU-Funktion.

float getFitness ( validPart validInput,
int  validCount,
outputPart testInput,
int  testCount,
char **  inputWords,
int  inputWordCount 
)

Ist eine Unterfunktion zur Berechnung des Fitnesswertes.

Parameter:
validInput Ist ein Vektor, der die Menge der Referenzwerte beinhaltet.
validCount Ist die Groesse des Vektors der Referenzwerte.
testInput Ist ein Vektor, der die Menge der tatsaechlichen Netzausgaben beinhaltet.
testCount Ist die Groesse des Vektors der tatsaechlichen Netzausgaben.
inputWords Ist der tatsaechliche Satz, welcher durch das Individuum beschrieben wird.
inputWordCount Ist die Laenge des Satzes, also die Anzahl der Worte.

int getIndexOfWord ( char **  smallCB,
int  smallCBSize,
char *  word 
)

Liefert den Index fuer in Wort innerhalb des beschraenkten Woerterbuches, oder -1, wenn das Wort nicht gefunden wurde.

Parameter:
smallCB Ist der Vektor des beschraenkten Woerterbuches.
smallCBSize Ist die Groesse des beschraenkten Woerterbuches.
word Ist das Wort, dessen Index ermittelt werden soll.

void getSynonym ( validPart validInput,
int  _validCount,
keyword cb,
int  cbSize,
int  tbSize,
char **  original,
int  originalSize,
char **  _smallCB,
int  _smallCBSize 
)

Diese Funktion startet die Synthese.

Parameter:
validInput ist ein Vektor der die Menge der Referenz-Wort-Rolle-Zuordnung festlegt.
_validCount Die Anzahl der Referenzwerte im Vektor (Groesse des Vektors).
cb Legt das verwendete Woerterbuch fest.
cbSize Ist die Groesse des verwendeten Woerterbuches.
tbSize Ist die Groesse des verwendeten Rollenbuches.
original entfaellt.
originalSize entfaellt.
_smallCB Legt ein eingeschraenktes Worterbuch fest, welches durch den genetischen Algorithmus verwendet wird. Fuer den Normalfall kann hier das komplette Woerterbuch uebergeben werden.
_smallCBSize Ist die Groesse des eingeschraenkten Woerterbuches.

char* getWordOfIndex ( char **  smallCB,
int  smallCBSize,
int  index 
)

Liefert das Wort an einem Index innerhalb des Woerterbuches, oder ein leerer String, wenn der Index nicht gefunden wurde.

Parameter:
smallCB Ist der Vektor des beschraenkten Woerterbuches.
smallCBSize Ist die Groesse des beschraenkten Woerterbuches.
index Ist der Index, an w

void getWordsByChromosome ( entity *  item,
int  chromoLength,
char ***  words,
int *  count 
)

Diese Funktion liefert die Menge der Worte (also der Satz), welcher durch die Allele eines Chromosomens beschrieben wird. Hierbei wird das Woerterbuch verwendet, um das Chromosomen zu dekodieren.

Parameter:
item Ist das Individuum, dessen repraesentierter Satz ermittel werden soll.
chromoLength Ist die Laenge des Chromosomens.
words Rueckgabewert. Ist ein Zeiger auf ein Vektor aus Zeichenketten. Hier wird der resultierende Satz geschrieben.
count Rueckgabewert. Ist ein Zeiger auf die Anzahl der Worte (Satzlaenge), welcher gesetzt wird.

int hasPeak ( float  threshold,
float *  vector,
int  size 
)

Ermittelt, ob die Netzausgabe einen Peak erzeugt (anhand eines Schwellwertes threshold). Liefert 1, wenn ein Peak vorhanden ist oder 0, wenn kein Peak vorhanden ist.

Parameter:
threshold Ist der Schwellwert
vector Ist der Netzausgabevektor
size Ist die Groesse des Netzausgabevektors.

GAULFUNC boolean mySeed ( population *  pop,
entity *  adam 
)

void printPhraseByChromo ( entity *  et,
population *  pop 
)

Gibt des Satz, der durch ein Individuum beschrieben, aus.

Parameter:
et Ist das Individuum, dessen repraesentierter Satz ausgegeben werden soll.
pop Ist die Population in der sich das Individuum befindet.

void setOrderPhrase ( char **  orderPhrase_,
int  orderPhraseSize_ 
)

Legt die Worte in ihrer geforderten Reihenfolge fest.

Parameter:
orderPhrase_ Ein Vektor mit den geforderten Worten in ihrer geforderten Reihenfolge
orderPhraseSize_ Die Groesse des Vektors orderPhrase

void setParams ( int  populationSize_,
int  maxGenerations_,
float  crossoverRate_,
float  mutationRate_,
int  crossoverMethod_,
int  selectionMethod_,
int  eliteMethod_ 
)

Diese Funktion dient als Schnittstelle. Hier koennen von "aussen" die Parameter des genetischen Algorithmus gesetzt werden.

Parameter:
populationSize_ Ist die Groesse der Population
maxGenerations_ Ist die maximale Anzahl der Generationen.
crossoverRate_ Ist die Kreuzungsrate.
crossoverMethod_ Ist das verwendete Kreuzungsschema.
mutationRate_ Ist die Mutationsrate.
selectionMethod_ Ist die Selektionsmethode
eliteMethod_ Ist der verwendete Elitismus.

void setSpecialSeed ( int  seed,
float  chance 
)

Hier wird die Wahrscheinlichkeit fuer die Belegung des leeren Wortes € in der Anfangspopulation festgelegt.

Parameter:
seed Der Wert des Allels, welches mit bestimmer Wahrscheinlichkeit besetzt werden soll. Wahrscheinlichkeit € [0,1], mit der die Allele durch den Wert seed belegt werden sollen.


Erzeugt am Thu Jun 26 14:04:49 2008 für Diplomarbeit_Paul_Werner von  doxygen 1.5.0