feat(diagnose): bottleneck diagnosis from own numbers, first version

paper/diagnose.py takes inflow, capacity, backlog and target time per
link and returns utilization, throughput time and backlog growth per
link, the binding link, the type of measure in Theory of Constraints
order (exploit, subordinate, elevate) and, for the binding link, the
capacity needed under the coordinated rule from sim.py, sized on the
forecast flow rather than the queue.

The example file holds the stylized month-24 values from the coordinated
run and reproduces section 9.5 (utilization 1.28, +19 % capacity);
checked against simulate_endo("koord"), which orders +19 % in month 24.
sim.py and paper/data/ are unchanged. Time paths and the stability check
for the police rule are not in this version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-11-10 13:25:39 +01:00
commit 809dd4ccba
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
5 changed files with 156 additions and 3 deletions

View file

@ -31,6 +31,19 @@ cd paper
Skriptet bruker om lag to minutter. Det skriver ut nøkkeltallene som brukes i teksten, og skriver figurdataene til `paper/data/`. Med versjonene over blir alle 22 datafilene byte for byte like dem som ligger i repoet. Det kan du sjekke selv: `git status paper/data` skal ikke vise noen endringer etter kjøringen. Ingenting kjører denne sjekken automatisk.
## Finn flaskehalsen med egne tall
`paper/diagnose.py` går fra tall per ledd i kjeden til leddet som binder og tiltakstypen, etter trinn (c)–(e) i notatets metode. Du oppgir for hvert ledd innstrømning og kapasitet (saker per måned), restanse (saker) og målet for saksbehandlingstid (måneder). Hvis noen saker kan ledes til forenklede reaksjoner, oppgir du også hvor stor andel det kan være. Skriptet trenger bare Python 3.
```bash
cd paper
python3 diagnose.py eksempel_domstol.json
```
Svaret viser utnyttelse og restanse i hvert ledd, leddet som binder og tiltakene i rekkefølgen utnytt, led saker utenom, utvid. For leddet som binder regner skriptet også ut hvor mye kapasitet som trengs, etter prognosen for strømmen og ikke etter køen. Formatet på inndata står øverst i skriptet. Eksempelfila har stiliserte tall, ikke norske tall, og gjenskaper tallene i avsnitt 9.5: utnyttelse 1,28 og 19 prosent mer kapasitet.
Denne første versjonen viser ikke forløpet over tid, og den sjekker ikke stabilitetsgrensen for politiets reaksjon.
## Hva notatet gjør
- Formulerer prinsippet som én beslutningsregel fra det observerte kriminalitetsbildet til en samlet tiltaksvektor: innsats, reaksjonsformer, kapasitet, prosessuell kvalitet og lovbestemt handlingsrom.
@ -59,7 +72,7 @@ Dette er et konseptnotat og en invitasjon til videre forskning, ikke et ferdig v
| Mappe | Innhold |
|---|---|
| `pdf/` | Ferdige PDF-er av notatet, sammendraget og lysarkene |
| `paper/` | LaTeX-kilden (`main.tex` er notatet, `notat.tex` sammendraget, `karusell.tex` lysarkene) og simuleringen `sim.py` |
| `paper/` | LaTeX-kilden (`main.tex` er notatet, `notat.tex` sammendraget, `karusell.tex` lysarkene), simuleringen `sim.py` og flaskehalsdiagnosen `diagnose.py` med eksempelfil |
| `paper/data/` | Figurdataene som `sim.py` skriver og LaTeX-kilden leser |
PDF-ene er bygd fra LaTeX-kilden i dette repoet med TeX Live 2026: notatet og sammendraget med pdflatex (tre ganger, fra `paper/`), lysarkene med xelatex (to ganger), som trenger fonten Inter fra TeX Live.
@ -73,7 +86,7 @@ Innspill og kritikk er velkomne, særlig fra dem som arbeider i straffesakskjede
## Lisens
- Teksten, det vil si PDF-ene i `pdf/` og LaTeX-kilden (`.tex`-filene i `paper/`), er lisensiert under [CC BY 4.0](LICENSE-CC-BY-4.0.txt). Du kan dele og bearbeide den fritt, også i andres arbeid, så lenge du oppgir kilden: Kjell Tore Guttormsen (2026), *Den dynamiske rettsstaten*, versjon 2.
- Koden, det vil si `paper/sim.py`, `requirements.txt` og figurdataene i `paper/data/`, er lisensiert under [MIT](LICENSE).
- Koden, det vil si `paper/sim.py`, `paper/diagnose.py`, `requirements.txt`, figurdataene i `paper/data/` og `paper/eksempel_domstol.json`, er lisensiert under [MIT](LICENSE).
## Changelog
See [CHANGELOG.md](CHANGELOG.md).