• No results found

Altru¨ısme in DIAL

N/A
N/A
Protected

Academic year: 2021

Share "Altru¨ısme in DIAL"

Copied!
53
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Rijksuniversiteit Groningen

Scriptie

Altru¨ısme in DIAL

Author:

Safet Acifovic

Supervisor:

Prof. Dr. G.R. Renardel de Lavalette Second supervisor:

Drs. P. Dykstra

Opleidingsinstituut Informatica & Cognitie

11 juli 2013

(2)

“He who was ready to sacrifice his life, as many a savage has been, rather than betray his comrades, would often leave no offspring to inherit his noble nature”

- DARWIN

(3)

RIJKSUNIVERSITEIT GRONINGEN

Abstract

Faculteit Wiskunde en Natuurwetenschappen Opleidingsinstituut Informatica & Cognitie

Altru¨ısme in DIAL door Safet Acifovic

DIAL is een multi-agent-based model om opinie-dynamiek in sociale groepen te simuleren en te analyseren. Door altru¨ısme, een extreme vorm van sociaal gedrag, toe te voegen aan DIAL, kan er meer inzicht worden verkregen in het model. Uit verschillende tests blijkt dat DIAL sociaal gedraag sterk afweert. Altru¨ısme moet in DIAL aanzienlijk worden beloond, wil het in DIAL kunnen blijven bestaan.

(4)

Dankwoord

Bij dezen wil ik graag Prof. Dr. G.R. Renardel de Lavalette en Drs. P. Dykstra bedanken voor goede begeleiding en samenwerking. Daarnaast bedank ik mijn vriendin Tanja Wilming voor het corrigeren van de stijl- en taalfouten.

iv

(5)

Inhoudsopgave

Abstract iii

Dankwoord iv

1 Inleiding 1

1.1 Aanleiding . . . 1

1.2 Onderzoeksvragen . . . 3

1.3 Opbouw . . . 3

2 Theoretische achtergrond 5 2.1 Het model DIAL . . . 5

2.1.1 Agents . . . 5

2.1.2 Dialogen . . . 5

2.1.3 Topic space . . . 6

2.1.4 Cycli . . . 6

2.2 Altru¨ısme . . . 7

2.2.1 Fitness . . . 7

2.2.2 Kin selectie . . . 7

3 Analyse 9 3.1 Pseudocode . . . 9

3.1.1 Syntax . . . 10

3.2 Globale variabelen . . . 10

3.2.1 Hulpfuncties . . . 11

3.3 Procedures . . . 12

3.3.1 Essenti¨ele procedures in DIAL . . . 12

3.3.2 to setup . . . 13

3.3.3 to go . . . 14

3.3.4 to act . . . 15

3.3.5 to announce . . . 16

3.3.6 to attack . . . 18

3.3.7 to reply-attack . . . 20

4 Methodologie 23 4.1 Altru¨ısme in DIAL . . . 23

v

(6)

Inhoudsopgave vi

4.2 Implementatie . . . 27

4.3 Onderzoeksopzet . . . 28

5 Resultaten 31 5.1 Implementatie 1 (Delen van de winst): de resultaten . . . 31

5.2 Implementatie 2 (Herverdeling): de resultaten . . . 31

5.2.1 De beloningsfactor: alt-reward . . . 32

5.2.2 De zwakke selectie: kin-threshold . . . 36

5.2.3 Het percentage altru¨ısten: altruist-ratio . . . 38

5.2.4 Wel of niet delen: rich-border en poor-border . . . 41

5.2.5 De sterke selectie . . . 43

6 Conclusie 45

Bibliografie 47

(7)

Hoofdstuk 1

Inleiding

1.1 Aanleiding

In 2012 introduceerde Piter Dykstra DIAL, een multi-agent-based model om opinie- dynamiek in sociale groepen te simuleren en te analyseren [Dykstra et al., 2013]. Door middel van DIAL toonde Dykstra aan dat in een samenleving waarin het in harmonie zijn met de sociale omgeving wordt beloond, radicalisatie in groepen kan onstaan door extremer wordende individuele opvattingen.

DIAL is een vrij interessant model, ten eerste omdat het makkelijk is aan te passen en uit te breiden, en ten tweede omdat het een realistische vorm van opinie-dynamiek kent.

Het model van Dykstra is daarom uitermate geschikt om toe te passen op allerlei andere sociale fenomenen en theorie¨en waarin opinie- en groepsdynamiek een belangrijke rol spelen.

Sociale netwerken, zoals Facebook en Twitter zijn tegenwoordig niet weg te denken. Ze spelen een essenti¨ele rol in hoe wij communiceren met elkaar en hoe wij onze denkbeel- den vormen [Cheung et al., 2011]. Doordat alles en iedereen met elkaar verbonden is via het internet, verloopt de informatieoverdracht vele malen sneller en is de hoeveelheid in- formatie die beschikbaar is vele malen groter. Mensen worden overladen met informatie.

Dit heeft natuurlijk gevolgen voor de opinie-dynamiek binnen onze samenleving. Door sociale netwerken, zoals Facebook, te simuleren in DIAL is het mogelijk om een beter inzicht te krijgen in de gevolgen van zulke sociale netwerken.

In dit onderzoek wordt een sociaal fenomeen geanalyseerd, dat niet zozeer betrekking heeft op de opinie-dynamiek binnen een groep, maar meer op de groepsdynamiek. Het sociale fenomeen in kwestie is altru¨ısme, een extreme vorm van sociaal gedrag. Altru¨ısme

1

(8)

Hoofdstuk 1. Inleiding 2 is gedrag waarbij het welzijn van anderen boven het eigen welzijn wordt geplaatst. Al- tru¨ısme kent vele vormen en komt voor in verschillende sociale groepen. Echt altru¨ıstisch gedrag, dus zonder enige vorm van eigenbelang, is bij de mens niet onmiddellijk waar te nemen en is al decennia lang een onderwerp van discussie in de psychologie en filosofie.

Altru¨ıstisch gedrag dat voorkomt in het dierenrijk is beter waar te nemen en is interes- santer voor dit onderzoek omdat het eenvoudiger toe te passen is in DIAL. Een voorbeeld van altru¨ıstisch en sociaal gedrag in het dierenrijk is terug te vinden bij vervets (blauw- apen). Vervets waarschuwen de rest van de groep als roofdieren naderen, terwijl ze hierdoor zelf meer gevaar lopen om aangevallen te worden [Cheney and Seyfarth, 1990].

Andere vormen van altru¨ısme zijn terug te vinden bij sociale insecten. Werkmieren, bij- voorbeeld, plaatsen het welzijn van de kolonie boven het eigen welzijn. Bij werkmieren is er zelfs sprake van maximaal altru¨ıstisch gedrag omdat ze zich niet kunnen voortplanten en hun hele leven dus draait om de kolonie en de koningin [Bourke, 1995].

Wat altru¨ısme juist zo speciaal maakt is het feit dat, vanuit een eenvoudig darwinistisch oogpunt, altru¨ısme niet kan bestaan [Okasha, 2009]. Vervets die zich opofferen voor de groep, en dus het “altru¨ıstische gen” met zich meedragen, zullen door natuurlijke selectie worden benadeeld en uiteindelijk uitsterven. Dit houdt in dat altru¨ıstisch gedrag niet meer kan voorkomen in de groep vervets. Het tegengestelde is echter waar. Altru¨ısme is dus niet zo vanzelfsprekend.

Altru¨ısme is een interessant sociaal fenomeen dat voorkomt in verschillende sociale groe- pen in verschillende vormen en maten. Het toepassen van altru¨ısme in een cognitief multi-agent-based model is niet eerder gedaan en kan interessante resultaten opleveren.

De verkregen resultaten kunnen vervolgens een beter inzicht bieden in altru¨ısme. Daar- naast is DIAL een redelijk nieuw model en het blootstellen van DIAL aan verandering van buitenaf (i.e. aanpassingen en toevoegingen) kan nieuwe bevindingen over DIAL opleveren. Het doel van dit onderzoek is ook om DIAL vanuit een ander perspectief te bekijken, waardoor er een beter inzicht in het model kan worden verschaft. Er zal daarom ook aandacht worden besteed aan de implementatie van DIAL.

