• Nie Znaleziono Wyników

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
7
0
0

Pełen tekst

(1)

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 NP- trudnego 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)

(2)

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 można wyznaczyć minimalno kosztowe drzewo rozpinające o całkowitym koszcie wynoszącym

. (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.

(3)

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 w taki sposób, że losuje nową wartość górnej granicy z zakresu

(7) 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 .

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

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*

(4)

Instancje AMU TS PMU

Instancje AMU TS PMU

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)

(5)

Instancje AMU TS PMU

Instancje AMU TS PMU

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)

(6)

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:

(8) 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%.

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)

[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.

Cytaty

Powiązane dokumenty

W niniejszej pracy przedstawiamy nowy algorytm heurystyczny oraz al- gorytm popraw (którego punktem startowym jest rozwiązanie wyznaczone przez algorytm heurystyczny) dla

b) wierzchołka, połączonego krawędzią nie wspólna, przy czym spośród kilku możliwości wybierz taki wierzchołek, którego lista krawędzi jest najkrótsza (w

Prezentowany w pracy algorytm, oparty na ogólnej idei poszukiwania z zabronieniami, będziemy dalej oznaczać CSTTS (ang. Central Spanning Tree Taboo Search).. Bazuje on na

Wybrać pozycję najlepszą, na właściwej maszynie (pozycja o najmniejszej długości najdłuższej ścieżki przechodzącej przez wkładaną operację)...

Problemy te okazują się być istotne, jako że minimalny profil kognitywny, emocjonalny i motywacyjny silnie oddziałuje nie tylko na relację student - student, ale również

2O parto się między innym i n a norm ach TRD (Technische Regeln für Dampfkessel): N° 301 i N° 508... U kład pracuje stabilnie i nie zachodzi obawa o zm niejszenie

Przykład wzoru rozkroju niemożliwego do uzyskama przez

A tw o-stage decoding procedure is