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) |
#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 |
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.
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)
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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. |