Skip to content

Commit 8607774

Browse files
Add files via upload
feat: add modular nls structure with include-based model
1 parent a8b46da commit 8607774

File tree

3 files changed

+540
-67
lines changed

3 files changed

+540
-67
lines changed

Example_Output_Code.nls

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
; Example NetLogo ABM Skeleton (Entrepreneurship Network)
2+
globals [lambda alpha beta gamma reinforce-rate decay-rate avg-P network-density sys-performance policy-mode]
3+
breed [ founders founder ]
4+
breed [ owners owner ]
5+
undirected-link-breed [ ties tie ]
6+
founders-own [ nq re se resource-gain strategy ]
7+
owners-own [ resource-level preference ]
8+
ties-own [ strength last-updated-tick ]
9+
10+
to setup
11+
clear-all
12+
resize-world -25 25 -25 25
13+
set-patch-size 8
14+
set-default-shape founders "person"
15+
set-default-shape owners "circle"
16+
if not is-number? lambda [ set lambda 0.005 ]
17+
if not is-number? alpha [ set alpha 0.5 ]
18+
if not is-number? beta [ set beta 0.5 ]
19+
if not is-number? gamma [ set gamma 0.5 ]
20+
if not is-number? reinforce-rate [ set reinforce-rate 0.05 ]
21+
if not is-number? decay-rate [ set decay-rate 0.02 ]
22+
if not is-number? policy-mode [ set policy-mode 0 ]
23+
create-founders 80 [
24+
setxy random-xcor random-ycor
25+
set color blue - 2
26+
set nq random-float 1
27+
set re random-float 1
28+
set se random-float 1
29+
set resource-gain 0
30+
set strategy one-of ["explore" "exploit" "diversify"]
31+
]
32+
create-owners 40 [
33+
setxy random-xcor random-ycor
34+
set color green + 2
35+
set resource-level 0.5 + random-float 0.5
36+
set preference one-of ["quality" "trust" "structure"]
37+
]
38+
ask founders [
39+
let cands n-of 3 owners
40+
foreach cands [ o ->
41+
if random-float 1 < 0.10 [
42+
create-tie-with o [
43+
set strength 0.3 + random-float 0.4
44+
set last-updated-tick ticks
45+
set color gray
46+
]
47+
]
48+
]
49+
]
50+
update-embeddedness
51+
update-metrics
52+
reset-ticks
53+
end
54+
55+
to go
56+
ask founders [
57+
act
58+
interact
59+
]
60+
decay-ties
61+
update-embeddedness
62+
update-metrics
63+
tick
64+
if ticks >= 500 [ stop ]
65+
end
66+
67+
to act
68+
if any? my-ties [
69+
let ow one-of [end2] of my-ties
70+
let p resource-acquire-prob self ow
71+
ifelse (random-float 1 < p) [
72+
set resource-gain resource-gain + 0.1
73+
ask tie-with ow [
74+
set strength strength + reinforce-rate
75+
set last-updated-tick ticks
76+
]
77+
ask ow [ set resource-level max list 0 (resource-level - 0.1) ]
78+
][
79+
ask tie-with ow [ set strength max list 0 (strength - 0.02) ]
80+
]
81+
]
82+
end
83+
84+
to interact
85+
ask ties with [ strength < 0.01 ] [ die ]
86+
end
87+
88+
to-report resource-acquire-prob [ e ow ]
89+
let NQ [nq] of e
90+
let RE embeddedness-relational e
91+
let SE embeddedness-structural e
92+
let inner (lambda * (NQ ^ alpha) * (RE ^ beta) * ((SE + 1) ^ gamma))
93+
report 1 - exp (-1 * inner)
94+
end
95+
96+
to-report embeddedness-relational [ e ]
97+
let ts [ties] of e
98+
ifelse any? ts [ report mean [strength] of ts ] [ report 0.01 ]
99+
end
100+
101+
to-report embeddedness-structural [ e ]
102+
let deg count [end2] of [ties] of e
103+
report deg / (count turtles)
104+
end
105+
106+
to decay-ties
107+
ask ties [
108+
set strength strength * (1 - decay-rate)
109+
if (ticks - last-updated-tick) > 20 [
110+
set strength strength * 0.5
111+
set last-updated-tick ticks
112+
]
113+
]
114+
end
115+
116+
to update-embeddedness
117+
ask founders [
118+
set re embeddedness-relational self
119+
set se embeddedness-structural self
120+
]
121+
end
122+
123+
to update-metrics
124+
if any? founders [
125+
set avg-P mean [ resource-acquire-prob self one-of owners ] of founders
126+
]
127+
set network-density calc-density
128+
set sys-performance sum [resource-gain] of founders
129+
end
130+
131+
to-report calc-density
132+
ifelse (count turtles < 2) [ report 0 ]
133+
[ report (2 * count ties) / ((count turtles) * (count turtles - 1)) ]
134+
end
135+
136+
to apply-policy
137+
if policy-mode = 1 [ ]
138+
if policy-mode = 2 [
139+
ask owners [ set resource-level resource-level + 0.1 ]
140+
]
141+
end
142+
143+
to run-experiment [ reps ]
144+
repeat reps [
145+
setup
146+
repeat 500 [ go ]
147+
]
148+
end

0 commit comments

Comments
 (0)