Algorytm perturbacyjny dla problemu minimalizacji maksymalnego żalu minimalnego drzewa rozpinającego

Podobne dokumenty
ALGORYTM POSZUKIWANIA Z ZABRONIENIAMI DLA PROBLEMU CENTRALNEGO DRZEWA ROZPINAJĄCEGO

a) 7 b) 19 c) 21 d) 34

Minimalne drzewa rozpinające

Metody Programowania

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

Algorytmy heurystyczne w UCB dla DVRP

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

Sprawozdanie do zadania numer 2

Rozdział 8 PROGRAMOWANIE SIECIOWE

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

ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

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

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Wykład 8. Drzewo rozpinające (minimum spanning tree)

ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO

System wspomagania harmonogramowania przedsięwzięć budowlanych

SYSTEM WSPOMAGANIA HARMONOGRAMOWANIA PRZEDSIĘWZIĘĆ BUDOWLANYCH

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

Metody Optymalizacji: Przeszukiwanie z listą tabu

Metody optymalizacji dyskretnej

Teoria obliczeń i złożoność obliczeniowa

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

Algorytmika Problemów Trudnych

WIELOKRYTERIALNE PORZĄDKOWANIE METODĄ PROMETHEE ODPORNE NA ZMIANY WAG KRYTERIÓW

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Wybrane podstawowe rodzaje algorytmów

Problemy z ograniczeniami

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

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

Metody numeryczne w przykładach

Algorytmiczna teoria grafów

AUTOMATYZACJA PROCESÓW DYSKRETNYCH 2016

Zadania laboratoryjne i projektowe - wersja β

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

ZESZYTY NAUKOWE POLITECHNIKI ŚLĄSKIEJ 2008 Seria: AUTOMATYKA z. 199 Nr kol. 1999

Optymalizacja ciągła

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Programowanie sieciowe. Tadeusz Trzaskalik

TEORETYCZNE PODSTAWY INFORMATYKI

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Znajdowanie skojarzeń na maszynie równoległej

IMPLEMENTACJA I PORÓWNANIE WYDAJNOŚCI WYBRANYCH ALGORYTMÓW GRAFOWYCH W WARUNKACH OBLICZEŃ RÓWNOLEGŁYCH

Algorytmy kombinatoryczne w bioinformatyce

NIETYPOWE WŁASNOŚCI PERMUTACYJNEGO PROBLEMU PRZEPŁYWOWEGO Z OGRANICZENIEM BEZ PRZESTOJÓW

Matematyczne Podstawy Informatyki

Aproksymacja funkcji a regresja symboliczna

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

Heurystyczne metody przeszukiwania

Projektowanie i analiza algorytmów

Sposoby wyznaczania odpornych tras komiwojażera w przedsiębiorstwie

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

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Luty 2001 Algorytmy (4) 2000/2001

Kombinatoryczne problemy optymalizacyjne to problemy wyboru najlepszego rozwiązania z pewnego zbioru rozwiązań

Programowanie dynamiczne i algorytmy zachłanne

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Algorytmy i Struktury Danych

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

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

POISSONOWSKA APROKSYMACJA W SYSTEMACH NIEZAWODNOŚCIOWYCH

Optymalizacja. Wybrane algorytmy

Optymalizacja. Symulowane wyżarzanie

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Ogólne wiadomości o grafach

Wykład 9: Markov Chain Monte Carlo

Spacery losowe generowanie realizacji procesu losowego

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

Podstawy Informatyki. Sprawność algorytmów

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Tworzenie gier na urządzenia mobilne

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Systemy uczące się Lab 4

HEURYSTYCZNY ALGORYTM SZEREGOWANIA ZADAŃ W SYSTEMIE MASZYN RÓWNOLEGŁYCH Z KRYTERIUM MINIMALNO-CZASOWYM

Programowanie nieliniowe

TEORIA GRAFÓW I SIECI

