• Nie Znaleziono Wyników

Programowanie dyskretne

N/A
N/A
Protected

Academic year: 2021

Share "Programowanie dyskretne"

Copied!
12
0
0

Pełen tekst

(1)

Programowanie dyskretne

Dotyczy problemów decyzyjnych, w których pewne zmienne decyzyjne mogą przyjmować tylko dyskretne wartości np.:

 całkowitoliczbowe

 binarne (0 lub 1)

W zależności od rodzaju występujących

zmiennych wyróżniamy zadania programowania

 całkowitoliczbowego

 binarnego

 mieszanego – występują zmienne ciągłe i dyskretne

(2)

Przykład

max ,

z x x

x x

x x

7 1 8 2 3 1 4 2 4

1 2 0

Rozwiązanie: x1=4/3, x2=0, z=28/3.

Przy dodatkowym warunku x1 oraz x2 całkowitoliczbowe Rozwiązanie: x1=0, x2=1, z=8.

(3)

Sytuacje, w których stosuje się zmienne dyskretne

 natura poszukiwanych rozwiązań jest dyskretna

 wyznaczanie liczby niepodzielnych obiektów np.

procesorów, zadań, pracowników itp.

 określanie permutacji lub kombinacji pewnego zbioru obiektów – problemy kombinatoryczne

 wybór decyzji spośród wielu wariantów

 modelowanie funkcji kawałkami liniowych, np.

uwzględnianie kosztów stałych

(4)

Metody rozwiązywania problemów dyskretnych

 algorytmy specjalizowane

 programowanie sieciowe

 metody przeglądu

metoda podziału i oszacowań (branch & bound)

branch & cut, branch & price i inne odmiany

programowanie w logice ograniczeń

 metody odcięć

 programowanie dynamiczne

 metody heurystyczne specjalizowane

 metaheurystyki

algorytmy genetyczne (ewolucyjne)

przeszukiwanie „tabu search”

symulowane wyżarzanie (wychładzanie)

algorytmy randomizowane, np. GRASP

(5)

Wykorzystywane „narzędzia”

 solvery Zadań Programowania Mieszanego

wymagają zapisania problemu w postaci zadania programowania liniowego z ewentualnymi warunkami całkowitoliczbowości

 pakiety Programowania w Logice Ograniczeń

wymagają zapisania problemu w stosownym języku, zwykle dość „elastycznym”

dla uzyskania efektywności potrzebują sformułowania dobrych reguł sterowania procesem przeglądu

 programy specjalizowane dla danej klasy problemów

wymagają zapisania danych wejściowych w stosownym formacie

 samodzielna implementacja algorytmów

(zaczerpniętych z literatury, opracowanych bądź dostosowanych przez siebie)

(6)

Problem P

z(P) = max f(x) xF(P)

Relaksacja

Restrykcja

Problem A

z(A) = max g(x) xF(A)

jest relaksacją problemu P jeżeli

(i) f(x)  g(x) dla każdego xF(P) (ii) F(P)  F(A)

(7)

xF(B)

jest restrykcją problemu P jeżeli

(i) f(x)  h(x) dla każdego xF(B) (ii) F(P)  F(B)

(8)

Metoda podziału i oszacowań

(dla zadania maksymalizacji)

1. Wybór podproblemu Pi do analizy (na początku P0 =P ).

2. Oszacowanie optymalnej wartości funkcji celu dla podproblemu Pi

 od dołu zi – z rozwiązania dopuszczalnego (dobrego);

 od góry zi– z relaksacji (np. relaksacji liniowej);

3. Sondaż podproblemu Pi

 gdy Pi niedopuszczalny zamykamy jego analizę;

 gdy zi = zi podproblem rozwiązany – zamykamy jego analizę. Jeżeli zi > z0, to znaleźliśmy lepsze rozwiązanie dopuszczalne problemu P, a więc z0:= zi ;

 gdy zi  z0 – w podproblemie nie ma lepszych rozwiązań niż dotychczas znalezione (o wartości funkcji celu z0).

Zamykamy analizę podproblemu;

 gdy zi > z0, zi < zi dokonujemy podziału podproblemu Pi

na podproblemy Pj (nowe gałęzie drzewa), tak aby

F Pj F Pi

j

( ) ( )

4. Jeżeli wszystkie podproblemy są zamknięte to STOP. W przeciwnym przypadku idziemy do 1.

Dla zadania minimalizacji analiza oszacowań jest oparta na odwrotnych relacjach.

