Update TODO.md — mark completed items, add plan for σ-reduction blocker and next steps
Browse files
TODO.md
CHANGED
|
@@ -1,26 +1,42 @@
|
|
| 1 |
-
---
|
| 2 |
-
|
| 3 |
-
#### `TODO.md`
|
| 4 |
-
```markdown
|
| 5 |
# TODO (Prioritised)
|
| 6 |
|
| 7 |
## Immediate (blockers)
|
| 8 |
-
- **Add candidate snapshot to beam logs**
|
| 9 |
-
- **Ensure gate values are booleans**
|
| 10 |
-
- **Make tile transform nontrivial**
|
| 11 |
-
- **Implement robust fill_enclosed**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
|
| 13 |
## Short term
|
| 14 |
-
- Add CLI entrypoint with `--use_wandb` flag
|
| 15 |
- Add unit tests for `tile_transform`, `fill_enclosed`, and transform `.apply()` semantics.
|
|
|
|
| 16 |
- Add small visualization notebook for `phi_best`, diff maps, and Layer‑1 masks.
|
| 17 |
|
| 18 |
## Medium term
|
| 19 |
-
- Improve Layer‑1 mask generation
|
| 20 |
-
- Add a toggle to include/exclude `candidate_array` in logs to control log size.
|
| 21 |
-
- Create a reproducible benchmark harness for parameter sweeps and CSV aggregation.
|
| 22 |
|
| 23 |
## Long term
|
| 24 |
-
- Integrate a safe external W&B uploader
|
| 25 |
-
- Add more ARC tasks and automated evaluation harness.
|
| 26 |
- Document reproducibility steps and expected outputs for each example task.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# TODO (Prioritised)
|
| 2 |
|
| 3 |
## Immediate (blockers)
|
| 4 |
+
- ~~**Add candidate snapshot to beam logs**~~ ✅ Done — `beam_logging.py` logs candidates; `fix_and_inspect_logs.py` attaches `candidate_array` post‑hoc.
|
| 5 |
+
- ~~**Ensure gate values are booleans**~~ ✅ Done — `coerce_gates()` in `fix_and_inspect_logs.py` and `postprocess_logs.py`.
|
| 6 |
+
- ~~**Make tile transform nontrivial**~~ ⚠️ Partial — `ShiftedTile` exists in `transforms.py` but is **not wired into `default_atomic_factory`**. The beam only sees vanilla `tile_to_target` (idempotent), so σ never decreases. **This is the critical blocker.**
|
| 7 |
+
- ~~**Implement robust fill_enclosed**~~ ✅ Done — BFS implementation in `solver_core.py`.
|
| 8 |
+
|
| 9 |
+
### ➡️ Next: Fix σ=98 flatline (residue never decreases)
|
| 10 |
+
The beam composes `tile_to_target ∘ tile_to_target` which is idempotent — tiling an already-tiled grid returns the same grid. The atomic library needs transforms that can actually express the input→target mapping.
|
| 11 |
+
|
| 12 |
+
**Plan:**
|
| 13 |
+
1. **Wire `ShiftedTile` into `default_atomic_factory`** so the beam can explore shifted tilings.
|
| 14 |
+
2. **Add region‑aware placement transforms** — the example1 target is a 3×3 arrangement of sub‑blocks where each 3×3 quadrant is a conditional variant of the input (some reflected, some identity, some zero‑filled). The library needs transforms that place sub‑blocks at specific offsets.
|
| 15 |
+
3. **Add conditional fill / mask‑based composition** — transforms that zero‑out or overwrite specific quadrants based on input symmetry.
|
| 16 |
+
4. **Re‑run sweep** with enriched library and verify σ decreases below 98.
|
| 17 |
|
| 18 |
## Short term
|
| 19 |
+
- ~~Add CLI entrypoint with `--use_wandb` flag~~ ✅ Done — `scripts/entrypoint.py`.
|
| 20 |
- Add unit tests for `tile_transform`, `fill_enclosed`, and transform `.apply()` semantics.
|
| 21 |
+
- `tests.py` has `run_atomic_effects` and `transform_effect_test` but no proper pytest suite yet.
|
| 22 |
- Add small visualization notebook for `phi_best`, diff maps, and Layer‑1 masks.
|
| 23 |
|
| 24 |
## Medium term
|
| 25 |
+
- ~~Improve Layer‑1 mask generation~~ ✅ Done — percentile + min_abs + dilation in `layer_minus_one.py`.
|
| 26 |
+
- Add a toggle to include/exclude `candidate_array` in logs to control log size.
|
| 27 |
+
- ~~Create a reproducible benchmark harness for parameter sweeps and CSV aggregation~~ ✅ Done — `experiment_driver.sweep()` + `results.csv`. Needs more tasks.
|
| 28 |
|
| 29 |
## Long term
|
| 30 |
+
- ~~Integrate a safe external W&B uploader~~ ✅ Done — `wandb_runner.py` runs after experiments finish, decoupled from core.
|
| 31 |
+
- Add more ARC tasks and automated evaluation harness.
|
| 32 |
- Document reproducibility steps and expected outputs for each example task.
|
| 33 |
+
|
| 34 |
+
## Code hygiene (completed)
|
| 35 |
+
- ~~Duplicate `Transform` class in `transforms.py`~~ ✅ Fixed — now imports from `solver_core`.
|
| 36 |
+
- ~~Duplicate imports/paste blocks in `solver_core.py`~~ ✅ Fixed — single clean definition.
|
| 37 |
+
- ~~Lambda closure bug in `default_atomic_factory`~~ ✅ Fixed — captures `target_shape` by value.
|
| 38 |
+
- ~~`wandb_runner.py` `int(generate_id(), 36)` crash~~ ✅ Fixed — uses string ID directly.
|
| 39 |
+
- ~~`minimal_runner.py` TARGET was all‑zeros~~ ✅ Fixed — uses real example1 target.
|
| 40 |
+
- ~~README.md referenced non‑existent paths~~ ✅ Fixed — corrected to actual repo structure.
|
| 41 |
+
- ~~Committed `.pyc` files~~ ✅ Fixed — deleted + `.gitignore` added.
|
| 42 |
+
- ~~`itt_solver/README.md.md` double extension~~ ✅ Fixed — renamed to `README.md`.
|