====== Genetické programování ====== Na dnešním cvičení si v prostředí HeuristicLab vyzkoušíme GP v akci na těchto problémech: * problém umělého mravence, stezka Santa Fe * symbolická regrese * klasifikace ===== HeuristicLab ===== [[https://dev.heuristiclab.com/trac.fcgi/|HeuristicLab]] je aplikace pro definici a řešení optimalizačních problémů prostřednictvím implementovaných optimalizačních algoritmů. Jedná se o aplikaci pro Windows, v .NET frameworku. * Máte-li na vlastním počítači Windows, instalace by měla být snadná. * Máte-li na vlastním počítači Linux, mělo by jít aplikaci [[https://dev.heuristiclab.com/trac.fcgi/wiki/Documentation/DevelopmentCenter/Compile%20HeuristicLab%20under%20Linux|spouštět přes Mono]], ale vyžaduje to více práce. * Na školních počítačích: * Rebootujte počítače, v boot menu vyberte volbu s Mono (Debian 9 mono RO). * Po přihlášení byste měli vidět položku //HeuristicLab// v nabídce //Applications/Development//. * Pokud tam není, spusťte terminál a zkuste spustit ''/opt/HeuristicLab/HeuristicLab.sh''. Spuštění testovacích problémů: * spusťte //HL Optimizer// * na záložce //Start Page// v okně //Samples// zvolte příslušný problém * Genetic Programming - Artificial Ant * Genetic Programming - Symbolic regression * Genetic Programming - Symbolic Classification ===== Jak měnit nastavení parametrů GP ===== Parametry se nastavují na záložkách **Problem** a **Algorithm**. **Výběr funkční sady**: * Artificial Ant - záložka //Problem// -> //Encoding SymbolicExpressionTree// -> //SymbolicExpressionTree.Grammar: Simple Grammar// * Symbolic regression, Symbolic Classification -> záložka //Problem// -> //SymbolicExpressionTreeGrammar: TypeCoherentExpressionGrammar// **Fitness**: * Záložka //Problem// -> //Evaluator// -> //Details// -> //Value// **Použití vlastního csv souboru** pro Symbolic Regression: * Pozor: musí být vybrán správný Separator a Decimal Separator ===== Kde sledovat průběžné a finální výsledky ===== Vše je na záložce //Results//. Kromě různých statistik je tam i něco jako //Best Solution// nebo //Best training solution//, kde jsou podrobné charakteristiky nejlepšího nalezeného řešení. ===== Co byste si měli vyzkoušet ===== * různé funkční sady * různá data, např. {{ :courses:a0m33eoa:cviceni:sr_data.zip |SR_data}} * různé nastavení * velikosti populace, * maximální hloubky generovaných výrazů, * pravděpodobnosti křížení a mutace, * selekce * různé instance klasifikačního a regresního problému * ...