Strafen können durch benannte Profile festgelegt werden
This commit is contained in:
+51
-33
@@ -1,38 +1,56 @@
|
||||
# Strafpunkte fuer die Trennung einer Gruppe:
|
||||
# Aufbau: Anzahl der Trennungen = { Gruppengroesse:Strafpunkte, .. }
|
||||
# Deutlich hoeher als frueher, damit eine Trennung teurer ist als der Gewinn,
|
||||
# einen Tisch dafuer teilbelegt zu lassen (sonst werden Gruppen getrennt,
|
||||
# obwohl daneben leere Tische stehen).
|
||||
[Trennung]
|
||||
1={ 2:-25, 3:-22, 4:-18, 6:-14, 8:-12, 10:-10 }
|
||||
2={ 3:-40, 4:-30, 6:-22, 8:-18, 10:-14 }
|
||||
3={ 4:-60, 6:-40, 8:-30, 10:-20 }
|
||||
# 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).
|
||||
|
||||
# Wieviele Strafpunkte bekommt man
|
||||
# wenn zwei Gruppen nicht am Nachbartisch sitzen
|
||||
# wenn einer aus einer Gruppe allein sitzen muss
|
||||
[Globals]
|
||||
# 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
|
||||
|
||||
# TischWertigkeiten sind Strafpunkte fuer freie Sitze an einem Tisch, je nach
|
||||
# Anzahl freier Plaetze (fehlt ein exakter Eintrag, gilt der naechstkleinere).
|
||||
# Ziel: teilbelegte Tische sind am schlechtesten (dort passt keine ganze
|
||||
# Gruppe mehr hin und die Sitzenden haben leere Nachbarplaetze), daher steigt
|
||||
# die Strafe mit den freien Plaetzen an (1..7 frei: -3 -> -6). Ein *komplett*
|
||||
# leerer Tisch ist etwas besser als ein halbleerer (-4 bei 8 frei), weil ein
|
||||
# leerer Tisch als Ganzes fuer eine Gruppe frei bleibt - er soll aber nicht
|
||||
# gratis sein, damit sich das Zusammenziehen von Gruppen lohnt.
|
||||
|
||||
# Strafpunkte fuer den Abstand zwischen getrennten Teilen einer Gruppe.
|
||||
# Wird eine Gruppe auf mehrere Tische aufgeteilt, ist ein grosser raeumlicher
|
||||
# Abstand zwischen den Teilen viel schlechter als ein kleiner.
|
||||
# Der Abstand wird als normierter Wert 0..100 berechnet: Bezugsgroesse ist die
|
||||
# maximale Ausdehnung der Tischanordnung (Breite oder Laenge). Ein Abstand von
|
||||
# 100 heisst also, dass ein Gruppenteil ganz links/oben und der andere ganz
|
||||
# rechts/unten sitzt.
|
||||
# Faktor = Strafpunkte je normierter Abstandseinheit. Bei Faktor=-0.2 kostet
|
||||
# der maximal moegliche Abstand (100) demnach -20 Punkte.
|
||||
[Abstand]
|
||||
Faktor=-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
|
||||
|
||||
Reference in New Issue
Block a user