feat: Die Größe bepreist den ganzen Teilbaum — Kinder zählen nicht obendrauf (D69)
Der Preis eines Knotens ist seine angegebene (oder D66-geschätzte) Größe; die frühere Rekursion (eigene Größe plus Summe/Minimum der Kinder) zählte doppelt und bestrafte sorgfältig zerlegte Pakete — eine zerlegte S-Alternative verlor gegen ein grobes L. Das Vereinigungs-Maß der Closure-Suche (D42) zählt je Knoten nur noch die Marge über seine nötigen Teilpakete hinaus. Mitgelieferter Plan wählt identisch (per Vergleich gemessen); SPEC §9 und llms.md nachgezogen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
7278e74393
commit
4aaa19becd
@@ -65,10 +65,15 @@ describe('Kosten — Erledigtes zählt nicht mehr', () => {
|
||||
expect(ownCost(a)).toBe(0);
|
||||
});
|
||||
|
||||
it('zieht nur die eigenen Kosten ab, nicht den Teilbaum', () => {
|
||||
it('der erledigte Knoten bepreist 0; sein offenes Kind bleibt auf dem Pfad', () => {
|
||||
/* Seit D69 bepreist die Größe den ganzen Teilbaum — der erledigte
|
||||
Elternknoten kostet nichts mehr, das offene Kind bleibt trotzdem
|
||||
nötig und behält seinen eigenen Preis. */
|
||||
const [n] = roots(`[x] Eltern (L)
|
||||
- [ ] Kind (S)`);
|
||||
expect(cheapestCost(n)).toBe(cheapestCost(roots('[ ] Kind (S)')[0]));
|
||||
expect(cheapestCost(n)).toBe(0);
|
||||
const set = computeCheapSet([n]);
|
||||
expect(set.has(n.children[0])).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user