Programowanie liniowe całkowitoliczbowe

Podobne dokumenty
Programowanie liniowe całkowitoliczbowe

zadaniem programowania liniowego całkowitoliczbowego. nazywamy zadaniem programowania liniowego 0-1. Zatem, w

Modelowanie całkowitoliczbowe

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

etody programowania całkowitoliczboweg

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

Algorytmy i struktury danych.

1 Przykładowe klasy zagadnień liniowych

Badania operacyjne. Dr hab. inż. Adam Kasperski, prof. PWr. Pokój 509, budynek B4 Materiały do zajęć dostępne na stronie:

Badania Operacyjne Ćwiczenia nr 5 (Materiały)

Programowanie liniowe metoda sympleks

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)1 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE(DYSKRET- NE)

Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks

1 Programowanie całkowitoliczbowe PLC

Sieć (graf skierowany)

) a j x j b; x j binarne (j N) całkowitoliczbowe; przyjmujemy (bez straty ogólności): c j > 0, 0 <a j b (j N), P n

Definicja problemu programowania matematycznego

ZAGADNIENIE TRANSPORTOWE(ZT)

OPTYMALIZACJA DYSKRETNA

PROGRAMOWANIE CAŁKOWITOLICZBOWE

Badania operacyjne. Dr Michał Kulej. Pokój 509, budynek B4 Forma zaliczenia wykładu: egzamin pisemny.

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

Badania operacyjne. te praktyczne pytania, na które inne metody dają odpowiedzi jeszcze gorsze.

Programowanie liniowe

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Standardowe zadanie programowania liniowego. Gliwice 1

Metody Optymalizacji. Wstęp. Programowanie matematyczne. Dr hab. inż. Maciej Komosiński, mgr Agnieszka Mensfelt

Elementy Modelowania Matematycznego

Optymalizacja. Algorytmy dokładne

Sieć (graf skierowany)

Programowanie liniowe

Programowanie liniowe

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Firma JCo wytwarza dwa wyroby na dwóch maszynach. Jednostka wyrobu 1 wymaga 2 godzin pracy na maszynie 1 i 1 godziny pracy na maszynie 2.

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

=B8*E8 ( F9:F11 F12 =SUMA(F8:F11)

Wykład 7. Informatyka Stosowana. Magdalena Alama-Bućko. 16 kwietnia Magdalena Alama-Bućko Wykład 7 16 kwietnia / 23

Temat: Algorytmy zachłanne

Programowanie dynamiczne i algorytmy zachłanne

Optymalizacja. Algorytmy dokładne

Wstęp do programowania

Schemat programowania dynamicznego (ang. dynamic programming)

Programowanie liniowe. Tadeusz Trzaskalik

METODY OBLICZENIOWE OPTYMALIZACJI zadania

A. Kasperski, M. Kulej Badania Operacyjne- programowanie liniowe 1

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Wielokryteriowa optymalizacja liniowa

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1

Programowanie liniowe

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Elementy Modelowania Matematycznego Wykład 7 Programowanie nieliniowe i całkowitoliczbowe

Programowanie nieliniowe

Zagadnienie transportowe

Algorytmy i Struktury Danych.

ZAGADNIENIE DUALNE Rozważmy zagadnienie liniowe(zagadnienie to nazywamy prymalnym) o postaci kanonicznej:

Badania Operacyjne Ćwiczenia nr 2 (Materiały)

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

7 zaokr aglamy do liczby 3,6. Bład względny tego przybliżenia jest równy A) 0,8% B) 0,008% C) 8% D) 100

Optymalizacja decyzji

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Układy równań liniowych

0 + 0 = 0, = 1, = 1, = 0.

ZAGADNIENIE TRANSPORTOWE

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Zagadnienia programowania liniowego dotyczą modelowania i optymalizacji wielu problemów decyzyjnych, na przykład:

OPTYMALIZACJA W LOGISTYCE

