-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_foraging.py
54 lines (39 loc) · 1.9 KB
/
run_foraging.py
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
import os
import time
from compsim.simulate import HeatTransferForagingSimulator, Ant, UndiscoveredFood
from compsim.plot import RasterPlotter
from compsim.io import compression_simulator_grid_loader
if __name__ == "__main__":
#grid = compression_simulator_grid_loader("input/heattransfer/small_heattransfer.txt", False, (Ant,))
#grid = compression_simulator_grid_loader("input/heattransfer/big_heattransfer.txt", False, (Ant,))
grid = compression_simulator_grid_loader("input/heattransfer/bigger_heattransfer.txt", False, (Ant,))
cs = HeatTransferForagingSimulator(grid)
food = UndiscoveredFood((0, 15), "f00d")
cs.add_food(food)
food2 = UndiscoveredFood((0, -15), "f00d2")
cs.add_food(food2)
total_iterations = 1000000
unit_iterations = 50000
plotter = RasterPlotter(cs, os.path.join("output", "heattransfer", str(int(time.time()))))
plotter.plot("%d.jpg" % cs.iterations_run)
while cs.iterations_run < total_iterations:
if cs.run_iterations(unit_iterations):
plotter.plot("%d.jpg" % cs.iterations_run)
print(cs.iterations_run)
# Run another 9 x total iterations with 10 x unit gaps
while cs.iterations_run < 5 * total_iterations:
if cs.run_iterations(10 * unit_iterations):
plotter.plot("%d.jpg" % cs.iterations_run)
print(cs.iterations_run)
plotter.plot("%d-foodgone.jpg" % cs.iterations_run)
cs.remove_food(cs.grid.get_particle(food.axial_coordinates))
while cs.iterations_run < total_iterations * 6:
if cs.run_iterations(unit_iterations):
plotter.plot("%d.jpg" % cs.iterations_run)
print(cs.iterations_run)
while cs.iterations_run < total_iterations * 10:
if cs.run_iterations(10 * unit_iterations):
plotter.plot("%d.jpg" % cs.iterations_run)
print(cs.iterations_run)
#print(cs.get_metrics())
#interface.quit_app()