Files
platz/work/hochzeit/Sitzplatzverteilung.svg
T
Michael Stangl 644f61ef6b Adaptiver GA-Zyklus, Pool-Groessen-Panel, Konfig direkt aus cfg-Dateien
Zyklus/Farm:
- neuer adaptiver Modus: grosse Startpopulation, die je Generation
  schrumpft (Start/Schrumpfung/MinPopulation) und bei Konvergenz stoppt
  (Geduld Generationen ohne Verbesserung >= Schwelle, max MaxGenerationen)
- Zyklus.laden erkennt adaptives Profil am Feld 'Start' (Modus adaptiv),
  sonst klassisch (Abfolge/Anzahl); Farm._LaufStatisch/_LaufAdaptiv
- neue Trunkierungs-Selektion Farm.PopulationBegrenzen
- [Adaptiv]-Profil in zyklus.cfg (dokumentiert)

Entwicklungsgrafik:
- zweites Panel unter dem Verlauf zeigt die Anzahl erzeugter
  Verteilungen im Pool je Schritt (gemeinsame Zeitachse)

Konfiguration:
- platz.cfg entfernt; zyklus.cfg/strafen.cfg werden direkt aus
  $PLATZ_CFG geladen
- neuer Schalter --zyklus-art (Default Adaptiv) waehlt das GA-Profil
- web/main.py analog: direktes Laden, Profil via PLATZ_ZYKLUSART

Doku (README.md, CLAUDE.md) und Tests entsprechend aktualisiert;
Beispiele mit dem Adaptiv-Default neu berechnet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 14:31:59 +02:00

