Optymalizacja liniowa w liczbach całkowitych (PLC)



Podobne dokumenty
Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

Programowanie liniowe. Tadeusz Trzaskalik

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

Programowanie liniowe

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

Metoda simpleks. Gliwice

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

BADANIA OPERACYJNE pytania kontrolne

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

3. Macierze i Układy Równań Liniowych

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Programowanie celowe #1

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

(Dantzig G. B. (1963))

1 Programowanie całkowitoliczbowe PLC

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

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

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

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

etody programowania całkowitoliczboweg

Elementy Modelowania Matematycznego

Przykładowe zadania z teorii liczb

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

3. Wykład Układy równań liniowych.

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

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

Metoda Karnaugh. B A BC A

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA I GIMNAZJUM Małgorzata Janik

ZAGADNIENIE TRANSPORTOWE

Wymagania edukacyjne z matematyki w klasie III gimnazjum

Równania liniowe. Rozdział Przekształcenia liniowe. Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Przestrzenie wektorowe

Wielokryteriowa optymalizacja liniowa

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

x 2 = a RÓWNANIA KWADRATOWE 1. Wprowadzenie do równań kwadratowych 2. Proste równania kwadratowe Równanie kwadratowe typu:

Metody numeryczne Wykład 4

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

Wykład z modelowania matematycznego. Zagadnienie transportowe.

DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.

1 Układy równań liniowych

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

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

Wymagania edukacyjne z matematyki dla klasy I gimnazjum wg programu Matematyka z plusem

Rozwiązywanie równań nieliniowych

3. FUNKCJA LINIOWA. gdzie ; ół,.

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

PROGRAMOWANIE CAŁKOWITOLICZBOWE

Teoretyczne podstawy programowania liniowego

Programowanie liniowe

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Wykład z równań różnicowych

2. DZIAŁANIA NA WIELOMIANACH

Algorytm simplex i dualność

Pendolinem z równaniami, nierównościami i układami

Optymalizacja ciągła

Liczby zespolone. x + 2 = 0.

FUNKCJA LINIOWA - WYKRES

1.UKŁADY RÓWNAŃ LINIOWYCH

Wymagania edukacyjne z matematyki dla klasy VII

TOZ -Techniki optymalizacji w zarządzaniu

Indukcja matematyczna. Zasada minimum. Zastosowania.

Układy równań liniowych. Ax = b (1)

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

Notatki do tematu Metody poszukiwania rozwiązań jednokryterialnych problemów decyzyjnych metody dla zagadnień liniowego programowania matematycznego

Programowanie liniowe metoda sympleks

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

5.1. Kratownice płaskie

O MACIERZACH I UKŁADACH RÓWNAŃ

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Definicje i przykłady

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III

Przedmiotowy system oceniania

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

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Metoda eliminacji Gaussa

Programowanie liniowe metoda sympleks

Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Podstawowe struktury algebraiczne

Definicja i własności wartości bezwzględnej.

OPTYMALIZACJA DYSKRETNA

Zajęcia nr. 6: Równania i układy równań liniowych

1. Liczby zespolone. Jacek Jędrzejewski 2011/2012

Elementy Modelowania Matematycznego

WYMAGANIA na poszczególne oceny-klasa I Gimnazjum

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

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

Transkrypt:

