Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Algorithmus um Mitarbeiter gerecht auf 365 Tage zu verteilen
Delete - Do 03.05.12 15:26
Titel: Algorithmus um Mitarbeiter gerecht auf 365 Tage zu verteilen
Hallo,
ich habe heute ein Problem bei dem ich keinen richtigen Ansatz finde.
Nicht die Programmierung an sich, sondern wie man so ein Programm aufbauen könnte.
Ich bin dabei ein Programm zu schreiben das eine variable Anzahl Mitarbeiter gerecht auf alle 365 Tage eines Jahres verteilt. Es soll dabei auch Samstage/Sonntage und Feiertage berücksichtigen. Außerdem soll es die Möglichkeit geben, durch eine Art "Gewichtung", Mitarbeiter auf bestimmte Sondertage(Feiertag/Wochenende) und Wochentage stärker zu verteilen.
Hat schonmal jemand so etwas gemacht? oder hat jemand eine Idee für einen Lösungsansatz?
Über einen Lösungsansatz oder Tip würde ich mich freuen.
Gruß
Frank
bole - Do 03.05.12 16:31
So was ähnliches habe ich auch mal angefangen... allerdings hatte ich nicht die Musse dies fertigzustellen.
Wahrscheinlich sind dabei ja noch diverse andere Faktoren zu beachten sonst könnte man ja einfach die Anzahl Mitarbeiter durch die Anzahl Wochenende teilen.
Meiner Meinung nach miuss man Zusätzlich noch folgendes beachten:
- Gesetzliche Vorgaben (wahrscheinlich darf man nicht nur eine bestimmte Anzahl Tage am Stück arbeiten)
- Zeitsaldo (MA mit viel Überzeit sollten nicht am Weekend noch mehr anhäufen)
- MA die bereits viele Wochenenddienste geleistet haben sollten weniger ausgewählt werden
- Ferienplan (Tage wo kein Wochenenddienst geleistet werden kann)
- persönliche Präferenzen (MA die gerne am Weekend arbeiten)
Man könnte diese Liste noch um einiges erweitern...
Ich habe für jeden Tag zu jedem MA eine Zahl aus diesen Faktoren berechnet, der jenige mit der tiefsten Zahl hat gewonnen und wurde ausgewählt
Beispiel:
Gesetzlich Vorgaben erfüllt = 0 /nicht erfüllt 99999999 --> darf nicht ausgewählt werden
Ferienplan (kann Arbeiten) = 0 /nicht arbeiten 99999999 --> darf nicht ausgewählt werden
Zeitsaldo = anz Stunden * - FaktorA
Anzahl geleistet WE = anz WE * - FaktorB
pers Präferenzen = Wert * FaktorC
Alle diese Werte addiert
Dieses System steht und fällt mit dem Wert der 3 Faktoren. Das zu programmieren ist nicht sehr schwer, allerdings gute Werte für die Faktoren zu finden das ein ausgewogener Plan zu stande kommt ist nicht einfach und kann wahrscheinlich nur durch viele Probeläufe ermittelt werden
Bitte melde wie Du das gelöst hast, vieleich nehme ich mal wieder einen Anlauf das Program fertig zustellen, da könnte ich sicher von Deinem Input profitieren....
Gruss
Bole
Edit: Dies ist schon eine Weile her und genau weiss ich es nicht mehr genau..aber das System wird durch das Beispiel klar, jedoch geht es eher mit positiven Werten besser. :roll:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!