1 / 21

Badania operacyjne

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 ≤ x 1 ≤ 3, 0 ≤ x2 ≤ 1, 0 ≤ x 3 ≤ 1 Poniżej jest drzewo pełnego wyliczenia możliwości [ full enumeration tree ]

sona
Download Presentation

Badania operacyjne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Badania operacyjne Wykład 6

  2. 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 [fullenumerationtree] • 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.

  3. Podstawowe pojęcia • Pojęcia: • wierzchołek[node] każde częściowe lub pełne rozwiązanie • liść[leafnode] pełne rozwiązanie • pączek[bud node]częsciowe rozwiązanie dopuszczalne lub niedopuszczalne • funkcja ograniczająca[boundingfunction] – 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] • Rozgałęzianie[Branching] • Ograniczanie[Bounding] • Sądowanie[fathoming] • Podcinanie[Prunning] System selekcjizmiennych[variable selection policy] Regułyprzycinaniapączków Regułazakończeniaalgorytmu • Trzy popularne systemy selekcji wierzchołków [nodeselectionpolicy] • Best-first / global-bestnodeselection • Depth-first • Breadth-first

  4. Przykład – problem przyporządkowania • Znaczeniewierzchołka w drzewie: • Częściowelubpełneprzyporządkowanieludzi do zadań • System selekcjiwierzchołków: global best • System selekcjizmiennych: wybierznastępnezadanie w naturalnejkolejności 1 do 4 • Funkcjaograniczająca: dlanieprzyporządkowanychzadańwybierznajlepsząnieprzyporządkowanąosobę, nawetjeślibędziewybranaparęrazy • Regułazakończenia: kiedywartośćfunkcjiceludlatymczasowegorozwiązania jest lepszalubrówna do wartościfunkcjiograniczającejdlawszystkichpączków • Sądowanie: rozwiązaniewygenerowaneprzezfunkcjęograniczającą jest dopuszczalnejeślikażdezadanie jest przyporządkowane do różnychosób.

  5. Jakpowstająwartościfunkcjiograniczającej? • Popatrzmynawierzchołekpierwszegoetapu, któryoznaczaprzyporządkowanieosoby A do zadania 1. • Zbiórrozwiązańreprezentowanychprzez ten wierzchołek to A??? • Faktycznawartośćprzyporządkowania A do zadania 1 to: 9 • Najlepszanieprzyporządkowanaosobadlazadania 2 to C, wartość: 1 • Najlepszanieprzyporządkowanaosobadlazadania3 to D, wartość: 2 • Najlepszanieprzyporządkowanaosobadlazadania4 to C, wartość: 2 • Rozwiązaniefunkcjiograniczającej to ACDC z kosztemcałkowitym =9+1+2+2=14. • Wiemy, że w najlepszymwypadkuwartośćfunkcjiceludlawierzchołkówpochodzących od A??? To 14. To nie jest dopuszczalnerozwiązanie, boosoba C jest przyporządkowana do dwóchzadań. Osoba A jest faktycznieprzyporządkowana.

  6. Tworzymydrzewo Przycięte wierzchołki mają przerywane obrzeża Dopuszczalne wierzchołki mająpogrubione obrzeża Przycięte dopuszczalne wierzchołki mają to i to Pierwszyetap: korzeńdrzewa Drugietap: • Wierzchołek C??? Jest wysądowany– pierwszetymczasowerozwiązaniedopuszczalne CBDA=13 • To nampozwalaprzyciąćwierzchołek A???, któregowartośćfunkcjiograniczającejwynosi 14. • Dwapączki, któredająnadziejęnapoprawę B??? i D??? – global best: wybieramy D???

  7. Tworzymydrzewo Trzecietap: • Nie ma nowychdopuszczalnychrozwiązań, czylirozwiązanietymczasowesięniezmienia. • Nowewierzchołkiniemogąbyćprzyciętepoprzezporównanie z rozwiązaniemtymczasowymlubwysądowane. • Wybieramy global best spośród B??? (9), DA?? (12), DB?? (10) oraz DC?? (12) • A zatem B???

  8. Tworzymydrzewo • Sądujemydwawierzchołki BA?? oraz BC?? • Nowetymczasowerozwiązaniedopuszczalne to BCDA=12 • Wycinamydotychczasowerozwiązanie CBDA • BA?? jest dopuszczalne, ale wycinamy w porównaniu z nowymrozwiązaniemtymczasowym • Wycinamywierzchołki DA?? i DC?? Poprzezporównanie z tymczasowymrozwiązaniem • Gdybyśmychcieliznaleźćwszystkierozwiązania a nietylkojednomożemy w przyszłości je analizowaćdalej • Zostajenamtylkojedenpączek DB??. Czwartyetap:

  9. Tworzymydrzewo • DBAC ma lepsząwartośćniżdotychczasowerozwiązanie, zatem je zastępuje I wycinapoprzednie • DBCA jest wyciętepoprzezporównanie z tymczasowym • Nie ma innychpączków do ekspansji, więckończymy • Przeanalizowaliśmy 13 wierzchołkówzamiast 24 • Dlawiększychproblemówznaczneprzyspieszenie Piątyetap:

  10. Dobra funkcjaograniczająca jest kluczem • Problem komiwojażera: odwiedzićkażdemiastodokładnieraz i powrócić do punktuwyjścia • Załóżmy, żemamyczęściowerozwiązanie (pogrubione) • Bardzosprytnafunkcjaograniczająca: minimalnedrzeworozpinającenawierzchołkachnieodwiedzonych i wierzchołkupoczątkowym i końcowymczęsciowejtrasy

  11. Wprowadzenie do sieci • Dwagłówneelementy: • Łuki (krawędzie) [arcs/edges] • Wierzchołki [nodes] • Graf [graph] to struktura, którąbudujesiępoprzezłączeniewierzchołkówłukami • Graf skierowany [directed graph] (digraf [digraph]) jest grafem, w którymłukimająokreślonykierunek • Sieć [network] to graf (lubdigraf), w którymłukimająprzyporządkowanyprzepływ [flow] • Otoparęprostychprzykładówsieci:

  12. Wprowadzenie do sieci • Łańcuch [chain] to ciągłukówłączącychdwawierzchołkii i j, np. ABCE, ADCE • Ścieżka [path] to ciągskierowanychłukówłączącychdwawierzchołki, np. ABDE, ale nie ABCE • Cykl [cycle] to łańcuchktóryłączywierzchołek z samymsobąbezżadnegopowtarzania [retracing], np. ABCEDA, ale nie ABCDECBA • Graf/siećspójny/a [connected graph/network] ma tylkojednączęść graf grafskierowany

  13. Wprowadzenie do sieci • Drzewo[tree] – grafspójnyniemającycyklów. • Drzeworozpinające [spanning tree] to drzewowybranespośródłuków w grafielub w siecitak, abywszystkiewierzchołki w drzewiebyłypołączone dwadrzewarozpinające dwadrzewa • Zdolnośćprzepływowa[flow capacity] – górna (czasemteżdolna) granicailościprzepływudanegołuku w sieci, np. maksymalnailośćwody w rurociągu • Źródło[source] to wierzchołekktórywprowadzaprzeływ do sieci • Zlew[sink] to wierzchołek, którywyprowadzaprzepływ z sieci

  14. Problem najkrótszejtrasy [The shortest route problem] • Sformułowanie:Dladanegografu, w którymkażdyłukoznaczony jest poprzezdystanspomiędzywierzchołkami, które on łączy, jaka jest najkrótszatrasapomiędzywierzchołkiem i iinnymwierzchołkiemj. • Na przykład: Jaka jest najkrótszatrasapomiędzy A i H? ANIMACJA 1 Wyliczeniewszystkichmożliwości [enumeration] – niepraktyczne AlgorytmDijkstra

  15. Problem najmniejszegodrzewarozpinającego [minimum spanning tree] • Sformułowanie:Dladanegografu, w którymłukisąoznaczonepoprzezodległościpomiędzywierzchołkami, którełączą, znajdźdrzeworozpinające, które ma najmniejsząłącznądługość • Na przykład: Znajdźminimalnądługośćkabla, abypołączyćwszystkiebiura w budynkumającdanewszystkiedopuszczalnetrasykabli • Algorytm: ANIMACJA 2 Przykładzachłannegoalgorytmu [greedy algorithm] – robi co jest najlepsze w danymkrokuniepatrzącnaresztęproblemu (zazwyczajnieefektywne – tutaj TAK!) Możnateżrobićmaksymalnedrzeworozpinające w ten samsposób

  16. Maksymalnyprzepływi minimalnecięcie [maximum flow and the minimum cut] • Sformułowanie:Jaki jest maksymalnyprzepływpomiędzydanymwierzchołkiem a jakimśinnymwierzchołkiem w sieci? • Na przykład: Znajdźmaksymalnyprzepływsamochodów z parkingupodziemnego w centrum miasta do wyjazdunaautostradę? • Każdemyłukowiprzyporządkowujemymaksymalnymożliwyjednoczesnyprzepływpomiędzydwomawierzchołkami, które ten łukłączy. • Przepływmożesięróżnic w zależności od kierunku (np. jednokierunkoweulice) 4 samochodynaminutęnatrasie A-D-E-G 3 samochodynaminutęnatrasie A-B-E-G {jednoczesnyprzepływnałuku E-G wynositeraz 7} 4 samochodynaminutęnatrasie A-C-F-G Przepływłączny 11 samochodównaminutę z A do G

  17. Maksymalnyprzepływi minimalnecięcie [maximum flow and the minimum cut] • Algorytm: Ford and Fulkerson (Canadian Journal of Mathematics 1956) ANIMACJA 3

  18. Maksymalnyprzepływi minimalnecięcie [maximum flow and the minimum cut] • Dlaczegopotrzebadodawaćprzepływy w odwrotnymkierunku? • Konwencjarachunków, abyzaznaczyćprzepływ, który, jeślitrzeba, możnacofnąć.

  19. Maksymalnyprzepływ i minimalnecięcie[maximum flow and the minimum cut] • Maksymalnyprzepływ jest związany z minimalnymcięciem: • Cięcie [cut] to każdyzbiórskierowanychłukówzawierającyprzynajmniejjedenłuk w każdejścieżcezeźródła do zlewu (przeznaczenia). Jeśliusuniemyłuki z danegocięcia, to przepływ jest zupełnieodcięty. • Wartośćcięcia[cut value] to sumawszystkichzdolnościprzepływowych w kierunku od źródła do przeznaczeniadlawszystkichłuków w cięciu. • Możliwecięcia z zaznaczonymiwartościamitychcięć

  20. Twierdzenie Max-flow/min-cut • Twierdzenie: Dlakażdejsieci z jednymźródłem i jednymzlewem, maksymalnymożliwyprzepływzeźródła do przeznaczeniarównasięminimalnejwartościcięciadlawszystkichcięć w tejsieci. • Intuicja: • Maksymalnyprzepływprzezserięrur, równy jest ograniczonyprzezwąskiegardło. • Minimalnecięcie to rodzajrozłożonegowąskiegogardła, czyliwąskiegogardładlacałejsieci w przeciwieństwie do wąskiegogardładlaseriirur. • Czyli do znalezieniaminimalnegocięciamożnaposłużyćsięrównieżalgorytmemForda-Fulkersona. • Jakjużzakończydziałaniealgorytm, zaznaczłuki, któreciągnąprzepływrównyichmaksymalnejmożliwościprzepływu. Wtedyposzukajcięcia, któreskładasiętylko z zaznaczonychłukówi żadnychinnych.

  21. Maksymalnyprzepływ i minimalnecięcie[maximum flow and the minimum cut] • Minimalnecięciez wartością w kierunku do przodurówną 14. • 4 drogi B-E, D-E, F-E oraz F-G to wąskiegardłosieci i powinnosię je poszerzyć w pierwszejkolejności • Ale możeszniedostać 1 jednostkipowiększeniaprzepływunakażdąjednostkędodanejzdolnościprzepływowej w łuku z minimalnegocięcia. • Taksiędzieje, ponieważzwiększonyprzepływprzez ten łukmożeaktywowaćnowewąskiegardło w górzebądź w dole rzekilicząc od tegołuku. • Zdolnościprzepływumogąoznaczaćkoszty. Wówczasminimalnecięcieoznaczaminimalnykosztzablokowaniaprzepływu w całejrzece.

More Related