1. Który z warunków nie jest właściwy dla powyższego zadania programowania liniowego? 2. Na podstawie poniższej tablicy można odczytać, że

Wstęp do programowania

Programowanie dynamiczne. Tadeusz Trzaskalik

Elementy Modelowania Matematycznego

Metody Ilościowe w Socjologii

Programowanie liniowe

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Modele całkowitoliczbowe zagadnienia komiwojażera (TSP)

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

1.2. Rozwiązywanie zadań programowania liniowego metodą geometryczną

Klasyczne zagadnienie przydziału

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Rozwiązywanie programów matematycznych

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Metody Rozmyte i Algorytmy Ewolucyjne

Przykład wykorzystania dodatku SOLVER 1 w arkuszu Excel do rozwiązywania zadań programowania matematycznego

łączny czas pracy (1 wariant) łączny koszt pracy (2 wariant) - całkowite (opcjonalnie - dla wyrobów liczonych w szt.)

[1] R. K. Ahuja, T. L. Magnanti, J. B. Orlin, Network Flows: Theory, Algorithms, and Applications, Prentice Hall, 1993.

Rozwiązywanie problemów z użyciem Solvera programu Excel

Algorytmika Problemów Trudnych

Ćwiczenia laboratoryjne - Dobór optymalnego asortymentu produkcji programowanie liniowe. Logistyka w Hutnictwie Ćw. L.

