ALGORYTM BROWNA ŁOMNICKIEGO PROPOZYCJA OPROGRAMOWANIA KOMPUTEROWEGO

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

Rys.2. Podział na fronty robót [2]

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Instrukcja zarządzania kontami i prawami

WYBÓR STRATEGII DOSTAW I MAGAZYNOWANIA MATERIAŁÓW BUDOWLANYCH DO ROBÓT DROGOWYCH PRZY ZASTOSOWANIU ALGORYTMÓW GENETYCZNYCH

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Algorytm. Krótka historia algorytmów

bo od managera wymaga się perfekcji

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Sterowanie wykonaniem produkcji

PROGRAM DO SZEREGOWANIA ZADAŃ W BUDOWNICTWIE KASS V.1.0

INSTRUKCJE ITERACYJNE

WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY PROGRAMU AGREGAT - 2

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

WYZNACZANIE KOSZTÓW TRANSPORTU Z WYKORZYSTANIEM OCTAVE 3.4.3

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

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

IV.3.b. Potrafisz samodzielnie dokonać podstawowej konfiguracji sieci komputerowej

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

OPTYMALIZACJA ZBIORNIKA NA GAZ PŁYNNY LPG

Aplikacja sieciowa kalkulatora macierzowego zadanie za 10 punktów

KONTROLING I MONITOROWANIE ZLECEŃ PRODUKCYJNYCH W HYBRYDOWYM SYSTEMIE PLANOWANIA PRODUKCJI

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

HARMONOGRAMOWANIE ROBÓT BUDOWLANYCH Z MINIMALIZACJĄ ŚREDNIEGO POZIOMU ZATRUDNIENIA

Rachunek prawdopodobieństwa projekt Ilustracja metody Monte Carlo obliczania całek oznaczonych

5. Administracja kontami uŝytkowników

Instalacja Czytnika Kart w systemie Windows 7, Windows XP, Windows Vista, Windows 2000.

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla nauczyciela

KONSMETAL Zamek elektroniczny NT C496-L250 (RAPTOR)

MODUŁ INTERNETOWY dane statystyczne PUP

Optymalizacja harmonogramów budowlanych - problem szeregowania zadań

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

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Systemy liczenia. 333= 3*100+3*10+3*1

Techniki optymalizacji

Dla naszego obiektu ciągłego: przy czasie próbkowania T p =2.

Współpraca Integry z programami zewnętrznymi

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

FK - Deklaracje CIT-8

Sterowanie procesami dyskretnymi

BADANIA OPERACYJNE i teoria optymalizacji. Prowadzący: dr Tomasz Pisula Katedra Metod Ilościowych

LABORATORIUM Systemy teletransmisji i transmisja danych

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Sortowanie Shella Shell Sort

SYLABUS/KARTA PRZEDMIOTU

1. Instalacja modułu w systemie Windows.

Laboratorium przedmiotu Technika Cyfrowa

Instrukcja Instalacji

SYSTEM MONITOROWANIA DECYZYJNEGO STANU OBIEKTÓW TECHNICZNYCH

PRZEWODNIK PO PRZEDMIOCIE

OPTYMALIZACJA HARMONOGRAMU DOSTAW MATERIAŁÓW BUDOWLANYCH PRZY ZASTOSOWANIU METODY GRAFICZNEJ WSPOMAGANEJ TEORIĄ KOLEJEK

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

WSPÓŁCZYNNIK GOTOWOŚCI SYSTEMU LOKOMOTYW SPALINOWYCH SERII SM48

PRZEWODNIK PO PRZEDMIOCIE

OPROGRAMOWANIE DEFSIM2

Wykorzystanie nowoczesnych technik prognozowania popytu i zarządzania zapasami do optymalizacji łańcucha dostaw na przykładzie dystrybucji paliw cz.

Opis tworzenia modelu uprawnień dla UŜytkowników

InŜynieria Rolnicza 14/2005. Streszczenie

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

PRZEWODNIK PO PRZEDMIOCIE

Instrukcja instalacji oprogramowania do składania podpisu elektronicznego, pod umową o zarządzanie PPK, przy uz yciu certyfikatu kwalifikowanego

Metody Programowania

Metody optymalizacji Optimization methods Forma studiów: stacjonarne Poziom studiów II stopnia. Liczba godzin/tydzień: 1W, 1Ć

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Instrukcja warunkowa i złoŝona.

PRZEWODNIK PO PRZEDMIOCIE

