# Agent_Zero

No preview image

Model was written in NetLogo 6.0.2
•
Viewed 293 times
•
Downloaded 21 times
•
Run 0 times

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)

## Comments and Questions

Please start the discussion about this model!
(You'll first need to log in.)

Click to Run Model

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; AGENT_ZERO ;; MOVIE 3 Parable 1 Code. Version 1.0 ;; Agent_Zero Joins ;; ;; Joshua M. Epstein ;; February 2010 ;; Revised November 2012 ;; Book Sliders [45,0,6,1,1] ;; Book Seed 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;extensions [vid] globals[ ; The more important of these are set w/sliders. inactive-color active-color destroyed-color link-color deactivation-rate ; Probablitity a patch returns to inactive from active maximum-stopping-time ] directed-link-breed [red-links red-link] links-own [weight] turtles-own [ affect learning_rate lambda delta ; Generalized Rescorla-Wagner exponent threshold event_count disposition probability memory ] to use-new-seed ; Seed generated by NetLogo let my-seed new-seed output-print word "Generated seed: " my-seed ; Print in Command Center window random-seed my-seed ; Use the new seed end to use-seed-from-user ; Queries user for seed let my-seed read-from-string user-input "Enter a random seed (an integer):" output-print word "User-entelink-colorseed: " my-seed random-seed my-seed end to setup-globals set inactive-color yellow ; Small random number is added, in setup-patches, for visualization. set active-color orange + 1 set destroyed-color red - 3 set deactivation-rate 8 set link-color red set maximum-stopping-time 50000 end to setup-links ask turtle 0 [ create-red-link-to turtle 1] ask red-link 0 1 [ set color link-color set weight 0.3] ask turtle 0 [ create-red-link-to turtle 2] ask red-link 0 2 [ set color link-color set weight 0.3] ask turtle 1 [ create-red-link-to turtle 0] ask red-link 1 0 [ set color link-color set weight 0.3] ask turtle 1 [ create-red-link-to turtle 2] ask red-link 1 2 [ set color link-color set weight 0.3] ask turtle 2 [ create-red-link-to turtle 0] ask red-link 2 0 [ set color link-color set weight 0.3] ask turtle 2 [ create-red-link-to turtle 1] ask red-link 2 1 [ set color link-color set weight 0.3] end to setup clear-all ;use-new-seed . use-seed-from-user setup-globals setup-patches setup-turtles setup-links ;setup-movie ; Uncomment to make movie reset-ticks end ;;to setup-movie ;; vid:start-recorder ;; vid:record-view ; Show the initial state ;; repeat 750 ; Movie length in frames ;; [ go ;; vid:record-view ] ;; vid:save-recording "out" ;;end to setup-turtles set-default-shape turtles "person" create-turtles 3 ask turtle 0 [ setxy -9 -9 ; For random positions use random x-cor random y-cor set color blue set affect 0.001 ; For delta > 0, if V(0)=0, then V(t)=0 for all t. Hence, small positive init. set delta 0 set lambda 1 set learning_rate .1 set threshold .5 set event_count 0 set disposition 0 set probability 0 set memory [] repeat memory_length [set memory lput random-float 0 memory] ;set memory [0] ; This recovers the memory one original model, w/initial estimate the entry. ;set memory [0 0 0 0] ;set label who ; Uncomment to have agent number visible ] ask turtle 1 [ setxy 5 5 set color blue set affect 0.001 set delta 0 set lambda 1 set learning_rate .1 set threshold .5 set event_count 0 set disposition 0 set probability 0 ;set memory [ 1 3 5 7 8] set memory [] repeat memory_length [set memory lput random-float 0 memory] ; show memory ; set label who ] ask turtle 2 [ setxy 3 9 set color blue set affect 0.001 set delta 0 set lambda 1 set learning_rate .1 set threshold .5 set event_count 0 set disposition 0 set probability 0 set memory [] repeat memory_length [set memory lput random-float 0 memory] ;set memory [0 0] ;set label who ] end to setup-patches ask patches [set pcolor inactive-color + random 2] end to go ; Corresponds to 'main' in C/C++ if ticks >= maximum-stopping-time [stop] move-turtles activate-patches update-event_count update-affect update-probability update-disposition take-action deactivate-patches ; Turns them back to inactive from active. do-plots1 do-plots2 do-plots3 tick end to update-event_count ask turtles[ if pcolor = active-color [set event_count event_count + 1] ] end to update-affect ; Standard RW for delta=0. Standard logistic for delta=1. General S-curves : 0 < delta < 1 ask turtles [ if pcolor = active-color [set affect affect + (learning_rate * (affect ^ delta) * (lambda - affect))] if pcolor != active-color [set affect affect + (learning_rate * (affect ^ delta) * extinction_rate *(0 - affect))] ] ; Standard RW extinction for extinction_rate=1. Typically use < 1. end to update-probability ask turtles[ let current_probability (count patches in-radius spatial_sample_radius with [pcolor = active-color]/(count patches in-radius spatial_sample_radius)) set memory but-first memory ; Drops leftmost value set memory lput current_probability memory ; Adds current_prob as rightmost value set probability mean memory ;set probability median memory ; Uncomment this, and comment out mean to switch to moving median, and vice versa. ] end to update-disposition ; Uses Disposition net of threshold ask turtle 0 [ set disposition affect + probability + [weight] of red-link 1 0 * ([affect] of turtle 1 + [probability] of turtle 1) + [weight] of red-link 2 0 * ([affect] of turtle 2 + [probability] of turtle 2) - threshold] ; NetLogo scoping interprets the last as : [threshold] of turtle 0 ask turtle 1 [ set disposition affect + probability + [weight] of red-link 0 1 * ([affect] of turtle 0 + [probability] of turtle 0) + [weight] of red-link 2 1 * ([affect] of turtle 2 + [probability] of turtle 2) - threshold] ask turtle 2 [ set disposition affect + probability + [weight] of red-link 0 2 * ([affect] of turtle 0 + [probability] of turtle 0) + [weight] of red-link 1 2 * ([affect] of turtle 1 + [probability] of turtle 1) - threshold] end to move-turtles ask turtles with [who != 0] [ ; This immobilizes Agent_0 right random 360 ; Adopt random heading forward 1 ] end to take-action ask turtles [ if disposition > 0 [ask patches in-radius action_radius [set pcolor destroyed-color]] ] end to activate-patches ; Patches in specified sector that are not dead ask patches with [pxcor > -5 and pycor > -2] [if random 1000 < attack_rate and pcolor != destroyed-color [set pcolor active-color]] end to deactivate-patches ask patches with [pxcor > -5 and pycor > -2] [if random 100 < deactivation-rate and pcolor != destroyed-color [set pcolor inactive-color + random 2]] end to do-plots1 set-current-plot "Disposition" set-current-plot-pen "turtle 0" plot [disposition] of turtle 0 set-current-plot-pen "turtle 1" plot [disposition] of turtle 1 set-current-plot-pen "turtle 2" plot [disposition] of turtle 2 end to do-plots2 set-current-plot "Probability" set-current-plot-pen "turtle 0" plot [probability] of turtle 0 set-current-plot-pen "turtle 1" plot [probability] of turtle 1 set-current-plot-pen "turtle 2" plot [probability] of turtle 2 end to do-plots3 set-current-plot "Affect" set-current-plot-pen "turtle 0" plot [affect] of turtle 0 set-current-plot-pen "turtle 1" plot [affect] of turtle 1 set-current-plot-pen "turtle 2" plot [affect] of turtle 2 end

There is only one version of this model, created about 5 years ago by Joshua Epstein.

## Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.