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 sein

    Nehmen 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?


Anmelden zum Antworten