problem wagi
Transkrypt
problem wagi
Optymalizacja na sieciach - cd. wykład 6 Badania operacyjne Problem najkrótszych dróg - każda krawędź e ma swoją długość (wagę) w(e) (dodatnią lub ujemną) - przyjmujemy, że w(u,v) = ∞, jeżeli (u,v) ∉U - długość drogi w sieci to suma długości jej łuków - długość drogi v0 jest równa 0 - konsekwencja cykli o ujemnej wadze! 2 s 5 1 2 c -2 1 b 2 -4 d a 4 1 t Zał.: cykle o dodatniej długości Algorytm wyszukiwania najkrótszej drogi z s do t Etap I. Wyznacz najkrótsze drogi z s do każdego z pozostałych wierzchołków w sieci. Etap II. Wyznacz najkrótszą drogę z s do t. 2 s 1 1 2 c -2 1 b 2 2 d v s a b c d t D[v] 0 1 0 -1 1 2 a 4 1 t D[t] = D[v] + w(v, t) ... Algorytm Forda-Bellmana Dane wejściowe: sieć S = (P, U), długości łuków w: U → R Dane wyjściowe: macierz D odległości z s do wszystkich wierzchołków v dla każdego v ∈P podstaw D[v]:= w(s, v) D[s]:= 0 dla każdego k od 1do |P| - 2 wykonuj: dla każdego v ≠ s wykonuj: dla każdego u∈U wykonuj: D[v]:= min(D[v], D[u] + w(u, v)) Złożoność: O(n3) 2 s 1 1 2 c -2 1 b 2 2 d a 4 1 t Algorytm Dijkstry – dodatnie wagi Dane wejściowe: sieć S = (P, U), dodatnie długości łuków w: U → R+ Dane wyjściowe: macierz D odległości z s do wszystkich wierzchołków v dla każdego v ∈P podstaw D[v]:= w(s, v) D[s]:= 0 T:= P – {s} dopóki T ≠ ∅ powtarzaj: wybierz wierzchołek v ∈ Τ tż. D[u] = min{D[p]: p ∈Τ} T:= T – {u} dla każdego v ∈T podstaw D[v]:= min(D[v], D[u] + w(u, v)) Złożoność: O(n2) 1 s 5 1 a 1 1 3 c Iteracja u 0 1 2 3 4 5 b 1 T 1 d 4 1 t D[s] D[a] D[b] D[c] D[d] D[t] Problem minimalnego drzewa spinającego Dany jest graf nieskierowany G = (V, E) oraz wagi krawędzi w(e). Drzewem spinającym grafu G nazywamy dowolne drzewo (graf spójny acykliczny) T = (V, ET) tż. ET ⊆ Ε. Problem minimalnego drzewa spinającego Dany jest graf nieskierowany G = (V, E) oraz wagi krawędzi w(e). Minimalnym drzewem spinającym grafu G nazywamy drzewo spinające z minimalną sumą wag. 5 2 4 1 1 3 3 3 6 2 Problem minimalnego drzewa spinającego Dany jest graf nieskierowany G = (V, E) oraz wagi krawędzi w(e). Minimalnym drzewem spinającym grafu G nazywamy drzewo spinające z minimalną sumą wag. 5 2 3 4 1 1 3 3 6 2 Algorytm Kruskala [1956] Dane wejściowe: graf G = (V, E) z funkcją wagi w: E → R Dane wyjściowe: minimalne drzewo spinające T = (V, ET) ET:= ∅ Posortuj niemalejąco krawędzie E grafu G Dla każdej e ∈ E wstaw e do ET pod warunkiem, że nie tworzy cyklu w ET Złożoność: O(mlogm) Problem komiwojażera (TSP) Komiwojażer ma odwiedzić dokładnie raz każdą z wybranych miejscowości i powrócić do miejscowości, z której rozpoczął podróż. Znane są koszty przejazdu między każdą parą miejscowości. Należy zaplanować taką trasę, aby komiwojażer odwiedził każdą miejscowość dokładnie raz oraz całkowity koszt podróży był możliwie jak najmniejszy. problem NP-trudny ● ● wiele algorytmów przybliżonych polega na znalezieniu cyklu dł. n w n- wierzchołkowej sieci pełnej (cykl Hamiltona) ● odmiany TSP – asymetryczny TSP, TSP w sieci niepełnej, niekonieczny powrót do punktu wyjścia ● aktualny stan poszukiwań rozwiązań na stronie, np. http://www.tsp.gatech.edu/index.html Zastosowania TSP 1. Ramię automatycznej maszyny nitującej, rozmieszczającej nity, np. na skrzydle samolotu, porusza się od punktu do punktu i po umocowaniu n nitów wraca do punktu wyjścia. Optymalna droga poruszania się ramienia jest rozwiązaniem odpowiedniego problemu komiwojażera. 2. Zestaw maszyn wykorzystywany jest do wyprodukowania n elementów. Zamiana obrabianego elementu związana jest ze zmianą oprzyrządowania (koszty znamy). Szukamy optymalnej kolejności obrabiania elementów.