Badania operacyjne Wykład 6.

Slides:



Advertisements
Podobne prezentacje
METODA PODZIAŁU I OGRANICZEŃ (Branch and Bound Method)
Advertisements

TRADYCYJNE METODY PLANOWANIA I ORGANIZACJI PROCESÓW PRODUKCYJNYCH
ANALIZA SIECIOWA PRZEDSIĘWZIĘĆ konstrukcja harmonogramu
DOMINOWANIE W GRAFACH Magdalena Lemańska.
Grafy spełniające nierówność Γ(G) < IR(G)
ALGORYTMY GRAFOWE.
Grażyna Mirkowska PJWSTK 15 listopad 2000
Literatura podstawowa
Metoda simpleks Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania.
Programowanie sieciowe
Grafy inaczej, czyli inne modele grafów
Homologia, Rozdział I „Przegląd” Homologia, Rozdział 1.
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
Algorytm Dijkstry (przykład)
ALGORYTMY I STRUKTURY DANYCH
Ciągi de Bruijna generowanie, własności
Programowanie liniowe całkowitoliczbowe
WYKŁAD 2. Kolorowanie wierzchołków
WYKŁAD 7. Spójność i rozpięte drzewa
WYKŁAD 8. Siła spójności Wierzchołek v nazywamy wierzchołkiem cięcia grafu G, gdy podgraf G-v ma więcej składowych spójności niż G. Krawędź e nazywamy.
WYKŁAD 8. Siła spójności A,B – dowolne podzbiory V(G)
GRAFY PLANARNE To grafy, które można narysować na płaszczyźnie tak, by krawędzie nie przecinały się (poza swoimi końcami). Na przykład K_4, ale nie K_5.
Algorytm Rochio’a.
Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź Simpleks jest uniwersalną.
Macierz incydencji Macierzą incydencji grafu skierowanego D = (V, A), gdzie V = {1, ..., n} oraz A = {a1, ..., am}, nazywamy macierz I(D) = [aij]i=1,...,n,
FP-Growth Adam Pieśkiewicz Kamil Niezręcki Krzysztof Grześkowiak
Algorytmy genetyczne.
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
Minimalne drzewa rozpinające
Przepływy w sieciach. Twierdzenie minimaksowe.
SKIEROWANE Marek Bil Krzysztof Fitrzyk Krzysztof Godek.
DMBO Sieci.
Graf - jest to zbiór wierzchołków, który na rysunku przedstawiamy za pomocą kropek oraz krawędzi łączących wierzchołki. Czasami dopuszcza się krawędzie.
Algorytmy i struktury danych
Badania operacyjne Wykład 5.
Sieci bayesowskie Wykonali: Mateusz Kaflowski Michał Grabarczyk.
ALGORYTMY ROZWIĄZYWANIA GIER C.D.
Systemy wspomagania decyzji
Początek, koniec lub przerwanie algorytmu
Algorytm Dijkstry 1 Zbiory: T - zbiór wierzchołków
DMBO Branch and bound.
Obliczalność czyli co da się policzyć i jak Model obliczeń sieci liczące dr Kamila Barylska.
Algorytmy i Struktury Danych
Wyszukiwanie maksimum funkcji za pomocą mrówki Pachycondyla Apicalis.
Zagadnienie i algorytm transportowy
Algorytmy Genetyczne Anna Tomkowska Politechnika Koszalińska
Drogi i cykle Eulera w grafach nieskierowanych
WĘDRÓWKI PO GRAFACH Obchody Eulera Cykle Hamiltona.
Algorytmy grafowe Minimalne drzewa rozpinające
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
WIELOKĄTY Karolina Zielińska kl.v Aleksandra Michałek kl v
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Grafy.
Zarządzanie projektami
Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Analiza sieci społecznych
Metody Badań Operacyjnych Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Zagadnienia transportowe Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Treść dzisiejszego wykładu l Postać standardowa zadania PL. l Zmienne dodatkowe w zadaniu PL. l Metoda simpleks –wymagania metody simpleks, –tablica simpleksowa.
Rozpatrzmy następujące zadanie programowania liniowego:
Działania na grafach Autor: Anna Targońska.
Elementy analizy sieciowej
Wstęp do Informatyki - Wykład 6
Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Kinga Cichoń.
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
Zarządzanie projektami
Zapis prezentacji:

