Není-li kniha zrcadlem mocné individuality, je aspoň ještě zrcadlem zajímavých chyb ducha.
-- Proust



Hlavní strana
Novinky
Výuka
Projekty
Lidé
Jiné
Kontakt


 

Diskuzní fórum
Pískoviště
Poslední změny
Registrace
Etický kodex
Nápověda
Administrace
Hlášení chyb







  © 1999-2008 HEAT


JSPWiki v2.4.104
Verze k tisku
Difference between version and version      View first change»»

Back to OOEET_KnihovnaGenetickychAlgoritmu, or OOEET_KnihovnaGenetickychAlgoritmu version history

At line 1 added 2 lines.
[{ALLOW view All}]
[{ALLOW edit,upload Trusted}]
At line 12 added 7 lines.
Tato stránka je věnována popisu použití optimalizační knihovny, implementující generické algoritmy. Nejprve stáhněte dva soubory:
* [genetic-new.m|genetic-new.m] - obsahuje hlavní optimalizační smyčku a pomocné funkce
* [geneticoperators.m|geneticoperators.m] - obsahuje definice genetických operátorů
Založte nový soubor .nb. Jako první je potřeba natáhnout knihovnu do paměti Mathematického jádra (kernelu). To provedete dvěma řádky.
At line 24 added 7 lines.
Pokud vidíme chybové hlášky
Get::noopen: Cannot open geneticoperators.m...\\
Get::noopen: Cannot open genetic-new.m...\\
Dopíšeme přímo konkrétní cesty k souborům. (předchozí uvedené příkazy fungují pouze pokud jste soubory nakopírovali do aktuálního pracovního adresáře) Např.
At line 16 changed 1 line.
pocetJedincu = 15;
Get["c:\geneticoperators.m"];
Get["c:\genetic-new.m"];
}}}
Správný chod algoritmu se řídí následujícími parametry. Jejich změnou je možné ovlivnit rychlost konvergence.
{{{
pocetJedincu = 55;
At line 48 added 7 lines.
Dále je nutné nadefinovat optimalizační proměnné. Definice je dána formou vektoru proměnných, kdy každý prvek má 4 složky.
* x - název proměnné
* 0 - dolní mez prohledávaného prostoru
* 5 - horní mez prohledávaného prostoru
* 16 - přenost v bitech (např. 16 znamená, že se prohledávaný prostor diskretizuje sití se 2^16 uzlů)
At line 26 changed 1 line.
VektorPromennych =
VektorPromennych = {{x, 0, 5, 16}, {y, 0, 5, 16}};
At line 59 added 2 lines.
Počet optimalizačních proměnných není omezen, mějme však na paměti, že čím více proměnných máme, tím větší výpočetní výkon potřebujeme. Nicméně vektor optimalizačních proměnných může vypadat i takto.
At line 30 changed 1 line.
Fitness[
VektorPromennych = {{x1, 0, 5, 8},{x2, 0, 5, 8},{x3, 0, 5, 8},{x4, 0, 5, 8}, {y1, -500, 500, 16},{y2, 0, 500, 16},{y3, 100, 500, 16},{z,-5,5,12}}
At line 65 added 3 lines.
A konečně definujeme i samotnou účelovou funkci.
At line 34 changed 2 lines.
ClearAll[Populace];
Populace = Inicializace[pocetJedincu];
Fitness[{x_,y_}]:=Sin[(x-2.5)^2]+Cos[(y-2.5)]^2;
At line 72 added 4 lines.
[UcelovaFunkce.png]
Může být samozřejmě i více proměnných.
At line 39 changed 1 line.
OptimalizacniSmycka[20000];
Fitness[{x1_,x2_,x3_,x4_,y1_}]:=Module[{}, ... ];
At line 80 added 1 line.
V prvním kroku nagenerujeme populaci náhodnými jedinci.
At line 82 added 15 lines.
{{{
ClearAll[Populace];
Populace = Inicializace[pocetJedincu];
}}}
Tímto příkazem se spouští iterativní proces evolučního hledání nových řešení. Parametr určuje počet iterací po jejich vykonání skončí. Funkci je možno po skončení opět spustit, a celý proces optimalizace dále pokračuje.
{{{
OptimalizacniSmycka[200];
}}}
\\
\\
__''Tato knihovna byla vytvořena v rámci příspěvku "Optimalizace sálavého pole v souvislosti s úsporami při radiačním vytápění interiérů".''__
\\
\\
View page Více informací... Přihlášení
Tato strana (revision-12) byla změněna 22:44 20.11.2007 uživatelem xkrumpha.