Es dürfen keine Zeiten nach Möglichkeit offen bleiben.
Würde das Tool z.B. chronologisch von oben nach unte zufällig die Zeiten wählen, dann würde der letzte PC4 zu keinen Zeiten mehr verfügbar sein.
Um bei meinem Beispiel zu bleiben, wenn es chronologisch wäre würde folgendes passieren:
PC1 1 1 1 0 0 0 0 0 0 0
PC2 0 X 0 0 0 0 0 0 1 1 <- Hier macht es zum ersten mal rums, da H2 belegt ist, aber 3 Verfügbarkeiten sein sollen (siehe Bild)
PC3 0 0 0 1 0 0 0 1 0 0
PC4 Hätte keine offenen Zeiten mehr, da H1-H4 bereits vergeben sind
Das wäre z.B. ein schlechter Algorithmus.
Ich brauche halt die beste Überlegung, wie ich mir die Stunden zur Verfügbarkeit (H1-H4) in Relation zu den Verfügbarkeiten der PC´s am besten heraussuche, dass nach Möglichkeit am Ende jeder PC im Plan steht.
Daher kam mir die Idee die PCs zu priorisieren nach der Gesamtverfügbarkeit (Alle 1en von H1-H9 addiert) und dann :
Beispiel an H1:
1.) Zu schauen ist H1 noch frei ?
Wenn ja dann wird geschaut ob PC3 auch H1 frei hat.
Wenn das der Fall ist, geht PC4 weiter und guckt bei H2 ob PC3 auch H2 noch nehmen kann.
Das "Problem" bzw eher suboptimale an meiner Überlegung ist halt, dass es dann keine optimale Berechnung ist !
Denn wenn der Algorithmus so vorgeht wie ich es vorschlage (Den PC mit der nächst höheren Priorität [Welche sich durch alle 1en von H1-H9 addiert bestimmt] abgleicht), kann es trotzdem vorkommen dass z.B. PC2 auch bei H1 frei ist aber auch NUR DORT verfügbar ist.
Wenn PC3 bei H1 keine Schicht hat, würde sich PC1 bei H1 jedoch eintragen und somit würde H1 dem Rest nicht mehr zur Verfügung stehen.
Ich hoffe ich konnte es treffend erklären
Eigentlich suche ich nach eine Methode die Quasi alle PC1 bis PC4 abgleicht und dann möglichst immer versucht ALLE einzuplanen, ohne dass jemand übrig bleibt bzw. unbesetze H1-H9 entstehen.