Skip to content

Commit 16e5749

Browse files
committed
Merge branch 'main' of https://github.com/codegithubka/CSS_Project into storm
2 parents cdde4b6 + 2d6d8ce commit 16e5749

25 files changed

Lines changed: 84 additions & 2054 deletions

docs/experiments.md

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,63 @@ 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
18-
- Show correlation between critical prey death rate and post-evolution prey death rate, varying other parameters
19-
- Look for self-organized criticality: an SOC-system should move towards the critical point regardless of other parameters
19+
### Phase 2: self-organization
20+
- Measure final prey death rate after evolution
21+
- Look for self-organized criticality: an SOC-system should move towards the critical point
22+
### Phase 3: finite-size scaling
23+
- Sweep of grid sizes at critical point
24+
- Check for power-law cut-offs
25+
### Phase 4: sensitivity analysis
2026
- Show sensitivity of hydra effect varying other parameters
21-
### Phase 3: perturbation analysis
27+
- Investigate the ubiquity of the critical point across parameter regimes
28+
- Show correlation between critical prey death rate and post-evolution prey death rate, varying other parameters
29+
- Again look for self-organized criticality: an SOC-system should move towards the critical point regardless of other parameters
30+
### Phase 5: perturbation analysis
2231
- Create autocorrelation plot of mean population count, following perturbations around the critical point
2332
- 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
33+
- This requires time series data
34+
### Phase 6: model extensions
2535
- Investigate whether hydra effect and SOC still occur with diffusion and directed movement
2636

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

2966

mock_results/analysis.log

Lines changed: 0 additions & 22 deletions
This file was deleted.

mock_results/config.json

Lines changed: 0 additions & 49 deletions
This file was deleted.

mock_results/hydra_analysis.png

-71.1 KB
Binary file not shown.

mock_results/pcf_analysis.png

-59.7 KB
Binary file not shown.

mock_results/phase_diagrams.png

-140 KB
Binary file not shown.

mock_results/summary.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

mock_results/sweep_results.npz

-1.1 MB
Binary file not shown.

0 commit comments

Comments
 (0)