TEORETYCZNE PODSTAWY INFORMATYKI

Podejście zachłanne, a programowanie dynamiczne

Matematyka dyskretna - 7.Drzewa

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

NOWE WARIANTY OPERATORÓW GENETYCZNYCH DLA PROBLEMÓW Z KRYTERIUM SUMACYJNYM

Seminarium IO. Zastosowanie algorytmu UCT w Dynamic Vehicle Routing Problem. Michał Okulewicz

Programowanie genetyczne - gra SNAKE

PODEJMOWANIE DECYZJI W WARUNKACH NIEPEŁNEJ INFORMACJI

Kombinacja jądrowych estymatorów gęstości w klasyfikacji - zastosowanie na sztucznym zbiorze danych

8. Drzewa decyzyjne, bagging, boosting i lasy losowe

Grafy i sieci w informatyce - opis przedmiotu

Zaawansowane programowanie

Wielokryteriowa optymalizacja liniowa

Złożoność obliczeniowa klasycznych problemów grafowych

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Teoretyczne podstawy informatyki

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Wykładnicze grafy przypadkowe: teoria i przykłady zastosowań do analizy rzeczywistych sieci złożonych

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Transkrypt:

Algorytm perturbacyjny dla problemu minimalizacji maksymalnego żalu minimalnego drzewa rozpinającego Mariusz MAKUCHOWSKI Politechnika Wrocławska, Instytut Informatyki Automatyki i Robotyki 50-370 Wrocław, Wybrzeże Wyspiańskiego 27, e-mail: mariusz.makuchowski@pwr.wroc.pl Streszczenie: W pracy analizuje się problem znajdowania odpornego drzewa rozpinającego. Problem ten polega na wyznaczeniu minimalnego drzewa rozpinającego graf przy niepewnych kosztach krawędzi. Należy wyznaczyć takie drzewo, aby zminimalizować różnicę kosztów pomiędzy wybranym drzewem a drzewem optymalnym. Należy przy tym uwzględnić wszystkie możliwe realizacje kosztów krawędzi. Zagadnienie to należy do klasy problemów NP-trudnych. W pracy proponuje się algorytm, oparty na metodzie perturbacji kosztów dedykowany rozpatrywanemu problemowi. Praca zawiera także wyniki eksperymentów numerycznych testujących efektywność proponowanego algorytmu oraz porównuje go z literaturowymi algorytmami. Badania dokonane są na bardzo dużej liczbie różnorodnych przykładów testowych zaczerpniętych z literatury. Słowa kluczowe: problem odpornego drzewa rozpinającego, drzewo rozpinające, metoda perturbacji kosztów, optymalizacja odporna. 1. Wprowadzenie W realnym świecie często zdarza się, iż musimy podejmować decyzję przy nieznanych parametrach np. decyzję o zakupie letniego stroju kąpielowego bez gwarancji, ciepłego lata. Jakość podjętej decyzji możemy ocenić dopiero z perspektywy czasu, co więcej także dopiero z tej perspektywy widzimy jakie byłoby optymalne działanie z naszej strony. Ponieważ w chwili podejmowania decyzji nie jesteśmy w stanie ocenić jej faktycznej wartości, często stosuje się oceny pośrednie, takie jak analizę najgorszego przypadku, czy analizę wartości oczekiwanej. W niniejszej pracy kryterium oceniającym daną decyzję jest analiza największego żalu. W naszym rozumieniu żalem nazywa się różnicę pomiędzy wartością uzyskaną z podjętej decyzji a hipotetyczną wartością uzyskaną dla decyzji, która z perspektywy czasu uważana byłaby za optymalną. Ponieważ nie jesteśmy w stanie przewidzieć przyszłości, staramy się aby największy żal jaki może nas spotkać był możliwie jak najmniejszy. Niektóre z łatwych problemów (należących do klasy P) posiadających precyzyjne dane, przy zmianie parametrów na nieprecyzyjne i transformowaniu kryterium oceny do żalu, stają się problemami trudnymi (należącymi do klasy NP-trudnych). Tak jest także w przypadku rozpatrywanego w niniejszej pracy NPtrudnego problemu minimalizacji maksymalnego żalu minimalnego drzewa rozpinającego, (ang. minmax regret minimum spanning tree problem), który wywodzi się z klasycznego łatwego problemu minimalnego drzewa rozpinającego (ang. minimum spanning tree problem). 2. Problem odpornego drzewa Jednym z podstawowych problemów badań operacyjnych jest wyznaczenie minimalno kosztowego drzewa rozpinającego (ang. minimum spinning tree). Drzewem rozpinającym spójny nieskierowany graf nazywamy dowolny acykliczny spójny podgraf tego grafu. Zbiór wszystkich drzew rozpinających dany graf będziemy oznaczać przez. Liczba drzew rozpinających graf, zależy, zarówno od jego struktury jak i od rozmiaru. Dla grafów pełnych zależy ona wykładniczo od ilości wierzchołków w grafie i wynosi. (1)