(9)

Hoofdstuk 1. Inleiding 3

1.2 Onderzoeksvragen

Om in het onderzoek structuur aan te brengen, volgen hier een aantal onderzoeksvragen:

 Op welke manier is het mogelijk om altru¨ısme toe te voegen aan DIAL?

 Waar moet altru¨ıstisch gedrag in DIAL plaatsvinden?

 Is het gunstig voor de agents in DIAL om altru¨ıstisch gedrag te vertonen?

 Wat is het effect van altru¨ısme op DIAL?

 Kan altru¨ısme blijven bestaan in DIAL?

1.3 Opbouw

In hoofdstuk 2 wordt de theoretische kant van DIAL en altru¨ısme belicht. De werking van DIAL wordt behandeld en enkele belangrijke begrippen met betrekking tot altru¨ısme worden uitgelegd. In hoofdstuk 3 volgt een analyse van DIAL. Hoofdstuk 4 behandelt de gebruikte methodologie en in hoofdstuk 5 worden de resultaten gepresenteerd en besproken. Uiteindelijk volgt in hoofdstuk 6 de conclusie.

(10)
(11)

Hoofdstuk 2

Theoretische achtergrond

In het eerste gedeelte van dit hoofdstuk wordt kort de theoretische kant van DIAL belicht, waarna in het tweede gedeelte het altru¨ısme in meer detail wordt behandeld.

2.1 Het model DIAL

In deze sectie wordt het model DIAL globaal besproken. Begrippen die aan bod komen zijn: agents, dialogen, opvattingen, reputatiepunten, topic space en cycli. In sectie 2.2 wordt het altru¨ısme in meer detail behandeld.

2.1.1 Agents

DIAL bestaat uit sociaal-cognitieve agents. Dit houdt in dat agents zich bewust zijn van hun sociale omgeving. Daarnaast zijn agents intelligent. Ze kunnen in zekere mate redeneren over de opvattingen van andere agents, elke agent in DIAL beschikt namelijk over opvattingen omtrent bepaalde stellingen.

2.1.2 Dialogen

De interactie tussen agents gebeurt door middel van dialogen, waarin agents, naast het verdedigen van eigen opvattingen, proberen de andere agents te overtuigen. Een agent kan een dialoog starten door een uitspraak te doen over zijn opvattingen. Deze uitspraak wordt vervolgens door andere agents opgevangen, waarna agents ervoor kunnen kiezen om een dialoog aan te gaan. Agents zullen alleen een dialoog aangaan indien ze denken

5

(12)

Hoofdstuk 2. Theoretische achtergrond 6 dat ze deze kunnen winnen. Het winnen van een dialoog levert de winnende agent reputatiepunten op. Het verliezen van een dialoog kost reputatiepunten. De verloren reputatiepunten gaan dan direct naar de winnende partij. Er is dus sprake van een nulsom.

Reputatiepunten zijn een essenti¨eel ingredi¨ent in DIAL. De doelstelling van elke agent is het maximaliseren van zijn reputatiepunten, oftewel het zovaak mogelijk winnen van dialogen.

2.1.3 Topic space

In DIAL bevinden agents zich in een tweedimensionale euclidische ruimte waarin ze zich vrij kunnen bewegen. Deze ruimte heeft, naast een fysieke functie, ook een andere functie, namelijk reflectie van opinies van agents. Dykstra noemt deze ruimte de topic space van de agents [Dykstra et al., 2013]. De topic space onthoudt voor een bepaalde tijd de opinies van de agents en geeft zo de heersende publieke opinie weer.

Daarnaast zullen soortgelijke agents, agents met dezelfde opinies, naar elkaar toetrekken in de topic space. Dit resulteert in groepsvorming.

2.1.4 Cycli

DIAL is geprogrammeerd in NetLogo, een modeling environment geschreven in Java [Wilensky, 1999]. Runs van programma’s in NetLogo bestaan uit een reeks cycli. Per cyclus worden bepaalde handelingen uitgevoerd afhankelijk van het programma. In DIAL selecteren agents in elke cyclus een handeling (e.g. verplaats, verdedig) en voeren deze vervolgens uit. Aan het einde van de cyclus wordt de topic space bijgewerkt. Oude opinies vervagen langzamerhand. De topic space geeft dus altijd de actuele publieke opinie weer.

Voor meer details betreffende de theorie achter DIAL zie [Dykstra et al., 2013].

(13)

Hoofdstuk 2. Theoretische achtergrond 7

2.2 Altru¨ısme

Altru¨ısme is gedrag waarbij het welzijn van anderen boven het eigen welzijn wordt ge- steld. Zulk gedrag komt voor in verschillende sociale groepen. Ook bij de mens treffen we altru¨ıstisch gedrag aan. Wel heerst er enige twijfel of altru¨ısme bij mensen bestaat.

Psychological egoism beschrijft dat achter elke goede daad ego¨ısme schuilt in de vorm van voldoening [Slote, 1964].

Voor dit onderzoek is altru¨ısme dat voorkomt in het dierenrijk interessanter, omdat er theorie¨en bestaan die het nauwkeurig proberen te beschrijven en te verklaren. Deze the- orie¨en kunnen vervolgens gebruikt worden om altru¨ıstisch gedrag toe te passen in DIAL.

2.2.1 Fitness

In de biologie kent altru¨ısme een andere, iets specifiekere, definitie. Een organisme ver- toont altru¨ıstisch gedrag als het zijn eigen fitness verlaagt om daarmee de fitness van soortgenoten te verhogen. In de evolutiebiologie wordt de term “fitness” gebruikt om het verwachte aantal nakomelingen van een organisme te beschrijven [Okasha, 2009].

Deze vorm van fitness staat ook bekend als reproductive fitness, het beschrijft namelijk de mate waarop het organisme zich zal voortplanten.

Het doel van elk levend organisme is om zich zoveel mogelijk voort te planten. Een organisme met veel nakomelingen vergroot de kans dat zijn genen verspreid worden en overgebracht worden naar de volgende generaties. Hoe succesvol een organisme is, wordt dus bepaald door zijn fitness.

Volgens de natuurlijke selectie zullen organismes zich zo gedragen dat ze hun eigen kansen om te overleven en voort te planten verhogen. Maar altru¨ıstisch gedrag ver- laagt juist deze kansen. Organismes die altru¨ıstisch gedrag vertonen, zullen niet worden bevoordeeld door natuurlijke selectie. Ze zullen zich minder (snel) voortplanten dan or- ganismes die wel bevoordeeld worden door natuurlijke selectie. De kans dat altru¨ıstisch gedrag ook zal voorkomen in de volgende generatie neemt af. Op individueel niveau heeft altru¨ıstisch gedrag dus nadelige gevolgen.

2.2.2 Kin selectie

Er zijn enkele theorie¨en in het leven geroepen die altru¨ısme combineren met de basis- beginselen van het darwinisme (i.e. natuurlijke selectie). Deze theorie¨en proberen te verklaren hoe en waarom altru¨ısme kan bestaan. E´en theorie richt zich op niveaus waar selectie plaatsvindt. Indien natuurlijke selectie alleen op individueel niveau fungeert,

(14)

Hoofdstuk 2. Theoretische achtergrond 8 dan kan altru¨ısme voordelig uitpakken op een hoger niveau, namelijk op het groeps- niveau [Okasha, 2009]. Echter, het blijkt dat selectie op groepsniveau te zwak is om altru¨ıstisch gedrag te verklaren [Williams, 1966, Maynard Smith, 1964].

Een andere theorie is aan de orde gesteld door William Hamilton [Hamilton, 1964]. Deze theorie van Hamilton, genaamd kin selectie, beschrijft selectie op een ander niveau, het niveau van verwantschap. Volgens de theorie van Hamilton zullen levende organismes alleen altru¨ıstisch gedrag vertonen tegenover verwante organismes. Organismes die ver- want zijn (e.g. kinderen, ouders) delen genen, dat betekent dat ze genetisch gezien nagenoeg identiek zijn. Indien het organisme zelf altru¨ıstisch gedrag vertoont, is de kans groot dat verwanten ook altru¨ıstisch gedrag zullen vertonen. Hierdoor wordt de fitness van deze verwante organismes vergroot en als gevolg hiervan wordt de kans weer verhoogd dat altru¨ıstisch gedrag wordt “verspreid” en daarom voorkomt in de volgende generaties. Dus op een hoger niveau kan altru¨ısme natuurlijke selectie weerstaan.

