KOMPUTEROWY SYSTEM BADA IA EFEKTYW OŚCI METAHEURYSTYCZ YCH ALGORYTMÓW ALOKACJI



Podobne dokumenty
Optymalizacja. Przeszukiwanie lokalne

Zadania laboratoryjne i projektowe - wersja β

System wspomagania harmonogramowania przedsięwzięć budowlanych

INFORMATYKA POZIOM ROZSZERZONY

INFORMATYKA POZIOM ROZSZERZONY

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

SCENARIUSZ ZAJĘĆ KOŁA NAUKOWEGO z MATEMATYKI prowadzonego w ramach projektu Uczeń OnLine

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI 2016 ROK

Zapisywanie algorytmów w języku programowania

Analiza korespondencji

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

OPIS KRYTERIÓW PRZYZNAWANIA PUNKTÓW ZA MINIMALNE FUNKCJONALNOŚCI SYSTEMU

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA

SCENARIUSZ LEKCJI. TEMAT LEKCJI: O czym mówią współczynniki funkcji liniowej? - wykorzystanie arkusza kalkulacyjnego na lekcjach matematyki

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Priorytetyzacja przypadków testowych za pomocą macierzy

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Laboratorium technik optymalizacji

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Wyszukiwanie binarne

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Przeszukiwanie lokalne

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.

NETBEANS PROFILER TOMASZ ŁUKASZUK

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

XIII International PhD Workshop OWD 2011, October 2011 METODA REEINGINEERINGU ORGANIZACJI Z WYKORZYSTANIEM SYMULATORA PROCESÓW BIZNESOWYCH

OPROGRAMOWANIE DEFSIM2

Współpraca FDS z arkuszem kalkulacyjnym

Maciej Piotr Jankowski

Wymagania edukacyjne z informatyki dla uczniów klas VI SP nr 53 w Krakowie w roku szkolnym 2019/2020

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

Rozdział 9 PROGRAMOWANIE DYNAMICZNE

1. Opis okna podstawowego programu TPrezenter.

Scenariusz lekcji Ozobot w klasie: Tabliczka mnożenia

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

ViLab- program służący do prowadzenia obliczeń charakterystyki energetycznej i sporządzania świadectw charakterystyki energetycznej

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

biegle i poprawnie posługuje się terminologią informatyczną,

Program V-SIM tworzenie plików video z przebiegu symulacji

Moduł TUCT. A następnie, w wyświetlonym oknie Audience planes.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

SYSTEM WSPOMAGANIA HARMONOGRAMOWANIA PRZEDSIĘWZIĘĆ BUDOWLANYCH

Na podstawie: MS Project 2010 i MS Project Server Efektywne zarządzanie projektem i portfelem projektów, Wilczewski S.

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

Referat pracy dyplomowej

ZASTOSOWANIE KOMPUTERA W PRACY NAUCZYCIELA WYCHOWAWCY

Programowanie współbieżne Wykład 2. Iwona Kochańska

Klasyfikacja publikacji biomedycznych w konkursie JRS 2012 Data Mining Competition - Szkic koncepcji

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

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

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

Dokąd on zmierza? Przemieszczenie i prędkość jako wektory

Sortowanie zewnętrzne

Podstawy OpenCL część 2

Techniki optymalizacji

Efektywność algorytmów

Rysunek 8. Rysunek 9.

WYKORZYSTANIE MES DO WYZNACZANIA WPŁYWU PĘKNIĘCIA W STOPIE ZĘBA KOŁA NA ZMIANĘ SZTYWNOŚCI ZAZĘBIENIA

KOMPUTEROWE SYSTEMY POMIAROWE

NUMERYCZNE ALGORYTMY PRZECHOWYWANIA MACIERZY RZADKICH

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny

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

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Temat: Co to jest modelowanie? Modelowanie przebiegu procesu zapominania za pomocą arkusza kalkulacyjnego.

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Sposoby sprawdzania osiągnięć edukacyjnych uczniów

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Scenariusz lekcji Ozobot w klasie: Spacer losowy po układzie współrzędnych

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Projektowanie rozwiązania prostych problemów w języku C++ obliczanie pola trójkąta

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Z nowym bitem. Informatyka dla gimnazjum. Część II

Algorytmika i pseudoprogramowanie