Planowanie i organizacja robót inżynieryjnych WF-ST1-GI--12/13Z-PANO. Liczba godzin stacjonarne: Wykłady: 15 Zajęcia projektowe: 30

ZASTOSOWANIE PRZEGLĄDU ZUPEŁNEGO SZEREGOWANIA ZADAŃ DO ORGANIZACJI PRAC WYKOŃCZENIOWYCH

Instrukcja uŝytkownika narzędzia Skaner SMTP TP. Uruchamianie aplikacji

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Instrukcja instalacji aplikacji Generator Wniosków Aplikacyjnych Edytor.

System wspomagania harmonogramowania przedsięwzięć budowlanych

TRANSCOMP XV INTERNATIONAL CONFERENCE COMPUTER SYSTEMS AIDED SCIENCE, INDUSTRY AND TRANSPORT

PROCES PRODUKCJI CYKL PRODUKCYJNY SZEREGOWO-RÓWNOLEGŁY RYSOWANIE HARMONOGRAMU

Komunikaty statystyczne medyczne

elektroniczna Platforma Usług Administracji Publicznej

1 Wprowadzenie do algorytmiki

WYZNACZANIE CECH PUNKTOWYCH SYGNAŁÓW POMIAROWYCH

Wykład z Technologii Informacyjnych. Piotr Mika

OPTYMALNA ALOKACJA OBIEKTÓW Z WYKORZYSTANIEM ALGORYTMÓW EWOLUCYJNYCH

Multimetr cyfrowy MAS-345. Instrukcja instalacji i obsługi oprogramowania DMM VIEW Ver 2.0

Informatyka II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2009, Oeconomica 275 (57), 53 58

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Programowanie obiektowe zastosowanie języka Java SE

Typowe błędy w analizie rynku nieruchomości przy uŝyciu metod statystycznych

Rachunkowość. Decyzje zarządcze 1/58

Instalacja oprogramowania Wonderware Application Server 3.0 na potrzeby Platformy Systemowej Wonderware

Metodyki i techniki programowania

Program do obsługi ubezpieczeń minifort

Badania Operacyjne Ćwiczenia nr 5 (Materiały)

PRZEWODNIK PO PRZEDMIOCIE

INFORMATOR TECHNICZNY WONDERWARE. Instalacja oprogramowania IndustrialSQL Server 8.0. Instalacja Microsoft SQL Server 2000 Standard Edition

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

Pobierz plik z przykładem

Transkrypt:

LOGITRANS - VII KONFERENCJA NAUKOWO-TECHNICZNA LOGISTYKA SYSTEMY TRANSPORTOWE BEZPIECZEŃSTWO W TRANSPORCIE Maciej NOWAK 1 Paweł NOWAK 1 Algorytm Browna Łomnickiego szeregowanie zadań środowisko Java harmonogramy oprogramowanie ALGORYTM BROWNA ŁOMNICKIEGO PROPOZYCJA OPROGRAMOWANIA KOMPUTEROWEGO W referacie przedstawiono problem szeregowania zadań i optymalizacji harmonogramów w celu zminimalizowania zbędnych przerw w pracy stosowanych maszyn i urządzeń. Metoda podziału i ograniczeń na której opiera się opracowany w połowie dwudziestego wieku algorytm Browna Łomnickiego moŝe zostać zastosowana do tego celu. Autorzy prezentują próbą oprogramowania algorytmu a takŝe pewną koncepcję zminimalizowania niezbędnych iteracji prowadzących do otrzymania wyniku optymalnego. W referacie przedstawiono oprogramowanie sposób jego działania oraz przykład praktyczny. BROWN-ŁOMNICKI ALGORITHM COMPUTER SOFTWARE PROPOSAL This paper considers a machines and equipment work scheduling problem of minimizing the unnecessary pauses in their work. This important scheduling problem need to be solved in modern construction systems and is well known to be intractable (i.e. NP-hard). Branch-and-bound algorithms were developed by Łomnicki and Brown in the middle of twentieth century. In order to improve the use of branch-and-bound algorithms authors present a new and simply software by which the calculations could be reduced to the minimum. Brown-Łomnicki Algorithm is presented and its adjustment for computer platform. Authors present also some screen shots chosen information about the software and practical example. 1. WSTĘP Programowanie całkowitoliczbowe zwane inaczej optymalizacją dyskretną pomaga w rozwiązywaniu zagadnień w których wszystkie lub część zmiennych moŝe przyjmować tylko wartości całkowite. W praktyce budowlanej takie sytuacje występują bardzo często chociaŝby w przypadku optymalizacji wykorzystania niepodzielnych środków produkcji. Do takich środków moŝna zaliczyć np. liczbę stanowisk załadowczych w magazynie liczbę 1 Politechnika Warszawska Wydział InŜynierii Lądowej Zakład InŜynierii Produkcji i Zarządzania w Budownictwie 00-637 Warszawa Armii Ludowej 16 tel.: +48 22 2346515 fax.: +48 22 8257415 e-mail: p.nowak@il.pw.edu.pl maciej.novak@gmail.com