(9)

Przykład max

,

z x x

x x

x x

x x calkowite

2 1 3 2 5 1 7 2 35 4 1 9 2 36

1 2 0

z

x

x

14 8

17 312

17 2 6 17

1

2

z

x x

131

2 21 4 3

1

2

z

x x

142

5 41

5 2

1

2

niedopu szczalne

z x x

131

3 2 31

9

1

2

z x x

14

4 2

1 2

x2  3 x2  2

x1  5 x1  4 x1  3 x1  2

(10)

z x x

13

2 3

1 2

z x x

12

0 4

1 2

x2  4 x2  3

(11)

Kwestie do rozstrzygnięcia

 wybór podproblemu do analizy

 rodzaj stosowanych oszacowań

 rodzaj relaksacji – kompromis między czasem obliczeń a dokładnością

 strategia wyznaczania dobrych rozwiązań dopuszczalnych

 sposób podziału na podproblemy – drzewo binarne, wielogałęziowe itd.

 wybór zmiennej, względem której następuje podział

(12)

Przykład – problem plecakowy

Sformułowanie

Które spośród n przedmiotów o wartościach c1, c2,...,cn i ważących odpowiednio a1, a2,...,an należy zapakować do plecaka o ładowności b, aby łączna wartość zapakowanych przedmiotów była jak największa ?

Model Programowania Binarnego

max

{ , }, ,..., z c x

a x b

x i n

i i i n

i i i

n

i

1

1

0 1 1

(13)

Relaksacja liniowa problemu plecakowego

max

, ,..., z c x

a x b

x i n

i i i

n

i i i

n

i

1

1

0 1 1

Właściwości relaksacji liniowej

Niech uporządkowanie przedmiotów będzie takie, że c1/a1  c2/a2  ...  cn/an

Wtedy rozwiązanie

x1=1, x2=1, ..., xp-1=1, xp = (b ai

i

p

1

1 )/ap, xp+1=0, ..., xn=0 gdzie p = min{ j : ai b

i j

1 }

jest optymalnym rozwiązaniem relaksacji liniowej problemu plecakowego

Zachłanny algorytm rozwiązywania

(14)

Powłoka wypukła

Najmniejszy zbiór wypukły zawierający zbiór rozwiązań dopuszczalny problemu dyskretnego

Właściwości

Relaksacja liniowa problemu ograniczonego do powłoki wypukłej daje rozwiązanie optymalne problemu dyskretnego.

Idea metod odcięć

(kolejne „przybliżanie” powłoki wypukłej) 1. rozwiązanie relaksacji liniowej;

2. jeżeli rozwiązanie dopuszczalne (całkowitoliczbowe), to STOP.

W przeciwnym przypadku idź do 3;

3. generacja i dodawanie ograniczenia odcinającego uzyskane rozwiązanie, ale nie naruszające powłoki wypukłej. Idź do 1;

Cytaty

Powiązane dokumenty

Wychowanie obywatelskie odnosi się do celowego oddziaływania na funk- cjonowanie narodu i państwa, gdyż przyczynia się do jego przetrwania i rozwoju, który tworzy się na

Katedra Technologii Informatycznych w Inżynierii Wydział Inżynierii Lądowej Politechniki Krakowskiej. Strona

Wynika stąd, że (dla n &gt; 32) istnieje derywacja pierścienia k[X], której pierścień stałych nie jest skończenie generowany.. W 1990

Derywacja D jest jednorodna (Stwierdzenie 2.1), istnieje więc skończony zbiór generatorów, z których każdy jest wielomianem jednorodnym.. Niech m będzie maksymalnym stopniem

X Możliwe jest zaproponowanie ciągłego kodowania problemu (dynamicznej) marszrutyzacji, umożliwiającego zastosowanie dowolnych populacyjnych algorytmów optymalizacji ciągłej

Wybrane zagadnienia programowania dyskretnego: zagadnienia transportowe, problemy najkrótszych dróg, problem komiwojażera, zagadnienia załadunku, zagadnienia lokalizacyjne,

Te wszystkie treści, a więc, że Bóg Ojciec swoją wszechmocą powołał do istnienia kosmos na czele z człowiekiem, że Bóg Ojciec swoją wszechmocą sprawił

Wyjęte z kontekstu sag, strofy te nawiązują do osoby Styrbjörna Olafssona, który jawi się tutaj jako waleczna osoba, sławiona za wojenne dokonania przez otaczających go skal­