Dla grafów z obciążonymi krawędziami można wyznaczyć koszt dowolnego drzewa rozpinającego jako sumę obciążeń krawędzi wchodzących w jego skład. Problem minimalno kosztowego drzewa rozpinającego polega na wybraniu z wszystkich możliwych drzew rozpinających dany graf, drzewa o najmniejszym koszcie. Problem ten jest rozwiązywany w wielomianowym czasie przez algorytm Prima[14] czy Kruskala[11]. W analizowanym problemie wagi obciążeń krawędzi nie są znane. Dla każdej krawędzi podany jest zakres możliwych jej realizacji. Konkretną realizację wszystkich wag krawędzi nazywamy scenariuszem i oznaczamy przez. Zbiór wszystkich możliwych scenariuszy oznaczamy przez. Koszt wagi krawędzi w scenariuszu oznaczmy przez ;. Dla danego drzewa jego koszt zależy od scenariusza i wynosi on. (2) Dla scenariusza wynoszącym można wyznaczyć minimalno kosztowe drzewo rozpinające o całkowitym koszcie. (3) Dla każdego drzewa i scenariusza możemy wyznaczyć żal, będący różnicą pomiędzy kosztem danego drzewa a kosztem minimalnego drzewa dla zadanego scenariusza. (4) Maksymalnym żalem drzewa nazywamy:. (5) Analizowany w pracy problem polega na wyznaczeniu drzewa o minimalnej wartości maksymalnego żalu;. (6) 3. Przegląd literatury W literaturze analizowany jest również szczególny przypadek analizowanego problemu, w którym wszystkie koszty krawędzi mogą przyjmować wartości z przedziału [0,1]. Tak zredukowany problem nosi nazwę problemu centralnego drzewa rozpinającego (ang. Central spinning tree). W pracy [4] pokazano, iż nawet tak zredukowana wersja problemu jest już silnie-np-trudna. Pierwszą metodę dokładnego rozwiązania rozpatrywanego problemu zaproponowano w pracy [16]. Opierała się ona na programowaniu całkowito liczbowym (MIP) i autorzy rozwiązywali nią instancje mające do 25 wierzchołków w grafie. W pracach [1][12] zaproponowano algorytmy oparte na metodzie podziału i ograniczeń które były wstanie dostarczyć rozwiązań dla grafów zawierających do 40 wierzchołków. W pracy [10] zaproponowano wielomianowy 2-aproksymacyjny algorytm konstrukcyjny, natomiast w [13] przedstawiony został przybliżony algorytm popraw bazujący na metodzie symulowanego wyżarzania. Najwydajniejszy pod względem jakości rozwiązań dla dużych instancji (nie dających się rozwiązać algorytmami dokładnymi [1][12]) jest algorytm zaproponowany w pracy [9] bazujący na metodzie poszukiwań z zabronieniami. 4. Algorytm perturbacyjny Algorytmy perturbacyjne są modyfikacją istniejących algorytmów, najczęściej konstrukcyjnych. Idea algorytmu perturbacyjnego polega na wielokrotnym zaburzeniu danych wejściowych a następnie rozwiązanie otrzymanego problemu pewnym algorytmem zwanym dalej bazowym. Tak uzyskane rozwiązanie zaburzonego problemu testowane jest na oryginalnych, niezmienionych danych wejściowych. Po wykonaniu ustalonej liczby iteracji algorytm kończy działanie zwracając najlepsze napotkane rozwiązanie (najlepsze w sensie wartości funkcji celu dla oryginalnych danych). Pseudo kod algorytmu perturbacyjnego przedstawiony jest na rysunku 1.