1208 Maciej NOWAK Paweł NOWAK osób które mają być skierowane do określonej pracy liczbę maszyn budowlanych przeznaczonych do wykonania pewnego procesu budowlanego itp. Innym źródłem dyskretności modelu decyzyjnego moŝe być jego kombinatoryczny charakter. W takich przypadkach rozwiązania problemu reprezentowane są przez permutację lub kombinację pewnego zbioru obiektów. Przykładem takiego zagadnienia w budownictwie jest m.in. optymalizacja harmonogramów czyli wyznaczanie najkorzystniejszej kolejności wykonywania robót w ramach danej inwestycji czy np. tzw. problem komiwojaŝera który polega na wyznaczeniu najkrótszej trasy o obwodzie zamkniętym przebiegającej przez dane punkty. 2. ALGORYTM ŁOMNICKIEGO Algorytm Łomnickiego opiera się na metodzie podziału i ograniczeń. Zaprojektowany został z myślą o jego wykorzystaniu przy ustalaniu kolejności obróbki wyrobów na maszynach produkcyjnych jednak zasada jego działania pozwala zastosować go z powodzeniem w dziedzinie optymalizacji harmonogramów budowlanych. Podstawowe załoŝenia algorytmu to [9]: 1. Na kaŝdej działce roboczej (j = 1 2... n) pracują kolejno maszyny/brygady robocze (i = 1 2... m przy czym m = 3). 2. KaŜda maszyna w danej chwili moŝe pracować tylko na jednej działce roboczej i na kaŝdej działce roboczej w danej chwili moŝe pracować tylko jedna maszyna. 3. KaŜda maszyna pracuje na działkach roboczych ustawionych w tej samej kolejności. 4. Na działkę roboczą j moŝe być wprowadzona maszyna i jeŝeli maszyna ta ukończyła pracę na działce j - 1 (dla j 2) oraz jeŝeli na działce j ukończyła pracę maszyna i - 1 (dla i 2). Istotą algorytmu jest znalezienie takiej kolejności (permutacji) działek roboczych (W = {w 1 w 2...w n }) która zapewni optimum funkcji celu. Funkcję celu przedstawia następująca zaleŝność [9]: k min :T = T mn (1) gdzie k T mn - oznacza najwcześniejszy termin zakończenia prac na działce n przez maszynę m czyli termin zakończenia wszystkich planowanych robót. PoniewaŜ algorytm wykorzystuje metodę podziału i ograniczeń jego najwaŝniejszymi elementami są funkcja ograniczająca oraz określenie sposobu podziału zbioru rozwiązań. Zbiór wszystkich rozwiązań G to n! permutacji elementów zbioru działek roboczych. Algorytm przeszukuje go dzieląc na podzbiory gdzie określone jest ustawienie r pierwszych działek (2): (2) gdzie: W k = {w 1 w 2...w r } {w 1 w 2...w r } j = {1 2... n}. G(W k )

ALGORYTM B-Ł PROPOZYCJA OPROGRAMOWANIA KOMPUTEROWEGO 1209 Podzbiór taki zawiera (n r)! rozwiązań a wyznaczona dla niego wartość funkcji ograniczającej (3) określa czy będzie on podlegał dalszemu podziałowi. gdzie: (3) T k k 2r T 3r - wyznaczone na podstawie wzorów rekurencyjnych r = Wk. Algorytm dzieli podzbiory o najmniejszej wartości funkcji ograniczającej do momentu znalezienia jednego lub więcej rozwiązań dopuszczalnych dla których spełniony jest warunek: gdzie: Wk = n 1. 3. ALGORYTM BROWNA ŁOMNICKIEGO Zastosowanie algorytmu Łomnickiego jest bardzo ograniczone ze względu na jedno z podstawowych jego załoŝeń które pozwala wykorzystać tę metodę do optymalizacji pracy jedynie trzech maszyn na dowolnej liczbie działek roboczych. Udoskonaloną metodą jest algorytm Browna-Łomnickiego który moŝe być uŝywany we wszystkich przypadkach gdzie liczba maszyn m spełnia warunek m 3. Sposób przeszukiwania zbioru rozwiązań pozostał niezmieniony nową postać przyjęła natomiast funkcja ograniczająca (4) gdzie: (5) (6) dla j = 1 2... n; i = 1 2...m-1 oraz dla j = 1 2... n; i = m. (7) Algorytm Browna-Łomnickiego aby mógł być wykorzystany w programie komputerowym musiał zostać przedstawiony w formie schematu blokowego. Jego podstawowa postać została pokazana na rys. 1.

