Naturligt urval mot slump

av Anders Hesselbom

Ett kreationistiskt argument används som slagträ mot evolutionsteorin är ”hur kan slumpen ha skapat X”, där X kan vara precis vad som helst, som t.ex. alla varelser, ögat eller hela jorden.

Att slumpen inte kan skapa ett avancerat organ som t.ex. ett öga, är helt korrekt. Men Gud eller något annat övernaturligt väsen, är inte det enda tänkbara alternativet till slumpen, det är en falsk dikotimi. Evolutionsteorin tillhandahåller en bättre förklaring: Slumpmässig förändring över tid med ett naturligt urval.

Här är det inte slumpen som skapar, men slumpen är en faktor. En liten förändring från en generation till en annan, kan orsakas av slumpen, men det är andra faktorer som avgör om den förändringen förs vidare. Om förändringen innebär ökad chans för överlevnad eller ökad chans att få föra sitt arvsanlag vidare, och så vidare. I nästa generation kan den förändringen förändras, och om det innebär ytterligare en fördel, ökar chansen att den förändringen förs vidare, annars inte.

Det går lätt att bevisa att slumpen är mycket mindre effektiv än det naturliga urvalet. Om vi nu tänker oss att kriteriet för att en förändring ska vara positiv i naturen, är att individen överlever eller får föröka sig, så kan vi tänka oss att kriteriet för att en förändring ska vara positiv i en datorsimulering ska vara att en bokstav ingår i en mening. Meningen kan vara ”EMPIRISKT BEVIS FÖR EVOLUTION”, skrivet i versaler. Men först ett förtydligande:

Denna simulering jämför den nya informationen med målet. Evolutionen arbetar egentligen mot ett okänt mål, i naturen får man se om en förändring är bättre eller sämre på om det ger ökad chans till överlevnad.

Mål

EMPIRISKT BEVIS FÖR EVOLUTION

Slump

XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Evolution

XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Antal generationer

0

Efter att du klickat på startknappen borde du se slumpen och evolutionen arbeta, och om inte evolutionsteorin är helt felaktig, borde evolutionen med det naturliga urvalet göra jobbet mycket bättre än slumpen.

Så här ser källkoden ut:

//Initiera variablerna som behövs för experimentet
var antalGenerationer=0;
var strTarget   ="EMPIRISKT BEVIS FÖR EVOLUTION";
var strRandom   ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var strEvolution="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

function nextGeneration(){
   //Räkna antal generationer
   antalGenerationer++;

   //Slumpen: Välj en bokstav slumpmässigt och
   //ersätt den med en annan
   var nextRandomGeneration="";
   //Slumpen avgör vilken bokstav som ska ersättas
   var c1=Math.round(Math.random()*(strTarget.length-1));
   //Bygg en ny individ
   for(var i=0;i<strTarget.length;i++){
      if(i==c1) nextRandomGeneration+=getRandomChar();
      else nextRandomGeneration+=strRandom.substring(i,i+1);
   }
   strRandom=nextRandomGeneration;

   //Naturligt urval: Välj en bokstav slumpmässigt och
   //ersätt den med en annan
   var nextEvolutionGeneration="";
   //Slumpen avgör vilken bokstav som ska ersättas
   var c2=Math.round(Math.random()*(strTarget.length-1));
   //Bygg en ny individ
   for(var i=0;i<strTarget.length;i++){
      if(i==c2) nextEvolutionGeneration+=getRandomChar();
      else nextEvolutionGeneration+=strEvolution.substring(i,i+1);
   }
   //Om mutationen inte är en nackdel, för den vidare till nästa
   //generation. Annars, låt den nya individen dö.
   if (fitness(nextEvolutionGeneration)>=fitness(strEvolution))
       strEvolution=nextEvolutionGeneration;

   //Presentera informationen i webbläsaren
   document.getElementById("elementRandom").textContent=strRandom;
   document.getElementById("elementEvolution").textContent=strEvolution;
   document.getElementById("elementGenerations").textContent
      =antalGenerationer;

   //Kontrollera om någon har vunnit, annars gå till nästa generation
   if(strRandom==strTarget)
      alert("Slumpen vann efter " + antalGenerationer +
         " generationer.");
   else if(strEvolution==strTarget)
      alert("Evolution vann efter " + antalGenerationer +
         " generationer.");
   else
      setTimeout("nextGeneration();",10);
}

