🚀 Wprowadzenie do edycji grafików
System ShiftGo.site oferuje zaawansowane narzędzia do edycji grafików pracy, które pozwalają na precyzyjne sterowanie algorytmem optymalizacji. Kluczowe są dwa typy ograniczeń:
🔴 Wymuszone zmiany
Twarde ograniczenia, które solver MUSI spełnić. Czerwona obwódka na grafiku.
🟢 Preferowane zmiany
Miękkie ograniczenia, które solver stara się spełnić. Zielona obwódka na grafiku.
💡 Kluczowa różnica
Wymuszone zmiany = "Tego NIE MOŻNA zmienić" vs Preferowane zmiany = "To byłoby miłe zachować"
🔒 Wymuszone zmiany - Twarde ograniczenia
📍 Definicja i działanie
Wymuszone zmiany to ustawienia konkretnego pracownika, które solver algorytmu optymalizacji MUSI bezwzględnie spełnić. Należą do kategorii twardych ograniczeń (hard constraints).
🎯 Możliwości wymuszonych zmian:
- Wymuszenie konkretnej zmiany: R (rano), P (popołudnie), N (noc)
- Wymuszenie wolnego dnia: - (nie pracuje)
- Zakazanie konkretnej zmiany: !R, !P, !N
⚠️ Konsekwencje "czerwonych" ograniczeń
Jeżeli solver nie jest w stanie znaleźć rozwiązania respektującego wszystkie wymuszone zmiany, zwróci grafik jako "INFEASIBLE" (niewykonalny). To oznacza, że zdefiniowane ograniczenia są sprzeczne z innymi parametrami systemu.
🏥 Najlepsze zastosowania wymuszonych zmian:
Urlopy
Zablokowanie dni urlopowych pracowników
Zwolnienia lekarskie
Wymuszenie dni wolnych z powodu choroby
Szkolenia
Zablokowanie pracowników na konkretną zmianę ze względu na szkolenia
💼 Przykład praktyczny - urlop pracownika
Sytuacja: Pracownik Kowalski ma urlop od 15-20 maja.
Działanie: Kliknij na komórki Kowalskiego w dniach 15-20 maja do momentu uzyskania czerwonej obwódki z "-". System automatycznie ustawi wymuszone zmiany na "wszystkie zmiany zabronione" dla tych dni.
Rezultat: Solver nigdy nie przydzieli Kowalskiemu pracy w tych dniach, nawet gdyby to było optymalne.
💚 Preferowane zmiany - Miękkie ograniczenia
📍 Definicja i działanie
Preferowane zmiany to ustawienia konkretnego pracownika, które solver stara się preferować, ale może je zmienić jeśli to konieczne. Należą do kategorii miękkich ograniczeń (soft constraints) i są składową funkcji oceny algorytmu.
🎯 Jak działają preferowane zmiany:
- Minimalizacja kar: Solver próbuje zminimalizować liczbę zmian względem preferowanych zmian
- Macierz kar: Różne zmiany mają różne koszty (szczegóły poniżej)
- Balansowanie: System waży kary za zmiany z innymi celami optymalizacji
🔄 Standardowy workflow z preferowanymi zmianami
- Wprowadź wykonane dni jako wymuszone zmiany (zablokuj przeszłość)
- Ustaw wymuszone zmiany na przyszłość jako wymuszone zmiany
- Wciśnij "Preferuj całą tabelę" - ustawi obecny grafik jako preferowany
- Uruchom solver - znajdzie rozwiązanie minimalizujące zmiany
🔘 Funkcje "Preferuj całą tabelę" i "Usuń preferencje tabeli"
✅ "Preferuj całą tabelę"
Ustala obecny grafik jako preferowany dla wszystkich pracowników i dni. Idealny do modyfikacji istniejących grafików.
❌ "Usuń preferencje tabeli"
Czyści wszystkie preferowane zmiany, pozwalając solverowi na pełną optymalizację bez względu na obecny grafik.
📊 Raport różnic
Po wygenerowaniu grafiku system wyświetla szczegółowy raport porównujący preferowane zmiany z docelowym grafikiem. Pokazuje których pracowników należy poinformować o zmianach w porównaniu do preferowanego harmonogramu.
⚖️ Porównanie funkcjonalności
Cecha | 🔴 Wymuszone zmiany | 🟢 Preferowane zmiany |
---|---|---|
Typ ograniczenia | Twarde (Hard constraints) | Miękkie (Soft constraints) |
Obwódka na grafiku | Czerwona | Zielona |
Działanie solvera | MUSI spełnić | Stara się spełnić |
Konsekwencje niespełnienia | INFEASIBLE (brak rozwiązania) | Kara w funkcji oceny |
Najlepsze zastosowanie | Urlopy, zwolnienia, szkolenia | Modyfikacja istniejących grafików |
Priorytet | Najwyższy (nadpisuje preferred) | Niższy (ustępuje preassigned) |
🎯 Macierz kar w systemie
System wykorzystuje zaawansowaną macierz kar do oceny "kosztów" zmian między preferowanymi zmianami a docelowym grafikiem. Oto szczegóły z kodu solvera:
📊 Macierz kar za zmiany (funkcja get_shift_change_penalty)
Z (preferowane) | Do (docelowe) | Kara | Opis |
---|---|---|---|
Rano | Rano | 0 | Bez zmiany - brak kary |
Popołudnie | Popołudnie | 0 | Bez zmiany - brak kary |
Noc | Noc | 0 | Bez zmiany - brak kary |
Wolne | Wolne | 0 | Bez zmiany - brak kary |
Popołudnie | Noc | 3 | Niski koszt - naturalna progresja |
Rano | Popołudnie | 5 | Umiarkowany koszt |
Popołudnie | Rano | 5 | Umiarkowany koszt |
Noc | Popołudnie | 8 | Średni koszt |
Rano | Noc | 15 | Wysoki koszt - duża zmiana |
Noc | Rano | 15 | Bardzo wysoki koszt - najgorsza zmiana |
Rano | Wolne | 2 | Niski koszt za rezygnację ze zmiany |
Popołudnie | Wolne | 2 | Niski koszt za rezygnację ze zmiany |
Noc | Wolne | 2 | Niski koszt za rezygnację ze zmiany |
Wolne | Rano | 10 | Średni koszt za dodanie zmiany |
Wolne | Popołudnie | 10 | Średni koszt za dodanie zmiany |
Wolne | Noc | 10 | Średni koszt za dodanie zmiany |
🧮 Logika macierzy kar:
- Brak zmiany (0): Zachowanie tej samej zmiany nie kosztuje
- Naturalne progresje (3): Popołudnie → Noc to naturalna kolejność
- Umiarkowane zmiany (5): Rano ↔ Popołudnie
- Trudne przejścia (15): Rano ↔ Noc to największy skok
- Rezygnacja z pracy (2): Niski koszt za uwolnienie pracownika
- Dodanie pracy (10): Średni koszt za dodatkową zmianę
⚙️ Konfiguracja wagi kar
Globalny multiplier kar można ustawić w konfiguracji ograniczeń. Wyższa waga = większy nacisk na zachowanie preferowanych zmian.
🔄 Praktyczny workflow edycji grafików
📋 Scenario: Modyfikacja istniejącego grafiku
Krok 1: Zabezpieczenie przeszłości
Dla wszystkich dni które już się wykonały (np. 1-15 maja), ustaw wymuszone zmiany klikając na komórki do czerwonej obwódki. To zablokuje zmiany w przeszłości.
Krok 2: Wymuszenie nowych ograniczeń
Dla przyszłych dni gdzie MUSISZ wprowadzić zmiany (urlopy, szkolenia), ustaw wymuszone zmiany z czerwoną obwódką.
Krok 3: Preferowanie obecnego grafiku
Kliknij "Preferuj całą tabelę" - system ustawi obecny grafik jako preferowane zmiany (zielone obwódki) dla wszystkich pozostałych komórek.
Krok 4: Optymalizacja
Uruchom solver. Znajdzie rozwiązanie które:
- ✅ Spełnia wszystkie wymuszone zmiany (czerwone)
- 🎯 Minimalizuje zmiany względem preferowanych zmian (zielone)
- ⚖️ Balansuje inne ograniczenia (weekendy, równowaga zmian)
Krok 5: Analiza raportu
Po wygenerowaniu sprawdź raport różnic - pokazuje których pracowników dotyczyły zmiany i jakiego typu. Użyj tego do komunikacji zmian z zespołem.
💡 Przykłady zastosowania
🔴 Przykład wymuszonych zmian
Sytuacja: Nieprzewidziany urlop
Problem: Jan Nowak nagle zachorował i nie może pracować 10-12 maja.
Rozwiązanie:
- Kliknij komórki Jana w dniach 10-12 maja
- Ustaw czerwoną obwódkę z "-" (wszystkie zmiany zabronione)
- Wciśnij "Preferuj całą tabelę"
- Uruchom solver
Rezultat: System znajdzie nowy grafik nie przydzielając Janowi żadnej pracy w tych dniach, nawet jeśli trzeba będzie przeorganizować innych pracowników.
🟢 Przykład preferowanych zmian
Sytuacja: Drobne korekty grafiku
Problem: Grafik na czerwiec jest OK, ale trzeba dodać jednego pracownika na 15 czerwca na zmianę poranną.
Rozwiązanie:
- Ustaw wymuszoną zmianę (czerwoną) na dodatkowego pracownika 15.06 rano
- Wciśnij "Preferuj całą tabelę"
- Uruchom solver
Rezultat: System zmieni minimalną liczbę przydziałów aby dodać wymaganego pracownika, zachowując jak najwięcej z obecnego grafiku.
🎯 Kluczowa różnica w rezultatach
Wymuszone zmiany: "Musi się wydarzyć, bez względu na konsekwencje"
Preferowane zmiany: "Chcemy żeby się wydarzyło, ale można to zmienić jeśli potrzeba"
🏆 Najlepsze praktyki
✅ Do wykonania:
- Używaj wymuszonych zmian: Tylko dla absolutnych wymogów
- Zablokuj przeszłość: Zawsze ustaw wymuszone zmiany dla już wykonanych dni
- Testuj krok po kroku: Dodawaj ograniczenia stopniowo
- Sprawdzaj raport różnic: Analizuj jakie zmiany zostały wprowadzone
- Komunikuj zmiany: Informuj pracowników o modyfikacjach
- Backup grafiku: Zapisz grafik przed dużymi zmianami
❌ Unikaj:
- Nad-ograniczania: Zbyt wiele wymuszonych zmian może prowadzić do INFEASIBLE
- Ignorowania kar: Sprawdzaj koszty zmian w raporcie
- Częstych przepisań: Lepiej modyfikować niż zaczynać od nowa
- Mieszania trybów: System nie pozwoli używać jednocześnie preferowanych i wymuszonych zmian na tej samej komórce
- Zapominania o walidacji: Sprawdzaj czy grafik spełnia wszystkie wymagania prawne
⚠️ Troubleshooting: Co robić gdy INFEASIBLE?
- Sprawdź konflikty: Czy wymuszone zmiany nie są sprzeczne?
- Zlicz zasoby: Czy masz wystarczająco pracowników na wymagane dni?
- Sprawdź weekendy: Czy ograniczenia weekendowe nie kolidują z wymuszonymi zmianami?
- Redukuj wymuszone zmiany: Tymczasowo usuń część czerwonych ograniczeń
- Zwiększ elastyczność: Zmień część wymuszonych zmian na preferowane
🎯 Złota zasada
"Wymuszone zmiany dla tego co MUSI się wydarzyć, preferowane zmiany dla tego co CHCESZ żeby się wydarzyło"
Ta prosta zasada pomoże Ci uniknąć większości problemów z konfiguracją grafików.
📚 Powiązane artykuły
🚀 Optymalizacja harmonogramów
Zaawansowane techniki tworzenia efektywnych grafików
Wkrótce⚖️ Prawo pracy a grafiki
Zgodność z przepisami prawnymi w planowaniu pracy
Wkrótce🚀 Gotowy na stworzenie idealnego grafiku?
Wypróbuj zaawansowane funkcje edycji w systemie ShiftGo.site
Rozpocznij planowanie Skontaktuj się z nami