Harmonogram pracy pielęgniarek
Repozytorium
Wymagania
-
przykładowe harmonogramy:
-
-
co najmniej 1 pielęgniarka zawsze
w czasie dnia co najmniej 3 opiekunki na dziecko
w czasie nocy co najmniej 5 opiekunek na dziecko
etat: 8h * liczba dni pracujących w miesiącu
minimalizujemy nadgodziny
pielęgniarki mogą zaznaczyć, w które dni nie chcą pracować
pielęgniarki mogą mieć wyrobione godziny z poprzedniego miesiąca
uznajemy, że liczba dzieci w miesiącu jest stała
znamy liczbę innych pracowników (też mogą liczyć się jako opiekunki) każdego dnia miesiąca
1 iteracja
Legenda:
R - 8h od 7 do 15 - min. przerwa 11h
P - 4h od 15 do 19 - min. przerwa 11h
D - 12h od 7 do 19 - min. przerwa 11h
N - 12h od 19 do 7 - min. przerwa 11h
DN - 24h od 7 do 7 - min. przerwa 24h
RP - 12h od 7 do 19 - min. przerwa 11h
RPN - 24h od 7 do 7 - min. przerwa 24h
PN - 16h od 15 do 7 - min. przerwa 16h
kolor czarny - podstawowe zmiany
kolor czerwony - nocki N
kolor zielony - nadgodziny
Podstawowe dane wejściowe:
Definicje:
Warunki poziome:
Możliwe konfiguracje czasu pracy z uwzględnieniem minimalnego czasu odpoczynku przed i po pracy.
Klocki zielone oznaczają odpoczynek, mogą się na siebie nakładać.
Klocki różowe oznaczają obecność w ośrodku.
[20.10.2016] Dodatkowo: w każdym tygodniu musi być co najmniej 35 godzin nieprzerwanego odpoczynku.
Warunki pionowe:
zawsze co najmniej obecna jedna pielęgniarka
dzień: 1 opiekunka na 3 dzieci
noc: 1 opiekunka na 5 dzieci
pracownik stały jest obecny przez cały dzień [20.10.2016] (od 6:00 do 22:00)
Funkcja celu:
sum(liczba nadgodzin) → min
Rozszerzenia:
blokada dostępności danego pracownika w danym dniu
ustawienie preferencji zmiany
dodatkowa zmiana N8 (N1) od 22 do 6
uwzględnienie cennika zmiany noc=1,65*ps, niedziele i święta=1,45*ps, ps- podstawowa stawka (wg. Dz.U. z 2016 poz. 1638 Ustawa o działalności leczniczej)
opcja „naprawy” harmonogramu, gdy coś się wysypie (np. nagłe L4 etc., większa liczba dzieci?)
Spotkanie 20.10.2016
Uzupełnienie ograniczeń o tygodniowy odpoczynek oraz informację, że pracownicy dzienni pracują do 22:00.
Trzeba uwzględnić wszystki (maksymalnie 6) tygodnie w miesiącu
W pierwszym etapie harmonogramowania unikamy ustalania dokładnego terminu nadgodzin
-
Spotkanie za tydzień o 14:30 w czwartek
Na kolejny tydzień model uwzględniający jedynie ograniczenia poziome, w postaci globalnego ograniczenia „regular”
Spotkanie 27.10.2016
Uwzględnienie magicznej zmiany (22:00 - 07:00) - dzielimy nockę na dwa bloki
Uwzględnienie tygodni w przerwie 35h - tablica mapująca zmiany na indeksy tygodni
Podział osób na pielęgniarki i opiekunki, i dodanie pracowników stałych (07:00-22:00)
-
Dodanie ograniczeń czasowych (maksymalny wymiar godzin w tygodniu - do ustalenia, np. 56, minimalny w miesiącu - dla każdej pielęgniarki inny)
Dodanie wartości przypisanych na sztywno (urlopy, poprzedni tydzień, etc.)
Plan obejmuje zawsze 6-tygodni, ale wymiar godzin liczymy w miesiącu - musimy dodać informacje, kiedy zaczyna się miesiąc, etc.
Wstępnie spotykamy się o 17:00 za tydzień (2016-11-03)
Spotkanie 09.11.2016
Plan obejmuje zawsze 6-tygodni, ale wymiar godzin liczymy w miesiącu - musimy dodać informacje, kiedy zaczyna się miesiąc, etc. Na razie nieistotne - do zapamiętania.
-
Ograniczenia nadmiarowe, zbadać magisterkę załączoną na tej stronie
Preferencje co do nadgodzin: pielęgniarka lubi/nie lubi/ma neutralny stosunek do nadgodzin
Dodać kryterium optymalizacji: liczba nadgodzin z wzięciem pod uwagę preferencji pielęgnarek
Zastosowanie ograniczeń globalnych , np.
constraint forall(s in SHIFTS where (s mod 4) != 0)(
at_least(min_nurses_during_day, [schedule[n, s] == 2 | n in NURSES], 2)
);
Notatki