1
0
mirror of https://github.com/gsi-upm/soil synced 2025-08-23 19:52:19 +00:00
This commit is contained in:
J. Fernando Sánchez
2022-10-06 15:49:10 +02:00
parent 0a9c6d8b19
commit f811ee18c5
53 changed files with 856 additions and 774 deletions

View File

@@ -98,11 +98,11 @@
"max_time: 30\r\n",
"name: Sim_all_dumb\r\n",
"network_agents:\r\n",
"- agent_type: DumbViewer\r\n",
"- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
"- agent_type: DumbViewer\r\n",
"- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -122,19 +122,19 @@
"max_time: 30\r\n",
"name: Sim_half_herd\r\n",
"network_agents:\r\n",
"- agent_type: DumbViewer\r\n",
"- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
"- agent_type: DumbViewer\r\n",
"- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -154,12 +154,12 @@
"max_time: 30\r\n",
"name: Sim_all_herd\r\n",
"network_agents:\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
@@ -181,12 +181,12 @@
"max_time: 30\r\n",
"name: Sim_wise_herd\r\n",
"network_agents:\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
"- agent_type: WiseViewer\r\n",
"- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -207,12 +207,12 @@
"max_time: 30\r\n",
"name: Sim_all_wise\r\n",
"network_agents:\r\n",
"- agent_type: WiseViewer\r\n",
"- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
"- agent_type: WiseViewer\r\n",
"- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",

View File

@@ -141,10 +141,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -1758,10 +1758,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -3363,10 +3363,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -4977,10 +4977,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -6591,10 +6591,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -8211,10 +8211,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -9828,10 +9828,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -11448,10 +11448,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -13062,10 +13062,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -14679,10 +14679,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -16296,10 +16296,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -17916,10 +17916,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -19521,10 +19521,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -21144,10 +21144,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -22767,10 +22767,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -24375,10 +24375,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -25992,10 +25992,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -27603,10 +27603,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -29220,10 +29220,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -30819,10 +30819,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -32439,10 +32439,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -34056,10 +34056,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -35676,10 +35676,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -37293,10 +37293,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -38913,10 +38913,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -40518,10 +40518,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -42129,10 +42129,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -43746,10 +43746,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -45357,10 +45357,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -46974,10 +46974,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -48588,10 +48588,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -50202,10 +50202,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -51819,10 +51819,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -53436,10 +53436,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -55041,10 +55041,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -56655,10 +56655,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -58257,10 +58257,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -59877,10 +59877,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -61494,10 +61494,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -63108,10 +63108,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -64713,10 +64713,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -66330,10 +66330,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -67947,10 +67947,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -69561,10 +69561,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -71178,10 +71178,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -72801,10 +72801,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -74418,10 +74418,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -76035,10 +76035,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -77643,10 +77643,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -79260,10 +79260,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
" 'network_agents': [{'agent_type': 'DumbViewer',\n",
" 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
" {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",

View File

@@ -30,6 +30,7 @@ agents:
times: 1
environment:
# In this group we are not specifying any topology
topology: False
fixed:
- name: 'Environment Agent 1'
agent_class: CounterModel

View File

@@ -10,7 +10,7 @@ network_params:
n: 10
n_edges: 5
network_agents:
- agent_type: CounterModel
- agent_class: CounterModel
weight: 1
state:
state_id: 0

View File

