6710d4f06a
Weniger vermeidbare Gruppentrennungen:
- strafen.cfg: Tischbesetzung bestraft jetzt gestaffelt nach freien
Plaetzen (teilbelegte Tische am teuersten, mit Fallback auf den
naechstkleineren Eintrag), Trennungsstrafen deutlich erhoeht - so
werden Gruppen nicht mehr getrennt, obwohl leere Tische danebenstehen
- gibPunkte('Tischbesetzung') mit Naechst-kleiner-Fallback
- mutieren() setzt geraeumte Gruppen groesste-zuerst neu
(GruppenSetzen(GrosseZuerst=True)), damit grosse Gruppen die frei
gewordenen ganzen Tische bekommen und wieder zusammenkommen
(uebrig bleiben nur physisch unvermeidbare Trennungen, Gruppe > Tisch)
Abstammungsbaum (neuer Schalter --show-lineage -> Abstammung.svg):
- neue Klasse ga.Abstammung zeichnet den vollen Mutationsbaum aller
Loesungen; der Ast der finalen besten Loesung ist hervorgehoben und
mit ihrer Id beschriftet
- hierarchische Loesungs-Ids (Farm._WurzelId/_KindId): Wurzel '7',
Mutationskind '7.2', dessen Kind '7.2.1' - die ganze Abstammung ist
direkt aus der Id ablesbar
Tests (15 gruen), README und CLAUDE.md aktualisiert; Beispiele mit den
neuen Strafen und beiden Grafiken neu berechnet.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
800 B
800 B
| 1 | AA | A | Dipl. Ing. = Hof 1 | Tisch 2 | Nummer 2 |
|---|---|---|---|---|---|
| 2 | AA | A | Dipl. Ing. = Hof 1 | Tisch 2 | Nummer 3 |
| 3 | AA | A | Dipl. Ing. = Hof 1 | Tisch 2 | Nummer 4 |
| 4 | AA | A | Dipl. Ing. = Hof 1 | Tisch 2 | Nummer 5 |
| 5 | AA | A | Dipl. Ing. = Hof 1 | Tisch 2 | Nummer 6 |
| 6 | AA | A | Dipl. Ing. = Hof 1 | Tisch 3 | Nummer 2 |
| 7 | AA | A | Dipl. Ing. = Hof 1 | Tisch 3 | Nummer 3 |
| 8 | AA | A | Dipl. Ing. = Hof 1 | Tisch 3 | Nummer 4 |
| 9 | AA | A | Dipl. Ing. = Hof 1 | Tisch 3 | Nummer 5 |
| 10 | AA | A | Dipl. Ing. = Hof 1 | Tisch 3 | Nummer 6 |
| 11 | BB | B | Prof. = Hof 1 | Tisch 1 | Nummer 2 |
| 12 | BB | B | Prof. = Hof 1 | Tisch 1 | Nummer 3 |
| 13 | BB | B | Prof. = Hof 1 | Tisch 1 | Nummer 4 |
| 14 | BB | B | Prof. = Hof 1 | Tisch 1 | Nummer 5 |
| 15 | CC | C | Dr. = Hof 1 | Tisch 4 | Nummer 2 |
| 16 | CC | C | Dr. = Hof 1 | Tisch 4 | Nummer 3 |
| 17 | CC | C | Dr. = Hof 1 | Tisch 4 | Nummer 4 |
| 18 | CC | C | Dr. = Hof 1 | Tisch 4 | Nummer 5 |
| 19 | CC | C | Dr. = Hof 1 | Tisch 4 | Nummer 6 |