178 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="995.887" height="667.258" viewBox="0 0 995.887 667.258">
<rect width="100%" height="100%" fill="white"/>
<polyline points="251.472,415.786 251.472,251.472" fill="none" stroke="#3cb44b" stroke-width="12" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.5"/>
<polyline points="567.982,254.238 415.786,251.472" fill="none" stroke="#911eb4" stroke-width="12" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.5"/>
<circle cx="87.1573" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="87.1573" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
<text x="87.1573" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">7</text>
<circle cx="744.415" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="744.415" cy="216.979" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="774.288" cy="268.718" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="714.543" cy="268.718" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="744.415" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
<text x="744.415" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">6</text>
<circle cx="251.472" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="251.472" cy="381.293" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="281.344" cy="433.033" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="221.6" cy="433.033" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="251.472" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
<text x="251.472" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">8</text>
<circle cx="87.1573" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="87.1573" cy="216.979" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
<circle cx="117.029" cy="234.225" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
<circle cx="117.029" cy="268.718" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
<circle cx="87.1573" cy="285.965" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
<circle cx="57.2852" cy="268.718" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
<circle cx="57.2852" cy="234.225" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
<circle cx="87.1573" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
<text x="87.1573" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">2</text>
<circle cx="251.472" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="251.472" cy="216.979" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="281.344" cy="234.225" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="281.344" cy="268.718" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="251.472" cy="285.965" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="221.6" cy="268.718" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="221.6" cy="234.225" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="251.472" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
<text x="251.472" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">3</text>
<circle cx="908.73" cy="415.786" r="48.4" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="908.73" cy="389.386" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="931.593" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="931.593" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="908.73" cy="442.186" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="885.867" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="885.867" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="908.73" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
<text x="908.73" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">17</text>
<circle cx="580.101" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="580.101" cy="216.979" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="607.069" cy="229.966" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
<circle cx="613.729" cy="259.147" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
<circle cx="595.067" cy="282.549" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="565.135" cy="282.549" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="546.472" cy="259.147" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="553.133" cy="229.966" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="580.101" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
<text x="580.101" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">5</text>
<circle cx="415.786" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="415.786" cy="216.979" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="440.177" cy="227.081" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="450.28" cy="251.472" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="440.177" cy="275.862" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="415.786" cy="285.965" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="391.396" cy="275.862" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="381.293" cy="251.472" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="391.396" cy="227.081" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="415.786" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
<text x="415.786" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">4</text>
<circle cx="415.786" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="415.786" cy="381.293" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="440.177" cy="391.396" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
<circle cx="450.28" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="440.177" cy="440.177" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="415.786" cy="450.28" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="391.396" cy="440.177" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="381.293" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="391.396" cy="391.396" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="415.786" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
<text x="415.786" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">9</text>
<circle cx="580.101" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="580.101" cy="381.293" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="604.491" cy="391.396" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="614.594" cy="415.786" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="604.491" cy="440.177" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="580.101" cy="450.28" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="555.711" cy="440.177" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="545.608" cy="415.786" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="555.711" cy="391.396" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="580.101" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
<text x="580.101" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">10</text>
<circle cx="744.415" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="744.415" cy="381.293" r="12" fill="#469990" stroke="black" stroke-width="1"/>
<circle cx="768.806" cy="391.396" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
<circle cx="778.909" cy="415.786" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
<circle cx="768.806" cy="440.177" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
<circle cx="744.415" cy="450.28" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
<circle cx="720.025" cy="440.177" r="12" fill="#469990" stroke="black" stroke-width="1"/>
<circle cx="709.922" cy="415.786" r="12" fill="#800000" stroke="black" stroke-width="1"/>
<circle cx="720.025" cy="391.396" r="12" fill="#800000" stroke="black" stroke-width="1"/>
<circle cx="744.415" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
<text x="744.415" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">11</text>
<circle cx="87.1573" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="87.1573" cy="545.608" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
<circle cx="111.548" cy="555.711" r="12" fill="#000075" stroke="black" stroke-width="1"/>
<circle cx="121.651" cy="580.101" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
<circle cx="111.548" cy="604.491" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
<circle cx="87.1573" cy="614.594" r="12" fill="#000075" stroke="black" stroke-width="1"/>
<circle cx="62.7669" cy="604.491" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
<circle cx="52.664" cy="580.101" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
<circle cx="62.7669" cy="555.711" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
<circle cx="87.1573" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
<text x="87.1573" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">12</text>
<circle cx="251.472" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="251.472" cy="545.608" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="275.862" cy="555.711" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="285.965" cy="580.101" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="275.862" cy="604.491" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="251.472" cy="614.594" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="227.081" cy="604.491" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
<circle cx="216.979" cy="580.101" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="227.081" cy="555.711" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
<circle cx="251.472" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
<text x="251.472" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">13</text>
<circle cx="415.786" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="415.786" cy="545.608" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
<circle cx="440.177" cy="555.711" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
<circle cx="450.28" cy="580.101" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
<circle cx="440.177" cy="604.491" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
<circle cx="415.786" cy="614.594" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
<circle cx="391.396" cy="604.491" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
<circle cx="381.293" cy="580.101" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
<circle cx="391.396" cy="555.711" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
<circle cx="415.786" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
<text x="415.786" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">14</text>
<circle cx="580.101" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="580.101" cy="545.608" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="604.491" cy="555.711" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
<circle cx="614.594" cy="580.101" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
<circle cx="604.491" cy="604.491" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="580.101" cy="614.594" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
<circle cx="555.711" cy="604.491" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
<circle cx="545.608" cy="580.101" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
<circle cx="555.711" cy="555.711" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
<circle cx="580.101" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
<text x="580.101" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">15</text>
<circle cx="415.786" cy="87.1573" r="73.0009" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="415.786" cy="36.1564" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="441.287" cy="42.9892" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
<circle cx="459.954" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="466.787" cy="87.1573" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="459.954" cy="112.658" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="441.287" cy="131.325" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
<circle cx="415.786" cy="138.158" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="390.286" cy="131.325" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
<circle cx="371.618" cy="112.658" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="364.785" cy="87.1573" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="371.618" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="390.286" cy="42.9892" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="415.786" cy="87.1573" r="12" fill="white" fill-opacity="0.75"/>
<text x="415.786" y="87.1573" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">1</text>
<circle cx="908.73" cy="251.472" r="77.1573" fill="white" stroke="black" stroke-width="1.5"/>
<circle cx="908.73" cy="196.315" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="934.363" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="954.124" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="963.485" cy="244.823" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="960.303" cy="271.031" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="945.306" cy="292.758" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="921.93" cy="305.026" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="895.53" cy="305.026" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="872.154" cy="292.758" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="857.157" cy="271.031" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="853.975" cy="244.823" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="863.336" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="883.097" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
<circle cx="908.73" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
<text x="908.73" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">16</text>
</svg>