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. |
1.5.0