Dit ben ik: Vincent Groenhuis. Naast het spelen van familiespellen (zoals hier Sieder=Kolonisten) had ik dit jaar natuurlijk ook zin om aan het Windesheim-toernooi mee te doen. Niet omdat ik de laatste twee keren 3e en 2e ben geworden, maar gewoon omdat ik het een erg leuk toernooi vind. Het grootste probleem in het programma was, dat ik niet wist welke strategie het beste zou zijn. Het gaat vooral om het beoordelen van een stelling: hoe beter een stelling gewaardeerd wordt na een bepaalde zet, des te beter kun je die zet spelen. Je kunt bijvoorbeeld kijken naar het aantal sterke en zwakke stenen, het totale aantal vluchtvelden of verhouding daarvan, het aantal stenen, het minimale aantal zetten dat nodig is om te winnen, de aanvalsfactor, enzovoorts. Deze zijn niet allemaal even belangrijk. Er is voor elk onderdeel een wegingsfactor nodig, die experimenteel bepaald kan worden. Die experimentele bepaling heb ik maar wat groot opgezet. Een automatische toernooi-organisator maakt een lijst met verschillende algoritmes, of liever verschillende combinaties van wegingsfactoren. Elk algoritme speelt in een dubbelrondig toernooi tegen elk ander algoritme. Na elke ronde wordt de verliezer bepaald, die gaat eruit. In die plaats komt een algoritme met (andere) random instellingen erin. Meestal werkt het toernooi-programma met zo'n 8 verschillende deelnemers(=algoritmes) tegelijk. In een nacht kunnen dan tientallen ronden gespeeld worden, even zoveel keer wordt een slecht algoritme eruit gegooid, een random algoritme erbij gezet, en krijgen de beste 1 of 2 algoritmes steeds meer punten. De volgende dag schrijf ik dan op welke algoritme(s) bovenaan zijn geeindigd, en na een paar dagen, wat honderden toernooi-ronden met duizenden partijen betekent, bekijk ik dan de verschillende toernooi-winnaars en vergelijk ik hun strategie (=wegingsfactoren) met elkaar. Daar kwamen enkele verrassende conclusies uit. Het belangrijkste was dat de sterkste algoritmes het niet zo goed vonden om in het begin meteen maar op een veilig veld te gaan staan, maar ze zetten liever gewoon random een steen ergens op het bord, liefst dichtbij het centrum. Dit werd de basis voor nader onderzoek en een fijnere openingsstrategie. Waarom begint een sterk algoritme niet gewoon op een veilig veld? Kijk maar naar de structuur: de veilige velden liggen niet dicht bij elkaar, maar vormen afzonderlijke eilandjes. Een goed algoritme bouwt liever meteen een sterk centrumgebied op, omdat de stenen dan meer met elkaar samenhangen, elkaar beter kunnen dekken en vanuit het centrum een sterkere positie inneemt. Toen heb ik het programma zelf nog wat verbeterd. Er bleken namelijk wat foutjes in te zitten, en het had nog erg veel tijd over. De tactiek werd wat verbeterd door in bepaalde gevallen dieper vooruit te denken, ook werd wat meer op de verschillende kleuren gelet bij het bepalen van het aantal vluchtvelden. Daarna ben ik de openingsstrategie wat aan het uitwerken. Ik kan me voorstellen dat de meeste deelnemers de veilige velden (b2,b5,e2,e8,h2,h5) goede velden vinden. Dus als ik deze velden niet ga bezetten in de eerste 12 zetten, dan kan ik ervan uitgaan dat de tegenstander die zes velden gaat bezetten. Zo kan ik van tevoren voorspellen hoe het bord na 12 zetten er (meestal) uit ziet, en de strategie daarop aanpassen. Goed, hier de openingsstrategie: het programma bezet in de eerste zes zetten de velden c4,d3,f3,g4,f6 en d6, als de tegenstander de veilige velden b2,e2,h2,h5,e8 en b5 bezet. Als het programma nu aan zet is, dan zet die op e5 waarna hij een ijzersterk centrum krijgt. Als de tegenstander aan zet is, dan is e5 het enige veld met meer dan 4 vluchtvelden. Een gemiddeld algoritme zoekt waarschijnlijk naar zetten met zoveel mogelijk vluchtvelden, en zal in dit geval dus op e5 zetten. In het laatste geval is er een vreemde stelling ontstaan: mijn programma heeft een grote (open) ringstructuur opgebouwd, de tegenstander heeft 7 losse eilandjes. Het middelste eilandje, de steen op e5, staat bijzonder zwak omdat het op afstand volledig is ingesloten door de stenen van mijn programma. Die steen probeert het programma dan te pakken, omdat die ver van zijn eigen andere stenen af ligt en daarom lastig is te verdedigen. Een goede tegenstander kan zijn steen op e5 echter wel redden, waarbij een leuke tactische partij kan ontstaan. Maar een zwakke tegenstander wordt meteen afgemaakt, als die het nalaat om zijn steen op e5 voldoende te dekken, of door een andere combinatie. Het programma is (helaas of gelukkig?) nog niet helemaal perfect. Soms ziet hij een vervelend zetje over het hoofd, soms doet het zo'n rare zet die een mens nooit zou doen, soms verliest het op eenvoudige wijze van mij, maar meestal doet-ie het wel goed. Het belooft wel een leuk toernooi te worden! Ik zou het leuk vinden om met andere deelnemers te kunnen mailen of chatten. Zo kun je me bereiken: E-mail: v.groenhuis@home.nl ICQ#: 42362087 |