Badania operacyjne Wykład 6

Idea branch and bound Mamy trzy zmienne decyzyjne x1 (zmienna całkowito-liczbowa) i dwie zmienne binarne x2 i x3 oraz ograniczenia 1 ≤ x1 ≤ 3, 0 ≤ x2 ≤ 1, 0 ≤ x3 ≤ 1 Poniżej jest drzewo pełnego wyliczenia możliwości [full enumeration tree] Zamiast budować całe drzewo na raz, buduj drzewo stopniowo, rozwijając tylko najbardziej obiecujące wierzchołki na każdym etapie. Najbardziej obiecujące wierzchołki są wskazywane poprzez estymowanie ograniczenia na najlepszą wartość funkcji celu, jaka może być osiągnięta poprzez rozwinięcie danego wierzchołka w następnych etapach.

Podstawowe pojęcia Rozgałęzianie [Branching] Ograniczanie [Bounding] Sądowanie [fathoming] Podcinanie [Prunning] Pojęcia: wierzchołek [node] każde częściowe lub pełne rozwiązanie liść [leaf node] pełne rozwiązanie pączek [bud node] częsciowe rozwiązanie dopuszczalne lub niedopuszczalne funkcja ograniczająca [bounding function] – metoda estymacji dla pączków, musi być optymistyczna rozgałęzianie [branching], rozwijanie [growing], ekspansja [expanding] wierzchołka – proces kreowania wierzchołków dzieci dla pączka tymczasowe rozwiązanie [incumbent] System selekcji zmiennych [variable selection policy] Reguły przycinania pączków Reguła zakończenia algorytmu Trzy popularne systemy selekcji wierzchołków [node selection policy] Best-first / global-best node selection Depth-first Breadth-first

Przykład – problem przyporządkowania Znaczenie wierzchołka w drzewie: Częściowe lub pełne przyporządkowanie ludzi do zadań System selekcji wierzchołków: global best System selekcji zmiennych: wybierz następne zadanie w naturalnej kolejności 1 do 4 Funkcja ograniczająca: dla nieprzyporządkowanych zadań wybierz najlepszą nieprzyporządkowaną osobę, nawet jeśli będzie wybrana parę razy Reguła zakończenia: kiedy wartość funkcji celu dla tymczasowego rozwiązania jest lepsza lub równa do wartości funkcji ograniczającej dla wszystkich pączków Sądowanie: rozwiązanie wygenerowane przez funkcję ograniczającą jest dopuszczalne jeśli każde zadanie jest przyporządkowane do różnych osób.

Jak powstają wartości funkcji ograniczającej? Popatrzmy na wierzchołek pierwszego etapu, który oznacza przyporządkowanie osoby A do zadania 1. Zbiór rozwiązań reprezentowanych przez ten wierzchołek to A??? Faktyczna wartość przyporządkowania A do zadania 1 to: 9 Najlepsza nieprzyporządkowana osoba dla zadania 2 to C, wartość: 1 Najlepsza nieprzyporządkowana osoba dla zadania 3 to D, wartość: 2 Najlepsza nieprzyporządkowana osoba dla zadania 4 to C, wartość: 2 Rozwiązanie funkcji ograniczającej to ACDC z kosztem całkowitym =9+1+2+2=14. Wiemy, że w najlepszym wypadku wartość funkcji celu dla wierzchołków pochodzących od A??? To 14. To nie jest dopuszczalne rozwiązanie, bo osoba C jest przyporządkowana do dwóch zadań. Osoba A jest faktycznie przyporządkowana.

Tworzymy drzewo Pierwszy etap: korzeń drzewa Drugi etap: Przycięte wierzchołki mają przerywane obrzeża Dopuszczalne wierzchołki mają pogrubione obrzeża Przycięte dopuszczalne wierzchołki mają to i to Wierzchołek C??? Jest wysądowany – pierwsze tymczasowe rozwiązanie dopuszczalne CBDA=13 To nam pozwala przyciąć wierzchołek A???, którego wartość funkcji ograniczającej wynosi 14. Dwa pączki, które dają nadzieję na poprawę B??? i D??? – global best: wybieramy D???

