Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Evolúciós algoritmus. Az evolúciós algoritmus Darwin fajfennmaradási elméletén alapszik, és a függvény-minimum meghatározására szolgál. Alapfogalmak:

Hasonló előadás


Az előadások a következő témára: "Evolúciós algoritmus. Az evolúciós algoritmus Darwin fajfennmaradási elméletén alapszik, és a függvény-minimum meghatározására szolgál. Alapfogalmak:"— Előadás másolata:

1 Evolúciós algoritmus

2 Az evolúciós algoritmus Darwin fajfennmaradási elméletén alapszik, és a függvény-minimum meghatározására szolgál. Alapfogalmak: Egyed: egy adat szerkezet, amely a probléma lehetséges megoldását képviseli. Gén: az egyed része, egy konkrét számadat. Populáció: egyedek halmaza. Generació: a populáció egy adott pillanatban, azaz egy adott ciklusban

3 Az algoritmus BEGIN hozd létre a kezdő populációt határozd meg az egyedek életképességét REPEAT /* új generáció létrehozása */ a kevésbé életképes egyedek elpusztítása FOR egyedek száma * 2/3 DO /* uj egyedek létrehozása */ válassz ki két szülőt a fennmaradt populációból hozd létre az utódot határozd meg az utód életképességét add hozzá az utódokat a populációhoz END FOR UNTIL a populáció teljesítette az adott feltételt END

4 Az algoritmus alkalmazása

5 Az evolúciós algoritmus megprogramozása

6 Fő program Két féle képpen hívható meg: A program paramétereit megadjuk, a fő program argumenseiként A program paramétereit a billentyűszerkezetről viszi be a felhasználó Működése: Lefoglalja a memórában a működéséhez szükséges helyet Létrehozza az evolúció szálat Megvárja az evolúció befejeződését Felszabadítja a lefoglalt memóriát

7 Fő program

8 Egyed Az egyedek mint a program egy szála vannak bemutatva. Létrehozásuk során egy paramétert kakpnak, ami alapján meg tudják határozni: egy mutatót a függvényre, amelynek a minimumját keressük. a független változót, ami alapján meg tudják határozni a függvény értékét az adott pontban. saját azonosítójukat, ami segítségével meg tudjuk különböztetni az egyedeket. Az egyed paramétere: struct specimenThreadParameters { int iSpecimenNumber; double dIndependentVariable; double (*pfChosenFunction)(double); };

9 Az egyed működése

10 Az egyed fukciói void InitializeSpecimenThreadSemaphores(int iNumberOfSpecimenThreads) void CleanUpSpecimenThreads(int iNumberOfSpecimenThreads) void StartSpecimenThread(int iThreadToStart) void WaitForWriteDone(int iNumberOfSpecimenThreads) void KillSpecimenThreads(int iNumberOfSpecimenThreads) void KillSpecimenThread(int iThreadToKill)

11 Evolúció Az evolúció mint a program egy szála van bemutatva. Az evolúció paramétere: struct evolutionThreadParameters { int iNumberOfSpecimens; double (*pfChosenFunction)(double); int iNumberOfIterations; double dInterval[2]; int iNumberOfFuncMinValues; double dToleration; FILE *fLogFile; };

12 Az evolúció funkciói void InitializeEvolution(int iNumberOfSpecimenThreads); void CleanUpEvolution(int iNumberOfThreads); void StartThreads(double (*pfChosenFunction)(double), double *dInterval, int iNumberOfSpecimenThreads) void EliminateOneThirdSpecimens(int iNumberOfThreads) void CreateOneThirdSpecimens(int iNumberOfThreads, double (*pfChosenFunction)(double)) bool EndOfTheIteration(int iCurrentIteration, int iNumberOfIterations, int iNumberOfFuncMinValues, double dToleration) void PrintTableHeaders(FILE *fLogFile) void PrintCurrentValues(int iCurrentIteration, FILE* fLogFile) void EndReport(int iCurrentIteration, FILE* fLogFile)

13 Az egyed az adat bázisban Egy egyed az adat bázisban egy struktúrával van modellezve, amely tartalmazza az egyedekről mindazon infomációkat, amlyek szükségessek az evolúció működéséhez: Független változó Függvényérték Azonosító struct stSpecimen { double dIndependentVariable; double dFunctionValue; int iSpecimenID; };

14 Adat bázis struct stDataBase { double *pdFunctionMinValues; stSpecimen *stSpecimens; static stDataBase* pstDataBase; static stDataBase* GetPointerToDataBase() { if(pstDataBase == NULL) { pstDataBase = (stDataBase*)malloc(sizeof(stDataBase)); } return pstDataBase; } };

15 Az adat bázis funkciói void InitializeDataBase(int iNumberOfSpecimenThreads, intiNumberOfFuncMinValues) void CleanUpDataBase() void SortByFuncValue(int iNumberOfSpecimenThreads) void SortByIndependentVariable(int iNumberOfSpecimenThreads) void RandomSort(int iNumberOfSpecimenThreads) void GenerateRandomArray(int iNumberOfSpecimenThreads)

16 Vége


Letölteni ppt "Evolúciós algoritmus. Az evolúciós algoritmus Darwin fajfennmaradási elméletén alapszik, és a függvény-minimum meghatározására szolgál. Alapfogalmak:"

Hasonló előadás


Google Hirdetések