Er zijn enkele voorwaarden waaraan kin selectie moet voldoen, wil altru¨ısme een kans maken op een bestaan. Deze voorwaarden zullen echter niet behandeld worden in dit onderzoek, wel komen ze aan bod in [Okasha, 2009, Hamilton, 1964].

(15)

Hoofdstuk 3

Analyse

In dit hoofdstuk wordt de implementatie van DIAL onder de loep ge- nomen. De globale structuur van het programma en de structuur van de functies worden onderzocht. De intentie van deze analyse is om een bijdrage te leveren aan het model DIAL.

3.1 Pseudocode

Het programma DIAL en de achterliggende broncode worden in “DIAL: the Program”

[Dykstra, 2013] met behulp van literate programming beschreven. Literate programming beschrijft de logica van het programma in natuurlijke taal, waarbij wordt afgewisseld met fragmenten uit de oorspronkelijke programmeertaal NetLogo. Omdat er is gekozen om de analyse op een hoger niveau dan de programmeertaal uit te voeren, worden de meest essenti¨ele functies van DIAL beschreven in pseudocode. Om de kwaliteit van de analyse te waarborgen en om ervoor te zorgen dat de resultaten die voortvloeien uit de analyse representatief zijn voor DIAL, moet de broncode zo exact mogelijk vertaald worden naar pseudocode. In sommige gevallen is dit echter niet mogelijk. NetLogo kent een verzameling standaardfuncties, die niet eenvoudig en rechtstreeks om te zetten zijn in pseudocode. Deze standaardfuncties moeten dan worden herschreven, met als voorwaarde dat het globale idee van de gehele functie intact blijft. Een voorbeeld van zo’n standaard functie is de functie map, met als invoer een task (functie) en een list (lijst). De functie map zorgt ervoor dat de functie task wordt aangeroepen op elk element in list. Het resultaat van de aanroep wordt opgeslagen in een nieuwe lijst en deze lijst wordt vervolgens geretourneerd. Aangezien map enige gelijkenis vertoont met een forall loop, wordt de functie map in de pseudocode door een forall vertolkt.

9

(16)

Hoofdstuk 3. Analyse 10 3.1.1 Syntax

De pseudocode die gebruikt wordt voor de analyse van DIAL, maakt gebruikt van be- kende constructies van Java. Zo is het mogelijk een functie aan te roepen op een object:

object.foo()

Aanroepen van functies worden schuingedrukt weergeven. Het is ook mogelijk om een variabele van een object op te vragen:

object.size ← 0

In dit voorbeeld wordt de size van het object op nul gezet. Om een element uit een lijst op te vragen, wordt de volgende syntax gebruikt:

list[2] ← 0

Hierbij wordt op de derde index in de lijst list de waarde nul gezet.

3.2 Globale variabelen

De broncode van DIAL begint met de declaratie van een aantal globale variabelen. Een groot deel van deze variabelen is exogeen, dit houdt in dat deze variabelen van buitenaf worden gedefinieerd. In DIAL kan de gebruiker deze variabelen via de user interface instellen. De overige variabelen in DIAL zijn endogeen.

Elke agent beschikt over zeven endogene variabelen:

 props - bevat de opinies van de agent. De positie van de opinie in de lijst geeft aan bij welke stelling de opinie hoort.

 init-props- bevat de initi¨ele opinies.

 announcements - bevat uitspraken gemaakt door andere agents.

 attacks- houdt de aanvallen van andere agents bij.

 profit-strategy- houdt voor elke strategie de behaalde winst bij, zodat op een later moment voor de meest voordelige strategie kan worden gekozen.

(17)

Hoofdstuk 3. Analyse 11

 prior-size- bevat de reputatiepunten van de agent voorafgaand aan een hande- ling.

Omdat de topic space de opinies van de agents reflecteert, moet deze in staat zijn om opinies te onthouden. Om dit te bewerkstelligen beschikt elk punt1 in de topic space over de lijst pprops. In NetLogo wordt zo een punt gerepresenteerd door een patch. Een patch is te vergelijken met een agent. Het grote verschil is dat een patch op een vaste plek verblijft, terwijl agents zich door de ruimte kunnen verplaatsen.

De overige endogene variabelen worden gebruikt voor onder andere output.

3.2.1 Hulpfuncties

Dykstra gebruikt in “DIAL: the Program” macro’s voor repetetieve code. Deze macro’s komen ook terug in de pseudocode, onder de naam hulpfunctie. De werking van hulp- functies moet uit de naam te herleiden zijn. Veelgebruikte hulpfuncties in DIAL zijn:

increase(), decrease(), importanceOf () en evidenceOf (). De hulpfuncties increase() en decrease() werken als volgt:

x.increase(y)

x.decrease(y)

Hierdoor wordt de waarde x verhoogt of verlaagt met de waarde y. De hulpfuncties importanceOf () en evidenceOf () retourneren respectievelijk de importance en evidence waarde. In DIAL bestaat een opinie uit een evidence en importance waarde. Er zijn twee manieren waarop deze hulpfuncties gebruikt kunnen worden:

evidenceOf(index) (3.1)

evidenceOf(opinie) (3.2)

Manier 3.1 haalt de evidence waarde op van de opinie, die zich bevindt in props[index]

van de agent die de hulpfunctie aanroept. Manier 3.2 haalt de evidence waarde op uit de opinie zelf. Het is dus niet van belang wie de hulpfunctie aanroept.

Een veel gebruikte functie in DIAL is random(). Deze functie genereert een willekeurige waarde of kiest een willekeurig element uit een lijst. Op de volgende pagina worden enkele manieren getoond waarop random() gebruikt kan worden.

1de topic space is een tweedimensionaal co¨ordinatenstelsel

(18)

Hoofdstuk 3. Analyse 12

position ←random() (3.3)

(3.3) genereert een willekeurige positie (co¨ordinaten).

element ←random(list) (3.4)

(3.4) kiest at random een element uit de lijst list

value ←random(5) (3.5)

(3.5) genereert een waarde in het bereik [0, 5).

3.3 Procedures

Tot nu toe werd de term functie gebruikt om een herbruikbaar blok prgrammacode aan te duiden. In NetLogo wordt de term procedure gebruikt. NetLogo kent twee soorten procedures: commands en reporters. Commands worden in NetLogo gedefini¨eerd met het keyword to en zijn vergelijkbaar met void functies uit C. Reporters worden gedefini¨eerd met het keyword to-report en aan het eind van de procedure wordt er een waarde of lijst geretourneerd.

3.3.1 Essenti¨ele procedures in DIAL

Het model DIAL bestaat uit een aantal procedures. Het grootste deel van de procedures is I/O-gerelateerd. Deze zullen dan ook niet worden behandeld in deze analyse omdat ze niet interessant zijn. Hulpprocedures in DIAL zullen ook niet worden behandeld. Wel zal hun werking worden toegelicht.

Essenti¨ele procedures in DIAL zijn: to setup, to go, to act, to announce, to attack en to reply-attack. Deze worden in de volgende secties behandeld.

De globale werking van DIAL kan door middel van deze procedures worden beschreven.

De procedure to setup initialiseert alle agents, patches en benodigde waardes. Een cyclus in DIAL wordt gerepresenteerd door de procedure to go. Deze procedure bevat alle handelingen die per cyclus moeten worden uitgevoerd. Een agent voert vervolgens een handeling uit door to act aan te roepen. Mogelijke handelingen zijn: verkondig/doe een uitspraak (to announce), val aan (to attack) of verdedig (to reply-attack).

(19)

Hoofdstuk 3. Analyse 13 3.3.2 to setup

