12 · Capital Systems Modeler · Capital Systems Integrator (architectural cost)
Architecture allocation
Can it place functions onto controllers so every constraint holds and network traffic is minimal?
Allocate functions to ECUs under CPU and pin capacity, zone locks and redundancy segregation, minimising the signal rate that has to cross the network. The optimum is found by exhaustive search, so “good enough” is measured against the real best.
Capital reference. Specifying the Architectural Cost of a Component (systems-integrator/specifying-the-architectural-cost-of-a-component). This domain stands for the capability that article describes; the task gives the model the rules in full rather than testing whether it remembers Capital’s.
Not tested here. Network topology design, bus loading and timing analysis.
Scale ladder. S: 6 functions on 3 ECUs · M: 8 functions on 3 ECUs · L: 10 functions on 4 ECUs.
Results
| Model | Verdict | S passed | M passed | L passed | Mean score |
|---|---|---|---|---|---|
| Claude Opus 5.5 | Assist | 3 / 3 | 3 / 3 | 2 / 3 | 99.6 |
| Claude Fable 5.1 | Ready | 3 / 3 | 3 / 3 | 3 / 3 | 100 |
| Claude Sonnet 5.5 | Ready | 3 / 3 | 3 / 3 | 3 / 3 | 100 |
Every trial
| Model | Size | Seed | Score | Checks | Time |
|---|---|---|---|---|---|
| Claude Fable 5.1 | L#0 | 4187879443 | 100 | constraints: all constraints hold · optimality: crossRate 2610 against optimum 2610 | 102 s |
| Claude Fable 5.1 | L#1 | 4171101824 | 100 | constraints: all constraints hold · optimality: crossRate 1080 against optimum 1080 | 56 s |
| Claude Fable 5.1 | L#2 | 4221434681 | 100 | constraints: all constraints hold · optimality: crossRate 2020 against optimum 2020 | 82 s |
| Claude Fable 5.1 | M#0 | 2600911944 | 100 | constraints: all constraints hold · optimality: crossRate 1840 against optimum 1840 | 28 s |
| Claude Fable 5.1 | M#1 | 2617689563 | 100 | constraints: all constraints hold · optimality: crossRate 660 against optimum 660 | 20 s |
| Claude Fable 5.1 | M#2 | 2634467182 | 100 | constraints: all constraints hold · optimality: crossRate 2230 against optimum 2230 | 38 s |
| Claude Fable 5.1 | S#0 | 3032355530 | 100 | constraints: all constraints hold · optimality: crossRate 870 against optimum 870 | 16 s |
| Claude Fable 5.1 | S#1 | 3049133149 | 100 | constraints: all constraints hold · optimality: crossRate 1070 against optimum 1070 | 27 s |
| Claude Fable 5.1 | S#2 | 2998800292 | 100 | constraints: all constraints hold · optimality: crossRate 1010 against optimum 1010 | 15 s |
| Claude Opus 5.5 | L#0 | 4187879443 | 96.3 | constraints: all constraints hold · optimality: crossRate 2780 against optimum 2610 | 56 s |
| Claude Opus 5.5 | L#1 | 4171101824 | 100 | constraints: all constraints hold · optimality: crossRate 1080 against optimum 1080 | 31 s |
| Claude Opus 5.5 | L#2 | 4221434681 | 100 | constraints: all constraints hold · optimality: crossRate 2020 against optimum 2020 | 69 s |
| Claude Opus 5.5 | M#0 | 2600911944 | 100 | constraints: all constraints hold · optimality: crossRate 1840 against optimum 1840 | 28 s |
| Claude Opus 5.5 | M#1 | 2617689563 | 100 | constraints: all constraints hold · optimality: crossRate 660 against optimum 660 | 19 s |
| Claude Opus 5.5 | M#2 | 2634467182 | 100 | constraints: all constraints hold · optimality: crossRate 2230 against optimum 2230 | 34 s |
| Claude Opus 5.5 | S#0 | 3032355530 | 100 | constraints: all constraints hold · optimality: crossRate 870 against optimum 870 | 17 s |
| Claude Opus 5.5 | S#1 | 3049133149 | 100 | constraints: all constraints hold · optimality: crossRate 1070 against optimum 1070 | 35 s |
| Claude Opus 5.5 | S#2 | 2998800292 | 100 | constraints: all constraints hold · optimality: crossRate 1010 against optimum 1010 | 15 s |
| Claude Sonnet 5.5 | L#0 | 4187879443 | 100 | constraints: all constraints hold · optimality: crossRate 2610 against optimum 2610 | 41 s |
| Claude Sonnet 5.5 | L#1 | 4171101824 | 100 | constraints: all constraints hold · optimality: crossRate 1080 against optimum 1080 | 22 s |
| Claude Sonnet 5.5 | L#2 | 4221434681 | 100 | constraints: all constraints hold · optimality: crossRate 2020 against optimum 2020 | 25 s |
| Claude Sonnet 5.5 | M#0 | 2600911944 | 100 | constraints: all constraints hold · optimality: crossRate 1840 against optimum 1840 | 19 s |
| Claude Sonnet 5.5 | M#1 | 2617689563 | 100 | constraints: all constraints hold · optimality: crossRate 660 against optimum 660 | 13 s |
| Claude Sonnet 5.5 | M#2 | 2634467182 | 100 | constraints: all constraints hold · optimality: crossRate 2230 against optimum 2230 | 23 s |
| Claude Sonnet 5.5 | S#0 | 3032355530 | 100 | constraints: all constraints hold · optimality: crossRate 870 against optimum 870 | 15 s |
| Claude Sonnet 5.5 | S#1 | 3049133149 | 100 | constraints: all constraints hold · optimality: crossRate 1070 against optimum 1070 | 14 s |
| Claude Sonnet 5.5 | S#2 | 2998800292 | 100 | constraints: all constraints hold · optimality: crossRate 1010 against optimum 1010 | 13 s |
What the model is asked
The small instance at seed 3032355530, exactly as sent. Regenerate any instance with npm run sample -- allocation M 2.
Show the prompt (1,355 characters)
TASK: Function-to-ECU allocation.
Assign every function to exactly one ECU so that ALL constraints hold:
- the sum of cpu of the functions on an ECU <= its cpuCap, and the sum of pins <= its pinCap;
- a function with a zone must go on an ECU in that zone (zone null = any ECU);
- each pair in `segregate` must be on different ECUs.
Among valid allocations, MINIMISE crossRate = the sum of `rate` over signals whose two functions are on different ECUs.
ECUs:
[
{"id":"E1","cpuCap":35,"pinCap":11,"zone":"FRONT"},
{"id":"E2","cpuCap":42,"pinCap":16,"zone":"CABIN"},
{"id":"E3","cpuCap":74,"pinCap":41,"zone":"REAR"}
]
Functions:
[
{"id":"F1","cpu":23,"pins":11,"zone":null},
{"id":"F2","cpu":12,"pins":9,"zone":"REAR"},
{"id":"F3","cpu":5,"pins":7,"zone":null},
{"id":"F4","cpu":22,"pins":6,"zone":null},
{"id":"F5","cpu":10,"pins":7,"zone":"REAR"},
{"id":"F6","cpu":28,"pins":12,"zone":null}
]
segregate: []
Signals:
[
{"a":"F2","b":"F1","rate":340},
{"a":"F1","b":"F5","rate":480},
{"a":"F4","b":"F3","rate":190},
{"a":"F2","b":"F5","rate":110},
{"a":"F6","b":"F3","rate":370},
{"a":"F1","b":"F4","rate":230},
{"a":"F1","b":"F3","rate":360},
{"a":"F1","b":"F6","rate":500}
]
Output format (JSON, exactly these keys):
```json
{
"allocation": [
{
"function": "F1",
"ecu": "E2"
}
],
"crossRate": 340
}
```