Jen to je ztraceno, čeho se sami vzdáváme.
-- Lessing



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

Knihovna genetických algoritmů

Příbuzné pojmy

Tato stránka je věnována popisu použití optimalizační knihovny, implementující generické algoritmy. Nejprve stáhněte dva soubory:

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.

Get["geneticoperators.m"];
Get["genetic-new.m"];

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

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;
$RecursionLimit = 1024;
pravdepodobnostMutace = 0.02;
pravdepodobnostKrizeni = 0.96;
pouzitGrayCode = True;
pouzitRuletu = True;
debugMode = False;

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ů)
VektorPromennych = {{x, 0, 5, 16}, {y, 0, 5, 16}};

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.

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}}

A konečně definujeme i samotnou účelovou funkci.

Fitness[{x_,y_}]:=Sin[(x-2.5)^2]+Cos[(y-2.5)]^2;

UcelovaFunkce.png

Může být samozřejmě i více proměnných.

Fitness[{x1_,x2_,x3_,x4_,y1_}]:=Module[{}, ... ];

V prvním kroku nagenerujeme populaci náhodnými jedinci.

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ů".

Cesta: Úvodní strana ****


Otevřená oborová encyklopedie elektrotepelné techniky, © 2005 N. Burbaki

Přílohy

Více informací... Přihlášení
Tato strana (revision-12) byla změněna 22:44 20.11.2007 uživatelem xkrumpha.