@@ -1,6 +1,5 @@
from networkx import Graph
import networkx as nx
from random import choice
def mygenerator(n=5, n_edges=5):
'''
@@ -14,9 +13,9 @@ def mygenerator(n=5, n_edges=5):
for i in range(n_edges):
nodes = list(G.nodes)
n_in = choice(nodes)
n_in = self.random.choice(nodes)
nodes.remove(n_in) # Avoid loops
n_out = choice(nodes)
n_out = self.random.choice(nodes)
G.add_edge(n_in, n_out)
return G
@@ -24,4 +23,4 @@ def mygenerator(n=5, n_edges=5):

View File

@@ -27,8 +27,8 @@ if __name__ == '__main__':
import logging
logging.basicConfig(level=logging.INFO)
from soil import Simulation
s = Simulation(network_agents=[{'ids': [0], 'agent_type': Fibonacci},
{'ids': [1], 'agent_type': Odds}],
s = Simulation(network_agents=[{'ids': [0], 'agent_class': Fibonacci},
{'ids': [1], 'agent_class': Odds}],
network_params={"generator": "complete_graph", "n": 2},
max_time=100,
)

View File

@@ -10,11 +10,11 @@ network_params:
generator: social_wealth.graph_generator
n: 5
network_agents:
- agent_type: social_wealth.SocialMoneyAgent
- agent_class: social_wealth.SocialMoneyAgent
weight: 1
environment_class: social_wealth.MoneyEnv
environment_params:
mesa_agent_type: social_wealth.MoneyAgent
mesa_agent_class: social_wealth.MoneyAgent
N: 10
width: 50
height: 50

View File

@@ -70,7 +70,7 @@ model_params = {
1,
description="Choose how many agents to include in the model",
),
"network_agents": [{"agent_type": SocialMoneyAgent}],
"network_agents": [{"agent_class": SocialMoneyAgent}],
"height": UserSettableParameter(
"slider",
"height",

View File

@@ -99,7 +99,7 @@ if __name__ == '__main__':
G = graph_generator()
fixed_params = {"topology": G,
"width": 10,
"network_agents": [{"agent_type": SocialMoneyAgent,
"network_agents": [{"agent_class": SocialMoneyAgent,
'weight': 1}],
"height": 10}

View File

@@ -89,11 +89,11 @@
"max_time: 30\r\n",
"name: Sim_all_dumb\r\n",
"network_agents:\r\n",
"- agent_type: DumbViewer\r\n",
"- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
"- agent_type: DumbViewer\r\n",
"- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -113,19 +113,19 @@
"max_time: 30\r\n",
"name: Sim_half_herd\r\n",
"network_agents:\r\n",
"- agent_type: DumbViewer\r\n",
"- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
"- agent_type: DumbViewer\r\n",
"- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -145,12 +145,12 @@
"max_time: 30\r\n",
"name: Sim_all_herd\r\n",
"network_agents:\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
@@ -172,12 +172,12 @@
"max_time: 30\r\n",
"name: Sim_wise_herd\r\n",
"network_agents:\r\n",
"- agent_type: HerdViewer\r\n",
"- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
"- agent_type: WiseViewer\r\n",
"- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -198,12 +198,12 @@
"max_time: 30\r\n",
"name: Sim_all_wise\r\n",
"network_agents:\r\n",
"- agent_type: WiseViewer\r\n",
"- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
"- agent_type: WiseViewer\r\n",
"- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",

View File

@@ -8,11 +8,11 @@ interval: 1
max_time: 300
name: Sim_all_dumb
network_agents:
- agent_type: newsspread.DumbViewer
- agent_class: newsspread.DumbViewer
state:
has_tv: false
weight: 1
- agent_type: newsspread.DumbViewer
- agent_class: newsspread.DumbViewer
state:
has_tv: true
weight: 1
@@ -31,19 +31,19 @@ interval: 1
max_time: 300
name: Sim_half_herd
network_agents:
- agent_type: newsspread.DumbViewer
- agent_class: newsspread.DumbViewer
state:
has_tv: false
weight: 1
- agent_type: newsspread.DumbViewer
- agent_class: newsspread.DumbViewer
state:
has_tv: true
weight: 1
- agent_type: newsspread.HerdViewer
- agent_class: newsspread.HerdViewer
state:
has_tv: false
weight: 1
- agent_type: newsspread.HerdViewer
- agent_class: newsspread.HerdViewer
state:
has_tv: true
weight: 1
@@ -62,12 +62,12 @@ interval: 1
max_time: 300
name: Sim_all_herd
network_agents:
- agent_type: newsspread.HerdViewer
- agent_class: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
weight: 1
- agent_type: newsspread.HerdViewer
- agent_class: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
@@ -88,12 +88,12 @@ interval: 1
max_time: 300
name: Sim_wise_herd
network_agents:
- agent_type: newsspread.HerdViewer
- agent_class: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
weight: 1
- agent_type: newsspread.WiseViewer
- agent_class: newsspread.WiseViewer
state:
has_tv: true
weight: 1
@@ -113,12 +113,12 @@ interval: 1
max_time: 300
name: Sim_all_wise
network_agents:
- agent_type: newsspread.WiseViewer
- agent_class: newsspread.WiseViewer
state:
has_tv: true
state_id: neutral
weight: 1
- agent_type: newsspread.WiseViewer
- agent_class: newsspread.WiseViewer
state:
has_tv: true
weight: 1

View File

@@ -27,7 +27,7 @@ s = Simulation(name='Programmatic',
network_params={'generator': mygenerator},
num_trials=1,
max_time=100,
agent_type=MyAgent,
agent_class=MyAgent,
dry_run=True)

View File

@@ -1,6 +1,5 @@
from soil.agents import FSM, NetworkAgent, state, default_state
from soil import Environment
from random import random, shuffle
from itertools import islice
import logging
@@ -128,7 +127,7 @@ class Patron(FSM, NetworkAgent):
Try to become friends with another agent. The chances of
success depend on both agents' openness.
'''
if force or self['openness'] > random():
if force or self['openness'] > self.random.random():
self.env.add_edge(self, other_agent)
self.info('Made some friend {}'.format(other_agent))
return True
@@ -138,7 +137,7 @@ class Patron(FSM, NetworkAgent):
''' Look for random agents around me and try to befriend them'''
befriended = False
k = int(10*self['openness'])
shuffle(others)
self.random.shuffle(others)
for friend in islice(others, k): # random.choice >= 3.7
if friend == self:
continue

