- gadm04: optional self-enhancement loop (selfenh, default off) - grounding.py: band anchors slow/central/fast/aggressive (B4 selfenh 3.0) - band_probe.py: 36 readings across the band - 22 robust, 7 quantitative shifts, 7 qualitative breaks; core claims robust; moderate reforms suffice only under conservative adoption; under B4 lineage control dominates even in the generative regime (structural candidate) - models/AdoptionBand.md, research/BreakRegister.md (BR-001..004) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 1494246@bnt-lap001 Assistant-Session: caf6de6f-f9e4-47ce-a584-49baa271fa4b
57 lines
2.6 KiB
Python
57 lines
2.6 KiB
Python
"""Evidence-grounded parameter sets for GADM-0.4 (ASSEMBLY-WP-0008).
|
|
|
|
Each override is justified in models/ParameterGrounding.md. The sets are kept
|
|
separate from gadm04.PARAMS so the effect of grounding stays visible and
|
|
reversible. Each set comes with its own equilibrium start (W, cohort attention,
|
|
cohort agency) and recalibrated channel counters.
|
|
|
|
Usage:
|
|
from grounding import variant
|
|
params, init = variant("central")
|
|
gadm04.simulate(params, init)
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
|
|
sys.dont_write_bytecode = True
|
|
|
|
import gadm04 as g # noqa: E402
|
|
|
|
# T01: organism adoption. The default reaches K_Omega = 0.50 by year 10, faster
|
|
# than even the LLM+tooling exposure ceiling (47-56 % of tasks, Eloundou et al.
|
|
# 2023) could plausibly be adopted. Central path: ~0.27 at year 10, ~0.29 at 25.
|
|
SELFENH = 3.0 # B4: tuned so K_Omega reaches ~0.8 within about 10 years
|
|
|
|
ADOPTION = {
|
|
"central": {"aO": 0.25, "ell": 0.415, "oseed": 0.0165}, # x0.5 of default
|
|
"slow": {"aO": 0.10, "ell": 0.166, "oseed": 0.0066}, # x0.2, towards Acemoglu (2024)
|
|
# adoption band (research/ScenarioBandMethod.md § 2): B3 fast = GADM-0.4
|
|
# adoption defaults; B4 aggressive = B3 plus the self-enhancement loop
|
|
"fast": {"aO": 0.50, "ell": 0.83, "oseed": 0.033},
|
|
"aggressive": {"aO": 0.50, "ell": 0.83, "oseed": 0.033, "selfenh": SELFENH},
|
|
}
|
|
BAND = {"B1": "slow", "B2": "central", "B3": "fast", "B4": "aggressive"}
|
|
# T03: leader persistence rose since 2000 with proprietary software and
|
|
# intangibles (Bessen et al.); learning-by-doing superstars (Ma, Pugsley,
|
|
# Zimmermann): digital channels self-reinforce more strongly than the market.
|
|
POWER = {"r_i": 0.45, "r_d": 0.60, "r_mem": 0.45, "r_lin": 0.45}
|
|
# T05: care claims ~5 h/week per adult on average (AARP 2025: 1 in 5 adults,
|
|
# 26 h/week) vs. ~35 h/week of engagement media: care load ~1/4 of the default.
|
|
CARE = {"care_load": 0.03}
|
|
# Joint attention calibration: with the grounded care load, present-day
|
|
# attention headroom should still be ~0.5 (engagement media take about half of
|
|
# leisure, ATUS 2023 / DataReportal). That requires aext ~0.58; the earlier
|
|
# 0.275 compensated for an overstated care load.
|
|
ATTENTION = {"aext": 0.58}
|
|
|
|
EQ_KEYS = ("W", "Aw", "As", "Gw", "Gs")
|
|
|
|
|
|
def variant(name: str = "central") -> tuple[dict, dict]:
|
|
"""(params, init) for a grounded variant: 'slow', 'central', 'fast' or 'aggressive'."""
|
|
params = {**ADOPTION[name], **POWER, **CARE, **ATTENTION}
|
|
init = g.equilibrium_init(EQ_KEYS, steps=4000, h=0.25, params=params)
|
|
params.update(g.calibrate(params, init))
|
|
return params, init
|