* ) && &&& % ( - &&(() n && - n% ( ' n!"#$ Optymalizacja liniowa w liczbach całkowitych (PLC) (( & ' nn nn Zadanie (-) nazywamy zadaniem regularnym Zadanie (-) nazywamy zadaniem PLC Stosownie do tego podziału oznaczymy zbiory rozwiązań dopuszczalnych: X - zbiór rozwiązań dopuszczalnych zadania regularnego (wypukły) X C - zbiór rozwiązań dopuszczalnych zadania PLC (niewypukły); zbiór ten spełnia oczywisty warunek X C X Z faktu że zbiór X C nie jest zbiorem wypukłym wynika niemożność wykorzystania twierdzenia Weierstrassa do znajdowania rozwiązania optymalnego zadania PLC PRZYKŁAD Rozważmy następujące zadanie PLC: / max ( ) 7 ( ) DEFINICJE Zadaniem PLC nazywamy następujące zadanie optymalizacji liniowej: M M L L M L L L M M M max(min) Na rysunku przedstawiono zbiory rozwiązań dopuszczalnych X oraz X C Elementy zbioru X C jawią się jako izolowane punkty zawierające się w zbiorze X Rozwiązanie optymalne x ) zadania regularnego (-) nie spełnia warunku całkowitoliczbowości () Rozwiązanie optymalne x ) zadania PLC (-) warunek ten oczywiście spełnia M () () () ()

n!"#$ [] Rys Ilustracja zbioru X C dla zadania PLC z przykładu METODY ROZWIĄZYWANIA ZADAŃ PLC I Proste przegląd zupełny zbioru X C regularyzacja (zaokrąglenie) rozwiązania n optymalnego n zadania (-) II Złożone regularyzacja zadania (-); metody płaszczyzn odcinających wykorzystanie kombinatorycznego charakteru przeglądu zbioru X C ; metoda podziału i ograniczeń ( & ) 5 poszukiwania przypadkowe i metody przybliżone Ad Przegląd zupełny zbioru X C Podejście mało eleganckie Możliwe tylko wtedy gdy zbiór X C jest małoliczny i skończony (por przykład ) W przeciwnym przypadku przegląd jest nie do zrealizowania Ad Regularyzacja (zaokrąglenie) rozwiązania optymalnego zadania (-) Często stosowane podejście Można je zaliczyć do klasy metod przybliżonych Postępowanie takie kryje w sobie niebezpieczeństwo generowania rozwiązań PLC daleko odbiegających od zbioru rozwiązań dopuszczalnych X C Skala odstępstwa zależy od wielkości liczb opisujących rozwiązanie optymalne zadania (-) Zilustrujemy ten problem na przykładzie (por przykład )

otrzymamy * && && % && && & % && && % ) n!"#$ [] PRZYKŁAD & & Rozważmy następujące zadanie PLC: max Rozwiązanie zadania (-) jest tutaj następujące: 5 5 Po () () () () regularyzacji (zaokrągleniu) tego rozwiązania otrzymujemy: 5 Jako miary dopuszczalności (niedopuszczalności) rozwiązania zaokrąglonego użyjemy stosunku różnicy prawej strony ograniczeń (RHS) i lewej strony ograniczeń (LHS) do prawej strony ograniczeń tj (RHS-LHS)/RHS Miarę taką (w wyrażeniu procentowym można interpretować jako procentowe spełnienie (niespełnienie) danego ograniczenia Ujemna wartość takiej miary wskazuje na niespełnienie danego ograniczenia Miary te kształtują się następująco: ~ 75% ~ % ~ ()% Otrzymujemy sygnał że zaokrąglenie rozwiązania powoduje -procentowe niespełnienie drugiego ograniczenia Zatem proponowane rozwiązanie jest rozwiązaniem mocno niedopuszczalnym Inaczej zachowa się takie postępowanie jeżeli będziemy zaokrąglać duże liczby Zamieniając w przykładzie oryginalne parametry RHS ( na inne 5 5 5 jako rozwiązanie zadania (-): 65 575 Po regularyzacji (zaokrągleniu) tego rozwiązania otrzymamy: 6 5 Omówione wcześniej miary zgodności (niezgodności) ograniczeń są teraz następujące: ~ 99% ~ % ~ % Wynika z tego że w tym przypadku zaokrąglenie rozwiązania zadania (-) nie prowadzi do zaproponowania rozwiązania niedopuszczalnego Ad Metody płaszczyzn odcinających Ogólną ideę rozwiązywania zadań PLC podał w roku 957 twórca metody simpleks Georgie B Dantzig Zgodnie z nią jeżeli po rozwiązaniu zadania (-) nie otrzymujemy rozwiązania w liczbach całkowitych to do zadania (-) należy dołączyć nowe ograniczenia które muszą spełnić dwa warunki: odetną (nie obejmą) uzyskanego wcześniej rozwiązania zadania (-); nie było to rozwiązanie w liczbach całkowitych oraz GBDantzig Opns Res 5 957 ss 66-77

n!"#$ [] będzie wiadomo że nowe ograniczenia nie odetną wszystkich rozwiązań w liczbach całkowitych tj obejmą przynajmniej jedno rozwiązanie dopuszczalne w liczbach całkowitych Tę stosunkowo prostą ideę zilustrujemy dwoma algorytmami Będą to podejścia zaproponowane przez: Nieszczeriakova (płaszczyznami odcinającymi będą warstwice funkcji celu) oraz Gomory ego (płaszczyznami odcinającymi będą odpowiednio przekształcone równania z tablicy simpleksowej zawierającej rozwiązanie optymalne rozszerzanego zadania (-)) W obu podejściach wykorzystuje się zwykłe metody rozwiązywania zadań PL (klasyczny algorytm simpleks dualny algorytm simpleks itp) Ad Metoda podziału i ograniczeń Ogólna idea metody polega na ciągłym podziale i rozwiązywaniu zadania (-) Zadanie (-) jest dzielone na kolejne zadania w których zbiór rozwiązań dopuszczalnych X jest w wyniku każdego podziału zawężany Po skończonej liczbie podziałów zadania (-) uzyskuje się rozwiązanie zadania PLC (o ile istnieje) W każdym podziale do rozwiązania zadania podzielonego wykorzystuje się zwykłe metody rozwiązywania zadań PL (klasyczny algorytm simpleks zrewidowany algorytm simpleks zmodyfikowany algorytm simpleks itp) Ad 5 Poszukiwania przypadkowe i metody przybliżone Trudno tutaj wymienić konkretne sposoby rozwiązywania zadania PLC Najczęściej są to postępowania związane z konkretnymi zastosowaniami Wchodzą tuttaj w grę postępowania które ogólnie nazwać możemy postępowaniami heurystycznymi Często wykorzystują one uproszczone fragmenty sygnalizowanych wcześniej postępowań Generalnie chodzi w nich o to aby szybko i sprawnie rozwiązać problem PLC i otrzymać rozwiązanie jak najbliższe nieznanemu rozwiązaniu optymalnemu PLC

n n n!"#$ [5] Algorytm NIESZCZERIAKOV a!!! ZAŁOŻENIE!!! Wszystkie współczynnikiw funkcji celu muszą być liczbami całkowitymi Jeżeli oryginalna funkcja celu nie spełnia tego warunku to należy ją pomnożyć przez odpowiednio dobraną dodatnią stałą a po uzyskaniu rozwiązania optymalnego należy podzielić otrzymaną optymalną wartość funkcji celu przez tą stałą Iteracja Postępowanie rozpoczynamy od rozwiązania zadania regularnego (-) Jeżeli rozwiązanie optymalne dane jest w liczbach całkowitych to kończymy postępowanie Jeżeli rozwiązanie nie spełnia warunku całkowitoliczbowości to rozpoczynamy opisane niżej postępowanie n n L [ ] jeżeli nie jest liczbą całkowitą albo L jeżeli jest liczbą całkowitą Oznaczmy przez uzyskaną optymalną wartość funkcji celu Konstruujemy dodatkowe ograniczenie dla zadania regularnego (-) Jest nim warstwica funkcji celu postaci: Dołączamy do zadania regularnego (-) nowe ograniczenie i przechodzimy do kolejnej iteracji Iteracja k (k ) Rozwiązujemy rozszerzone (zawsze o ograniczenie) zadanie regularne (-) Znajdujemy wszystkie alternatywne rozwiązania optymalne tego zadania Jeżeli jedno z alernatywnych rozwiązań spełnia warunek całkowitoliczbowości to kończymy postępowanie Jeżeli żadne z rozwiązań alternatywnych nie spełnia warunku całkowitoliczbowości to budujemy liniową kombinację wypukłą ze wszystkich bazowych (wierzchołkowych) n rozwiązań optymalnych Mogą zaistnieć tutaj dwa przypadki: wypukła kombinacja liniowa zawiera rozwiązanie w liczbach całkowitych Kończymy postępowanie wypukła kombinacja liniowa nie zawiera rozwiązania w liczbach całkowitych Wówczas należy zmienić warstwicę zmniejszając o jednostkę wyraz wolny w dodanym ograniczeniu wg następującego przepisu L Dokonujemy zmiany i przechodzimy do kolejnej ( ) iteracji Obecność warstwicy funkcji celu jako aktywnego ograniczenia powoduje że zawsze (począwszy od iteracji ) rozwiązanie optymalne będzie niejednoznaczne Istnieć będą alternatywne rozwiązania optymalne

) (warstwica n!"#$ [6] PRZYKŁAD Rozważmy zadanie PLC z przykładu Funkcja celu tego zadania nie spełnia założenia wstępnego algorytmu Nieszczeriakov a Mnożymy ją zatem przez stałą λ 6 Po takim zabiegu nowa funkcja celu spełnia już założenie wstępne algorytmu Rozwiązywane zadanie regularne ma postać: ~ max ( ) 7 ( ) Iteracja Rozwiązanie zadania regularnego jest następujące: x ~ max Nie uzyskaliśmy rozwiązania w liczbach całkowitych Konstruujemy ~ dodatkowe ograniczenie które ma postać: 9 dla 9 Rozszerzone zadanie regularne ma teraz postać: ~ max ( ) 7 ( ) 9 Przechodzimy do iteracji Iteracja Wszystkie alternatywne rozwiązania optymalne rozszerzonego zadania regularnego są następujące: x x ~max 9 Żadne z rozwiązań alternatywnych nie jest całkowitoliczbowe Należy sprawdzić czy za pomocą wypukłej kombinacji liniowej rozwiązań alternatywnych można uzyskać rozwiązanie całkowitoliczbowe Wypukła kombinacja rozwiązań wierzchołkowych ma postać: x αx ( ) ( ) α x α α przy α

5 ) n!"#$ [7] x 5 α Po uporządkowaniu mamy: 7 przy α α Łatwo zauważyć że nie istnieje takie α dla którego otrzymalibyśmy rozwiązanie optymalne w liczbach całkowitych Zmieniamy poziom warstwicy (warstwica dla ~ 9 8 w dodatkowym ograniczeniu które będzie miało teraz postać: 8 Rozszerzone zadanie regularne ma teraz postać: ~ max ( ) 7 ( ) 8 Przechodzimy do iteracji Iteracja Wszystkie alternatywne rozwiązania optymalne rozszerzonego zadania regularnego są następujące: x x ~max 8 Żadne z rozwiązań alternatywnych nie jest całkowitoliczbowe Należy sprawdzić czy za pomocą wypukłej kombinacji liniowej rozwiązań alternatywnych można uzyskać rozwiązanie całkowitoliczbowe Wypukła kombinacja rozwiązań wierzchołkowych ma postać: x αx ( ) ( ) α x5 α α przy α x 8 α Po uporządkowaniu mamy: 7 przy α α Łatwo zauważyć że dla α otrzymujemy rozwiązanie optymalne w liczbach całkowitych postaci: x Kończymy postępowanie Kolejne iteracje algorytmu można prześledzić na rysunku

n!"#$ [8] Rozwiązanie końcowe przykładowego zadania PLC jest następujące: ~ max 8 max 6 6 Rys Ilustracja cięć w zbiorze X w algorytmie Nieszczeriakov a (dla przykładu )

n n n oraz pochodzą n!"#$ [9] Algorytm GOMORY ego!!! ZAŁOŻENIE!!! Wszystkie parametry i ograniczeń muszą być liczbami całkowitymi Jeżeli oryginalne ograniczenia nie spełniają tego warunku to należy pomnożyć każde z nich z osobna przez odpowiednio dobraną dla niego dodatnią stałą a po uzyskaniu rozwiązania optymalnego należy wartość zmiennej swobodnej podzielić przez tą stałą Iteracja Postępowanie rozpoczynamy od rozwiązania zadania regularnego (-) Jeżeli zadanie jest sprzeczne albo nie posiada skończonego rozwiązania optymalnego to kończymy postępowanie Jeżeli rozwiązanie optymalne dane jest w liczbach całkowitych to kończymy postępowanie Jeżeli rozwiązanie nie spełnia warunku całkowitoliczbowości to przechodzimy kolejnej iteracji Iteracja k (k ) W zbiorze wartości zmiennych bazowych znajdujemy wartość o największej części ułamkowej W przypadku niejednoznacznego wyboru kierujemy się zasadą niższego numeru (niższej pozycji na liście zmiennych bazowych) Niech taką zmienną będzie zmienna bazowa o numerze ( ) tj ( ) ( ( ) [ ( )]) max{ ( ( ) ( ) [ ( )])} Obcinamy zbiór rozwiązań dopuszczalnych X zadania regularnego (-) dodając do zbioru ograniczeń półpłaszczyznę zdefiniowaną następująco: ( [ ( ) ] ( ) ) ( [ ( )] ( )) : ) i rozwiązujemy nowe zadanie regularne (-) Nawiasy [ ] oznaczają funkcję Entier a elementy ( ( ) z -tego wiersza tablicy simpleksowej zawierającej rozwiązanie optymalne zadania (-) rozwiązywanego w iteracji - Technicznie postępowanie obcinania zbioru X aktualnego zadania regularnego (-) realizujemy następująco: Do tablicy simpleksowej zawierającej rozwiązanie optymalne zadania (-) rozwiązywanego w iteracji - dokładamy dodatkowe równanie : ([ ( ) ] ( ) ) ([ ( )] ( )) Jako kolejną (ostatnią) zmienną bazową w nowej tablicy przyjmujemy zmienną n