//En funktion som ger en slumpad bokstav (används både av
//evolution och slump - denna bit är gemensam.
function getRandomChar(){
   var b="ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ ";
   var r=Math.round(Math.random()*(b.length-1));
   return b.substring(r,r+1);
}

//Poängsätt den nya generationen. I verkligheten får man inte
//poäng, utan undviker att dö och lyckas föra arvsanlaget vidare.
function fitness(str){
   var score=0;
   for(var i=0;i<strTarget.length;i++)
      if (str.substring(i,i+1)==strTarget.substring(i,i+1))
         score++;
   return score;
}

Alltså, att slumpen inte kan skapa människan, ögat eller vad som helst, är korrekt, men det är varken ett argument för eller emot evolutionsteorin. Teorin säger inte att slumpen allena kan skapa nya organ, men små förändringar över tid som ställs mot ett urval. Exemplet ovan visar att evolutionen mycket väl kan skapa en struktur, om de slumpmässiga förändringarna utsätts för ett urval, i detta fall en förutbestämd text.

John H. Conway

Professor John Horton Conway är en brittisk matematiker vid Princeton University, mest känd för sin uppfinning Game of Life (Life), som är en mycket enkel livssimulator. År 1970 presenterade Conway en implementation av Life tillsammans med en artikel där han förklarade spelets koncept. (Life är ett ”spel” med utan spelare.) Life skiljer sig från tidigare exempel genom att urvalet inte är en bestämd text. Urvalet upprätthålls istället av regler som skulle kunna liknas vid naturlagar.

Spelplanen består av en matris med punkter som kan vara tända eller släckta (0 eller 1). Spelet utspelar sig alltså på en 2-dimensionell yta. Tre regler appliceras gång på gång på punkterna (fortsättningsvis cellerna) i matrisen, så att de tänds eller släcks. För att spelet ska komma igång, måste man slumpa ut ett antal punkter på spelplanen. Reglerna som appliceras är följande:

1. En cell föds om den har tre grannar. (Eftersom detta utspelas på ett rutnät, kan en cell ha nio grannar.)

2. En cell dör om den har 0 eller 1 granne. Den dör även om den har 4 eller fler grannar.

3. En cell som har 2 grannar överlever. Alltså, en släckt ruta förblir förvisso släckt, men en tänd förblir tänd.

När dessa regler appliceras, formar cellerna strukturer. De instabila strukturerna försvinner, eftersom reglerna säger att celler med ”fel” antal grannar dör. De flesta strukturer är instabila, och lever bara i några generationer. Vissa strukturer blir till enkla, stabila strukturer. Dessa strukturer kan förbli stabila för all framtid. Vissa strukturer blir avancerade. Det finns avancerade strukturer som kan konsumera enklare strukturer, ge ifrån sig (”skjuta ut”) andra strukturer, och röra sig över spelplanet.

Strukturen LWSS

Spelet visar alltså strukturer som skapats genom att regler appliceras på en matris av tända och släckta rutor. De strukturer som överlever, är de strukturer som är bäst anpassade till miljön strukturerna existerar i. Miljön i detta fall är vår matris och de regler vi applicerar på cellerna. En förförande tanke är, att något intelligent har skapat de mest komplexa strukturerna, men precis som vi vet från naturen, är strukturer som får konstruera sig själv genom självreplikering, de mest avancerade strukturerna.

Det intressanta med Life är att vi känner till alla komponenter i spelet. Visst har en intelligent person skapat miljön (spelplanen och reglerna), men de tre reglerna vi applicerar på de slumpvis placerade cellerna, är inte på något vis en implementation av någon form av intelligens. Resultatet däremot, blir komplexa strukturer som tävlar på den begränsade spelplan vi tillhandahållit. Detta anspråk gör även evolutionsteorin. Vi har en befintlig miljö, vars ursprung kan förklaras av t.ex. kosmologin eller av Bibeln (beroende på om man är på jakt efter en vetenskaplig eller religiös modell), men miljön som sådan är en förutsättning för Life, precis som det är för evolutionsteorin.

Om du har Java installerat, kan du provköra Life online här.

Kommentarer inaktiverade.