Autor Beitrag
frank-wob
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 03.05.12 15:26 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 107
Erhaltene Danke: 15

win 10

BeitragVerfasst: 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:

_________________
ein programm macht nicht das was du willst sondern was du schreibst!