Monday, October 29, 2007

Při experimentu Thompson vytvořil na počítači populaci 50 konfiguračních programů z náhodné posloupnosti nul a jednotek. Počítač každý konfigurační program zavedl do pole FPGA, vytvořil obvod a testoval pomocí určitých charakteristik, jak tento obvod rozlišuje dva tóny, a každý obvod ohodnotil. Genetický algoritmus pak odstranil nevyhovující obvody. Pak počítač zkombinoval různé vyhovující obvody vzájemnou záměnou částí jejich konfiguračních programů a konečně vložil do několika programů nepatrné náhodné chyby jako náhodné mutace. Tím se celý cyklus uzavřel a mohla začít další generace.
Počínaje 220. generací nejlepší obvody vytvářely výstup téměř identický se vstupem, tedy vlnění odpovídající kmitočtům 1 kHz a 10 kHz a nikoliv stabilní napětí 0 nebo 5 voltů. Počínaje 650. generací obvody vytvářely stabilní napětí 5 voltů pro kmitočet 1 kHz, ale vlnění pro kmitočet 10 kHz. Počínaje 1400. generací obvody vytvářely většinou napětí 5 voltů pro kmitočet 1 kHz a napětí 0 voltů pro kmitočet 10 kHz. Počínaje 2800. generací nejlepší obvody již přesně rozlišovaly mezi oběma kmitočty, ale občas se ještě rozkmitaly a počínaje 4100. generací všechny obvody pracovaly bezchybně. Od této generace se již neobjevovaly žádné změny.
Jakmile jednou obvod FPGA je schopen rozlišovat mezi dvěma tóny, jeho evoluční vývoj může pokračovat, až je schopen např. rozlišovat mezi slovy "GO" a "STOP". Jakým způsobem vlastně tento evoluční vývoj probíhá? Pokud by stejný problém měl řešit zkušený odborník, považoval by za součást zapojení hodinový obvod. Aby tranzistory vytvářely nebo indikovaly nějaký tón, musí se periodicky překlápět z jednoho stavu do druhého. Odborník navíc musí použít hodiny pro počítání kmitočtu vstupních tónů.