Tworzymy drzewo Trzeci etap: Nie ma nowych dopuszczalnych rozwiązań, czyli rozwiązanie tymczasowe się nie zmienia. Nowe wierzchołki nie mogą być przycięte poprzez porównanie z rozwiązaniem tymczasowym lub wysądowane. Wybieramy global best spośród B??? (9), DA?? (12), DB?? (10) oraz DC?? (12) A zatem B???

Tworzymy drzewo Czwarty etap: Sądujemy dwa wierzchołki BA?? oraz BC?? Nowe tymczasowe rozwiązanie dopuszczalne to BCDA=12 Wycinamy dotychczasowe rozwiązanie CBDA BA?? jest dopuszczalne, ale wycinamy w porównaniu z nowym rozwiązaniem tymczasowym Wycinamy wierzchołki DA?? i DC?? Poprzez porównanie z tymczasowym rozwiązaniem Gdybyśmy chcieli znaleźć wszystkie rozwiązania a nie tylko jedno możemy w przyszłości je analizować dalej Zostaje nam tylko jeden pączek DB??. Czwarty etap:

Tworzymy drzewo Piąty etap: DBAC ma lepszą wartość niż dotychczasowe rozwiązanie, zatem je zastępuje I wycina poprzednie DBCA jest wycięte poprzez porównanie z tymczasowym Nie ma innych pączków do ekspansji, więc kończymy Przeanalizowaliśmy 13 wierzchołków zamiast 24 Dla większych problemów znaczne przyspieszenie Piąty etap:

Dobra funkcja ograniczająca jest kluczem Problem komiwojażera: odwiedzić każde miasto dokładnie raz i powrócić do punktu wyjścia Załóżmy, że mamy częściowe rozwiązanie (pogrubione) Bardzo sprytna funkcja ograniczająca: minimalne drzewo rozpinające na wierzchołkach nieodwiedzonych i wierzchołku początkowym i końcowym częsciowej trasy

Centra teleinformatyczne Wprowadzenie do sieci Dwa główne elementy: Łuki (krawędzie) [arcs/edges] Wierzchołki [nodes] Graf [graph] to struktura, którą buduje się poprzez łączenie wierzchołków łukami Graf skierowany [directed graph] (digraf [digraph]) jest grafem, w którym łuki mają określony kierunek Sieć [network] to graf (lub digraf), w którym łuki mają przyporządkowany przepływ [flow] Oto parę prostych przykładów sieci: Wierzchołki Łuki Przepływ Miasta Autostrady Samochody Centra teleinformatyczne Przewody Przekazywane pakiety Łączenia rurociągów Rury Woda

Wprowadzenie do sieci Łańcuch [chain] to ciąg łuków łączących dwa wierzchołki i i j, np. ABCE, ADCE Ścieżka [path] to ciąg skierowanych łuków łączących dwa wierzchołki, np. ABDE, ale nie ABCE Cykl [cycle] to łańcuch który łączy wierzchołek z samym sobą bez żadnego powtarzania [retracing], np. ABCEDA, ale nie ABCDECBA Graf/sieć spójny/a [connected graph/network] ma tylko jedną część graf graf skierowany

Wprowadzenie do sieci Drzewo [tree] – graf spójny nie mający cyklów. Drzewo rozpinające [spanning tree] to drzewo wybrane spośród łuków w grafie lub w sieci tak, aby wszystkie wierzchołki w drzewie były połączone dwa drzewa rozpinające dwa drzewa Zdolność przepływowa [flow capacity] – górna (czasem też dolna) granica ilości przepływu danego łuku w sieci, np. maksymalna ilość wody w rurociągu Źródło [source] to wierzchołek który wprowadza przeływ do sieci Zlew [sink] to wierzchołek, który wyprowadza przepływ z sieci

Problem najkrótszej trasy [The shortest route problem] Sformułowanie: Dla danego grafu, w którym każdy łuk oznaczony jest poprzez dystans pomiędzy wierzchołkami, które on łączy, jaka jest najkrótsza trasa pomiędzy wierzchołkiem i i innym wierzchołkiem j. Na przykład: Jaka jest najkrótsza trasa pomiędzy A i H? ANIMACJA 1 Wyliczenie wszystkich możliwości [enumeration] – niepraktyczne Algorytm Dijkstra

