-
Notifications
You must be signed in to change notification settings - Fork 3
/
ArgABM.nlogo
2130 lines (1650 loc) · 82.4 KB
/
ArgABM.nlogo
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
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
; this file contains:
; 1. the definitions of the turtles, links
; and variables;
; 2. it includes the other files; and
; 3. the procedures that correspond to
; the buttons in the interface:
; setup, go and reset
; loading extensions
extensions[csv]
; three different kinds of turtles
; arguments and starts form the landscape
; researchers are the scientists that explore the landscape
breed [arguments argument]
breed [starts start]
breed [researchers researcher]
; two different kinds of relations on the arguments
; a discovery relation and an attack relation
directed-link-breed [discoveries discovery]
directed-link-breed [attacks attack]
; the trees have to be connected in order to be visible
undirected-link-breed [starters starter]
; connections between researchers are undirected
undirected-link-breed [collaborators collaborator]
; properties of the arguments, each argument "knows":
; the theory it belongs to, during the setup if it should
; be considered, how many ticks a researcher was working on it,
; when it was fully researched (when it turned red), in which status the
; different groups know the argument: actually and potentially (cache) if they
; learned this via inter-group communication
arguments-own [mytheory current-argument researcher-ticks
group-color-mem group-color-mem-cache]
; the roots additionally know how many researchers are working on that theory
; and keep track on how popular they have been over the course of the run as
; well as how admissible their theory is objectively
starts-own [mytheory current-start myscientists researcher-ticks
research-time-monist research-time-pluralist myscientists-pluralist
objective-admissibility group-color-mem group-color-mem-cache
initial-scientists]
; attack relations keep track starting from which theory (mytheory-end1) they
; are attacking which other theory (mytheory-end2), if they're uncontested
; i.e. if their end1 doesn't have an attacker from their mytheory-end2,
; whether they are known by the different groups and during the
; compute-subjective-attacked procedure whether they have already been
; processed
attacks-own [mytheory-end1 mytheory-end2 uncontested in-group-i-memory
processed?]
; every researcher keeps track of how often she thinks
; that she should jump to another theory, how many times she jumped,
; the social network she belongs to, her current subjective landscape,
; the current best theory, if she received information at the current time
; the information in her neighborhood, whether she moved, if she is the
; representative researcher of her network, the new arguments/relations
; that are to be added, whether she updated her memory this round,
; the non-admissible arguments she knows, the argument she is currently
; working on and a cache for information she is currently digesting from the
; inter-group sharing
researchers-own [theory-jump times-jumped collaborator-network
subjective-arguments subjective-relations current-theory-info cur-best-th
th-args th-relations communicating moved rep-researcher
to-add-mem-argu to-add-mem-rel flag-updated-memory
non-admiss-subj-argu mygps group-id argu-cache on-red-theory? social-action]
globals [max-learn small-movement color-move colla-networks colla-groups
share-structure startsargum disc-startsargum-non-red rel-costfactor rndseed
rep-researchers g-cum-com-costs g-max-com-costs g-unpaid-com-costs
g-cur-avg-com-costs round-converged last-converged-th scientists all-scientists
g-knowledge g-max-ticks g-red-theories g-exit-case g-exit-condition? g-learn-set
g-learn-set-theories g-learn-frequency g-exit-case-start g-exit-case-duration
g-comp-pop-counter g-active-colla-networks g-static-phase g-convergence-start
g-convergence-duration none-before g-none-on-best-start
g-none-on-best-duration g-diversity-start g-diversity-duration]
; includes
__includes ["setup.nls" "behavior.nls" "strategies.nls" "protocol.nls"]
; the setup procedure:
; argument: rs. The random-seed for the run
; the hidden variables (not set in the interface)
; colla-networks temporarily contains the number of groups which will be set
; up later, as an integer
; it creates a landscape of arguments and a discovery relation
; on this landscape; attacks are defined;
; the researchers are distributed over the theories
; the objective-admissibility for each theory is calculated
to setup [rs]
clear-all
set rndseed rs
random-seed rs
initialize-hidden-variables
set colla-networks (collaborative-groups + biased-deceptive-groups)
set colla-groups colla-networks
set all-scientists colla-networks * col-group-size
set scientists collaborative-groups * col-group-size
set g-max-com-costs [0 0]
set g-knowledge []
set g-red-theories no-turtles
set g-exit-condition? false
set g-learn-set-theories no-turtles
set g-exit-case-start n-values 2 [[]]
set g-exit-case-duration n-values 2 [[]]
set g-convergence-start []
set g-convergence-duration []
set none-before true
set g-none-on-best-start []
set g-none-on-best-duration []
set g-diversity-start []
set g-diversity-duration []
create-discovery-landscape
define-attack-relation
distribute-researchers
calc-global-admiss
record-initial-scientists
; this `set...` has to be run after `distribute-researchers` b/c
; colla-networks are only created in the sub-procedure `create-x-groups`
set g-active-colla-networks colla-networks
if necessary-convergence [
set-g-learn-set
]
reset-ticks
end
; advances the model one round with- or without evaluating the exit-condition
; depending on the argument:
; exit? = exit-condition evaluated?, type: boolean
to go [exit?]
with-local-randomness [
if necessary-convergence and any? g-red-theories [
exit-case-distinction
]
if exit? and not g-exit-condition? [
set g-exit-condition? exit-condition
if g-exit-condition? [
let present-time ticks
ifelse necessary-convergence [
if g-exit-case != 0 [
set-exit-case-duration g-exit-case
]
][
final-commands
; +1 b/c the final-commands effectively happen in an additional round
set present-time ticks + 1
]
set-convergence-duration present-time
set-non-on-best-duration present-time
record-diversity present-time
if knowledge-tracking [
save-tracked-knowledge
]
]
]
]
ifelse g-exit-condition? and exit? [
stop
][
go-core
]
end
; procedure that lets the program run, after the landscape was setup
; every five time steps researchers update their memory and compute the
; best strategy
; researchers always move around and update the landscape (with the
; probabilities as set in the interface)
to go-core
let update-pluralist? false
; the +1 correct for the fact that the tick counter is only advanced at the
; end of the procedure
if necessary-convergence and (ticks + 1) mod g-learn-frequency = 0 [
learn-random-item
]
if ticks mod 5 = 4 [
if g-static-phase = 0 [
set rep-researchers no-turtles
ask researchers [
set rep-researcher false
update-memories nobody
]
create-share-memory
]
if g-static-phase <= 1 [
share-with-group
]
ifelse g-static-phase = 0 [
share-with-other-networks
][
set g-cur-avg-com-costs 0
]
if g-static-phase <= 2 [
set update-pluralist? true
compute-subjective-attacked
; g-static-case is updated in the following way after
; compute-subjective-attacked has been run: 0 to 1, 1 to 3, 2 to 3
if g-exit-case = 2 [
let summand ifelse-value (g-static-phase = 1) [2] [1]
set g-static-phase g-static-phase + summand
]
]
act-on-strategies
]
if g-static-phase = 0 [
move-around
update-landscape
]
ask researchers [
set flag-updated-memory false
]
if ticks mod 5 != 0 [
communication-regress
]
with-local-randomness [compute-popularity update-pluralist?]
tick
end
@#$#@#$#@
GRAPHICS-WINDOW
210
115
881
787
-1
-1
13.0
1
10
1
1
1
0
0
0
1
-25
25
-25
25
1
1
1
ticks
30.0
BUTTON
10
10
65
43
setup
setup new-seed
NIL
1
T
OBSERVER
NIL
NIL
NIL
NIL
1
BUTTON
10
45
65
78
go
go false
NIL
1
T
OBSERVER
NIL
NIL
NIL
NIL
0
BUTTON
70
45
125
78
go
go false
T
1
T
OBSERVER
NIL
NIL
NIL
NIL
0
SLIDER
210
35
382
68
number-of-theories
number-of-theories
2
3
3.0
1
1
NIL
HORIZONTAL
SLIDER
210
75
382
108
theory-depth
theory-depth
1
5
3.0
1
1
NIL
HORIZONTAL
SLIDER
10
160
182
193
col-group-size
col-group-size
1
20
5.0
1
1
NIL
HORIZONTAL
TEXTBOX
210
10
360
28
Landscape settings
13
0.0
1
SLIDER
390
35
560
68
attack-probability-2nd
attack-probability-2nd
0
1
0.3
0.01
1
NIL
HORIZONTAL
TEXTBOX
15
95
165
113
Researcher settings
13
0.0
1
SLIDER
10
575
182
608
move-probability
move-probability
0
1
0.5
0.01
1
NIL
HORIZONTAL
SLIDER
10
615
182
648
visibility-probability
visibility-probability
0
1
0.5
0.01
1
NIL
HORIZONTAL
SLIDER
10
655
182
688
research-speed
research-speed
0
50
5.0
5
1
NIL
HORIZONTAL
TEXTBOX
755
10
905
28
Strategy settings
13
0.0
1
SLIDER
755
35
927
68
strategy-threshold
strategy-threshold
0
1
0.9
0.1
1
NIL
HORIZONTAL
SLIDER
755
75
927
108
jump-threshold
jump-threshold
1
25
10.0
1
1
NIL
HORIZONTAL
SLIDER
570
35
740
68
attack-probability-best
attack-probability-best
0
1
0.3
0.01
1
NIL
HORIZONTAL
PLOT
890
145
1090
295
Popularity
Time steps
No. of researchers
0.0
100.0
0.0
8.0
true
false
"" ""
PENS
"best theory" 1.0 0 -2674135 true "" "let all-theories []\nask starts [ set all-theories lput self all-theories ]\nset all-theories sort all-theories\nif length all-theories >= 1[\nplotxy ticks [myscientists] of first all-theories]"
"start 2" 1.0 0 -11085214 true "" "let all-theories []\nask starts [ set all-theories lput self all-theories ]\nset all-theories sort all-theories\nif length all-theories >= 2[\nplot [myscientists] of first (but-first all-theories)\n]"
"start 3" 1.0 0 -13791810 true "" "let all-theories []\nask starts [ set all-theories lput self all-theories ]\nset all-theories sort all-theories\nif length all-theories >= 3 [\nplot [myscientists] of first (but-first (but-first all-theories))\n]"
"start 4" 1.0 0 -723837 true "let all-theories []\nask starts [ set all-theories lput self all-theories ]\nset all-theories sort all-theories" "let all-theories []\nask starts [ set all-theories lput self all-theories ]\nset all-theories sort all-theories\nif length all-theories >= 4 [\nplot [myscientists] of last all-theories\n]"
TEXTBOX
894
121
1044
139
Plots and monitors
13
0.0
1
SWITCH
10
360
150
393
within-theory
within-theory
0
1
-1000
SLIDER
390
75
562
108
attack-probability-3rd
attack-probability-3rd
0
1
0.3
0.01
1
NIL
HORIZONTAL
CHOOSER
10
440
148
485
network-structure
network-structure
"cycle" "wheel" "complete"
0
BUTTON
70
10
142
43
go-stop
go true
T
1
T
OBSERVER
NIL
NIL
NIL
NIL
0
PLOT
890
305
1090
455
Current avg. com. costs
Time steps
days / scientist
0.0
100.0
0.0
0.01
true
false
"" ""
PENS
"default" 1.0 0 -16777216 true "" "plot g-cur-avg-com-costs"
CHOOSER
935
65
1117
110
evaluation
evaluation
"defended-args" "non-defended-args" "non-defended-multiplied" "non-defended-normalized"
0
SWITCH
940
25
1097
58
heuristic-non-block
heuristic-non-block
1
1
-1000
SLIDER
10
120
182
153
collaborative-groups
collaborative-groups
1
50
10.0
1
1
NIL
HORIZONTAL
SWITCH
10
490
172
523
knowledge-tracking
knowledge-tracking
1
1
-1000
MONITOR
890
465
1015
510
Degree of Def T1 (best theory)
item 0 map [i -> round((100 * ([objective-admissibility] of i) / ((4 ^ (theory-depth + 1)) / 3 - 1 / 3)))] sort starts
17
1
11
MONITOR
890
510
1015
555
Degree of Def T2
item 1 map [i -> round((100 * ([objective-admissibility] of i) / ((4 ^ (theory-depth + 1)) / 3 - 1 / 3)))] sort starts
17
1
11
MONITOR
890
555
1015
600
Deegree of Def T3
item 2 map [i -> round((100 * ([objective-admissibility] of i) / ((4 ^ (theory-depth + 1)) / 3 - 1 / 3)))] sort starts
17
1
11
SWITCH
10
530
175
563
necessary-convergence
necessary-convergence
1
1
-1000
SWITCH
570
75
745
108
defense-from-leaves
defense-from-leaves
1
1
-1000
SLIDER
10
320
185
353
col-groups-on-best-t
col-groups-on-best-t
1
20
8.0
1
1
NIL
HORIZONTAL
SWITCH
10
280
185
313
controlled-spread-of-researchers
controlled-spread-of-researchers
1
1
-1000
SLIDER
10
200
185
233
deceptive-groups
deceptive-groups
0
collaborative-groups
0.0
1
1
NIL
HORIZONTAL
SWITCH
10
400
175
433
group-distribution
group-distribution
0
1
-1000
SLIDER
10
240
185
273
biased-deceptive-groups
biased-deceptive-groups
0
collaborative-groups
0.0
1
1
NIL
HORIZONTAL
@#$#@#$#@
# PLEASE NOTE: this documentation is work in progress!
# ArgABM
An agent-based model for scientific inquiry based on abstract argumentation.
## Published papers based on this model
_Epistemic effects of scientific interaction: approaching the question with an argumentative agent-based model_
In: HSR Vol. 43, No. 1: Special Issue: _Agent-Based Modeling in Social Science, History, and Philosophy_, 2018, pp. 285-307, [doi:
10.12759/hsr.43.2018.1.285-307](https://www.ssoar.info/ssoar/handle/document/56488)
The question whether increased interaction among scientists is beneficial or harmful for their efficiency in acquiring knowledge has in recent years been tackled by means of agent-based models (ABMs) (e.g. Zollman 2007, 2010; Grim 2009; Grim et al. 2013). Nevertheless, the relevance of some of these results for actual scientific practice has been questioned in view of specific parameter choices used in the simulations (Rosenstock et al. 2016). In this paper we present a novel ABM that aims at tackling the same question, while representing scientific interaction in terms of argumentative exchange. In this way we examine the robustness of previously obtained results under different modeling choices.
_Examining Network Effects in an Argumentative Agent-Based Model of Scientific Inquiry_
In: Baltag, A., Seligman, J., Yamada, T. (eds) _Logic, Rationality, and Interaction, LORI 2017 (Lecture Notes in Computer Science, Vol. 10455)_, 2017, pp. 391-406, [doi: 10.1007/978-3-662-55665-8 27](http://dx.doi.org/10.1007/978-3-662-55665-8_27)
In this paper we present an agent-based model (ABM) of scientific inquiry aimed at investigating how different social networks
impact the efficiency of scientists in acquiring knowledge. The model is an improved variant of our previous ABM, which is based on
abstract argumentation frameworks. The current model employs a more refined notion of social networks and a more realistic representation of knowledge acquisition than the previous variant. Moreover, it includes two criteria of success: a monist and a pluralist one, reflecting different desiderata of scientific inquiry. Our findings suggest that, given a reasonable ratio between research time and time spent on communication, increasing the degree of connectedness of the social network tends to improve the efficiency of scientists
_An Argumentative Agent-Based Model of Scientific Inquiry_
In: Benferhat, S., Tabia, K., Ali, M. (eds) _Advances in Artificial Intelligence: From Theory to Practice, IEA/AIE 2017 (Lecture Notes in Computer Science, Vol. 10350)_, 2017, pp. 507-510, [doi: 10.1007/978-3-319-60042-0 56](http://dx.doi.org/10.1007/978-3-319-60042-0_56)
In this paper we present an agent-based model (ABM) of scientific inquiry aimed at investigating how different social networks impact the efficiency of scientists in acquiring knowledge. As such, the ABM is a computational tool for tackling issues in the domain of scientific methodology and science policy. In contrast to existing ABMs of science, our model aims to represent the argumentative dynamics that underlies scientific practice. To this end we employ abstract argumentation theory as the core design feature of the model.
## Collaborators and funding
AnneMarie Borg (Institute for Philosophy II, Ruhr-University Bochum)
Daniel Frey (Faculty of Economics and Social Sciences, Heidelberg University)
Dunja Šešelja (Munich Center for Mathematical Philosophy, LMU Munich)
Christian Straßer (Institute for Philosophy II, Ruhr-University Bochum)
The research by AnneMarie Borg and Christian Straßer is supported by a Sofja Kovalevskaja award of the Alexander von Humboldt Foundation and by the German Ministry for Education and Research.
# Documentation
## Interface
### Buttons
#### setup
Creates the landscape, including attacks and distributes the scientists/researchers over this landscape
#### go
Lets the program run one time step
#### go (infinite, has a small circle)
Lets the program run infinitely many steps, or until the button is clicked again
#### go-stop (infinite, has a small circle)
Lets the program run until the `exit-condition` is met or until the button is clicked again
### Landscape settings
#### number-of-theories
* type: slider
Sets the number of theories/trees that will be created
#### theory-depth
* type: slider
Sets the depth of the tree
#### defense-from-leaves
* type: switch
If turned on: creates a more difficult landscape in which the best theory is largely defended by the leaves-arguments
#### attack-probability-best
* type: slider
The probability that an argument of the objective best theory has an incoming attack
#### attack-probability-2nd
* type: slider
The probability that an argument of the 2nd theory has an incoming attack
#### attack-probability-3rd
* type: slider
If there are three theories, the probability that an argument of the 3rd theory has an incoming attack
### Strategy settings
#### strategy-threshold
* type: slider
Defines the threshold within which the number of admissible arguments is still considered good, if this threshold gets higher, the interval of acceptable values gets smaller
#### jump-threshold
* type: slider
Is the number of times a researcher has to consider jumping before she really jumps to another theory
#### heuristic-non-block
* type: switch
If turned on: researchers working on an argument which is not admissible according to their evaluation, don't have to work on that argument until it is fully explored (=red) but can instead move on in the same way as if working on any other argument
#### evaluation
* type: chooser
The evaluation criterion researchers apply when determining the score they assign to theory x (always according to their subjective memory). The four options are:
* "defended-args": score = number of defended arguments in theory x. Higher score = better.
* "non-defended-args": score = number of non-defended arguments in theory x. Lower score = better.
* "non-defended-normalized": score = number of non-defended arguments in theory x / number of all arguments in theory x. Lower score = better.
* "non-defended-multiplied": score = number of non-defended arguments in theory x * number of all arguments in theory x. Lower score = better.
### Researcher settings
#### collaborative-groups
* type: slider
The number of groups (teams of researchers) that will explore the landscape.
#### col-group-size
* type: slider
Each group (team of researchers) consists of this many researchers
#### move-probability
* type: slider
The probability that researchers move to a next argument while exploring the landscape
#### visibility-probability
* type: slider
The probability that new attacks are discovered by researchers
#### research-speed
* type: slider
The time an researcher has to work on an argument before it will change color
#### within-theory
* type: switch
Here the kind of collaborative network is set to researchers that start on the same theory (on) or randomly chosen researchers (off)
#### deceptive-groups
* type: slider
The number of collaborative-groups that consist of deceptive agent, these agents do not share the attacks to their current theory. Agents from all other groups (the reliable agents) share all information about the current theory.
#### group-distribution
* type: switch
If turned on: the deceptive agents form collaborative groups with other deceptive agents. If turned off, the deceptive agents are randomly distributed over the different collaborative groups.
#### biased-deceptive-groups
* type: slider
To choose the number of groups of biased-deceptive agents. These agents stay on one theory (not the best) and do not share attacks on that theory.
#### network-structure
* type: chooser
Determines the structure in which the collaborator-networks are connected and with how many researchers information is shared
#### knowledge-tracking
* type: switch
If turned on: during the run information on the current state of beliefs and knowledge is collected every time researchers update their beliefs. When a run ends this information is written to an external csv file. **Warning:** This data will get corrupted if multiple instances of this model with knowledge-tracking turned on are run in parallel (e.g. via BehaviorSpace). Therefore only use single threaded runs when collecting data via knowledge-tracking!
#### necessary-convergence
* type: switch
If turned on: the run will only end once all researchers converged on the best theory and at least one theory is fully explored (=red). Researchers also don't perform a final evaluation with the possibility to switch theories once a theory turns red or the run ends. If at least one theory is fully explored in the objective landscape the way how agents learn information changes:
* if some researchers are working on not fully explored theories (`g-exit-case` 1) those researchers share information as usual and rep-researchers on red theories share as if they were standing on an random argument of their theory
* if all researchers are on red theories (`g-exit-case` 2) they all learn once a month (= every 30 ticks) a random bit of information regarding the objective landscape (cf. `learn-random-item`).
#### controlled-spread-of-researchers