Szybki Start: Wymagania systemowe:

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SCENARIUSZ LEKCJI. Miejsca zerowe funkcji kwadratowej i ich graficzna prezentacja

DROGA ROZWOJU OD PROJEKTOWANIA 2D DO 3D Z WYKORZYSTANIEM SYSTEMÓW CAD NA POTRZEBY PRZEMYSŁU SAMOCHODOWEGO

INFORMATYKA POZIOM PODSTAWOWY

Sposoby przedstawiania algorytmów

Tom 6 Opis oprogramowania

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

PIPP

Wymagania edukacyjne na ocenę z informatyki klasa 3

SCENARIUSZ LEKCJI: TEMAT LEKCJI: Postać kanoniczna funkcji kwadratowej. Interpretacja danych w arkuszu kalkulacyjnym

Scenariusz lekcji z wykorzystaniem monitora interaktywnego

Algorytmy Komunikacyjne dla Trójwymiarowych Sieci Opartych na Plastrze Miodu. Ireneusz Szcześniak. Politechnika Śląska 20 czerwca 2002 r.

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

KOMPUTEROWE MEDIA DYDAKTYCZNE JAKO NARZĘDZIE PRACY NAUCZYCIELA FIZYKI SPRAWOZDANIE Z BADAŃ WŁASNYCH

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Spis treści. Od autorów / 9

GML w praktyce geodezyjnej

Aplikacja Pakiet do symulacji i optymalizacji układów regulacji (SIMO) napisana jest w języku Microsoft Visual C#.

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot.

Załącznik nr 6 Nr postępowania: WP/4/2018/LES

Transkrypt:

Słowa kluczowe: algorytmy, metaheurystyki, symulacja, alokacja zadań, efektywność. Marek WÓJCIKOWSKI *, Wojciech KMIECIK * KOMPUTEROWY SYSTEM BADA IA EFEKTYW OŚCI METAHEURYSTYCZ YCH ALGORYTMÓW ALOKACJI Artykuł obejmuje problematykę adaptacji trzech metaheurystycznych algorytmów przeszukiwania lokalnego do problemu alokacji zadań na dwuwymiarowej siatce procesorów. Prezentuje też komputerowy system eksperymentowania, służący do badania ich efektywności. Omawiane algorytmy to: Tabu Search, Simulated Annealing (Symulowane Wyżarzanie) oraz Random Search. Ponadto użyto algorytmów pomocniczych: First Fit oraz autorskiego Dumb Fit. 1. WPROWADZENIE Przetwarzanie współbieżne od dawna było wykorzystywane w różnych dziedzinach nauki i przemysłu. Stale zyskuje ono na popularności, ostatnimi czasy, także w zastosowaniach domowych. Jednak w praktyce, wykorzystanie stu procent potencjału wielu równoległych procesorów, jest bardzo rzadko osiągane przeważnie wykorzystywany jest jedynie ułamek pełnej mocy [1]. Jednym z podstawowych problemów, przyczyniających się do tego stanu rzeczy, jest trudność zaalokowania zadań na równoległych procesorach w odpowiedni sposób. Dla dużej liczby zadań do przetworzenia, przejrzenie wszystkich ich permutacji, jest zadaniem przewyższającym zdecydowanie możliwości dzisiejszych komputerów. Dlatego właśnie zdecydowaliśmy się zaimplementować oprogramowanie umożliwiające sprawdzenie na ile zasadne jest wykorzystanie do tego celu algorytmów metaheursytycznych, które działają szybko i często efektywnie. Kolejne sekcje artykułu przedstawiają: sformułowanie problemu i założenia, opis użytych algorytmów, prezentację oprogramowania symulacyjnego oraz przykładowego badania i podsumowanie. * Studenckie Koło Naukowe Systemów Informatycznych i Sieci Komputerowych, Politechnika Wrocławska, Wybrzeże Wyspiańskiego 27, 50-370 Wrocław, POLAND, opiekun: Leszek Koszałka