1210 Maciej NOWAK Paweł NOWAK Rys. 1. Schemat blokowy algorytmu Browna-Łomnickiego Koncepcja programu uzaleŝniona jest w znacznej mierze od wybranego języka programowania. JAVA naleŝy do grupy języków programowania obiektowego dlatego koncepcja programu równieŝ musiała opierać się na obiektach. Analiza przebiegu obliczeń w algorytmie Browna-Łomnickiego doprowadziła do wniosku Ŝe ich podstawą są kolejne podzbiory zbioru wszystkich moŝliwych rozwiązań (permutacji) dla których wyliczana jest wartość funkcji ograniczającej. Tworzą one kolejne gałęzie drzewa metody podziału i ograniczeń. KaŜda gałąź określona jest poprzez załoŝoną kolejność działek roboczych oraz

ALGORYTM B-Ł PROPOZYCJA OPROGRAMOWANIA KOMPUTEROWEGO 1211 wartość ξ. Te dwa parametry składają się równieŝ na główny obiekt programu nazwany permutacją. W = [K ξ W ] (8) W pierwszym kroku obliczeń zgodnie z Algorytmem Browna-Łomnickiego zbiór wszystkich moŝliwych rozwiązań (kolejności działek roboczych) zostaje podzielony na n podzbiorów dla których zostaje wyznaczona wartość funkcji ograniczającej - ξ. Elementy zbioru P permutacje otrzymują następującą postać: W 1 = [{1}ξ W1 ] W 2 = [{2}ξ W2 ]... W n = [{n}ξ Wn ]. Następne kroki przebiegają wg schematu zawartego w kolejnym bloku obliczeniowym. Zbiór P przeszukiwany jest w celu znalezienia permutacji o ξ min które o ile to moŝliwe podlegają dalszemu podziałowi. Warunkiem podziału permutacji jest spełnienie zaleŝności: K < n-1 (10) gdzie: K liczba elementów zbioru określającego załoŝoną początkową kolejność działek roboczych. Permutacja o załoŝonej kolejności n-1 działek roboczych jednoznacznie określa kolejność wszystkich działek roboczych więc nie podlega podziałowi. PowyŜsze czynności są powtarzane dopóki spełniona jest zaleŝność: (9) w > k gdzie: w = P liczba permutacji w zbiorze P k liczba permutacji w zbiorze P dla poprzedniego kroku. (11) Warunek (10) przestaje być spełniony kiedy w ramach poprzedniego kroku obliczeń do zbioru permutacji P nie zostały dodane kolejne elementy. Oznacza to Ŝe wszystkie permutacje o wartości funkcji ograniczającej równej ξ min są niepodzielne i tworzą ostateczny zbiór rozwiązań. W takiej sytuacji algorytm przechodzi do ostatniego zadania prezentacji rozwiązania. 4. OPTYMALIZACJA PRACY PROGRAMU W dobie szybkiego rozwoju technologii i komputerów wydawać by się mogło Ŝe rozwiązywanie problemów optymalizacyjnych takim algorytmem jak Browna- Łomnickiego nie powinno napotkać Ŝadnych przeszkód wydajnościowych. Jednak problemy optymalizacyjne są zagadnieniami bardzo wymagającymi jeŝeli chodzi o liczbę wykonywanych obliczeń i ilość przechowywanych danych. Jak się okazało podczas prac nad programem w przypadku wybranej metody podziału i ograniczeń zwłaszcza ten drugi czynnik ma znaczący wpływ na moŝliwości aplikacji. Ścisłe rozwiązanie zagadnienia wymaga n! wyliczeń ξ komputer musi równieŝ być w stanie przechować te wyniki wraz z

