Andreas Bruns

Softwareentwicklung für Oldenburg und Bremen

Crosstable-Generator erleichtert die Platzverteilung

Auch dieses Jahr fand im Landhaus Dünsen das Crosstable-Dinner ‚Martinsgans‘ des Harpstedter Freiberufler-Stammtisches statt. Das Event war ein voller Erfolg und das Essen wieder hervorragend. Organisatorin Katrin Feldner hat den Verlauf des Abends hier zusammengefasst.

Während des Crosstable-Dinners im letzten Jahr erwähnte Katrin, dass eine gute Platzverteilung nicht so einfach zu gewährleisten sei:

  • die Teilnehmer einer Essenrunde sollen nicht schon in einer vorherigen Runde miteinander gegessen haben
  • ein Teilnehmer möchte nicht an einem Tisch sitzen, an dem er bereits zuvor gesessen hat

Für das diesjährige Crosstable-Dinner habe ich einen Crosstable-Generator als Web-Anwendung entwickelt, der unter http://crosstabledinner.de für eigene Crosstable-Dinners genutzt werden kann.

Crosstable-Dinner: Konfiguration

Crosstable-Dinner: Konfiguration

Crosstable-Dinner: generiertes Ergebnis

Crosstable-Dinner: generiertes Ergebnis

Crosstable-Dinner: alle Teilnehmer

Crosstable-Dinner: alle Teilnehmer

Crosstable-Dinner: Teilnehmer der ersten Runde

Crosstable-Dinner: Teilnehmer der ersten Runde

Während der Entwicklung ist mir aufgefallen, dass mein erster naiver Lösungsansatz für ca. 28 Teilnemer, 7 Tische und 3 Runden keine Lösung findet. Folgende Lösungsmöglichkeiten gibt es beispielsweise:

  • erzeuge so lange zufallsmäßig Crosstables, bis die erzeugten Crosstables perfekt sind (also keine Fehler aufweisen)
    • Vorteil: einfach umzusetzen
    • Nachteil: kein Abbruch, wenn Crosstables ohne Fehler nicht gefunden werden
  • Verwendung eines Backtracking-Algorithmus, um eine Lösung zu finden
    • Vorteil: falls es eine perfekte Lösung gibt, wird sie gefunden
    • Nachteil: die Umsetzung ist etwas anspruchsvoller und die Laufzeit ist nicht absehbar
  • erzeuge und bewerte eine feste Anzahl zufälliger Crosstables und verwende die Besten
    • Vorteil: es wird eine gute Lösung in absehbarer Zeit gefunden
    • Nachteil: eine vorhandene perfekte Lösung wird eventuell nicht gefunden

Ich habe mich abschließend für die letzte Lösungsidee entschieden und dabei folgende Techniken eingesetzt:

Jetzt plant mal schnell ein Crosstable-Dinner, ein Dating-Event oder ein Kartenspiel-Turnier und nutzt den Crosstable-Generator. Falls noch jemand Verbesserungsvorschläge hat (es gibt schon welche), dann bitte bei mir melden 😉

Kommentare sind geschlossen.