2. SFORMUŁOWANIE PROBLEMU Węzeł podstawowy element, reprezentujący procesor w siatce procesorów. Węzeł może być wolny lub zajęty. Siatka procesorów dalej zwana siatką dwuwymiarowa struktura równomiernie rozmieszczonych węzłów. Można ją oznaczyć, jako M(w, h, t), gdzie w i h to szerokość i wysokość siatki, zaś t to czas życia siatki. Wartość t może być niezerowa albo zerowa. Wartość zerowa oznacza, że siatka będzie aktywna aż do przetworzenia ostatniego zadania w kolejce. Podsiatka S to prostokątny fragment siatki M, grupa węzłów w określonym momencie czasu. Oznaczyć ją można, jako S(a, b, e, j), gdzie (a, b) to pozycja lewego górnego węzła podsiatki S w siatce M (licząc od lewego górnego rogu, zaczynając od 1), zaś e, j to szerokość i wysokość podsiatki. Określenie, że podsiatka jest zajęta oznacza, że wszystkie jej węzły są zajęte. Siatkę w określonym momencie czasu M(w, h, t 1 ) można przedstawić graficznie, jako tablicę liczb całkowitych, gdzie każda liczba odnosi się do jednego węzła. Zero, które można oznaczyć jako kropkę (.), oznacza wolny węzeł. Liczby niezerowe oznaczają zajęty węzeł. Ich wartość jest jednakowa dla podsiatki, do której przydzielono jedno zadanie i oznacza czas pozostały do przetworzenia tego zadania na danym węźle. Na rys. 1. przedstawiono przykład takiego przedstawienia siatki z zaalokowanymi zadaniami. Rys. 1. Przykładowe przedstawienie siatki w chwili czasu z 4 zaalokowanymi zadaniami Zadania, oznaczone jako T(p, q, s) są przechowywane na liście. Zawartość listy jest znana przed procesem alokacji. Podczas alokacji zadania są zdejmowane z listy i układane na siatce i zajmują tam podsiatkę S i (a,b,p,q) przez s jednostek czasu. Kluczowym zagadnieniem było opracowanie odpowiednich funkcji celu, pozwalających, w sposób obiektywny, oceniać skuteczność i porównywać badane algorytmy. Pierwszą, z utworzonych przez nas funkcji celu, jest funkcja sumarycznej efektywności (1), oznaczana jako CE. Jest używana, gdy jest zdefiniowany niezerowy czas życia siatki. W funkcji tej p i, q i, s i to odpowiednio: szerokość, wysokość i czas przetwarzania dla i-tego zadania spośród n przetworzonych zadań. CE = n ( pi qi si) i= 1 (1)

Znając parametry w, h, t całej siatki (szerokość, wysokość, czas życia) możemy, na podstawie wartości CE, obliczyć oparty na niej współczynnik użycia siatki U (2). CE U = 100% (2) w h t Na problem można spojrzeć trójwymiarowo, wtedy zarówno siatka jak i zadania to prostopadłościany (3-ci wymiar to czas). Wartość U, można więc interpretować, jako procent wykorzystania objętości siatki przez zaalokowane zadania. Daje to obiektywne pojęcie o tym, jaka część siatki została zmarnowana. Drugim wskaźnikiem jakości jest funkcja czasu zakończenia TC=t fin. Stosowana jest, gdy czas życia siatki jest ustawiony na wartość 0, czyli siatka działa do przetworzenia wszystkich zadań. Funkcja TC, czyli t fin to chwila czasu, w której przetworzono ostatnie zadanie z listy. Stosowanie tej funkcji jest zalecane tylko czasami, gdyż nie pozwala ona obiektywnie ocenić wykorzystania siatki pozwala jedynie porównywać algorytmy. Mimo to, czasem jest potrzebna, gdyż samo porównanie algorytmów może wystarczyć na potrzeby określonego badania, zaś stosowanie podejścia z zerowym czasem życia (a co za tym idzie funkcji TC) skraca czas obliczeń. 3. UŻYTE ALGORYTMY Na potrzeby głównych algorytmów metaheurystycznych należało zdefiniować sposób reprezentacji rozwiązania problemu i sposób ewaluacji takiego rozwiązania. Zdecydowaliśmy, że rozwiązanie będziemy przedstawiać jako permutację zadań, w oparciu o którą, algorytmy pomocnicze przeprowadzą jednokrotną symulację alokacji. Dokonanie takiej symulacji pozwala wyliczyć wartość funkcji celu dla danego rozwiązania (permutacji zadań). Dlatego też, symulacja alokacji zadań wykonywana jest w każdej iteracji algorytmu głównego. Do tej symulacji wykorzystywane są algorytmy pomocnicze. Pierwszym z nich jest Dumb Fit (zwany dalej DF). Jest to prosty algorytm naszego autorstwa, będący zubożoną wersją, opisanego później, First Fit (zwanego dalej FF). Algorytm DF próbuje alokować kolejne zadania z listy, przeglądając ją i nie zmieniając kolejności (zawsze próbuje alokować tylko pierwsze zadanie). Przeglądana jest cała siatka w ciągu całego jej czasu życia. Algorytm FF działa identycznie, z tą różnicą, że dla każdej wykrytej wolnej podsiatki próbuje alokować wszystkie zadania z listy, a nie tylko pierwsze, więc może zmieniać kolejność zadań na liście. Obydwa algorytmy mogą także obracać zadania o 90 stopni przy próbach alokacji.

