Följande är ett svar på ett inlägg i tråden om Theobalds argument för gemensamt ursprung
http://www.credoakademin.nu/index.php/forums/viewreply/25690/
tirian, #319:
Det är nog mitt fel att debatten i den tråden dött, men jag tycker det är svårt att få fram det jag som programmerare tycker är enkla sanningar. Och jag har nog gett upp lite att det ska gå, tyvärr.
Jag kan bara här lyfta fram vissa saker som du och jag kanske är oense om.
Principiellt ser jag inte att den genetiska algoritmen är annorlunda från andra sök eller optimering algoritmer. Det enda som skiljer den är på vilket sätt man tar fram kandidater som ska väljas ut. Men samma urvals mekanism går att använda i en simpel quicksort algoritm, om man skulle vilja sortera i någon slags ordning från bättre till sämre individer. Så det krävs lika ‘mycket’ eller ‘lite’ kunskap om problemet vid en sådan enkel sortering.
Dessutom är selekteringen matematiskt formaliserad, något som man inte kan beskylla det naturliga urvalet för att vara.
Dessutom ingår alltid genetiska algoritmer i ett designat program med både mål och syfte. Och ett genetiskt program kommer endast generera de resultat programmet är designat för.
Nej, vi är definitivt inte överens och om du vill kan vi fortsätta diskussionen i tråden om Genetisk Programmering.
Visst är det lockande, men jag vet inte om vi förstår varandra tillräckligt bra för att kunna föra en bra debatt om det. Som programmerare känner jag viss frustration över att enkla sanningar om programmering inte kan förmedlas på ett enkelt och lättförståeligt sätt. Vi skulle behöva sitta ner och skriva ett genetiskt program tillsammans, det skulle säkert göra saker enklare att förstå.
.
Först vill jag nämna att även jag har sysslat en hel del med programmering - många år av främst assemblerprogrammering och även som ansvarig för en grupp om fem programmerare. Jag har dock inte skrivit i Java eller C++ eller andra objektorienterade språk. Men det bekymrar mig att du lägger så stor vikt vid programmering när det snarare är systemeringskunskaper som krävs. Vad vi bör diskutera är algoritmer och inte kodning och annat implementeringsnära. Jag har noterat att du ett flertal gånger kommit in på helt irrelevanta implementeringsaspekter och jag har tagit upp algoritmdiskussionen flera gånger men har inte fått särkilt mycket gehör för det. Sitta ner och koda algoritmerna kommer inte att ge något av intresse i sammanhanget.
—-
Angående ditt påstående:
Jag har försökt (flera gånger) att påpeka att det finns väsentliga skillnader mellan genetisk programmering och mikroevolution. En sådan är att mikroevolution påverkar själva koden medan genetiska program har en kod som är statisk och som (med avsikt) inte påverkas av förändringarna.
.
Hmm, såvitt jag ser så nämner du ordet ‘mikroevolution’ först i inlägg 41 men då i ett annat sammanhang så jag förstår inte vad jag missat. Inlägg 29, 32 och 39 vänder sig dessutom till andra än till mig så de har jag nog inte läst så noga - jag har haft nog med att bemöta dina inlägg till mig.
Först en liten förvirring från min sida. Det skulle ha stått evolution och inte mikroevolution. Ursäkta om det gjorde det hela svårt att läsa. Sen ser jag även att du har rätt att de flesta inläggen om självmodifierande kod inte är riktat till dig, så då förstår jag bättre att du missat det.
Så det jag ville ha sagt är att ett exempel på en väsentlig skillnad mellan genetisk programmering och evolution är att evolution lagrar förändringar i DNA koden som innehåller både data och instruktioner. Genetiska program å andra sidan lagrar förändringar i en separat minnesdel som är medvetet skild från den del som innehåller själva instruktionerna för vad som ska göras. Inom programmering kan man iofs göra program som modifierar instruktioner också (självmodifierande program), men inom genetisk programmering används inte den tekniken för att det skulle leda till att instruktionerna hela tiden skulle sluta fungera. Du kan inte slumpmässigt börja ändra de instruktioner som beskriver den genetiska algoritmen utan att riskera att den genetiska algoritmen förstörs.
Jo det är en viss skillnad men jag ser inte att den är principiell. Det genetiska programmet skulle också kunna lagra koden bland data. Hypotetiskt skulle detta kunna medföra att koden förbättras men som du säger skulle resultatet säkert bli att det totala prestanda skulle försämras avsevärt. Om man vill producera lösningar så blir det en ineffektiv metod. På mycket lång sikt skulle det kanske vara så att det är effektivt att lägga koden bland data eftersom det ger möjlighet att koden förbättras och det är kanske anledningen till att det är så det är för biologisk evolution.
Gunnar