Optymalizacja sieci drogowej propozycja algorytmu
Jarosław Piersa
http://www.mat.uni.torun.pl/~piersaj
2007 – 10 – 09
Problem
X – źródła Y – odbiorcy T – połączenia
f – przepływ
X , Y ⊂ℝ
2T ⊂ X ×Y
f :T R
+Cel
Znaleźć optymalną “sieć drogową” dla (T, f)
minimalizującą koszt G = V ,E
h: E ℝ+
w G =
∑
∣e∣h e , ∈ 0,1Przykłądowe wejście
Wejście takie można uzyskać np. Za
pomocą algorytmów optymalizacji
transprtu bez
uwzględniania sieci drogowej
Propozycja algorytmu
Zbudować graf na podstawie połączeń między źródłąmi i
odbiorcami
Propozycja algorytmu
Obliczyć mapę
prawdopodobieństw
punktów znajdujących się w pobliżu krawędzi grafu.
Mapa powinna się
sumować jeżeli punkt
znajduje się w pobliżu kilku
krawędzi.
Mapę należy znormalizować.
Propozycja algorytmu
losowe modyfikacje grafu
Powtarzaj aż do zaakceptowania
Wylosuj punkt p z mapy prawdopodobieństw.
Zaakceptuj go z jego prawdopodobieństwem.
Znajdź wierzchołek v najbliższy p.
Przesuń v oraz jego sąsiadów w kierunku p w duchu algorytmu Kohonena.
v.x :=v.x1− p.x v.y :=v.y1− p.y
Propozycja algorytmu
losowe modyfikacje grafu
Połącz dwa pobliskie wieżchołki w grafie
Propozycja algorytmu
losowe modyfikacje grafu Rozłącz wierzchołek
mający dwóch sąsiadów Należy przy tym
pilnować przepływu i konsystencji problemu!!
Propozycja algorytmu
losowe modyfikacje grafu
Rozdzielanie X – kształtne wymaga nie tylko uwzględnienia optymalnego rozdziału, ale
również sprawdzenia struktury problemu.
Propozycja algorytmu
losowe modyfikacje grafu
Przesuń wierzchołek o (dx, dy). Zaakceptuj zmianę z
prawdopodobieństwem zależnym od zmiany kosztu. dx dy pochodzą np. z rozkładu N(0,1).
Wstaw wierzchołek na środku losowej krawędzi.
Usuń losowy wierzchołek o jednym wejściu i jednym wyjściu.
Propozycja algorytmu
losowe modyfikacje grafu
Co pewien czas
można wykrywać i usuwać anomalie w grafie oraz
dokonywać korekt parametrów,
prawdopodobieństw itp.
Wynik
Do zrobienia
● Rozdzielanie X – kształtne (poprawa)
● Wykrywanie i usuwanie innych typów anomalii
● Optymalizacja przydziału transportu
● Inne podejście (?)