1212 Maciej NOWAK Paweł NOWAK przypisaniem im odpowiednich kolejności działek roboczych. Dla 4 działek naleŝy przeprowadzić i przechować 24 obliczenia ale dla 14 - liczba ta wynosi: 87 178 291 200. Algorytm Browna-Łomnickiego w znakomitej większości przypadków znacznie zmniejsza liczbę kalkulacji prowadząc równieŝ do rozwiązania ścisłego. Mimo to w przypadku liczby działek roboczych większej niŝ 10 program zaprojektowany zgodnie z podstawową wersją schematu blokowego często nie był w stanie dotrzeć do ostatniego kroku obliczeń. Wprowadzone zostało szereg mniejszych poprawek oraz dwie dość istotne zmiany. Pierwszą z nich było uruchomienie mechanizmu pozbywającego się części przechowywanych danych która nie miała juŝ znaczenia w dalszym procesie obliczeniowym. Algorytm dzieląc kolejne zbiory w pewnym momencie odkrywa pierwsze potencjalne rozwiązanie permutację o K = n 1. Wartość ξ wyliczona dla tej permutacji stanowi górne ograniczenie wartości funkcji ograniczającej dla pozostałych permutacji - ξ Pmax. Wszystkie permutacje spełniające warunek: ξ > ξ Pmax mogą zostać usunięte ze zbioru P poniewaŝ nie mogą prowadzić do rozwiązania optymalnego. Czas trwania robót dla podzbiorów tych permutacji byłby dłuŝszy niŝ w przypadku juŝ znalezionych potencjalnych rozwiązań. ZaleŜność tą obrazuje poniŝszy schemat (rys. 2). Rys. 2. Optymalizacja - usuwanie zbędnych permutacji Permutacje W 4 W 2 W 9 są kolejno usuwane w konsekwencji podziału na podzbiory. Podział W 9 prowadzi do znalezienia dwóch pierwszych zbiorów o K = n - 1. Permutacja W 11 staje się pierwszym potencjalnym rozwiązaniem a jej wartość ξ staje się nowym ξ Pmax. 5. PREZENTACJA OPROGRAMOWANIA Z PRZYKŁADEM LICZBOWYM 5.1. Oprogramowanie Program powstał w technologii JAVA i dzięki wyborze tej platformy z aplikacji mogą skorzystać uŝytkownicy większości komputerów i systemów operacyjnych. Jedynym koniecznym do spełnienia warunkiem przed uruchomieniem programu jest posiadanie zainstalowanego w systemie środowiska JRE (Java Runtime Environment). Pierwszym krokiem po rozpoczęciu pracy z programem jest oczywiście wprowadzenie danych.

ALGORYTM B-Ł PROPOZYCJA OPROGRAMOWANIA KOMPUTEROWEGO 1213 Zadanie to zostało podzielone na dwa etapy. Na początku uŝytkownik pytany jest o dane podstawowe liczbę maszyn oraz działek roboczych. Wpisywane wartości muszą naleŝeć do zbioru liczb całkowitych oraz być większe od zera. JeŜeli powyŝsze warunki nie są spełnione przy próbie przejścia do kolejnego okna zostanie wyświetlony komunikat o błędzie. Rys. 3. Macierz czasu pracy maszyn W tym widoku naleŝy zdefiniować czasy pracy maszyn na poszczególnych działkach roboczych. Dla potrzeb dydaktycznych została równieŝ udostępniona opcja Generuj która uzupełnia macierz liczbami pseudolosowymi wygenerowanymi przez komputer. Wprowadzane wartości muszą naleŝeć do zbioru liczb całkowitych oraz zawierać się w przedziale od 0 do 100. W przypadku podania niewłaściwej wartości pojawi się komunikat o błędzie. Rys. 4. Podgląd obliczeń

