Zachte hardware

MYTHEN OVER hoogmoed en ambitie gaan altijd over vliegen. Dat is gek, want vliegen is wel een diepgekoesterde wens, maar zeker niet de stoutste droom die mensen hebben. Dat is namelijk: god zijn. Geef toe, ook u heeft weleens bedacht hoeveel beter de wereld er voor zou staan als u het voor het zeggen had.

Al sinds de oudheid was er maar een klasse mensen die die droom een beetje kon waarmaken. Dat waren de fokkers en kwekers. Door eindeloos moeizaam kruisen en selecteren maakten zij nieuwe varianten van bestaande soorten, en soms zelfs nieuwe soorten. Ze plasten rond in het pierebadje van de evolutie, terwijl god met machtige slagen in zijn eentje zijn baantjes trok in het Darwinistische diepe.

Maar toen kwam de computer, en alles veranderde. Want een computer is niets anders dan een kast om een heel nieuwe wereld. Een virtuele wereld van bits en bytes die, zolang er stroom komt uit het stopcontact, helemaal los staat van de wereld waarin wij leven. Het is een woeste en ledige wereld, waarin de programmeur de wateren scheidt, het licht doet schijnen, en geheel naar eigen inzicht de menagerie van creaturen ontwerpt die de computer voor gebruikers een zinvol of amusant apparaat maken. Dat maakt het ontwerpen van software zo aantrekkelijk: je bent niet alleen een god in het diepst van je gedachten, maar ook in de toppen van je vingers. Jouw wil is, gegeven voldoende kennis, handigheid en doorzettingsvermogen, wet.

De natuurwetten van de computerwereld zijn de eigenschappen van de hardware, zodat ontwerpers van hardware, van processors, geheugenchips, controllers, videokaarten en monitoren, een kaste van supergoden vormen. Supergoden met een macht die in het echte universum ongehoord is, want zij kunnen, domweg door iets nieuws te ontwerpen, de natuurwetten van de digitale wereld in een handomdraai veranderen. Er zij kleur! En er was kleur.

Hoewel softwaremakers inmiddels een hele ark van Noach aan nuttige, interessante en amusante toepassingen in elkaar knutselden, van priemgetallenzoekers tot tekstverwerkers, en van statistische wonderknechtjes tot spellen als Quake, bleken er toch heel wat dingen te zijn waarop zij hun tanden braken. Alledaagse mensenkunsten als beeld- en spraakherkenning bleken vrijwel ongrijpbaar, evenals sommige ontwerptaken en gedrag dat we als 'intelligent' zouden kunnen omschrijven. En wat doe je dan als slimme computerjongen? Dan vraag je je af hoe je grote voorganger het in de echte wereld heeft opgelost.

Het antwoord daarop luidt: met evolutie, dat proces van vallen en opstaan, dat uiteindelijk soorten oplevert die perfect passen in hun omgeving. Een kwestie van selecteren, kruisen, en een snufje willekeurige mutaties voor de creativiteit. Dat konden de computeraars ook, dachten ze. En efficiënter, want zij wisten wat het eindresultaat moest zijn. Ze konden hun evolutieproces doelgericht sturen.

Daarmee begon het evolutionair ontwerpen. Eenvoudig gezegd houdt dat in dat je met een hele zwik varianten van een vrij willekeurig opgezet (dus onzinnig) programmaatje begint, en dan kijkt welk van die varianten bij een gegeven invoer het best reageren. Die beste varianten kruis je tot een nieuwe generatie varianten, en zo voort, tot je hopelijk iets overhoudt dat precies doet wat de bedoeling is. Het lijkt een stomme, inefficiënte manier van doen, maar soms levert het resultaten op die op geen andere manier te verkrijgen zijn. Nadeel is dat je wel ziet dat je programma werkt, maar niet weet hoe.

Tot nu toe was evolutionair computeren vooral een softwarekwestie, maar inmiddels zijn er mensen als Adrian Thompson van de universiteit van Sussex, die op net zo'n manier proberen om hardware te ontwerpen. Het begon een paar jaar geleden met een allang bestaande instelbare processor, de Xilinx XC6216. De schakelingen op die chip kun je softwarematig veranderen, zodat hij op heel veel verschillende manieren kan werken. De XC6216 was bedoeld voor gebruik in prototypen, om ontwerpfouten snel te kunnen herstellen en te kunnen experimenteren zonder dat voor elke aanpassing een hele nieuwe kostbare serie vaste chips gebakken hoefde worden. Thompson was een van degenen die bedachten dat je zo'n chip ook zelf kon laten uitvissen hoe hij voor een bepaalde taak moest worden geconfigureerd, gewoon door eindeloos proberen, en de beste configuraties te selecteren en te kruisen. En hij heeft enig succes, meldt het Amerikaanse blad Discover. Zijn chip kan nu twee tonen, 'boem' en 'piep' van elkaar onderscheiden, en doet dat met een veel kleiner aantal schakelingen dan een gewoon programma voor die taak zou gebruiken. Maar veel intrigerender is dat de gebruikte schakelingen op de chip soms niets met elkaar te maken lijken te hebben. Het is alsof tien mensen op Ameland en twee op Schiermonnikoog zonder contact met elkaar te hebben een piano in Leeuwarden laten klinken. Thompson denkt dat er toch contact is. Door elektromagnetische koppeling, bijvoorbeeld, het verschijnsel dat elektromagnetische elementjes die heel dicht naast elkaar liggen, zoals de microscopisch kleine schakelingen op een chip, elkaar zonder fysiek contact kunnen beïnvloeden. Of misschien ook via de siliciumlaag waarin de chipschakelingen liggen ingebed. Of misschien door nog andere, onbekende eigenschappen van het materiaal van de chip. In zijn boem-piep-chip vloeien hard- en software dus naadloos in elkaar over. Het onderscheid ertussen is eigenlijk weg, en dat is uniek.

Aan de andere kant wordt dat soort beïnvloeding gewoonlijk door chipontwerpers gevreesd en gehaat, want het is een bron van storingen. En het maakt Thompsons chip ook wel heel instabiel. Hij werkt al niet meer als de temperatuur een stukje stijgt. Ook krijgt Thompson een andere, identieke Xilinx-chip die op precies dezelfde manier geconfigureerd is, gegarandeerd niet aan de praat. Maar die moeilijkheden zijn juist waar Thompson zijn hoop op gevestigd heeft: de oplossing daarvan zou wel eens kunnen leiden tot technieken om apparaten te bouwen die extreem ongevoelig zijn voor storingen en produktiefoutjes. En dat is veel mooiere toekomstmuziek dan alleen maar piep-boem.

    • Rik Smits