Faire Aufteilung von Arbeit
-
Ich versuche gerade, eine Möglichkeit zu finden, Arbeitstage auf verschiedene Arbeitsgruppen zu verteilen. Folgendes muss beachtet werden:
- w Wochentage, e Wochenendtage und f Feiertage sollen verteilt werden
- Es gibt g Arbeitsgruppen mit m(g) Mitarbeitern
- Die Aufteilung soll möglichst fair seinNehmen wir als Beispiel:
w = 5, e = 3, f = 2 g = 3 m(g1) = 1, m(g2) = 2, m(g3) = 3
Mein erster Ansatz ist eine Gleichverteilung mit Berücksichtigung der Anzahl an Mitarbeitern:
w(g1) = m(g1) / SUM_i(m(gi)) * w = 1/6*5 = 0.833 ...
Das Ergebnis:
G W E F 1 0.833 0.500 0.333 2 1.667 1.000 0.667 3 2.500 1.500 1.000
Jetzt muss ich daraus die Aufteilung in Integern machen. Runden der einzelnen Werte alleine hilft nicht, da die Summe gleich bleiben muss. Feiertage sollten mehr "wert" sein als Wochentage etc. Ich habe mir folgende Gewichtung überlegt:
p(w) = 1, p(e) = 1.2, p(f) = 1.5
Die von den Gruppen abzuleistenden abstrakten Leistungen P_soll sind dann:
G P_soll 1 0.833 * 1.0 + 0.500 * 1.2 + 0.333 * 1.5 = 1.883 2 1.667 * 1.0 + 1.000 * 1.2 + 0.667 * 1.5 = 3.868 3 2.500 * 1.0 + 1.500 * 1.2 + 1.000 * 1.5 = 5.800
Möglich wäre folgende Aufteilung, die mir subjektiv gerecht erscheint:
G W E F P_ist 1 1 1 0 2.2 2 3 1 0 4.2 3 1 1 2 5.2
Wie kann ich mathematisch eine Aufteilung finden, bei der die Funktion SUM_i((P_soll_i - P_ist_i)^2) minimiert wird? Oder ist vielleicht eine andere Funktion sinnvoller?
-
Ohne genauer darüber nachgedacht zu haben: Wäre das nicht ein Fall für Linear Programming?