Jako główne algorytmy, zaimplementowaliśmy 3 popularne algorytmy przeszukiwania lokalnego: Tabu Search [3][5][2][6], stworzony przez F. Glovera, Simulated Annealing (Symulowane Wyżarzanie) [5][2][6], S. Kirkpatricka oraz Random Search [5]. Każdy z nich korzysta z przeglądu sąsiedztwa danego rozwiązania (które w określonej iteracji zwane jest rozwiązaniem bieżącym). Zdefiniowaliśmy 2 typy sąsiedztwa swap oraz insert. Algorytm RS jest najprostszym z trzech zaimplementowanych. Algorytm ten w każdej iteracji losuje nowe rozwiązanie bieżące z sąsiedztwa obecnego rozwiązania. Jest on bardzo odporny na minima lokalne ale, jako że stale zmienia rozwiązanie bieżące, nie jest w stanie precyzyjnie przeszukać żadnego sąsiedztwa. Algorytm SA posługuje się podstawowym parametrem temperatury. W czasie działania algorytmu temperatura ta spada. Na początku SA działa podobnie do RS, zaś wraz ze spadkiem temperatury zaczyna akceptować tylko rozwiązania lepsze od obecnego, dzięki czemu coraz dokładniej przegląda sąsiedztwo i zsuwa się do minimum. Algorytm TS działa podobnie do SA przy niskich temperaturach, jednak akceptuje, jako nowe bieżące, tylko te rozwiązania, które nie znajdują się na liście tabu. Tutaj podstawowym parametrem jest długość tej listy. Lista zabronionych rozwiązań utrudnia zagrzebanie się w minimum lokalnym. Każdy z w/w algorytmów zapamiętuje rozwiązanie bieżące jako najlepsze, jeśli jest ono lepsze od najlepszego dotychczas. 4. ŚRODOWISKO SYMULACYJNE W celu badania efektywności i specyfiki działania opisanych algorytmów dla zamodelowanego problemu, stworzyliśmy komputerowy system eksperymentowania. Jest to program napisany w jęz. C++ i działający w systemie Windows w środowisku konsolowym. Staraliśmy się go projektować pod kątem dania wielu możliwości badaczowi, w kwestii projektowania serii badań i analizy wyników. Stworzony przez autorów program, można uruchamiać z parametrami lub bez. Aplikacja umożliwia kilka trybów pracy. Pierwszy z nich to tryb demonstracyjny pokazuje pracę algorytmów DF i FF w jednokrotnym przebiegu symulacji alokacji krokowo, graficznie, tak jak na rys. 1. Kolejne 3 tryby umożliwiają wprowadzenie wszystkich potrzebnych danych i wykonanie jednokrotnego badania dla każdego z głównych algorytmów np. w celu kalibracji wartości parametrów pod kątem późniejszych serii badań. Dodatkowo możliwe jest wczytanie serii badań z pliku (przy użyciu odpowiedniej opcji w programie lub przy uruchomieniu z parametrem). Podsumowując: przy użyciu naszego programu można badać 3 zaimplementowane algorytmy w zależności od parametrów (takich jak liczba iteracji, temperatura początkowa i końcowa, długość listy tabu etc. od 4 do 7 parametrów dla każdego

algorytmu) i w zależności od typu danych wejściowych (można generować różnej długości listy zadań, różnej wielkości zadania, różnej wielkości siatki). Można planować serie badań i podawać je z pliku, można też wszystkie wyniki zapisywać do wielu lub jednego plików wyjściowych. Możliwe jest włączenie powtarzania badań w celu uśrednień, wykonywanie badań dla wielu lub jednej listy zadań itd. Wyniki można analizować w arkuszu kalkulacyjnym. Więcej informacji na temat naszego programu oraz formatów używanych plików można uzyskać, uruchamiając go z parametrem h, lub bezpośrednio z pliku pomocy help.txt. 5. BADANIA Wykonaliśmy przykładową serię badań dla wszystkich algorytmów i różnych parametrów w celu ogólnego porównania ich efektywności. Badania wykonywaliśmy dla instancji problemu określonej w tabeli 1. Mamy tu do czynienia ze zróżnicowaną wielkością zadań względem wymiarów siatki (przypadek ogólny). Wszystkie algorytmy działały przez 20000 iteracji (każde wykonanie trwało około 100 s). Tabela 1. Ustawienia listy zadań i siatki dla przykładowej serii badań. Zmienna w h t p i q i s i Wartość 12 12 1000 2 12 2 12 2 12 U [%] 89 88 87 86 85 84 83 82 81 80 79 78 SA od RS TS i FF 0 500 1000 1500 2000 2500 temp max (SA) SA FF RS T S Rys. 2. Wyniki SA w zależności od temperatury początkowej względem pozostałych algorytmów. Badania wykonaliśmy dla różnych temperatur początkowych SA, różnych długości listy tabu w TS. We wszystkich przypadkach użyliśmy funkcji DF do zainicjowania oraz w trakcie działania algorytmów. Temperatura końcowa w SA była

