-
Notifications
You must be signed in to change notification settings - Fork 1
/
techniek_multi_agent.html
451 lines (444 loc) · 36.5 KB
/
techniek_multi_agent.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="css/normalize.css" rel="stylesheet">
<link href="css/ai.css" rel="stylesheet" type="text/css" />
<link href="css/menus.css" rel="stylesheet" type="text/css" />
<link href="css/treeview.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] }
});
</script>
<title>Kunstmatige Intelligentie</title>
<script src="treeview.js"></script>
</head>
<body id="technieken" onload="initTreeview()" >
<a name="Inleiding" style="counter-reset: subsection 6;"></a>
<header class="paragraaf titel">Multi-agentsystemen</header>
<section>
<h4 class="pad" id="path_lead"><a href="index.htm" target="_parent">Kunstmatige Intelligentie</a>/
<a href="inleiding_technieken.html" target="_parent">Technieken</a>/Multi-agentsystemen</h4>
<div style="height: 100px;">
<div style="float:right;">
<a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
<img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
<br />This work is licensed under a
<br />
<a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike
4.0
<br />International License</a>.
</div>
</div>
</section>
<div class="navbar">
<div class="centreer">
<span class="dropdown">
<div class="dropbtn" onclick="window.location='#inleiding';">Wat is een multi-agentsysteem ▼</div>
<div class="dropdown-content">
<a class="submenuitem" href="#Gedrag">Gedrag</a>
<a class="submenuitem" href="#Omgeving">Omgeving</a>
<a class="submenuitem" href="#Agents">Agents</a>
<a class="submenuitem" href="#Agent_omgeving">Agent in omgeving</a>
</div>
</span>
<a href="#Kenmerken">Kenmerken van multi-agentsysteem</a>
<span class="dropdown">
<div class="dropbtn" onclick="window.location='#Modellen';">Agent-based modellen in multi-agentsystemen ▼</div>
<div class="dropdown-content">
<a class="submenuitem" href="#Competitief">Competitief: Speltheorie</a>
<a class="submenuitem" href="#Prisoners">Prisoners Dilemma</a>
<a class="submenuitem" href="#Dominante">Dominante strategie</a>
<a class="submenuitem" href="#Samenwerkend">Samenwerkend: Zwermintelligentie</a>
</div>
</span>
</div>
</div>
<article>
<h2>Wat is een multi-agentsysteem</h2>
<p>Een andere vorm van kunstmatige intelligentie is die van een <strong>multi-agentsysteem (MAS)</strong>. In de naam multi-agentsysteem zit het woord ‘multi’, dat staat voor meervoudig. Een multi-agentsysteem is dus letterlijk een systeem met meerdere agents. Multi-agentsystemen zijn gecomputeriseerde systemen die taken verrichten die niet of moeilijk door een individuele agent of een allesomvattende applicatie kan worden gedaan.
</p>
<p>Multi-agentsystemen overlappen met het concept <strong>agent-based modelleren (ABM)</strong>. Het doel van een agent-based model is het verkrijgen van inzicht in het gedrag dat agents door interactie met elkaar vertonen. De agents in een agent-based model hoeven niet noodzakelijk intelligent te zijn en er wordt meestal gekeken naar verklaringen op basis van simpele regels in natuurlijke systemen (zwerm gedrag van vogels, groepsgedrag van mensen, mierensnelwegen). Multi-agentsystemen worden juist ontwikkeld om technische problemen op te lossen. Dus niet om gedrag te verklaren maar om gedrag te verkrijgen, Toepassingsgebieden voor MAS zijn onder andere
<a href="https://research.tue.nl/nl/publications/simulation-of-a-trading-multi-agent-system" target="technieken">online handel</a>,
<a href="https://www.ics.uci.edu/~dsm/papers/2006/multiagent06.pdf" target="technieken">handelen bij rampen</a>,
<a href="https://www.uu.nl/en/research/artificial-intelligence/intelligent-systems/research-themes/engineering-multi-agent-systems" target="technieken">serious gaming</a> en <a href="https://users.ba.cnr.it/issia/iesidd98/papers/DiPaola-IAV_2010.pdf" target="technieken">surveillance</a>. Ben je meer of ook geïnteresseerd in het zoeken naar de oorzaak van gezamenlijk gedrag van organismen (ABM) dan is de verdiepingsmodule modelleren bij het keuze thema computational science iets voor jou. Later in deze sectie bekijken we aan aantal agent-based modellen die in multi-agentsytemen worden gebruikt.
</p>
<a id="Gedrag"></a><br/>
<h3>Gedrag</h3>
<p>In de <a href="techniek_introductie.html" class="book">introductie</a> in AI technieken hebben we het begrip agent geïntroduceerd als een zelfstandig functionerend deel van een AI applicatie. Functioneren betekent hier het tonen van gedrag. Een zelfrijdende auto is een agent van een AI applicatie die getraind is om zelfstandig te handelen in het verkeer. Het hele verkeer bestaat uit agents (let wel een menselijk persoon is ook een agent). De auto heeft als doel om personen in de auto veilig van plek A naar plek B te brengen. De auto neemt de huidige verkeersituatie (is omgeving) waar. De auto zal handelen ten opzichte van de verkeerssituatie in het belang van de inzittenden van de auto. Stel dat er twee zelfrijdende auto’s op elkaar afrijden. Beide zelfrijdende auto’s zullen dan waarschijnlijk uitwijken om een botsing te voorkomen. In dit geval overlappen de doelen van deze agents en vertonen ze <strong>coöperatief</strong> gedrag.
</p>
<div class="theorie center" style="width: 600px;">
<img src="images/image11.jpeg" style="width: 600px;"/></br/>
<caption>Figuur 1: De agent in zijn omgeving
</caption>
</div>
<p>Het is zeker niet zo dat de doelen van agents tot samenwerking leiden. Bij online handel is het doel van jouw agent om de winst voor de eigenaar van de agent te vergroten. Als er een vaste hoeveelheid aandelen in omloop is dan is er concurrentie om die aandelen en dus concurrentie tussen jouw agents en de andere agents in het handelsproces. De agents vertonen nu <strong>competitief</strong> gedrag. Ander voorbeeld: stel je voor dat er kunstmatige intelligentie in je koelkast zit. Zodra bij jou thuis de boter op is, probeert de koelkast-agent een zo goed mogelijke deal te sluiten. Hij probeert dan dus de beste boter te kopen voor de laagste prijs. De verkoop-agents van de winkels die boter verkopen, hebben een tegengesteld belang. Zij proberen een zo hoog mogelijke prijs te krijgen voor een pak boter. De verkoop-agents zijn in dit geval dus competitief. Toch moet er tot een overeenkomst gekomen worden. De agents gaan hierover met elkaar in onderhandeling.<br/>
Een mix van concurrentie en samenwerking is ook mogelijk. Onderzoek in die richting in robotica vindt onder andere plaats bij robotvoetbal.
</p>
<p>
<div class="center" style="width: 560px;">
<iframe class="center" style="width: 560px; height: 315px; border: none;" src="https://www.youtube.com/embed/_Y5_iGxWFrQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<a id="Omgeving"></a><br/>
<h3>Omgeving</h3>
<p>Een agent bevindt zich in een <strong>omgeving</strong>. In het Engels spreken we van een <strong>environment</strong>. In deze omgeving kan een agent acties uitvoeren. Het hangt af van de aard van de agent in welke omgeving deze kan handelen. Je hebt bijvoorbeeld omgevingen die puur softwarematig zijn. Een game zoals World of Warcraft is hier een voorbeeld van. De agents kunnen hierbinnen van alles doen, zoals een gevecht starten. De zelfrijdende auto is een agent in de echte wereld die uit andere agents bestaat. In figuur 1 zie je een schematische weergave van een agent en de omgeving. Binnen multi-agent systemen kunnen we de volgende omgevingen onderscheiden:
</p>
<ul><li>
Virtuele omgevingen. In bijvoorbeeld games, simulaties en online handel kom je die tegen.
</li>
<li>Discrete omgevingen. De agents kunnen zich in een eindig aantal posities bevinden en ook slecht een eindig aantal handelingen verrichten. Een schaakspel is een dergelijke omgeving.</li>
<li>Continue omgevingen. De verkeerssituatie is een dergelijke omgeving. Een agent kan overal in de ruimte plaatsnemen en zijn eigen positie verandert ook geleidelijk.
</li>
</ul>
<a id="Agents"></a><br/>
<h3>Agents</h3>
<p>Het is nog wel even nuttig om stil te staan bij de verschillende typen agents. In een omgeving is eigenlijk alles waarop een agent moet reageren zelf weer een agent. Dus in de verkeerssituatie is niet alleen de zelfrijdende auto een agent, maar ook de wandelaar, de fietser, de bestuurder van een auto. Zelfs de verkeersheuvels en verkeersborden worden als agents beschouwd. Dit leidt tot de volgende grove indeling voor agents:
<ul><li>Passieve agents of "agent zonder doel" (verkeersborden, een aandeel of in een spel een wapen of schat );</li>
<li>
Actieve agents met een simpel doel (robot in een distributie magazijn);</li>
<li>
Intelligente agents (zelfrijdende auto, mens, dier).</li>
</ul>
</p>
<p>
</p>
<a id="Agent_omgeving"></a><br/>
<h3>Agent in de omgeving</h3>
<p>Actieve en intelligente agents nemen hun omgeving in meer of minder detail waar. Afhankelijk van de taak en training reageert een agent. Iedere actie van een agent verandert de toestand van die agent, maar tegelijkertijd ook de omgeving van zichzelf en andere agents. Bijvoorbeeld één van de doelen van een bestuurder van een auto is ‘bots nergens tegenaan’. Als er een obstakel in beeld komt waar de auto niet omheen kan zal de auto tot stilstand moeten worden gebracht. De bestuurder remt. De toestand van de agent wordt anders. Positie en snelheid veranderen. Een agent in het achterop komend verkeer neemt hopelijk die verandering waar, want de omgeving voor deze agent is ook veranderd. Kortom een multi-agentsysteem is een samenspel van waarnemingen, acties en reacties.
</p>
<div class ='hammer treeview' style="overflow: hidden;">Vragen
<div style="padding-left:20px;">
<p>Denk eens na over het volgende probleem. Beantwoord daarna de vragen.</p>
<p>In een zelfrijdende auto zit een man. Deze man is in bezit van een agent van een applicatie die zelfrijden van een auto mogelijk maakt. De auto rijdt ongestoord met een redelijke snelheid als er plots een vrouw met een kinderwagen oversteekt. De agent heeft niet genoeg tijd om te remmen om de oversteker te redden. Rechts van de weg staat een boom. De agent moet heel snel handelen; er is geen tijd om te vragen wat de inzittende man wil. De agent kan twee acties uitvoeren:
</p>
<dl>
<dt>Actie A: Remmen
</dt>
<dd>Als de agent remt, dan komt de auto tot stilstand en dan is de inzittende man gered. De vrouw met de kinderwagen overleeft dit niet.
</dd>
<dt>Actie B: Tegen de boom aanrijden
</dt>
<dd>Als de agent naar rechts stuurt en tegen de boom aanrijdt, dan is de vrouw met de kinderwagen gered. De inzittende man overleeft dit niet.
</dd>
</dl>
<ol>
<li>Wat moet een kunstmatige intelligente agent volgens jou leren, actie A of actie B?
<div class="caret doel">antwoord</div>
<div class="nested">
Dit is een bekend ethisch dilemma waar agents mee te maken kunnen krijgen. Hier is eigenlijk geen goed of fout antwoord op te geven. Het doel van deze vraag is om jou te laten inzien dat het soms niet eenvoudig is om de juiste actie te bepalen. Een mogelijk antwoord is actie B, omdat daar meer mensenlevens mee bespaard worden. Je kunt ook actie A beargumenteren, omdat de agent in dienst staat van de man in de auto.
</div>
</li>
<li>Stel dat we de rollen omdraaien. In de auto zit nu een vrouw met een kind en een man steekt plotseling over. Verandert dit jouw vorige antwoord? Waarom wel/niet?
<div class="caret doel">antwoord</div>
<div class="nested">
Net als bij de vorige vraag is deze niet goed of fout te beantwoorden, zolang je een goede onderbouwing geeft.
</div>
</li>
<li>Stel er komen vliegende drones die patiënten van geneesmiddelen voorzien. Welke agents zijn er zeker in de omgeving van de drone te vinden. Geef aan tot welke type de agents behoren.
<div class="caret doel">antwoord</div>
<div class="nested">
Vergelijkbare drones (Intelligente agent),<br/>
Patiënt (Intelligente agent),<br/>
Huizen (Passieve agents),<br/>
Apotheek (Intelligente agent),<br/>
...
</div>
</li>
<li>Geef voorbeelden bij de drie verschillende omgevingen waarin een agent zich kan bevinden.
<div class="caret doel">antwoord</div>
<div class="nested">
Zie de tekst.
</div>
</li>
</ol>
</div>
</div>
<a id="Kenmerken"></a><br/>
<h2>Kenmerken van multi-agentsysteem</h2>
<p>Er zijn veel verschillende kenmerken van multi-agentsystemen. We hebben tot dusver al een aantal kenmerken genoemd. We zetten de belangrijkste kenmerken van een multi-agentsysteem hier op een rijtje:
</p>
<dl>
<dt>De organisatie binnen een multi-agentsysteem is <i>decentraal</i>
</dt>
<dd>Een belangrijk kenmerk van een multi-agentsysteem is dat het decentraal is. Dat houdt in dat er niet zoiets bestaat als een coördinator of centraal bestuur. De agents hebben tot op zekere hoogte autonomie, wat betekent dat ze zelf bepalen wat en wanneer ze iets doen om hun doelen te behalen. Denk weer even terug aan de zelfrijdende auto. Elke auto gaat zijn eigen weg. Er is geen centraal beheer dat alle zelfrijdende auto’s bestuurt.
</dd>
<dt>Agents functioneren binnen een <i>omgeving</i>
</dt>
<dd>Een agent moet zich in een omgeving bevinden. Binnen zo’n omgeving moet een agent het volgende kunnen doen:
<ul>
<li>Observaties van de omgeving. De agent moet een deel van de omgeving kunnen waarnemen. In het geval van een zelfrijdende auto of andersoortige robot gebeurt dat door middel van sensoren en camera’s.
</li>
<li>Acties binnen de omgeving. De agent moet invloed kunnen uitoefenen op een omgeving door middel van acties. Bij een zelfrijdende auto of andersoortige robot zou je spreken van <strong>actuatoren</strong>. Een actuator is het tegengestelde van een sensor: er komt geen informatie binnen, maar er wordt iets naar buiten gebracht. Remmen, sturen of toeteren zouden acties kunnen zijn van een zelfrijdende auto.
</li>
</ul>
</dd>
<dt>Agents doen <i>aannames</i>
</dt>
<dd>Agents nemen altijd maar <strong>een deel van hun omgeving</strong> waar. Dit is niet omdat deze agents niet alles mógen zien, maar eerder omdat de omgeving voor een agent te complex is om volledig te kunnen overzien. Agents zijn dus niet alwetend over hun omgeving, maar hebben kennis over die omgeving die ook wel aannames over de omgeving worden genoemd. Een aanname is dus iets wat een agent eerder heeft waargenomen en geleerd, maar wat niet per se hoeft te kloppen. Bijvoorbeeld, een ‘stofzuiger-agent’ heeft met zijn sensor een plantenbak waargenomen en legt vast dat er op die locatie een plantenbak staat. Als iemand vervolgens de plantenbak weghaalt en de agent heeft deze actie niet waargenomen, dan heeft de agent nog de, inmiddels onjuiste, kennis dat de plantenbak er nog staat. Pas als de agent weer opnieuw op de oude plek van de plantenbak komt, neemt deze waar dat de aanname niet meer klopt en wordt deze aangepast.
</dd>
</dl>
<div class ='hammer treeview' style="overflow: hidden;">Vragen
<div style="padding-left:25px;">
<ol start="5">
<li>Stel dat je een agent voor een zelfrijdende auto hebt. Wat zou dan een omgeving kunnen zijn? Geef ook een voorbeeld van een mogelijke observatie en een actie.
<div class="caret doel">antwoord</div>
<div class="nested">
Een omgeving is de snelweg met alleen andere auto's. Een andere omgeving is een smalle gracht in Amsterdam met eenrichtingsverkeer voor auto's en fietsers en wandelaars op de rijbaan. Op de snelweg observeert de auto met de <b>gps</b> dat de afslag van het doel naderbij komt. De auto <b>stuurt</b> naar de afrit.
</div>
</li>
<li>Noem 3 kenmerken van een multi-agentsysteem.
<div class="caret doel">antwoord</div>
<div class="nested">
De organisatie binnen een multi-agentsysteem is decentraal.<br/>
Agents functioneren binnen een omgeving.<br/>
Agents doen aannames.
</div>
</li>
<li>Bekijk de video hieronder:
Er zijn meerdere robots te zien, maar de rijdende robotkast is het meest in beeld. Waaruit bestaat de omgeving van deze robot? Wat is de hoofdtaak van de robot en welke subdoelen zijn nodig voor goed functioneren.
<div class="center" style="width: 560px; overflow:hidden;">
<iframe width="560" height="315" src="https://www.youtube.com/embed/a77XyUI-zXo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="caret doel">antwoord</div>
<div class="nested">
De robot bevindt zich in het magazijn en heeft behalve de inrichting van magazijn ook nog de andere robotkasten als omgeving. <br/>Het hoofddoel is het rijden naar de inpakafdeling en weer terug
naar een lege plek na aflevering.<br/>
De subdoelen zijn: niet botsen met andere robots en netjes parkeren.
</div>
</li>
</ol>
</div>
</div>
<p>
</p>
<a id="Modellen"></a><br/>
<h2>Agent-based modellen in multi-agentsystemen</h2>
<p>Hoewel agent-based modellering niet het zelfde is als een multi-agentsysteem worden er wel elementen uit het onderzoek in agent-based modellering ingezet in multi-agentsystemen om doelen van de applicaties te kunnen bereiken. We bekijken een competitief en een samenwerkend model.
</p>
<a id="Competitief"></a><br/>
<h3>Competitief: Speltheorie</h3>
<p>Agents zijn onafhankelijk en moeten dus zelf beslissingen nemen zonder dat er mensen bij betrokken zijn. In een multi-agentsysteem moet elke agent ook rekening houden met de acties van anderen en de consequenties daarvan. Soms, maar niet altijd, zijn de doelen van agents onderling tegenstrijdig of wel competitief. Als dat het geval is, dan moet een agent slimme keuzes maken. Daarbij kan <a href="https://towardsdatascience.com/game-theory-in-artificial-intelligence-57a7937e1b88" target="technieken">speltheorie<a> toegepast worden.
</p>
<div class="theorie center" style="width: 600px;">
<img src="images/game_theory.jpeg" style="width: 600px;"/></br/>
<caption>Figuur 2: Toepassingsgebieden speltheorie
</caption>
</div>
<p>Bij speltheorie worden situaties vertaald naar punten die deelnemers kunnen verdienen. Net zoals bij een spelletje is het doel van een agent om zo veel mogelijk punten te scoren. Een agent kan een bepaalde actie doen, waardoor een bepaalde situatie ontstaat. Voor elke situatie die kan ontstaan, verdienen de agents die meedoen meer of minder punten.
</p>
<p>Speltheorie wordt vaak geïllustreerd door middel van een matrix. In de matrix staan de acties van alle spelers tegenover elkaar. Hieronder zie je een voorbeeld van hoe je het spelletje steen-papier-schaar in een matrix zet:
</p>
<div class="theorie center" style="width: 350px;">
<img src="images/steen_papier_schaar_yed.svg" /></br/>
<caption>Figuur 3: Pay-off matrix steen papier schaar
</caption>
</div>
<p>Zoals je ziet, verdienen de spelers punten als ze in een bepaalde situatie terechtkomen. In dit geval heeft elke speler drie opties om te spelen: steen, papier of schaar. De score wordt bepaald nadat beide spelers hun keuze hebben gemaakt. In dit voorbeeld heeft elke speler maar een paar opties. Er zijn echter ook situaties waarin je per speler tientallen opties hebt of nog wel meer. In het steen papier schaar spel is de puntenverdeling in balans. Er is eigenlijk geen beste keus te maken om te winnen. Dit is ook niet altijd het geval.
</p>
<p>Neem bijvoorbeeld een schaakcomputer. Elke mogelijke zet van beide spelers is een optie en zou je in zo’n matrix kunnen zetten. Daarnaast hebben de stukken niet een gelijk waarde, een pion die een koningin slaat verdient meer punten dan andersom. Een schaakcomputer gebruikt soortgelijke matrices, maar rekent zelfs de zetten nog door: er worden dan heel veel van zulke matrices berekend. De zet met de meest gunstige uitkomst wordt dan gekozen. Speltheorie leent zich goed voor zulk soort games.
</p>
<a id="Prisoners"></a><br/>
<h3>Prisoners Dilemma</h3>
<p>De volgende opdracht is klassikaal. Voer deze uit voordat je doorgaat met de theorie.
</p>
<div class ='hammer treeview' style="overflow: hidden;">Groepsopdracht
<div style="padding-left:27px;">
<h4>Benodigdheden</h4>
<p>Per persoon een pen en een aantal papiertjes.
</p>
<h4>Voorbereiding</h4>
<p>Verdeel de klas in groepjes van minimaal 2 personen. Het beste is als er groepjes zijn met verschillende groottes, variërend van 2 tot 6 personen.
</p>
<h4>Werking</h4>
<p>Elk groepje speelt afzonderlijk 10 beurten. Aan het begin van elke beurt schrijft iedereen een ‘1’ of een ‘0’ op een briefje, zonder dat de anderen het zien. Als iedereen een getal heeft opgeschreven, dan laat iedereen tegelijk zijn/haar getal binnen de groep zien. Afhankelijk van de getallen die zijn opgeschreven, krijgen alle deelnemers van de groep punten. Iedereen heeft als doel om als <i>individu</i> de meeste punten van de <i>klas</i> te halen.
<p>De regels voor het tellen van de punten zijn als volgt:
</p>
<div class="theorie center" style="width: 500px;">
<img src="images/spel_yed.svg" />
</div>
<div class="nested">
<ol>
<li>Wie heeft er gewonnen? Zat deze persoon in een klein groepje of een grotere?
<div class="caret doel">antwoord</div>
<div class="nested">
Hoe groter de groep, hoe groter de kans dat er iemand ‘0’ opschrijft. Dan is een klein groepje dus succesvoller. Maar de grootste kans om te winnen heb je tussen mensen die je goed kunt vertrouwen. Je vrienden bijvoorbeeld.
</div>
</li>
<li>Heeft de winnaar vaker 1 of 0 opgeschreven?
<div class="caret doel">antwoord</div>
<div class="nested">
Waarschijnlijk heeft de winnaar meestal ‘1’ opgeschreven om vertrouwen te winnen. Misschien in de laatste beurten schreef hij/zij ‘0’.
</div>
</li>
<li>Werd er in veel groepjes overlegd?
<div class="caret doel">antwoord</div>
<div class="nested">
Het is aantrekkelijk om hierbij te overleggen en een strategie af te spreken. Het probleem is alleen dat je niet weet of je de anderen kunt vertrouwen.
</div>
</li>
<li>Denk je dat de uitslag anders was geweest met of zonder overleg in de groepjes?
<div class="caret doel">antwoord</div>
<div class="nested">
Het zal misschien niet eens veel uitmaken. Iedereen heeft een individueel doel en de medespelers zijn tegenstanders. Je hebt dan dus een motief om te liegen over de strategie die je afspreekt.
</div>
</li>
<li>Zou je jouw eigen strategie aanpassen nu je ervaring hebt met dit spel?
<div class="caret doel">antwoord</div>
<div class="nested">
Als je met dezelfde mensen speelt, is dat misschien wel handig. Ze hebben immers de strategie die je eerder speelde al gezien.
</div>
</li>
</ol>
</div>
</div>
</div>
<br/>
<div class="rechts theorie idea" style="width: 250px;">
<strong>John Nash</strong>
<div style="padding-left: 20px;">
<div class="theorie center" style="width: 200px;">
<img src="images/JohnNash.jfif" />
</div>
John Forbes Nash jr. (Bluefield, 13 juni 1928 – Monroe Township, 23 mei 2015) was een Amerikaans wiskundige, die in zijn beste tijd geniaal genoemd werd. Hij kreeg vooral bekendheid door zijn werk op het gebied van de speltheorie, die voornamelijk haar toepassing kent in de economie. Nash ontving hiervoor samen met twee andere speltheoretici, Reinhard Selten en John Harsanyi, de Prijs van de Zweedse Rijksbank voor economie (de Nobelprijs voor de Economie) in 1994. De nobelprijs kreeg hij pas na het overwinnen van psychische problemen. Over zijn leven is de film <a href="https://nl.wikipedia.org/wiki/A_Beautiful_Mind" target="technieken">A beautiful mind</a> verschenen.
</div>
</div>
<p>Je hebt zojuist kennisgemaakt met het <strong>prisoners dilemma</strong>. Dit is een probleemstelling waar een agent mee te maken kan krijgen. Het probleem bij het prisoners dilemma is de keuze tussen de winst van de groep en de winst van het individu. Als alle partijen in een prisoners dilemma voor de groep kiezen (in de opdracht was dat ‘1’ opschrijven) dan wordt iedereen daar beter van. Helaas weet je niet of je iedereen kunt vertrouwen.
</p>
<p>Het prisoners dilemma wordt vaak uitgelegd met het voorbeeld van twee verdachten bij de politie. Alice en Bob zijn opgepakt voor een overval en worden allebei afzonderlijk verhoord. De verhoorder vertelt beide verdachten hetzelfde: “Als jij meewerkt en getuigt, dan ga je vrij en zit je partner een straf van 10 jaar uit. Maar als jullie allebei tegen elkaar getuigen, dan zitten jullie allebei vast voor 5 jaar.” Alice en Bob weten dat als ze beiden weigeren te getuigen, ze beiden slechts een straf van 1 jaar krijgen. Wat is nu de meest logische optie: getuigen of weigeren? Je kunt een prisoners dilemma in een matrix vatten om het overzichtelijk te maken:
</p>
<div class="theorie center" style="width: 350px; overflow:hidden;">
<img src="images/prisoner_yed.svg" />
</div>
<a id="Dominante"></a><br/>
<h3>Dominante strategie</h3>
<p>De matrix hierboven helpt om het probleem inzichtelijker te maken en te bepalen wat de meest logische keus is. Stel dat je in de schoenen van Alice staat. Als Bob kiest om te getuigen, dan krijgt Alice 5 jaar als ze zelf ook getuigt en 10 jaar als ze weigert; getuigen is dan de betere keus. Als Bob er voor kiest om te weigeren, dan krijgt Alice 0 jaar als ze getuigt en 1 jaar als ze weigert; ook hier is getuigen de betere keus. In dit voorbeeld is getuigen een zogenaamde <strong>dominante strategie</strong>. In dit geval geldt voor Alice dat de strategie om te getuigen de strategie om te weigeren <strong>sterk domineert</strong>. Dat is zo omdat alle uitkomsten voor Alice bij getuigen beter zijn dan weigeren, ongeacht welke strategie Bob kiest.
</p>
<p>Voor Bob geldt trouwens hetzelfde: ook zijn dominante strategie is om te getuigen. Waarschijnlijk zullen Bob en Alice beiden voor hun dominante strategie kiezen en getuigen. Het is namelijk voor geen van beiden aantrekkelijk om van deze strategie af te wijken: ze krijgen dan meer straf. We spreken hier van een <strong>dominante strategie evenwicht</strong>, omdat alle partijen in hun dominante strategie blijven hangen. Een andere naam hiervoor die vaak gebruikt wordt is <strong>Nash evenwicht</strong> (naar John Nash, de bedenker hiervan).
</p>
<div class ='hammer treeview' style="overflow: hidden;">Vragen
<div style="padding-left:20px;">
<ol start="8">
<li>Stel een matrix op voor de groepsopdracht aan het begin van deze paragraaf.
<div class="caret doel">antwoord</div>
<div class="nested">
<div class="theorie center" style="width: 350px; overflow:hidden;">
<img src="images/spel01_matrix_yed.svg" />
</div>
</div>
</li>
<li>Wat is de dominante strategie?
<div class="caret doel">antwoord</div>
<div class="nested">
Stel dat alle andere groepsleden 0 opschrijven. Dan is het gunstiger voor jou om 0 op te schrijven. Stel dat alle andere groepsleden 1 opschrijven. Dan is het nog steeds gunstiger voor jou om 0 op te schrijven. De dominante strategie is dus om 0 op te schrijven.
</div>
</li>
<li>Leg uit of de dominante strategie sterk domineert.
<div class="caret doel">antwoord</div>
<div class="nested">
Ja, de strategie om 0 op te schrijven is een sterk dominante strategie. De uitkomst is altijd beter wanneer je 0 opschrijft. Voor het individu is dit de beste strategie, maar voor de groep als geheel niet. De groep als geheel kan de meeste punten verdienen door altijd 1 op te schrijven.
</div>
</li>
<li>Is er ook sprake van Nash evenwicht?
<div class="caret doel">antwoord</div>
<div class="nested">
Er is hier sprake van een Nash evenwicht. Omdat voor alle groepsleden geldt dat het ongunstig is om van zijn/haar dominante strategie af te wijken. Iedereen blijft dus bij dezelfde strategie.
</div>
</li>
<li>Zoek zelf een voorbeeld van het prisoners dilemma in het dagelijks leven.
<div class="caret doel">antwoord</div>
<div class="nested">
Een voorbeeld van het prisoners dilemma is het gebruik van doping in de sportwereld. In sommige sporten wordt er veel doping gebruikt. Als alle andere sporters ook doping gebruiken, dan ben jij in het nadeel door dat niet te doen. Als jij als enige doping gebruikt en de rest doet dat niet, dan ben jij in het voordeel.
</div>
</li>
</ol>
</div>
</div>
<p>Je kunt speltheorie niet alleen bij games gebruiken, maar ook in het echte leven. Als een zelfrijdende auto is voorbereid voor deelname in het verkeer moet deze voorbereid zijn op acties van andere agents, waaronder andere zelfrijdende auto's. Laten we ons voorstellen dat we proberen de verkeersstroom in een stad te verbeteren met behulp van een groep AI-aangedreven zelfrijdende auto's. Op zichzelf kan elk van de auto's perfect communiceren met de externe omgeving, maar het kan ingewikkelder worden als we de auto's als een groep willen laten denken. Een auto kan bijvoorbeeld in conflict komen met een andere omdat het voor beiden het handigst is om een bepaalde route te volgen. Speltheorie kan dan deel uitmaken van het leerproces om de AI verstandige keuzes uit te laten voeren.
</p>
<a id="Samenwerkend"></a><br/>
<h3>Samenwerkend: Zwermintelligentie</h3>
<div class="theorie rechts" style="width: 200px; overflow:hidden;">
<img src="images/image2.png" style="width: 200px;"; />
</div>
<p>Als een systeem bestaat uit een groot aantal eenvoudige eenheden die gezamenlijk een complexe taak kunnen uitvoeren, dan is er sprake van zwermintelligentie. Zoals de meeste uitvindingen van de mens, is ook de zwermintelligentie gebaseerd op een verschijnsel uit de natuur. Denk aan een zwerm spreeuwen die samen een golf aan bewegingen maken, een kolonne mieren op weg naar voedsel, trekkende gnoes in Afrika en keizerpinguïns op Antarctica.
</p>
<div class="center" style="width: 560px; overflow:hidden;">
<iframe style="width: 560px; height:315px;" src="https://www.youtube.com/embed/V4f_1_r80RY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p>Zwermintelligentie in AI is een bijzondere vorm van een multi-agentsysteem: het voldoet aan alle drie de genoemde kenmerken van de vorige paragraaf. Je moet zwermintelligentie zien als een subgroep van de bredere groep van multi-agentsystemen. Kenmerkend voor een taak voor zwermintelligentie is dat de agents individueel niet complex hoeven te zijn en de taak vrij eenvoudig is. Het resulterende samenwerkende gedrag lijkt dan intelligent.
</p>
<p>Kenmerken van een zwermintelligentie:
</p>
<ul>
<li>Er zijn veel agents.
</li>
<li>De agents van de zwerm reageren sterk op elkaar of werken samen.
</li>
<li>Het gedrag van de individuele agents voor de zwermtaak is eenvoudig.
</li>
<li>Het gedrag van de zwerm is complex.
</li>
</ul>
<p>Het conflict dat zelfrijdende auto's in de speltheorie sectie hebben opgeworpen zou wel eens door het inzetten van <a href="https://www.bosch-presse.de/pressportal/de/en/swarm-intelligence-for-automated-driving-231431.html" target="technieken">zwermintelligentie</a> kunnen worden opgelost. Hoewel de agents een conflicterend doel hebben namelijk dezelfde koers, kan er bijvoorbeeld voor worden gekozen om dicht achter elkaar aan te rijden om zo energie uit te sparen. Voorwaarde is dan natuurlijk wel dat de auto's met elkaar kunnen communiceren. Het 5G netwerk is deels ontworpen met zulke doelen in het vooruitzicht.
</p>
<div class ='hammer treeview' style="overflow: hidden;">Onderzoek
<div style="padding-left:20px;">
In de applet hieronder (open de volledige applet door op de
<a href="SLO-apps/Swarm/index.html" target="technieken">deze link</a> te klikken) kun je experimenteren met attractie en afstoting om het zwermgedrag te veranderen. Wil je hier meer over weten ga dan naar de bron: <a href="http://jobtalle.com/swarm_behaviour.html" target="_blank">Job Talle</a>. De schuifjes hebben de volgende betekenis.<br/>
<ul class="asusual">
<li><em>Agent snelheid (speed)</em> bepaalt de minimum snelheid van een agent; een agent die niet wordt beïnvloed door de omgeving zal met deze snelheid bewegen.</li>
<li>De zones van <em>Afstoting (repulsion)</em>, <em>uitlijning (alignment)</em> en <em>aantrekkingskracht (attraction)</em> bepalen de stralen van cirkelsegmenten rond de agent waarin deze omgevingsinvloeden werken. Alle invloeden tellen bij elkaar op, resulterend in het getoonde gedrag.</li>
<li>Het cirkelsegment wordt bepaald door <em>de kijkhoek (attraction angle)</em> van de agenten in graden.</li>
<li>De krachten (strength / force) bepalen de grootte van de invloed. Bijvoorbeeld, als een agent een andere agent in zijn afstotingszone heeft dan zal de snelheid waarmee deze agent zich verwijdert worden bepaalt door de grootte van de kracht <em>Repulsion force</em>. Als er meer agenten in de afstotingszonde zijn dan wordt de afstotingskracht evenredig groter. Dus hoe groter het aantal agenten hoe groter
de snelheid waarmee de agent weg gaat.</li>
<li><em>Zwaartekracht (Gravitation force)</em> bepaalt de kracht waarmee agents naar het midden van het scherm worden getrokken. Deze kracht zorgt er ondermeer voor dat en groep agenten als één geheel kunnen draaien.</li>
</ul>
<div class="caret doel">Voor de wiskundigen onder jullie, klap deze sectie uit</div>
<div class="nested"><p>Per stap wordt de snelheid van een agent volgens de volgende formule veranderd:</p>
$$\vec{v_{volgende}} = |\vec{v}| * s + \sum_{n=1}^{rc} |\vec{r_n}| * f_r + \sum_{n=1}^{ac} |\vec{a_n}| * f_a + \sum_{n=1}^{tc} |\vec{t_n}| * f_t$$
<p>Hierin is $\vec{v}$ de snelheid, $s$ de snelheid van de agent, $rc$, $ac$ en $tc$ zijn de aantallen andere agenten in de afstotings-, uitlijnings en aantrekkingskracht-zone van de agent. $\vec{r_x}$, $\vec{a_x}$ en $\vec{t_x}$ zijn de groottes van de afstotings-, uitlijnings en aantrekkingskracht-vectoren van agent $x$, als laatste zin $f_r$, $f_a$ en $f_t$ de krachten ingesteld voor afstoting, uitlijning en aantrekkingskracht. De zwaartekracht is nog niet meegenomen in deze formule</p>
</div><br/>
Onderzoeksvragen:
<div style="padding-left:25px;">
<ol>
<li>Zet alle krachten op nul en druk op scatter, wat neem je waar?
<div class="caret doel">antwoord</div>
<div class="nested">
Er is geen groepsvorming.
</div>
</li>
<li>Onderzoek het effect van alleen de uitlijningskracht door de zone en de kracht maximaal te kiezen. Wat neem je waar?
<div class="caret doel">antwoord</div>
<div class="nested">
Alle agents gaan in de zelfde richting bewegen.
</div>
</li>
<li>Breidt je onderzoek naar de invloed van afzonderlijke krachten uit. Wat neem je waar?
<div class="caret doel">antwoord</div>
<div class="nested">
Zwaartekracht: Alle agents bewegen zich naar het midden. Ze beïnvloeden elkaar echter niet.<br/>
Afstotingskracht: Als de snelheid van de agent hoog is zie je niet veel
veel verschil met totaal geen krachten, er zijn wel minder "botsingen". Bij lage snelheden zie je dat iedere agent min of meer een eigen gebiedje krijgt.<br/>
Aantrekkingskracht: Als de hoek van aantrekkingskracht 0 is is de
situatie gelijk aan geen krachten. Met een hoek van 360 graden zie
je dat de agents clusteren net als bij zwaartekracht, maar er kunnen
meerdere clusters zijn en de cluster zit niet midden in het scherm.
De agents beïnvloeden zich hier het meest.
</div>
</li>
<li>Probeer eens situaties te maken waar nauwelijks groepsvorming is en situaties waar de agents zowat aan elkaar vast zitten.
</li>
<li>Vind je na dit experiment dat de zwerm intelligent is of vind je dat het alleen maar zo lijkt? Geef aan waarom je jouw conclusie trekt en vergelijk jouw conclusie met een andere leerling.
</li>
</ol>
</div>
<iframe class="center" style="width: 90%; height: 550px; border:none;" src="SLO-apps/Swarm/index.html">
</iframe><br/>
<caption>Bron: <a href="http://jobtalle.com/swarm_behaviour.html" target="_blank">Job Talle</a> aangepast door <a href="https://github.com/DanielsWrath/Swarm" target="_blank">Daniël Haitink</a></caption>
</div>
</div>
</article>
</body>
</html>