This commit is contained in:
33333-33333 2026-09-29 19:10:03 +09:00
commit 01204dfa2f
34 changed files with 1498 additions and 0 deletions

88
VALIDATION.md Normal file
View file

@ -0,0 +1,88 @@
# v41 最終監査記録
検証日: 2026-09-29
## 結論
API/詳細診断出力の削除後に再監査した。監査中に、(1) 陸上 producer の shade 二重適用、(2) animal body mass が energy budget と独立して年齢だけで増える不整合を発見し、修正後に全テストを再実行した。
このファイルに PASS と書くのは実際に再実行した項目だけとする。
## 自動テスト
`node test/ecology.test.mjs` — PASS
対象:
- `dt = 1/24 day`
- Bissinger 10/20/30°C golden values
- aquatic producer = `muMax * min(N,P) * light`
- terrestrial light limitation の一重適用
- assimilation 0.45 / 0.85
- continuous hazard の timestep invariance
- handling time の Holling denominator 接続
- World predation path の local multi-resource saturation
- Rall mass / temperature scaling
- Hirt running / flying / swimming coefficients
- producer field / zooplankton cohort
- parent-surviving reproduction
- energy-limited structural growth
- daily movement budget
- spontaneous immigration/speciation absence
- deterministic repeatability
- 初期水域の概ね2倍化
- user-edited water geometry preservation
- water depth / human disturbance absence
- exact water-area optimizer absence
- experiment API / detailed diagnostic output absence
## 初期水域面積
production code は半径へ `sqrt(2)` を一度掛けるだけで、面積測定・二分探索は行わない。テスト時のみ v38 と wet-cell union を比較した。
| seed | v41 / v38 wet-cell area |
|---:|---:|
| 481516 | 1.9972 |
| 1 | 1.9730 |
| 123456789 | 1.9617 |
| 4294967295 | 1.8248 |
ユーザー編集水域は入力 geometry と完全一致する回帰テストを PASS。
## 365日 headless
seed 481516、修正後コード:
- elapsed: 7.56 s
- final population: 134
- max agents observed: 416
- surviving species: 6
- producer biomass: 2,364,186.82 kg
- zooplankton biomass: 0 kg
- NaN/Infinity: none
- negative resource biomass: none
- 18,000-agent limit: not reached
## 730日 headless
seed 481516、修正後コード:
- elapsed: 17.40 s
- final population: 264
- surviving species: 5
- producer biomass: 2,493,088.04 kg
- zooplankton biomass: 0 kg
- NaN/Infinity: none
- negative resource biomass: none
- 18,000-agent limit: not reached
## 工学検査
- 全 `.js/.mjs`: `node --check` PASS
- local relative import reference: PASS
- JSON parse: PASS
- removed experiment API strings: production executable code になし
- removed detailed diagnostic fields: production executable code になし
## 未解決の較正事項
標準パラメータでは zooplankton cohort が長期的に 0 へ到達する。これは NaN/負値等の実装破綻ではないが、淡水/海洋の長期較正としては未解決。cohort ingestion/mortality と consumer pressure の較正が必要。
また、life-history、resource K、routine movement/home range、energy reserve/growth cost 等には model-calibration 値が残る。文献から直接採用した係数と較正値は `PARAMETER-PROVENANCE.json` で区別する。