docs: bring skills and docs in line with the fixed code
Skills ask before using a working copy found in the user's folder and state its check level first. The drift of the queue models before the shock is stated in the caveats and the README. README shows how to run the check and the tests. The drift line names the month a gradual drive begins. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
parent
776325c680
commit
19858bbda9
13 changed files with 314 additions and 113 deletions
|
|
@ -1,7 +1,8 @@
|
|||
# Forbehold
|
||||
|
||||
Forbeholdene ved modellen, diagnosen, forløpet og de norske eksempeltallene. De er hentet fra notatet *Den dynamiske
|
||||
rettsstaten* (avsnitt 9.8 og 10, vedlegg C), README i notatets repo og koden i `modell/kjerne/` (commit 2badc25).
|
||||
Forbeholdene ved modellen, simuleringene, diagnosen, forløpet og de norske eksempeltallene. De er hentet fra notatet *Den dynamiske
|
||||
rettsstaten* (avsnitt 9.8 og 10, vedlegg C), README i notatets repo, koden i `modell/kjerne/` (commit 2badc25) og kjøringer med
|
||||
den.
|
||||
Ferdighetene tar med de forbeholdene som gjelder for svaret de gir.
|
||||
|
||||
## Modellen som helhet
|
||||
|
|
@ -18,6 +19,13 @@ Ferdighetene tar med de forbeholdene som gjelder for svaret de gir.
|
|||
måleimperfeksjon. Resultatene er enkeltbaner uten parameterusikkerhet.
|
||||
- **Bare ett ledd har kø.** I notatets simuleringer er det domstolen; i `forlop` er det leddet som binder i dine tall.
|
||||
Etterforskning, påtale og straffegjennomføring har ellers verken kø, frafall eller kapasitet i modellen.
|
||||
- **Utgangspunktet i modellene med kø er nesten, men ikke helt, en likevekt.** Notatet kaller starttilstanden
|
||||
«utgangslikevekten», men i modellene der domstolen har kø, står den ikke helt i ro: saker som faller fra køen
|
||||
(henleggelse, foreldelse), blir aldri trukket fra kriminaliteten i modellens regnskap. Kjørt helt uten sjokk, med
|
||||
notatets verdier, går kriminaliteten fra 1,000 til 1,007 i måned 11, 1,015 i måned 120 og 1,018 i måned 240, og
|
||||
saksbehandlingstiden fra 3,0 til 3,1, 4,2 og 4,6 måneder, fortsatt stigende (målt 2026-11-11 med notatets kode,
|
||||
`eksempler/scenarioer/uten_sjokk_kjede.json`). Notatet nevner det ikke. En liten del av det kjedescenarioene viser
|
||||
etter sjokket, er denne driften.
|
||||
- **Kostnader er ikke regnet i kroner.** Målfunksjonen er stilt opp, men ikke brukt. Ingen kostnader eller gevinster
|
||||
er tallfestet, og modellens størrelser er normaliserte, ikke årsverk eller kroner.
|
||||
- **Beslutningsreglene er stiliserte.** Reglene for påtale og budsjett er representasjoner av hvordan myndighetene kan
|
||||
|
|
@ -26,6 +34,24 @@ Ferdighetene tar med de forbeholdene som gjelder for svaret de gir.
|
|||
- **Andelen som kan ledes utenom** er i praksis bestemt av sakenes art og av hjemlene i straffeprosessloven. Den er
|
||||
et rettspolitisk valg, ikke en styringsparameter.
|
||||
|
||||
## Simuleringene (`simuler`)
|
||||
|
||||
- **Notatets verdier, normaliserte størrelser.** Alt scenariofila ikke setter, er notatets stiliserte verdier. Kø,
|
||||
strøm og kapasitet er modellens normaliserte størrelser, ikke saker, årsverk eller kroner. Køen står i sammendraget
|
||||
i måneder av innstrømningen før sjokket.
|
||||
- **Driften i modellene med kø** (over) gjelder alle scenarioer med domstolskø. Sammendraget viser hvor langt
|
||||
modellen har drevet fram til sjokket. Når små virkninger betyr noe, sammenlign med en kjøring uten sjokk med samme
|
||||
parametere og horisont, og trekk driften fra.
|
||||
- **Endrede grunnparametere.** Endres en parameter som bestemmer utgangspunktet (for eksempel politiets effektivitet
|
||||
eller tilliten ved start), står modellen ikke lenger i ro ved start. Kjøreren stopper da, med mindre scenarioet sier
|
||||
om utgangspunktet skal kalibreres på nytt eller kjøres fra ubalansen (`startlikevekt` i `docs/scenarioformat.md`).
|
||||
De to valgene svarer på ulike spørsmål og gir ulike tall.
|
||||
- **Beslutningsreglene** (`simulate_endo`) bruker notatets strøm av saker ved start som observasjon de første
|
||||
månedene. Et scenario som endrer den strømmen, stopper; det krever en endring i kjernen.
|
||||
- **Store utslag.** Går kriminaliteten utenfor området kjernen er laget for (K mellom 0,01 og 12), kjøres scenarioet,
|
||||
men sammendraget har en merknad: ligningene er ikke laget for så store utslag. Vokser løsningen over alle grenser,
|
||||
stopper kjøringen.
|
||||
|
||||
## Diagnosen (`diagnose`)
|
||||
|
||||
- **Saksbeh.tid** er restanse delt på kapasitet, ikke målt saksbehandlingstid. Kolonnen vises bare når målet er
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
`diagnose` og `forlop` leser samme fil: en JSON-fil med ett objekt per ledd i straffesakskjeden. Denne siden
|
||||
beskriver hvert felt slik kjernens kode leser det (`modell/kjerne/diagnose.py`: `sjekk`, `analyser`, `TALLFELT`;
|
||||
`modell/kjerne/forlop.py`: `les_styring`, `modell`). Kjernen er en uendret kopi av koden i notatet *Den dynamiske
|
||||
rettsstaten* (commit 2badc25).
|
||||
rettsstaten* (commit 2badc25). Feltnavnene sjekkes av `modell/kjor.py` før kjernen leser fila.
|
||||
|
||||
## Enheter
|
||||
|
||||
|
|
@ -35,7 +35,8 @@ Tall skrives med punktum som desimaltegn og uten tusenskille: `29044.5`, ikke `2
|
|||
for dem.
|
||||
- `styring` (valgfritt): brukes bare av `forlop`. Se under.
|
||||
- Andre felt på øverste nivå (for eksempel `merknad` og `kilder`) leses ikke av koden. Bruk dem til å skrive ned
|
||||
hvor tallene kommer fra.
|
||||
hvor tallene kommer fra. I hvert ledd og i `styring` kan merknadsfeltene `merknad`, `kilde` og `kilder` stå i
|
||||
tillegg til feltene under; de leses heller ikke av regningen.
|
||||
|
||||
## Feltene i hvert ledd
|
||||
|
||||
|
|
@ -62,9 +63,15 @@ Krav som kontrolleres før regningen (`sjekk`):
|
|||
|
||||
Brudd på kravene gir en norsk melding som sier hvilket ledd og hvilket felt det gjelder, og ingen regning.
|
||||
|
||||
**Feltnavn med skrivefeil blir ikke oppdaget.** Koden leser bare feltene over og ser bort fra alt annet. Står det
|
||||
`prognose_innstrømning` (med ø) eller `maks_andel_utenfor`, regner verktøyet stille med standardverdien. Feltnavnene
|
||||
skrives uten æ, ø og å, nøyaktig som i tabellen.
|
||||
**Feltnavn med skrivefeil stopper regningen.** Før `diagnose` og `forlop` regner, sjekker `kjor.py` feltnavnene i
|
||||
hvert ledd og i `styring`. Et navn som ikke er et av feltene over eller et merknadsfelt (`merknad`, `kilde`,
|
||||
`kilder`), gir exit-kode 2 og en melding som sier hvilket ledd det gjelder og foreslår det nærmeste gyldige navnet:
|
||||
|
||||
```
|
||||
Feil i inndata, ledd 3 (Domstol): feltet "prognose_innstrømning" finnes ikke. Mente du "prognose_innstromning"? Gyldige felt: navn, innstromning, kapasitet, restanse, maal_tid, prognose_innstromning, maks_andel_utenom, restanse_for_12_mnd, restanse_maal, skjult_avgang, innstromning_for_okning, merknad, kilde, kilder.
|
||||
```
|
||||
|
||||
Feltnavnene skrives uten æ, ø og å, nøyaktig som i tabellen. Felt på øverste nivå sjekkes ikke.
|
||||
|
||||
## Hvordan feltene brukes i regningen
|
||||
|
||||
|
|
@ -94,7 +101,8 @@ avvikles over 24 måneder, og bestilt kapasitet virker gradvis fra 6 til 24 mån
|
|||
| `reaktivitet` | – | 3 | over 0, høyst 50 | prosent mer innsats per prosent avvik fra målet (3 betyr at 10 % over målet gir 30 % mer innsats) |
|
||||
|
||||
Uten `styring` brukes regime A i notatet (3 og 3), og `forlop` sier fra om det. Står `styring` i fila, men ett av
|
||||
feltene mangler, brukes standardverdien for det feltet uten merknad.
|
||||
feltene mangler, brukes standardverdien for det feltet uten merknad. Feltnavnene i `styring` sjekkes også når
|
||||
`diagnose` kjøres, så en skrivefeil der stopper begge.
|
||||
|
||||
## Hva `forlop` krever i tillegg
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,10 @@ hvilke kontroller som skal holde etter en endring.
|
|||
|
||||
## (a) Tilstandsvariabler og avledede størrelser
|
||||
|
||||
Tidsenhet: måned. Nivåene er normalisert slik at referanselikevekten har K = 1, T = 1 og Λ = 0,80.
|
||||
Tidsenhet: måned. Nivåene er normalisert slik at referanselikevekten har K = 1, T = 1 og Λ = 0,80. I modellene med kø i
|
||||
domstolen er starttilstanden nesten, men ikke helt, en likevekt: ved start er K′ = ϑ ς_D Q_D > 0, fordi det som faller
|
||||
fra køen, aldri trekkes fra K (ligningen for K′ under). Uten sjokk kryper K og τ_D derfor sakte oppover; se
|
||||
`forbehold.md` for hvor mye.
|
||||
|
||||
| I koden | Symbol | Betyr | Merknad |
|
||||
|---|---|---|---|
|
||||
|
|
@ -267,3 +270,6 @@ alle 22 datafilene ble byte-like notatets.
|
|||
`simulate_soc` har ingen utskrevet grensetilfelle. `forlop.py` kontrollerer sin egen kopi mot `simulate_endo` i hver
|
||||
kjøring (bit for bit, se over). Den som endrer kjernen, kjører kontrollene på nytt og ser at avvikene fortsatt er 0
|
||||
eller på avrundingsnivå, og at de 22 datafilene er byte-like med mindre endringen skal endre resultatene.
|
||||
`kjor.py kontroll` gjør dette og mer: den måler kjernen og fasiten mot notatets sjekksummer, kjører diagnosen,
|
||||
forløpet, hele `sim.py`, grensetilfellene i utvidelsene og scenariokjøreren, og sier hvilke av notatets resultater som
|
||||
har flyttet seg.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue