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)