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

Podobne dokumenty
PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Programowanie liniowe całkowitoliczbowe

Programowanie liniowe całkowitoliczbowe

Modele całkowitoliczbowe zagadnienia komiwojażera (TSP)

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

Modelowanie całkowitoliczbowe

1 Programowanie całkowitoliczbowe PLC

A. Kasperski, M. Kulej Badania Operacyjne- metoda sympleks 1

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

Definicja problemu programowania matematycznego

etody programowania całkowitoliczboweg

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

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

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Badania Operacyjne Ćwiczenia nr 5 (Materiały)

ZAGADNIENIE TRANSPORTOWE(ZT)

OPTYMALIZACJA DYSKRETNA

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

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

Metody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa

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):

Schemat programowania dynamicznego (ang. dynamic programming)

Programowanie dynamiczne i algorytmy zachłanne

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

Sieć (graf skierowany)

Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010

Programowanie nieliniowe

Programowanie liniowe

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

Standardowe zadanie programowania liniowego. Gliwice 1

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

PROGRAMOWANIE CAŁKOWITOLICZBOWE

TOZ -Techniki optymalizacji w zarządzaniu

ZAGADNIENIE TRANSPORTOWE

[1] E. M. Reingold, J. Nievergelt, N. Deo Algorytmy kombinatoryczne PWN, 1985.

OPTYMALIZACJA W LOGISTYCE

Algorytmy i struktury danych.

Wykład z modelowania matematycznego. Zagadnienie transportowe.

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

Programowanie dynamiczne cz. 2

Wybrane podstawowe rodzaje algorytmów

Programowanie liniowe

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

Elementy Modelowania Matematycznego

Ekonometria - ćwiczenia 10

Układy równań i nierówności liniowych

Metody systemowe i decyzyjne w informatyce

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

MATEMATYKA REPREZENTACJA LICZB W KOMPUTERZE

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

Algebra liniowa. Macierze i układy równań liniowych

Wstęp do programowania

Optymalizacja. Algorytmy dokładne

Programowanie liniowe

1 Przykładowe klasy zagadnień liniowych

Temat: Algorytmy zachłanne

Techniki optymalizacji

) 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

Iwona Konarzewska Programowanie celowe - wprowadzenie. Katedra Badań Operacyjnych UŁ

Optymalizacja. Algorytmy dokładne

Wielokryteriowa optymalizacja liniowa

Metody Ilościowe w Socjologii

Programowanie liniowe

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

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

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

Programowanie liniowe

Zagadnienie Dualne Zadania Programowania Liniowego. Seminarium Szkoleniowe Edyta Mrówka

Programowanie liniowe

ZAGADNIENIE TRANSPORTOWE

Elementy Modelowania Matematycznego

Klasyczne zagadnienie przydziału

Programowanie liniowe. Tadeusz Trzaskalik

Model zagadnienia programowania liniowego jest w postaci standardowej:

Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Optymalizacja

Algorytmika Problemów Trudnych

Analiza stanów gry na potrzeby UCT w DVRP

Ekonometria - ćwiczenia 11

Wprowadzenie do badań operacyjnych - wykład 2 i 3

Badania Operacyjne Ćwiczenia nr 2 (Materiały)

FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH

Zestaw nr 7 Ekstremum funkcji jednej zmiennej. Punkty przegiȩcia wykresu. Asymptoty

Uniwersytet Kardynała Stefana Wyszyńskiego Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych. Piotr Kaczyński. Badania Operacyjne

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

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

0.1 Reprezentacja liczb w komputerze

Badania operacyjne egzamin

Niesimpleksowe metody rozwia zywania zadań PL. Seminarium Szkoleniowe Edyta Mrówka

PROGRAMOWANIE KWADRATOWE

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

5. Rozwiązywanie układów równań liniowych

Wykład 5. Metoda eliminacji Gaussa

Zagadnienie transportowe

Przykłady problemów optymalizacyjnych

Wydział Matematyki I Informatyki ul. Słoneczna Olsztyn

Pierwsze kolokwium z Matematyki I 4. listopada 2013 r. J. de Lucas

Agenda. Politechnika Poznańska WMRiT ZST. Piotr Sawicki Optymalizacja w transporcie 1. Kluczowe elementy wykładu. WPROWADZENIE Cel i zakres wykładu.

3. FUNKCJA LINIOWA. gdzie ; ół,.

8. Neuron z ciągłą funkcją aktywacji.

Zadania 1. Czas pracy przypadający na jednostkę wyrobu (w godz.) M 1. Wyroby

Transkrypt:

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)1 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE(DYSKRET- NE) Zadanie programowania liniowego w którym zmienne decyzyjne musz a przyjmować wartości całkowite nazywamy zadaniem programowania liniowego całkowitoliczbowego(krótko PLC). max(min)z = c 1x 1 +c x + +c nx n [Funkcjacelu] a 11x 1 +a 1x + +a 1nx n (,=)b 1 [Ograniczenie1]... a m1x 1 +a mx + +a mnx n (,=)b m [Ograniczenie m] x 1 0,...,x r 0, r n [Ograniczenianaznak] x i całkowite, i = 1,...,n 1(n 1 n). Jeśli n 1 = n,zagadnienienazywamyczystymzagadnieniemprogramowanialiniowego(pcl)natomiast,gdy n 1 < nzagadnienienazywamymieszanym(mcl). P1-Zagadnienie rozkroju. Klient zamówił w tartaku 100 desek o szerokości cm,150desekoszerokości3cmi80desekoszerokości4cm.wszystkiezamawiane przez klientów deski są tej samej długości l. Deski wycinane s a ze standardowych desek o długości l i szerokości 10 cm. W jaki sposób zrealizować zamówienie aby ilość ciȩtych desek standardowych była minimalna? Poniższa tabela pokazuje wszystkie możliwe sposoby pociȩcia standardowej deski: Zmienne decyzyjne: Sposób Ilość4cm Ilość3cm Ilośćcm 1 0 1 1 0 3 1 1 1 4 1 0 3 5 0 3 0 6 0 7 0 1 3 8 0 0 5 x i -ilośćdesekciȩta i-tymsposobem i = 1,...,8. Model: 8 i=1 x i min x 1 +x +x 3 +x 4 80 [Deski4cm] x +x 3 +3x 5 +x 6 +x 7 150 [Deski3cm] x 1 +x 3 +3x 4 +x 6 +3x 7 +5x 8 100 [Deskicm] x i 0, x i całkowite, i = 1,...,8 Zadanie w którym wszystkie zmienne decyzyjne musz a przyjmować wartość 0 lub 1 nazywamy zadaniem programowania 0-1. max(min)z = c 1 x 1 +c x + +c n x n [Funkcjacelu] a 11 x 1 +a 1 x + +a 1n x n (,=)b 1 [Ograniczenie1]... a m1 x 1 +a m x + +a mn x n (,=)b m [Ograniczenie m] x i {0,1}, i = 1,...,n P- Zagadnienie plecakowe. W magazynie znajduje siȩ 7 paczek. Każda paczka ma określon a wagȩ i wartość podan a w poniższej tabeli:

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc) Paczka Waga Wartość 1 5 8 3 3 7 10 4 1 1 5 6 9 6 8 11 7 Samochód ma ładowność 15(czyli może zabrać ładunek o ł acznej wadze nie wiȩkszej niż 15). Które paczki ma zabrać samochód aby zmaksymalizować wartość ładunku? Zmienne decyzyjne: x i {0,1}, x i = 1jeżelisamochódzabiera i-t apaczkȩi0wprzeciwnym wypadku, i = 1,...,7. Model: maxz = 8x 1 +3x +10x 3 +x 4 +9x 5 +11x 6 +x 7 5x 1 +x +7x 3 +x 4 +6x 5 +8x 6 +x 7 15 x i {0,1}, i = 1,...,7 [Ładownośćsamochodu] Rozpatrzmy dodatkowe ograniczenia: Należyzabraćpaczkȩlub5.Należyzamodelowaćalternatywȩ x = 1 x 5 = 1. Dodajemy ograniczenie: x +x 5 1 Nie wolno przewozić razem paczek 1 i 6. Należy zamodelować warunek (x 1 = 1 x 6 = 1) (x 1 = 0 x 6 = 0).Dodajemyograniczenie: x 1 +x 6 1 Jeżeli zabieramy paczkȩ 3 to musimy zabrać również paczkȩ 4. Należy zamodelowaćimplikacjȩ x 3 = 1 x 4 = 1.Dodajemyograniczenie: x 4 x 3 P3- Zagadnienie stałych kosztów. Firma tekstylna SZYK zamierza produkowaćtrzyprodukty: W 1,W i W 3.Doprodukcjitychwyrobówpotrzebnesątrzy rodzaje maszyn, które firma zamierza wynająć. Wynajęcie maszyn do produkcji wyrobów W 1,W i W 3 kosztujetygodniowoodpowiednio00,150i100zł.zmiennekosztyprodukcjiszacujesięodpowiedniona6,4i8zł.zasztukęacenazbytu wynosiodpowiednio1,8i15zł.zaszt.wyrobyteprodukujesięzmateriału, któregotygodniowadostawanieprzekracza160 m ajednostkowezużyciewynosi odpowiednio4,3i4m.ponadtozdolnościprodukcyjnefirmyograniczazatrudnienie- dysponuje 150 roboczogodzinami tygodniowo. Pracochłonność wytwarzania jednej sztuki każdego wyrobu wynosi odpowiednio 3, i 6 roboczogodzin. Firma chce opracować plan produkcji maksymalizujący zysk. Zmienne decyzyjne: x i -ilośćprodukowanegowyrobu W i i = 1,,3. y i {0,1}, y i = 1jeżeliprodukujesięwyrób W i i = 1,,3a0wprzeciwnym wypadku.

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)3 Model: Funkcją celu jest zysk(dochód- koszt zmienny- koszt wynajmu maszyn) maxz = 1x 1 +8x +15x 3 (6x 1 +4x +8x 3 ) (00y 1 +150y +100y 3 ) = 6x 1 +4x +7x 3 00y 1 150y 100y 3 3x 1 +4x +7x 3 150 4x 1 +3x +4x 3 160 x 1 M 1 y 1 (jeśli x 1 > 0to y 1 = 1) x M y (jeśli x > 0to y = 1) x 3 M 3 y 3 (jeśli x 3 > 0to y 3 = 1) x 1,x,x 3 0całkowite; y 1,y,y 3 {0,1} Zograniczeńmamy,że M 1 = 40,M = 53iM 3 = 5.Rozwiązanieoptymalneto: z opt = 75,x 3 = 5,y 3 = 1. P4- Zagadnienie pokrycia. W pewnym regionie znajduje siȩ sześć miast. Czasy przejazdu miȩdzy miastami(w minutach) podane s a w poniższej tabeli: Miasto1 Miasto Miasto3 Miasto4 Miasto5 Miasto6 Miasto 1 0 10 0 30 30 0 Miasto 0 5 35 0 10 Miasto 3 0 15 30 0 Miasto 4 0 15 5 Miasto 5 0 14 W których miastach należy ulokować posterunki policji aby czas dojazdu do każdego miasta był nie dłuższy niż 15 minut? Chcemy zminimalizować liczbȩ wybudowanych posterunków. Zmienne decyzyjne: Posterunek w mieście obsługuje miasta 1 1, 1,,6 3 3,4 4 3,4,5 5 4,5,6 6,5,6 x i {0,1}, x i = 1jeżelibudujemyposterunekwi-tymmieściei0wprzeciwnymprzypadku, i = 1,...,6. Model: x 1 +x +x 3 +x 4 +x 5 +x 6 min x 1 +x 1 x 1 +x +x 6 1 x 3 +x 4 1 x 3 +x 4 +x 5 1 x 4 +x 5 +x 6 1 x +x 5 +x 6 1 x i {0,1}, i = 1,...,6 [Należyobsłużyćmiasto1] [Należyobsłużyćmiasto] [Należyobsłużyćmiasto3] [Należyobsłużyćmiasto4] [Należyobsłużyćmiasto5] [Należyobsłużyćmiasto6] P5- zaawansowane modelowanie. Firma wytwarza 3 typy samochodów. Dane s a nastȩpuj ace: TYP1 TYP TYP3 Zużycie stali(t/szt) 1.5 3 5 Wymagana praca(h/szt) 30 5 40 Zysk($/szt.) 000 3000 4000

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)4 Zapasstaliwynosi6000tadostȩpnapracawynosi60000godzin.Chcemyzmaksymalizować zysk. Zmienne decyzyjne: x i -liczbaprodukowanychsamochodów i-tegotypu, i = 1,...,3. Model: 000x 1 +3000x +4000x 3 max 1.5x 1 +3x +5x 3 6000 [Zużyciestali] 30x 1 +5x +40x 3 60000 [Zużyciepracy] x 1,x,x 0icałkowite Rozpatrzmy nastȩpuj ace dodatkowe wymagania: 1. Produkcja mniej niż 1000 sztuk typu 1 jest nieopłacalna(należy produkować albo0alboconajmniej1000sztuk).należyzamodelowaćalternatywȩ x 1 0 x 1 1000.Wprowadzamyzmienn abinarn a y 1 {0,1}idodajemydwa ograniczenia: x 1 My 1 1000 x 1 M(1 y 1 ) gdziemjestduż aliczb a.jeżeliy 1 = 0tox 1 0.Jeżeliy 1 = 1to1000 x 1 0 czyli x 1 1000.Wtensposóbjedenzdwóchwarunkówmusibyćspełniony. Uwaga: W ogólnym przypadku, jeśli chcemy zamodelować alternatywȩ: f(x 1,...,x n ) 0 g(x 1,...,x n ) 0 tj. chcemy aby przynajmniej jedno z dwóch ograniczeń było spełnione, to wymaganie to modelujemy wprowadzaj ac zmienn a binarn a δ {0, 1} i dodając do zbioru ograniczeń modelu następujące dwa ograniczenia: f(x 1,...,x n ) Mδ g(x 1,...,x n ) M(1 δ), (1) gdzie M jest bardzo duż a liczb a dodatnią..jeżeliprodukcjatypu3przekroczy500szt.toprodukcjatypuniemoże przekroczyć100szt.chcemyzamodelowaćimplikacjȩ (x 3 > 500) (x 100).Korzystamyzprawalogicznego (p q) ( p q).st ad (x 3 > 500) (x 100) (x 3 500) (x 100)Wprowadzamyzmienn abinarn a y {0,1}idodajemyograniczenia(zgodniez(1)): x 3 500 My x 100 M(1 y ) gdzie Mjestjak aśbardzoduż aliczb a.jeżeli x 3 > 500toabyspełnićpierwsze ograniczenimusizajść y = 1.Wówczaszdrugiegoograniczenieotrzymujemy x 100.Jeżeli x 3 500to y = 0iwartość x możebyćdowolna. Uwaga: W ogólnym przypadku, jeśli chcemy zamodelować implikacjȩ f(x 1,...,x n ) > 0 g(x 1,...,x n ) 0. to korzystamy z równoważnego warunku: f(x 1,...,x n ) 0 g(x 1,...,x n ) 0.

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)5 i dodajemy ograniczenia zgodnie z(1). Jeżeli chcemy zamodelować implikacjȩ f(x 1,...,x n ) > 0 g(x 1,...,x n ) 0 to korzystamy z równoważnego warunku: f(x 1,...,x n ) 0 g(x 1,...,x n ) 0. i dodajemy do ograniczeń modelu następujące ograniczenia(zgodnie z(1)): f(x 1,...,x n ) Mδ g(x 1,...,x n ) M(1 δ) δ {0,1}. Uwaga: Nieliniowe problemy binarne można sprowadzić do liniowych: Jeśli x j jestzmiennąbinarnąto x n j = x jdladowolnego n. Jeśliwmodeluwystępujenieliniowewyrażenie x i x j będąceiloczynemdwóch zmiennychbinarnych x i oraz x j,tozastępujemyteniloczynnowązmienną binarną δ spełniającą następujący warunek: δ = 1 (x i = 1) (x j = 1). Spełnienie tego warunku wymusza dodanie do warunków modelu następującego układu nierówności: x i +δ 0 x j +δ 0 x i +x j δ 1. Naprzykład,jeśliwmodeluwystąpinielinioweograniczenie x 5 1 + x 3 x 5 0to wprowadzamynowązmiennąbinarną y(= x 3 x 5 ) {0,1},ograniczenienieliniowe zastępujemyliniowym x 1 +y 0idodajemydoograniczeńmodelutrzydodatkowe liniowe ograniczenia: x 3 +y 0 x 5 +y 0 x 3 +x 5 y 1. P5- Zagadnienie komiwojażera TSP. Komiwojażer wyrusza z miasta, gdzie mieszka, ma odwiedzić klientów mieszkających w innych miastach i powrócic do domu. Problem polega na tym, aby wyznaczyć kolejność odwiedzania(dokładnie jeden raz) tych miast tak, aby łączna ilość przejechanych przez komiwojażera kilometrów była jak najmniejsza. Problem ten może być sformułowany jako zagadnienie programowania całkowitego następująco: Założymy,że miasta które ma odwiedzić komiwojażersąponumerowane 1,,...,n(miasto1jestmiejscemzamieszkaniakomiwojażera). Dowolne rozwiązanie problemu będziemy nazywać trasą. Zdefiniujemy 0 1zmiennedecyzyjne x ij następująco: { 1 jeślitrasaprzebiegaodmiasta ibezpośredniodomiasta j. x ij = 0 w przeciwnym przypadku.

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)6 orazwprowadzimydodakowozmienneciągłe u i for i =,...,n.zmienne u i mają następującąinterpretację: u i jestkolejnymnumeremmiastaodwiedzanegoprzez komiwojażeranatrasiezdefiniowanejprzezzmienne x ij. Model: MinimizeZ = n j=1, j i n i=1, i j n c ijx ij () i j x ij = 1for i = 1,...,n. (3) x ij = 1for j = 1,...,n. (4) x ij {0,1} i,j = 1,...,n;i j. (5) u i u j +(n 1)x ij n for i,j =,...,n;i j. (6) 1 u i n 1fori=,...,n. (7) Warunki(3) formułują wymaganie aby dokładnie jedno miasto było wizytowane bezposrednio po mieście i. Warunki(4), że przed miastem j musi być odwiedzone też dokładnie jedno miasto. Dodatkowe ograniczenia(6) eliminują możliwość występowania podcykli w rozwiązaniu. Do rozwiązywania tego problemu opracowane wiele dokładnych i heurystycznych algorytmów. Jedną z metod dających rozwiązanie dokładne(optymalne) podano poniżej. Metoda dokładna rozwiązywania zagadnienia komiwojażera(rozwiązywanie ciągu zadań PLC) Metoda polega na rozwiązaniu ciągu zagadnień PLC, w którym każde następne zagadnienie otrzymyjemy z poprzedniego dopisując dodatkowe ograniczenia eliminujące podcykle poprzednio uzyskanego rozwiązania. Zaczynamy od rozwiązania następującego zagadnienie PLC(zagadnienie optymalnego przydziału): n c ij x ij = z min (8) i=1 n x ij = 1,dla i = 1,...,n, (9) j=1 n x ij = 1,dla j = 1,...,n, (10) i=1 x ij {0,1} dla i = 1,...,n, j = 1,...,n, i j. (11) Jeśli rozwiązanie optymalne tego zagadnienia nie zawiera podcykli, to jest ono również rozwiązaniem optymalnym zagadnienia komiwojażera. Jeśli natomiast zawiera podcykle(tj. cykle przechodzace przez mniej niż n wierzchołków) to dopisujemy ograniczenia- dla każdego podcyklu jedno- eliminujące te podcykle. Stosujemy następującą metodę eliminacji podcykli: dodajemy ograniczenie, że suma zmiennych, które tworzą dany podcykl musi być nie większa niż liczba łuków tego podcyklu minus 1. Ponownie rozwiązujemy tak zmodyfikowane całkowitoliczbowe zagadnienie (ma teraz tyle dodatkowych ograniczeń ile było podcykli). Powyższe postępowanie kontynuujemy aż do otrzymania rozwiązanie nie zawierającego podcykli, które jest rozwiązaniem optymalnym. Działanie tej metody zilustrujemy na przykładzie zagadanienia komiwojażera o następującej macierzy odległości: Rozwiązanie optymalne zagadnienia optymalnego przydziału jest następujace: x 13 = x 1 = x 3 = x 46 = x 54 = x 65 = 1 Zawieraonodwapodcykleutworzoneprzezłuki (ij),dlaktórych x ij = 1:jedento (1 3 1)adrugi (4 6 5 4).Eliminujemyjedodającdwanastępujace

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)7 1 3 4 5 6 1 0 4 6 53 96 105 5 0 49 9 54 84 3 70 4 0 77 65 19 4 4 35 56 0 57 56 5 105 63 81 41 0 80 6 101 93 111 7 75 0 Tabela 1: Macierz odległości dla zagadnienia komiwojażera ograniczenia: x 13 +x 3 +x 1 (1) x 46 +x 65 +x 54 (13) Rozwiązujemy teraz wyjściowy problem z dwoma dodatkowymi ograniczeniami(1 i 13). Rozwiązanie optymalne jest następujące: x 13 = x 4 = x 3 = x 41 = x 56 = x 65 = 1 Rozwiązanietozawieraznowudwapodcykle: (1 3 4 1)oraz (5 6 5). Eliminujemy je dopisując do ograniczeń wyjściowego problemu oprócz(1, 13) dwa nowe: Rozwiązaniem optymalnym tego zagadnienia jest: x 13 +x 3 +x 4 +x 41 3 (14) x 56 +x 65 1 (15) x 13 = x 6 = x 3 = x 41 = x 54 = x 65 = 1 co daje już optymalną trasę komiwojażera: (1 3 6 5 4 1) o długości 346. Naiwne metody rozwi azywania zadania PLC. 1. Pomiń warunki całkowitoliczbowości, rozwi aż problem algorytmem sympleks i zaokr aglij wynik. Rozpatrzmy przykład: maxz = 1x 1 +11x 7x 1 +4x 13 x 1,x 0, x 1,x całkowite

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)8 x 3.5 3.5 1.5 1 0.5 0 0.5 1.0 1.5.0 x 1 Problem posiada 6 rozwi azań dopuszczalnych. S a to punkty(0,0),(0,1),(0,), (0,3),(1,0) i(1,1). Funkcja celu osi aga najwiȩksz a wartość w punkcie(0,3). Pomijaj ac warunki całkowitoliczbowości otrzymujemy optymalny punkt(13/7,0). Zaokr aglaj ac wynik w górȩ otrzymujemy punkt(,0), który jest niedopuszczalny. Zaokr aglaj ac wynik w dół otrzymujemy punkt (1, 0), który jest nieoptymalny.. Wygeneruj wszystkie rozwi azania dopuszczalne i wybierz najlepsze. Rozpatrzmy problem plecakowy: maxz = n i=1 c ix i n i=1 w ix i W x i {0,1}, i = 1...n Wproblemietymnależywygenerowaćisprawdzić n rozwi azań.załóżmy,że jednorozwi azaniemożnasprawdzićwczasie 10 6 s.wówczasdla n = 50czas obliczeńwyniesieok.35latadla n = 60czastenwyniesieok.36558lat. Algorytmy pełnego przegl adu s a wiȩc bardzo nieefektywne. Uwaga: Dla ogólnego zadania PLC nie jest znany efektywny algorytm(wszystkie znane algorytmy mog a działać bardzo długo dla pewnych niedużych problemów) ALGORYTM PODZIAŁU I OGRANICZEŃ Zadanie PL otrzymane z PLC przez usuniȩcie warunków całkowitoliczbowości nazywamy relaksacj a PLC. Przykładowy problem i jego relaksacja: maxz = 1x 1 +11x 7x 1 +4x 13 x 1,x 0 x 1,x całkowite maxz R = 1x 1 +11x 7x 1 +4x 13 x 1,x 0 Wprowadzamy oznaczenia: z -maksymalnawartośćfunkcjiceluplc z R -maksymalnawartośćfunkcjiceluodpowiedniejrelaksacjiplc. Własność:Zachodzizawszewarunek z R z,czylirelaksacjaokreślagórneograniczenie na wartość funkcji celu w PLC. Relaksacjȩ można rozwi azać algorytmem sympleks. Na pojȩciu relaksacji opiera siȩ algorytm podziału i ograniczeń.

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)9 Przykład. Rozwi azać problem: maxz = 8x 1 +5x 6x 1 +10x 45 9x 1 +5x 45 x 1,x 0, x 1,x całkowite Zaczynamy od rozwi azania relaksacji(np. algorytmem sympleks albo metod a graficzn a).otrzymujemy x 1 = 3.75, x =.5, z R = 41.5. x 5 4 3 (3.75,.5) 1 0 1 3 4 5 x 1 Otrzymane rozwi azanie jest niedopuszczalne ponieważ zmienne s a niecałkowite. Wybieramy zmienn a niecałkowit a z wiȩkszym współczynnikiem funkcji celu czyli x 1.Dokonujemypodziałuzmiennej x 1 irozpatrujemydwapodproblemy: x 1 3 0 x 1 = 3.75,x =.5 z R = 41.5 x 1 4 x 1 1 = 3,x =.7 zr = 37.5 x 1 = 4,x = 1.8 z R = 41 5 4 3 (3,.7) 1 1 0 1 3 4 (4,1.8) 5 Rozwi azania obu podproblemów s a niedopuszczalne(tzn. nie są całkowite). Wybieramy podproblem, dla którego relaksacja daje wiȩksze górne oszacowaniem czyli podproblem.zmienna x jestniecałkowita.dokonujemywiȩcpodziału x itworzymy dwa podproblemy 3 i 4. Podproblem 4 jest sprzeczny- odpowiadaj acy mu wierzchołek zamykamy(nie dzielimy dalej).

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)10 x 1 3 0 x 1 = 3.75,x =.5 z R = 41.5 x 1 4 x x 1 = 4,x = 1.8 1 1 = 3,x =.7 z zr R = 37.5 = 41 x 1 x x 3 1 = 4.44,x = 1 4 zr = 40.55 model sprzeczny Wybieramy otwarty podproblem z najwiȩkszym górnym oszacowaniem, czyli podproblem3.zmienna x 1 jestniecałkowita.dokonujemywiȩcpodziału x 1 itworzymy podproblemy 5 i 6. Rozwi azuj ac oba podproblemy otrzymujemy optymalne rozwi azania całkowite. Odpowiadaj ace im wierzchołki zamykamy. W tym momencie znamydopuszczalnerozwi azanie x 1 = 5, x = 0owartościfunkcjicelurównej40. Musimy jeszcze zbadać otwarty podproblem 1. Ponieważ górne ograniczenie w tym podproblemie jest równe 37.5 < 40, to podproblem 1 nie może zawierać rozwi azania lepszegoniżrozwi azanie x 1 = 5, x = 0.Wierzchołekodpowiadaj acypodproblemowi 1 zamykamy. W tym momencie wszystkie wierzchołki s a zamlniȩte i optymalnym rozwi azaniemjest x 1 = 5, x = 0. x 1 3 0 x 1 = 3.75,x =.5 z R = 41.5 x 1 4 x x 1 = 4,x = 1.8 1 1 = 3,x =.7 z zr R = 37.5 = 41 x 1 x x 3 1 = 4.44,x = 1 4 zr = 40.55 x 1 4 x 1 5 5 x 1 = 4,x = 1 x 6 1 = 5,x = 0 zr = 37 zr = 40 model sprzeczny Przykład. Rozwi azać problem: maxz = x 1 +x 5x 1 +x 8 x 1 +x 3 x 1,x 0, x 1 całkowite Powyższy problem jest tzw. problemem mieszanym(tylko niektóre zmienne musz a byćcałkowite.należydzielićtylkozmienn ax 1.Drzewopodziałuiograniczeńwygl ada nastȩpuj aco: x 1 0 0 x 1 = /3,x = 7/3 z R = 11 x 1 1 x 1 1 = 0,x = 3 x 1 = 1,x = 3/ zr = 3 zr = 7/

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)11 Optymalnerozwi azanieznajdujesiȩwwierzchołku.jesttorozwi azanie x 1 = 1, x = 3/owartościfunkcjicelu z = 7/. Wierzchołek(podproblem) k zamykamy jeżeli: 1. Rozwi azenie relaksacji w k jest dopuszczalne(odpowiednie zmienne s a całkowite).. Relaksacja w k jest sprzeczna. 3. Znaleziono wcześniej rozwi azanie dopuszczalne dla którego wartość fukcji celu jestniemniejszaod z R w k. Algorytm podziału i ograniczeń dla problemu plecakowego Rozpatrujemy nastȩpuj acy problem: maxz = n i=1 c ix i n i=1 w ix i W x i {0,1}, i = 1...n gdzie c i -cena i-tegoprzedmiotu, w i -waga i-tegoprzedmiotu, W -pojemność plecaka. Przykład. Rozwi azać problem: maxz = 5x 1 +3x +6x 3 +6x 4 +x 5 5x 1 +4x +7x 3 +6x 4 +x 5 15, x 1,..,x 5 {0,1} Relaksacj a powyższego problemu jest nastȩpuj acy problem: maxz R = 5x 1 +3x +6x 3 +6x 4 +x 5 5x 1 +4x +7x 3 +6x 4 +x 5 15, 0 x i 1, i = 1,...,5 Relaksacjȩ rozwi azujemy za pomoc a nastȩpuj acego algorytmu zachłannego: i c i w i c i /w i 1 5 5 1 3 4 3/4 3 6 7 6/7 4 6 6 1 5 1 Ładujemyprzedmiotywkolejnościilorazów c i /w i zaczynaj acodnajwiȩkszego. Pocz atkowa wolna pojemność plecaka W = 15. Dodajemy cały przedmiot 1(W = 10),dodajemycałyprzedmiot4(W = 4),dodajemycałyprzedmiot5(W = ), dodajemy /7przedmiotu3(W = 0).Otrzymujemyrozwi azanie x 1 = 1, x = 0, x 3 = /7, x 4 = 1, x 5 = 1iz R = 145 7.Rozwi azanietojestniedopuszczalne.wybieramyzmienn aniecałkowit a x 3 irozpatrujemydwapodproblemy(dokonujemy podziału): 1.Ustawiamy x 3 = 0czylirozpatrujemyrelaksacjȩbezprzedmiotu3. maxz R = 5x 1 +3x +6x 4 +x 5 5x 1 +4x +6x 4 +x 5 15, 0 x i 1, i = 1,,4,5 Otrzymujemyrozwi azanie: x 1 = 1, x = 1, x 3 = 0, x 4 = 1, x 5 = 1iz R = 141.

Adam Kasperski, Michał Kulej, Badania Operacyjne, Wykład 3, Programowanie całkowite(plc)1.ustawiamy x 3 = 1czyliwkładamyprzedmiot3doplecakaipozostałeprzedmioty dodajemy zachłannie. maxz R = 5x 1 +3x +6+6x 4 +x 5 5x 1 +4x +6x 4 +x 5 8, 0 x i 1, i = 1,,4,5 Otrzymujemyrozwi azanie: x 1 = 1, x = 0, x 3 = 1, x 4 = 1, x 5 = 0iz R = 14. Oba podproblemy s a niedopuszczalne. Wybieramy podproblem o lepszym oszacowaniu(relaksacji) czyli podproblem 1 i dzielimy dalej. Pełne drzewo podziału i ograniczeń pokazane jest na poniższym rysunku: 1 z R = 141 3 4 zr = 14 (1, 1,0,1,1) 0 zr = 145 7 (1,0, 7,1,1) x 3 = 0 x 3 = 1 (1,0,1, 1,0,) x = 0 x = 1 x 4 = 0 x 4 = 1 zr = 13 zr = 14 zr = 5 133 z 4 R = 14 6 (1,0,0,1,1) (1,1,0,1,0) (1, 1 4,1,0,1) ( 5,0,1,1,0) Wierzchołki 5 i 6 zamykamy ponieważ w wierzchołku 4 znaleziono dopuszczalne rozwi azanie o wartości niemniejszej niż górne oszacowanie w 5 i 6. Optymalne rozwi azanie odczytujemy w wierzchołku 4, czyli zabieramy przedmioty 1, i 4.