1214 Maciej NOWAK Paweł NOWAK Rys. 5. Zestawienie wyników 5.1. Przykład liczbowy W celu przedstawienia praktycznego wykorzystania programu autorzy zaproponowali optymalizacje harmonogramu dla projektu budowy drogi lokalnej. Zaproponowano podział drogi na 10 sekcji (róŝniących się długością w dopasowaniu do elementów koniecznych do wybudowania np. zjazdów do lokalnych zabudowań). Tabela 1 zawiera zestawienie czasów pracy poszczególnych ekip na 10 budowanych sekcjach (działkach roboczych). Konieczne do przeprowadzenia prace są następujące: 1. roboty przygotowawcze i roboty ziemne 2. wykonanie podbudowy jezdni z gruntu stabilizowanego cementem 3. wykonanie krawęŝników na ławie betonowej i wykonanie poboczy 4. wykonanie nawierzchni jezdni 5. wykonanie podbudowy chodnika i ścieŝki rowerowej wykonanie nawierzchni chodnika i ścieŝki rowerowej 6. roboty związane z organizacją ruchu (oznakowanie pionowe oznakowanie poziome elementy bezpieczeństwa ruchu) i roboty wykończeniowe. Brygady robocze Tab. 1. Zestawienie czasów realizacji poszczególnych sekcji Sekcja drogi (1-10) / dni robocze 1 2 3 4 5 6 7 8 9 10 1 40 48 55 46 52 37 26 27 38 46 2 50 39 37 32 58 55 69 32 62 53 3 10 14 7 12 11 11 10 11 8 7 4 50 62 31 31 67 46 70 47 57 66 5 36 30 28 22 24 39 31 42 30 48 6 15 15 17 16 12 10 14 14 16 10

ALGORYTM B-Ł PROPOZYCJA OPROGRAMOWANIA KOMPUTEROWEGO 1215 Rys. 6. Rozwiązanie problemu w oknie programu (Java) Rys. 7. Harmonogram prac (przed optymalizacją 731 dni) Rys. 8. Harmonogram prac (po optymalizacji 643 dni)

1216 Maciej NOWAK Paweł NOWAK 6. WNIOSKI Na podstawie pracy programu moŝna wyprowadzić kilka wniosków praktycznych: - dodatkowa modernizacja programu mogłaby być związana z moŝliwością deterministycznego bardziej praktycznego zakładania niektórych kolejności wykonania poszczególnych działek prowadziłoby to do kolejnego ograniczenia liczby iteracji - program ma problemy przy mało zróŝnicowanych czasach pracy maszyn (zbyt duŝo rozwiązań optymalnych); dla identycznych n działek jest potrzebnych x= n 1 x= n! n 1 n! x= 1 x! x= 2 x! obliczeń czyli więcej obliczeń niŝ w przypadku rozwiązania ścisłego - w przypadku wyraźnych róŝnic w nakładach pracy dla poszczególnych maszyn cały harmonogram moŝe determinować czas pracy jednej lub kilku maszyn/brygad roboczych (tych o najdłuŝszym czasie pracy). 7. BIBLIOGRAFIA [1] Brown J.W. Churchill R.V.: Complex variables and applications 7th ed. Boston McGraw-Hill 2003. [2] Clausen J. L. Troa: Do Inherently Sequential Branch-and-Bound Algorithms Exist? Parallel Processing Letters 4 1-2 p. 3-13 1994. [3] Dominguez-Marin P.: Combinatorial Optimization Kluwer Academic Publications 2003. [4] Eckel B.: Thinking in Java. IV Edition. Wydawnictwo Helion Gliwice 2006. [5] Graham I.: Metody obiektowe w teorii i w praktyce WNT Warszawa 2004. [6] Hall M. Brown L. Chaikin Y.: Core Servlets and Javaserver Pages. Vol. 2 Advanced technologies Gliwice Wydawnictwo Helion 2009. [7] Harris S. Ross J.: Algorytmy. Od podstaw. Wydawnictwo Helion Gliwice 2006. [8] Horowitz E. S. Sahni R. Sanguthevar: Fundamentals of Computer Algorithms Delhi: Universities Press (India) Limited 2008. [9] Jaworski K. M.: Methodology of building planning and realisation Wydawnictwo Naukowe PWN Warsaw Poland 1999. [10] Janicki A. Izydorczyk A.: Komputerowe metody w modelowaniu stochastycznym. Modele w finansach technice i biologii. Algorytmy numeryczne i statystyczne. Symulacja i wizualizacja zjawisk losowych WNT Warszawa 2001. [11] Sahni S.: Data Structures Algorithms and Applications in Java (second Edition) Delhi: Universities Press 2005. [12] Schildt H.: Java. Kompendium programisty Helion Warszawa 2005. [13] Stawowy A. Mazur Z.: Heurystyczne algorytmy szeregowania zadań produkcyjnych i grupowania wyrobów Nowoczesne metody zarządzania produkcją pod red. Z.Martyniaka Wydział Zarządzania AGH Kraków 1996. [14] Tyagi S. McCammon K. Vorburger M. Bobzin H.: Java Data Objects Wydawnictwo Helion Warszawa 2004.