Presentation is loading. Please wait.

Presentation is loading. Please wait.

MIS 585 Special Topics in IMS Agent-Based Modeling Bertan Badur Department of Management Information Systems Boğaziçi University.

Similar presentations


Presentation on theme: "MIS 585 Special Topics in IMS Agent-Based Modeling Bertan Badur Department of Management Information Systems Boğaziçi University."— Presentation transcript:

1 MIS 585 Special Topics in IMS Agent-Based Modeling Bertan Badur badur@boun.edu.tr Department of Management Information Systems Boğaziçi University

2 Outline Intorduction Life Heroes and Cowards Simple Economy

3 Introduction Intorduction to Agent-Based Modeling By U. Wilensky, W. Rand. IABM-WR Chapter 2

4 Introduction learn to construct simple ABMs “toy models” – not mean models of real phenomena thought experiments objects to think with simple to construct but exebits interesting, suprising emergent behavior

5 Outline Intorduction Life Heroes and Cowards Simple Economy

6 Life In 1970 British mathematician John Horton Conway, Conway (1976) cellular automata - the “Game of Life” Martin Gardner, Scientific American colomn

7 The Game Played on checkeboard – graph paper N x N cells – can be –“alive” or “dead”: state of a cell surrounded by –eight neighbour cells the grid is “wrap around” clock ticks – generation

8 Rules of the Game Each cell checks its own state and states of its neighbors and set itself as “alive” or ”dead” –if the cell has less then 2 alve neighbors – it dies –if it has more then 3 alive neighbors – it also dies –if it has 2 alive neighbors – it remains in its current state –if it has 3 alive neighors – if dead become alive, if alive, stay alive

9 NetLogo NetLogo has three tabs Interface tab –black area – “view” –white area – interface set user interface elements; buttoms, siliders.. observe results: output, plots.... Code tab Info tab

10 The view composed of grid of cells – patches how to open –click settings in toolbar or –on the visw double click and select edit Parameters to set –Location of orgin –max-pxcor, max-pycor 25 –patch size: 13 to 8 –world wraps hirizonallyi vertically, see IABM-WR pp 55 Box 2.1 Wrapping

11 NetLogo Code modules – procedures begin with to end with end usually setup –initializations go –processes taking place advences clock by tick

12 procedures – commands to proc name commands end Create a button executing procedure setup Create a button executing procedure go –forever is cheked – forever button write setup procedure code tab

13 to setup end to go end

14 Initialization to setup ;; ] end ask primitive asks selected agents to do actions by commands in brackets set color of all pathces to red set - primitive is assignment pcolor – variable for patches

15 Initialization to setup ;;clear all setings ;; set dead patches to blue ;; 10% of patches are alive ;; initilize clock end

16 to setup clear-all ask patches [ set pcolor blue if random 100 < 10 [ set pcolor green ] ] reset-ticks end

17 Exercise What is the difference between asking exactly 10% of the patches being alive –How do you perform this in general for any number of patches, exactly X% being alive the chance of a randomly seleced patch being alive is 10%

18 Box 2.2: Agent Centeric Thinking

19 ask patches [ if random 100 < 10 [set pcolor green] ;; end if ] ;; end ask or ask patches with [random 100 < 10] [ set pcolor green ] ] ;; end ask

20 Asking exactly 10% of patches to setup ask n-of 0.1*(51*51) patches [ set pcolor green ] ] ;; end ask ] ;;end setup or more generally to setup let number-of-patches count patches ask n-of 0.1*number-of-patches patches [ set pcolor green ] ] ;; end ask ] ;;end setup

21 go Procedure to go ;; each patch counts its alive neighbors ;; number of green neighboring patches ;; patches with 3 green naigbors turn or stay green ;; patches with 0 or 1 green neighbors turn or stay blue ;; patches with 4 or higher neighbors turn to blue end

22 go Implementation to go ask patches [ set live-neighbors count neighbors with [pcolor = green] ] ask patches [ if live-neighbors = 3 [set pcolor green] if live-neighbors = 1 or live- neighbors = 0 [set pcolor blue] if live-neighbors >= 4 [set pcolor blue] ]