View File

@@ -8,18 +8,18 @@ network_params:
generator: empty_graph
n: 30
network_agents:
- agent_type: pubcrawl.Patron
- agent_class: pubcrawl.Patron
description: Extroverted patron
state:
openness: 1.0
weight: 9
- agent_type: pubcrawl.Patron
- agent_class: pubcrawl.Patron
description: Introverted patron
state:
openness: 0.1
weight: 1
environment_agents:
- agent_type: pubcrawl.Police
- agent_class: pubcrawl.Police
environment_class: pubcrawl.CityPubs
environment_params:
altercations: 0

View File

@@ -1,6 +1,5 @@
from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent
from enum import Enum
from random import random, choice
import logging
import math
@@ -57,10 +56,10 @@ class Male(RabbitModel):
# Males try to mate
for f in self.get_agents(state_id=Female.fertile.id,
agent_type=Female,
agent_class=Female,
limit_neighbors=False,
limit=self.max_females):
r = random()
r = self.random.random()
if r < self['mating_prob']:
self.impregnate(f)
break # Take a break
@@ -85,11 +84,11 @@ class Female(RabbitModel):
self['pregnancy'] += 1
self.debug('Pregnancy: {}'.format(self['pregnancy']))
if self['pregnancy'] >= self.gestation:
number_of_babies = int(8+4*random())
number_of_babies = int(8+4*self.random.random())
self.info('Having {} babies'.format(number_of_babies))
for i in range(number_of_babies):
state = {}
state['gender'] = choice(list(Genders)).value
state['gender'] = self.random.choice(list(Genders)).value
child = self.env.add_node(self.__class__, state)
self.env.add_edge(self.id, child.id)
self.env.add_edge(self['mate'], child.id)
@@ -124,8 +123,7 @@ class RandomAccident(BaseAgent):
for i in self.env.network_agents:
if i.state['id'] == i.dead.id:
continue
r = random()
if r < prob_death:
if self.prob(prob_death):
self.debug('I killed a rabbit: {}'.format(i.id))
rabbits_alive = self.env['rabbits_alive'] = rabbits_alive -1
self.log('Rabbits alive: {}'.format(self.env['rabbits_alive']))

View File

@@ -3,9 +3,9 @@ name: rabbits_example
max_time: 100
interval: 1
seed: MySeed
agent_type: rabbit_agents.RabbitModel
agent_class: rabbit_agents.RabbitModel
environment_agents:
- agent_type: rabbit_agents.RandomAccident
- agent_class: rabbit_agents.RandomAccident
environment_params:
prob_death: 0.001
default_state:
@@ -13,8 +13,8 @@ default_state:
topology:
nodes:
- id: 1
agent_type: rabbit_agents.Male
agent_class: rabbit_agents.Male
- id: 0
agent_type: rabbit_agents.Female
agent_class: rabbit_agents.Female
directed: true
links: []