Krok 1: wczytaj dane problemu D Krok 1a: podstaw za x* rozwiązanie uzyskane Bazowym Algorytmem dla oryginalnych danych D Krok 2: powtórz N razy Krok 2a: zaburz losowo oryginalne dane D tworząc dane D Krok 2b: uruchom Bazowy Algorytm na zaburzonych danych D uzyskując rozwiązanie x Krok 2c: jeżeli x na oryginalnych dalnych D jest lepszym rozwiązaniem niż najlepsze znalezione x* to podstaw x*=x Krok 3: zwróć najlepsze znalezione rozwiązanie x* Rys1. Pseudo kod algorytmu perturbacyjnego Niewątpliwie podstawowym elementem jest posiadanie szybkiego algorytmu dostarczającego rozwiązania wysokiej jakości. W przypadku analizowanego problemu będą to dwa algorytmy AM i AU opisane w pracy[8]. Dla problemów optymalizacji dyskretnej, w których także danymi wejściowymi jest graf z obciążonymi krawędziami stosuje się różne warianty zaburzania kosztów. W pracy [15] proponuje się algorytmy zaburzające wszystkie obciążenia krawędzi. Ponadto poprzez odpowiednie zaburzanie można uzyskuje się efekt intensyfikacji lub dywersyfikacji obliczeń. Intensyfikację obliczeń uzyskuje się poprzez takie zaburzenie kosztów by promowały krawędzie wybierane w wcześniejszych iteracjach algorytmu. Natomiast dywersyfikację uzyskujemy poprzez zaburzanie kosztów w przeciwny sposób. Prezentowany algorytm zaburza górne granice przedziałów wag wartości nową wartość górnej granicy z zakresu w taki sposób, że losuje gdzie jest numerem bieżącej iteracji a jest numerem ostatniej iteracji algorytmu. W badaniach sprawdzane były, także sposoby zaburzania opisane w pracy [15], lecz nie dawały one znacząco lepszych rezultatów niż prezentowana wersja. Jako algorytm bazowy zostały użyte równocześnie dwa algorytmy konstrukcyjne AM i AU. Algorytm AM dostarcza minimalne drzewo rozpinające dla grafu w którym wartości obciążeń krawędzi wynoszą dokładnie, natomiast algorytm AU dostarcza minimalne drzewo rozpinające dla grafu obciążeniami krawędzi równymi. Podczas pracy algorytmu perturbacyjnego każde z rozwiązań otrzymanych algorytmem AM i AU jest testowane na oryginalnych danych i może stać się najlepszym znalezionym rozwiązaniem. (7) 5. Badania numeryczne Wszystkie prezentowane wyniki badań w szczególności czasy pracy algorytmów uzyskane były na komputerze klasy PC wyposażonym w procesor Core2Duo E6750 2,66GHz, 4GB pamięci RAM, pracującym w systemie Windows 7. Algorytmy zaprogramowane zostały jako jednowątkowe w środowisku DEV C++ 4.9.9.1. Prezentowany algorytm został porównany na przykładach wygenerowanych według koncepcji badaczy zajmujących się analizowanym problemem. Pierwsze 2 klasy przykładów Yaman1, Yaman4 zaproponowano w pracy [16]. Praca ta opisuje konstrukcję sześć klas przykładów z których na potrzeby przeprowadzanych w niniejszej pracy badań wybrano klasę 1 i 4. Kolejne dwie klasy przykładów Hente1, Hente2 opisane zostały w pracy [1]. Kolejne dwie klasy Monte1, Monte3 wygenerowano według przepisu zawartego w pracy[12], przy czym z 3 klas instancji proponowanych, wybrano klasę 1 i 3. Przykłady Kaspe1 opisane zostały w pracy [7] natomiast przykłady X2C w pracy[9]. Każda z klas składa się z 10 grup a w każdej grupie jest 10 instancji. W ramach danej grupy grafy posiadają jednakową liczbę wierzchołków, która zmienia się od 10 do 100. W badaniach użyto łącznie 800 przykładów testowych z których pierwszych 600 to przykłady ogólnego problemu drzewa odpornego a pozostałe 200 to przykłady jego szczególnego przypadku jakim są instancje problemu drzewa centralnego