In het eerste gedeelte van to setup wordt de topic space ge¨ınitialiseerd. De lijst pprops van de patches wordt gevuld met neutrale opinies (regel 5). De waarde number-of-props (i.e. het aantal proposities) wordt via de user interface door de gebruiker bepaald.

Algorithm 1 to setup (part 1: initializing patches)

1: for all patches do

2: pcolor ← blue

3: pprops ← [ ]

4: fori ← 0 to number-of-props do

5: pprops.add (neutral)

6: end for

7: end for

Het tweede gedeelte is interessanter. Hierin worden de agents gecre¨eerd en op wille- keurige co¨ordinaten neergezet. De procedure generateOpinions() (regel 11) genereert opinies (evidence en importance waarde) voor elke propositie. De lijst props bevat nu de initi¨ele opinies. Deze worden daarom gekopieerd in de lijst init-props.

Algorithm 1 to setup (part 2: creating agents)

8: for i ← 0 to number-of-agents do

9: position ← random()

10: agent ← createAgentAt(position)

11: agent.props ← generateOpinions()

12: agent.init-props ← agent.props

13: agent.announcement ← [ ]

14: agent.attacks ← [ ]

15: agent.questions ← [ ]

16: agent.reputation ← random(2) + 1

17: agent.profit-strategy ← [0, 0, 0]

18: end for

19: total ← totalReputationOf (agents)

20: /∗ plot data ∗/

De reputatiepunten van een agent worden op arbitraire wijze bepaald. In DIAL wordt een waarde uit het bereik [1, 3) toegekend aan reputation. Aan het einde van de pro- cedure to setup worden nog enkele zaken uitgevoerd omtrent het plotten van gegevens, welke buiten de scope van deze analyse vallen.

(20)

Hoofdstuk 3. Analyse 14 3.3.3 to go

Na afloop van to setup, begint de simulatiecyclus. De procedure to go representeert

´e´en simulatiecyclus. Aan het begin van elke cyclus voert elke agent een handeling uit door de procedure to act aan te roepen. De procedure to act wordt in 3.3.4 nader toegelicht.

Om alle agents de procedure to act te laten uitvoeren wordt er gebruik gemaakt van een forall-loop (regel 1). Aangezien NetLogo een agent-based programmeertaal is, kunnen agents en patches in NetLogo op een eenvoudigere manier door de gebruiker bereikt worden. NetLogo kent daarvoor de standaardprocedure ask. Regels 1 t/m 3 worden in NetLogo dan ook als volgt uitgevoerd: ask turtles [act], waarbij turtles de set van agents is en act de procedure die door alle agents uitgevoerd moet worden.

De patches reflecteren de recente publieke opinie. Om deze up-to-date te houden, worden oude opinies aan het begin van elke cyclus gewist. Dit gebeurt met forget() (regel 5).

Algorithm 2 to go

1: for allagents do

2: agent.act()

3: end for

4: for allpatches do

5: patch.forget()

6: end for

7: total-sim ← 0

8: for allagents do

9: agent.forgetAnnouncements()

10: agent.answerQuestions()

11: agent.replyAttacks()

12: end for

13: factor ← total / (total + total-sim)

14: for allagents do

15: agent.normalizeReputation(factor)

16: end for

17: /∗ update plot ∗/

Vervolgens kunnen agents reageren op de handeling van een andere agent (regels 9 t/m 11). Agents kunnen reageren op een aanval of ze kunnen antwoord geven op een vraag.

De laatste handeling in to go normaliseert de reputatiepunten van de agents met behulp van een normalisatiefactor (regel 15).

(21)

Hoofdstuk 3. Analyse 15 3.3.4 to act

De procedure to act is, zoals Piter Dykstra dit in “DIAL: the Program” noemt, een cryptisch stuk code. Maar uiteindelijk is het doel van to act simpel en duidelijk: kies op een willekeurige wijze een handeling (action) en voer deze uit. De rest van to act bepaalt of de gekozen handeling succesvol was. Indien de agent na het uitvoeren van de actie niet te veel afwijkt van de omgeving, dat wil zeggen geen grote meningsverschil- len heeft met de heersende publieke opinie, ontvangt de agent similarity punten (sim).

Indien de agent te veel gaat afwijken van zijn initi¨ele opinie, ontvangt de agent strafpun- ten (init-sim). Deze worden afgetrokken van de similarity punten. Vervolgens worden de reputatiepunten van de agent verhoogt. De similarity punten worden opgeteld bij reputationen total-sim. De waarde total-sim wordt in de procedure to go gebruikt om de normalisatiefactor te berekenen. De normalisatiefactor wordt gebruikt om de to- tale hoeveelheid reputatiepunten in DIAL constant te houden. De waarde sim is immers uit het niets gecre¨eerd en moet gecompenseerd worden. De waarde force-of-norms (regel 5) bepaalt de mate waarop het in harmonie zijn met de omgeving wordt beloond en kan door de gebruiker bepaald worden.

Algorithm 3 to act

1: prior-size ← reputation

2: action ← findAction()

3: run(action)

4: sim ← similarAttitude(props, pprops) / number-of-propositions

5: sim ← force-of-norms ∗ sim

6: init-sim ← similarAttitude(props, init-props) / number-of-propositions

7: init-sim ← penalty ∗ initial-sim

8: sim.decrease(init-sim)

9: if reputation + sim > 1 ∗105 then

10: reputation.increase(sim)

11: total-sim.increase(sim)

12: end if

13: for i ← 0 to 3 do

14: if strategy-shapes[i] = shape then

15: profit-strategy[i] ← (reputation - prior-size)

16: else

17: profit-strategy[i] ← (profit-strategy[i] + 0.001)

18: end if

19: end for

(22)

Hoofdstuk 3. Analyse 16 Tenslotte volgt er een for-loop. Elke agent volgt een bepaalde strategie welke geken- merkt wordt door shape. In profit-strategy wordt dan de behaalde winst per stra- tegie opgeslagen. Dit houdt in dat een agent in staat is om te kiezen voor de meest winstgevende strategie. In regel 17 val algoritme 3 wordt de winst van de overige niet gebruikte strategi¨en verhoogt met 0,001. De reden hiervoor wordt niet direct duidelijk uit de broncode.

3.3.5 to announce

Het verkondigen van een mening is in DIAL een elementair onderdeel. De procedure to announce wordt door agents gebruikt om een mening te verkondigen omtrent een bepaalde propositie. Aan het begin van to announce wordt met de onderstaande pseu- docode de propositie bepaald die gebruikt gaat worden voor de verkondiging.

Algorithm 4 to announce (part 1: determine a proposition for announcement)

1: if reputation > announce-threshold then

2: announce-odds ← 0

3: proposition ← 0

4: fori ← 0 to number-of-props do

5: announce-odds.increase(importanceOf (props[i]))

6: end for

7: choice ← random(announce-odds)

8: start-value ← importanceOf (props[0])

9: while choice > start-value do

10: proposition.increase(1)

11: start-value.increase(importanceOf (proposition))

12: end while

De variabele choice (regel 7) bevat een waarde tussen 0 en announce-odds. De waarde announce-odds is de som van alle importance waardes (regel 5). Op regel 8 van al- goritme 4 wordt de startwaarde start-value bepaald. De startwaarde bevat de im- portance waarde van de eerste propositie. Zolang de variabele choice groter is dan de startwaarde, wordt de volgende propositie gekozen en wordt de startwaarde verhoogd met de importance waarde van de nieuwe propositie. Zodra choice kleiner is dan de startwaarde, stopt de while-loop en is er een propositie geselecteerd.

Merk op dat op regel 5 importanceOf () op manier 3.2 wordt gebruikt en op regel 11 manier 3.1 wordt gebruikt (zie sectie 3.2.1). De variabele proposition bevat immers een numerieke waarde.

(23)

Hoofdstuk 3. Analyse 17 Op het eerste gezicht lijkt de wijze waarop een propositie wordt gekozen enigszins inge- wikkeld en vreemd. Het kiezen van een propositie kan namelijk al in ´e´en regel gebeuren:

proposition ← random(number-of-props)