23 to setup ask n-of 4 patches [ ask n-of 20 patches in-radius 5 [ set pcolor red ] end 4 patches are randomly selected for each randomly selected pathc for all patches in radius 5 select 20 randomly set their color to red

24 clear-all to setup clear-all ;abriviares as – ca - ask n-of 4 patches [ ask n-of 20 patches in- radius 5 [ set pcolor red ] end clear-all: clear all default values

25 using parameters globals [ num-clusters ] to setup clear-all set num-clusters 4 ask n-of num-clusters patches [ ask n-of 20 patches in-radius 5 [ set pcolor red ] end

26 creating 2 hunters - turtles create-tutrles 2 ;crt 2 [ set sıze 2 set color yellow ] create 2 turtles crt or create-tutles bnild-in turtle variables size and color

27 variable for patches patches-own [ live-neighbors ] live-neighbors variable

28 go procedure to go ask turtles [search] end to search ifelse tıme-sınce-last-found <= 20 [right (random 181) - 90] [right (random 21) - 10] forward 1 end cifelse boolean condition [ block whan true ] [ block when false ] right: turn right by angle in degrees

29 variable for turtles tutrles-own [ tıme-sınce-last-found ] tıme-sınce-last-found variable for all turtles time passed since last mushroom has found by the hunter

30 add to the search procedure ifelse pcolor = red [ set tıme-sınce-last-found 0 set pcolor yellow ] [ set tıme-sınce-last-found tıme-sınce- last-found + 1 ] end if found pcolor is red set tıme-sınce-last-found to 0 set pcolor yellow else increment tıme-sınce-last-found by one

31 command center select turtles write commands hatch 1 [right 160] show count turtles

32 firther modifications adding ticks add reset-ticks to the end of setup add tick to the begining of go following motion of hunters add pen-down to the setup procedute when initilizing turtles

33 Stable Patterns 1 – Still Lifes: stable shapes unless other shapes collide with them –block, the beehive, the loaf,... 2 – Oscillators: repeat over time 3 – Spaceships: move across the life world Unstable Patterns: guns: a pattern with a main part that repeats like an oscillator and periodically emits spaceships

34 In 1983, Stephan Wolfram – physisist and mathematical software entrepreneur One dimensional CA with only one neighbor in each side classified all possible rules into four behavioral regions –homogenous, periodic, chatoic and complex Complexity in nature – due to CA like simple mechanisms

35 Outline Intorduction Life Heroes and Cowards Simple Economy

36 Heroes and Cowards

37 Rules of the game with people each choose a heroe and an enemy two stages: first every one act – coward –move be sure that your friend is always between you and your enemy –hiding from your enemy behind your friend cowardly second – behave like a heroe –move between your friend and enemy –protecting your friend from your enemy – herotic manner

38 setup pseudocode to setup ;; clear all previous settings variables ;; make patches white ;; create a set of turtles reand tne number froma slider ;; set x y corrdinates randomly ;; set colors to blue for cowards and red for heroes ;; if mixed is choosen determine crowads and heroes randomly while settng their colors ;; set one other turtle as their friends and oneother turtle as their enemies ;; reset ticks end

39 setup code turtles-own [friend enemy] to setup ca ask patches [set pcolor white] crt number [ setxy random-xcor random-ycor if personalities = "cowardly" [set color red] if personalities = “breverly" [set color blue] if personalities = "mixed" [set color one-of [blue red]] set friend one-of other turtles set enemy one-of other turtles ] reset-ticks end

40 Interface elements slider: –variable: number –default 68 Chooser –variable: personalities –choices: “”” “cowardly”, “brawe”, ”mixed” Settings –wrap off

41 go pseudocode go at each tick if the agent is heroe act brawely – in a herotic manner if the agent is cowars act cowardly advance clock by one end

42 to go ask turtles [ if color = blue [act- bravely] if color = red [act- cowadly] ] tick end

43 acting submodels to act-bravely ;; move toward the mod of your friend and your enemy facexy ([xcor] of friend + [xcor] of enemy) / 2 ([ycor] of friend + [ycor] of enemy) / 2 fd 0.1 end to act-cowadly ;; set your friend between you and your enemy facexy [xcor] of friend + ([xcor] of friend - [xcor] of enemy) / 2 [ycor] of friend + ([ycor] of friend - [ycor] of enemy) / 2 fd 0.1 end

44 Random number generation sequance of random numbers initial value is taken from the clock of computer if you want to strart from the same seed random-seed 137 show random 100 always generate the same sequance of random numbers 79 89 61

45 Outline Intorduction Life Heroes and Cowards Simple Economy

46 Economies – heterogenous actors –buyers and sellers in 1996, J. Epstein, R. Axtell, SugerScape

47 Fixed number of people: 500 each starting out with inital amount of money: 100 At each tick, each person gives one of her 1 dollar‘s to any other person at random What will happen to the distribution of money? constraint – total amount of money fixed –no one can have negative money –if income is zore, connot give any away

48 is there a limiting distribution of money? Intiution: –flat – initially every body has the saime money randomly seleced one to give –normal -

49 Version 1 to setup ;; clear everything ;; create 500 turtles with an initial wealth of 100 each ;; reset tick end

50 setup turtles-own [wealth] to setup ca crt 500 [ set wealth 100 ] reset-ticks end

51 Version 1 to go ;;ask turles to transact if thye have positive or wealth ;; advence clock end to transact ;; contect turtle ;; decrement wealth of current turtle by one ;; for one of the other turtles, increment its wealth by one end

52 go and transact to go ask turtles with [wealth > 0] [transact] tick end to transact set wealth wealth - 1 ask one-of other turtles [set wealth wealth + 1] end

53 Exercises can you move the wealth chacking condition to transact? can you use with instead of if?

54 Monitoring by histogram Adjust settings world size –orgine: left button –max-xcor 500 –max-ycor 80 –patch size 1 –no wraping in both dimensions Interface – plot –max-x:500, max-y:40 –histrogram [wealth] of turtles –pen mode: bar –Color green

55 Using view with an histogram For turtles: –size:2 –color: green –shape: “circle” x coordinate of view – wealth y coordinate of view – randomly assigned kind of bar of a histogram During iterations set x coordinate to wealth if wealth is less then 500

56 Version 2 setup turtles-own [wealth] to setup ca crt 500 [ set size 2 set shape "circle" set color green set wealth 100 setxy wealth random-ycor ] reset-ticks end

57 go and transact to go ask turtles with [wealth > 0] [transact] ask turtles [ if wealth <= max-pxcor [set xcor wealth]] tick end to transact set wealth wealth - 1 ask one-of other turtles [set wealth wealth + 1] end


Download ppt "MIS 585 Special Topics in IMS Agent-Based Modeling Bertan Badur Department of Management Information Systems Boğaziçi University."

Similar presentations


Ads by Google