Skip to content

Commit 7f4f3a6

Browse files
committed
more cleanup and planning
check experiments.md for more info
1 parent a84bc5b commit 7f4f3a6

13 files changed

Lines changed: 78 additions & 1208 deletions

docs/experiments.md

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,59 @@ This is what should be measured each run. These runs can then be further aggrega
44
- Population count (mean and std after warmup)
55
- Cluster size distribution (means and stds after warmup)
66
### Evolution runs
7-
- Population count (over time after warmup)
8-
- Cluster size distribution (over time after warmup)
9-
- Prey death rate (mean and std over time after warmup)
7+
It is important to scrutenize whether these should be time-series or steady state values.
8+
- Population count (time series after warmup)
9+
- Cluster size distribution (time series after warmup)
10+
- Prey death rate (time series mean and std after warmup)
11+
1012
# Experiments
1113
These phases should be completed sequentially, deepening our understanding at each step. The different experiments in each phase should be completed with data from the same runs.
1214
### Phase 1: finding the critical point
1315
- Create bifurcation diagram of mean population count, varying prey death rate
1416
- Look for critical transition
1517
- Create log-log plot of cluster size distribution, varying prey death rate
1618
- Look for power-law
17-
### Phase 2: sensitivity analysis
19+
### Phase 2: finite-size scaling
20+
- Sweep of grid sizes at critical point
21+
- Check for power-law cut-offs
22+
### Phase 3: sensitivity analysis
1823
- Show correlation between critical prey death rate and post-evolution prey death rate, varying other parameters
1924
- Look for self-organized criticality: an SOC-system should move towards the critical point regardless of other parameters
2025
- Show sensitivity of hydra effect varying other parameters
21-
### Phase 3: perturbation analysis
26+
### Phase 4: perturbation analysis
2227
- Create autocorrelation plot of mean population count, following perturbations around the critical point
2328
- Look for critical slowing down: perturbations to states closer to the critical point should more slowly return to the steady state
24-
### Phase 4: model extensions
29+
- This requires time series data
30+
### Phase 5: model extensions
2531
- Investigate whether hydra effect and SOC still occur with diffusion and directed movement
2632

33+
# Todo
34+
The main functionality is all complete. Thus, the models folder should be relatively untouched.
35+
However, it is important to standardize experiments and analysis. The following files should be used for this.
36+
These files should contain very little (if any) functionality outside of what is listed here.
37+
### experiments.py
38+
This is the file that will be run on the cluster and should generate all experiment data.
39+
- General config class to setup experiments (grid size, parameters, sweep, evolution, repetitions, etc.)
40+
- Config objects for each phase (see phases above)
41+
- Function that runs the experiment based on a config object (calls run_single_simulation in parallel)
42+
- Should save results to results folder (which can then be used by analysis.py)
43+
- Function that runs a single simulation, saving all necessary results
44+
- This needs functionality to run a predetermined amount of time with a warmup
45+
- And needs functionality to dynamically run until it has found a steady state
46+
- Should not contain any analysis (power-law fitting, bifurcation, etc.)
47+
- Exception to this is the PCF data
48+
- Function to estimate runtime (already exists)
49+
- Should have argparse functionality to choose which phase to execute
50+
- Nice-to-have: argparse functionality to create new config object for arbitrary experiments
51+
### analysis.py
52+
This is the file that will generate our plots and statistics for the analysis.
53+
- Function to create bifurcation diagram to find critical point
54+
- Function to create log-log plot to check for power-law
55+
- Should also fit a power-function to the data (see scrips/experiments.fit_truncated_power_law)
56+
- Function to calculate/ show similarity between post-evolution prey death rates and critical points
57+
- Function for sensitivity analysis
58+
- Function for perturbation analysis
59+
2760
---
2861

2962

0 commit comments

Comments
 (0)