Gen 3 Round 2 Sweep — Weighted Decision Parameters

# Gen 3 Round 2 Parameter Sweep

**Date**: 2026-06-14
**Status**: 🔄 RUNNING (192 runs, ~4.5h total)
**Script**: `.sweep_tmp/sweep_gen3_round2.py`

## Setup
- 5 Gen3 (tuned) vs 5 Gen2 V3 (baseline), 10 seats
- 10,000 hands per run, 4 seeds (42, 1337, 9999, 7777)
- `reset_bankroll_each_hand = true`, `randomize_seats = true`
- 16 parameters × 3 values × 4 seeds = 192 runs

## Parameters Swept

### New weighted-decision weights (6)
| Parameter | Default | Low / Mid / High |
|-----------|---------|-------------------|
| `call_w_draw` | 0.8 | 0.4 / 0.8 / 1.2 |
| `call_w_pot_odds` | 0.5 | 0.25 / 0.5 / 0.75 |
| `call_w_commitment` | 0.3 | 0.15 / 0.3 / 0.5 |
| `raise_w_draw` | 0.5 | 0.25 / 0.5 / 0.75 |
| `raise_w_bluff` | 0.3 | 0.15 / 0.3 / 0.5 |
| `range_draw_weight` | 1.0 | 0.5 / 1.0 / 2.0 |

### Previously dead, now effective (3)
| Parameter | Default | Low / Mid / High |
|-----------|---------|-------------------|
| `call_base` | 0.75 | 0.60 / 0.75 / 0.85 |
| `call_ppot_base` | 0.38 | 0.25 / 0.38 / 0.50 |
| `raise_base` | 0.93 | 0.86 / 0.93 / 0.97 |

### Top performers from round 1 (4)
| Parameter | Default | Low / Mid / High |
|-----------|---------|-------------------|
| `strong_hands_fraction` | 0.20 | 0.10 / 0.20 / 0.35 |
| `bluff_factor` | 2.0 | 1.0 / 2.0 / 3.5 |
| `raise_ppot_base` | 0.42 | 0.30 / 0.42 / 0.55 |
| `draw_call_ppot_thresh` | 0.22 | 0.15 / 0.22 / 0.32 |

### Other (3)
| Parameter | Default | Low / Mid / High |
|-----------|---------|-------------------|
| `bet_flop_base` | 0.60 | 0.48 / 0.60 / 0.70 |
| `semi_bluff_ppot_base` | 0.30 | 0.20 / 0.30 / 0.42 |
| `conti_bet_fold_thresh` | 0.315 | 0.20 / 0.315 / 0.45 |

## Early Observations (runs 1-67)

### Parameter Sensitivity
Most weighted-decision parameters show **small but non-zero sensitivity** — results differ slightly across values, confirming the OR-chain refactoring works. The differences are small because these parameters only affect marginal hands (draw-heavy, specific pot-odds situations).

### `call_w_pot_odds` — Most Promising
At 0.75 (high), Gen3 swings positive on multiple seeds:
- seed 9999: delta +1.4 (vs +0.5 at default)
- seed 7777: delta +0.9 (vs +0.1 at default)
- seed 42: delta -1.0 (vs -1.6 at default, improved)

This suggests higher pot-odds sensitivity helps Gen3 in multi-way pots.

### Gen3 Underperforms Gen2 in 10-seat Format
Gen3 is consistently negative on seed 42 (delta ~-1.6) regardless of parameter. This contrasts with the 6-max benchmark where Gen3 beat Gen2 (+2.53 vs +1.02). Hypothesis: Gen3's range-based approach may be disadvantaged in large fields where the single shared range doesn't model diverse opponents well.

## Key Bug Found & Fixed During Sweep

### Pot-odds floor regression
The initial review fix added a hard pot-odds floor (`win_prob > required_equity / 0.75 → always call`) that made ALL parameters dead (identical results across all values). This was the same problem as the original OR-chain. Fixed by removing the hard floor and relying on the graduated `call_w_pot_odds` threshold adjustment instead.

### Threshold floor added
To prevent degenerate over-calling at sweep-extreme parameter values: `threshold = threshold.max(required_equity * 0.5)`.

## Results
Will be written to `.sweep_tmp/results_round2.csv` when complete. Analysis TBD.

id: 9597dff565154d2a89bc2e4ca085d3cf
parent_id: 1246bbc3bb4948fc8329079b84b4ae3d
created_time: 2026-06-14T18:28:25.493Z
updated_time: 2026-06-22T15:54:32.736Z
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: 1781461705493
user_created_time: 2026-06-14T18:28:25.493Z
user_updated_time: 2026-06-14T18:28:25.493Z
encryption_cipher_text: 
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id: 
conflict_original_id: 
master_key_id: 
user_data: 
deleted_time: 1782143672736
type_: 1