rogermt commited on
Commit
838d30d
·
verified ·
1 Parent(s): 1fff370

Update TODO.md — mark completed items, add plan for σ-reduction blocker and next steps

Browse files
Files changed (1) hide show
  1. TODO.md +30 -14
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** (if not already present) so each accepted candidate can be inspected offline.
9
- - **Ensure gate values are booleans** in logs (coerce string values).
10
- - **Make tile transform nontrivial** (shifted tiling) so transforms can change the field.
11
- - **Implement robust fill_enclosed** (dependency‑free BFS hole filler).
 
 
 
 
 
 
 
 
 
12
 
13
  ## Short term
14
- - Add CLI entrypoint with `--use_wandb` flag (default: false).
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 (percentile + min_abs + dilation).
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 (runs after experiments finish).
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`.