quote:
DetectedDestiny schreef op 19 januari 2005 om 20:25:Om in te gaan op de vraag van ds. Wim, hier zijn een aantal voorbeelden van praktische toepassingen van 'de evolutiegedachte':
(..)
Maar natuurlijk zijn er nog veel meer dingen te bedenken waarin 'de evolutiegedachte' een praktische rol speelt.
De lijst die je hier opnoemt bestaat voor een groot deel uit computer-toepassingen. Alleen de laatste 2 links waren niet informatica-gerelateerd. Dat evolutionaire algoritmen werken, dat is niks nieuws voor mij. Ik heb ze al een aantal keer voor allerlei informatica-vakken nodig gehad. Het concept 'evolutie' is best toepasbaar in computerprogramma's en het werkt ook best wel goed.
Dat komt echter omdat de problemen die ermee opgelost worden, van zeer simpele aard zijn. Het bewijst dus ook niks, alleen maar dat het principe 'evolutie' an sich, werkt voor dat soort problemen. En in soortgelijke situaties in de natuur zullen die principes dus ook wel werken.
een simpel voorbeeldjeEen klein (ietswat simplistisch) voorbeeldje. Stel dat je een een rij van 10 getallen hebt, en die getallen kunnen '1' of '0' zijn (dus een bit-string, een reeks van bits). We zijn nu op zoek naar de reeks met het meeste aantal '1'-en. (
wij weten nu al dat de beste oplossing dus 10 x '1' op een rij zal worden).
fitnessEvolutionair gaat dat als volgt: je hebt allereerst een 'fitness' nodig, een maat waarmee je kan bepalen hoe goed een bepaalde reeks (= oplossing) is. Dat is dus een soort functie, waar je je oplossing in gooit, en je krijgt er een getal uit, wat vertelt hoe goed die oplossing is. Stel dat we de functie "tel de cijfers bij elkaar op" nemen. De reeks 1110000010 heeft dan een fitness van 4, de reeks 1111111101 heeft fitness 9.
startStel dat we een aantal willekeurige reeksen 'verzinnen' (bv door met een munt te gooien -> kop = 1, munt = 0, of random op een computer)
bv:
reeks: fitness
A: 1110000010 -> 4
B: 0000010000 -> 1
C: 1100110101 -> 5
D: 1100000000 -> 2
recombinatieDan gaan we nu wat reeksen recombineren met elkaar. We pakken er steeds willekeurig 2, we kiezen een punt waar we ze door midden snijden, en plakken de helften weer aan elkaar, nadat we ze omgewisseld hebben (dit is maar 1 optie, er zijn veel meer manieren te verzinnen):
kies bv.B en C: ---> hak ze door midden ---> wissel ze om -------------> plak ze vast
B: 0000010000 -----> 0000010 #
000 ------->
0000010 # 101 -----> 0000010101 (noemen we E)
C: 1100110101 ----->
1100110 # 101 -------> 1100110 #
000 -----> 1100110000 (noemen we F)
de nieuwe generatieWe hebben nu 2 nieuwe reeksen gemaakt. We doen dit nog een paar keer, en voegen alle resultaten toe aan de groep:
oud:
A: 1110000010 -> 4
B: 0000010000 -> 1
C: 1100110101 -> 5
D: 1100000000 -> 2
nieuw:
E: 0000010101 -> 3, ontstaan uit B en C
F: 1100110000 -> 4, ontstaan uit B en C
G: 1110010101 -> 6, ontstaan uit A en C
H: 0000100010 -> 2, ontstaan uit A en C
...
...
survival of the fittestEn we kiezen daar de beste helft uit, dan hebben we in dit geval: G, C, A en F, en de rest gooien we weg
G:1110010101 -> 6
C: 1100110101 -> 5
A: 1110000010 -> 4
F: 1100110000 -> 4
onze 'populatie' is nu gemiddeld beter geworden! (6 + 5 + 4 + 4 = 21, en het was eerst: 4 + 1 + 5 + 2 = 12)
mutatiemisschien willen we ook nog wel wat muteren. Dan kiezen we een paar willekeurige plekken, en verwisselen dan de 1 voor een 0 of andersom:
G: 1110010101 -> 1110010101 -> 6
C: 1100110101 -> 1100110101 -> 5
A: 1
11000
0010 -> 1
01000
1010 -> 4
F: 11001
10000 -> 11001
00000 -> 3
We hadden dat 'muteren' ook op een ander moment kunnen doen, of veel meer muteren, of helemaal niet.
enz.Als we nu met deze nieuwe groep weer gaan recombineren, knippen en plakken, dan krijgen we weer een nieuwe groep, enz. Omdat de reeksen met meer 1-en beter zijn, blijven ze in de groep zitten. Een combinatie van 2 goede reeksen levert vaak (maar niet altijd) ook weer een goede reeks op. De slechtste oplossingen (nl. met de meeste 0-en) worden iedere keer weggedaan.
Het mag duidelijk zijn dat we zo na een tijdje alleen nog maar 'goede' reeksen over hebben, met heel veel 1-en erin. Met een beetje geduld hebben we na een tijd de beste oplossing (11111111111) wel gevonden.
Zelfs als er bv in het begin alleen maar 0-en zouden zijn, dan zou die mutatie er wel voor zorgen dat er zo nu en dan wat 1-en ontstaan, en zodra die er zijn, dan hebben ze de voorkeur, en komen er steeds meer.
biologieWat ik hierboven heb beschreven is in het kort hoe 'evolutie' in computerprogramma's werkt. Je bedenkt een manier op een oplossing op een lastig probleem op te schrijven (bv. gecodeerd als een rijtje 1-en en 0-en, of hoe dan ook) en je verzint wat regels voor 'mutatie' en recombinatie, en (heel belangrijk) je verzint een slimme 'fitness' functie, die de goede oplossingen kan herkennen.
Vervang de getallen hier door genen, en de reeksen worden chromosomen. De 'fitness' functie wordt dan 'hoe goed het dier het in de wereld doet', en je zit op het biologische evolutie-model.
Meestal wordt ook gesuggereerd dat dit alles is wat er gebeurt, en het klinkt allemaal heel plausibel. Er is een 'functie' (bv hoe goed je overleeft) die selecteert op goede eigenschappen. De individueen met goede eigenschappen (genen) overleven, krijgen nakomelingen, die zelf ook weer goede eigenschappen hebben. Sommige nakomelingen zijn beter dan hun voorgangers, en zo wordt alles langzamerhand beter.
Het is helemaal niet gek dat dit werkt, het is slechts wat wiskunde en statistiek bij elkaar!
tegenwerpingenWaar lopen creationisten (schepping 7 dagen) en intelligent-design (gestuurde of ontworpen evolutie) aanhangers dan zo over te zeuren als ze zeggen dat evolutie niet kan? Iedereen kan hierboven zien dat he principe werkt?
Maar wat zou er gebeuren met bovenstaand vb. als we een heel andere fitnessfunctie hadden gekozen? Wat nu als we hadden gekozen voor 'het vermenigvuldigen van alle getallen'?
In dat geval zouden alle oplossingen waar minstens een 0 in zit, een fitness van 0 hebben (want met 0 vermenigvuldigen levert altijd 0). De oplossing 1111111111 is nog steeds de beste, maar de rest is allemaal even beroerd.
Nu is er geen reden om de ene oplossing te onderscheiden van de andere.. als we beginnen met wat willekeurige oplossingen, kunnen we hooguit per toeval een keer een rij met alleen 1-en vinden, maar mbv een evolutie-proces komen we er niet. De oplossing 1111111101 (fitness 0) heeft heeft namelijk helemaal geen voordeel t.o.v. bv de reeks 1000000000 (fitness 0) en beide hebben dus evenveel kans om 'in leven te blijven'. De populatie blijft de hele tijd een mix van allerlij verschillende reeksen en er zal niet echt iets zinnigs gebeuren.
het kan nog erger - trap functionsHet wordt zelfs nog beroerder als we weer een andere fitness kiezen. Wat als we de volgende functie kiezen:
geen 0 -> fitness 10
1 x 0 -> fitness 0
2 x 0 -> fitness 1
3 x 0 -> fitness 2
...
9 x 0 -> fitness 8
10x 0 -> fitness 9
Dus helemaal geen nullen is perfect, maar ALS je wel nullen hebt, dan is VEEL nullen beter dan weinig nullen! Een dergelijke fitness-functie wordt een 'trap function' genoemd. Als je met evolutionaire algoritmen werkt, is dit de moeilijkste klasse problemen, en er is niet echt een oplossing voor! Het evolutieproces loopt gewoon 'in de val' en er is niks aan te doen.
Als deze fitness functie gebruikt, dan heeft het meestal meer voordeel om er meer nullen bij te krijgen! Als we dus beginnen met een willekeurige verzameling met 1-en en 0-en, en we gaan bovenstaande evolutie toepassen, dan komen we nooit bij 1111111111 (tenzij die al in het begin aanwezig was), maar we gaan juist steeds meer naar de 00000000000 toe!
hoe ziet biologische evolutie eruit?Als biologische evolutie er uit ziet zoals het eerste voorbeeld (dus "iets dichter bij de beste oplossing, betekent ook een iets betere fitness"), dan is er geen vuiltje aan de lucht.
Als biologische evolutie echter (zelfs al is het maar op enkele plekken) het gedrag van het 2e voorbeeld vertoont (dus een "misleidende" fitness functie die zegt: "oplossing X is het beste, maar oplossingen die dicht bij die beste oplossing liggen, zijn juist heel slecht") dan is er wel degelijk een probleem voor de evolutie-theorie!
Ik denk dat het tweede het geval is. Bepaalde systemen in ons lichaam zijn zo complex en zo foutgevoelig, dat een kleine afwijking dodelijk is. Als er een van de vele genen kapot is, die te maken heeft met het maken van rode bloedlichamen, dan zouden we geen zuurstof kunnen vervoeren. Een mutatie is dodelijk. Een individu met zo'n mutatie haalt het niet tot z'n eigen geboorte!
foutgevoeligAls er 1 fout zit in het maken van bepaalde enzymen om DNA te knippen en plakken, dan zou de hele reproductie van DNA in de soep lopen (
http://www.creationevolution.net/peering_into_darwin.htm). DNA is essentieel voor de voortplanting! Het valt te vergelijken met het willekeurig verwisselen van wat bits en bytes in een groot computerprogramma (bv Microsoft Word) en dan verwachten dat alles nog perfect werkt. Als je iets van weinig belang hebt 'gesloopt' is er niks aan de hand, maar als je iets in de kernfuncties van het programma hebt veranderd, zal het niet eens meer opstarten (sommige computervirussen kunnen zoiets bv doen).
Nog nooit ben ik een evolutionist tegengekomen, die kon uitleggen hoe zo'n complex systeem (bv DNA-replicatie) ineens kon ontstaan uit al z'n losse delen. Er word heel vaak op gewezen dat systemen langzamer complexer worden, doordat ieder stapje dat het systeem ingewikkelder maakt, ook een verbetering in de prestaties behelst (zoals mn eerste voorbeeld). Maar dat mechanisme werkt gewoon niet in alle gevallen, omdat niet altijd geldt: "dichterbij de beste oplossing is altijd beter"!
Sommige systemen, bv DNA, in de biologie zijn niet gradueel te ontwikkelen vanuit simpelere systemen. Ze moeten er eerst niet geweest zijn, en daarna wel. Ze zijn
of ontworpen,
of spontaan ontstaan. Maar de kans dat zoiets complex spontaan ontstaat, is m.i. gewoonweg te klein om rekening mee te houden.
Het aandragen van allerlei voorbeelden waarbij evolutie
wel werkt, heeft bewijskracht, als er ook voorbeelden te vinden zijn waar evolutie gewoonweg niet mogelijk is.