Dodatek Solver Teoria Dodatek Solver jest częścią zestawu poleceń czasami zwaną narzędziami analizy typu co-jśli (analiza typu co, jeśli?

PRÓBNY EGZAMIN MATURALNY

Programowanie dynamiczne cz. 2

Pyt.1. Podać warunki jakie musi spełniać model matematyczny dla możliwości rozwiązywania metodami programowania liniowego.

Przykłady problemów optymalizacyjnych

PROGRAMOWANIE NIELINIOWE

WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału

Wielokryteriowa optymalizacja liniowa cz.2

Ekonometria - ćwiczenia 11

Algorytmy aproksymacyjne dla problemów stochastycznych

Transkrypt:

Programowanie liniowe całkowitoliczbowe Jeżeli w zadaniu programowania liniowego pewne (lub wszystkie) zmienne musza przyjmować wartości całkowite, to takie zadanie nazywamy zadaniem programowania liniowego całkowitoliczbowego. Jeżeli wszystkie zmienne musza przyjmować wartości 0 lub 1, to zadanie nazywamy zadaniem programowania liniowego 0-1. Zatem, w każdym takim zadaniu występuja ograniczenia postaci 0 x i 1 i x i całkowite dla każdej zmiennej x i, co krótko oznaczamy jako x i {0, 1}.

Problem rozkroju Tartak posiada standardowe deski o szerokości 10 cali. Otrzymał zamówienie na 90 desek o szerokości 2 cale, 175 desek o szerokości 3 cale i 120 desek o szerokości 4 cale. Tartak chce wyznaczyć taki plan realizacji zamówienia, który zminimalizuje łaczny odpad wyrażony w calach. Możliwe sposoby cięcia deski 10 calowej podane sa w poniższej tabeli: Sposób deski 4-calowe deski 3-calowe deski 2-calowe Odpad 1 2 0 1 0 2 1 2 0 0 3 1 1 1 1 4 1 0 3 0 5 0 3 0 1 6 0 2 2 0 7 0 1 3 1 8 0 0 5 0

Problem rozkroju 1 Zmienne decyzyjne: x i - liczba standardowych desek ciętych i-tym sposobem y 1, y 2, y 3 - liczba desesk 4, 3 i 2-calowych wyprodukowanych ponad zamówienie 2 Funkcja celu: 3 Ograniczenia: min z = Całkowity odpad= x 3 + x 5 + x 7 + 4y 1 + 3y 2 + 2y 3 2x 1 + x 2 + x 3 + x 4 y 1 = 120 2x 2 + x 3 + 3x 5 + 2x 6 + x 7 y 2 = 175 x 1 + x 3 + 3x 4 + 2x 6 + 3x 7 + 5x 8 y 3 = 90 x 1,..., x 8, y 1, y 2, y 3 0 i całkowite. [deski 4-calowe] [deski 3-calowe] [deski 2-calowe] Optymalne rozwiazanie: x 1 = 24, x 2 = 42, x 6 = 45, x 7 = 2, y 2 = 1 i całkowity odpad wynosi 5 cali.

Planowanie komunikacji miejskiej [Taha 2008] Progress City planuje usprawnienie komunikacji miejskiej. Przeprowadzono badania, z których wynika że minimalna liczba potrzebnych autobusów zmienia się w ciagu dnia. W kolejnych, 4-godzinnych oknach czasowych, jest ona pokazana na poniższym rysunku. Każdy autobus rozpoczyna pracę na poczatku czterogodzinnego okna czasowego i pracuje bez przerwy przez kolejne 8 godzin. Celem jest wyznaczenie minimalnej liczby autobusów, które spełnia zapotrzebowanie komunikacyjne mieszkańców.

Planowanie komunikacji miejskiej [Taha 2008] 1 Zmienne decyzyjne: x i - liczba autobusów zaczynajacych pracę o 00:01, 4:01, 8:01, 12:01, 16:01, 20:01. 2 Funkcja celu: 3 Ograniczenia: min z = Liczba autobusów= x 1 + x 2 + x 3 + x 4 + x 5 + x 6 x 1 + x 6 4 [0:01-4:00] x 1 + x 2 8 [4:01-8:00] x 2 + x 3 10 [8:01-12:00] x 3 + x 4 7 [12:01-16:00] x 4 + x 5 12 [16:01-20:00] x 5 + x 6 4 [20:01-24:00] x 1,..., x 6 0 i całkowite. Optymalne rozwiazanie: x 1 = 4, x 2 = 4, x 3 = 6, x 4 = 8, x 5 = 4, x 6 = 0 i minimalna liczba autobusów wynosi 26.

Problem plecakowy Jan zamierza wybrać się na wycieczkę. Rozważa zapakowanie do plecaka siedmiu przedmiotów. Każdy z nich ma określona wagę i wartość. Niestety pojemność plecaka Jana jest ograniczona i można do niego załadować przedmioty o wadze nie większej niż 15. Które przedmioty Jan powinien zabrać? Przedmiot Waga Wartość 1 5 8 2 2 3 3 7 10 4 1 1 5 6 9 6 8 11 7 2 2

Problem plecakowy 1 Zmienne decyzyjne: x i = { 1 jeżeli przedmiot i jest zabrany 0 w przeciwnym wypadku, i = 1,..., 7. 2 Funkcja celu: max z = Wartość= 8x 1 + 3x 2 + 10x 3 + x 4 + 9x 5 + 11x 6 + 2x 7 3 Ograniczenia: 5x 1 + 2x 2 + 7x 3 + x 4 + 6x 5 + 8x 6 + 2x 7 15 x i {0, 1}, i = 1,..., 7. [Poj. plecaka] Optymalne rozwiazanie: x 1 = 1, x 2 = 1, x 6 = 1, czyli Jan powinien zabrać przedmioty 1, 2 i 6. Wartość plecaka wyniesie wówczas 22.

Problem lokalizacji W pewnym regionie znajduje się pięć miast. Władze regionu chca wybudować w miastach posterunki straży pożarnej tak aby czas dojazdu straży pożarnej do każdego miasta nie przekraczał 15 minut. Czasy przejazdu między miastami (w minutach) sa podane w poniższej tabeli. Miasto 1 Miasto 2 Miasto 3 Miasto 4 Miasto 5 Miasto 6 Miasto 1 0 10 20 30 30 20 Miasto 2 0 25 35 20 10 Miasto 3 0 15 30 20 Miasto 4 0 15 25 Miasto 5 0 14 Miasto 6 0 W których miastach należy wybudować posterunki straży pożarnej aby liczba tych posterunków była najmniejsza?

Problem lokalizacji 1 Zmienne decyzyjne: { 1 jeżeli P.S. jest zbudowany w mieście i x i = 0 w przeciwnym wypadku 2 Funkcja celu:, i = 1,..., 6. 3 Ograniczenia: min z = Liczba posterunków= x 1 + x 2 + x 3 + x 4 + x 5 + x 6 x 1 + x 2 1 [Miasto 1] x 1 + x 2 + x 6 1 [Miasto 2] x 3 + x 4 1 [Miasto 3] x 3 + x 4 + x 5 1 [Miasto 4] x 4 + x 5 + x 6 1 [Miasto 5] x 2 + x 5 + x 6 1 [Miasto 6] x i {0, 1}, i = 1,..., 6. Optymalne rozwiazanie: x 2 = 1, x 4 = 1, czyli należy wybudować posterunki w miastach 2 i 4.

Warunki logiczne Rozpatrzmy ponownie problem plecakowy (Slajd 6) i załóżmy, że Jan ma następujace dodatkowe wymagania: 1 Chce zabrać przedmiot 1 lub 5: x 1 + x 5 1 [1 5] 2 Nie chce zabrać jednocześnie przedmiotów 1 i 6: x 1 + x 6 1 [ (1 5)] 3 Jeżeli zabierze przedmiot 3, to chce również zabrać przedmiot 4: x 3 x 4 [4 3] 4 Chce zabrać albo przedmiot 5 albo przedmiot 6 (ale nie oba): x 5 + x 6 = 1 [5 6] Ponieważ x i {0, 1}, więc możemy identyfikować 1 z prawda a 0 z fałszem.

Ograniczenia dyzjunkcyjne i implikacje Firma DA wytwarza trzy typy samochodów: kompaktowe, średnie i duże. Wymagane zasoby oraz zyski jednostkowe ze sprzedaży sa podane w poniższej tabeli: Kompaktowy Średni Duży Wymagana stal (t./jedn.) 1.5 3 5 Nakład pracy (godz./jedn.) 30 25 40 Zysk ($/jedn.) 2000 3000 4000 Dostępnych jest 6000 ton stali i 60000 godzin pracy. Firma DA chce zmaksymalizować zysk. Model jest następujacy: max z = 2000x 1 + 3000x 2 + 4000x 3 1.5x 1 + 3x 2 + 5x 3 6000 [Stal] 30x 1 + 25x 2 + 40x 3 60000 [Praca] x 1, x 2, x 3 0 i całkowite

Ograniczenia dyzjunkcyjne i implikacje Jeżeli DA uruchomi produkcję samochodów kompaktowych, to co najmniej 1000 sztuk tych samochodów musi być produkowanych. Ograniczenie jest następujace: x 1 > 0 x 1 1000. lub równoważnie: x 1 0 lub x 1 1000. Modelujemy to w następujacy sposób: x 1 My 1 1000 x 1 M(1 y 1 ) gdzie y 1 {0, 1} i M jest duża stała (nie jest zmienna!).

Ograniczenia dyzjunkcyjne i implikacje Jeżeli liczba produkowanych dużych samochodów jest większa niż 500, to produkcja średnich samochodów musi być nie większa niż 100 Ograniczenie jest następujace: x 3 > 500 x 2 100. lub równoważnie: x 1 500 lub x 2 100 (x 1 500 0 lub x 2 100 0) Modelujemy to w następujacy sposób: gdzie M duża stała a y 2 {0, 1} x 3 500 My 2 x 2 100 M(1 y 2 )

Ograniczenia dyzjunkcyjne i implikacje W ogólnym przypadku chcemy zamodelować alternatywę ograniczeń: f (x 1,..., x n) 0 g(x 1,..., x n) 0 Chcemy zapewnić, żeby przynajmniej jedno z dwóch ograniczeń było spełnione. Wprowadzamy dodatkowa zmienna binarna y {0, 1} i dodajemy do modelu następujace ograniczenia: f (x 1,..., x n) My g(x 1,..., x n) M(1 y) (1) gdzie M jest dostatecznie duża liczba taka, że warunki f (x 1,..., x n) M i g(x 1,..., x n) M sa prawdziwe dla wszystkich wartości zmiennych decyzyjnych.

Ograniczenia dyzjunkcyjne i implikacje Implikację f (x 1,..., x n) > 0 g(x 1,..., x n) 0. zastępujemy równoważnym logicznie warunkiem: f (x 1,..., x n) 0 g(x 1,..., x n) 0. Implikację f (x 1,..., x n) > 0 g(x 1,..., x n) 0 zastępujemy równoważnym logicznie warunkiem: f (x 1,..., x n) 0 g(x 1,..., x n) 0,

Modelowanie iloczynu zmiennych 0-1 Fabryka rozważa 5 miejsc w celu lokalizacji nowych magazynów. W miejscach tych można wybudować magazyny o pojemnościach odpowiednio 120, 200, 180, 150 i 300. Odległości pomiędzy każda para miejsc sa podane w poniższej tabeli: 1 2 3 4 5 1 0 12 3 9 20 2 0 9 2 12 3 0 6 8 4 9 11 5 0 Fabryka chce zbudować 3 magazyny o maksymalnej sumarycznej pojemności. Magazyny powinny być tak ulokowane aby odległość pomiędzy każda para magazynów była niewiększa niż 10.

Modelowanie iloczynu zmiennych 0-1 1 Zmienne decyzyjne: x i = { 1 jeżeli magazyn jest w miejscu i 0 w przeciwnym wypadku, i = 1,..., 5. 2 Funkcja celu: 3 Ograniczenia: max z = Pojemność = 120x 1 + 200x 2 + 180x 3 + 150x 4 + 300x 5 12x 1 x 2 10 [Odległość między 1 i 2] 3x 1 x 3 10 [Odległość między 1 i 3]... x i {0, 1}, i = 1,..., 5. Ograniczenia nie sa liniowe!

Modelowanie iloczynu zmiennych 0-1 Ograniczenie 12x 1 x 2 10 nie jest liniowe. Zmieniamy je na liniowe wprowadzajac zmienna y 12 {0, 1} i zastępujac ograniczeniami: 12y 12 10 y 12 x 1 y 12 x 2 y 12 x 1 + x 2 1

Metody naiwne Metody naiwne Algorytm podziału i ograniczeń [Algorytm 1.] Usuń warunki całkowitoliczbowości. Rozwiaż model algorytmem sympleksowym i zaokraglij wyniki do najbliższej liczby całkowitej. 3 x 2 2.5 2 1.5 max z = 21x1 + 12x2 7x1 + 4x2 < 13 x1, x2 > 0, integer 1 0.5 0 0.5 1.0 1.5 2.0 x 1 Optymalnym rozwiazaniem jest (13/7, 0). Zaokraglaj ac do (1, 0) otrzymujemy rozwiazanie nieoptymalne. Zaokraglaj ac do (2, 0) otrzymujemy rozwiazanie niedopuszczalne.

Metody naiwne Metody naiwne Algorytm podziału i ograniczeń [Algorytm 2.] Wygeneruj wszystkie rozwiazania dopuszczalne i wybierz najlepsze z nich. Problem plecakowy ze zmiennymi binarnymi x 1,..., x n posiada nie więcej niż 2 n dopuszczalnych rozwiazań. Przypuśćmy, że jedno rozwiazanie można sprawdzić w czasie 10 6 sekundy. Jak długo potrwaja obliczenia? n 10 6 2 n 10 0.0001 s. 20 1.048 s. 50 35.7 lat 100 10 16 lat

Metody naiwne Metody naiwne Algorytm podziału i ograniczeń Zadanie programowania liniowego całkowitoliczbowego jest dużo trudniejsze do rozwiazania niż zwykłe zadanie programowania liniowego. Do chwili obecnej nie jest znany szybki algorytm dla tej klasy problemów i uważa się, że taki algorytm nie istnieje. Do rozwiazania zadania programowania liniowego całkowitoliczbowego powszechnie stosuje się algorytm podziału i ograniczeń, który można traktować jako znacznie ulepszona wersję metody pełnego przegladu.

Liniowa relaksacja Metody naiwne Algorytm podziału i ograniczeń Jeżeli usuniemy ograniczenia na całkowitość zmiennych w problemie P, to otrzymamy zadanie programowania liniowego, które nazywamy relaksacja P. Dla problemu maksymalizacji, optymalna wartość funkcji celu relaksacji jest górnym ograniczeniem na wartość funkcji celu optymalnego rozwiazania P. 3 x 2 2.5 P: max z = 21x 1 + 12x2 7x 1 + 4x 2 < 13 x1, x2 > 0, integer 2 1.5 relaxation of P: max z = 21x1 + 12x2 7x 1 + 4x 2 < 13 x1, x2 > 0 1 0.5 0 0.5 1.0 1.5 2.0 x 1 Optymalnym rozwiazaniem P jest (0, 3), z = 36. Optymalnym rozwiazaniem relaksacji P jest (13/7, 0), z R = 39.

Programowanie Programowanie liniowe liniowe całkowitoliczbowe całkowitoliczbowe Rozwi Rozwi azywanie azywanie modeli modeli całkowitoliczbowych całkowitoliczbowych Algorytm podziału i ograniczeń Metody Metody naiwne naiwne Algorytm Algorytm podziału podziału i i ograniczeń ograniczeń x 1 3 0 x 1 1 = 3, x 2 = 2.7 2 zr = 37.5 x 1 = 3.75, x 2 = 2.25 z R = 41.25 x 1 4 x 1 = 4, x 2 = 1.8 z R = 41 5 4 3 (3,2.7) 2 1 1 0 1 2 3 4 2 (4,1.8) 5 Wartość Wartośćzmiennej zmiennejx x nie jest dwa podproblemy 1 = 3.75 nie jest całkowita. Rozpatrujemy dwa podproblemy 1 i i 2 dodaj dodaj ac ac odpowiednio ograniczenia x 1 3ix 1 4. 1 3 i x 1 4. Adam Kasperski Badania operacyjne 2012/2013

Programowanie liniowe liniowe całkowitoliczbowe Metody Metody naiwne naiwne Rozwi Rozwi azywanie azywanie modeli modeli całkowitoliczbowych Algorytm Algorytm podziału podziału i iograniczeń Algorytm podziałui i ograniczeń x 1 3 0 x 1 = 3.75, x 2 = 2.25 z R = 41.25 x 1 4 x x 1 = 4, x 2 = 1.8 1 1 = 3, x 2 = 2.7 2 z zr R = 37.5 = 41 x 2 1 x 2 2 x 3 1 = 4.44, x 2 = 1 4 zr = 40.55 sprzeczny W podproblemie W podproblemie 2 wartość 2 wartośćzmiennejx zmiennej x 2 = 1.8niejestcałkowita. Rozpatrujemy 2 = 1.8 nie jest całkowita. Rozpatrujemy dwa dwa kolejne kolejne podproblemy podproblemy 3 i 3 4 i 4 dodaj dodaj ac ac odpowiednio odpowiednio ograniczenia ograniczenia x x 2 1i 2 1 i x x 2 2. Podproblem 4 jest sprzeczny, dlatego wierzchołek odpowiadajacy 2 2. Podproblem 4 jest sprzeczny, dlatego wierzchołek odpowiadajacy temu temu podproblemowi podproblemowi zamykamy. zamykamy. Adam Adam Kasperski Kasperski Badania Badania operacyjne 2014/2015 2012/2013

Programowanie Programowanie liniowe liniowe całkowitoliczbowe całkowitoliczbowe Metody Metody naiwne naiwne Rozwi Rozwi azywanie azywanie modeli modeli całkowitoliczbowych całkowitoliczbowych Algorytm Algorytm podziału podziału i ograniczeń iograniczeń Algorytm podziałui i ograniczeń x 1 3 0 x 1 = 3.75, x 2 = 2.25 z R = 41.25 x 1 4 x x 1 = 4, x 2 = 1.8 1 1 = 3, x 2 = 2.7 2 z zr R = 37.5 = 41 x 2 1 x 2 2 x 3 1 = 4.44, x 2 = 1 4 zr = 40.55 x 1 4 x 1 5 x 5 1 = 4, x 2 = 1 x 6 1 = 5, x 2 = 0 zr = 37 zr = 40 sprzeczny W W podproblemie podproblemie 3 wartość 3 wartość zmiennej zmiennejx x 1 = 4.44 nie jest całkowita. Rozpatrujemy 1 = 4.44 nie jest całkowita. Rozpatrujemy więc więc kolejne kolejne dwa dwa podproblemy podproblemy 5 i 5 6 i dodaj 6 dodaj ac ac ograniczenia ograniczenia x x 1 4i 1 4 i x x 1 5. W obu podproblemach otrzymujemy optymalne rozwiazanie całkowite 1 5. W obu podproblemach otrzymujemy optymalne rozwiazanie całkowite izamykamywierzchołki im odpowiadajace. Zamykamy też wierzchołek 1, popnieważ w problemie odpowiadajacym temu wierzchołkowi zr 1, po- i zamykamy wierzchołki im odpowiadajace. Zamykamy też wierzchołek = 37.5 < 40. nieważ w problemie odpowiadajacym temu wierzchołkowi zr = 37.5 < 40. Optymalne rozwiazanie: x 1 = 5, x 2 = 0, z = 40. Optymalne rozwiazanie: x 1 = 5, x 2 = 0, z = 40. Adam Adam Kasperski Kasperski Badania Badania operacyjne operacyjne 2014/2015 2012/2013

Algorytm podziału i ograniczeń Metody naiwne Algorytm podziału i ograniczeń 1 Algorytm konstruuje binarne drzewo przeszukiwania. W każdym wierzchołku tego drzewa rozwiazywane jest zadanie programowania liniowego. 2 Istnieje kilka metod wyboru kolejnego wierzchołka do podziału. Jedna z najbardziej popularnych jest wybór wierzchołka z największa wartościa zr. 3 Wierzchołek drzewa zamykamy jeżeli: 1 rozwiazanie otrzymane w tym wierzchołku jest całkowitoliczbowe; 2 problem odpowiadajacy temu wierzchołkowi jest sprzeczny; 3 wartość funkcji celu optymalnego rozwiazania w tym wierzchołku jest niewiększa niż wartość funkcji celu dla pewnego znanego rozwiazania dopuszczalnego. 4 Jeżeli wszystkie wierzchołki sa zamknięte, to najlepsze znalezione rozwiazanie całkowitoliczbowe jest optymalne.

Metody naiwne Algorytm podziału i ograniczeń Mieszany problem liniowy całkowitoliczbowy Jeżeli w zadaniu programowania liniowego tylko niektóre zmienne musza być całkowite, to zadanie takie nazywamy mieszanym zadaniem programowania liniowego całkowitoliczbowego. max z = 2x 1 + x 2 5x 1 + 2x 2 8 x 1 + x 2 3 x 1, x 2 0, x 1 całkowite

Programowanie Programowanie liniowe całkowitoliczbowe liniowe całkowitoliczbowe Metody naiwnemetody naiwne Rozwiazywanie Rozwi modeli azywanie całkowitoliczbowych modeli całkowitoliczbowych Algorytm podziału Algorytm i ograniczeń podziału iograniczeń Mieszany Mieszany problem problem liniowy liniowy całkowitoliczbowy całkowitoliczbowy x 1 0 0 x 1 = 0, x 2 = 3 zr = 3 x 1 = 2/3, x 2 = 7/3 z R = 11 x 1 1 1 2 x 1 = 1, x 2 = 3/2 z R = 7/2 Przy podziale Przy bierzemy podziale bierzemy pod uwagę pod tylko uwagę zmienn tylko a x zmienna x 1. Optymalne rozwiazan 1. Optymalne rozwiazanie wynosi x wynosi x 1 = 1, x 2 = 3/2. 1 = 1, x 2 = 3/2. Adam Kasperski Adam Kasperski Badania operacyjne Badania 2014/2015 operacyjne 2012/2013

Problem plecakowy Metody naiwne Algorytm podziału i ograniczeń max z = 5x 1 + 3x 2 + 6x 3 + 6x 4 + 2x 5 5x 1 + 4x 2 + 7x 3 + 6x 4 + 2x 5 15, x 1,.., x 5 {0, 1} Relaksacja: max z = 5x 1 + 3x 2 + 6x 3 + 6x 4 + 2x 5 5x 1 + 4x 2 + 7x 3 + 6x 4 + 2x 5 15, 0 x i 1, i = 1,..., 5

Problem plecakowy Metody naiwne Algorytm podziału i ograniczeń Relaksacja może być efektywnie rozwiazana za pomoca algorytmu zachłannego: i c i w i c i /w i 1 5 5 1 2 3 4 3/4 3 6 7 6/7 4 6 6 1 5 2 2 1 Wybieramy przedmioty zgodnie z nieroznac a wartościa c i /w i. Zatem bierzemy całe przedmioty 1, 4, 5 i 2/7 przedmiotu 3. W optymalnym rozwiazaniu relaksacji co najwyżej jedna zmienna jest niecałkowita.

Rozwi Programowanie azywanie modeli liniowe całkowitoliczbowych całkowitoliczbowe Problem Problem plecakowy Metody naiwne Metody Algorytm naiwne podziału i ograniczeń Algorytm podziału iograniczeń zr = 14 1 z 2 R = 14 1 2 (1, 1, 0, 1, 1) (1, 0, 1, 1, 0) 2 2 0 zr = 14 5 7 (1, 0, 2, 1, 1) 7 x 3 = 0 x 3 = 1 x 2 = 0 x 2 = 1 x 4 = 0 x 4 = 1 zr = 13 zr = 14 zr = 13 3 z 4 R = 14 3 4 5 6 (1, 0, 0, 1, 1) (1, 1, 0, 1, 0) (1, 1, 1, 0, 1) ( 2, 0, 1, 1, 0) 4 5 Wkażdym wierzchołku wybieramy zmienna niecałkowita x i i rozpatrujemy dwa W przypadki każdym wierzchołku x i = 1(bierzemyprzedmioti) wybieramy zmienn orazx a niecałkowit i = 0 (nie bierzemy a x i i rozpatrujemy przedmiotu dwa przypadki i). Optymalne x i = 1 rozwi (bierzemy azanie znajduje przedmiot się i) w oraz wierzchołku x i = 04. (nie Zatem bierzemy bierzemy przedmiotu przedmioty i). Optymalne 1, 2 i 4. rozwiazanie znajduje się w wierzchołku 4. Zatem bierzemy przedmioty 1, 2 i 4. Adam Kasperski Badania operacyjne 2012/2013