Sld 14 ProgramLiniowe

background image

Rozdział 14

PROGRAMOWANIE

LINIOWE

background image

Sld.14.2. Programowanie liniowe

Wiele problemów, które chcemy rozwiązywać w

ekonometrii, to zadania

optymalizacji

:

problem

najkrótszej ścieżki,

najtańszego drzewa rozpinającego,

najdłuższego podciągu rosnącego

itd.

W takich przypadkach poszukujemy rozwiązania,

które

1.spełnia pewne ograniczenia (np. ścieżka musi

przechodzić po krawędziach grafu i prowadzić z

s

do

t

,

drzewo musi obejmować wszystkie wierzchołki) oraz

2.jest możliwie najlepsze, według pewnego dobrze

zdefiniowanego

kryterium,

spośród

wszystkich

rozwiązań spełniających te ograniczenia.

background image

Sld.14.3.

Programowanie

liniowe

Programowanie liniowe (ang.

linear programming

)

obejmuje szeroką klasę zagadnień optymalizacyjnych,

w których zarówno ograniczenia, jak i kryterium

optymalizacji są funkcjami liniowymi. Okazuje się, że

można w ten sposób wyrazić ogromną liczbę

problemów.

W problemie programowania liniowego dany jest

zbiór zmiennych, którym chcemy przypisać wartości

rzeczywiste w taki sposób, aby

1. spełnić pewien zbiór równań i/lub nierówności

liniowych zawierających te zmienne,

2. znaleźć optymalną wartości (najmniejszą lub

największą) danej funkcji celu (ang.

objective function

).

background image

Sld.14.4. Przykład 1: maksymalizacja zysku -1

Pewien producent czekolady oferuje dwa wyroby:

-czekoladki

X1

- oraz luksusowe

X2

.

Ile każdego z nich powinien produkować, aby

zmaksymalizować swoje

zyski?

Powiedzmy,

że

produkuje dziennie

x

1

pudełek

X1

, każde w cenie 1 $,

oraz

x

2

pudeł

X2

droższych, po 6 $ za sztukę.

x

1

i x

2

są nieznanymi wartościami, które chcemy

obliczyć. Istnieją ograniczenia:

•Oczywiste

x

1

, x

2

 0

.

•Dzienne zapotrzebowanie na czekoladki

X1

ogranicza się do

200 pudeł i

X2

do 300 pudeł.

•Pracownicy mogą łącznie wyprodukować co

najwyżej 400 pudeł czekoladek dziennie.

Ile wynosi wielkość produkcji obu typów

czekoladek zapewniająca optymalny zysk?

background image

Sld.14.5.

Przykład 1: maksymalizacja zysku

- 2

Sytuację opisujemy za pomocą zadania
programowania liniowego:

funkcja celu

C = max (x

1

+ 6x

2

);

ograniczenia: x

1

200; x

2

300; x

1

+ x

2

400; x

1

,

x

2

0 .

Równanie liniowe zmiennych x

1

i x

2

definiuje linię prostą na

płaszczyźnie dwuwymiarowej (2D), a nierówność liniowa wyznacza
półpłaszczyznę - obszar po jednej stronie prostej. Zbiór wszystkich
rozwiązań dopuszczalnych jest częścią wspólną pięciu pół płaszczyzn.
Jest to wielokąt :

background image

Sld.14.6. Rozwiązywanie zadań

programowania liniowego

Zadania programowania liniowego
(PL) możemy rozwiązywać przy użyciu

metody sympleks

wymyślonej przez George'a Dantziga
w 1947 roku.

Algorytm ten rozpoczyna od

pewnego wierzchołka, może to być
(0,0), po czym wielokrotnie przechodzi
do

sąsiedniego

wierzchołka

(połączonego

krawędzią

obszaru

dopuszczalnego) o lepszej wartości
funkcji celu. W ten sposób wspina się
po wierzchołkach wielokąta, skacząc
od sąsiada do sąsiada i stale
zwiększając zysk na swojej drodze.

background image

 

Sld.14.7. Przykład 2: maksymalizacja zysku –
2.1

Pewien producent czekolady oferuje trzy wyroby:

- czekoladki

X1

; luksusowe

X2

, oraz bardziej ekskluzywny

X3

.

Ile każdego z nich powinien produkować, aby
zmaksymalizować swoje zyski? Produkuje dziennie x

1

pudełek

X1

w cenie 1 $, x

2

pudeł

X2

po 6 $, oraz

X3

po 13 $ za sztukę.

x

1,

x

2

i x

3

chcemy obliczyć. Istnieją ograniczenia :

Oczywiste x

1

, x

2

, x

3

0.

Dzienne zapotrzebowanie na czekoladki

X1

ogranicza się do

200 pudeł, i

X2

do 300 pudeł.

Pracownicy mogą łącznie wyprodukować co najwyżej 400
pudeł czekoladek dziennie.

Wyroby

X1

i

X3

wymagają tych samych maszyn pakujących,

przy czym pakowanie

X3

trwa trzy razy dłużej, co narzuca

jeszcze jedno ograniczenie

x

1

+ 3x

3

600.

Ile wynosi wielkość produkcji obu typów czekoladek

zapewniająca optymalny zysk?

background image

Sld.14.8. Przykład 2: maksymalizacja
zysku – 2.2

Przechodzimy z wierzchołka do wierzchołka po krawędziach

wielościanu, stale zwiększając zysk. Rysunek przedstawia jedną z
możliwych

dróg.

Odpowiada

ona

następującemu

ciągowi

wierzchołków i zysków:

A(0, 0, 0)  B(200, 0, 0)  C(200, 200, 0)  D(200, 0, 200)  E(0,

300, 100)

0$ 200 $ 1400 $ 2800 $

3100 $

background image

Sld.14.8. Algorytm sympleks

Algorytm sympleks dla danego zbioru nierówności

liniowych i liniowej funkcji celu znajduje optymalny punkt

dopuszczalny za pomocą następującej strategii:

• niech v - dowolny wierzchołek obszaru dopuszczalnego
while

istnieje sąsiad v' wierzchołka v o lepszej wartości celu:

przypisz

v = v‘.

W każdej iteracji algorytm sympleks wykonuje dwa

zadania:

1. Sprawdza, czy bieżący wierzchołek jest optymalny

(jeśli tak, zatrzymuje się ).

2. Określa następny wierzchołek, do którego powinien

się przenieść.

background image

LITERATURA

1.S.Dasgupta. Algorytmy. PWN. Warszawa

2010


Document Outline


Wyszukiwarka

Podobne podstrony:
Ćwiczenie 14-program, UG, SEM3, GENETYKA
R-14-t, Programowanie Linux
algorytmy 14 3 9 program
PROGRAM laboratoriów z Ekologii i ochrony przyrody na semestr zimowy 14 15
13 14 Przewodnik po programie podstaw dydaktykiid 14580
programowanie st7 2011 03 14 id Nieznany
Programowanie robota SCORA-ER 14, DEFP PK1
14 ELEMENTS OF A SUCCESSFUL SAFETY & HEALTH PROGRAM
2013 14 DOKUMENT 2 - Program Ramowy, Studia, licencjackie, II ROK, Praktyki, Dokumenty
ZS L2 14 1Z program ćw
BIZNESPLAN dla programu promocj Nieznany (14)
Nowy Dokument programu Microsoft Word (14)
PROGRAM SLD
ZS L2-14-1Z, program ćw
Program wykładów Prawo sum fiz 14 15
R-14-07, Programowanie, ! HTML, HTML 4 - Vademecum
SLD program, pliki zamawiane, edukacja

więcej podobnych podstron