File size: 4,800 Bytes
2853144 6c9a293 2853144 6c9a293 3aeff4d 6c9a293 3aeff4d 6c9a293 3aeff4d 6c9a293 3aeff4d 6c9a293 3aeff4d 6c9a293 3aeff4d 6c9a293 2ed0296 2853144 3aeff4d 6c9a293 3aeff4d c31860a 2ed0296 3aeff4d c31860a 3aeff4d 6c9a293 2ed0296 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | # medal-solvers β TODO (ORDERED)
## Current: 6072.74 (v70) | Target: 6500 (silver) / 6100 (bronze)
## Strategy: Crack rules β hand-craft ONNX β onnxsim β PROFILE score vs base β upload
---
## DONE (16 models, ~+30.5 pts total)
| Task | Score | Base | Gain | Method |
|------|-------|------|------|--------|
| 025 | 10.57 | 8.71 | +1.86 | Hand-craft + onnxsim |
| 028 | 14.31 | 12.83 | +1.48 | Hand-craft + onnxsim |
| 062 | 14.75 | 14.23 | +0.52 | Hand-craft + onnxsim |
| 084 | 12.41 | 9.72 | +2.70 | Hand-craft + onnxsim |
| 128 | 13.69 | 13.54 | +0.16 | Hand-craft (Gather shift) + onnxsim |
| 153 | 15.01 | 10.81 | +4.20 | Hand-craft + onnxsim |
| 200 | 14.65 | 10.33 | +4.32 | Hand-craft + onnxsim |
| 209 | 10.47 | 10.11 | +0.35 | onnxsim on base model |
| 217 | 14.65 | 13.75 | +0.91 | Hand-craft + onnxsim |
| 255 | 11.62 | 7.42 | +4.21 | Hand-craft + onnxsim |
| 277 | 14.89 | 13.30 | +1.58 | Hand-craft + onnxsim |
| 285 | 8.84 | 5.99 | +2.85 | Hand-craft + onnxsim |
| 319 | 11.87 | 7.91 | +3.96 | Hand-craft + onnxsim |
| 323 | 14.18 | 14.17 | +0.01 | onnxsim on base model |
| 367 | 10.68 | 10.58 | +0.10 | onnxsim on base model |
| 387 | 11.16 | 10.46 | +0.70 | Hand-craft + onnxsim |
## REMOVED (scored WORSE than base β verified v70)
| Task | My Score | Base | Loss | Why |
|------|----------|------|------|-----|
| 057 | 14.24 | 14.25 | -0.01 | Optimized model has more memory than base |
| 384 | 13.17 | 13.78 | -0.61 | Optimized model has much more memory than base |
---
## NEXT: HIGH-VALUE TARGETS
### 1. TASK 034 β ONNX BUILD IN PROGRESS (267/267 solved!)
**Rule:** Diagonal trail of 2x2 block. Direction from 2-markers. 9Γ9 grid.
**Base:** 87 nodes, 2847 params, score 13.42
**Status:** Solver 267/267. ONNX works for 1-marker cases (85/267).
**Blocker:** Multi-directional (2+ markers) cases fail in ONNX due to Sign(0)=0
when block center == 2-cell mean. Need to handle:
- 2 markers β bidirectional (opposite diagonals)
- 3 markers β need to detect the MISSING corner of the bounding box as direction
**Fix needed:** When Sign gives 0 (centroids coincide), use individual 2-cell positions
to determine unique diagonal directions, then trail in ALL detected directions.
**Potential gain:** +1-2 pts if ONNX beats base
### 2. TASK 076 β SOLVER COMPLETE (266/266) but ONNX BLOCKED
**Rule:** Template rotation + decoration placement using centroid + 2-marker + BFS
**Base:** 10.34 (949KB file)
**Potential:** +5-7 pts
**Blocker:** Requires 8-connected CC detection + BFS. Objects can be adjacent (distance 0).
Simple separation won't work. Need ~100+ extra nodes for iterative CC propagation.
**File:** `task076_solver_266.py`
### 3. TASK 219 β SOLVER AT 255/265, needs 265 for ONNX
**Rule:** Template pattern extension with alignment + periodicity
**Base:** 8.42 (87KB file)
**Potential:** +6 pts
**Blocker:** 10 "merged row" failures where group rows contain columns from multiple template rows
**File:** `task219_solver_255.py`
### 4. TASK 366 β NOT STARTED (highest potential +8-10 pts)
Base 7.08, file 1.3MB, variable grid. Object placement by dot-pattern matching.
Extremely complex β needs backtracking.
### 5. TASK 157 β NOT CRACKED
10Γ15 grid. Column shift rule unclear.
## WORKFLOW PER TASK
```
1. Load task JSON, look at 2-3 train examples
2. Use ARC-DSL primitives (michaelhodel-arc-dsl.txt) to identify the rule
3. Write Python solver, verify 265+/265 accuracy on ALL examples
4. Build ONNX using OnnxBuilder (slice-first pattern)
5. Run onnxsim
6. **PROFILE** score with score_model.py β NEVER use static estimates
7. **PROFILE** base model score too
8. ONLY if my_score > base_score: upload to optimized/
```
## PROVEN FAILURES (do NOT retry)
| Approach | Result |
|----------|--------|
| Task 398 ONNX | 268/268 correct but scores 10.3 vs base 13.7 (base too compact: 770 params) |
| Float16 conversion | Cast overhead cancels savings |
| onnx-neural-compressor quantization | Introduces DynamicQuantizeLinear/MatMulInteger β scorer returns None |
| Task 363 heuristics (Γ7) | 264/265 max, unknown tiebreaker |
| Tasks needing CC detection (101, 233, 191, 044, 077, 182) | Can't express in ONNX efficiently |
| onnxsim on base models | Only 3 out of 400 improved (209, 367, 323) β already done |
| Task 314 hand-craft ONNX | 266/266 correct BUT scored 14.46 vs base 15.62 = WORSE |
| Targeting tasks with base params < 1000 | Base already too compact to beat |
## DO NOT TOUCH
- Tasks with base score > 14 and small grids (flips, rotations, color swaps)
- Tasks 020, 037, 040, 053, 077, 098, 100, 291, 307, 330
- Task 057, 384 (removed β score WORSE than base)
- Task 314 (266/266 correct but ONNX scores 14.46 vs base 15.62 = WORSE)
- Task 398 (268/268 correct but ONNX scores 10.3 vs base 13.7 = WORSE)
|