Wprowadzenie do problemu szeregowania zadań na pojedynczej maszynie


Właściwa ilość wyrobów powinna być wyprodukowana i dostarczona w ściśle określonym czasie. Planowane zadania powinny być wykonane punktualnie, gdyż zarówno zbyt wczesne jak i zbyt późne dostarczenie wyrobów jest niepożądane. Zbyt wcześnie zakończone zadania powodują wzrost kosztów utrzymania zapasów produkcji gotowej u producenta, a tym samym niepotrzebne zamrożenie środków obrotowych. Z kolei zakończenie wykonywania zadań po ustalonym terminie powoduje niezadowolenie klientów i, w dłuższej perspektywie, może skończyć się ich odejściem do innych wytwórców.
Problemy tego typu są opisywane i studiowane w dziedzinie nauk zarządzania począwszy od lat siedemdziesiątych XX wieku. W 1977 roku Sidney opisał jednomaszynowy problem minimalizacji odchyleń czasów wykonania od pożądanych terminów i podał algorytm jego rozwiązania. Ta pionierska praca była w następnych latach rozszerzana w wielu różnych kierunkach. Wbrew pozorom problem ten jest realistyczny: w wielu praktycznych przypadkach istnieją tzw. wąskie gardła i właśnie na tę pojedynczą maszynę powinno być zorientowane planowanie.
Harmonogramowanie produkcji polega na podziale zleceń klientów na partie produkcyjne (zadania) oraz określeniu terminów rozpoczęcia i zakończenia partii produkcyjnych na poszczególnych maszynach. Wynikiem tego jest ustalenie kolejności wykonania partii produkcyjnych na wszystkich maszynach. W przypadku układania harmonogramu dla jednej maszyny możemy przyjąć, że liczba zadań n jest skończona i znana wcześniej, przy czym wszystkie zadania są gotowe do wykonania jednocześnie (tzn. proces obsługi może się zacząć od dowolnego zadania i). Czas wykonania zadania pi jest wcześniej znany i nie zależy od uporządkowania (każde zadanie może być wykonane bez przezbrajania maszyny bądź czas przezbrajania nie zależy od poprzedniego zadania i jest wliczony do czasu wykonywania zadania). Ponadto każde zadanie ma podany termin dyrektywny (planowy) di, a przerywanie wykonywania zadań nie jest dopuszczalne. Zadanie jest opóźnione, jeśli jego moment zakończenia Ci przekracza termin dyrektywny. Zadanie jest wyprzedzone, jeśli jego moment zakończenia jest wcześniejszy niż termin planowany. Wyprzedzenie i opóźnienie zadania są obliczane jako Ei=max{di - Ci;0} oraz Ti=max{Ci - di;0}. Powyższe zależności ilustruje rysunek.

Celem jest znalezienie dopuszczalnej sekwencji zadań S, która minimalizuje zadaną funkcję celu, np. ważoną sumę wyprzedzeń i opóźnień:

gdzie a - współczynnik wagowy wyprzedzenia (np. koszt magazynowania wyrobów gotowych w jednostce czasu), b - współczynnik wagowy opóźnienia (np. koszt straconej produkcji).