stała, profil spadku temperatury był geometryczny. Każde badanie było powtórzone 3- krotnie w celu uśrednienia wyników. Seria badań była załadowana z 1 pliku wejściowego. Najskuteczniejszy okazał się algorytm SA. Niezależnie od temperatury dawał on lepsze wyniki od najlepszego dla TS i RS oraz o około 10% lepsze od samego FF. Rys. 2. przedstawia wykres wartości funkcji celu w SA, w zależności od temperatury początkowej, względem najlepszych wyników z pozostałych algorytmów. Taki rezultat można tłumaczyć elastycznością SA, jeśli chodzi o połączenie odporności na minima lokalne oraz możliwości precyzyjnego poprawiania wyniku. Widać też, że początkowa temperatura ma kluczowe znaczenie dla działania SA. 6. PODSUMOWANIE Projektowanie oprogramowania do badania efektywności określonych algorytmów w rozwiązywaniu określonego problemu jest zadaniem złożonym. Projektant musi wziąć pod uwagę rozmaite czynniki, takie jak zdefiniowanie sposobu oceny jakości algorytmów czy określenie ich parametrów. Musi on też umożliwić użytkownikowi wygodne wykonywanie rozmaitych testów pod wieloma kątami. Nasze oprogramowanie staraliśmy się projektować mając te cele na uwadze i mamy nadzieję, że daje ono dosyć szerokie możliwości wykonywania rzetelnych badań. LITERATURA [1] BUZZBEE B, The Efficiency of Parallel Processing, Frontiers of Supercomputing, Los Alamos, 1983. [2] EMDEN-WEINART T., Local Search Algorithms and Metaheuristics, http://home.arcor.de/emden- Weinert/localsearch.html, 23 stycznia 2009. [3] GLOVER F., Tabu search, Kluwer Academic Publishers, 1997. [4] HERTZ A. TAILLARD E. WERRA D., A tutorial on taboo search, http://www.cs.colostate.edu/~whitley/cs640/hertz92tutorial.pdf, 23 stycznia 2009. [5] LICHTENSTEIN M., Algorytmy lokalnego przeszukiwania, ftp://ender.iiar.pwr.wroc.pl/automatyka/pta/ls.pdf, 23 stycznia 2009. [6] TROJANOWSKI K., Metaheurystyki praktycznie, WSISiZ, Warszawa, 2005. COMPUTER SYSTEM FOR RESEARCHING THE EFFICIENCY OF METAHEURISTIC ALLOCATION ALGORITHMS This article contains a short description of an experimentation system designed to test the efficiency of metaheuristic local search algorithms in two-dimensional task allocation. It defines the problem, methods of evaluation, gives a brief summary of the algorithms and describes the main ideas behind our simulation software. There is also an example of an experiment performed with our software.