View File

@@ -4,7 +4,6 @@ Example of a fully programmatic simulation, without definition files.
'''
from soil import Simulation, agents
from soil.time import Delta
from random import expovariate
import logging
@@ -20,7 +19,7 @@ class MyAgent(agents.FSM):
@agents.state
def ping(self):
self.info('Ping')
return self.pong, Delta(expovariate(1/16))
return self.pong, Delta(self.random.expovariate(1/16))
@agents.state
def pong(self):
@@ -29,15 +28,15 @@ class MyAgent(agents.FSM):
self.info(str(self.pong_counts))
if self.pong_counts < 1:
return self.die()
return None, Delta(expovariate(1/16))
return None, Delta(self.random.expovariate(1/16))
s = Simulation(name='Programmatic',
network_agents=[{'agent_type': MyAgent, 'id': 0}],
network_agents=[{'agent_class': MyAgent, 'id': 0}],
topology={'nodes': [{'id': 0}], 'links': []},
num_trials=1,
max_time=100,
agent_type=MyAgent,
agent_class=MyAgent,
dry_run=True)

View File

@@ -13,11 +13,11 @@ template:
generator: complete_graph
n: 10
network_agents:
- agent_type: CounterModel
- agent_class: CounterModel
weight: "{{ x1 }}"
state:
state_id: 0
- agent_type: AggregatedCounter
- agent_class: AggregatedCounter
weight: "{{ 1 - x1 }}"
environment_params:
name: "{{ x3 }}"

View File

@@ -1,4 +1,3 @@
import random
import networkx as nx
from soil.agents import Geo, NetworkAgent, FSM, state, default_state
from soil import Environment
@@ -26,26 +25,26 @@ class TerroristSpreadModel(FSM, Geo):
self.prob_interaction = model.environment_params['prob_interaction']
if self['id'] == self.civilian.id: # Civilian
self.mean_belief = random.uniform(0.00, 0.5)
self.mean_belief = self.random.uniform(0.00, 0.5)
elif self['id'] == self.terrorist.id: # Terrorist
self.mean_belief = random.uniform(0.8, 1.00)
self.mean_belief = self.random.uniform(0.8, 1.00)
elif self['id'] == self.leader.id: # Leader
self.mean_belief = 1.00
else:
raise Exception('Invalid state id: {}'.format(self['id']))
if 'min_vulnerability' in model.environment_params:
self.vulnerability = random.uniform( model.environment_params['min_vulnerability'], model.environment_params['max_vulnerability'] )
self.vulnerability = self.random.uniform( model.environment_params['min_vulnerability'], model.environment_params['max_vulnerability'] )
else :
self.vulnerability = random.uniform( 0, model.environment_params['max_vulnerability'] )
self.vulnerability = self.random.uniform( 0, model.environment_params['max_vulnerability'] )
@state
def civilian(self):
neighbours = list(self.get_neighboring_agents(agent_type=TerroristSpreadModel))
neighbours = list(self.get_neighboring_agents(agent_class=TerroristSpreadModel))
if len(neighbours) > 0:
# Only interact with some of the neighbors
interactions = list(n for n in neighbours if random.random() <= self.prob_interaction)
interactions = list(n for n in neighbours if self.random.random() <= self.prob_interaction)
influence = sum( self.degree(i) for i in interactions )
mean_belief = sum( i.mean_belief * self.degree(i) / influence for i in interactions )
mean_belief = mean_belief * self.information_spread_intensity + self.mean_belief * ( 1 - self.information_spread_intensity )
@@ -64,7 +63,7 @@ class TerroristSpreadModel(FSM, Geo):
@state
def terrorist(self):
neighbours = self.get_agents(state_id=[self.terrorist.id, self.leader.id],
agent_type=TerroristSpreadModel,
agent_class=TerroristSpreadModel,
limit_neighbors=True)
if len(neighbours) > 0:
influence = sum( self.degree(n) for n in neighbours )
@@ -103,7 +102,7 @@ class TrainingAreaModel(FSM, Geo):
@default_state
@state
def terrorist(self):
for neighbour in self.get_neighboring_agents(agent_type=TerroristSpreadModel):
for neighbour in self.get_neighboring_agents(agent_class=TerroristSpreadModel):
if neighbour.vulnerability > self.min_vulnerability:
neighbour.vulnerability = neighbour.vulnerability ** ( 1 - self.training_influence )
@@ -129,7 +128,7 @@ class HavenModel(FSM, Geo):
self.max_vulnerability = model.environment_params['max_vulnerability']
def get_occupants(self, **kwargs):
return self.get_neighboring_agents(agent_type=TerroristSpreadModel, **kwargs)
return self.get_neighboring_agents(agent_class=TerroristSpreadModel, **kwargs)
@state
def civilian(self):
@@ -182,15 +181,15 @@ class TerroristNetworkModel(TerroristSpreadModel):
def update_relationships(self):
if self.count_neighboring_agents(state_id=self.civilian.id) == 0:
close_ups = set(self.geo_search(radius=self.vision_range, agent_type=TerroristNetworkModel))
step_neighbours = set(self.ego_search(self.sphere_influence, agent_type=TerroristNetworkModel, center=False))
neighbours = set(agent.id for agent in self.get_neighboring_agents(agent_type=TerroristNetworkModel))
close_ups = set(self.geo_search(radius=self.vision_range, agent_class=TerroristNetworkModel))
step_neighbours = set(self.ego_search(self.sphere_influence, agent_class=TerroristNetworkModel, center=False))
neighbours = set(agent.id for agent in self.get_neighboring_agents(agent_class=TerroristNetworkModel))
search = (close_ups | step_neighbours) - neighbours
for agent in self.get_agents(search):
social_distance = 1 / self.shortest_path_length(agent.id)
spatial_proximity = ( 1 - self.get_distance(agent.id) )
prob_new_interaction = self.weight_social_distance * social_distance + self.weight_link_distance * spatial_proximity
if agent['id'] == agent.civilian.id and random.random() < prob_new_interaction:
if agent['id'] == agent.civilian.id and self.random.random() < prob_new_interaction:
self.add_edge(agent)
break

View File

@@ -8,19 +8,19 @@ network_params:
# theta: 20
n: 100
network_agents:
- agent_type: TerroristNetworkModel.TerroristNetworkModel
- agent_class: TerroristNetworkModel.TerroristNetworkModel
weight: 0.8
state:
id: civilian # Civilians
- agent_type: TerroristNetworkModel.TerroristNetworkModel
- agent_class: TerroristNetworkModel.TerroristNetworkModel
weight: 0.1
state:
id: leader # Leaders
- agent_type: TerroristNetworkModel.TrainingAreaModel
- agent_class: TerroristNetworkModel.TrainingAreaModel
weight: 0.05
state:
id: terrorist # Terrorism
- agent_type: TerroristNetworkModel.HavenModel
- agent_class: TerroristNetworkModel.HavenModel
weight: 0.05
state:
id: civilian # Civilian

View File

@@ -2,7 +2,7 @@
name: torvalds_example
max_time: 10
interval: 2
agent_type: CounterModel
agent_class: CounterModel
default_state:
skill_level: 'beginner'
network_params:

View File

@@ -12330,11 +12330,11 @@ Notice how node 0 is the only one with a TV.</p>
<span class="n">sim</span> <span class="o">=</span> <span class="n">soil</span><span class="o">.</span><span class="n">Simulation</span><span class="p">(</span><span class="n">topology</span><span class="o">=</span><span class="n">G</span><span class="p">,</span>
<span class="n">num_trials</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">max_time</span><span class="o">=</span><span class="n">MAX_TIME</span><span class="p">,</span>
<span class="n">environment_agents</span><span class="o">=</span><span class="p">[{</span><span class="s1">&#39;agent_type&#39;</span><span class="p">:</span> <span class="n">NewsEnvironmentAgent</span><span class="p">,</span>
<span class="n">environment_agents</span><span class="o">=</span><span class="p">[{</span><span class="s1">&#39;agent_class&#39;</span><span class="p">:</span> <span class="n">NewsEnvironmentAgent</span><span class="p">,</span>
<span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;event_time&#39;</span><span class="p">:</span> <span class="n">EVENT_TIME</span>
<span class="p">}}],</span>
<span class="n">network_agents</span><span class="o">=</span><span class="p">[{</span><span class="s1">&#39;agent_type&#39;</span><span class="p">:</span> <span class="n">NewsSpread</span><span class="p">,</span>
<span class="n">network_agents</span><span class="o">=</span><span class="p">[{</span><span class="s1">&#39;agent_class&#39;</span><span class="p">:</span> <span class="n">NewsSpread</span><span class="p">,</span>
<span class="s1">&#39;weight&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">}],</span>
<span class="n">states</span><span class="o">=</span><span class="p">{</span><span class="mi">0</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;has_tv&#39;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}},</span>
<span class="n">default_state</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;has_tv&#39;</span><span class="p">:</span> <span class="kc">False</span><span class="p">},</span>
@@ -12468,14 +12468,14 @@ For this demo, we will use a python dictionary:</p>
<span class="p">},</span>
<span class="s1">&#39;network_agents&#39;</span><span class="p">:</span> <span class="p">[</span>
<span class="p">{</span>
<span class="s1">&#39;agent_type&#39;</span><span class="p">:</span> <span class="n">NewsSpread</span><span class="p">,</span>
<span class="s1">&#39;agent_class&#39;</span><span class="p">:</span> <span class="n">NewsSpread</span><span class="p">,</span>
<span class="s1">&#39;weight&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;has_tv&#39;</span><span class="p">:</span> <span class="kc">False</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="p">{</span>
<span class="s1">&#39;agent_type&#39;</span><span class="p">:</span> <span class="n">NewsSpread</span><span class="p">,</span>
<span class="s1">&#39;agent_class&#39;</span><span class="p">:</span> <span class="n">NewsSpread</span><span class="p">,</span>
<span class="s1">&#39;weight&#39;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
<span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;has_tv&#39;</span><span class="p">:</span> <span class="kc">True</span>
@@ -12483,7 +12483,7 @@ For this demo, we will use a python dictionary:</p>
<span class="p">}</span>
<span class="p">],</span>
<span class="s1">&#39;environment_agents&#39;</span><span class="p">:[</span>
<span class="p">{</span><span class="s1">&#39;agent_type&#39;</span><span class="p">:</span> <span class="n">NewsEnvironmentAgent</span><span class="p">,</span>
<span class="p">{</span><span class="s1">&#39;agent_class&#39;</span><span class="p">:</span> <span class="n">NewsEnvironmentAgent</span><span class="p">,</span>
<span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;event_time&#39;</span><span class="p">:</span> <span class="mi">10</span>
<span class="p">}</span>

View File

@@ -459,11 +459,11 @@
"sim = soil.Simulation(topology=G,\n",
" num_trials=1,\n",
" max_time=MAX_TIME,\n",
" environment_agents=[{'agent_type': NewsEnvironmentAgent,\n",
" environment_agents=[{'agent_class': NewsEnvironmentAgent,\n",
" 'state': {\n",
" 'event_time': EVENT_TIME\n",
" }}],\n",
" network_agents=[{'agent_type': NewsSpread,\n",
" network_agents=[{'agent_class': NewsSpread,\n",
" 'weight': 1}],\n",
" states={0: {'has_tv': True}},\n",
" default_state={'has_tv': False},\n",
@@ -588,14 +588,14 @@
" },\n",
" 'network_agents': [\n",
" {\n",
" 'agent_type': NewsSpread,\n",
" 'agent_class': NewsSpread,\n",
" 'weight': 1,\n",
" 'state': {\n",
" 'has_tv': False\n",
" }\n",
" },\n",
" {\n",
" 'agent_type': NewsSpread,\n",
" 'agent_class': NewsSpread,\n",
" 'weight': 2,\n",
" 'state': {\n",
" 'has_tv': True\n",
@@ -603,7 +603,7 @@
" }\n",
" ],\n",
" 'environment_agents':[\n",
" {'agent_type': NewsEnvironmentAgent,\n",
" {'agent_class': NewsEnvironmentAgent,\n",
" 'state': {\n",
" 'event_time': 10\n",
" }\n",