Problem najmniejszego drzewa rozpinającego [minimum spanning tree] Sformułowanie: Dla danego grafu, w którym łuki są oznaczone poprzez odległości pomiędzy wierzchołkami, które łączą, znajdź drzewo rozpinające, które ma najmniejszą łączną długość Na przykład: Znajdź minimalną długość kabla, aby połączyć wszystkie biura w budynku mając dane wszystkie dopuszczalne trasy kabli Algorytm: ANIMACJA 2 Przykład zachłannego algorytmu [greedy algorithm] – robi co jest najlepsze w danym kroku nie patrząc na resztę problemu (zazwyczaj nieefektywne – tutaj TAK!) Można też robić maksymalne drzewo rozpinające w ten sam sposób

Maksymalny przepływ i minimalne cięcie [maximum flow and the minimum cut] Sformułowanie: Jaki jest maksymalny przepływ pomiędzy danym wierzchołkiem a jakimś innym wierzchołkiem w sieci? Na przykład: Znajdź maksymalny przepływ samochodów z parkingu podziemnego w centrum miasta do wyjazdu na autostradę? Każdemy łukowi przyporządkowujemy maksymalny możliwy jednoczesny przepływ pomiędzy dwoma wierzchołkami, które ten łuk łączy. Przepływ może się różnic w zależności od kierunku (np. jednokierunkowe ulice) 4 samochody na minutę na trasie A-D-E-G 3 samochody na minutę na trasie A-B-E-G {jednoczesny przepływ na łuku E-G wynosi teraz 7} 4 samochody na minutę na trasie A-C-F-G Przepływ łączny 11 samochodów na minutę z A do G

Maksymalny przepływ i minimalne cięcie [maximum flow and the minimum cut] Algorytm: Ford and Fulkerson (Canadian Journal of Mathematics 1956) ANIMACJA 3

Maksymalny przepływ i minimalne cięcie [maximum flow and the minimum cut] Dlaczego potrzeba dodawać przepływy w odwrotnym kierunku? Konwencja rachunków, aby zaznaczyć przepływ, który, jeśli trzeba, można cofnąć.

Maksymalny przepływ i minimalne cięcie [maximum flow and the minimum cut] Maksymalny przepływ jest związany z minimalnym cięciem: Cięcie [cut] to każdy zbiór skierowanych łuków zawierający przynajmniej jeden łuk w każdej ścieżce ze źródła do zlewu (przeznaczenia). Jeśli usuniemy łuki z danego cięcia, to przepływ jest zupełnie odcięty. Wartość cięcia [cut value] to suma wszystkich zdolności przepływowych w kierunku od źródła do przeznaczenia dla wszystkich łuków w cięciu. Możliwe cięcia z zaznaczonymi wartościami tych cięć

Twierdzenie Max-flow/min-cut Twierdzenie: Dla każdej sieci z jednym źródłem i jednym zlewem, maksymalny możliwy przepływ ze źródła do przeznaczenia równa się minimalnej wartości cięcia dla wszystkich cięć w tej sieci. Intuicja: Maksymalny przepływ przez serię rur, równy jest ograniczony przez wąskie gardło. Minimalne cięcie to rodzaj rozłożonego wąskiego gardła, czyli wąskiego gardła dla całej sieci w przeciwieństwie do wąskiego gardła dla serii rur. Czyli do znalezienia minimalnego cięcia można posłużyć się również algorytmem Forda-Fulkersona. Jak już zakończy działanie algorytm, zaznacz łuki, które ciągną przepływ równy ich maksymalnej możliwości przepływu. Wtedy poszukaj cięcia, które składa się tylko z zaznaczonych łuków i żadnych innych.

Maksymalny przepływ i minimalne cięcie [maximum flow and the minimum cut] Minimalne cięcie z wartością w kierunku do przodu równą 14. 4 drogi B-E, D-E, F-E oraz F-G to wąskie gardło sieci i powinno się je poszerzyć w pierwszej kolejności Ale możesz nie dostać 1 jednostki powiększenia przepływu na każdą jednostkę dodanej zdolności przepływowej w łuku z minimalnego cięcia. Tak się dzieje, ponieważ zwiększony przepływ przez ten łuk może aktywować nowe wąskie gardło w górze bądź w dole rzeki licząc od tego łuku. Zdolności przepływu mogą oznaczać koszty. Wówczas minimalne cięcie oznacza minimalny koszt zablokowania przepływu w całej rzece.