Yaman1-10 2,27 0,00 0,30 Yaman4-10 0,50 0,00 0,10 Yaman1-20 2,22 0,00 0,29 Yaman4-20 0,43 0,00 0,07 Yaman1-30 0,78 0,00 0,00 Yaman4-30 0,33 0,00 0,02 Yaman1-40 0,93 0,00 0,18 Yaman4-40 0,39 0,00 0,02 Yaman1-50 0,51 0,00 0,14 Yaman4-50 0,21 0,00 0,08 Yaman1-60 0,57 0,00 0,21 Yaman4-60 0,15 0,00 0,08 Yaman1-70 0,23 0,00 0,08 Yaman4-70 0,09 0,00 0,06 Yaman1-80 0,30 0,00 0,22 Yaman4-80 0,09 0,00 0,09 Yaman1-90 0,16 0,00 0,12 Yaman4-90 0,06 0,00 0,06 Yaman1-100 0,10 0,00 0,09 Yaman4-100 0,04 0,00 0,04 0,81 0,00 0,16 0,23 0,00 0,06 Hente1-10 4,59 0,00 1,25 Hente2-10 4,59 0,00 1,25 Hente1-20 4,64 0,00 3,42 Hente2-20 3,91 0,00 0,99 Hente1-30 2,65 0,00 2,62 Hente2-30 2,14 0,06 0,84 Hente1-40 3,02 0,00 2,96 Hente2-40 2,79 0,04 2,21 Hente1-50 3,19 0,00 3,19 Hente2-50 2,93 0,03 2,90 Hente1-60 3,66 0,00 3,66 Hente2-60 2,89 0,09 2,89 Hente1-70 2,78 0,00 2,78 Hente2-70 3,56 0,25 3,41 Hente1-80 1,93 0,02 1,93 Hente2-80 2,86 0,07 2,83 Hente1-90 2,75 0,09 2,75 Hente2-90 3,27 0,10 3,27 Hente1-100 2,72 0,03 2,72 Hente2-100 3,43 0,07 3,43 3,19 0,01 2,73 3,24 0,07 2,40 Monte1-10 0,00 0,00 0,00 Monte3-10 0,14 0,00 0,00 Monte1-20 1,93 0,00 0,14 Monte3-20 2,56 0,00 0,06 Monte1-30 0,91 0,00 0,00 Monte3-30 1,56 0,00 0,22 Monte1-40 0,25 0,00 0,00 Monte3-40 2,41 0,00 0,19 Monte1-50 0,71 0,00 0,00 Monte3-50 1,38 0,01 0,31 Monte1-60 0,25 0,00 0,03 Monte3-60 1,78 0,01 0,41 Monte1-70 0,38 0,00 0,18 Monte3-70 2,38 0,02 0,52 Monte1-80 1,07 0,00 0,40 Monte3-80 1,67 0,01 0,57 Monte1-90 1,17 0,00 0,94 Monte3-90 2,01 0,00 0,74 Monte1-100 0,57 0,00 0,52 Monte3-100 1,71 0,01 0,75 0,72 0,00 0,22 1,76 0,01 0,38 Kaspe1-10 74,00 4,00 36,00 X2C-10 44,05 10,00 18,33 Kaspe1-20 81,00 28,00 61,00 X2C-20 29,38 18,48 21,86 Kaspe1-30 83,33 34,67 70,67 X2C-30 27,96 20,00 23,54 Kaspe1-40 85,50 45,00 74,50 X2C-40 23,89 18,80 20,71 Kaspe1-50 84,40 47,60 76,00 X2C-50 22,23 16,74 19,74 Kaspe1-60 87,33 54,67 78,00 X2C-60 23,78 20,42 21,89 Kaspe1-70 88,57 60,29 79,71 X2C-70 22,18 20,06 20,59 Kaspe1-80 87,50 62,50 80,50 X2C-80 23,09 20,59 21,53 Kaspe1-90 90,00 67,78 81,11 X2C-90 21,13 19,37 20,31 Kaspe1-100 86,80 66,80 81,60 X2C-100 18,45 16,29 17,37 84,84 47,13 71,91 25,61 18,08 20,59 Tab 1. Średni błąd rozwiązań algorytmu PMU względem rozwiązań algorytmu TS (TS 10 iteracji, PMU 160 perturbacji)