Het gevaar is hier dat elke propositie evenveel kans maakt om gekozen te worden. In de pseudocode op de vorige pagina wordt echter rekening gehouden met de importance waarde van de proposities. Proposities met een grotere importance waarde maken meer kans om gekozen te worden, omdat ze een grotere bijdrage leveren aan announce-odds.

De kans om gekozen te worden is dus proportioneel met de importance waarde.

In het tweede gedeelte van to announce worden de evidence en importance waarde van de geselecteerde propositie klaargezet voor de verkondiging (regels 14 & 16). De evi- dence en importance waarde worden voor gebruik nog naar beneden of boven afgerond, afhankelijk van de initi¨ele opinie en de exogene variabele firmness. De waarde radius bepaalt het bereik van de verkondiging. Deze is afhankelijk van de reputatie van de agent en van een willekeurig gekozen waarde.

Algorithm 5 to announce (part 2: announce)

13: init-evid ← evidenceOf (init-props[proposition])

14: evid ← (evidenceOf (proposition) + firmness ∗ init-evid) / (firmness + 1)

15: init-imp ← importanceOf (init-props[proposition])

16: imp ← (importanceOf (proposition) + firmness ∗ init-imp) / (firmness + 1)

17: radius ← random(loudness) + reputation

18: for allagents within my radius do

19: update-announcement(id, proposition, evid, imp)

20: end for

21: for allpatches within my radius do

22: announce-patch(id, proposition, evid, imp)

23: end for

24: end if

In de for-loop op regel 18 van algoritme 5 wordt de procedure to update-announcement aangeroepen op alle agents die zich binnen het bereik van de agent bevinden. Deze pro- cedure zorgt ervoor dat de agents op de hoogte worden gebracht van de verkondiging. De desbetreffende propositie wordt doorgegeven, net als de evidence en importance waarde.

Ook wordt de id van de agent doorgegeven, zodat bekend is van wie de verkonding (uitspraak) is. Hetzelfde wordt op regel 22 gedaan voor de patches.

(24)

Hoofdstuk 3. Analyse 18 3.3.6 to attack

In de procedure to attack reageert een agent op de uitspraken van andere agents. Een agent kan alleen reageren indien hij over voldoende reputatiepunten beschikt. Daarnaast moet er minstens ´e´en uitspraak zijn van een andere agent (i.e. announcements is niet leeg).

Het resultaat van rankAnnouncements (r.2) is een lijst (agreements) met zogenaamde agreement waardes. Een waarde op agreements[index] geeft aan hoeveel de agent instemt met de uitspraak op announcements[index]. Een lage agreement waarde be- tekent dat de agent het niet eens is met de desbetreffende uitspraak. De uitspraak waar de agent op reageert, is de uitspraak waarmee de agent het het meest oneens is. In regel 3 wordt de index bepaald van de laagste agreement waarde. Met de bijbehorende index kan vervolgens uit announcements de uitspraak worden gehaald waarmee de agent het meest oneens is.

Algorithm 6 to attack

1: if reputation > announce-threshold and not empty(announcements) then

2: agreements ← rankAnnouncements(announcements)

3: index ← positionOfMin(agreements)

4: if agreements[index] < 0 then

5: announcement ← announcements[index]

6: key ← keyOf (announcement)

7: proposition ← f loor(key / size(agents))

8: id ← key mod size(agents)

9: opponent ← agentW ith(id)

10: opponent.addToAttacks(self, proposition)

11: end if

12: end if

Voordat de agent daadwerkelijk gaat aanvallen, wordt er nog een check gedaan, zoals op regel 4. Indien de laagste agreement waarde gelijk aan of groter dan 0 is, wordt de aanval geschorst. De waarde 0 geeft aan dat de agent neutraal tegenover de uitspraak staat. Een aanval is dan niet nodig. Indien de agreement waarde in het negatieve bereik zit, wordt de aanval voortgezet. In regel 5 is announcement de uitspraak waar de agent het minst mee eens is. Een announcement bevat informatie over de agent die de uitspraak heeft gedaan en de propositie in kwestie. Deze informatie is als volgt cryptisch opgeslagen in de waarde key:

key = size(agents) * proposition + id

(25)

Hoofdstuk 3. Analyse 19 In de regels 7 en 8 worden de proposition en de id uit key gehaald.

Elke agent houdt een lijst bij van aanvallen (attacks, zie sectie 3.2), die gericht zijn op zichzelf. In de procedure to reply-attacks kan een agent reageren op de aanvallen.

Een aanval wordt uiteindelijk uitgevoerd door de aanval toe te voegen aan de lijst attacks van de tegenstander. Dit gebeurt in regel 10 van de procedure to attack.

Self verwijst naar de id van de agent die to attack aanroept, de aanvallende agent dus.

(26)

Hoofdstuk 3. Analyse 20 3.3.7 to reply-attack

De procedure to reply attack is, vergeleken met de overige procedures in DIAL erg groot. Door de grootte van de procedure oogt to reply-attack ingewikkeld.

Om zich te kunnen verdedigen moet een agent over meer dan ´e´en reputatiepunt beschik- ken. De lijst met aanvallen (attacks) wordt gefilterd op basis van de reputatiepunten van de aanvaller (regel 2). Alleen de aanvallen van agents die over meer dan ´e´en repu- tatiepunt bezitten, worden behandeld.

De agent kiest vervolgens at random een aanval uit voor een tegenaanval. De aan- val bevat informatie over de aanvallende agent, de tegenstander, en over de gebruikte propositie (regels 5 & 6). Met behulp van de propositie wordt de evidence en impor- tance waarde opgehaald van de verdedigende agent (regels 7 & 8). De evidence en importance waarde van de tegenstander worden in regel 7 en 8 opgehaald. De regel opponent.props[proposition] is de opinie van de tegenstander, want props bevat de lijst met opinies en proposition is simpelweg een index.

De omgeving van de agents reflecteert de heersende publieke opinie en bepaalt uiteinde- lijke wie de winnaar is van de dialoog. In regel 11 wordt de gemiddelde evidence waarde (envir) van de omgeving van de agent en de tegenstander berekend door middel van evidenceOf (). De regels 14 t/m 18 bepalen of de verdedigende agent punten wint of verliest. Hiervoor wordt de evidence waarde van de agent en de tegenstander vergeleken met de gemiddelde evidence waarde van de omgeving envir (regel 14). Indien de agent meer overeenkomt met de omgeving dan zijn tegenstander doet, wint de agent punten en komt de tegenstander meer overeen met de omgeving dan verliest de agent punten.

Deze punten worden vervolgens verrekend met de reputatiepunten van de twee betrok- ken agents (regels 26 & 27).

In de regels 29 t/m 33 wordt de omgeving van de verliezende partij op de hoogte gesteld van het verlies. De publieke opinie wordt aangepast. De laatste if-else constructie (regel 35) past, voor zover mogelijk, de opinie van de verliezende partij aan. De omvang van de aanpassing hangt van accepti () en accepte(). Deze acceptance procedures bepalen of een opinie geaccepteerd kan worden en hoeveel invloed de opinie heeft op de huidige opinie.

(27)

Hoofdstuk 3. Analyse 21 Algorithm 7 to reply-attack

1: if reputation > 1 then 2: attack ← f ilter(attacks) 3: if empty(attacks) then 4: attack ← random(attacks) 5: opponent ← ownerOf (attack) 6: proposition ← propositionOf (attack) 7: evid ← evidenceOf (proposition) 8: imp ← importanceOf (proposition)

9: oppevid ← evidenceOf (opponent.props[proposition]) 10: oppimp ← importanceOf (opponent.props[proposition])

11: envir ← 12(environmentOf (self, proposition) + environmentOf (opponent, proposition))

12: win ← 0

13:

14: if agreementFactor(evid, envir) > agreementFactor(oppevid, envir) then 15: win ← evid ∗ imp ∗ forceOfArgumentation

16: else

