feat: Warnung bei ungeschützter Sandbox, Prüf-Regel für konstante Kosten, Grund je Korrekturrunde
- sandbox_warning: fehlt bubblewrap oder ist SOLVER_SANDBOX=aus, steht das im Log und in SolverRun.warnings (vorher lief der Code stillschweigend ungeschützt) - Dijkstra-Markierung: der Report erklärt den Begriff selbst (DIJKSTRA_EXPLANATION), check_text_quality zählt das als Erklärung; Stamm 'markier' -> 'markierung' - Pruef-Prompt Regel 7: entscheidungsunabhängige Terme ohne Zahlenwert dürfen weggelassen oder symbolisch mitgeführt werden (wagner_whitin_dijkstra: 1+1 statt 2+1 Korrekturrunden, n=2) - revision_reasons: jede Korrekturrunde nennt ihren Auslöser im Log Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
26f988a953
commit
0f1ab04a8d
1 changed files with 148 additions and 8 deletions
|
|
@ -12,7 +12,7 @@ from pathlib import Path
|
|||
from reporting import charts
|
||||
from core.model_schema import PipelineResult, SolverStatus
|
||||
from solving.script_export import build_solver_script
|
||||
from solving.solver_stage import _is_sum_row
|
||||
from solving.solver_stage import DIJKSTRA_EXPLANATION, _is_sum_row
|
||||
|
||||
|
||||
class Math(str):
|
||||
|
|
@ -140,9 +140,7 @@ def _graph_section(run) -> list:
|
|||
doc += [("h4", "Markierungsverlauf des Dijkstra-Algorithmus"),
|
||||
("table", ["Schritt", "Knoten wird endgültig", "Marke (Entfernung von der Quelle)"],
|
||||
[[str(i), s.node, _fmt_number(s.label)] for i, s in enumerate(g.steps, 1)]),
|
||||
("p", "Dijkstra nimmt in jedem Schritt den noch nicht endgültigen Knoten mit der kleinsten Marke. "
|
||||
"Weil die Marken dabei nie fallen, steht jede endgültige Marke schon fest, sobald sie "
|
||||
"vergeben wird – das ist der Grund, warum ein Durchlauf genügt.")]
|
||||
("p", DIJKSTRA_EXPLANATION)]
|
||||
return doc
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue