ladder

a fish ladder is a row of stepped pools: the slowest pool caps the rate of the whole thing. this is sawyer's 30 task line, a benchmark from 1993. drag tasks between stations (or tab to a task and use the arrow keys). a task cannot sit upstream of anything it depends on. keep every station under the takt, use as few stations as you can, then see how close you got to the proven optimum.

41 s

unassigned tasks: drop them on a station

block height is task time. the dashed line is the takt (cycle time); a station over it turns red.

stations used
–
line efficiency
–
total work / (stations × takt)
smoothness index
–
0 means every station equally loaded
theoretical rate
–
units per hour at this takt

now run it

a balance is balanced on paper. real station times vary. this simulates your balance with lognormal station times at the variability you pick, a buffer of the size you pick between neighbouring stations, and stations that block when the next buffer is full and starve when the previous one is empty. 3000 units after a 300 unit warm-up, in your browser.

0.30
0
paper rate–
simulated–

part of noorps/ladder: solvers benchmarked against published optima, a simpy simulator (this browser one is checked against it, same random streams, identical throughput to floating point precision on a 20 cell grid), and the numbers behind the claims. the optimal balances were proven by or-tools cp-sat.