Files
platz/cfg/strafen.cfg
T
2026-07-15 17:05:13 +02:00

57 lines
3.1 KiB
INI

# Strafpunkte-Profile ("Vorgehen") fuer die Bewertung einer Sitzplatzverteilung.
#
# Jede Sektion ist EIN vollstaendiges Bewertungsprofil mit allen Angaben. So
# lassen sich mehrere Vorgehensweisen nebeneinander pflegen und speichern. Per
# Schalter --strafen <Sektionsname> waehlt man ein Profil; ohne Schalter wird
# [default] verwendet.
#
# Schluessel je Profil:
# Anzahl_Trennungen_N = { Gruppengroesse:Strafpunkte, .. }
# Strafpunkte fuer das Aufteilen einer Gruppe (N = Anzahl der Trennungen,
# also auf N+1 Tische verteilt), gestaffelt nach Gruppengroesse. Fehlt ein
# exakter Gruppengroessen-Eintrag, wird auf die naechstkleinere Groesse
# zurueckgegriffen. Mindestens Anzahl_Trennungen_1 sollte gesetzt sein.
# NichtNachbar = Strafe, wenn zwei Gruppenteile nicht am Nachbartisch sitzen
# Allein = Strafe, wenn eine Person ohne Gruppenmitglied am Tisch sitzt
# TischWertigkeiten = { freiePlaetze:Strafpunkte, .. } fuer freie Sitze an einem
# (teil-)belegten Tisch. Fehlt ein exakter Eintrag, gilt der
# naechstkleinere. Teilbelegte Tische sind am schlechtesten
# (dort passt keine ganze Gruppe mehr hin), daher steigt die
# Strafe mit den freien Plaetzen; ein komplett leerer Tisch
# (hoechster Schluessel) ist etwas besser, aber nicht gratis,
# damit sich das Zusammenziehen von Gruppen lohnt.
# Optional; fehlt der ganze Schluessel, werden freie Plaetze
# gar nicht bestraft -> mehr Teilbelegungen moeglich.
# AbstandFaktor = Strafpunkte je normierter Abstandseinheit (0..100) zwischen
# getrennten Teilen einer Gruppe. Der Abstand ist auf die
# maximale Ausdehnung der Tischanordnung normiert (100 =
# ein Teil ganz links/oben, der andere ganz rechts/unten).
# AbstandFaktor=-0.2 kostet den Maximalabstand also -20.
# Optional; fehlt der Schluessel, wird der Abstand nicht
# bestraft (Faktor 0).
# Standardprofil: Trennungen sind bewusst teuer, damit eine Gruppe lieber
# zusammen an einem teilbelegten Tisch sitzt, als neben einem leeren getrennt zu
# werden.
[default]
Anzahl_Trennungen_1={ 2:-25, 3:-22, 4:-18, 6:-14, 8:-12, 10:-10 }
Anzahl_Trennungen_2={ 3:-40, 4:-30, 6:-22, 8:-18, 10:-14 }
Anzahl_Trennungen_3={ 4:-60, 6:-40, 8:-30, 10:-20 }
NichtNachbar=-3
Allein=-30
TischWertigkeiten={ 1:-3, 2:-3, 4:-5, 6:-6, 8:-4 }
AbstandFaktor=-0.2
# Beispiel fuer ein alternatives Vorgehen: Trennungen sind guenstiger, der
# Abstand wird nicht bestraft, und freie Plaetze werden gar nicht bestraft
# (TischWertigkeiten fehlt bewusst) — so sind mehr Teilbelegungen moeglich.
# Nuetzlich fuer grosse Saele, in denen sich Gruppen kaum ungeteilt platzieren
# lassen. Aufruf: --strafen locker
[locker]
Anzahl_Trennungen_1={ 2:-12, 3:-10, 4:-8, 6:-6, 8:-5, 10:-4 }
Anzahl_Trennungen_2={ 3:-20, 4:-16, 6:-12, 8:-9, 10:-7 }
Anzahl_Trennungen_3={ 4:-30, 6:-22, 8:-16, 10:-12 }
NichtNachbar=-2
Allein=-20
AbstandFaktor=0.0