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