Naar aanleiding van http://gathering.tweakers.net/forum/list_messages/1525716 kwam ik daar de volgende opmerkingen tegen:
Zelf ben ik niet professioneel bezig met programmeerwerk, maar vind ik het hobbymatig erg leuk en heb onderhand dusdanig veel gedaan, ook voor mijn data-analyses op mijn werk welke puur voor mijzelf zijn en nooit in productie gaan, dat ik van veel talen redelijk veel begrijp, mijn wiskundige kennis aardig op peil is, maar ook nog van heel veel heel veel nog niet weet
Voor mijn afstudeerwerk heb ik uitbundig gebruik gemaakt van genetische algoritmes en dat is puur omdat er, mijn inziens, bijna geen manier bestond om het deterministisch aan te pakken. Wij hadden namelijk data gemeten van 5 sensoren, 3 inputs naar een piloot en 2 outputs die de piloot genereert in 10 verschillende condities en probeerden daar een parametrisch model op te fitten. Aangezien een mens zich niet-lineair gedraagt gaan veel signaal-analyse trucjes niet op. Het model dat we hadden was gebaseerd op biologische kennis en we hadden 20 parameters waar we aan konden draaien. Door middel van een genetisch algoritme kwamen we op hele goede resultaten, zelfs een stuk gedetailleerder dan we hadden kunnen hopen
. Bij die 10 verschillende condities zag je de parameters ook erg mooi verschuiven.
Zo heb ik ook ooit eens een presentatie gezien van een bedrijf dat werkt in de carbon fiber polymeer business en die bepaalden de orientatie, ligging en bochten van de carbon fibers in hele specialistische vormen aan de hand van GA en die dingen outperformden veel competitie terwijl ze fabricagekosten ook meenamen in de fitnessfunctie. Ze waren dus vaak beter, maar ook veel goedkoper omdat er minder materiaal gebruikt werd.
Het Travelling Salesman Probleem is er nog eentje waar ik me niet voor kan stellen dat een deterministisch algoritme beter is, maar dat komt misschien omdat mijn kennis niet toereikend is. Het is domweg niet mijn achtergrond en ik probeer de kersen te plukken van de kennis van mensen die dat wel als achtergrond hebben. Zo is ie met brute-force O(n!) en zijn er heuristische algoritmes die O(n^2 * 2^n) halen. GA heeft hier heel goed bewezen een mooie oplossing te genereren.
Ik snap wel wat het grote nadeel van genetische algoritmes is, namelijk je kan niet bewijzen of je antwoord het echte optimum is en je kan dus in een lokaal minimum terecht zijn gekomen.
Echter vind ik GA dusdanig 'elegant' en interessant dat ik benieuwd ben naar jullie mening waarom je het NIET zou moeten gebruiken, want volgens mij zijn er zat problemen waar je domweg niet iets kan gebruiken waarvan je zeker weet dat je het optimum bereikt zonder dat je 1E20 computerjaren tot je beschikking hebt
En hebben jullie voorbeelden over bekende problemen waar GA juist WEL werkt of juist NIET en wat het alternatief is? Er zijn namelijk legio voorbeelden waarom het WEL werkt waardoor ik verbaasd ben dat Iedereen die iets met evolutionary algorithms doet je kan vertellen dat je ze NIET moet gebruiken
enIedereen die iets met evolutionary algorithms doet kan je vertellen dat je ze NIET moet gebruiken, tenzij er geen betere oplossingen beschikbaar zijn. Als je ze dan toch moet gebruiken, dan werkt een gespecialiseerd algoritme beter dan een generiek algoritme, maar ik zie hier daar niets over.
Nu wil ik echter geen topic kapen, maar start ik een nieuwe omdat ik bovenstaande opmerkingen niet helemaal kan plaatsen.Ik vind genetische algoritmen stom en dus neig ik naar pedorus' suggestie om gewoon een deterministisch algoritme te ontwikkelen
Zelf ben ik niet professioneel bezig met programmeerwerk, maar vind ik het hobbymatig erg leuk en heb onderhand dusdanig veel gedaan, ook voor mijn data-analyses op mijn werk welke puur voor mijzelf zijn en nooit in productie gaan, dat ik van veel talen redelijk veel begrijp, mijn wiskundige kennis aardig op peil is, maar ook nog van heel veel heel veel nog niet weet
Voor mijn afstudeerwerk heb ik uitbundig gebruik gemaakt van genetische algoritmes en dat is puur omdat er, mijn inziens, bijna geen manier bestond om het deterministisch aan te pakken. Wij hadden namelijk data gemeten van 5 sensoren, 3 inputs naar een piloot en 2 outputs die de piloot genereert in 10 verschillende condities en probeerden daar een parametrisch model op te fitten. Aangezien een mens zich niet-lineair gedraagt gaan veel signaal-analyse trucjes niet op. Het model dat we hadden was gebaseerd op biologische kennis en we hadden 20 parameters waar we aan konden draaien. Door middel van een genetisch algoritme kwamen we op hele goede resultaten, zelfs een stuk gedetailleerder dan we hadden kunnen hopen
Zo heb ik ook ooit eens een presentatie gezien van een bedrijf dat werkt in de carbon fiber polymeer business en die bepaalden de orientatie, ligging en bochten van de carbon fibers in hele specialistische vormen aan de hand van GA en die dingen outperformden veel competitie terwijl ze fabricagekosten ook meenamen in de fitnessfunctie. Ze waren dus vaak beter, maar ook veel goedkoper omdat er minder materiaal gebruikt werd.
Het Travelling Salesman Probleem is er nog eentje waar ik me niet voor kan stellen dat een deterministisch algoritme beter is, maar dat komt misschien omdat mijn kennis niet toereikend is. Het is domweg niet mijn achtergrond en ik probeer de kersen te plukken van de kennis van mensen die dat wel als achtergrond hebben. Zo is ie met brute-force O(n!) en zijn er heuristische algoritmes die O(n^2 * 2^n) halen. GA heeft hier heel goed bewezen een mooie oplossing te genereren.
Ik snap wel wat het grote nadeel van genetische algoritmes is, namelijk je kan niet bewijzen of je antwoord het echte optimum is en je kan dus in een lokaal minimum terecht zijn gekomen.
Echter vind ik GA dusdanig 'elegant' en interessant dat ik benieuwd ben naar jullie mening waarom je het NIET zou moeten gebruiken, want volgens mij zijn er zat problemen waar je domweg niet iets kan gebruiken waarvan je zeker weet dat je het optimum bereikt zonder dat je 1E20 computerjaren tot je beschikking hebt
En hebben jullie voorbeelden over bekende problemen waar GA juist WEL werkt of juist NIET en wat het alternatief is? Er zijn namelijk legio voorbeelden waarom het WEL werkt waardoor ik verbaasd ben dat Iedereen die iets met evolutionary algorithms doet je kan vertellen dat je ze NIET moet gebruiken
Engineering is like Tetris. Succes disappears and errors accumulate.