Forum » Programiranje » Evolucijski algoritmi
Evolucijski algoritmi
terryww ::
Zanimajo me naslednje stvari:
1. Dobra knjiga za uvod v EA in programiranje le teh
2. Vaše izkušnje z EA, na kateri arhitekturi jih poganjate (se splača na CUDA-i)
3. Kako ocenit kdaj se bo pojavila nova rešitev
4. Iz vaše prakse, povprečen čas za novo rešitev
5. Kako uporabne so potem rešitve
6. V katerem jeziku je dobro pisat (glede na to da je Matlab dobil podporo za računanje na GPU http://www.mathworks.com/products/conne...
No, to zaenkrat.
1. Dobra knjiga za uvod v EA in programiranje le teh
2. Vaše izkušnje z EA, na kateri arhitekturi jih poganjate (se splača na CUDA-i)
3. Kako ocenit kdaj se bo pojavila nova rešitev
4. Iz vaše prakse, povprečen čas za novo rešitev
5. Kako uporabne so potem rešitve
6. V katerem jeziku je dobro pisat (glede na to da je Matlab dobil podporo za računanje na GPU http://www.mathworks.com/products/conne...
No, to zaenkrat.
Thomas ::
Čist tko. En tipček je izračunal, da so inteligentno delujoči rekurzivno optimizirajoči se algoritmi, počasnejši od evolucijskih.
Zelo zanimivo. Jaz to trdim že zelo dolgo.
Zelo zanimivo. Jaz to trdim že zelo dolgo.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
3. Kako ocenit kdaj se bo pojavila nova rešitev
Ne moreš. Lahko, da se ne bo nikoli, to se komot pripeti.
Če bi vedel, bi pomenilo, da si naredil tisto evolucijo sam. To je sploh značilno za vsak izračun. Če kaj oceniš, si ga že vsaj delno izračunal.
Lahko si pa samo ugibal. V tem primeru nisi boljši od random uganjevalca.
Man muss immer generalisieren - Carl Jacobi
nevone ::
1. Dobra knjiga za uvod v EA in programiranje le teh
Kakšna Darwinova ali Dawkinsova.
2. Vaše izkušnje z EA, na kateri arhitekturi jih poganjate (se splača na CUDA-i)
Poganjaš jih lahko na vsaki arhitekturi, ki omogoča računanje.
3. Kako ocenit kdaj se bo pojavila nova rešitev
Nove rešitve se pojavljajo praktično ves čas, jih je pa treba ustrezno ovrednotiti.
4. Iz vaše prakse, povprečen čas za novo rešitev
1 sekunda - 1 minuta
5. Kako uporabne so potem rešitve
Kolikor se ti zdijo uporabne.
6. V katerem jeziku je dobro pisat (glede na to da je Matlab dobil podporo za računanje na GPU http://www.mathworks.com/products/conne...
V asemblerju, če znaš, če ne pa v kateremkoli.
o+ nevone
Kakšna Darwinova ali Dawkinsova.
2. Vaše izkušnje z EA, na kateri arhitekturi jih poganjate (se splača na CUDA-i)
Poganjaš jih lahko na vsaki arhitekturi, ki omogoča računanje.
3. Kako ocenit kdaj se bo pojavila nova rešitev
Nove rešitve se pojavljajo praktično ves čas, jih je pa treba ustrezno ovrednotiti.
4. Iz vaše prakse, povprečen čas za novo rešitev
1 sekunda - 1 minuta
5. Kako uporabne so potem rešitve
Kolikor se ti zdijo uporabne.
6. V katerem jeziku je dobro pisat (glede na to da je Matlab dobil podporo za računanje na GPU http://www.mathworks.com/products/conne...
V asemblerju, če znaš, če ne pa v kateremkoli.
o+ nevone
Either we will eat the Space or Space will eat us.
Thomas ::
Nove rešitve se pojavljajo praktično ves čas, jih je pa treba ustrezno ovrednotiti.
Vrednotenje mora seveda avtomatično, ne da človek pove kaj je good. Na človeku je, da spiše kriterij fitnesa. To se razume.
Man muss immer generalisieren - Carl Jacobi
terryww ::
O, hvala! Pa še rabljene so poceni, genialno!
Ti, Gundolf, povej kaj več o tvojih izkušnjah z EA, s programiranjem le teh. Na katere področju jih uporabljaš in kak si kaj zadovoljen z rezultati?
Ti, Gundolf, povej kaj več o tvojih izkušnjah z EA, s programiranjem le teh. Na katere področju jih uporabljaš in kak si kaj zadovoljen z rezultati?
Zgodovina sprememb…
- spremenil: terryww ()
terryww ::
Spomnim se, da je svoj čas bila odmevna novica enekga komada, ki je v virtualen svet postavil neko telo, in rekel telesu, naj poskuša čim efektivnejše se premikati po tistem prostoru. Svašta načine premikanja je comp zgruntal, eden je imel povdarek na izkoriščanju gravitacije (mnda se je pokonci postavil in pogem naprej padel).
Sigurno se da kje najt kak video o tem. No, jaz vem samo za ta primer.
Sigurno se da kje najt kak video o tem. No, jaz vem samo za ta primer.
Gundolf ::
Praktičen primer česa? Evolucijskega algoritma? To so le postopki optimizacije. Kadarkoli imaš optimizacijski problem lahko uporabiš nek evolucijski algoritem za iskanje rešitve. Ne na to gledat kot neko hudo specifično stvar. Imaš polno različic samih algoritmov in še več primerov uporabe.
Trivialen primer uporabe - iščeš kje ima neka grda večdimenzionalna funkcija minimum.
Trivialen primer uporabe - iščeš kje ima neka grda večdimenzionalna funkcija minimum.
Loki ::
matlab ima verjetno kaksen toolbox za AI, pa se gpu povezavo pa se cpp compiler.
grafe pa tudi lepo lahko delas.
grafe pa tudi lepo lahko delas.
I left my wallet in El Segundo
Zgodovina sprememb…
- spremenil: Loki ()
terryww ::
@Loki
>pa se gpu povezavo pa se cpp compiler
1.http://www.mathworks.com/products/conne...
2. matlabove funkcije -> cpp.. to je bolj tak. Vstavit to v CUDA-o pa verjetno nebi videl kakih pospeškov.
>gpu povezavo
Z matlabom nisem čisto na tekočem. A zdaj že majo, da avtomatsko požene na gpuju, al imajo toolbox za gpu al kak?
>pa se gpu povezavo pa se cpp compiler
1.http://www.mathworks.com/products/conne...
2. matlabove funkcije -> cpp.. to je bolj tak. Vstavit to v CUDA-o pa verjetno nebi videl kakih pospeškov.
>gpu povezavo
Z matlabom nisem čisto na tekočem. A zdaj že majo, da avtomatsko požene na gpuju, al imajo toolbox za gpu al kak?
Zgodovina sprememb…
- spremenil: terryww ()
1024 ::
Praktičen primer česa? Evolucijskega algoritma?
Praktičen primer reševanja praktičnega problema s praktičnim outcomom.
jmakov komentar pride blizu. Mogoče še kakšen?
Fish knows everything.
terryww ::
Ja, mene tud zanima kje kaj to uporabljate. Ne bit tak skrivnostni no, saj če imate kako izjemno idejo, date TM zraven al pa ©, pa bomo vedli :).
Zgodovina sprememb…
- spremenil: terryww ()
Gundolf ::
@1024
Sej sem rekel, kateri koli optimizacijski problem, teh je pa nešteto na voljo. Optimizacija letalskega krila, ali pa spoilerja na avtu, ali pa celotne oblike avta, ali pa motorja, ali pa posameznega dela motorja, ali pa marsikaterega industrijskega procesa, ... Karkoli ima že optimizacijo v imenu potem pa še parkarat toliko stvari ki je nima :)
Sej sem rekel, kateri koli optimizacijski problem, teh je pa nešteto na voljo. Optimizacija letalskega krila, ali pa spoilerja na avtu, ali pa celotne oblike avta, ali pa motorja, ali pa posameznega dela motorja, ali pa marsikaterega industrijskega procesa, ... Karkoli ima že optimizacijo v imenu potem pa še parkarat toliko stvari ki je nima :)
1024 ::
Torej uporabi se lahko kjerkoli, uporablja se pa nikjer, če prav zastopm.
Fish knows everything.
terryww ::
@Gundolf
A ni to fajn prilika da se zaposliš na TI in poganjaš EA na supercompu za recimo optimizacijo turbin?
A ni to fajn prilika da se zaposliš na TI in poganjaš EA na supercompu za recimo optimizacijo turbin?
A. Smith ::
@1024:
Thomas je s pomočjo evolucijskega algoritma optimiral sortirni algoritem.
Mislim, da je to dovolj konkreten primer.
Thomas je s pomočjo evolucijskega algoritma optimiral sortirni algoritem.
Mislim, da je to dovolj konkreten primer.
"Be professional, be polite,
but have a plan to kill everyone you meet".
- General James Mattis
but have a plan to kill everyone you meet".
- General James Mattis
terryww ::
@Loki
Ne, samo pravim da ako jim zmanjka dela, da Thomasa pokličejo ;). Sicer pa, poganjat EA za optimizacijo turbin se tud ne sliši neumno. Maš direkt profit, opazne so pa že male izboljšave.
Ne, samo pravim da ako jim zmanjka dela, da Thomasa pokličejo ;). Sicer pa, poganjat EA za optimizacijo turbin se tud ne sliši neumno. Maš direkt profit, opazne so pa že male izboljšave.
snow ::
1. Dobra knjiga za uvod v EA in programiranje le teh
Tudi na internetu dosti najdeš. http://www.generation5.org/articles.asp...
Mogoče knjiga od Goldberga za začetek ;)
Če imaš dostop do virov UL, lahko pogledaš malo po knjigah na springerju in v reviji IEEE Transactions on Evolutionary Computation.
2. Vaše izkušnje z EA, na kateri arhitekturi jih poganjate (se splača na CUDA-i)
Laufal na x86, windows večina. CUDA bi bila zanimiva zadeva ja, masovna paralelizacija je zanimiva zadeva za EA. Če nimaš preveč branchev v fitnessu ali mutacijah...
3. Kako ocenit kdaj se bo pojavila nova rešitev
Popolnoma odvisno od primera. Navadno gledaš kdaj imaš neko novo rešitev, ne kdaj bo neka nova rešitev. Kdaj bo človek imel krila?
4. Iz vaše prakse, povprečen čas za novo rešitev
Povprečen čas za novo rešitev? Čas za mutacijo? Kako dobra je rešitev? +čas za fitness.
5. Kako uporabne so potem rešitve
Kolikor dobro zastaviš problem.
6. V katerem jeziku je dobro pisat (glede na to da je Matlab dobil podporo za računanje na GPU http://www.mathworks.com/products/conne...
Kar ti srce poželi. Hočeš hitro napisat in imaš nezahteven problem - python, hočeš hitro zadevo in malo več heca - C++
Da ne boš izumil tople vode: http://lancet.mit.edu/ga/
Jaz sem uporabljal EA večinoma v kakih manjših problemih (ki so bili online tekmovanja) in kot algoritem za učenje nevronske mreže.
Physical TSP:
Problem: http://algoval.essex.ac.uk/ptsp/ptsp.ht...
Rešitve: http://dces.essex.ac.uk/staff/sml/gecco...
Tudi na internetu dosti najdeš. http://www.generation5.org/articles.asp...
Mogoče knjiga od Goldberga za začetek ;)
Če imaš dostop do virov UL, lahko pogledaš malo po knjigah na springerju in v reviji IEEE Transactions on Evolutionary Computation.
2. Vaše izkušnje z EA, na kateri arhitekturi jih poganjate (se splača na CUDA-i)
Laufal na x86, windows večina. CUDA bi bila zanimiva zadeva ja, masovna paralelizacija je zanimiva zadeva za EA. Če nimaš preveč branchev v fitnessu ali mutacijah...
3. Kako ocenit kdaj se bo pojavila nova rešitev
Popolnoma odvisno od primera. Navadno gledaš kdaj imaš neko novo rešitev, ne kdaj bo neka nova rešitev. Kdaj bo človek imel krila?
4. Iz vaše prakse, povprečen čas za novo rešitev
Povprečen čas za novo rešitev? Čas za mutacijo? Kako dobra je rešitev? +čas za fitness.
5. Kako uporabne so potem rešitve
Kolikor dobro zastaviš problem.
6. V katerem jeziku je dobro pisat (glede na to da je Matlab dobil podporo za računanje na GPU http://www.mathworks.com/products/conne...
Kar ti srce poželi. Hočeš hitro napisat in imaš nezahteven problem - python, hočeš hitro zadevo in malo več heca - C++
Da ne boš izumil tople vode: http://lancet.mit.edu/ga/
Jaz sem uporabljal EA večinoma v kakih manjših problemih (ki so bili online tekmovanja) in kot algoritem za učenje nevronske mreže.
Physical TSP:
Problem: http://algoval.essex.ac.uk/ptsp/ptsp.ht...
Rešitve: http://dces.essex.ac.uk/staff/sml/gecco...
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Zgodovina sprememb…
- spremenilo: snow ()
Gundolf ::
> @Gundolf
> A ni to fajn prilika da se zaposliš na TI in poganjaš EA na supercompu za recimo optimizacijo turbin?
Se strinjam, zelo fajn, sam sem še rahlo vezan ta moment :)
> Torej uporabi se lahko kjerkoli, uporablja se pa nikjer, če prav zastopm.
Uporabi se kjerkoli, za konkretne primere ti pa jaz ne znam povedat. Tako bi lahko zastopil. Oz. en dober recimo je, kar iz one knjige ki sem jo predlagal, optimizacija držala za anteno na satelitu, kjer so z EA izboljšali (menda) trdnost 200x, obdržali so pa nizko težo itd.
> A ni to fajn prilika da se zaposliš na TI in poganjaš EA na supercompu za recimo optimizacijo turbin?
Se strinjam, zelo fajn, sam sem še rahlo vezan ta moment :)
> Torej uporabi se lahko kjerkoli, uporablja se pa nikjer, če prav zastopm.
Uporabi se kjerkoli, za konkretne primere ti pa jaz ne znam povedat. Tako bi lahko zastopil. Oz. en dober recimo je, kar iz one knjige ki sem jo predlagal, optimizacija držala za anteno na satelitu, kjer so z EA izboljšali (menda) trdnost 200x, obdržali so pa nizko težo itd.
snow ::
Zastonj knjiga (2008) (o genetskem programiranju): http://www.lulu.com/items/volume_63/216...
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Arto ::
> Torej uporabi se lahko kjerkoli, uporablja se pa nikjer, če prav zastopm.
Uporabi se kjerkoli, za konkretne primere ti pa jaz ne znam povedat. Tako bi lahko zastopil. Oz. en dober recimo je, kar iz one knjige ki sem jo predlagal, optimizacija držala za anteno na satelitu, kjer so z EA izboljšali (menda) trdnost 200x, obdržali so pa nizko težo itd.
Če se ne motim, so EA uporabljali tudi pri dizajniranju nekega F1 dirkalnika. Šlo je pa za bate motorja. No, vsaj tako imam v spominu.
snow ::
Neural network:
http://www.generation5.org/articles.asp...
FAQ (7 delov): http://www.faqs.org/faqs/ai-faq/neural-...
Knjige:
NN splošno: http://www.avaye.com/files/articles/nni...
NN & C++: http://serghei.net/docs/programming/c++...
NN & Java: http://www.heatonresearch.com/articles/...
NN & Python (IBM): http://www.ibm.com/developerworks/libra...
http://www.generation5.org/articles.asp...
FAQ (7 delov): http://www.faqs.org/faqs/ai-faq/neural-...
Knjige:
NN splošno: http://www.avaye.com/files/articles/nni...
NN & C++: http://serghei.net/docs/programming/c++...
NN & Java: http://www.heatonresearch.com/articles/...
NN & Python (IBM): http://www.ibm.com/developerworks/libra...
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Zgodovina sprememb…
- spremenilo: snow ()
nevone ::
Z evolucijskim algoritmom je tako, da je v resnici zelo malo teorije o sami tehniki programiranja. Večji problem je, da moraš problematiko, ki jo želiš reševati z EA zelo dobro poznati, poleg tega, pa moraš včasih pogruntat kakšno finto (mogoče matematično ali kakšno drugačno), kako nastaviti fitnes, da bodo rezulati, ki ti jih bo EA dajal res vedno boljši, oziroma vedno bolj takšni, kot si želimo. Sama osnovna tehnika je pa enostavna, gre pa nekako takole:
Rešujemo recimo Problem1.
To je vsa umetnost tehnike programiranja.
Problem je pa:
1. pravilno nastaviti kriterije za izračun fitnessa
2. delati takšne mutacije, ki hitreje vodijo k napredku
o+ nevone
Rešujemo recimo Problem1.
1. Izmislimo si eno random Rešitev1, ki je obenem naša BestRešitev problema Problem1.
2. Izračunamo Fitness, ki je obenem nas BestFitness, ki ga oceni.
3. Naredimo Mutacijo ali več njih na Rešitvi1.
4. Izračunamo Fitness, ki ga oceni.
5. Če je Fitness boljši od BestFitness potem
6. spremenjena Rešitev1 postane naša BestRešitev
7. novi Fitness postane naš BestFitness
8. Pojdi na 3. točko
To je vsa umetnost tehnike programiranja.
Problem je pa:
1. pravilno nastaviti kriterije za izračun fitnessa
2. delati takšne mutacije, ki hitreje vodijo k napredku
o+ nevone
Either we will eat the Space or Space will eat us.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | DLL path za MATLABOddelek: Programiranje | 837 (646) | MrStein |
» | It means business (strani: 1 2 3 4 5 6 7 8 )Oddelek: Znanost in tehnologija | 28273 (14272) | Thomas |
» | Program za "Motion detection"Oddelek: Programska oprema | 2270 (1981) | BIG_Yack |
» | Nakup MatlabaOddelek: Programska oprema | 3045 (2534) | OChack |
» | vaša sintaksa pri programiranju (strani: 1 2 )Oddelek: Programiranje | 6933 (4736) | Thomas |