Algoritmo di Moore
Oggi parliamo di un altra tecnica di Scheduling... si tratta dell'algoritmo di Moore.
Ma a cosa serve? E in cosa si differenzia dagli altri?
Ogni volta che ad un azienda viene commissionato un lavoro, insieme alle specifiche del lavoro stesso viene richiesta ovviamente anche una data di consegna che l'azienda ha il compito di rispettare.
Non sono però rari i casi in cui le imprese pur di prendere nuovi ordini dai clienti accettino le condizioni senza prima aver verificato la possibilità di poter adempiere alle tempistiche stabilite.
Nella maggior parte di questi casi pertanto l'azienda avrà il compito di cercare di minimizzare al massimo i vari ritardi per rendere il meno scontenti possibile i propri clienti, altre volte però può accadere che nei contratti precedentemente stipulati vengano inserite delle condizioni che prevedano il pagamento di penali in caso di consegna del lotto in ritardo (indifferentemente dall'entità).
Proprio in questi casi interviene l'algoritmo di Moore, in quanto permette la minimizzazione del numero di lavori in ritardo così da incorrere nel numero più limitato possibile di penali, anche a costo di incrementare ulteriormente il tempo di alcuni ordini.
Per procedere, come primo passo si ordinano i vari lavori in ordine di scadenza dal più breve al più lungo.
Successivamente si confronta la data di consegna con la "due date" (data dovuta), se ogni lavoro risulta in tempo si interrompe l'algoritmo, altrimenti al primo lavoro che risulta non idoneo si procederà con l'eliminazione dalla sequenza precedente del lavoro con tempo di processamento maggiore ponendolo in coda. Si manterrà questa tecnica fino alla fine dei lavori.
Un esempio potrebbe chiarire meglio questo concetto.
Prendiamo un caso semplice con 5 lavori in cui vengono mostrati i tempi di lavorazioni e le rispettive date di consegna stabilite.