Yaman1-10 2,27 0,00 0,24 Yaman4-10 0,50 0,00 0,00 Yaman1-20 2,22 0,00 0,04 Yaman4-20 0,43 0,00 0,00 Yaman1-30 0,78 0,00 0,00 Yaman4-30 0,33 0,00 0,00 Yaman1-40 0,93 0,00 0,03 Yaman4-40 0,39 0,00 0,00 Yaman1-50 0,51 0,00 0,03 Yaman4-50 0,21 0,00 0,00 Yaman1-60 0,57 0,00 0,06 Yaman4-60 0,15 0,00 0,02 Yaman1-70 0,23 0,00 0,02 Yaman4-70 0,09 0,00 0,03 Yaman1-80 0,30 0,00 0,09 Yaman4-80 0,09 0,00 0,03 Yaman1-90 0,16 0,00 0,04 Yaman4-90 0,06 0,00 0,02 Yaman1-100 0,10 0,00 0,06 Yaman4-100 0,04 0,00 0,04 0,81 0,00 0,06 0,23 0,00 0,01 Hente1-10 4,59 0,00 0,78 Hente2-10 4,59 0,00 0,78 Hente1-20 4,64 0,00 1,51 Hente2-20 3,91 0,00 0,00 Hente1-30 2,65 0,00 1,85 Hente2-30 2,14 0,00 0,09 Hente1-40 3,02 0,00 2,96 Hente2-40 2,79 0,00 1,44 Hente1-50 3,19 0,00 3,10 Hente2-50 2,93 0,00 1,98 Hente1-60 3,66 0,00 3,54 Hente2-60 2,89 0,00 2,23 Hente1-70 2,78 0,00 2,78 Hente2-70 3,56 0,00 3,41 Hente1-80 1,93 0,00 1,93 Hente2-80 2,86 0,00 2,83 Hente1-90 2,75 0,00 2,75 Hente2-90 3,27 0,00 3,23 Hente1-100 2,72 0,00 2,72 Hente2-100 3,43 0,00 3,43 3,19 0,00 2,39 3,24 0,00 1,94 Monte1-10 0,00 0,00 0,00 Monte3-10 0,14 0,00 0,00 Monte1-20 1,93 0,00 0,00 Monte3-20 2,56 0,00 0,00 Monte1-30 0,91 0,00 0,00 Monte3-30 1,56 0,00 0,00 Monte1-40 0,25 0,00 0,00 Monte3-40 2,41 0,00 0,01 Monte1-50 0,71 0,00 0,00 Monte3-50 1,38 0,00 0,05 Monte1-60 0,25 0,00 0,00 Monte3-60 1,78 0,00 0,08 Monte1-70 0,38 0,00 0,00 Monte3-70 2,38 0,00 0,12 Monte1-80 1,07 0,00 0,00 Monte3-80 1,67 0,00 0,14 Monte1-90 1,17 0,00 0,13 Monte3-90 2,01 0,00 0,21 Monte1-100 0,57 0,00 0,01 Monte3-100 1,71 0,00 0,26 0,72 0,00 0,01 1,76 0,00 0,09 Kaspe1-10 74,00 0,00 20,00 X2C-10 44,05 0,00 1,67 Kaspe1-20 81,00 0,00 44,00 X2C-20 29,38 0,67 15,76 Kaspe1-30 83,33 0,00 59,33 X2C-30 27,96 1,39 19,13 Kaspe1-40 85,50 0,00 66,50 X2C-40 23,89 0,96 17,54 Kaspe1-50 84,40 0,00 70,40 X2C-50 22,23 0,26 18,25 Kaspe1-60 87,33 0,00 73,00 X2C-60 23,78 1,69 20,64 Kaspe1-70 88,57 0,00 74,29 X2C-70 22,18 0,72 19,88 Kaspe1-80 87,50 0,50 75,00 X2C-80 23,09 2,97 21,23 Kaspe1-90 90,00 1,33 76,44 X2C-90 21,13 2,05 19,63 Kaspe1-100 86,80 0,80 77,20 X2C-100 18,45 1,92 16,89 84,84 0,26 63,62 25,61 1,26 17,06 Tab 2. Średni błąd rozwiązań algorytmu PMU względem rozwiązań algorytmu TS (TS 1000 iteracji, PMU 16000 perturbacji)