17: win ← -((1 - evid) ∗ imp ∗ forceOfArgumentation

18: end if

19:

20: if win > 0 then

21: win ← min(win, reputationOf (opponent) + 1 ∗ 105)

22: else

23: win ← max(win, -(reputationOf (opponent) + 1 ∗ 105))

24: end if

25:

26: agent.reputation.increase(win) 27: opponent.reputation.increase(-win) 28:

29: if win > 0 then

30: changeEnvironmentAround(opponent, proposition, evid, imp)

31: else

32: changeEnvironmentAround(self, proposition, oppevid, oppimp)

33: end if

34:

35: if win > 1 - winthreshold then

36: opponent.setOpinionOn(proposition, accepte(evid, oppevid), accepti(imp, oppimp))

37: else

38: if win < winthreshold - 1 then

39: setOpinionOn(proposition, accepte(oppevid, evid), accepti(oppimp, imp))

40: end if

41: end if

42: attacks ← [ ] 43: end if

44: end if

(28)
(29)

Hoofdstuk 4

Methodologie

Dit onderzoek volgt een bepaalde methodologie. In dit hoofdstuk wor- den de procedures beschreven die voorafgingen aan het onderzoek. Het doel van dit hoofdstuk is om een helder beeld te geven van de opbouw van het onderzoek en de gebruikte methodologie.

4.1 Altru¨ısme in DIAL

In deze fase van het onderzoek moet er een koppeling worden gemaakt tussen altru¨ısme, zoals beschreven in hoofdstuk twee, en het model DIAL. Agents in het model moeten een zekere vorm van altru¨ısme gaan vertonen. Hoe deze vorm van altru¨ısme in DIAL precies tot stand moet komen is nog niet duidelijk, maar wel van groot belang. Altru¨ısme kan op verschillende manieren worden ge¨ınterpreteerd en kan derhalve op verschillende manieren worden ge¨ımplementeerd. Toch kunnen enkele theorie¨en van altru¨ısme in de evolutie- en sociobiologie worden gekoppeld aan bepaalde attributen van DIAL. Zo spe- len reputatiepunten in DIAL een belangrijke rol. Het is een graadmeter voor succes.

Hoe meer reputatiepunten een agent bezit, des te groter de kans is dat hij zal “overle- ven”. Organismes streven er ook naar te overleven. Een lang leven betekent dat er meer nakomelingen kunnen worden geproduceerd, wat weer leidt tot een toename van een be- paald allel1in de volgende generatie. Het aantal nakomelingen is bij levende organismes de graadmeter voor succes. Zoals in hoofdstuk twee al wordt beschreven, bepaalt de fitness van een organisme het verwachte aantal nakomelingen dat het zal produceren.

De vertaling naar DIAL kan vervolgens snel worden gemaakt. De reputatiepunten zijn de fitness van een agent.

Organismes streven er dus naar om zich zo veel mogelijk voort te planten. Echter, in

1een variant van een gen

23

(30)

Hoofdstuk 4. Methodologie 24 DIAL kunnen agents zich niet voortplanten. Om welke reden zouden agents dan nog hun fitness hoog houden? Een valide reden ontbreekt immers. Er is geen voorplanting en er zijn geen genen die overgebracht kunnen worden naar de volgende generatie. In DIAL draait alles om het winnen van dialogen. De doelstelling van elke agent is, het vergaren van zo veel mogelijk reputatiepunten, door zo veel mogelijk discussies te winnen. Een achterliggende reden is er niet.

Een organisme dat zijn eigen fitness verlaagt om zo de fitness van anderen te verhogen, vertoont altru¨ıstisch gedrag. Aangezien agents nu ook over een fitness beschikken, kun- nen zij ook altru¨ıstisch gedrag gaan vertonen. Het weggeven van reputatiepunten is dus een vorm altru¨ısme.

Het is dus mogelijk om altru¨ısme aan DIAL toe te voegen. Maar hoe zit het met kin selectie? Kin selectie is immers een belangrijk onderdeel van biologisch altru¨ısme (zie 2.2.2). Omdat agents in DIAL geen verwantschap kennen, is kin selectie in DIAL niet mogelijk. Er kan echter in DIAL wel selectie plaatsvinden op twee andere niveaus.

Altru¨ıstische agents kunnen onderscheid maken tussen altru¨ısten en non-altru¨ısten en all´e´en mede-altru¨ısten bevoordelen (sterke selectie), en altru¨ısten kunnen ervoor kiezen om alleen altru¨ısten binnen een bepaalde radius te bevoordelen (zwakke selectie). Door een selectie te maken wat betreft de onderlinge afstand, is er een soort kunstmatige ver- wantschap gecre¨eerd. Elke agent heeft een eigen radius. Agents die binnen een agent’s radius vallen zijn aan hem verwant.

Tot nu toe is nog niet duidelijk welke agents altru¨ıstisch gedrag moeten vertonen en welke niet. Een voor de hand liggende mogelijkheid is om agents een boolean isAltruist mee te geven. Er wordt echter voor een andere oplossing gekozen. In DIAL worden name- lijk bij de initialisatie twee groepen agents gecre¨eerd, een groep die het eens is met de stelling en een groep die het oneens is met de stelling. Er kan dus onderscheid worden gemaakt tussen altru¨ıstische en non-altru¨ıstische agents door simpelweg te kijken naar hun mening.

In DIAL kan altru¨ıstisch gedrag op verschillende manieren worden ge¨ımplementeerd. In dit onderzoek worden twee implementaties gebruikt om altru¨ıstisch gedrag te realiseren:

1. Delen van de winst: Na elke overwinning ontvangt een agent reputatiepunten.

Een non-altru¨ıstische agent zal deze punten zelf houden, maar een altru¨ıstische agent zal ervoor kiezen om de gewonnen reputatiepunten te delen met verwante altru¨ıstische agents. In figuur 4.1 is te zien hoe een altru¨ıstische agent drie reputatiepunten wint van een non-altru¨ıstische agent en deze vervolgens deelt met twee verwante altru¨ısten.

2. Herverdeling: Aan het einde van elke cyclus vindt er een herverdeling van repu- tatiepunten plaats onder verwante altru¨ısten. Het gaat hier echter niet om een strikte herverdeling, omdat dit te kunstmatig zou zijn, maar om een herverdeling waarbij een

(31)
(32)
(33)

Hoofdstuk 4. Methodologie 27 Maar hoe realistisch is deze implementatie? Natuurlijk is zo’n vorm van belonen oneer- lijk tegenover de non-altru¨ıstische agents. Altru¨ıstisch gedrag wordt namelijk (direct) beloond en ego¨ıstisch gedrag niet. Altru¨ıstisch gedrag bij levende organismes wordt ook niet direct beloond, maar zulk gedrag wordt uiteindelijk w´el beloond. En dat is waar het om gaat bij deze implementatie. De altru¨ıstische agents worden beloond. Het gaat om het effect van deze beloning op DIAL en hoe DIAL daarop reageert, niet zozeer om de totstandkoming van de beloning. Wel betekent dit dat er niet snel conclusies kunnen worden getrokken betreffende altru¨ısme.

4.2 Implementatie

Het toevoegen van altru¨ısme aan DIAL heeft weinig aanpassingen nodig. De setup van DIAL is zodanig aangepast dat er twee groepen agents worden gecre¨eerd, een al- tru¨ısche groep en een non-altru¨ıstische groep. Het percentage altru¨ıstsiche agent kan door de gebruiker worden bepaald middels de exogene variabele altruist-ratio. Naast altruist-ratiozijn er nog vier extra parameters toegevoegd aan DIAL:

 kin-threshold- bepaalt het bereik van de zwakke selectie (i.e. de grootte van de radius)

 poor-border- bepaalt de “armoedegrens”.

 rich-border- bepaalt wanneer een agent rijk is.

 alt-reward- de beloningsfactor.

De procedure act-altruistic is de kern van het altru¨ıstische gedrag in DIAL en wordt aan het einde van elke cyclus door een rijke agent aangeroepen. De globale structuur van act-altruistic wordt hieronder met pseudocode duidelijk gemaakt:

Algorithm 8 to act-altruistic

1: add own reputation to group reputation

2: if related and poor altruistic agents exist then

3: add their reputation to the group reputation

4: for allrelated and poor altruistic agents do

5: calculate the benefit using group reputation and group size

6: subtract the benefit from rich agent’s reputation

7: multiply the benefit with the reward factor

8: add the benefit to own reputation

9: end for

10: end if

(34)

Hoofdstuk 4. Methodologie 28

4.3 Onderzoeksopzet

Aangezien agents in DIAL at random worden gegenereerd, is een statistische analyse een uiterst geschikte manier om de testresultaten te analyseren en te beoordelen. Om de data weer te geven, wordt er gebruik gemaakt van de tool R. Er zullen verschillende tests worden uitgevoerd, waarbij de altru¨ısme-gerelateerde parameters worden gevarieerd.

De parameters alt-reward, kin-threshold, altruist-ratio, rich-border en poor-borderzullen stuk voor stuk getoetst worden met verschillende waardes (zie tabel 4.2). Daarnaast zullen ook enkele tests worden uitgevoerd waarbij de sterke selectie, het onderscheid maken tussen altru¨ısten en non-altru¨ısten, is uitgezet. Opdat de resultaten enigsziens representatief zijn, worden tests vijftig ´a honderd keer uitgevoerd. NetLogo kent hiervoor een uitermate handige tool, Behaviour Space. In deze tool kan worden aangeven welke parameters moeten vari¨eren en hoe vaak de test moet worden uitgevoerd.

Alle data worden vervolgens weggeschreven naar een csv-bestand, welke door R ingelezen kunnen worden.

De overige parameters in DIAL vari¨eren niet en dienen als vaste invoer voor elke test.

In tabel 4.1 worden deze invoerparameters met hun bijbehorende waarde weergeven:

Parameters Waarde

number-of-agents 50

number-of-propositions 1 force-of-argumentation 1,0

force-of-norms 0,0

chance-announce 75

loudness 2,5

visual-horizon 10

firmness-of-principle 1,0

chance-attack 50

chance-walk 50

undirectness 15

stepsize 1,5

attraction 1,0

rejection 1,0

lack-of-principle 0,02

inconspenalty 0,02

Tabel 4.1: Invoerparameters met hun bijbehorende waarde. Deze waardes zijn ge- bruikt bij de tests.

(35)

Hoofdstuk 4. Methodologie 29 Het totale aantal agents is bij alle tests vijftig. Het was een optie geweest om het aantal agents te laten vari¨eren, echter, uit enkele tests blijkt dat dit geen relevante invloed heeft op de uitkomst.

Daarnaast is de keuze gevallen op een samenleving waarbij het winnen van dialogen be- loond wordt (i.e. force-of-argumentation = 1). In zo’n samenleving kunnen agents groeien wat betreft hun reputatiepunten. Dit resulteert in een samenleving met onge- lijke distributie van reputatiepunten en een survival of the fittest mentaliteit. En dit is precies het type samenleving dat nodig is om altru¨ısme te kunnen toepassen.

alt-reward 0,0 0,5 1,0 1,5 2,0 2,5 3,0

kin-threshold 3 5 8 10 12 15 20 25

altruist-ratio 10 15 25 33 66 75 rich-border 2,0 3,0 5,0

poor-border 1,0 1,5 2,5 4,5

Tabel 4.2: De gebruikte testwaardes voor alt-reward, kin-threshold, altruist-ratio, rich-border en poor-border

(36)
(37)

Hoofdstuk 5

Resultaten

In dit hoofdstuk worden resultaten verkregen uit verschillende tests, in kaart gebracht en besproken.

5.1 Implementatie 1 (Delen van de winst): de resultaten

De implementatie uit figuur 4.1 blijkt in de praktijk niet goed te werken. Het delen van gewonnen reputatiepunten is een altru¨ıstische handeling, maar heeft weinig tot geen effect op DIAL. De hoeveelheid reputatiepunten die gemoeid gaat met het winnen van dialogen wordt, naarmate de tijd vordert, steeds kleiner. Dit zorgt ervoor dat het al- tru¨ıstische gedrag minder effectief wordt.

Daarnaast vindt er all´e´en altru¨ıstisch gedrag plaats na het winnen van een dialoog. Dit betekent dat er een dialoog moet plaatsvinden ´en dat een dialoog moet worden gewon- nen. Indien dit niet het geval is, is er geen altru¨stisch gedrag. Altru¨ıstische agents die geen dialogen meer kunnen winnen, zullen geen altru¨ıstisch gedrag meer vertonen. In deze implementatie kan het altru¨ıstische gedrag snel uitsterven. Er wordt daarom niet veel aandacht meer besteed aan deze implementatie. In de volgende sectie zal de tweede implementatie uitgebreid worden getest.

5.2 Implementatie 2 (Herverdeling): de resultaten

De implementatie uit figuur 4.2 waarbij het altru¨ıstische gedrag door een herverde- ling van reputatiepunten tot stand komt, lijkt meer effect te hebben op DIAL. De vol- gende subsecties hebben betrekking tot ´e´en van de altru¨ısme-gerelateerde parameters:

31

(38)
(39)
(40)
(41)
(42)

Hoofdstuk 5. Resultaten 36 5.2.2 De zwakke selectie: kin-threshold

Figuur 5.5 toont de resultaten waarbij alleen de kin-threshold wordt gevarieerd. Hier- uit is duidelijk op te maken dat de grootte van de kin-threshold geen invloed heeft op de reputatiepunten van de altru¨ıstische groep. Dit is opvallend te noemen, immers een grotere radius betekent dat meer agents zich binnen deze radius zullen bevinden. Per agent zijn er vervolgens meer verwante agents die kunnen profiteren van het altru¨ıstisch gedrag. Het probleem hier is dat zodra de radii groter worden, ze gaan overlappen.

Agents delen hun verwante agents en de verwante agents kunnen niet meerdere malen profiteren van altru¨ıstisch gedrag, want ze zijn dan niet meer arm. Vanaf een bepaalde kin-threshold heeft een grotere radius dus geen effect meer.

(43)
(44)

Hoofdstuk 5. Resultaten 38 5.2.3 Het percentage altru¨ısten: altruist-ratio

De altruist-ratio, het percentage altru¨ısten in de samenleving, heeft daarentegen wel invloed op het aandeel reputatiepunten. In figuur 5.6(A) is te zien hoe de altru¨ısten presteren wanneer zij maar 10% van de samenleving uitmaken. Vanaf 200 cycli daalt hun aandeel. Hetzelfde gebeurt in 5.6(B). De altru¨ısten vormen maar een kleine groep en het is niet gek dat ze hun reputatiepunten kwijtraken aan de meerderheid. Maar reeds bij 25% is er een keerpunt en blijft het aandeel reputatiepunten van de altru¨ıstische groep stabiel. Dit betekent dat altru¨ıstische agents kunnen blijven bestaan, ongeacht of ze een minderheid vormen. Vanaf 33% stijgt hun aandeel reputatiepunten.

Hier is een stijging te zien van va. 10 reputatiepunten per 1000 cycli. Bij 66% is de stijging verdubbeld naar ca. 20 reputatiepunten per 1000 cycli.

Indien er gebruik wordt gemaakt van een beloningsfactor van 2,5, ligt het keerpunt bij een altruist-ratiovan 25%. Wellicht kent een lagere beloningsfactor een ander keerpunt.

In figuur 5.7 is een beloningsfactor van 2,0 gebruikt. Helaas is er geen aantoonbaar keerpunt in figuur 5.7(E) en (F) (resp. altruist-ratio van 66% en 75%). Zelfs dan lukt het de altru¨ısten dus niet om de overhand te krijgen.

(45)
(46)
(47)

Hoofdstuk 5. Resultaten 41 5.2.4 Wel of niet delen: rich-border en poor-border

De twee overige parameters rich-border en poor-border zijn in sectie 5.2.4 getest en de resultaten zijn te zien in figuur 5.8. Figuur 5.8(A), (B) en (C) tonen resultaten, waarbij alleen de rich-border werd gevarieerd. Het vergroten van de rich-border ten opzichte van de poor-border heeft gevolgen voor de reputatiepunten van de altru¨ıstische agents. Dit is duidelijk te zien in 5.8(B) en (C). In 5.8(B) zijn deze gevolgen positief te noemen. Een rich-border van 3,0 versnelt de groei aan reputatiepunten.

Het ligt voor de hand om te zeggen dat een hogere rich-border het altru¨ıstische ge- drag juist tegengaat, immers agents zullen zich niet zo snel altru¨ıstisch gedragen als met een lagere rich-border. Maar dit geldt blijkbaar niet altijd. Het vergroten van de rich-border zorgt ervoor dat agents hun reputatiepunten opsparen voordat ze deze weggeven. Het gevolg is dat er dan meer reputatiepunten worden weggegeven per al- tru¨ıstische handeling, wat weer het effect van altru¨ıstisch gedrag vergroot.

Tot een bepaalde grenswaarde heeft een grotere rich-border juist positieve gevolgen op de groep van altru¨ıstische agents. Deze grenswaarde is in 5.8(C) bereikt. Het is duidelijk te zien dat bij een rich-border van 5,0 de resultaten van de verschillende runs sterk uiteenlopen. Het succes van de agents is dan sterk afhankelijk van de initialisatie ´en van een beetje geluk. Indien het geen ´e´en van de agents lukt om meer dan vijf reputatiepun- ten te bemachtigen in de beginfase, zal er geen altru¨ıstisch gedrag plaatsvinden en zal het slecht aflopen met de altru¨ıstische groep. Indien het wel een agent lukt om meer dan vijf reputatiepunten te bemachtigen, zal er altru¨ıstisch gedrag plaatsvinden en ontstaat er een kettingreactie aan altru¨ıstisch gedrag.

Figuur 5.8(D), (E) en (F) tonen resultaten, waarbij, naast de rich-border, ook de poor-border werd gevarieerd. De resultaten zijn vergelijkbaar met de resultaten in 5.8(A), (B) en (C). Zo laten de resultaten in 5.8(B) en (E) zien dat na 1000 cycli het aandeel in beide gevallen op ca. 85% uitkomt. Het grote verschil is dat de resultaten in 5.8(E) een sterke groei kennen in de beginfase, waarna deze na 200 cycli weer af- zwakt. Deze groei is te verklaren door het grote aantal arme agents in de beginfase.

Een poor-border van 2,5 betekent dat alle agents bij de initialisatie arm zijn en dus kunnen profiteren van altru¨ıstisch gedrag. De afzwakking wordt veroorzaakt doordat de altru¨ıstische groep verzadigd raakt met rijke agents.

Figuur 5.8(F) vertoont gelijkenis met 5.8(C). De resulaten zien er in 5.8(F) enigszins beter uit, maar ze lopen nog steeds sterk uiteen. De kans dat het slecht afloopt met de altru¨ıstische agents bestaat, wel is deze gedaald.

(48)
(49)
(50)
(51)

Hoofdstuk 6

Conclusie

Het multi-agent-based model DIAL moet inzicht bieden in opinion-driven sociale groe- pen en in de gevolgen van een veranderende opinie- en groepsdyanmiek binnen deze sociale groepen. In DIAL strijden agents door middel van dialogen om reputatiepunten.

De doelstelling van elke agent is het maximaliseren van zijn reputatiepunten.

In een samenleving waarin agents ego¨ıstisch handelen, is snel sprake van een survival- of-the-fittest effect. DIAL is ook enigszins ego¨ıstisch te noemen, omdat alles in DIAL zich voltrekt op individueel niveau. Dit wordt duidelijk wanneer altru¨ısme, een extreme vorm van sociaal gedrag, wordt toegevoegd aan DIAL. Door de reputatiepunten van de agents als hun fitness te zien en door een vorm van kin selectie1 toe te passen, is het mogelijk om altru¨ısme in DIAL toe te voegen. Aan het einde van elke cyclus vindt er vervolgens, binnen een groep altru¨ıstische agents, nivellering van reputatiepunten plaats.

Altru¨ıstisch gedrag lijkt echter voor de agents in DIAL geen gunstig effect te hebben.

De nivellering van reputatiepunten zorgt ervoor dat het aandeel reputatiepunten van de groep altru¨ıstische agents snel daalt. Sociaal gedrag wordt vanuit DIAL niet beloond, maar juist bestraft. Om een tegenwicht te bieden aan DIAL wordt altru¨ıstisch gedrag juist op een kunstmatige en directe manier beloond. Maar zelfs bij een beloning met beloningsfactor 2,0 lukt het de groep altru¨ıstische agents niet om de overhand te krijgen.

Dit laat zien in hoeverre DIAL ego¨ıstisch is en sociaal gedrag afweert.

Pas bij een grotere beloning met beloningsfactor 2,5 lukt het de groep altru¨ıstische agents om niet door DIAL te worden verdrongen. Het is dus mogelijk dat altru¨ısme in DIAL kan blijven bestaan, echter, altru¨ıstisch gedrag moet dan aanzienlijk beloond worden.

Dit gebeurt in dit onderzoek nog op een kunstmatige en directe manier. Een indirecte manier zou realistischer zijn, echter, dit vereist veel meer aanpassingen in DIAL en kan interessant zijn voor vervolgonderzoek.

1in de vorm van sterke en zwakke selectie (zie sectie 4.1 pag. 24)

45

(52)
(53)

Bibliografie

A. F. G. Bourke. Social Evolution in Ants. Princeton University Press, 1995.

D. L. Cheney and R. M. Seyfarth. How monkeys see the world: inside the mind of another species. University of Chicago Press, 1990.

C. M. Cheung, P.-Y. Chiu, and M. K. Lee. Online social networks: Why do students use facebook? Computers in Human Behavior, 27(4):1337 – 1343, 2011.

P. Dykstra. DIAL: the program, 2013.

P. Dykstra, C. Elsenbroich, W. Jager, G. Renardel de Lavalette, and R. Verbrugge.

Put your money where your mouth is: Dial, a dialogical model for opinion dynamics.

Journal of Artificial Societies and Social Simulation, 16(3):4, 2013.

W. D. Hamilton. The genetical evolution of social behavior: I and ii. Journal of Theoretical Biology, 7:1–16, 17–52, 1964.

J. Maynard Smith. Group selection and kin selection. Nature, 201:1145–1147, 1964.

S. Okasha. Biological altruism. In E. N. Zalta, editor, The Stanford Encyclopedia of Philosophy. Winter 2009 edition, 2009.

M. A. Slote. An empirical basis for psychological egoism. Journal of Philosophy, 61:

530–537, 1964.

U. Wilensky. Netlogo, 1999. URL http://ccl.northwestern.edu/netlogo/.

G. C. Williams. Adaption and Natural Selection. Princeton University Press, 1966.

47

Referenties

GERELATEERDE DOCUMENTEN

Bij het nieuwe onderzoek gaat het niet alleen meer om puur ego¨ıstische spelers, maar ook om be¨ınvloeding door anderen, waarbij de ene speler de andere niet wil beschadigen met

4 Empirical tests have shown that using such high fractions of the total disc flux is necessary, even if it has the disadvantage of requiring observations with high

De toenemende vorming van informatieketens was voor de Kennisgroep aanleiding hier aandacht aan te besteden door de beheersing van een informatieketen onder de loep te nemen en om

Verdeling verhuisgeneigde inkomensgroepen naar huishoudenstype, zelfstandige huishoudens met een verhuiswens binnen 2 jaar die naar een zelfstandige woning willen verhuizen, Gooi

De daling in waterkwaliteit en het verlies aan habitat, samen met de aanwezige kreeftenpest (een schimmel) die mee werd geïntroduceerd via de uitheemse rivierkreeften (en waarvoor

In dit fragment is dus zowel de tweede als derde vorm te zien; mediator en deelnemer komen hier niet meteen samen tot een afsluiting, maar komen in een

• Als een webgrafiek getekend is waarbij de draairichting tegengesteld is aan de hierboven afgebeelde draairichting, maximaal 2 punten voor deze

Voordat het onderzoek ingaat op de verbanden tussen de gassector en andere sectoren, zal er worden gekeken naar de manier hoe de sector omgaat met de inzet van lokaal