Problem harmonogramowania gniazda produkcyjnego w kontekście projektowania cyfrowej fabryki

Podobne dokumenty
ZAGADNIENIE HARMONOGRAMOWANIA ŚRODKÓW PRODUKCJI W UKŁADZIE DRZEWA, W KONTEKŚCIE TWORZENIA MODELI CYFROWEJ FABRYKI

PLANOWANIE PRZEZBROJEŃ LINII PRODUKCYJNYCH Z WYKORZYSTANIEM METODY MODELOWANIA I SYMULACJI

9.9 Algorytmy przeglądu

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH

Programowanie celowe #1

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

LABORATORIUM Z INŻYNIERII ZARZĄDZANIA- MRP II

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

K.Pieńkosz Badania Operacyjne Wprowadzenie 1. Badania Operacyjne. dr inż. Krzysztof Pieńkosz

Instrukcja. Laboratorium Metod i Systemów Sterowania Produkcją.

OPTYMALIZACJA PRZEPŁYWU MATERIAŁU W PRODUKCJI TURBIN W ROLLS-ROYCE DEUTSCHLAND LTD & CO KG

Projektowanie logistycznych gniazd przedmiotowych

Integracja systemu CAD/CAM Catia z bazą danych uchwytów obróbkowych MS Access za pomocą interfejsu API

RAPORT. Gryfów Śląski

Zaawansowane planowanie i harmonogramowanie produkcji. Wrocław r.

Spacery losowe generowanie realizacji procesu losowego

Katalog rozwiązań informatycznych dla firm produkcyjnych

Analiza ilościowa w przetwarzaniu równoległym

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Katalog rozwiązań informatycznych dla firm produkcyjnych

Katalog rozwiązań informatycznych dla firm produkcyjnych

PDM wbudowany w Solid Edge

t i L i T i

Informatyczne Systemy Zarządzania Klasy ERP. Produkcja

Systemy Monitorowania Produkcji EDOCS

System wspomagania harmonogramowania przedsięwzięć budowlanych

Układy równań i nierówności liniowych

Modele optymalizacyjne wspomagania decyzji wytwórców na rynku energii elektrycznej

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu - metodologia badań

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ

System monitorowania i sterowania produkcją

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

PLANOWANIE I KONTROLA REALIZACJI OBIEKTU BUDOWLANEGO

Rozdział 1 PROGRAMOWANIE LINIOWE

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Macierze. Rozdział Działania na macierzach

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

PROGRAMOWANIE DYNAMICZNE W ROZMYTYM OTOCZENIU DO STEROWANIA STATKIEM

RAION BASIC MES SYSTEM ANDON & OEE

DOSKONALENIE ORGANIZACJI PROCESÓW WYTWARZANIA ZE SZCZEGÓLNYM UWZGLĘDNIENIEM NARZĘDZI SYMULACYJNYCH

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08

MATEMATYCZNE METODY WSPOMAGANIA PROCESÓW DECYZYJNYCH

Algorytm. a programowanie -

Informacje o wybranych funkcjach systemu klasy ERP Zarządzanie produkcją

RAION BASIC MES SYSTEM ANDON & OEE

NUMERYCZNE ALGORYTMY PRZECHOWYWANIA MACIERZY RZADKICH

Maciej Piotr Jankowski

MODELE I MODELOWANIE

Harmonogramowanie produkcji

Instrukcja obsługi programu SWWS autorstwa Michała Krzemińskiego

Pojęcie bazy danych. Funkcje i możliwości.

Modelowanie w projektowaniu maszyn i procesów cz.5

Planowanie potrzeb materiałowych. prof. PŁ dr hab. inż. A. Szymonik

Programowanie liniowe

SYLABUS/KARTA PRZEDMIOTU

KONTROLING I MONITOROWANIE ZLECEŃ PRODUKCYJNYCH W HYBRYDOWYM SYSTEMIE PLANOWANIA PRODUKCJI

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

HARMONOGRAMOWANIE OPERACYJNE Z OGRANICZENIAMI W IFS APPLICATIONS

Karta (sylabus) modułu/przedmiotu Mechanika i budowa maszyn] Studia II stopnia. polski

Jacek Skorupski pok. 251 tel konsultacje: poniedziałek , sobota zjazdowa

PRZEWODNIK PO PRZEDMIOCIE. stacjonarne. II stopnia. ogólnoakademicki. podstawowy WYKŁAD ĆWICZENIA LABORATORIUM PROJEKT SEMINARIUM

POSTĘPY W KONSTRUKCJI I STEROWANIU Bydgoszcz 2004

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Planowanie przedsięwzięć

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Karta (sylabus) modułu/przedmiotu Inżynieria Materiałowa Studia II stopnia specjalność: Inżynieria Powierzchni

Postać Jordana macierzy

Zad. 3: Układ równań liniowych

Harmonogramowanie przedsięwzięć

Modelowanie sytuacji konfliktowych, w których występują dwie antagonistyczne strony.

Dopasowywanie modelu do danych

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Programowanie dynamiczne

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Audyt funkcjonalnego systemu monitorowania energii w Homanit Polska w Karlinie

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Klasyczne zagadnienie przydziału

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Katedra Budownictwa Drogowego. Uniwersytet Technologiczno-Przyrodniczy w Bydgoszczy W ŚRODOWISKU VISUM. dr inż. Jacek Chmielewski

Priorytetyzacja przypadków testowych za pomocą macierzy

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Metodyka projektowania komputerowych systemów sterowania

Informacje o wybranych funkcjach systemu klasy ERP Realizacja procedur ISO 9001

