Wykorzystanie algorytmów mrówkowych w dynamicznym problemie

Transkrypt

Wykorzystanie algorytmów mrówkowych w dynamicznym problemie
Wstęp
ACO
ACO+VRP
Wykorzystanie algorytmów mrówkowych w
dynamicznym problemie marszrutyzacji
Grzegorz Graczyk
Promotor: dr inż. Aneta Poniszewska-Marańda
Współpromotor: mgr inż. Łukasz Chomątek
18 stycznia 2013
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Przedmiot i cele pracy dyplomowej
Problem komiwojażera
Problem marszrutyzacji
Przedmiot i cele pracy dyplomowej
Przedmiotem pracy dyplomowej jest implementacja algorytmu
mrówkowego dla wybranego problemu. Problem marszruty posiada
wiele rozszerzeń z pośród których należy wybrać część, która
zostanie rozważona.
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Przedmiot i cele pracy dyplomowej
Problem komiwojażera
Problem marszrutyzacji
Problem komiwojażera
Definicja
Problem optymalizacyjny polegający na znalezieniu najkrótszego
cyklu odwiedzającego wszystkie wierzchołki w pełnym grafie
ważonym.
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Przedmiot i cele pracy dyplomowej
Problem komiwojażera
Problem marszrutyzacji
Rozwiązania
Problem NP-Trudny
n! możliwych tras
Algorytm dynamiczny: O(n2 · 2n )
Programowanie liniowe (do 200 miast)
Aktualny rekord to rozwiązanie dla 85900 wierzchołków przy użyciu
metody podziału i odcinania. Czas obliczeń: 136 lat procesora.
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Przedmiot i cele pracy dyplomowej
Problem komiwojażera
Problem marszrutyzacji
Rozwiązania
Problem NP-Trudny
n! możliwych tras
Algorytm dynamiczny: O(n2 · 2n )
Programowanie liniowe (do 200 miast)
Aktualny rekord to rozwiązanie dla 85900 wierzchołków przy użyciu
metody podziału i odcinania. Czas obliczeń: 136 lat procesora.
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Przedmiot i cele pracy dyplomowej
Problem komiwojażera
Problem marszrutyzacji
Problem marszrutyzacji
Rozszerzenie problemu komiwojażera.
Definicja
Problem polega na dostarczeniu dostaw do określonych
wierzchołków. Ograniczenia uwzględniane przez problem:
Ograniczona pojemność ciężarówki
Niepodzielność dostawy
Określony punkt początkowy i końcowy
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Przedmiot i cele pracy dyplomowej
Problem komiwojażera
Problem marszrutyzacji
Rozszerzenie problemu marszrutyzacji
Problemy umożliwiające uwzględnienie okien czasowych (VRP
with Time Windows) odbioru/wysłania towaru.
Problemy w których kosztowa funkcja celu zastąpiona została
innymi parametrami (np. czas wykonania zleceń, długość tras,
ilość przewiezionego ładunku)
Problemy uwzględniające niehomogeniczność taboru
Dynamiczne zmiany w parametrach problemu (DVRP)
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Przedmiot i cele pracy dyplomowej
Problem komiwojażera
Problem marszrutyzacji
Rozwiązanie
Problem składa się z dwóch podproblemów:
1
Problem plecakowy wybierający towary, a zarazem klientów
danej ciężarówki (bądź jej konkretnego kursu).
2
Problem komiwojażera dla określonej ciężarówki załadowanej
określonym towarem.
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Algorytm mrówkowy
Inny przykład
Obliczenia równoległe
Algorytm mrówkowy
Definicja
Algorytm mrówkowy jest algorytmem probabilistycznym służącym
najkrótszej ścieżki w grafie. Symuluje on zachowanie rzeczywistych
mrówek, które chodzą losowo w oparciu o natężenie feromonu
zostawionego przez inne mrówki.
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Algorytm mrówkowy
Inny przykład
Obliczenia równoległe
Klasyczny przykład
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Algorytm mrówkowy
Inny przykład
Obliczenia równoległe
Inny przykład
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Algorytm mrówkowy
Inny przykład
Obliczenia równoległe
Co się stanie jeśli zasymulujemy 100 mrówek. Każda mrówka
zostawia α feromonu na całej trasie.
α
= 0.01 + α · 0.1
10
α
FR = 0.99 + 99 ·
= 0.99 + α · 9
11
FL = 0.01 + 1 ·
FL
0.01
>
FR
0.99
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Algorytm mrówkowy
Inny przykład
Obliczenia równoległe
Obliczenia równoległe
Budowa algorytmu mrówkowego umożliwia niemal dowolne
wprowadzenie obliczeń równoległych. W danej epoce jednostka
obliczeniowa może wykonać obliczenia dla dowolnej ilości mrówek.
Z punktu widzenia wartości oczekiwanej jednostki mogą prowadzić
własne niezależne symulacje uwzględniające modyfikacje
feromonów dokonując co pewien czas synchronizacji zmian z
innymi węzłami.
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Dostępna literatura
Co można zrobić?
Technologia
Dostępna literatura
Bogate zasoby ogólnodostępne:
IEEE
Cirrelt
CiteSeerX
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Dostępna literatura
Co można zrobić?
Technologia
Algorytm mrówkowy wydaje się być bardzo dobrym rozwiązaniem
jeśli chodzi o dynamicznie zmieniające się środowisko.
Rozwiązanie nie powinno ulec znaczącej zmianie jeśli zmianie
uległa mała część środowiska.
Z macierzy feromonów można odczytać nie tylko najlepsze
rozwiązanie, ale też inne rozwiązania o małym koszcie.
Można zmodyfikować algorytm by rozwiązania dobre nigdy nie
znikały w pełni z macierzy feromonów (ograniczenie
przepustowości ścieżek).
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem
Wstęp
ACO
ACO+VRP
Dostępna literatura
Co można zrobić?
Technologia
Technologia
Część obliczeniowa w formie biblioteki
Interfejs graficzny w języku C#
Możliwość testowania na rzeczywistych danych, np.
OpenStreetMap
Grzegorz Graczyk
Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Podobne dokumenty