AI wordt ingezet om problemen op te lossen. Een groot onderdeel van AI richt zich dan ook op algoritmes die gebruikt worden om systemtisch de wereld om hun heen te onderzoeken naar mogelijkheden om dichter bij een oplossing te komen.
Er zijn talloze manieren van zoeken, de een is beter dan de ander. Daarbij spelen drie aspecten een rol:
- Als je zoekalgoritme uitvoert, hoe zeker is het dat je een oplossing vindt?
- Hoe snel wordt de oplossing gevonden?
- Hoeveel kost het om de oplossing te vinden (hoeveel resources)
Computer zijn machines die symbolen bewaren en bewerken. Zoekalgoritmes in computers hebben dus één ding met elkaar gemeen ze zoeken een specifike combinatie van symbolen die we 'de oplossing' noemen.
De combinaties van alle mogelijke symbolen noem ik maar even 'totale zoekomgeving' Overigens zijn er altijd regels die nog voorafgaand aan het zoekalgoritme het aantal symbolen en combinaties ervan beperken.
We hebben het over een alfabet wanneer we het over een opsomming van de verschillende symbolen die gebruikt en gecombineerd mogen worden en over een grammatica wanneer we het hebben over regels die beperkingen opleggen aan mogelijke combinaties van symbolen.
Let op. Ik heb het hier niet alleen over teksten, maar ook over bijvoorbeeld verkeersborden. Ook hier is een alfabet van te maken. Welke vormen gebruikt mogen worden en een grammatica die aangeeft welke combinaties van vormen kunnen.
De combinaties die mogelijk zijn op basis van het alfabet en een grammatica is de zoekruimte waarbinnen een oplossing moet worden gevonden.
wanneer we dus in AI over oplossingen spreken hebben we twee beteknissen. Oplossing in de zin van de gevonden combinatie van symbolen. Deze combinatie van symbolen wordt vervolgens op één of andere manier gebruikt wordt in in de werkelijke wereld iets te veranderen. Deze verandering, dit effect wordt ook vak als oplossing aangeduidt.
zondag 22 oktober 2017
Boter Kaas en Eieren (een tussenstap)
Het maken van een programma dat een op een beetje intelligente manier vier op een rij kan spelen, is mij tegengevallen. Een stuk complexer dan ik aanvankelijk aannam.Ik had bedacht dat ik het 4 op een rij programma in onderstaande stappen kon maken, maar de overgang tussen stap 2 en 3 was te groot.
Stap 1. Vier op een rij met twee menselijke spelers. Dit lijkt mij de meest eenvoudige versie om te maken
Stap 2. Vier op een rij waarbij de gebruiker tegen een (zeer simpele) AI-agent speelt. De AI-agent weet enkel wat geldige zetten zijn (kies een kolom tussen 0 en 7 en die niet vol is).
Stap 3. Vier op een rij waarbij de gebruiker tegen een iets intelligentere agent speel. Deze agent kent ook de geldige zetten, maar kijkt ook naar de stand van het bord om zijn keuze te maken.
Stap 4. De agent kijkt niet alleen naar geldige stappen en maakt een inschatting wat de beste volgende stap. Deze agent houdt bij zijn inschatting ook rekening met 2 of meer toekomstige stappen van hem en zijn tegenstander.
Daarom ben ik teruggevallen op Boter Kaas en Eieren. De regels van dit spel zijn eenvoudiger en dat maakte dat het wel lukte om alle vier de stappen te nemen. Zie de broncode hier.
De grenzen van deze programmeur
Om een AI programma te maken voor een spel als Vier op Rij heb, je verschillede soorten kennis nodig:
- kennis van computers en de programmeertaal
- kennis van algoritmen die zoeken en redeneren en met onzekerheid om kunnen gaan
- kennis van de omgeving / het domein waar de agent komt te functioneren
Overpeinzingen van de programmeur
Ik merk dat ik geduld kan opbrengen om kennis op te doen ten aanzien van de eerste twee punten, het precies uitspitten van de mogelijke situaties die bij Vier op Rij spelen, heb ik veel minder geduld.
Concreet in stap 3 moet de agent de opstelling van het bord analyseren om tot een goede inschatting te komen van de beste beslissing. Het bedenken en implementeren van een dergelijk algoritme dat voldoende intelligent is, vind ik een behoorlijk lastige klus en ik het kan mij niet genoeg boeien omdat het zo'n specifiek probleem gaat.
Ik heb wel een poging gewaagd. Zie hier.
Stap 1. Vier op een rij met twee menselijke spelers. Dit lijkt mij de meest eenvoudige versie om te maken
Stap 2. Vier op een rij waarbij de gebruiker tegen een (zeer simpele) AI-agent speelt. De AI-agent weet enkel wat geldige zetten zijn (kies een kolom tussen 0 en 7 en die niet vol is).
Stap 3. Vier op een rij waarbij de gebruiker tegen een iets intelligentere agent speel. Deze agent kent ook de geldige zetten, maar kijkt ook naar de stand van het bord om zijn keuze te maken.
Stap 4. De agent kijkt niet alleen naar geldige stappen en maakt een inschatting wat de beste volgende stap. Deze agent houdt bij zijn inschatting ook rekening met 2 of meer toekomstige stappen van hem en zijn tegenstander.
Daarom ben ik teruggevallen op Boter Kaas en Eieren. De regels van dit spel zijn eenvoudiger en dat maakte dat het wel lukte om alle vier de stappen te nemen. Zie de broncode hier.
De grenzen van deze programmeur
Om een AI programma te maken voor een spel als Vier op Rij heb, je verschillede soorten kennis nodig:
- kennis van computers en de programmeertaal
- kennis van algoritmen die zoeken en redeneren en met onzekerheid om kunnen gaan
- kennis van de omgeving / het domein waar de agent komt te functioneren
Overpeinzingen van de programmeur
Ik merk dat ik geduld kan opbrengen om kennis op te doen ten aanzien van de eerste twee punten, het precies uitspitten van de mogelijke situaties die bij Vier op Rij spelen, heb ik veel minder geduld.
Concreet in stap 3 moet de agent de opstelling van het bord analyseren om tot een goede inschatting te komen van de beste beslissing. Het bedenken en implementeren van een dergelijk algoritme dat voldoende intelligent is, vind ik een behoorlijk lastige klus en ik het kan mij niet genoeg boeien omdat het zo'n specifiek probleem gaat.
Ik heb wel een poging gewaagd. Zie hier.
Abonneren op:
Posts (Atom)