n!"#$ [] Tablica taka zawiera zawsze rozwiązanie bazowe dualnie dopuszczalne które jest jednak niedopuszczlne prymalnie (składowa z wartością nowej zmiennej bazowej doklejonego równania jest ujemna) Wykonujemy itercję DLSX udopuszczalniającą prymalnie aktualne rozwiązanie bazowe dualnie dopuszczalne W kroku mogą zaistnieć trzy sytuacje Można wykonać iterację DLSX i otrzymane rozwiązanie jest całkowitoliczbowe Koniec postępowania Można wykonać iterację DLSX ale otrzymane rozwiązanie nie jest całkowitoliczbowe Przechodzimy do iteracji Nie można wykonać iteracji DLSX (brak elementów ujemnych w wierszu ( )) Koniec postępowania Rozwiązywane zadanie nie posiada rozwiązania optymalnego w liczbach całkowitych PRZYKŁAD Rozważmy zadanie PLC z przykładu max ( ) 7 ( ) Ograniczenia tego zadania nie spełniają założenia wstępnego algorytmu Gomory ego Mnożymy ograniczenia ( ) przez stałą λ Po takim zabiegu nowe zadanie PLC spełnia już założenie wstępne algorytmu Rozwiązywane zadanie regularne ma postać: max ( ) 7 ( ) Iteracja Tablica simpleksowa zawierająca rozwiązanie optymalne jest następująca: / / B Zmienne c B bazowe x / / / / / / / / / Rozwiązanie nie jest całkowitoliczbowe Przechodzimy do iteracji

n!"#$ [] Iteracja Pozycją w bazie o największej części ułamkowej przy wartości zmiennej bazowej jest ( ) Równanie obcinające zbiór X należy wygenerować z równania dla zmiennej ( ) Równanie to ma następującą postać: ([ ] ) ([] ) ([ ] ) ([ ] ) ([ ] ) Rozszerzona tablica simpleksowa z rozwiązaniem optymalnym zadania regularnego (-) z iteracji oraz iteracja udopuszczalniająca DLSX są następujące: / / B c Zmienne bazowe / / / / / / / / / / / ( )/ x x x /6 x x / / / / / /6 / Otrzymane w wyniku zastosowania DLSX rowiązanie nie jest całkowitoliczbowe Należy przejść do kolejnej iteracji Iteracja Pozycją w bazie o największej części ułamkowej przy wartości zmiennej bazowej jest teraz ( ) Kolejne równanie obcinające zbiór X należy wygenerować z równania dla zmiennej ( ) Równanie to ma następującą postać: ([] ) ([ ] ) ([ ] ) ([ ] ) ([ ] ( ) ) ([ ] ) Rozszerzona tablica simpleksowa z rozwiązaniem optymalnym zadania regularnego (-) z iteracji oraz iteracja udopuszczalniająca DLSX są następujące: B x

jest jest n!"#$ [] B c Zmienne / / bazowe B x / / / / / / / /6 / ( )/ x x / x x x x / / /6 / Otrzymane w wyniku zastosowania DLSX rowiązanie jest całkowitoliczbowe Kończymy postępowanie Rozwiązanie końcowe przykładowego zadania PLC jest następujące: λ max Kolejne odcięcia zbioru X w algorytmie Gomory ego można prześledzić na rysunku Komentarz do rysunku Pokazane na rysunku odcięcia i są odwzorowaniami płaszczyzn odcinających z przestrzeni n-wymiarowej (n>) na płaszczyznę (przestrzeń R ) I tak : nierówność odwzorowaniem w przestrzeni R nierówności odcinającej (iteracja ) z przestrzeni R nierówność 5 odwzorowaniem w przestrzeni R nierówności odcinającej (iteracja ) z przestrzeni R 5 Opisane przekształcenia wykonano tradycyjnie ( ręcznie ) wykorzystując postaci kanoniczne modeli zadania regularnego (-) z kolejno dołączanymi zmiennymi swobodnymi oraz równaniami odcięć Proces znajdowania odworowań można zautomatyzować wykorzystując przekształcenia liniowe przestrzeni wektorowej (por EŻółtowska EPorazińska JŻółtowski n Wydawnictwo ABSOLWENT Łódź rozdział II)

( >>) n n!"#$ [] Rys Ilustracja odcięć zbioru X w algorytmie Gomory ego (dla przykładu ) Metoda PODZIAŁU i OGRANICZEŃ (Branch & Bound Method) Metoda nie wymaga żadnych założeń odnośnie do parametrów zadania PLC (-) Dla uproszczenia opisu zakładamy że zadanie polega na znajdowaniu wartości największej funkcji celu (maksymalizacja) Jeżeli jest odwrotnie (minimalizacja) to mnożymy funkcję celu przez (-) a po zakończeniu postępowania jej wartość optymalną należy pomnożyć przez (-) Do zadania PLC (-) dołączamy dodatkowe warunki (5) Warunki (5) są ograniczeniami widełkowymi dla zmiennych tj narzucają indywidualnie zakres dopuszczalnych wartości poszczególnych zmiennych Ograniczenia (5) mają postać: (5) L Granice ograniczeń widełkowych (5) tj parametry oraz powinny być liczbami całkowitymi Najczęściej przyjmuje się że dolne ograniczenia dla zmiennych są równe zero ( ) Z kolei dla górnych ograniczeń () przyjmuje się dostatecznie dużą całkowitą liczbę W sensie geometrycznym dobór parametrów określających dolną ( ) i górną () wartość zmiennej ( ) jest taki że hiperprostopadłościan H generowany przez (5) pokrywa na początek zbiór rozwiązań dopuszczalnych X zadania regularnego (-) tj H X W całym procesie obliczeniowym metody podziału i ograniczeń rozwiązywane jest zadanie regularne (-)(5) Z uwagi na ograniczenia (5) wygodną metodą rozwiązywania zadania

n!"#$ [] ) regularnego (-)(5) jest zmodyfikowana metoda simpleks ( n n jest równa oryginalnej to zadanie PLC (-) nie posiada skończonego rozwiązania optymalnego Jeżeli rozwiązanie nie spełnia warunku całkowitoliczbowości to przechodzimy do kroku w iteracji Iteracja Postępowanie rozpoczynamy od rozwiązania zadania regularnego (-)(5) Jeżeli zadanie jest sprzeczne to kończymy postępowanie Jeżeli rozwiązanie optymalne dane jest w liczbach całkowitych to kończymy postępowanie!!! Jeżeli optymalna wartość jakiejkolwiek zmiennej (początkowej) wartości jej górnego ograniczenia () Iteracja k (k ) Kolejne kroki każdej iteracji są następujące Porządkowanie listy zadań Z listy zadań usuwamy: zadania już podzielone zadania sprzeczne oraz zadania które mają wartość funkcji celu mniejszą lub równą wartości funkcji celu zadań spełniających warunki całkowitoliczbowości Pozostałe na liście zadania nazywamy zadaniami aktywnymi Sprawdzanie czy można zakończyć postępowanie Sprawdzamy czy istnieje takie zadanie aktywne którego rozwiązanie optymalne spełnia warunki całkowitoliczbowości a jednocześnie na liście nie ma żadnego innego zadania aktywnego lub wszystkie pozostałe zadania aktywne mają wartość funkcji celu nie większą niż w takim zadaniu [ Jeżeli istnieje takie zadanie aktywne to kończymy postępowanie Zadanie to generuje rozwiązanie optymalne zadania PLC (-)!!! Jeżeli optymalna wartość jakiejkolwiek zmiennej jest równa oryginalnej (początkowej) wartości jej górnego ograniczenia () to zadanie PLC (-) nie posiada skończonego rozwiązania optymalnego] Jeżeli nie istnieje takie zadanie aktywne to przechodzimy do kolejnego kroku Wybór zadania do podziału Jako zadanie do podziału wybieramy to zadanie które ma największą wartość funkcji celu i nie spełnia warunków całkowitoliczbowości Wybór zmiennej wg której dokonamy podziału zadania Podziału zadania dokonujemy zawsze ze względu na dowolnie wybraną zmienną która w rozwiązaniu optymalnym nie miała wartości całkowitej (npzmienna ) Załóżmy że ograniczenie widełkowe (5) dla tej zmiennej ma aktualnie postać: Modyfikacja metody simpleks polega tutaj na tym że w tablicy simpleksowej przetwarzany jest tylko układ ograniczeń () Ograniczenia (5) są kontrolowane poza tablicą simpleksową poprzez rozbudowanie kryterium optymalności wejścia i wyjścia Komplikuje to nieznacznie samo przepatrywanie rozwiązań ale rozmiary zadania PL są zdecydowanie mniejsze Zwiększa to w sensie numerycznym stabilność i dokładność procesu obliczeniowego Z popularnych programów komputerowych metodę GUB do rozwiązywaniu regularnych zadań PL (-) wykorzystuje pakiet WinStorm

n!"#$ [5] 5 Podział zadania W wyniku podziału zadania z kroku (zadanie matka ) powstaną zawsze dwa nowe zadania (zadanie córka oraz zadanie syn ) Oba nowe zadania są kopiami zadania dzielonego i różnią się wyłącznie ograniczeniem widełkowym dla zmiennej które modyfikujemy następująco: dla pierwszego z zadań ( córka ) przyjmujemy [ ] dla drugiego z zadań ( syn ) przyjmujemy [ ] W sensie geometrycznym w zbiorze rozwiązań dopuszczlnych X zadania matka wycinane jest pasmo [ ] < < [ ] co prowadzi do podziału tego zbioru na dwa podzbiory związane odpowiednio z zadaniami córka i syn 6 Rozwiązanie zadań z aktualnego podziału Po rozwiązaniu obu nowych zadań przechodzimy do kolejnej iteracji PRZYKŁAD 5 Rozważmy następujące zadanie PLC: max () () () W celu rozwiązania zadania PLC metodą podziału i ograniczeń uzupełniamy ograniczenia () zespołem nierówności widełkowych (5) (5) Iteracja Oznaczenia zadań którymi będziemy posługiwali się do końca tego przykładu są następujące: Z nr bieżący zadania / nr zadania matki Rozwiązujemy zadanie regularne (-)(5) i otrzymujemy rozwiązanie optymalne: aktualne Z / ograniczenia (5) () max

n!"#$ [6] Jak widać zadanie (-)(5) tj zadanie Z / nie jest sprzeczne i ma skończone rozwiązanie optymalne Rozwiązanie optymalne zadania Z / nie jest jednak całkowitoliczbowe Przechodzimy do kroku w iteracji Iteracja Krok Wybór zmiennej wg której dokonamy podziału zadania Z / Zadaniem które zostanie podzielone jest zadanie Z / Zmienna względem której dokonamy podziału to zmienna Krok 5 Podział zadania Z / Dzielimy ograniczenie widełkowe (5) dla zmiennej które w zadaniu Z / wyglądało następująco: W zadaniu córka (Z / ) będzie ono następujące: [] czyli x W zadaniu syn (Z / ) będzie ono następujące: [] czyli 5 x Krok 6 Rozwiązanie zadań z aktualnego podziału tjzadań Z / i Z / Rozwiązania obu zadań są następujące: aktualne Z / ograniczenia (5) Z / aktualne ograniczenia (5) 5 5 max max Przechodzimy do iteracji Iteracja Krok Porządkowanie listy zadań Aktualna lista zadań jest następująca: Z / max rozwiązanie niecałkowitoliczbowe Z / max rozwiązanie niecałkowitoliczbowe Z / zadanie jest sprzeczne zadanie jest sprzeczne Usuwamy z listy zadanie Z / (już podzielone) oraz zadanie Z / (sprzeczne) Uporządkowana lista zadań to: Z / max rozwiązanie niecałkowitoliczbowe Krok Sprawdzanie czy można zakończyć postępowanie Jedyne na uporządkowanej liście zadanie aktywne nie daje rozwiązania w liczbach całkowitych Należy przejść do kolejnego kroku

n!"#$ [7] Krok Wybór zadania do podziału Wybieramy zadanie o największej wartości funkcji celu spośród zadań nadających się do podziału Jest nim zadanie Z / Krok Wybór zmiennej wg której dokonamy podziału zadania Z / Zadaniem które zostanie podzielone jest zadanie Z / Zmienna względem której dokonamy podziału to zmienna 5 Krok 5 Podział zadania Z / Dzielimy ograniczenie widełkowe (5) dla zmiennej które w zadaniu Z / wyglądało następująco: W zadaniu córka (Z / ) będzie ono następujące: [5] czyli x W zadaniu syn (Z 5/ ) będzie ono następujące: [5] czyli x Krok 6 Rozwiązanie zadań z aktualnego podziału tjzadań Z / i Z 5/ Rozwiązania obu zadań są następujące: aktualne Z / ograniczenia (5) Z 5/ aktualne ograniczenia (5) 5 67 max 75 max Przechodzimy do iteracji Iteracja Krok Porządkowanie listy zadań Aktualna lista zadań jest następująca: Z / max rozwiązanie niecałkowitoliczbowe Z / max 75 rozwiązanie niecałkowitoliczbowe Z 5/ max rozwiązanie niecałkowitoliczbowe Usuwamy z listy zadanie Z / (już podzielone) Uporządkowana lista zadań to: Z / max 75 rozwiązanie niecałkowitoliczbowe Z 5/ max rozwiązanie niecałkowitoliczbowe Krok Sprawdzanie czy można zakończyć postępowanie Brak zadań aktywnych o rozwiązaniu w liczbach całkowitych Należy przejść do kolejnego kroku Krok Wybór zadania do podziału Wybieramy zadanie o największej wartości funkcji celu spośród zadań nadających się do podziału Jest nim zadanie Z 5/

n!"#$ [8] Krok Wybór zmiennej wg której dokonamy podziału zadania Z 5/ Zadaniem które zostanie podzielone jest zadanie Z 5/ Zmienna względem której dokonamy podziału to zmienna 67 Krok 5 Podział zadania Z 5/ Dzielimy ograniczenie widełkowe (5) dla zmiennej które w zadaniu Z 5/ wyglądało następująco: W zadaniu córka (Z 6/5 ) będzie ono następujące: [67] czyli x W zadaniu syn (Z 7/5 ) będzie ono następujące: [67] czyli x Krok 6 Rozwiązanie zadań z aktualnego podziału tjzadań Z 6/5 i Z 7/5 Rozwiązania obu zadań są następujące: aktualne Z 6/5 ograniczenia (5) Z 7/5 Aktualne ograniczenia (5) max max Przechodzimy do iteracji Iteracja Krok Porządkowanie listy zadań Aktualna lista zadań jest następująca: Z / max 75 rozwiązanie niecałkowitoliczbowe Z 5/ max rozwiązanie niecałkowitoliczbowe Z 6/5 max rozwiązanie całkowitoliczbowe Z 7/5 zadanie sprzeczne zadanie jest sprzeczne Usuwamy z listy zadanie Z 5/ (już podzielone) zadanie Z / (nie da się z niego po podziałach wygenerować zadania z wartością funkcji celu większą lub równą ) oraz zadanie Z 7/5 (sprzeczne) Uporządkowana lista zadań to: Z 6/5 max rozwiązanie całkowitoliczbowe Krok Sprawdzanie czy można zakończyć postępowanie Lista zawiera jedno zadanie z rozwiązaniem w liczbach całkowitych Brak na niej zadań aktywnych nadających się do dalszego podziału Rozwiązaniem optymalnym zadania PLC (-) jest więc rozwiązanie zadania Z 6/5 Koniec postępowania Rozwiązanie końcowe przykładowego zadania PLC jest następujące: max