Sterowanie wykonaniem produkcji

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Dodatek Solver Teoria Dodatek Solver jest częścią zestawu poleceń czasami zwaną narzędziami analizy typu co-jśli (analiza typu co, jeśli?

PRZEWODNIK PO PRZEDMIOCIE

PLAN SZKOLEŃ FEMAP. Nasza oferta: Solid Edge najefektywniejszy dostępny obecnie na rynku system CAD klasy mid-range,

Optymalizacja harmonogramów budowlanych - szeregowanie zadań. Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Zaawansowane metody numeryczne

Transkrypt:

Sławomir HERMA Katedra Inżynierii Produkcji Akademia Techniczno Humanistyczna w Bielsku-Białej E mail: slawomir.herma@gmail.com Problem harmonogramowania gniazda produkcyjnego w kontekście projektowania cyfrowej fabryki 1. Wprowadzenie i opis deficytu badawczego Pojawienie się pojęcia cyfrowej fabryki (DF Digital Factory) wiąże się nieodłącznie z rozwojem narzędzi informatycznych stanowiących wsparcie dla procesów modelowania i wdrażania nowych produktów oraz technologii we współczesnych przedsiębiorstwach produkcyjnych [1]. O ile jednak, wywodzące się od systemów CAD//CAM, pakiety wspomagające procesy zarządzania cyklem życia wyrobu PLM (Product Lifecycle Management), ułatwiają realizację trójwymiarowych modeli nawet bardzo złożonych linii produkcyjnych i umożliwiają wirtualizację większośći procesów wytwarzania, o tyle jeśli wykorzystywane będą w oderwaniu od systemów klasy ERP/ERPII, z których zwykle czerpią informacje o dostępnych zasobach firmy, trudno mówić o koncepcji zintegrowanego podejścia do symulacji i digitalizacji w kontekście modelowania cyfrowej fabryki. Uzykiwanie wymiernych efektów o charakterze utylitarnym w kształtowaniu rzeczywistych przebiegów procesu produkcyjnego wymaga ponadto synchronizacji z systemami MES (Manufacturing Execution Systems), których kluczowe funkcje obejmują szereg obszarów, m.in.: [2] automatyczną akwizycję danych o przebiegu procesów produkcyjnych, analizę i identyfikację zakłóceń, kolizji i awarii, monitorowanie w czasie rzeczywistym, wymianę danych z systemami ERP oraz systemami wizualizacji, analizę wydajności systemu produkcyjnego, zarządzanie alokacją zasobów produkcyjnych oraz harmonogramowanie produkcji, przydział zleceń i śledzenie produkcji w toku. Ostatnie z wymienionych tu obszarów ściśle wiążą się z istnieniem szeregu narzędzi informatycznych opartych o złożone algorytmy szeregowania zadań i rozdziału zasobów, których wydajność, efektywność i krótki czas reakcji na dynamicznie zmieniające się warunki produkcji, stanowi podstawowy czynnik decydujący o utylitarnym wymiarze ich stosowania [3]. Różnorodność systemów wytwarzania wymusza zatem poszukiwanie skutecznych rozwiązań, które z jednej strony jako modelowe stanowić będą podstawę budowy nowoczesnych pakietów informatycznych w ogólności, a z drugiej poprzez dostatecznie precyzyjne i wielokierunkowe ich uszczegóławianie uwzględniać szereg specyficznych warunków, ograniczeń i zależności, wiernie oddając modelowany obiekt. Zagadnienie harmonogramowania pracy gniazd produkcyjnych należy właśnie do grupy problemów o charakterze operacyjnym, które choć doczekały się szeregu opracowań [4], [5], [3], [6], prezentujących rozwiązania z zakresu algorytmiki, sztucznej inteligen-

54 Sławomir Herma cji czy badań operacyjnych, pozostają w dalszym ciągu otwarte na szereg usprawnień, modyfikacji oraz przykładów praktycznego zastosowania. [7]Niniejszy artykuł podejmuje więc próbę przedstawienia tej problematyki w kontekście budowy efektywnych algorytmów numerycznych, które wykorzystując zarówno rozwiązania natury deterministycznej oraz heurezy, wydają się sprzyjać oczekiwaniom zwłaszcza ze strony środowisk związanych ze sferą DF (Digital Factory). 2. Definicja zagadnienia, dane wejściowe Niech będzie dane pojedyncze gniazdo produkcyjne, rozumiane bądź jako autonomiczny środek produkcji, bądź ich grupa, realizującejedną lub kilka określonychoperacji technologicznych na pewnym zbiorze przedmiotów produkcji (elementów, części podzespołów, modułów itp.), w ramach pewnej marszruty technologicznej. Obsługa (przetwarzanie) poszczególnych elementów wykonywana jest szeregowo tj. w czasie liczonym od chwili dostępności, aż do momentu opuszczenia gniazda przez pojedynczy element. Niech będzie dany zbiór elementów podlegających obsłudze w harmonogramowanym gnieździe: { ω } = 1,..., Ω= (1) n n N gdzie n oznacza liczbę tych elementów, a N - numer ostatniego elementu zbioru. Dla każdego elementu znany jest czas obsługi (mierzony w dowolnie przyjętych jednostkach np. [s]), podany w postaci wektora: [ ϑ ] = 1,..., Θ= (2) n n N Ponieważ gniazdo produkcyjne jest jednym z wielu składowych systemu wytwarzania, jest więc zdeterminowane harmonogramem swych poprzedników. Stąd poszczególne elementy zbioru Ω posiadają różne chwile dostępności wynikające z różnych chwil zakończenia operacji technologicznych realizowanych na wcześniejszych etapach procesu wytwarzania. Oznacza to, że rozpoczęcie obsługi wybranego elementu w badanym gnieździe nie może nastąpić wcześniej, niż określa to jego dostępność. Wektor chwil dostępności poszczególnych elementów jest więc kolejnym źródłem danych wejściowych w opisywanym modelu: [ ϕ ] = 1,..., Φ= (3) n n N Podobnie, realizacja dalszych czynności wynikających z przyjętej w systemie wytwarzania marszruty technologicznej, wymusza niejako konieczność wypuszczenia obsłużonych już elementów z badanego gniazda w określonych chwilach. Są to chwile deklarowane, przechowywane w kolejnym wektorze: [ ψ ] = 1,..., Ψ= (4) n n N Jeżeli definiować pojęcie harmonogramu jako ogół procedur organizacyjnych, zmierzających do ustalenia zależności czasowych bądź czasoprzestrzennych dla układów typu

Problematyka harmonogramowania gniazda produkcyjnego 55 obiekt procesor, podstawowym celem przedstawianego modelu jest znalezienie takiej ścieżki kolejności obsługi poszczególnych elementów, by róznice pomiędzy faktycznym terminem zakończenia, a zadeklarowanym dla każdego elementu ze zbioru Ω, były jak najmniejsze (oczywiście przy uwzględnieniu różnych chwil dostępności na wejściu układu). 3. Ograniczenia i warunki dopuszczalności harmonogramu Niezależnie od przyjętego sposobu rozwiązania problemu i użytych w tym celu algorytmów numerycznych, każdy uzyskany harmonogram podlega ewaluacji z punktu widzenia jego dopuszczalności. Musi więc on spełniać szereg następujących ograniczeń: Ponieważ w procesie decyzyjnym, zmierzających do ustalenia harmonogramu pracy gniazda produkcyjnego, należy dążyć do minimalizacji spóźnienia na wyjściu układu, istotne wydaje się wprowadzenie wielkości charakteryzującej rzeczywistą chwilę, w której dany element opuszcza ten układ. Jest ona sumą chwili rozpoczęcia obsługi ρ n elementu ω n i czasu jej trwania ϑ n : t = ρ + ϑ (5) n n n Przy założeniu szeregowej obsługi każdego elementu ze zbioru Ω, w dowolnej chwili w badanym gnieździe może znajdować się jeden i tylko jeden element ω n : i j i ( ti ρ j) ( t j ρi) (6) Oznacza to, że dla każdych dwóch dowolnie wybranych elementów i oraz j, rzeczywista chwila zakończenia obsługi jednego z nich jest zawsze wcześniejsza od chwili rozpoczęcia obsługi kolejnego. Dopuszcza się przy tym, że obie te wartości mogą być równe (tzn. dokładnie z chwilą zakończenia obsługi jednego, może rozpocząć się obsługa następnego elementu). Z uwagi na fakt, że dla każdego elementu ω n znana jest jego chwila dostępności (chwila, w której pojawia się on na wejściu badanego układu, zakończywszy obsługę na wcześniejszych obiektach systemu wytwarzania), determinuje ona chwilę rozpoczęcia obsługi w gnieździe: ρ ϕ (7) 1 n N n Nie można zatem rozpocząć obsługi danego elementu zanim nie stanie się on dostępny na wejściu badanego układu. 4. Kryterium optymalizacji harmonogramu Uzyskanie w trakcie procesu decyzyjnego zbioru harmonogramów dopuszczalnych stanowi podstawę poszukiwania rozwiązania optymalnego z punktu widzenia przyjętego kryterium. W opisywanym przypadku kryterium to polega na minimalizacji maksy- n

56 Sławomir Herma malnego opóźnienia obsługi elementów w badanym gnieździe. Opisuje to poniższa zależność: 1 n N ( ) Q = max t ψ min (8) n Opóźnienie to jest wyznaczane jako różnica pomiędzy rzeczywistą, a deklarowaną chwilą zakończenia obsługi elementu n. Zatem spośród wszystkich harmonogramów dopuszczalnych należy znaleźć taki, w którym sumaryczne opóźnienie obsługi wszystkich elementów jest najmniejsze. 5. Model procesu decyzyjnego W celu matemetycznego uchwycenia modelowanego procesu, w pierwszej kolejności należy zdefiniować harmonogram pracy gniazda produkcyjnego jako uporządkowany ciąg par rzeczywistych chwil rozpoczęcia i zakończenia obsługi każdego elementu ω n należącego do zdefiniowanego wcześniej zbioru Ω: gdzie: 1 1 2 2 n H = ρ, t, ρ, t,..., ρ, t,..., ρ, t, (9) n n N N ρ n - jest chwilą rzeczywistego rozpoczęcia obsługi elementu ω n w gnieździe, t n - jest chwilą rzeczywistego zakończenia obsługi elementu ω n w gnieździe. Ponadto, wiedząc że chwila rzeczywistego zakończenia obsługi n-tego elementu jest wyznaczana jako suma chwili ρ n i czasu trwania obsługi ϑ n : t = ρ + ϑ (10) n n n postać harmonogramu podaną wzorem (9), można zapisać w uproszczonej postaci, jako ciąg wyłącznie chwil rzeczywistego zakończenia obsługi: H t, t,..., t,..., t = (11) 1 2 Zgodnie z propozycją przedstawioną przez Mareckiego w [6], do rozwiązania opisywanego zagadnienia przyjęto model programowania wieloetapowego, polegający na permutacyjnym generowaniu przyporządkowań elementów ω n i wyborze optymalnego spośród wszystkich uzyskanych rozwiązań (kierując się opisanym formułą (8) kryterium). Realizacja tego zadania wymaga zdefiniowania pojęcia stanu procesu decyzyjnego. Skoro ostatecznym rezultatem opisywanego zagadnienia ma być harmonogram w postaci uporządkowanego ciągu chwil zakończenia obsługi poszczególnych elementów (patrz formuła (11)), zasadne (i wygodne z punktu widzenia dalszej implementacji informatycznej algorytmu) wydaje się, by stan procesu odzwierciedlony był za pomocą jednowymiarowej struktury tablicowej(wektora), zawierającej wartości t n dla każdego obsłużonego elementu ω n. Dla tych elementów, które oczekują na obsługę, odpowiadające im pozycje w wektorze stanu posiadają wartość 0. n N

Przykład Problematyka harmonogramowania gniazda produkcyjnego 57 0 ω1 nie obsłużono 1 ω koniec obsługi w chwili t = 1 2 5 ω3 = koniec obsługi w chwili t 5 P= 14 ω4 koniec obsługi w chwili t= 14 0 ω5 nie obsłużono 8 ω6 koniec obsługi w chwili t = 8 0 ω7 nie obsłużono Idea algorytmu programowania wieloetapowego została przedstawiona w opracowaniach [5] oraz [8]. W opisywanym przypadku, schemat decyzyjny rozłożony jest na kilka etapów. Etap 0 początkowy, charakteryzuje się tym, że macierz stanu zawiera wyłącznie wartości 0. Oznacz to, że żaden z elementów ω n nie został jeszcze przyporządkowany do harmonogramu obsługi w badanym gnieździe. Kolejny etap 1 zawiera zestaw wektorów stanu, z których każdy posiada już przypisany jeden i tylko jeden, jednak za każdym razem inny, element. Liczba stanów na tym etapie jest co najmniej równa liczbie elementów oczekujących na obsługę w gnieździe (może ich być mniej, z uwagi na konieczność dodatkowego każdorazowo przed przed wygenerowaniem kolejnego stanu uwzględnienia ograniczeń wynikających z założonych chwil dostępności). Na każdym kolejnym etapie procesu decyzyjnego podejmowana jest próba tworzenia zestawu wektorów stanu z kolejnym przypisanym do harmonogramu elementem ω n (spełniającym warunki brzegowe). Schemat tego procesu jest drzewem decyzyjnym, które, jako byt hierarchiczny, posiada na każdym kolejnym etapie wektory stanu, dziedziczące niejako uzyskane już na etapach poprzednich decyzje. Stąd też, etap końcowy zawierać będzie zestaw rozwiązań problemu, czyli harmonogramów realizujących marszruty obsługi elementów we wszystkich możliwych, dopuszczalnych uporządkowaniach (patrz Rys. 1). Zatem matematyczna definicja wektora stanu przyjmuje postać: gdzie: oraz: P = p, (12) e, l e, l i i= 1,..., N, gdy wpisany do harmonogramu e, l ti ωi pi =, (13) 0, w przeciwnym wypadku e - oznacza numer etapu na którym podjęto decyzję o umieszczeniu elementu ω n w harmonogramie pracy gniazda, l - oznacza numer kolejny wektora stanu na danym etapie e.

58 Sławomir Herma Rys. 1. Ogólny schemat generowania ścieżek decyzyjnych Fig. 1. Decision makingpathsscheme 6. Generowanie stanów procesu decyzyjnego Harmonogram pracy badanego gniazda można zatem dookreślić, przyjmując na mocy definicji (12) oraz (13), że: H = p, p,..., p,..., p e, l e, l e, l e, l 1 2 n N Do dalszych rozważań, zwłaszcza w kontekście procedury generowania stanu, wygodnie jest przyjąć następujące, dodatkowe parametry: Zbiór elementów dotychczas obsłużonych w gnieździe: e λ { ωi : pi 0} e 1, λ 1, Ω = czyli zbiór takich elementów ω i, dla których w odpowiadających im pozycjach wektora stanu, znajdują się wartości różne od zera. Przy czym oznaczenie (e-1) określa tu numer etapu poprzedniego względem tego, na którym podejmowana jest bieżąca decyzja, a λ - numer wektora na etapie (e-1), będącego bezpośrednim poprzednikiem tworzonego stanu na etapie bieżącym; (14) (15)

Problematyka harmonogramowania gniazda produkcyjnego 59 Rzeczywista chwila zakończenia obsługi ostatniego z przydzielonych do harmonogramu elementów: e 1, λ e 1, λ T = max p i (16) ω e 1, λ 1 Ω rozumiana jako wartość maksymalna spośród wszystkich niezerowych wartości znajdujących się w wektorze stanu. Procedura generowania stanu pozwala na utworzenie kolejnego wektora w strukturze procesu decyzyjnego. Kolejny stan może być utworzony wyłącznie na podstawie stanu o numerze λ (znajdującego się na poprzednim etapie (e-1)) poprzez podjęcie decyzji o wpisaniu do harmonogramu pracy gniazda wybranego permutacyjnie elementu ω i (na każdym etapie zawsze jednego). Decyzja ta wymaga jednak każdorazowo sprawdzenia czy wybrany element oraz bieżący stan gniazda, spełniają warunki określone w rozdziale 3. W ujęciu matematycznym procedura ta przedstawia się następująco: gdzie: oraz: i: 1 e ( 1, λ e 0) (, l e 1, λ n ) p = P = P + p, (17) n N tn, i= n pi =, (18) 0, i n t = ρ + ϑ, (19) n n n e 1, λ ( ϕ ) ρn = max n, T. (20) Decyzję o wprowadzeniu do harmonogramu pracy gniazda kolejnego elementu można podjąć dla każdego ω n Ω, dla którego w wektorze stanu, na pozycji n znajduje się wartość 0 (tzn. element ten do tej pory nie został jeszcze obsłużony). Wówczas kolejny stan procesu decyzyjnego P e,l (o numerze l, na etapie e) wyznacza się jako suma wektora stanu poprzedniego P e-1,l i pewnego wektora p (patrz formuła (17)). Wektor p ma taki sam wymiar co wektor stanu, i tylko na tej pozycji, która odpowiada przydzielanemu elementowi, posiada wartość niezerową, równą rzeczywistej chwili zakończenia obsługi t n elementu (patrz formuła (18)). Wartość t n można łatwo wyznaczyć, dodając do chwili rzeczywistego rozpoczęcia obsługi elementu ρ n czas jego obsługi ϑ n, zawarty w zestawie danych wejściowych (patrz formuła (19)). Zgodnie z przyjętym na początku założeniem, że dopóki nie zakończy się obsługa jednego elementu nie wolno przydzielić następnego, wyznaczanie chwil rozpoczęcia ρ n jest zdeterminowane zarówno dostępnością elementu ω n czyli chwilą ρ n, jak i rzeczywistą chwilą zakończenia obsługi ostatniego dotychczas przydzielonego elementu czyli chwilą T e-1,λ (patrz formuła (16)). Z tych dwóch wartości należy zatem wybrać chwilę późniejszą i właśnie ją przyjąć jako (patrz formuła (20)).

60 Sławomir Herma Przykład: Niech na pewnym etapie procesu decyzyjnego (e-1) znajduje się wektor o numerze λ, następującej postaci: P e 1, λ 0 ω1 1 ω2 5 ω3 = 14 ω4 0 ω5 8 ω6 0 ω7 Dla uproszczenia przyjęto jedynie siedem elementów podlegających procedurze przydziału. Na podstawie analizy przedstawionego wektora stanu można stwierdzić, że spośród wszystkich elementów jedynie trzy z nich nie zostały jeszcze przydzielone (pierwszy, piąty i siódmy). Dotychczasowy harmonogram pracy gniazda (kolejność obsługi poszczególnych elementów) przedstawia się więc następująco: (21) ω2 ω3 ω6 ω4? (22) Rzeczywista chwila zakończenia obsługi ostatniego z przydzielonych elementów, czyli maksymalna wartość z wszystkich niezerowych wartości wektora stanu, wynosi 14 i dotyczy elementu czwartego. Zatem: T e 1, λ = 14 (23) Przyjmując, że podjęta została decyzja (na podstawie permutacyjnego algorytmu wyboru elementów, dla których w wektorze stanu istnieją wartości zerowe 0 ) o przydzieleniu do harmonogramu elementu ω 5, pobierane są dla niego następujące wielkości z zestawu danych wejściowych: czas obsługi ϑ 5 =8 chwila dostępności ϕ 5 =17 Na mocy formuły (20) wyznaczana jest rzeczywista chwila rozpoczęcia obsługi elementu w gnieździe: e 1, ( ϕ ) ( ) ρ = max, = max 17,14 = 17 (24) n n T λ Oznacza to, że chociaż ostatni z przydzielonych elementów (ω 4 ) opuścił badane gniazdo w chwili 14, to dopiero po upływie trzech (3) jednostek czasu (tzn. w chwili 17) możliwe będzie rozpoczęcie obsługi żądanego elementu ω 5 (taka jest bowiem chwila jego dostępności na wejściu układu). Korzystając z formuły (19) wyznacza się następnie wartość chwili rzeczywistego zakończenia obsługi elementu ω 5 w gnieździe: t5 = ρ5+ ϑ5 = 17+ 8= 25 (25)

Problematyka harmonogramowania gniazda produkcyjnego 61 Na tej podstawie można już zbudować wektor p, który w tym przypadku przyjmie postać: 0 0 0 p= 0 25 0 0 a w wyniku uruchomienia procedury generowania stanu, otrzymywany jest żądany nowy wektor: 0 0 0 1 0 1 5 0 5 = + = 14 + 0 = 14 0 25 25 8 0 8 0 0 0 e, l e 1, λ P P p Przykład ten pokazuje ideę generowania kolejnych stanów w strukturze procesu decyzyjnego, która wbrew pozorom wydaje się nie nazbyt złożona zwłaszcza, że wszystkie użyte wartości wejściowe oraz wyjściowe reprezentowane są w postaci ogólnie przyjętych i stosowanych struktur danych (zbiory, macierze, wektory itp.). I choć z jednej strony ułatwia to w sposób znakomity implementację informatyczną algorytmu (co zostanie pokazane w rozdziale 10), z drugiej - sprzyja nadmiernemu rozrostowi samego drzewa decyzyjnego i wymusza szereg działań zmierzających dozapewnienia odpowiednich warunków sprzętowo programowych dla sprawnego funkcjonowania algorytmu lub zastosowania innych jeszcze mechanizmów ograniczających złożoność czasową tej procedury. Zagadnienie to będzie przedmiotem szczegółowych rozważań w dalszej części opracowania (rozdział 8). 7. Definicja wartości stanu procesu decyzyjnego Niezależnie od czasu trwania algorytmu i liczby wygenerowanych, dopuszczalnych rozwiązań problemu, kolejną czynnością jest wybór rozwiązania optymalnego. Korzystając z definicji kryterium optymalizacji modelu (patrz formuła (8)), dla każdego wektora stanu uzyskanego na etapie końcowym, należy określić jego wartość, korzystając z następującej formuły: (26) (27)

62 Sławomir Herma e l ( ψ ) e, l max, V p e, i i ω l i Ω = (28) Wartość stanu określa zatem wielkość maksymalnego opóźnienia w obsłudze elementów w gnieździe (jako różnicą pomiędzy rzeczywistą a deklarowaną chwilą zakończenia tej obsługi), wyznaczaną dla każdego uzyskanego harmonogramu dopuszczalnego. Na jej podstawie poszukiwane jest rozwiązanie optymalne, czyli takie, dla którego wartość stanu będzie najmniejsza: gdzie: N, l min N, l ˆ N, l Vopt = V = Popt, (29) 1 l N N - jest numerem ostatniego etapu procesu decyzyjnego, l - jest numerem wektora stanu na etapie N, dla którego określana jest wartość stanu. 8. Model oceny jakości rozwiązań i optymalizacja złożoności czasowej algorytmu Chociaż zjawisko szybkiego wzrostu drzewa decyzyjnego jest jak najbardziej naturalne dla prezentowanego algorytmu wynika bowiem z jego ściśle deterministycznego charakteru, gwarantuje za to znalezienie wszystkich możliwych, dopuszczalnych harmonogramów pracy badanego gniazda. Fakt ten stanowi o jego podstawowej i niezaprzeczalnej zalecie, która jednak może zostać przysłonięta zbytnią zachłannością na zasoby informatyczne, jakimi dysponuje użytkownik. Ograniczenie liczby generowanych wektorów stanu, a tym samym znaczne przyspieszenie działania opisywanego algorytmu, może przebiegać zasadniczo dwoma drogami: poprzez wprowadzenie dodatkowych ograniczeń modelu, dotyczących np. zależności kolejnościowych obsługi elementów, wynikających z żądanej marszruty technologicznej wówczas uwzględnienie tych zależności spowoduje zmniejszenie liczby generowanych permutacji, co bezpośrednio przełoży się na czas trwania całego procesu (zagadnienie to zostanie szczegółowo przedstawione w kolejnych rozdziałach opracowania); poprzez wykorzystanie heurystyk eliminacji stanów nieperspektywicznych (w przypadku harmonogramowania gniazda tzw. metody sondowania). Reguła sondowania jest metodą, którą można zastosować praktycznie na każdym etapie procesu decyzyjnego. W ogólności polega ona na przeanalizowaniu każdego wektora stanu na bieżącym etapie z punktu widzenia jego wartości i zakwalifikowaniu go do grupy perspektywicznych lub całkowitemu zdyskwalifikowaniu. Pod pojęciem stanu perspektywicznego rozumie się taki stan, którego osiągnięta na danym etapie wartość daje potencjalną szansę uzyskania rozwiązania optymalnego na dalszej drodze procesu decyzyjnego. Może więc on stanowić podstawę kontunuacji generowania kolejnych gałęzi drzewa stanów (trajektorii).

Problematyka harmonogramowania gniazda produkcyjnego 63 Rys. 2. Idea eliminacji stanów nieperspektywicznych [8] Fig. 2. Eliminationn of non-perspectivesstates Tok przeprowadzania procedury eliminacji stanów za pomocą reguły sondowania przedstawia się następująco: na wybranym, bieżącym etapie e należy zidentyfikować dwa dowolne wektory stanu o numerach l 1 i l 2, przeznaczone do dalszej analizy. Wyznaczone według nich zbiory dotychczas obsłużonych elementów mogą być różne. dla obu wektorów należy wyznaczyć chwilę zakończenia obsługi ostatniego z przydzielonych elementów: e, l1 e, l1 przydzielić dotąd nie przydzielone elementy ze zbioru Ω,, uzyskując dwa prognozowane wektory końcowe. Należy uwzględnić chwile dostępności elementów. Wyznaczyć i porównać wartości obu stanów. Ten z nich, którego wartość jest więkpochodzących od niego sza, należy uznać za nieperspektywiczny, a zbiór trajektorii można wyeliminować z dalszego procesu decyzyjnego 9. Propozycje rozszerzenia modelu 9.1. Dodatkowe kryteria optymalizacji harmonogramu P P T T e, l2 e, l2 Oprócz przedstawionego formułą (8) kryterium optymalizacji, polegającego na minima- lizacji maksymalnego spóźnienia obsługi elementów, proces harmonogramowania pracy

64 Sławomir Herma pojedynczego gniazda produkcyjnego można analizować i ewaluować przy pomocy innych jeszcze, następujących kryteriów. Kryterium minimalizacji spóźnienia na wejściu gniazda Q 2 = max( ρ ϕ ) min (30) 1 n N n Ponieważ każdy z elementów ω n, podlegających szeregowaniu w gnieździe, posiada jako daną wejściową chwilę dostępności ϕ n (pojawienia się danego elementu na wejściu do układu), zasadna wydaje się również możliwość prowadzenia ścieżki decyzyjnej tak, by minimalizować różnicę pomiędzy rzeczywistą chwilą rozpoczęcia obsługi a chwilą ϕ n (tzn. dany element jest już dostępny, lecz nie może rozpocząć się jego obsługa z uwagi na zajętość gniazda oczekuje on wówczas w buforze wejściowym). Działanie takie zmierzać będzie do ograniczania wielkości magazynu buforowego (międzyoperacyjnego) na wejściu badanego gniazda. Modyfikacja definicji kryterium optymalizacji rodzi zatem konieczność zmiany formuły określania wartości stanu przyjmie ona wówczas postać: V e, l, i Ω n ( ρ ϕ ) = max e l i i (31) ω Kryterium minimalizacji kary za spóźnienie rozpoczęcia obsługi 3 n ( n n) min (32) Q = c ρ ϕ 1 n N O ile w przypadku poprzedniego kryterium, w ocenie uzyskanych rozwiązań uwagaskupiana była tylko na minimalizacji spóźnienia w rozpoczęciu obsługi, traktując poszczególne elementy na równi z innymi, o tyle tutaj zakłada się dodatkowo karę za spóźnienie i może ona być zupełnie różna dla każdego z elementów. Stąd w zestawie danych wejściowych powinien znaleźć się dodatkowy wektor: [ ] 1,..., C c = = (33) n n N zawierający stawki (w dowolnie przyjętych jednostkach wartości) za jednostkę czasu powstałego opóźnienia. W trakcie procesu ewaluacji uzyskanych rozwiązań może się wówczas okazać, że w przypadku dwóch stanów o tej samej wartości (rozumianej według dotychczasowej formuły (28)), jeden z nich będzie mimo wszystko lepszy, gdyż opóźnienie dotyczy elementu, dla którego stawka kary jest niższa. Wynika stąd konieczność redefinicji wartości stanu, która w przypadku korzystania z kryterium Q 3 przyjmie postać: ( ρ ϕ ) e, l V max e, l c i i i ωi Ω = (34) Kryterium minimalizacji kary za spóźnienie na wyjściu układu 4 n ( n n) min (35) Q = c t ψ 1 n N Podobnie jak wyżej, ocena jakości harmonogramu bierze również pod uwagę karę, lecz tym razem za przekroczenie deklarowanej chwili zakończenia obsługi elementów.

Problematyka harmonogramowania gniazda produkcyjnego 65 Stawka kary też może być zróżnicowana i dla każdego elementu inna (wartości kar należą zawsze do zestawu danych wejściowych). Zatem dwa przykładowe rozwiązania harmonogramu, dla których zarejestrowany czas spóźnienia wyniósł tę samą liczbę jednostek, mogą okazać się zupełnie odmienne z uwagi na różnicę w stawkach kary (jeśli opóźnienia nie dotyczyły tych samych elementów). Definicja wartości stanu przyjmuje wówczas postać: ( ψ ) e, l V max e, l ci ti i ωi Ω = (36) Kryterium minimalizacji czasu oczekiwania na rozpoczęcie obsługi gdzie: Q q 5 N i, (37) i= 1 = q min e 1, λ i = ρi T 0, (38) a T e-1,λ jest rzeczywistą chwilą zakończenia obsługi ostatniego z dotąd przyporządkowanych elementów (patrz formuła (16)). Jeśli w kryterium minimalizacji spóźnienia na wejściu gniazda (formuła (30)) opisywana była sytuacja, w której istnieje szereg elementów dla których chwile dostępności kwalifikują je do rozpoczęcia obsługi, lecz z uwagi na zajętość gniazda (lub inne ograniczenia) muszą na tę obsługę oczekiwać przez określony czas w buforze, to w tym przypadku sytuacja jest niejako przeciwna. W badanym gnieździe pewna liczba elementów została już obsłużona i układ pozostaje w stanie nieobciążonym, oczekując na chwilę, w której dostępny stanie się choćby jeden element z reszty dotąd nie obsłużonych. Czas oczekiwania gniazda jest więc wyznaczany jako różnica pomiędzy rzeczywistą chwilą zakończenia obsługi ostatniego elementu a chwilą rozpoczęcia kolejnego. Jeśli różnica ta jest wartością ujemną wówczas na obsługę oczekują elementy w buforze. Gdy zaś dodatnią gniazdo staje się nieobciążone i czeka na pojawienie się jakiegokolwiek obiektu do obsługi. Za harmonogram optymalny będzie się w tym przypadku uważać taki, w którym sumaryczne wartości czasów przestoju gniazda są najmniejsze. Przedstawione kryteria są oczywiście formułami modelowymi, które można zastosować w postaci jakiej podano, co nie ogranicza możliwości tworzenia dalszych, które mogą uwzględniać jedocześnie kilka z pokazanych wyżej sposobów oceny uzyskanych harmonogramów. Można dzięki temu poszukiwać rozwiązań optymalnych w sensie Pareto użytecznych zwłaszcza w wielu zagadnieniach z zakresu inżynierii produkcji [9]. 9.2. Harmonogramowanie gniazda produkcyjnego z uwzględnieniem czasów przezbrojeń Mając do czynienia z tzw. przedmiotowym gniazdem produkcyjnym nastawionym na wytwarzanie określonej grupy różniących się od siebie elementów, należy niekiedy liczyć się z koniecznością przezbrajania zawartych w nim środków produkcji (maszyn, urządzeń itp.). Czynność ta wiąże się z uwzględnieniem dodatkowego czasu na dostosowanie gniazda do warunków wymaganych wytwarzaniem określonego elementu.

66 Sławomir Herma Czas ten jest zależny nie tylko od rodzaju elementu, który ma zostać obsłużony, lecz także od tego, którego obsługa właśnie się zakończyła. Stąd, w opisywanym modelu harmonogramowania, w zestawie jego danych wejściowych, należy dodatkowo zdefiniować tzw. macierz czasów przezbrojeń jako: gdzie: przy czym: Τ= [ ], (39) τ i, j i, j= 1,..., N τ i,j - jest czasem przezbrojenia gniazda między obsługą elementu ω i i ω j, τ τ (40) i, j j, i Wprowadzenie dodatkowego parametru wejściowego nie zmienia zasadniczo dotychczasowego modelu. Poszukiwanie rozwiązań dopuszczalnych nadal przebiega zgodnie metodą programowania wieloetapowego i procedurą generowania stanów przedstawioną za pomocą formuły(17). Jednakże w konsekwencji uzwględnienia czasów przezbrojeń, definicje niektórych wielkościmogą ulec nieznacznej modyfikacji. W szczególności, formuła umożliwiająca określenie rzeczywistej chwili rozpoczęcia obsługi elementów w gnieździe przyjmuje nieco odmienną postać: gdzie: e 1, λ ( T 1, λ, ) ρ = max ϕ, + τ e, (41) n n K n K e-1,λ - jest numerem elementu który został obsłużony jako ostatni na etapie (e-1), i wyznaczany jest jako odpowiadający mu indeks w wektorze stanu: K e 1, λ e 1, λ j, p e 1, j = T λ = 0, w przeciwnym wypadku Rzeczywista chwila zakończenia obsługi elementu kolejnego musi zatem uwzględniać czas przezbrojenia, jaki wynika z konieczności dostosowania gniazda po zakończeniu obsługi elementu poprzedniego. Zawsze jednak należy zbadać, która z dwóch wartości jest większa (czy chwila dostępności nowego elementu, czy suma chwili zakończenia i czasu przezbrojenia dla elementu poprzedniego) i tą przyjąć jako moment rozpoczęcia obsługi. Istnienie czasów przezbrojeń jest zjawiskiem powszechnym i naturalnym w uwarunkowaniach produkcyjnych większości przedsiębiorstw. Dążenie więc do znalezienia takich marszrut obsługi elementów, w których międzyoperacyjne czasy oczekiwania na rozpoczęcie pracy gniazda byłyby jak najmniejsze, wydaje się więc oczywiste. Tym niemniej, źródeł oszczędności (czy raczej właściwego gospodarowania budżetem czasowym) należy jednak poszukiwać również w innych technikach należących do sfery inżynierii produkcji a w przypadku ograniczania czasów przezbrojeń stosując np. SMED (Single Minute Exchange of Die). (42)

Problematyka harmonogramowania gniazda produkcyjnego 67 9.3. Harmonogramowanie gniazda produkcyjnego z uwzględnieniem zależności kolejnościowych Podstawowym rozpatrywanym dotąd ograniczeniem w modelu był fakt istnienia określonych chwil dostępności dla poszczególnych elementów, co powodowało konieczność ich uwzględniania przy wyznaczaniu momentów rozpoczęcia obsługi w harmonogramowanym gnieździe. Jeśli więc specyficzna konfiguracja danych w wektorze chwil dostępności mogła powodować określone restrykcje czasowe związane z pojawianiem się elementów na wejściu układu, liczba generowanych stanów w strukturze procesu decyzyjnego mogła być przez to znacznie ograniczona sprawiając, że znalezienie zbioru rozwiązań harmonogramów dopuszczalnych odbywało się, pomimo zastosowania heurystyk eliminacji stanów nieperspektywicznych, w akceptowalnym czasie. Jednakże, gdy z jakiś względów chwile dostępności nie będą określone, lub nie będzie wręcz możliwości czy też potrzeby ich określania, może jednak zaistnieć konieczność zachowania pewnej kolejności (kolejki) obsługi elementów oczekujących na wejściu układu. Może ona wynikać np. z ogólnej marszruty technologicznej realizowanej w przedsiębiorstwie. W celu uwzględnienia tego rodzaju ograniczenia, należy zestaw danych wejściowych uzupełnić o tzw. macierz poprzedników i następników, zgodnie z następującą definicją: gdzie: Γ=, (43) γ ν, n γ ν, n ν, n = 1,..., N 1, ων ωn = (44) 0, w przeciwnym wypadku Jeśli pomiędzy dwoma dowolnymi elementami ω v i ω n istnieje zależność typu następnik poprzednik, wówczas na przecięciu v-tego wiersza i n-tej kolumny wpisywana jest wartość 1. W przypadku przeciwnym, tzn. gdy następstwo takie nie występuje, w tym samym miejscu macierzy znajduje się 0. Choć informatyczna implementacja tej struktury nie wydaje się uciążliwa, należy jednak wziąć pod uwagę konieczność zbudowania mechanizmów programowych weryfikujących niesprzeczność informacji tu zawartych. Jeśli założyć dodatkowo, że pomiędzy poszczególnymi elementami ω n istniejące zależności wzajemnego następstwa mogą mieć zarówno charakter bezpośredni, jak i pośredni, problem właściwego zaprogramowania i obsługi macierzy kolejności, do zagadnień trywialnych już nie należy. Odrębnego komentarza wymaga również fakt, że użytkownik wypełniając macierz poprzedników i następników w sposób bezpośredni wpływa na efektywność całego algorytmu generowania i przeszukiwania obszaru możliwych rozwiązań harmonogramu pracy gniazda. Nie ulega wątpliwości, że w im większym stopniu kolejność obsługi elementów zostanie zdeterminowana, tym mniej liczny będzie zbiór harmonogramów dopuszczalnych. W szczególności, może się okazać, że zaistnieje wówczas tylko jedna ścieżka przebiegu procesu decyzyjnego, co spowoduje zanik samego zadania optymalizacyjnego.

68 Sławomir Herma Pozostałe dane wejściowe modelu nie ulegają zmianie, modyfikacji natomiast ulega procedura generowania stanów, która po uwzględnieniu zależności kolejnościowych przyjmie następującą postać: 1 n N 1 ν N e {( ) ( ) ( ) } 1, λ e 0 1, λ e (, l e 1, λ p n γν, n 1 pν 0 P P p) = = = + Kolejny stan procesu decyzyjnego można zatem wygenerować dla każdego elementu ω n takiego, który nie został dotąd obsłużony p n e-1,λ oraz wszystkie elementy będące jego pośrednimi lub bezpośrednimi poprzednikami również zostały w harmonogramie uwzględnione (obsłużone) (γ v,n =1) ( p v e-1,λ >0). Wówczas kolejny stan P e,l wyznaczany jest jako suma wektora stanu poprzedniego P e-1,l i wektora p \. Wektor p na każdej pozycji posiada 0 z wyjątkiem n-tej odpowiadającej przyporządkowywanej operacji ω n - czyli analogicznie, jak pokazano w formułach (18) do (20). 10. Podsumowanie i przykład implementacji informatycznej algorytmu Przedstawiony w pracy model matematyczny algorytmu został zaimplementowany w postaci oprogramowania komputerowego, celem zweryfikowania jego praktycznej użyteczności. Wykorzystano środowisko programowania Delphi 2007 oraz opracowano szereg rozwiązań programowych opartych zarówno o paradygmat programowania proceduralnego, jak i obiektowego. Jako podstawowe założenia dla projektowanej aplikacji przyjęto możliwość: wyboru przez użytkownika liczby elementów podslegających harmonogramowaniu (użytkownik ma możliwość dynamicznej zmiany liczby żądanych elementów), wprowadzania zależności kolejnościowych występujących pomiędzy elementami zarówno w układzie następstwa pośredniego, jak i bezpośredniego (implementacja macierzy poprzedników i następników wraz z mechanizmami weryfikacji niesprzeczność tej macierzy), wprowadzania przewidzianych w modelu matematycznym danych wejściowych w postaci czasów obsługi, chwil dostępnośći oraz deklarowanych chwi zakończenia obsługi elementów, importu danych wejściowych za pomocą zewnętrznego pliku tekstowego, przeglądania rezultatów obliczeń (wygenerowanych harmonogramów obsługi elementów) graficznej wizualizacji wyników obliczeń w postaci wykresu, wyświetlania podstawowych danych statystycznych po wykonaniu algorytmu (stopnień spełnienia założonego kryterium optymalizacji, identyfikacja maksymalnych spóźnień, wartość średnia opóźnienia, czas trwania obliczeń). W celu przeprowadzenia praktycznej symulacji harmonogramu gniazda za pomocą stworzonego oprogramowania przyjęto przykładowe dane: liczba elementów n=20; planowane czasy obsługi elementów: (45)

Problematyka harmonogramowania gniazda produkcyjnego 69 Θ= [ 5,9,7,8,3,5,6,8,7,4,7,9,10,4,8,8,9,5,6,7 ] wektor chwil dostępności: Φ = 27, 8,16, 9, 35,1,12,1,10, 22, 20, 32, 24, 3, 2, 31, 21, 40, 21, 41 [ ] wektor deklarowanych chwil zakończenia: Ψ= 43,30, 43,32, 47,19, 27,17, 22,31,36,59,50,19,23,49,56,67,37,66 [ ] macierz poprzedników i następników przyjęto w układzie bezpośredniego następstwa elementów, a założony poziom zdeterminowania kolejności 50% przyjęte zostało kryterium minimalizacji maksymalnego opóźnienia obsługi względem deklarowanych chwil zakończenia. Rys. 3. Fragment interfejsu użytkownika dane wejściowe Fig. 3. User interface input data

70 Sławomir Herma Rys. 4. Fragment interfejsu użytkownika wyniki obliczeń Fig. 4. User interface output data Rezultaty obliczeń: liczba możliwych do wygenerowania wektorów stanu: 20! (ok. 2,4 trylionów permutacji), przyjęto metodę eliminacji stananów nieperspektywicznych wg reguły sondowania; otrzymano 24 harmonogramy uznane za optymalne, z punktu widzenia przyjętego kryterium; uzyskane harmonogramy realizują obsługę wszystkich elementów w czasie 159 przyjętych jednostek czasu; najmniejsze uzyskane opóźnienie to -18 jednostek czasu (element opuścił gniazdo przed deklarowaną chwilą zakończenia); największe uzyskane opóźnienie to +133 jednostki czasu (wynik ten jest bezpośrednio uzależniony od chwili dostępności elementu i jego położenia i konfiguracji porzedniów i następników określonych macierzą kolejności); średnie opóźnienie dla wszystkich elementów to +61,35 jednostek czasu; obliczenia zostały wykonane na komputerze posiadającym następującą konfigurację sprzętową (procesor Intel Core i5 2430M 2,4 GHz, pamięć zainstalowana 8GB, Windows 7 64-bit); czas realizacji obliczeń: 9,0[s].

Wnioski Problematyka harmonogramowania gniazda produkcyjnego 71 Przedstawiony model umożliwia prowadzenie symulacji procesu wytwarzania zarówno w gniazdach produkcyjnych przedmiotowych, jak i technologicznych; Użyte struktury danych do przechowywania i przetwarzania informacji na użytek algorytmu, sprzyjają informatycznej implementacji modelu i praktycznej weryfikacji jego użyteczności; Wykorzystanie metody programowania wieloetapowego daje możliwość stworzenia drzewa decyzyjnego, w rezultacie którego otrzymywany jest zestaw wszystkich możliwych dopuszczalnych rozwiązań (harmonogramów). Końcowa ocena rozwiązań z punktu widzenia przyjętego kryterium optymalizacji pozwala na identyfikację optymalnych marszrut pracy badanego gniazda; Znaczna złożoność obliczeniowa algorytmu (NP) może zostać skutecznie zdegradowana poprzez uwzględnienie szeregu ograniczeń (odpowiednia konfiguracja chwil dostępności elementów na wejściu układu oraz restrykcje kolejnościowe wynikające z istnienia macierzy poprzedników i następników). Stopień technologicznego zaawansowania współczesnych maszyn liczących (np. średniej klasy komputerów osobistych) wydaje się być wystarczający do harmonogramowania złożonych zadań o charakterze operacyjnym w akceptowalnym czasie, z użyciem przedstawionego modelu. Dzięki wielu opcjom rozszerzenia modelu (szeroki wachlarz możliwych do stosowania kryterów optymalizacji, uwzględniania czasów przezbrojeń, zależności kolejnościowych itp.), opisany model można w dowolny sposób dostosowywać do charakteru i uwarunkowań procesu wytwarzania realizowanego w formie gniazd produkcyjnych większości współczesnych przedsiębiorstw. Biorąc pod uwagę obserwowane tendencje rozwojowe w zakresie wirtualizacji procesów wytwarzania oraz mając na względzie możliwości efektywnej symulacji tych procesów w środowisku cyfrowym, wydaje się zasadne stosowanie opisanych rozwiązań zwłaszcza w kontekście projektowania i modelowania tzw. cyfrowych fabryk za pośrednictwem m.in. systemów MES. Literatura 1. Matuszek J., Gregor M., Medvedsky J.: Digital Factory w Productivity and Innovations, 1(2) 2006. 2. Banaszak Z., Kłos S., Mleczko J.: Zintegrowane systemy zarządzania, Warszawa PWE, 2011. 3. Janiak A.: Wybrane problemy i algorytmy szeregowania zadań i rozdziału zasobów, Akademicka Oficyna Wydawnicza PLJ, 1999. 4. Banaszak Z., Bocewicz G., Wójcik R.: Zastosowanie technik programowania z ograniczeniami do rozstrzygania konfliktów zasobowych w ESP, Inżynieria Maszyn, t.1, str. 87-99, 2006. 5. Marecki F.: Modele matematyczne i algorytmy alokacji operacji i zasobów na linii montażowej, Zeszyty Naukowe Politechniki Śląskiej, 1986.

72 Sławomir Herma 6. Bucki R., Marecki F.: Digital Simulation of Discrete Processes, Network Integrators Associates, 2006. 7. Banaszak Z., Bocewicz G.: Decision Support Driven Models and Algorithms of Artificial Intelligence, Warszawa, 2011. 8. Herma S.: Harmonogramowanie linii montażowej jako element projektowania cyfrowej fabryki, Informatyczne Systemy Zarzadzania tom II, pp. 52-65, Koszalin 2011. 9. Matuszek J.: Inżynieria produkcji, Wydawnictwo Politechniki Łódzkiej, Bielsko Biała, 2000. Streszczenie W artykule przedstawiono model matematyczny zagadnienia organizacji pracy pojedynczego gniazda produkcyjnego, wykorzystujący metodę programowania wieloetapowego (MPW) celem znalezienia optymalnego harmonogramu szeregowania zadań. Dokonano analizy możliwości zastosowania tej metody pod kątem projektowania cyfrowej fabryki oraz uwzględniono szereg czynników zwiększających efektywność algorytmu. Na podstawie opisanego modelu dokonano jego informatycznej implementacji i oceny użyteczności otrzymanych tą drogą rozwiązań. The problem of work centres scheduling in a context of the digital factory design Summary This paper presents a mathematical model of work centres scheduling problem, using multi-stage programming method In order to find the optimum timing scheduling. An analysis of the applicability of this method for the digital factory design and the factors increasing the efficiencyof algorithm was also described. On the basis of this model, there was made its computer implementation and evaluation of general solutions obtained in this way.