From c99e6f668915bff54594b0c04534cd82952f504d Mon Sep 17 00:00:00 2001 From: dschlueter Date: Fri, 18 Sep 2026 20:52:35 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20drei=20Prompt-Regeln=20(entscheidungsun?= =?UTF-8?q?abh=C3=A4ngige=20Terme,=20ausdr=C3=BCckliche=20Definitionen,=20?= =?UTF-8?q?Handverfahren=20benennen)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Extraktions-Prompt: entscheidungsunabhängige Terme ohne Zahlenwert erfordern eine Annahme, die das Weglassen/Mitführen begründet (Wagner-Whitin Einkaufspreis, bisher je 2 Korrekturrunden). - Prüf-Prompt: eine Annahme, die einer ausdrücklichen Definition im Text widerspricht, ist immer contradicts_task (Portfoliomanagement §3 l_i/u_i als Betrags- nicht Stückzahl-Grenzen). - Solver-Prompt: verlangtes Handverfahren (Simplex-Iterationen, graphische Lösung) wird in der Antwort ausdrücklich als nicht gezeigt benannt. Prompt-Kennung c75d411794ea (war 1268a894c043). 435 Tests grün. --- checks/Pruef-Prompt.txt | 1 + modeling/Routing-und-Extraktions-Prompt.txt | 1 + solving/Solver-Prompt.txt | 1 + 3 files changed, 3 insertions(+) diff --git a/checks/Pruef-Prompt.txt b/checks/Pruef-Prompt.txt index 5369c97..4d95334 100644 --- a/checks/Pruef-Prompt.txt +++ b/checks/Pruef-Prompt.txt @@ -34,6 +34,7 @@ Schritt 2 – Vorgehen für jede Annahme: - „mindestens“ / „höchstens“ / „genau“ müssen als ≥ / ≤ / = abgebildet sein. - Das Modell darf nichts verbieten, was der Text erlaubt (stricter_than_task), und nichts erlauben, was der Text verbietet (weaker_than_task). - Eine Annahme darf dem Text nicht widersprechen (contradicts_task). + - Definiert der Text eine Größe ausdrücklich (z. B. „\(l_i\), \(u_i\) sind die untere und obere Grenze des investierten Betrags“), ist das keine Unklarheit: eine Annahme, die dieser Definition widerspricht (z. B. \(x_i\) als Stückzahl statt als Betrag), ist immer contradicts_task – auch wenn eine alternative Lesart formuliert wurde. Der Hinweis auf die zweite Lesart im Feld alternative ersetzt nicht die Pflicht, der ausdrücklichen Definition zu folgen. 4. Prüfe die zweite Lesart im Feld alternative: Stützt der Aufgabentext sie besser als die gewählte Annahme, ist die Annahme falsch – vergib dann contradicts_task, stricter_than_task oder weaker_than_task und gib in correction die Lesart an, der das Modell folgen muss. Steht dort „keine zweite Lesart“, obwohl der Text die Stelle offen lässt, gehört das in die Begründung. 5. Vergib genau ein Urteil (verdict): - justified: Text ist unklar, Annahme ist plausibel und textkonform. diff --git a/modeling/Routing-und-Extraktions-Prompt.txt b/modeling/Routing-und-Extraktions-Prompt.txt index 9d98ac6..59cab0b 100644 --- a/modeling/Routing-und-Extraktions-Prompt.txt +++ b/modeling/Routing-und-Extraktions-Prompt.txt @@ -48,6 +48,7 @@ Anforderungen an die Ausgabe: - Liegt ein bereits erfasstes Verständnis bei, übernimm dessen Zahlen: JEDER Wert aus facts gehört in das extracted_values des zugehörigen Parameters (bei Matrizen und Vektoren die vollständige Werteliste, nicht nur ein Beispiel). Ein Modell ohne Zahlen lässt sich nicht nachrechnen. [→ UNUSED_FACTS] - Jeder Parameter nennt im Feld unit seine Einheit („€“, „€/t“, „h“, „Stück“, „%“, „dimensionslos“), und alle Terme der Zielfunktion müssen dieselbe haben. Mischt die Aufgabe relative mit absoluten Größen, rechne um – Risiko \(\sigma^2 w^2\) mit dem Kapital \(B\) multiplizieren, wenn Kosten in Euro stehen – und weise die gewählte Einheit als Annahme aus. [→ MIXED_OBJECTIVE_UNITS] - Die Zielfunktion muss genau die im Text gefragte Größe in deren Maßstab liefern, nicht nur eine Größe mit derselben optimalen Lösung (z. B. Standardabweichung/Volatilität ≠ Varianz, Gewinn nach Fixkosten ≠ Deckungsbeitrag). +- Ein Term der Zielfunktion, der für jede zulässige Lösung denselben Wert hat (entscheidungsunabhängig, z. B. Einkaufspreis × fest vorgegebener Gesamtbedarf) und dessen Zahlenwert der Text nicht nennt: du darfst ihn weglassen oder als Symbol mitführen. Beides ist richtig, aber weise in BEIDEN Fällen eine Annahme aus, die begründet, warum der Zielwert diesen Term nicht bzw. nur symbolisch enthält und warum die optimale Entscheidung davon unberührt ist – sonst fordert die Prüfung eine Korrekturrunde. MODELLGRENZEN (eine Lösung muss in der Wirklichkeit möglich sein): - Jede Variable bekommt einen Definitionsbereich, den die Wirklichkeit zulässt: Mengen, Zeiten, Stückzahlen und Kapital nicht negativ, Anteile in \([0, 1]\), Zeiten durch die verfügbare Zeit begrenzt. diff --git a/solving/Solver-Prompt.txt b/solving/Solver-Prompt.txt index 725ca6a..7bcbd82 100644 --- a/solving/Solver-Prompt.txt +++ b/solving/Solver-Prompt.txt @@ -86,6 +86,7 @@ Ergebnisausgabe: - text beantwortet die Frage in ihrer eigenen Sprache und Einheit, nicht im Modelljargon: „Die Maschine wird am Ende von Jahr 1 ersetzt; die Kosten betragen dann 29 Geldeinheiten.“ Ein bis drei Sätze. - Auch bei Status infeasible oder unbounded wird JEDE Teilfrage beantwortet – dann lautet die Antwort, dass und warum die Aufgabe keine zulässige Lösung hat (welche Bedingungen sich widersprechen). Eine unbeantwortete Frage ist schlechter als die Antwort „unlösbar“. - Teilfragen ohne Rechnung (formulieren, zeichnen, erklaeren) werden ebenfalls beantwortet – dort beschreibt der Text das aufgestellte Modell bzw. die Struktur der Zeichnung in Worten. + - Verlangt die Aufgabe ein Handverfahren (z. B. Simplex-Iterationen, graphische Lösung), das dieses Programm nicht zeigt, sagt der Antwortsatz das ausdrücklich – z. B. „Die Simplex-Iterationen werden hier nicht ausgegeben; das Programm löst das Modell direkt mit dem Simplex-Verfahren.“ - Verwende NUR Zahlen, die dieses Programm berechnet hat oder die im Aufgabentext stehen. [→ check_answers] - Ebenso bei Einheiten: nur solche, die im Aufgabentext oder in beigelegten Daten stehen. Nennt der Text keine, steht die Zahl ohne Einheit („Der kleinste Zielwert ist 459.“); GE bzw. ME nur, wenn der Text von Kosten, Preisen bzw. Mengen spricht. [→ check_answer_units] - WICHTIG, häufigster Fehler: Sobald eine Antwort einen Vergleichs- oder Zwischenwert nennt, muss dieser Wert auch in einer Ergebnistabelle stehen. Beobachtet: „der beste Weg kostet 29, die Alternative 30“ – die 30 stand nirgends, der Leser konnte sie nicht prüfen. Richtig ist eine zusätzliche Tabelle („Alle Wege“, „Vergleich der Varianten“, „Kostenbestandteile“) mit genau diesen Zahlen. Ebenso für Summen wie „insgesamt 2,32 % Gebühren“: entweder eine Summenzeile in der Tabelle oder die Zahl weglassen.