OPTIMALIZACE FUNKCE GENETICKÝM ALGORITMEM

Podobné dokumenty
Pokud nebude na příkazové řádce uveden právě jeden argument, vypište chybové hlášení a stručný

Home Media Server. Instalace aplikace Home Media Server do poèítaèe. Správa mediálních souborù. Home Media Server

v trojúhelníku P QC sestrojíme vý¹ky na základnu a jedno rameno, patu vý¹ky na rameno oznaèíme R a patu na základnu S

2007 Nokia. V¹echna práva vyhrazena. Nokia, Nokia Connecting People a Nseries jsou ochranné známky nebo registrované ochranné známky spoleènosti

Øízený pøeklad - make

Zpracování textù poèítaèem

Okam¾ité zprávy. Nokia N76-1

Matematika I Ètvercové matice - determinanty

Správce spojení U¾ivatelská pøíruèka

Matematika II Limita a spojitost funkce, derivace

Matematika II Aplikace derivací

1.2 Realizace èekání pomocí jednoduché programové smyèky Pøíklad 3: Chceme-li, aby dítì blikalo baterkou v co nejpøesnìjším intervalu, øekneme mu: Roz

KOMUNIKAÈNÍ DDE SERVER PRO AUTOMATY MICROPEL VERZE 2.3 POPIS ROZHRANÍ A OVLÁDÁNÍ

2007 Nokia. V¹echna práva vyhrazena. Nokia, Nokia Connecting People, Nseries a N77 jsou ochranné známky nebo registrované ochranné známky spoleènosti

Externí sluchátko do vozu Nokia Instalaèní pøíruèka U¾ivatelská pøíruèka

Teorie Pøíèné vlny se ¹íøí v napjaté strunì pøibli¾nì rychlostí. v =

Jak se matematika poučila v biologii

Publikování. Zaèínáme. Odesílání souborù. Publikování

Matematika II Lineární diferenciální rovnice

Nokia Lifeblog 2.5. Nokia N76-1

PESexcl. PODPORA PRO VÝMÌNU DAT S APLIKACÍ MICROSOFT EXCEL s využitím DDE serveru PESdde

1. Úvod do genetických algoritmů (GA)

Tento uèební text je urèen studentùm oboru Informatika a výpoèetní technika pro úvodní kurs Základy pøekladaèù a roz¹iøující kurs Výstavba pøekladaèù.

Manuál pro WebRSD. verze 2.0 z



Vaše uživatelský manuál NOKIA HDW-2


Matematika II Funkce více promìnných

Nokia Radio Headset HS-2R U¾ivatelská pøíruèka vydání

TECHNICKÁ SPRÁVA Obsah

Push to talk. Definice pøístupového bodu Push to talk. Nastavení funkce Push to talk. Push to talk

Push to talk. Nokia N76-1

2007 Nokia. V¹echna práva vyhrazena. Nokia, Nokia Connecting People a Nseries jsou ochranné známky nebo registrované ochranné známky spoleènosti

Urèování polohy Nokia N76-1

Analogový terminál. Alcatel OmniPCX Office ARCHITECTS OF AN INTERNET WORLD

Zaèínáme. Nokia N93i-1

Dr. Ing. Miroslav Bene¹ PØEKLADAÈE

T-Mobile SpeedManager. Postup nastavení T-Mobile SpeedManager pro PC/notebook


baspelin CPM Popis komunikaèního protokolu CPM KOMPR


U¾ivatelská pøíruèka pro Hudební modul Nokia MD vydání

Návod pro vzdálené p ipojení do sít UP pomocí VPN pro MS Windows 7

Semestální práce z předmětu PC

Citace PRO. návod na využívání citačního manažera. Místo vydání: Brno Vydavatel: Citace.com Datum vydání: Verze:

Matematika II Urèitý integrál

Turnaj HALAS ligy v logických úlohách Brno

Aproximace funkcí. Chceme þvzoreèekÿ. Známe: celý prùbìh funkce

Filtrace v prostorové oblasti

Datový a nabíjecí kabel Nokia CA-126

NEKOVÉ PØEVODOVKY ØADA K

Instalaèní pøíruèka programu PC Suite

U¾ivatelská pøíruèka k headsetu s displejem Nokia HS vydání CS

Music Headset Nokia HS-20/AD /1

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016

NEKOVÉ PØEVODOVKY ØADA X

Úèinný prostorovì-rozdìlující algoritmus pro shlukování pomocí k-støedu

Vaše uživatelský manuál NOKIA LD-1W

Jak vybrat správný set pro solární ohřev vody

y 2 x 2 max F(X) x 1 y 1

Instalaèní pøíruèka programu PC Suite


Adobe Photoshop Album Starter Edition 3.0

Matematika II Extrémy funkcí více promìnných

U¾ivatelská pøíruèka k videotelefonnímu. (pro telefony Nokia 6630) vydání

Nokia N76-1. Začínáme , 2. vydání CS

DOKOPO. Komunikaèní karta se samostatným procesorem a dual-port pamìtí. Technická pøíruèka. verze 2.0. A plikace Mikroprocesorové Techniky

U¾ivatelská pøíruèka k headsetu s displejem Nokia HS vydání

Mince zajímají nejen numismatiky. (Coins are of interest not only for numismatists) L'ubomíra Dvoøáková, Marie Dohnalová, Praha



Indukèní smyèka pro nedoslýchavé LPS-4 U¾ivatelská pøíruèka vydání


map Manažerský nástroj

Administrace počítačových sítí. WEB a LPT

Školní knihovna pro Windows. Verze 2.0

Nokia FM vysílaè CA /1

Matematika I Posloupnosti

Simluátor Trilobota. (projekt do předmětu ROB)

Upínací pøípravek pro dr¾áky telefonu Nokia Easy Mount HH-20 a CR-122

Dùle¾ité tipy. Spoleènì pro pøístroje N91 a N91 8GB. Nokia PC Suite (zvlá¹tì aplikace Nokia Audio Manager) Správa souborù

map Manažerský nástroj pro analýzu mailové komunikace firemních týmù a neformálních skupin

Internet. Zaèínáme s poèítaèem. Windows pro zaèáteèníky. Windows pro pokroèilé. Text pro zaèáteèníky. Text pro pokroèilé. Tabulka pro zaèáteèníky

NEBO 1b) v mailu jste dostali link (odkaz) na stažení nové verze programu, například

na evropských burzách pohotové zboží

Zaèínáme Nokia N92-1

Zálohování a zotavení Uživatelská příručka


EX05 - interiérový ovladaè, teplomìr, vlhkomìr. Periferie EX05 je nabízena ve dvou modifikacích: s mìøením teploty

Začínáme. Nokia N vydání CS


Klasická termodynamika (aneb pøehled FCH I)

Instalaèní pøíruèka programu PC Suite. CS Issue 1

Obsah. Windows 95 je vaše. Windows si pamatují, kam co patøí. O knize 1

Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy

10/2001 7/2001 SW 3.0

Stereofonní headset Nokia WH /1

3/ %,1'(& 83'1 &( &3 )XQNFH. + ; ; ; ; / ; ; + ; EH]H]PuQ\

Dal¹í aplikace. Nokia N91 8GB. Nokia N91-2

Transkript:

KIV/PC ZS 2018/2019 VARIANTA 1 (JSi) ZADÁNÍ SEMESTRÁLNÍ PRÁCE OPTIMALIZACE FUNKCE GENETICKÝM ALGORITMEM Zadání Naprogramujte v ANSI C pøenositelnou 1 konzolovou aplikaci, která bude hledat extrém funkce pomocí genetického algoritmu Genetický algoritmus je technika, která napodobuje procesy známe z biologie a hledá tak optimální øe¹ení zadaného problému Podle zadaného problému se nadenuje tzv tness funkce, její¾ hodnota vyjadøuje ¾ivotaschopnost potomka { vhodnost øe¹ení problému Základní princip genetického algoritmu: 1 Náhodnì vytvoøíme nìkolik rùzných øe¹ení zadané úlohy { jedincù 2 Provedeme køí¾ení jedincù 3 Náhodnì zmutujeme malý poèet jedincù 4 Ovìøíme, jak dobøe jeden ka¾dý jedinec øe¹í ná¹ problém tak, ¾e pro ka¾dého získáme hodnotu tness funkce 5 Vytvoøíme novou generaci 6 Opakujeme body 2 a¾ 5 Pro úèely této semestrální práce je pro lep¹í pochopení problematiky naprosto dostaèující èlánek o genetickém algoritmu na Wikipedii Pro detailní zkoumání genetických algoritmù doporuèuji proèíst tutoriál Genetic Algorithms 2 Pro lep¹í pøedstavu o ¹iroké ¹kále problémù, které je mo¾no touto cestou øe¹it viz U¾iteèné odkazy Hotovou práci odevzdejte v jediném archivu typu ZIP prostøednictvím automatického odevzdávacího a validaèního systému Archiv nech» obsahuje v¹echny zdrojové soubory potøebné k pøelo¾ení programu, makele pro Windows i Linux (pro pøeklad v Linuxu pøipravte soubor pojmenovaný makefile a pro Windows makefilewin) a dokumentaci ve formátu PDF vytvoøenou v typograckém systému TEX, resp LATEX Bude-li nìkterá z èástí chybìt, kontrolní skript Va¹i práci odmítne Parametry programu Aplikace bude pøijímat z pøíkazové øádky 2 povinné argumenty: jméno souboru, ve kterém jsou metadata o testované funkci, poèet generací, které mají být provedeny Porgram bude pøijímat také jeden nepovinný argument: -m procento mutací (0-100) 1 Je tøeba, aby bylo mo¾né Vá¹ program pøelo¾it a spustit na PC s operaèním prostøedím Win32/64 (tj operaèní systémy Microsoft Windows NT/2000/XP/Vista/7/8/10) a s bì¾nými distribucemi Linuxu (napø Ubuntu, Mint, OpenSUSE, Debian, atp) Server, na který budete Va¹i práci odevzdávat a který ji otestuje, má nainstalovaný operaèní systém Debian GNU/Linux 91 Stretch s jádrem verze 3278-1 x86 64 a s pøekladaèem gcc 630 2 https://wwwtutorialspointcom/genetic_algorithms 1

Vá¹ program tedy mù¾e být bìhem testování spu¹tìn napøíklad takto: \>gmsexe e:\functions\metatxt 1000 -m 5 Pokud nebudou na pøíkazové øádce uvedeny alespoò dva argumenty, vypi¹te chybové hlá¹ení a struèný návod k pou¾ití programu (v angliètinì) Popis programu Optimalizovaná funkce Funkce, kterou budete optimalizovat, bude dodána ve formì programu ve spustitelné podobì Tento program bude naèítat konguraci ze souboru s metadaty, který je popsán ní¾e Va¹e práce se tedy bude skládat z nìkolikanásobných úprav tohoto souboru a následném spu¹tìní externího programu, který pro vás hodnotu vypoète Za svého bìhu mù¾e na standardní výstup vypisovat podrobné informace o svém bìhu, na poslední øádku vypí¹e hodnotu funkce, kterou optimalizujete, a ukonèí se Jméno souboru s metadaty bude pøedáno jako parametr va¹emu programu Formát souboru s metadaty Soubor na prvním øádku obsahuje pøíkaz pro spu¹tìní programu, který simuluje funkci, uvozený znaky "# " Následuje výèet v¹ech promìnných, které tento program naète pro výpoèet hodnoty funkce Pro hledání optima laïte pouze promìnné, které mají na pøedchozí øádce uvedený denièní obor a za ním typ promìnné (reálné èíslo { R / celé èíslo { Z) striktnì ve formátu popsaném dále, ostatní ponechte beze zmìn #_(a,b);$ jmeno=hodnota kde (a,b) je denièní obor a $ je typ promìnné (R/Z) Tedy v následujícím konguraèním souboru budete ladit pouze promìnou X Promìnnou Z ponecháte beze zmìn: #_e:\functions\fceexe #_(5,90);Z X=0 Z=25 Mapování genu Pro mapování genu se doporuèuje pou¾ít dále uvedený zpùsob 3 Pro celá èísla pou¾ijte jejich binární zápis Pro reálná èísla pou¾ijte konkrétní hodnoty daných promìnných 3 Pokud byste v¹ak rádi vyzkou¹eli jinou variantu a pøinesli nový vlastní nápad, pøijïte jej zkonzultovat a spoleènì vyhodnotíme, zda je takový alternativní pøístup vhodný 2

Køí¾ení Køí¾ení dvou potomkù poté realizujte pro ka¾dou skupinu genù 4 takto: Pro binární zápis celého èísla kombinujte èásti genù rodièù (viz obr 1) Hranici blokù vybírejte v¾dy náhodnì, ale tak, aby spadla mezi bity kódující interval uvedený u promìnné Pro hodnotu reálného èísla vypoèítejte pro potomka novou hodnotu jako aritmetický prùmìr hodnot rodièù Obrázek 1: Ukázka tvorby nových potomkù zeleného a modrého rodièe Zdroj: wwwtutorialspointcom Mutace Mutaci genotypu provádìjte následujícím zpùsobem Podle parametru z pøíkazové øádky -m vyberte urèitou èást z populace 5, kterým náhodnì upravíte èást genù Èást binární reprezentace celého èísla náhodnì pøepí¹ete nulami a jednièkami U reálného èísla reprezentovaného hodnotou vygenerujete náhodnì nové èíslo z uvedeného intervalu U mutovaného potomka v¹ak v¾dy upravte jen jednu skupinu genù Dejte v¹ak pozor, a» mutací neponièíte své nejlep¹í jedince Výstup Výsledkem èinnosti programu budou dva textové soubory (gentxt a valtxt), ve kterých bude souhrn prùbìhu hledání optima Proto¾e celý proces mù¾e být èasovì velice nároèný, tyto soubory tvoøte prùbì¾nì Po ka¾dé generaci na zaèátek souboru gentxt pøipi¹te nejlep¹ího jedince (konkrétní hodnoty optimalizovaných promìnných a výsledek funkce) Výsledný soubor tedy bude øazen tak, ¾e první v souboru jsou nejnovìj¹í výsledky Po ka¾dém získání hodnoty optimalizované funkce zapi¹te do souboru valtxt konkrétní hodnoty ladìných promìnných a výsledek funkce Ukázka výstupu v gentxt 4 Soubor genù popisující jednu vlastnost { v na¹em pøípadì je to jedna konkrétní promìnná mapovaná binárnì nebo hodnotou 5 Pokud není pou¾it pøepínaè -m zvolte hodnotu 5 % 3

--- GENERATION 598 --- 58236 X=45#(5,90);Z Y=028#(01,10);R --- GENERATION 597 --- 57786 X=40#(5,90);Z Y=024#(01,10);R Ukázka výstupu valtxt 58236 X=7#(5,90);Z Y=011#(01,10);R 58236 X=9#(5,90);Z Y=015#(01,10);R U¾iteèné techniky a odkazy Øe¹ení úlohy je zcela ve va¹í kompetenci { zvolte takové techniky, které podle vás nejlépe povedou k cíli Uvedené techniky je mo¾né (ale nikoliv nezbytnì nutné) vyu¾ít pøi øe¹ení úlohy Proto¾e se jedná o postupy víceménì standardní, lze k nim nalézt velké mno¾ství dokumentace: 1 Genetické algoritmy https://wwwtutorialspointcom/genetic_algorithms 2 Genetic algorithm { popis techniky na Wikipedii, https://enwikipediaorg/wiki/genetic_algorithm 3 Genetic algorithms { evolution of a 2D car in Unity https://wwwyoutubecom/watch?v=fkbarpalbkw 4

Obr 2: Genetic algorithms { evolution of a 2D car in Unity 4 Evolution Simulator https://wwwyoutubecom/watch?v=gofws_hhzs8 Obr 3: Evolution Simulator 5 Flexible Muscle-Based Locomotion https://wwwyoutubecom/watch?v=pgaee27nsqw 5

Obr 4: Evolution Simulator 6