Gen3 Range-Sweep R9 — Befunde für Gen4 & Mess-Rauschen-Ticket

# Gen3 Range-Sweep R9 — Befunde für Gen4 & Engine-Ticket

**2026-08-27, Abschluss der Gen3-Kalibrierung.** Sweep der nie gemessenen Range-Kern-Knobs + neuer Spielerzahl-Skalierungs-Knob (range_widen_per_player, Commit eba7f95, default 0.0 = inaktiv).

## Ergebnisse (deterministisch, Ring-Formate, 3 Seeds × 50K, vs Gen1/finales Gen2/Mirror)

| Knob | Ergebnis |
|---|---|
| `strong_hands_fraction` 0.25 | **+1.08 mean** (g1 +1.07 / g2 +0.25 / mb +1.91), alle positiv — aber g2 im Tie-Band → keine Adoption per Pareto-Regel. Kurve monoton: 0.25:+1.08 → 0.30:+0.60 → 0.35:base → 0.45:−0.86. **Rand bei 0.25 noch nicht erreicht — Gen4 sollte 0.20/0.15 testen.** |
| `range_widen_per_player` 0.03/0.06/0.09 | Isoliert kontraproduktiv: t3 monoton schlechter (mirror −2.8 → −12.9), 9-max per Konstruktion unberührt (Sanity ✓), Duel flach. Ursache: Thresholds sind auf die 0.35-hs-Skala gefittet; Range-Verschiebung ohne Threshold-Re-Tuning verschiebt alle Entscheidungen. Knob bleibt im Code (default-off) für Gen4-Experimente mit kombiniertem Re-Tuning. |
| `range_draw_weight` 0.5/1.5 | +0.56 / −0.43, g2 ±0 → tot. |

## Kern-Diagnose (final)

Das Ring-Loch gegen Gen2 (~−2 BB/100) ist **bedingt, nicht skalar**: alle Range-Knobs zusammen bewegen g2 um ±0.3, während g1/mirror auf engere Ranges ansprechen. Gen2 als "sinnvoller" Gegner spielt Selektions-biasierte Hände, die eine aktions-konditionale Range (per-opponent narrowing) braucht — exakt die Gen4-Corrector-Aufgabe. Die Fix-Idee "Ranges werden mit weniger Spielern größer" bleibt valide, braucht aber Threshold-Co-Kalibrierung (R9 bewies die Interaktion).

## Engine-Ticket: HandRange-Determinismus

Cross-run HU-Zellen rauschen bis **±30 BB/100** trotz sweep_mode=true (R8: +162.5 vs R9: +222.8 für identische Config/Seeds; g1-Zelle fast identisch, Ring-Zellen stabil ±1). Ursache: HashMap-Iterationsordnung (Rust RandomState pro Prozess) in der Range-Konstruktion → Float-Summationsordnung → Threshold-Flips an Grenzwerten → Schmetterlingseffekt. **Fix: sortierte Iteration (BTreeMap/sorted keys) in HandRange + Enumeration** — berührt Gen3/4/5 gemeinsam, vor nächsten Feinkalibrierungen (Gen4+) sinnvoll. Kleine HU-Adoptionsschritte (<±30) brauchen davor größere Seed-Zahlen.

## Konsequenzen für Gen4-Audit

1. Range-Kern-Knobs sind lebendig (shf-Trend!) — Gen4-Sweep sollte strong_hands_fraction 0.15-0.30 einschließen
2. Per-opponent narrowing statt Shared-Range ist der Hebel fürs Ring-Loch vs sinnvolle Gegner
3. Vor Gen4-Feinsweeps: HandRange-Determinismus-Fix (sonst Adoptions-Schwelle ≥ ±30 für HU-Zellen)

id: c1a7a6cfad2c43d4a633f76af13e196f
parent_id: abc167de888d41bf9391c373e90dec8d
created_time: 2026-08-27T16:17:37.397Z
updated_time: 2026-08-27T16:17:37.397Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author: 
source_url: 
is_todo: 0
todo_due: 0
todo_completed: 0
source: joplin-desktop
source_application: net.cozic.joplin-desktop
application_data: 
order: 1787847457397
user_created_time: 2026-08-27T16:17:37.397Z
user_updated_time: 2026-08-27T16:17:37.397Z
encryption_cipher_text: 
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id: 
conflict_original_id: 
master_key_id: 
user_data: 
deleted_time: 0
is_locked: 0
extracted_resource_ids: 
type_: 1