Testowany algorytm perturbacyjny PMU porównany został z algorytmem AMU, (będącego połączeniem algorytmu AM i AU, oraz algorytmem TS opartym na metodzie poszukiwania z zabronieniami. Ponieważ w obydwóch porównywanych algorytmach można dowolnie wydłużać czas ich pracy uzyskując statystycznie lepsze rozwiązania badania zostały przeprowadzone dla dwóch wariantów badań tzn. szybkich mniej dokładnych oraz długotrwałych precyzyjniejszych obliczeń. W pierwszym badaniu dla każdego przykładu został uruchomiony algorytm TS działający przez 10 iteracji, a następnie uruchomiony został algorytm PMU działający 160 iteracji. Całkowity czas działania obu algorytmów był jednakowy i wnosił 120s. Następnie dla każdego z przykładów policzono względny błąd rozwiązania, według wzoru: gdzie oznaczają kolejno uzyskane drzewa rozpinające algorytmem TS, PMU i rozwiązanie referencyjne, (najlepsze znalezione przez długotrwałe poszukiwania). Należy zwrócić uwagę, że obydwa porównywane algorytmy TS i PMU zaczyna swoje poszukiwania od rozwiązania uzyskanego algorytmem AMU, a w kolejnych krokach swego działania poprawiają te rozwiązanie. Tabela 1 zawiera średnie wartości błędów liczone dla dziesięciu instancji w każdej grupie. Druga seria badań została przeprowadzona analogicznie do badań z pierwszej serii, z tą różnicą, że oba algorytmy wykonywały po 100 razy więcej iteracji. Algorytm TS wykonywał 1000 iteracji dla każdej instancji w czasie 6585s, a algorytm PMU wykonywał 16000 perturbacji w czasie 7426s. Wyniki drugiej części badań zostały przedstawione w tabeli 2. W pierwszym teście średni błąd wszystkich 800 przykładów dla algorytmu TS wyniósł 8,16% podczas gdy algorytm PMU dostarczył rozwiązania z średnim błędem 13,31%. Stukrotne zwiększenie iteracji algorytmów skutkowało tym, że rozwiązania algorytmem TS polepszyły się do bardzo poziomu 0,19%, a w algorytmie PMU do 10,65%. (8) 6. Podsumowanie Dla analizowanego problemu minimalizacji maksymalnego żalu drzewa rozpinającego, algorytmy oparte na metodzie perturbacyjnej nie są w stanie dorównać w jakości osiąganych rozwiązań algorytmom opartym na metodach poszukiwania z zabronieniami. Badania pokazały iż algorytm TS przerwany po niesamowicie krótkim czasie działania tzn. 10 iteracjach (co jest w brew idei tego typu algorytmów) dostarcza i tak lepszych rozwiązań niż algorytm perturbacyjny działający ponad 60 razy dłużej. Algorytmy perturbacyjne bez dodatkowych technik nie nadają się do rozwiązywania analizowanego problemu. Warto zwrócić jednak uwagę, iż iteracje takiego algorytmu dostarczają bardzo szybko różnych rozwiązań, które można wykorzystać jako rozwiązania początkowe dla wielokrotnie uruchamianych algorytmów popraw. Literatura [1] Aron I., van Hentenryck P., A constaint satisfaction approach to the robust spanning tree with interval data. Proceesings of the 18th Conference on Uncertainty in Artifcial Intelligece. Edmond, Canada, 2002. [2] Aron I., Hentenryck P., On the complexity of the robust spanning tree problem with interval data. Operations Research Letters 32, 2004, 36-40. [3] Bang-Jensen J., Nikulin Y., Heuristics for the central tree problem. Journal of Heuristics 16, 2010, 663-651. [4] Bezrukov S., Kaderali F., Poguntke W., On central spanning trees of a graph. Lecture Notes Computer Science. 1120, 1996, 53-58. [5] Deo N., A central tree. IEEE Transactions on Circuit Theory, vol. ct-13, 1966, 439-440. [6] Harary F., Graph theory. Addison-Wesley Publ. Company, 1969.

[7] Kasperski A., Discrete optimalization with interval data: Minmax regret and fuzzy approach. Studies in Fuzziness and Soft Computing, vol 228. Springer-Verlag, Berlin Heidelberg 2008. [8] Kasperski A, Kobylański P, Kulej M, Zieli nski P., Minimizing maximal regret in discrete optimization problems with interval data. In: Issues in Soft Computing Decisions and Operations Research, O. Hryniewicz, J. Kacprzyk, D. Kuchta (eds.), Akademicka Oficyna Wydawnicza EXIT, Warsaw, 193 208, 2005. [9] Kasperski A., Makuchowski M, Zieliński P., A tabu search algorithm for the minmax regret minimum spanning tree problem with interval data, ( w recenzji ) [10] Kasperski A., Zieliński P., An approximation algorrithm for interwal data minmax regret combinatorial optimalization problems. Information Processing Letters, 97(5), 2006, 177-180. [11] Kruskal JB., On the shortest spanning subtree of graph and the trveling salesman problem. KProc. Amer. Math. Soc. 7, 1956, 48-50. [12] Montemanni R, Gambardella LM, A branch and bound algorithm for robust spanning tree problem with interval data. Operations Research Letters 161, 771-779, 2004. [13] Nikulin Y, Simulated annealing algorithm for the robust spanning tree problem. Journal of Heuristics 14: 391-402. [14] Prim RC., Shortest connection networks and some generalizations. Bell System Technical Journal 36, 1957, 1389-1401. [15] C. Ribeiro, E. Uchoa, R. Werneck, A hybrid GRASP with perturbations for the Steiner problem in graphs, Technical Report, Computer Science Department, Catholic University of Rio de Janeiro, 2001 [16] Yaman H, Karasan OE, Pinar MC, The robust spanning tree with interval data. Operations Research Letters 29, 31-40, 2001.