{"componentChunkName":"component---src-templates-section-template-js","path":"/nl/2/2","result":{"data":{"markdown":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Intermezzo over de geschiedenis van AI: het begon met zoeken"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Je kunt stellen dat AI zo oud is als de informatica. Lang voordat we computers kregen, dachten mensen al na over de mogelijkheden van automatisch redeneren en intelligentie. Zoals we in hoofdstuk 1 al zeiden, is Alan Turing één van de grote denkers die zich met dit vraagstuk heeft beziggehouden. Behalve de Turingtest bestaan zijn bijdragen aan AI – en aan de informatica in het algemeen – onder meer uit het inzicht dat alles wat te berekenen is (d.w.z.: wat berekend kan worden met behulp van hetzij cijfers dan wel andere symbolen) geautomatiseerd kan worden."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Bijdrage aan het winnen van WOII","description":"Turing ontwierp een bijzonder eenvoudig apparaat dat alles kan berekenen wat er maar te berekenen valt. Dit apparaat staat bekend als de Turingmachine. Hoewel het een theoretisch model betreft zonder praktisch nut, bracht het Turing tot de ontdekking van programmeerbare computers: computers die gebruikt kunnen worden om verschillende opdrachten uit te voeren, afhankelijk van de taak waarvoor ze geprogrammeerd zijn.<br><br>Dus in plaats van voor iedere taak een ander apparaat te moeten bouwen, gebruiken we dezelfde computer voor meerdere taken. Dit is het idee achter programmeren. Tegenwoordig klinkt dat als een onbeduidende uitvinding, maar in de tijd van Turing was dat allerminst het geval. Enkele van de vroegste programmeerbare computers werden in de Tweede Wereldoorlog gebruikt voor het kraken van geheime Duitse codes, een project waarbij Turing ook persoonlijk betrokken was."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Het begrip artificiële intelligentie wordt meestal toegeschreven aan John McCarthy (1927-2011) – vaak ook de vader van AI genoemd – maar zelf ontkent hij het begrip te hebben bedacht. Niettemin speelde hij een belangrijke rol bij de overname van het begrip als naam voor het nieuwe wetenschapsgebied. Het begrip raakte ingeburgerd toen AI werd gekozen tot thema van een zomerseminar, bekend als de "},{"type":"element","tagName":"a","properties":{"href":"https://en.wikipedia.org/wiki/Dartmouth_workshop","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Dartmouth-conferentie"}]},{"type":"text","value":" die door McCarthy werd georganiseerd en in 1956 op het Dartmouth College in New Hampshire werd gehouden. In het voorstel voor het organiseren van het seminar bouwde McCarthy voort op de redenering van Turing over geautomatiseerd rekenen. Het voorstel bevat de volgende cruciale opmerking:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"De kernboodschap van John McCarthy over AI","description":"”Het onderzoek moet plaatsvinden op grond van de hypothese dat alle aspecten van leren of andere kenmerken van intelligentie in beginsel zo gedetailleerd kunnen worden beschreven dat ze door een machine kunnen worden nagebootst.”"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Met andere woorden, elk aspect van intelligentie kan worden opgedeeld in kleine stapjes, zodat ieder stapje op zichzelf zo eenvoudig en “mechanisch” is dat het in de vorm van een computerprogramma kan worden geschreven. Deze bewering was – en is vandaag nog steeds – een hypothese, wat inhoudt dat we niet echt kunnen bewijzen dat zij waar is. Niettemin is het een fundamenteel idee als het gaat om hoe we over AI denken. Het laat bijvoorbeeld zien dat McCarthy argumenten in de trant van de Chinese kamer van Searle voor wilde zijn: intelligentie is intelligentie, zelfs als het systeem dat die intelligentie toepast slechts een computer is die op mechanische wijze een programma uitvoert."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Waarom zoeken en spellen centraal kwamen te staan in onderzoek naar AI"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toen de ontwikkeling van computers in de jaren 1950 zo ver was gevorderd dat het doenlijk was om met praktische AI-algoritmen te experimenteren, bestonden de meest in het oog springende problemen op het vlak van AI (naast het kraken van de nazicodes) uit spelletjes. Spelletjes vertegenwoordigden een geschikt domein van beperkte omvang dat makkelijk geformaliseerd kon worden. Bordspellen als dammen, schaken en – zoals recentelijk de aandacht trok – Go (een uiterst ingewikkeld strategisch bordspel van Chinese origine met een geschiedenis van ten minste 2500 jaar) waren en blijven voor ontelbare onderzoekers een bron van inspiratie."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Op het nauw aan spellen verwante onderzoeksterrein met betrekking tot technieken voor zoeken en plannen werden in de jaren 60 grote vorderingen gemaakt. Destijds ontwikkelde algoritmen met namen als het “Minimax-algoritme” of “Alpha-Beta Pruning” vormen nog steeds de basis voor AI die spelletjes speelt, hoewel er natuurlijk in de loop der tijd geavanceerdere varianten zijn voorgesteld. In dit hoofdstuk bestuderen we spellen en planningsproblemen op conceptueel niveau."}]}],"data":{"quirksMode":false}},"frontmatter":{"path":"/nl/2/2","title":"Problemen oplossen met AI","section":2,"part":2,"lang":"nl"}},"allRelatedSections":{"totalCount":3,"edges":[{"node":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"lead","properties":{},"children":[{"type":"text","value":"Veel problemen kunnen als “zoekproblemen” worden uitgedrukt. Daarvoor is het nodig te beginnen met het formuleren van alternatieve keuzen en de consequenties daarvan."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Zoeken in de praktijk: van A naar B"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Stel je voor dat je in een stad in het buitenland bent, op een bepaald adres (bijvoorbeeld een hotel) en dat je met het openbaar vervoer naar een ander adres wilt (een leuk restaurant bijvoorbeeld). Wat doe je dan? Als jij doet wat zoveel mensen doen, dan haal je je smartphone tevoorschijn, typt de bestemming in en volgt de aanwijzingen op."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"a-to-b","color":"#e9e9ed","zrombottom":"0","totalheight":"95%"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Dit vraagstuk behoort tot de categorie problemen die gaan over “zoeken en plannen”. Soortgelijke problemen moeten worden opgelost door zelfrijdende auto’s en (al ligt dat misschien minder voor de hand) door AI bij het spelen van spellen. In het schaakspel, bijvoorbeeld, is de moeilijkheid niet zozeer om een stuk van A naar B te krijgen als wel om jouw stukken tegen de tegenstander te beschermen."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"search-1-NL"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Er zijn vaak tal van manieren waarop een probleem kan worden opgelost, waarvan sommige qua tijd, inspanning, kosten of op grond van andere criteria misschien de voorkeur verdienen. Verschillende zoektechnieken kunnen tot verschillende oplossingen leiden en de ontwikkeling van geavanceerde zoekalgoritmen is een erkend onderzoeksterrein."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"search-2-NL"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Wij richten ons niet op de daadwerkelijke zoekalgoritmen, maar benadrukken in plaats daarvan het eerste stadium van de methode voor het oplossen van problemen: het in kaart brengen van de keuzen en de gevolgen daarvan, wat vaak bepaald geen sinecure is en een zorgvuldige overweging kan vergen. Ook moeten we ons doel bepalen of, anders gezegd, vaststellen wanneer we het probleem als opgelost kunnen beschouwen. Wanneer dat is gebeurd, kunnen we op zoek naar een reeks opeenvolgende handelingen die van het beginstadium naar het doel leiden."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In dit hoofdstuk bespreken wij twee soorten problemen:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Zoeken en plannen in statische omgevingen met slechts één “actor”"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Spellen met twee spelers (“actoren”) die het tegen elkaar opnemen"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Deze categorieën bestrijken niet alle mogelijke realistische scenario’s, maar ze zijn algemeen genoeg om er de belangrijkste concepten en technieken mee te illustreren."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Voordat we complexe zoektaken zoals navigatie of schaken behandelen, beginnen we met een eenvoudig model om meer inzicht te verkrijgen in de wijze waarop we met AI problemen kunnen oplossen."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"chicken-crossing","color":"#859Z","zrombottom":"36.9%","totalheight":"38%"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Een voorbeeldprobleem: een kip overzetten"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Om de ideeën te illustreren, beginnen we met een eenvoudige puzzel. Een robot in een roeiboot moet drie stuks vracht een rivier overzetten: een vos, een kip, en een zak kippenvoer. Als de vos de kans krijgt, eet hij de kip op; en als de kip de kans krijgt, eet zij het kippenvoer op. Beide scenario’s zijn onwenselijk. Zolang hij bij de dieren in de buurt is, kan de robot hen van schadelijk gedrag weerhouden, maar de robot kan als enige de roeiboot bedienen en naast hem is er slechts plaats voor twee stuks vracht. Hoe krijgt de robot alle vracht naar de andere oever van de rivier?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"De eenvoudige versie van de roeibootpuzzel","description":"Als je dit raadsel al eerder hebt gehoord, weet je misschien dat het zelfs met minder plaats in de boot kan worden opgelost. Nadat we deze eenvoudige versie samen hebben opgelost, wordt dat een opgave voor jou."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We schetsen de puzzel met de opmerking dat er sprake is van vijf zaken die verplaatst kunnen worden: de robot, de roeiboot, de vos, de kip, en het kippenvoer. Elk van de vijf kan zich in beginsel aan beide zijden van de rivier ophouden, maar omdat alleen de robot de roeiboot kan bedienen, bevinden de roeiboot en de robot zich altijd aan dezelfde kant van de rivier. Er zijn dus vier zaken die elk twee mogelijke posities kunnen innemen, wat neerkomt op 16 combinaties die wij “toestanden” zullen noemen:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"Toestanden bij de roeibootpuzzel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Toestand"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Robot"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Vos"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Kip"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Kippenvoer"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NNNN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NNNZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NNZN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NNZZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NZNN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NZNZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NZZN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NZZZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZNNN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZNNZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZNZN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZNZZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZZNN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZZNZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZZZN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZZZZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We hebben de verschillende toestanden een korte naam gegeven, want anders zou het een omslachtig verhaal worden. We zijn nu in staat om de zeggen dat de begintoestand NNNN is en dat de streeftoestand ZZZZ is, in plaats van iets als “in de begintoestand bevindt de robot zich op de noordoever, bevindt de vos zich op de noordoever, is de kip op noordoever en staat ook het kippenvoer op de noordoever, en in de streeftoestand bevindt de robot zich op de zuidoever”, enzovoort."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Vanwege de voorwaarden van de puzzel is een aantal toestanden uitgesloten. In toestand NZZN, bijvoorbeeld (waarin de robot zich samen met het kippenvoer op de noordoever bevindt en de vos en de kip op de zuidoever staan), zal de vos de kip opeten en dat is niet de bedoeling. We kunnen dus de volgende toestanden uitsluiten (mocht je twijfelen aan onze redenering dan mag je ze allemaal controleren): NZZN, NZZZ, ZNNZ, ZNNN, NNZZ en ZZNN. We houden de volgende tien toestanden over:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Toestand"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Robot"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Vos"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Kip"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Kippenvoer"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NNNN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NNNZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NNZN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NZNN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"NZNZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZNZN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZNZZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZZNZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZZZN"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Noordoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ZZZZ"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Zuidoever"}]},{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Hierna zoeken we uit welke toestandsveranderingen mogelijk zijn, wat simpelweg neerkomt op de eindtoestand telkens als de robot de boot met een aantal van de vrachtstukken voortroeit. Het is verstandig om de overgangen in een schema weer te geven en handig om, omdat bij elke overgang de eerste letter afwisselend een N of een Z is, in de ene rij de toestanden te tonen die met een N beginnen (en de robot zich dus op de noordoever bevindt) en in een andere rij de toestanden die met een Z beginnen:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"chicken-crossing-1-NL"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Nu zullen we de overgangen schetsen. We zouden pijlen kunnen trekken die van het ene naar het andere knooppunt wijzen, maar in deze puzzel zijn de overgangen symmetrisch: als de robot van toestand NNNN naar toestand ZNZZ kan roeien, kan hij in omgekeerde richting even goed van ZNZZ naar NNNN roeien. Het is dus eenvoudiger om de overgangen met lijnen weer te geven die niet in een bepaalde richting wijzen. Vanaf NNNN kunnen we naar ZNZN, ZNZZ, ZZNZ en ZZZN:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"chicken-crossing-2-NL"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Daarna vullen we de rest in:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"chicken-crossing-3-NL"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We hebben al flink wat werk in de puzzel gestoken zonder dat we ook maar iets dichter bij een oplossing lijken te zijn gekomen. Met je “natuurlijke intelligentie” had je de puzzel vast allang kunnen oplossen. Maar onze systematische of mechanische benadering blinkt uit bij complexere problemen, waarbij het aantal mogelijke oplossingen in de duizenden of in de miljoenen loopt, aangezien het moeilijkste gedeelte uitstekend door een eenvoudige computer gedaan kan worden. Nu wij de alternatieve toestanden en overgangen daartussen onder woorden hebben gebracht, blijft er alleen een mechanische taak over: zoek een route van aanvangstoestand NNNN naar eindtoestand ZZZZ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In de onderstaande afbeelding is één zo’n route in kleur gemarkeerd. De route loopt van NNNN naar ZZZN (de robot brengt de vos en de kip naar de overzijde), vervolgens naar NZNN (de robot neemt de kip mee terug naar de oever van vertrek) en tot slot naar ZZZZ (de robot kan nu de kip en het kippenvoer naar de overzijde brengen)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"chicken-crossing-4-NL"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Toestandsruimte, overgangen en kosten"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Voor het formaliseren van een planningsprobleem gebruiken we begrippen als toestandsruimte, overgangen en kosten."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"key-terminology","properties":{"terminologies":"[\n      {\"title\":\"De toestandsruimte\", \"content\":\"is de verzameling mogelijke situaties. In de roeibootpuzzel bestond de toestandsruimte uit tien geoorloofde toestanden, van NNNN tot en met ZZZZ (maar bijvoorbeeld niet NZZZ, die volgens de regels van de puzzel niet is toegestaan). Als het de opdracht is om van naar A naar B te navigeren, kan de toestandsruimte bestaan uit de reeks locaties (bepaald aan de hand van hun (x/y-)coördinaten) die vanaf beginpunt A kunnen worden bereikt. Maar we zouden ook een kleinere reeks locaties kunnen gebruiken; verschillende straatadressen, bijvoorbeeld, zodat het aantal mogelijke toestanden beperkt is.\"},\n      {\"title\":\"Overgangen\",\"content\":\"zijn mogelijke bewegingen van de ene naar de andere toestand, bijvoorbeeld van NNNN naar ZNZN. Het is belangrijk om te vermelden dat wij tot de overgangen alleen rechtstreekse overgangen rekenen die met één enkele handeling kunnen worden voltooid. Een opeenvolgende reeks overgangen, bijvoorbeeld van A naar C, van C naar D en van D naar B (het doel), is eerder een <Strong>route</Strong> dan een overgang.\"},\n      {\"title\":\"Kosten\",\"content\":\"hebben betrekking op het feit dat de diverse overgangen doorgaans niet allemaal gelijk zijn. Ze kunnen zodanig van elkaar verschillen dat sommige overgangen wenselijker of goedkoper zijn (niet per se in de financiële zin van het woord) en andere duurder. Dit kan worden uitgedrukt door aan iedere overgang bepaalde kosten te verbinden. Als het doel is om de totale afgelegde afstand zo klein mogelijk te houden, dan bestaan de natuurlijke kosten uit de geografische afstanden tussen de toestanden. Anderzijds kan het eigenlijke doel ook zijn om zoveel mogelijk tijd in plaats van afstand te besparen. In dat geval bestaan de natuurlijke kosten uiteraard uit tijd. Als alle overgangen aan elkaar gelijk zijn, kunnen we de kosten negeren.\"}\n  ]"},"children":[{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"quiz","properties":{"quizid":"b888b3c1-0f9b-502e-8f80-3bfb5fd5d131"},"children":[{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"quiz","properties":{"quizid":"b0fddc98-b476-54ff-bbbf-f794cc576d08"},"children":[{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"excerpt":"Zoeken in de praktijk: van A naar B Stel je voor dat je in een stad in het buitenland bent, op een bepaald adres (bijvoorbeeld een hotel) en…","frontmatter":{"path":"/nl/2/1","title":"Zoeken en problemen oplossen","part":2,"type":"section","lang":"nl","section":1}}},{"node":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Intermezzo over de geschiedenis van AI: het begon met zoeken"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Je kunt stellen dat AI zo oud is als de informatica. Lang voordat we computers kregen, dachten mensen al na over de mogelijkheden van automatisch redeneren en intelligentie. Zoals we in hoofdstuk 1 al zeiden, is Alan Turing één van de grote denkers die zich met dit vraagstuk heeft beziggehouden. Behalve de Turingtest bestaan zijn bijdragen aan AI – en aan de informatica in het algemeen – onder meer uit het inzicht dat alles wat te berekenen is (d.w.z.: wat berekend kan worden met behulp van hetzij cijfers dan wel andere symbolen) geautomatiseerd kan worden."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Bijdrage aan het winnen van WOII","description":"Turing ontwierp een bijzonder eenvoudig apparaat dat alles kan berekenen wat er maar te berekenen valt. Dit apparaat staat bekend als de Turingmachine. Hoewel het een theoretisch model betreft zonder praktisch nut, bracht het Turing tot de ontdekking van programmeerbare computers: computers die gebruikt kunnen worden om verschillende opdrachten uit te voeren, afhankelijk van de taak waarvoor ze geprogrammeerd zijn.<br><br>Dus in plaats van voor iedere taak een ander apparaat te moeten bouwen, gebruiken we dezelfde computer voor meerdere taken. Dit is het idee achter programmeren. Tegenwoordig klinkt dat als een onbeduidende uitvinding, maar in de tijd van Turing was dat allerminst het geval. Enkele van de vroegste programmeerbare computers werden in de Tweede Wereldoorlog gebruikt voor het kraken van geheime Duitse codes, een project waarbij Turing ook persoonlijk betrokken was."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Het begrip artificiële intelligentie wordt meestal toegeschreven aan John McCarthy (1927-2011) – vaak ook de vader van AI genoemd – maar zelf ontkent hij het begrip te hebben bedacht. Niettemin speelde hij een belangrijke rol bij de overname van het begrip als naam voor het nieuwe wetenschapsgebied. Het begrip raakte ingeburgerd toen AI werd gekozen tot thema van een zomerseminar, bekend als de "},{"type":"element","tagName":"a","properties":{"href":"https://en.wikipedia.org/wiki/Dartmouth_workshop","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Dartmouth-conferentie"}]},{"type":"text","value":" die door McCarthy werd georganiseerd en in 1956 op het Dartmouth College in New Hampshire werd gehouden. In het voorstel voor het organiseren van het seminar bouwde McCarthy voort op de redenering van Turing over geautomatiseerd rekenen. Het voorstel bevat de volgende cruciale opmerking:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"De kernboodschap van John McCarthy over AI","description":"”Het onderzoek moet plaatsvinden op grond van de hypothese dat alle aspecten van leren of andere kenmerken van intelligentie in beginsel zo gedetailleerd kunnen worden beschreven dat ze door een machine kunnen worden nagebootst.”"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Met andere woorden, elk aspect van intelligentie kan worden opgedeeld in kleine stapjes, zodat ieder stapje op zichzelf zo eenvoudig en “mechanisch” is dat het in de vorm van een computerprogramma kan worden geschreven. Deze bewering was – en is vandaag nog steeds – een hypothese, wat inhoudt dat we niet echt kunnen bewijzen dat zij waar is. Niettemin is het een fundamenteel idee als het gaat om hoe we over AI denken. Het laat bijvoorbeeld zien dat McCarthy argumenten in de trant van de Chinese kamer van Searle voor wilde zijn: intelligentie is intelligentie, zelfs als het systeem dat die intelligentie toepast slechts een computer is die op mechanische wijze een programma uitvoert."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Waarom zoeken en spellen centraal kwamen te staan in onderzoek naar AI"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toen de ontwikkeling van computers in de jaren 1950 zo ver was gevorderd dat het doenlijk was om met praktische AI-algoritmen te experimenteren, bestonden de meest in het oog springende problemen op het vlak van AI (naast het kraken van de nazicodes) uit spelletjes. Spelletjes vertegenwoordigden een geschikt domein van beperkte omvang dat makkelijk geformaliseerd kon worden. Bordspellen als dammen, schaken en – zoals recentelijk de aandacht trok – Go (een uiterst ingewikkeld strategisch bordspel van Chinese origine met een geschiedenis van ten minste 2500 jaar) waren en blijven voor ontelbare onderzoekers een bron van inspiratie."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Op het nauw aan spellen verwante onderzoeksterrein met betrekking tot technieken voor zoeken en plannen werden in de jaren 60 grote vorderingen gemaakt. Destijds ontwikkelde algoritmen met namen als het “Minimax-algoritme” of “Alpha-Beta Pruning” vormen nog steeds de basis voor AI die spelletjes speelt, hoewel er natuurlijk in de loop der tijd geavanceerdere varianten zijn voorgesteld. In dit hoofdstuk bestuderen we spellen en planningsproblemen op conceptueel niveau."}]}],"data":{"quirksMode":false}},"excerpt":"Intermezzo over de geschiedenis van AI: het begon met zoeken Je kunt stellen dat AI zo oud is als de informatica. Lang voordat we computers…","frontmatter":{"path":"/nl/2/2","title":"Problemen oplossen met AI","part":2,"type":"section","lang":"nl","section":2}}},{"node":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"lead","properties":{},"children":[{"type":"text","value":"In dit deel onderzoeken we een klassiek AI-vraagstuk, namelijk spellen. Omwille van de duidelijkheid richten wij ons op het eenvoudigste scenario: spellen zoals boter-kaas-en-eieren en schaken, met twee spelers die over volledige informatie beschikken."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Voorbeeld: een spelletje boter-kaas-en-eieren"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Maxine en Minnie zijn echte spelfanaten. Ze houden vooral van spellen met twee spelers die over volledige informatie beschikken, zoals boter-kaas-en-eieren en schaken. Op een dag speelden ze boter-kaas-en-eieren en Maxine (Max voor haar vriendinnen) zette de X’en en Minnie (Min voor haar vriendinnen) de O’s. Min was net aan de beurt geweest en het bord zag er als volgt uit:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"tic-tac-toe","color":"#8A8ED8","frombottom":"0","totalheight":"58%"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Nadenkend over haar volgende zet, staarde Max naar het bord toen ze plots wanhopig haar handen voor haar gezicht sloeg. Ze leek net Garry Kasparov die in 1997 tegen Deep Blue speelde."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Min was weliswaar één stap verwijderd van drie O’s in de bovenste rij, maar Max kon daar eenvoudig een stokje voor steken. Dus waarom zag Max het zo somber in?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Spelbomen"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Om met AI spelletjes op te lossen, introduceren we hier het begrip “spelboom”. In de spelboom worden met knooppunten de verschillende toestanden (spelsituaties) weergegeven. Dit lijkt sterk op de eerdergenoemde planningsvraagstukken, maar het idee erachter is net een tikje anders. In de spelboom zijn de knooppunten op niveaus gerangschikt die overeenkomen met de beurten van iedere speler in het spel, zodat het “wortelknooppunt” van de boom (dat meestal bovenaan het schema wordt weergegeven) de uitgangspositie van het spel voorstelt. Bij boter-kaas-en-eieren zou dat een leeg raster zijn, nog zonder getekende X’en en O’s. Onder het wortelknooppunt, dus op niveau twee, staan de mogelijke toestanden die kunnen voortvloeien uit de zet van de eerste speler, ongeacht of deze nu een X of een O tekent. We noemen die knooppunten de “onderliggende knooppunten” van het wortelknooppunt."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"De onderliggende knooppunten van elk knooppunt op niveau twee zijn de toestanden die van daaruit gerealiseerd kunnen worden door de zet van de tegenstander. Zo gaat het niveau na niveau door, totdat er een toestand wordt bereikt waarin het spel voorbij is. Bij boter-kaas-en-eieren betekent dit dat één van de spelers drie tekens op een rij heeft en wint of dat het raster vol is en het spel onbeslist eindigt."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Waardeminimalisatie en -maximalisatie"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Om voor spellen AI te ontwikkelen die probeert om het spel te winnen, wijzen we aan iedere mogelijke uitkomst een numerieke waarde toe. Aan de posities in het raster met drie X’en op een rij (en Max dus wint), geven we de waarde +1, en aan de posities waarin Min wint met drie O’s op een rij, geven we de waarde -1. We gebruiken de neutrale waarde 0 voor de posities waarin het raster vol is en geen enkele speler wint (de waarden doen er eigenlijk niet toe, zolang deze rangorde maar wordt aangehouden en Max dus probeert de waarde te maximaliseren en Min probeert die te minimaliseren)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"Voorbeeld van een spelboom"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Neem de onderstaande spelboom eens als voorbeeld, die niet bij de wortel begint, maar in het midden van het spel (de afbeelding van de spelboom zou anders niet op het scherm passen). Je merkt dat deze verschilt van de afbeelding van het spel aan het begin van dit deel. We hebben de knooppunten genummerd van 1 tot en met 14."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"De boom is opgebouwd uit afwisselende lagen waarin het of Mins beurt is om een O of Max beurt om een X te zetten op één van de lege plaatsen in het raster. De naam van de speler die als volgende aan de beurt is, staat aan de linkerkant."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"game-tree-1"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Het spel gaat verder bij de stand op het raster die in het wortelknooppunt wordt getoond, dat bovenaan staat en het getal 1 heeft gekregen. Hierbij is het Mins beurt om een O te zetten in één van de drie lege vakjes. De knooppunten 2 tot en met 4 laten de rasterstanden zien die uit elk van de drie keuzemogelijkheden voortvloeien. Bij de volgende stap heeft Max op elk knooppunt twee mogelijkheden om een X te zetten en dus vertakt de boom opnieuw."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Als vanuit de bovengenoemde uitgangspositie wordt begonnen, eindigt het spel altijd in een rij van drie gelijke tekens: bij de knooppunten 7 en 9 is Max, die X speelt, de winnaar; bij de knooppunten 11 tot en met 14 wint Min, die O speelt."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Merk op dat, aangezien de spelers om beurten spelen, de niveaus als Min- en Max-niveaus kunnen worden aangeduid. Deze laten zien wie er aan de beurt is."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Strategisch gedrag"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Kijk eens naar de knooppunten 5 tot en met 10 op het tweede niveau, gerekend vanaf de onderzijde. Op de knooppunten 7 en 9 is het spel uit en wint Max met drie X’en op een rij. De waarde van die posities bedraagt +1. Op de resterende knooppunten (5, 6, 8 en 10) is het spel feitelijk gezien ook uit, want om te winnen hoeft Min alleen nog maar een O te zetten in het laatst overgebleven vakje. Met andere woorden: op ieder knooppunt op het tweede niveau van onderen kennen we de afloop van het spel. Op grond daarvan kunnen wij dus vaststellen dat de waarde van de knooppunten 5, 6, 8 en 10 ook -1 is."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"game-tree-2"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Nu wordt het interessant. Laten we eens kijken naar de waarden van de knooppunten 2 tot en met 4, die één niveau dichterbij het wortelknooppunt liggen. Omdat we hebben vastgesteld dat beide onderliggende knooppunten van knooppunt 2 (namelijk de knooppunten 5 en 6) leiden tot winst voor Min, kunnen we zonder aarzeling ook aan knooppunt 2 de waarde -1 toekennen. Voor knooppunt 3, daarentegen, geldt dat het onderliggende knooppunt links (knooppunt 7) Max de overwinning bezorgt (met +1), maar dat het onderliggende knooppunt rechts (knooppunt 8) winst betekent voor Min (met -1). Wat is de waarde van knooppunt 3? Denk daar eens een poosje over na en onthoud welke speler er bij knooppunt 3 aan de beurt is."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Omdat Max aan de beurt is, kiest zij uiteraard voor het onderliggende knooppunt links (knooppunt 7). Kortom, telkens als we bij knooppunt 3 uitkomen, kan Max de overwinning veiligstellen. Daarom kennen we aan knooppunt 3 de waarde +1 toe."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Voor knooppunt 4 geldt hetzelfde: omdat Max wederom mag kiezen waar zij haar X plaatst, kan zij altijd de overwinning claimen en dus kennen we aan knooppunt 4 de waarde +1 toe."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"game-tree-3"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"De winnaar bepalen"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"De belangrijkste les in dit deel bestaat uit het herhaaldelijk toepassen van de bovenstaande redenering, zodat de uitkomst van het spel bij iedere rasterstand vooraf kan worden bepaald."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Op dit moment hebben we vastgesteld dat de waarde van knooppunt 2 -1 bedraagt, wat betekent dat Min de overwinning kan opeisen als we die rasterstand bereiken, en dat het omgekeerde geldt voor de knooppunten 3 en 4: de waarde daarvan is +1, wat betekent dat als Max slim speelt, zij zeker kan zijn van de winst."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Omdat Min een ervaren speelster is, kunnen we ten slotte vaststellen dat zij dezelfde conclusie kan trekken en dus eigenlijk maar één echte keus heeft: de O in het midden van het raster plaatsen."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In het onderstaande schema hebben we de waarde van elk knooppunt opgenomen alsook het optimale spelverloop, te beginnen bij het wortelknooppunt wanneer Min aan de beurt is."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"game-tree-4-NL"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"De waarde van het wortelknooppunt staat gelijk aan de winnaar"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"De waarde van het wortelknooppunt, die als de waarde van het spel wordt beschouwd, vertelt ons wie er wint (en, als de uitkomst niet simpelweg bestaat uit winst of verlies, met welke marge). Max wint als de waarde van het spel +1 is en Min als de waarde -1 is; is de waarde 0, dan eindigt het spel onbeslist. Bij andere spellen kan de waarde andere vormen aannemen (bij poker bijvoorbeeld de geldwaarde van fiches op tafel)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Dit alles is gebaseerd op de veronderstelling dat beide spelers voor zichzelf de beste keuzen maken en dat het beste voor de één gelijkstaat aan het slechtste voor de ander (een zogeheten “nulsomspel”)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"De beste zetten ontdekken","description":"Nadat de waarden van alle knooppunten in de spelboom zijn bepaald, kunnen de optimale zetten worden afgeleid: op elke Min-knooppunt (wanneer Min aan de beurt is) stelt het onderliggende knooppunt met de kleinste waarde de beste keuze voor en, omgekeerd, is op elk Max-knooppunt (wanneer Max aan de beurt is) het onderliggende knooppunt met de grootste waarde de beste keuze. Soms zijn er tal van gelijkwaardige keuzen die allemaal even goed zijn en dezelfde uitkomst opleveren, ongeacht welke keuze wordt gemaakt."},"children":[{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Het Minimax-algoritme"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We kunnen de bovenstaande gedachte over de waarde van een spel benutten om een algoritme te verkrijgen, het zogenoemde “Minimax-algoritme”. Dit algoritme garandeert in theorie een optimaal spelverloop bij alle deterministische nulsomspellen voor twee personen die over volledige informatie beschikken. Als een bepaalde speltoestand wordt ingevoerd, berekent het algoritme simpelweg de waarden van de onderliggende knooppunten van die bepaalde toestand en kiest, als Max aan de beurt is, de toestand met de grootste waarde en, als Min aan de beurt is, de toestand met de kleinste waarde."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Het algoritme kan met een paar regels code worden uitgevoerd, maar wij zijn al tevreden met het idee op hoofdlijnen. Als je belangstelling hebt voor het echte algoritme, ga dan bijvoorbeeld te rade bij "},{"type":"element","tagName":"a","properties":{"href":"https://nl.wikipedia.org/wiki/Minimax","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Wikipedia: Minimax"}]},{"type":"text","value":" (let op: dit vereist programmeervaardigheden)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"chess","color":"#e9e9ed","frombottom":"0","totalheight":"100%"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Klinkt aardig, mag ik nu weg?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Zoals we hierboven hebben opgemerkt, kan het Minimax-algoritme worden gebruikt voor de uitvoering van een optimaal spelverloop bij alle deterministische nulsomspellen voor twee personen die over volledige informatie beschikken. Voorbeelden van dergelijke spellen zijn boter-kaas-en-eieren, Vier op ’n rij, schaken, Go, enzovoort. Steen, papier, schaar valt niet in die categorie spellen aangezien dit draait om informatie die voor de andere speler verborgen wordt gehouden, evenmin als Monopoly en backgammon, die niet deterministisch zijn. Is dat alles wat dit onderwerp aangaat en kunnen we nu afronden? Het antwoord is: in theorie wel, maar in de praktijk niet."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Het probleem met enorme spelbomen","description":"Bij veel spellen is de spelboom domweg te groot om helemaal te doorkruisen. In het geval van het schaakspel, bijvoorbeeld, is de gemiddelde vertakkingsfactor (d.w.z.: het gemiddelde aantal onderliggende knooppunten oftewel mogelijke zetten) ongeveer 35 per knooppunt. Dit betekent dat als we alle mogelijke scenario’s tot slechts twee zetten vooruit zouden verkennen, we langs ongeveer 35 maal 35 = 1225 knooppunten moeten. Je zit er vast niet op te wachten om dat op papier uit te werken. Een verkenning van drie zetten vooruit vereist dat we 42875 knooppunten aandoen, bij vier zetten 1500625 en bij tien zetten 2758547353515625 (pakweg 2,7 biljard) knooppunten. Voor Go wordt de gemiddelde vertakkingsfactor geschat op ongeveer 250. Go is “ho!” voor Minimax."},"children":[{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Nog wat foefjes om spelbomen binnen de perken te houden"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Om enorme spelbomen te kunnen hanteren, moeten we een paar extra foefjes toepassen. Veel daarvan speelden in 1997 een cruciale rol toen Deep Blue, de computer van IBM, de wereldkampioen schaken Garry Kasparov versloeg."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Als we het ons kunnen veroorloven om maar een klein deel van de spelboom te verkennen, hebben we een manier nodig om de recursie van minimax te laten stoppen, voordat we bij een eindknooppunt zijn beland, dat wil zeggen: een knooppunt waarop het spel uit is en de winnaar bekend. Dit kan worden bereikt door een zogeheten "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"heuristische evaluatiefunctie"}]},{"type":"text","value":" toe te passen, die als input een bepaalde rasterstand gebruikt (inclusief de informatie welke speler als volgende aan de beurt is) en een score genereert die een schatting dient te zijn van de waarschijnlijke uitkomst van het spelverloop na die bepaalde rasterstand."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Goede heuristiek","description":"Een goede heuristiek voor bijvoorbeeld schaken maakt normaal gesproken een gewogen telling van de hoeveelheid materiaal (de stukken): de waarde van de koningin is doorgaans tweemaal die van een toren, driemaal die van een paard of loper, en negenmaal die van een pion. Uiteraard overstijgt de waarde van de koning de gecombineerde waarde van alle andere stukken, want de speler wiens koning schaakmat staat, verliest ook het spel. Daarnaast wordt het als voordeel gezien als een speler strategisch belangrijke posities rond het midden van het bord bezet en de heuristiek kent aan dergelijke posities dan ook een hogere waarde toe."},"children":[{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Het hierboven beschreven minimax-algoritme hoeft maar licht te worden gewijzigd om een versie met een "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"dieptegrens"}]},{"type":"text","value":" te verkrijgen, waarbij de heuristiek bij alle knooppunten die op een bepaalde dieptegrens liggen een waarde toekent. De diepte verwijst eenvoudigweg naar het aantal stappen waarmee de spelboom wordt uitgebreid, voordat er een heuristische evaluatiefunctie wordt toegepast."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"quiz","properties":{"quizid":"18b614bb-0136-581f-87be-819f044de60b"},"children":[{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"De beperkingen van eenvoudig zoeken","description":"Het lijkt misschien alsof we een methode te pakken hebben waarmee elk probleem kan worden opgelost door de toestanden en de overgangen daartussen aan te geven en een route van de huidige toestand naar ons doel te vinden. Helaas liggen de zaken ingewikkelder zodra we AI op echte problemen willen gaan toepassen, want zelfs in een niet al te ingewikkeld realistisch scenario is het aantal toestanden in feite onbeheersbaar. Met uitvoerig zoeken (met “brute kracht”) en zelfs met het gebruik van slimme heuristiek slagen we er niet in om een oplossing te vinden.<br><br>Bovendien zijn de overgangen die ons, als we voor een bepaalde handeling kiezen, van de ene naar de andere toestand voeren, niet deterministisch. Dit houdt in dat ongeacht welke handeling we kiezen deze niet altijd volledig bepalend is voor de uitkomst, aangezien er sprake is van factoren waarop we geen invloed hebben en die we vaak ook niet kennen.<br><br>De hierboven besproken algoritmen kunnen worden aangepast, zodat ze met een zekere mate van willekeur overweg kunnen, bijvoorbeeld willekeur bij het kiezen van kaarten uit een geschud spel of het werpen van een dobbelsteen. Dit betekent dat we de begrippen “onzekerheid” en “waarschijnlijkheid” moeten introduceren. Alleen op die manier kunnen we, in plaats van eenvoudige puzzels en spelletjes, beginnen AI uit de echte praktijk te benaderen. Dat is het onderwerp van hoofdstuk 3."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"part-summary","properties":{"chapter":"2","heading":"Als je hoofdstuk 2 hebt afgerond, zou je in staat moeten zijn om:","listitems":"[\n  {\"content\":\"een reëel probleem als een zoekprobleem te verwoorden;\"},\n  {\"content\":\"een eenvoudig spel (zoals boter-kaas-en-eieren) als een spelboom te formuleren;\"},\n  {\"content\":\"het minimax-beginsel te gebruiken om in een spelboom van beperkte omvang de beste zetten te ontdekken.\"}\n    ]"},"children":[{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"excerpt":"Voorbeeld: een spelletje boter-kaas-en-eieren Maxine en Minnie zijn echte spelfanaten. Ze houden vooral van spellen met twee spelers die…","frontmatter":{"path":"/nl/2/3","title":"Zoeken en spellen","part":2,"type":"section","lang":"nl","section":3}}}]},"allParts":{"totalCount":6,"edges":[{"node":{"frontmatter":{"title":"Wat is AI?","path":"/nl/1","section":null,"part":1,"lang":"nl","bannerImage":{"publicURL":"/static/5cb707dcbce557b358c736c82a82b847/banner1.png"}}}},{"node":{"frontmatter":{"title":"Problemen oplossen met AI","path":"/nl/2","section":null,"part":2,"lang":"nl","bannerImage":{"publicURL":"/static/3217219fe81de9c2f030e51f04557962/banner2.png"}}}},{"node":{"frontmatter":{"title":"AI in de praktijk","path":"/nl/3","section":null,"part":3,"lang":"nl","bannerImage":{"publicURL":"/static/8433f94cdf930cb1172a332eda51a0ae/banner3.png"}}}},{"node":{"frontmatter":{"title":"Machinaal leren","path":"/nl/4","section":null,"part":4,"lang":"nl","bannerImage":{"publicURL":"/static/fdc0e4c1dc187a976325542364658e54/banner4.png"}}}},{"node":{"frontmatter":{"title":"Neurale netwerken","path":"/nl/5","section":null,"part":5,"lang":"nl","bannerImage":{"publicURL":"/static/8d6d86ca3c422d98b6213f5ddfbe8c07/banner5.png"}}}},{"node":{"frontmatter":{"title":"Implicaties","path":"/nl/6","section":null,"part":6,"lang":"nl","bannerImage":{"publicURL":"/static/2943d36053a6dd8bd40b3dc3832bb0f8/banner6.png"}}}}]},"currentPart":{"htmlAst":{"type":"root","children":[],"data":{"quirksMode":false}},"frontmatter":{"path":"/nl/2","title":"Problemen oplossen met AI","part":2,"lang":"nl","quote":"Zoekalgoritmen voelen niet altijd aan als erg coole AI-methoden. Deze kunnen echter worden gebruikt om taken op te lossen waarvoor volgens de meeste mensen intelligentie nodig is, zoals navigeren of schaken.","quoteAuthor":"","bannerImage":{"publicURL":"/static/3217219fe81de9c2f030e51f04557962/banner2.png"}}},"allSections":{"totalCount":18,"edges":[{"node":{"frontmatter":{"title":"Wat bedoelen we met AI?","path":"/nl/1/1","section":1,"part":1,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Zoeken en problemen oplossen","path":"/nl/2/1","section":1,"part":2,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Kansverhoudingen en waarschijnlijkheid","path":"/nl/3/1","section":1,"part":3,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Verschillende soorten machinaal leren","path":"/nl/4/1","section":1,"part":4,"lang":"nl"}}},{"node":{"frontmatter":{"title":"De basisbeginselen van neurale netwerken","path":"/nl/5/1","section":1,"part":5,"lang":"nl"}}},{"node":{"frontmatter":{"title":"De toekomst voorspellen","path":"/nl/6/1","section":1,"part":6,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Verwante gebieden","path":"/nl/1/2","section":2,"part":1,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Problemen oplossen met AI","path":"/nl/2/2","section":2,"part":2,"lang":"nl"}}},{"node":{"frontmatter":{"title":"De regel van Bayes","path":"/nl/3/2","section":2,"part":3,"lang":"nl"}}},{"node":{"frontmatter":{"title":"De naaste-buurclassificatie","path":"/nl/4/2","section":2,"part":4,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Hoe neurale netwerken worden gebouwd","path":"/nl/5/2","section":2,"part":5,"lang":"nl"}}},{"node":{"frontmatter":{"title":"De maatschappelijke gevolgen van AI","path":"/nl/6/2","section":2,"part":6,"lang":"nl"}}},{"node":{"frontmatter":{"title":"De filosofie van AI","path":"/nl/1/3","section":3,"part":1,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Zoeken en spellen","path":"/nl/2/3","section":3,"part":2,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Naïeve Bayes-classificatie","path":"/nl/3/3","section":3,"part":3,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Regressie","path":"/nl/4/3","section":3,"part":4,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Geavanceerde technieken voor neurale netwerken","path":"/nl/5/3","section":3,"part":5,"lang":"nl"}}},{"node":{"frontmatter":{"title":"Samenvatting","path":"/nl/6/3","section":3,"part":6,"lang":"nl"}}}]},"site":{"siteMetadata":{"languages":{"defaultLangKey":"en","langs":["en","fi","se","de","ee","fr","it","fr-be","no","lt","lv","nl-be","mt","hr","pl","en-ie","ga","nl","sk","da","ro","sl","is","de-at","en-lu","bg","cs","pt","es","el"]}}}},"pageContext":{"part":2,"type":"section","lang":"nl"}},"staticQueryHashes":["3539470774","3539470774"]}