Moin!
Die Aufgabe:
27 Personen sollen an 20 Tagen in zwei Gruppen aufgeteilt werden, deren Mitglieder von Tag zu Tag wechseln sollen.
Jedes Gruppenmitglied soll an 10 Tagen der Gruppe 1 und an 10 Tagen der Gruppe 2 zugehören.
An jedem Tag darf die Gruppenstärke von Gruppe 1 die Mitgliederzahl von 13 nicht unterschreiten und/oder von 14 nicht übersteigen.
Klingt als (langweilige) Ausgangslage beispielsweise nach so einem Bitfeld:
1111111111 0000000000
1111111111 0000000000
1111111111 0000000000
1111111111 0000000000
1111111111 0000000000
0000000000 1111111111
0000000000 1111111111
0000000000 1111111111
0000000000 1111111111
0000000000 1111111111
0000000000 1111111111
(stell' dir entsprechend 27 Zeilen vor, die Hälfte wie im oberen Bereich, die andere Hälfte wie unten.)
Dieses Bitfeld erfüllt zwei deiner Bedingungen:
1. Jeder ist an 10 Tagen in Gruppe 1 und an den anderen 10 Tagen in Gruppe 2.
2. Jede Gruppe ist minimal 13 und maximal 14 Personen stark (dargestellt: minimum 5 Personen, Maximum 6 Personen).
Fehlt nur noch "unterschiedliche Zusammensetzung jeden Tag". Da würde ich im Zweifel einfach die 1-Bits mit 0-Bits vertauschen und gucken, was dann passiert. Ich vermute, ein Tausch in diesem Feld führt dazu, dass zur Erreichung der zwei oben genannten Bedingungen ein Gegentausch durchgeführt werden muß. Tauscht man beispielsweise eine 1 von unten rechts nach unten links, wird im oberen Feldbereich in der gleichen Spalte von links nach rechts getauscht werden. Im Prinzip wird also immer ein positionsmäßiger Vierertausch durchgeführt - und das eben so lange, bis das Feld hinreichend ungeordnet ist.
Du hast nicht geschrieben, dass die Teilnehmer an jedem Tag mit einer unterschiedlichen Gruppenzusammensetzung zusammensein sollen, Dopplungen wären also theoretisch möglich. Das wäre aber wiederum ein Ansatzpunkt für Vertauschungen, denn eine Zeile, die doppelt vorkommt, erfordert eben für eine der zwei Zeilen noch einen weiteren Umtausch.
So im Sinne von "Solange Zeilen doppelt sind, tausche einmal vier Bitplätze und prüfe erneut".
Für jede Anregung bin ich dankbar.
Wer stellt denn solche Aufgaben?
- Sven Rautenberg
My sssignature, my preciousssss!