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.