















Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
skripta od Daniela Petkovicek - Linearno programiranje
Tipologija: Skripte
1 / 23
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!
















Linearno programiranje je grana matematike koja se bavi problemom optimizacije sustava unutar zadanih ograničenja. Uveo ju je Leonid Kantorovič kasnih 1930-ih godina kao metodu rješavanja problema planiranja proizvodnje. U SAD-u je linearno programiranje razvijeno tijekom Drugog Svjetskog rata prvenstveno za probleme vojne logistike, kao što je optimiziranje prijevoza vojske i opreme konvojima. Važan je i doprinos ekonomista Tjallinga Koopmansa (rođen u Nizozemskoj, 1940. preselio u SAD). Kantorovič i Koopmans su 1975. god. podijelili Nobelovu nagradu za ekonomiju za njihov pionirski rad u linearnom programiranju.
Proizvođač želi odrediti kako iskoristiti ograničene količine sirovina uz najveći profit, poslovođa kako rasporediti zadani posao između svojih zaposlenika tako da bude napravljen u najkraćem mogućem vremenskom roku... Cilj ovih problema je optimizacija, maksimiziranje korisnosti ili minimiziranje troškova uz zadana ograničenja što se rješava linearnim programiranjem. Područje primjene linearnog programiranja je široko: proizvodnja, transport i distribucija, marketing, telekomunikacije, financijsko ulaganje i planiranje, raspored zaposlenika,… Formulirati (modelirati) realni životni problem kao problem linearnog programiranja zahtijeva timski rad stručnjaka iz više područja.
Linearno programiranje promatra probleme u kojima se linearna funkcija cilja mora optimizirati (maksimizirati ili minimizirati) uz uvjete ili ograni č enja dana u obliku jednadžbi ili/i nejednadžbi i uz nenegativne varijable odlu č ivanja. To je formalni postupak optimizacije sustava kod kojih se funkcija cilja i ograničenja mogu izraziti linearnim kombinacijama promjenljivih veličina Kod cjelobrojnog su programiranja varijable odlučivanja cjelobrojne.
Primjer 1.1:
Proizvođač proizvodi dvije vrste betona. Svaka vreća visokokvalitetnog betona sadrži 10 kg šljunka i 5 kg cementa, dok svaka vreća niskokvalitetnog betona sadrži 12 kg šljunka i 3 kg cementa. U skladištu postoji 1920 kg šljunka i 780 kg cementa. Proizvođač ostvaruje zaradu od 1,20$ za svaku vreću visokokvalitetnog, a 1,00$ za
svaku vreću niskokvalitetnog betona i želi odrediti koliko vreća treba proizvesti jednoga i drugoga iz dostupnih sirovina za najveću zaradu.
Rješenje:
Iz praktičnih razloga počinje se konstrukcijom tablice koja pokazuje količinu šljunka i cementa u vreći za svaki tip betona, raspoloživost sirovina i zaradu za svaku vreću.
Visokokvalitetan/kg Niskokvalitetan/kg Raspoloživo
Šljunak 10 12 1920
Cement 5 3 780
Zarada/Vreća 1,20 1,
Ako se proizvedene vreće visokokvalitetnog betona označe s V, niskokvalitetnog s N, a zaradu s Z, linearna funkcija će izgledati ovako:
Z = 1,20V + 1,00N
Količine raspoloživih sirovina se mogu izraziti s dvije nejednadžbe:
10V + 12N ≤ 1920 Šljunak 5V + 3N ≤ 780 Cement
Negativne vrijednosti V i N nemaju fizikalni smisao u kontekstu ovog problema, pa vrijedi V ≥ 0 i N ≥ 0. Prema tome problem se može izraziti matematički kao:
Maksimizirati funkciju zarade Z = 1,20V + 1,00N unutar graničnih uvjeta 10V + 12N ≤ 1920 5V + 3N ≤ 780 V, N ≥ 0
U ovom primjeru treba primijetiti da se optimalno rješenje koje se traži nalazi u rješenju sustava linearnih nejednadžbi.
strana na kojoj se ona nalazi strana rješenja, u suprotnom se rješenje nalazi na drugoj strani. (Najčešće se uzima T(0,0), ako pravac ne prolazi kroz ishodište).
Primjer 1.2:
Potrebno je nacrtati grafove slijedećih nejednadžbi:
a) 2x – y ≥ 5 b) 3x + y > 0 c) x < 4
Rješenje:
Slika 1.
2x-y=5 3x+y=0 x=
Primjer 1.3:
Potrebno je odrediti područje izvedivosti sustava slijedećih nejednadžbi
3x – y ≤ 2 x + y ≥ 6
Rješenje:
Područje izvedivosti je područje u kome se zadani grafovi preklapaju.
3x-y=2 x+y=
3x-y=
x+y=
x x x
y y y
(a) graf (b) graf (c) graf sustava
Slika 1.
Moguća rješenja se nalaze unutar prostora definiranog zadanim ograničenjima. U pravilu, optimalna rješenja leže u vrhovima. Izuzeci su kada se poklope granični pravci i funkcije cilja – tada dva vrha i sve točke na pravcu između dva vrha daju isto optimalno rješenje. Vrhovi određenog područja izvedivosti se nalaze unutar tog područja, na presjecištu dvaju graničnih pravaca.
Primjer 1.
Potrebno je nacrtati graf, odrediti područje izvedivosti i sve vrhove za sustav nejednadžbi:
2x – y ≥ 5 3x + y > 0 x ≤ 4
Iz nejednadžbe V ≥ 0 i N ≥ 0 je vidljivo da se područje izvedivosti nalazi u prvom kvadrantu VN ravnine.
Nacrtati granične pravce 10V + 12N = 1920 i 5V + 3N = 780, te odabrati probnu točku za svaku od nejednadžbi (ishodište odgovara za obje). Iz 10·0V + 12·0N ≤ 1920 slijedi da je rješenje na grafu nejednadžbe 10V + 12N ≤ 1920 skup svih točaka ispod graničnog pravca (uključujući pravac) i istim postupkom se određuje graf nejednadžbe 5V + 3N ≤ 780 koji je skup svih točaka ispod graničnog pravca 5V + 3N = 780
Slika 1.4 Područje izvedivosti za sustav nejednadžbi
Područje izvedivosti je najtamnije obojano područje. Vrhovi se dobivaju rješavanjem dvije jednadžbe s dvije nepoznanice za svaku točku.
Vrhovi (156,0) (120,60) (0,160) (0,0)
Napomena:
Ako je presjecište dva granična pravca izvan područja izvedivosti onda to nije vrh. npr. točka (192,0) nije vrh jer ne zadovoljava nejednadžbu 5·192 + 3·0 ≤ 780
2. Geometrijsko linearno
programiranje
Linearni program sa dvije varijable x i y sadrži linearnu funkciju f = ax + by koja se naziva funkcijom cilja i koja mora biti optimizirana unutar sustava linearnih nejednadžbi. Varijable x i y nazivaju se varijablama odlučivanja, a rješenje sustava nejednadžbi naziva se područjem izvedivosti.
Za rješavanje linearnog programa, iz cijelog skupa izvedivih rješenja odabire se jedno, koje daje optimalnu vrijednost (maksimum ili minimum) funkcije cilja. Takvo rješenje (može ih biti više) naziva se optimalnim rješenjem. Za programe koji uključuju samo dvije varijable određuje se područje izvedivosti pomoću dosad obrađenih grafova. Međutim, područje izvedivosti uglavnom sadrži beskonačan broj točaka.
Primjer 1.1 (nastavak)
Problem je formuliran kao slijedeći linearni program. Potrebno je:
maksimizirati funkciju zarade Z = 1,20V + 1,00N unutar graničnih uvjeta 10V + 12N ≤ 1920 5V + 3N ≤ 780 V, N ≥ 0
U primjeru 1.5 je određeno područje izvedivosti i vrhovi. Za rješenje linearnog programa se određuje u kojoj točki funkcija Z = 1,20V + 1,00N ima najveću vrijednost (maksimum). Može se primijetiti da za svaku konstantu C graf jednadžbe 1,20V + N = C je pravac s nagibom -1.2. Taj pravac se naziva pravcem konstantne zarade zato što je zarada u svim točkama (V,N) koje se nalaze na tom pravcu jednaka. Svi pravci konstantne zarade imaju isti nagib iz čega slijedi da su paralelni i kako se C povećava odgovarajući pravci se udaljavaju od ishodišta. Posljednji pravac koji dodiruje područje izvedivosti prolazi kroz vrh (120,60), pa se može zaključiti da je maksimalna zarada:
Zmax = 1,20·120 + 1,00·60 = 204
Zaključak: S obzirom na dana ograničenja proizvođač će imati najveću zaradu ako proizvede 120 vreća visokokvalitetnog i 60 vreća niskokvalitetnog betona. Najveća zarada iznosi 204$.
Kod svakog linearnog programa sa dvije varijable područje izvedivosti (I) će biti konveksni poligonski skup, odnosno I će biti područje sa slijedećim svojstvima:
(a) konveksni skupovi
Slika 2.
(b) nekonveksni skupovi
Funkcija cilja u linearnom programu sa dvije varijable je oblika F= ax + by (a ,b = konst.). Za svaku konstantu C graf jednadžbe F = C će biti pravac (pravac konstantne vrijednosti ili jednostavnije – izolinija). Sve izolinije imaju isti nagib
i tvore porodicu paralelnih pravaca. Praktično je zamisliti porodicu pravaca F = C kao pomicanje pravca u jednom smjeru kako C raste.
rast C
(a) maksimum u P, minimum u Q
rast C
(c) ne postoji maksimum
Slika 2.
rast C
(b) maksimum duž P 1 P 2
Na slici 2.3(a) je područje izvedivosti omeđeno, a maksimalna i minimalna vrijednost F se nalaze u točkama P i Q, tj. na dva „kraja” područja izvedivosti. Na slici 2.3(b) jedan od paralelnih pravaca prolazi kroz dva susjedna vrha P 1 i P 2 , te je F maksimiziran duž cijelog brida P 1 P 2. Na slici 2.3(c) područje izvedivosti nije omeđeno u smjeru povećavanja C stoga funkcija može imati minimalnu vrijednost, ali joj maksimalna vrijednost teži beskonačnosti, nemoguće ju je odrediti i smatra se da ne postoji.
Teorem o vrhu glasi: Ako linearni program ima optimalno rješenje (maksimum ili minimum) mora se nalaziti u vrhu izvedbenog područja. Taj teorem omogućava jednostavan postupak rješavanja linearnog programa.
Geometrijska metoda rješavanja linearnog programa s dvije varijable odlučivanja - sažetak
U primjeru 1.1 vrhovi su u (156,0), (120,60) i (0,0) (slika 2.1). Izračunom zarade funkcije Z = 1,20V + N u vrhovima, dobiva se slijedeća tablica:
3. Uvod u simpleks metodu
Iako su Kantorovič, Koopmans i drugi dali veliki doprinos razvoju linearnog programiranja, za njegov značaj kao praktičan alat u ekonomiji, industriji i znanosti je zaslužan američki matematičar George Dantzig. 1947. godine Dantzig je primijetio da su određeni vojni problemi u suštini isti kao i problemi usklađivanja aktivnosti unutar velikih organizacija. Tada je razvio simpleks metodu kao način efikasnog rješavanja problema linearnog programiranja.
Simpleks metoda je način efikasnog pretraživanja vrhova područja izvedivosti (simpleksa) kako bi se pronašlo u kojem se pojavljuje optimalna vrijednost funkcije cilja. Najzanimljiviji linearni programi koji se pojavljuju u praksi uključuju velik broj varijabli i ograničenja, pa ih se mora rješavati upotrebom računala. Iz ovog razloga, cilj objašnjavanja simpleks metode nije samo zbog rješavanja problema na papiru, već razumijevanja računalnih programa s kojima se mogu susresti.
Problem standardnog maksimuma je specijalna vrsta linearnog programa koji je jednostavan za analizu. To je linearni program kojime želimo maksimizirati funkciju cilja:
F = c 1 x 1 + c 2 x 2 + ... + cnxn
Ograničenja su u obliku:
a 11 x 1 + a 12 x 2 + ... + a1nxn ≤ b 1 a 21 x 1 + a 22 x 2 + ... + a2nxn ≤ b 2
.... .... .... am1x 1 + am2x 2 + ... + amnxn ≤ bm
x 1 , x 2 , ... , xn ≥ 0
gdje je bj ≥ 0 za j = 1, 2, ... , m.
Općenito, problem standardnog maksimuma je linearni program koji zadovoljava slijedeće uvjete:
Prvi korak u primjeni simpleks metode za rješavanje problema standardnog maksimuma je pisanje nejednadžbi ograničenja i funkcije cilja kao jednadžbi. To omogućuje primjenu prethodno navedenih principa za rješavanje linearnih programa.
Primjer 3.
Treba pretvoriti nejednadžbu 3x 1 – 2x 2 + 5x 3 ≤ 6 u jednadžbu.
Rješenje:
Ova nejednadžba se može objasniti, ako pretpostavimo postojanje određenog odstupanja vrijednosti lijeve i desne strane nejednadžbe. To odstupanje se anulira dodatkom dopunske promjenjive varijable u ≥ 0, te se nejednadžba napiše kao jednadžba:
3x 1 – 2x 2 + 5x 3 + u = 6
Ako je x 1 = 2, x 2 = 4 i x 3 = 1, tada je 3·2 – 2·4 + 5·1 = 3 ≤ 6 , a dopunska promjenjiva varijabla iznosi 3 (u + 3 = 6, slijedi u = 3)
Primjer 3.
U sustavu nejednadžbi će postojati više različitih dopunskih promjenjivih varijabli, po jedna za svaku nejednadžbu. Tako da za sustav nejednadžbi:
3x 1 + 2x 2 – x 3 ≤ 4 x 1 – 2x 2 ≤ 3 x 1 , x 2 ,x3˝ ≥ 0
dodaju se promjenjive dopunske varijable u 1 i u 2 , te se dobiva slijedeći sustav jednadžbi:
3x 1 + 2x 2 – x 3 + u 1 = 4 x 1 – 2x 2 + u 2 = 3 x 1 , x 2 ,x 3 , u 1 , u 2 ≥ 0
Također, uputno je razmišljati o funkciji cilja linearnog programa kao implicitnoj jednadžbi. Npr. funkcija F = 2x 1 + 4x 2 - 7x 3 se može pisati kao -2x 1 - 4x 2 + 7x 3 + F =
Kombiniranjem ovih metoda može se prebaciti linearni program u sustav jednadžbi
maksimizirati F = 2x 1 + 4x 2 - 7x 3 uz granične uvjete 3x 1 + 2x 2 – x 3 ≤ 4 x 1 – 2x 2 ≤ 3
Kada se linearni sustav napiše u ovom obliku u 1 i u 2 nazivaju se osnovnim varijablama, a x 1 , x 2 i x 3 nazivaju se neosnovnim (parametarskim) varijablama.
Kada se postave vrijednosti svih neosnovnih varijabli u 0, rješenje koje se dobiva naziva se osnovnim rješenjem.
U ovom primjeru osnovno rješenje glasi x 1 = 0, x 2 = 0, x 3 = 0, u 1 = 4 i u 2 = 3. Pošto su sva rješenja varijabli nenegativna, rješenje je izvedivo i naziva se osnovnim izvedivim rješenjem.
Zadani linearni sustav može imati mnoga osnovna rješenja, ali sva ne moraju biti izvediva. Npr. ako se linearni sustav napiše kao:
x 3 = –4 + 3x 1 + 2x 2 + u 1 u 2 = 3 – x 1 + 2x 2
U ovom su slučaju u 2 i x 3 neosnovne varijable, a x 1 , x 2 i u 1 (neosnovne varijable) jednake 0. Dobiva se odgovarajuće rješenje x 1 = 0, x 2 = 0, x 3 = –4, u 1 = 0 i u 2 = 3, ali u ovom slučaju osnovno rješenje nije izvedivo zbog postojanja negativne varijable (x 3 = –4)
Geometrijski se može pokazati da za sustav linearnih nejednadžbi u standardnom obliku, svako osnovno izvedivo rješenje posjeduje odgovarajući vrh unutar područja izvedivosti, i obratno.
Na primjeru 3.2 vidljivo je da inicijalna tablica standardnog maksimuma linearnog programa odgovara osnovnom izvedivom rješenju u kojem su sve varijable odlučivanja 0. Pošto je funkcija cilja jednaka 0 u ishodištu, mala je vjerojatnost da je to optimalno rješenje. Kod simpleks metode počinje se u ishodištu i nastavlja se put od jednog vrha ka drugom (unutar područja izvedivosti) sve dok se konačno ne pronađe vrh koja odgovara optimalnom rješenju.
Od jednog vrha ka drugom putuje se korištenjem osnovnih operacija na redovima i transformiranjem inicijalne tablice u niz ekvivalentnih tablica koje su u svezi s osnovnim izvedivim rješenjem. Postupak transformacije se zasniva na operaciji pod imenom pivotiranje.
Ponovno se vraćamo na primjer 3.2.
Pivotiranje koeficijenta koji se nalazi na poziciji (1,2) znači da se transformacijama unutar reda zamijeni koeficijent 2 (na poziciji (1,2)) sa koeficijentom 1, a svi ostali koeficijenti u tom stupcu se pretvore u 0.
x 1 x 2 x 3 u 1 u (^2) F
pivot se zamjenjuje brojem 1
zamjenjuju se s 0
x 1 x 2 x 3 u 1 u (^2) F
1 3 3
1 2 2
1 1
inicijalna tablica
transformirana tablica
Nova tablica odgovara linearnom sustavu:
3/2 x 1 + x 2 – 1/2 x 3 + 1/2 u 1 = 2 4x 1 – x 3 + u 1 + u 2 = 7 4x 1 + 5x 3 + 2u 1 + F = 8
koji možemo napisati i u slijedećem obliku:
x 2 = 2 – 3/2 x 1 + 1/2 x 3 – 1/2 u 1
u 2 = 7 – 4x 1 + x 3 – u 1
F = 8 – 4x 1 – 5x 3 – 2u 1
Iz ovog oblika može se zaključiti da su nove osnovne varijable x 2 i u 2. Postavljanjem vrijednosti neosnovnih varijabli x 1 , x 3 i u 1 u 0 dobije se osnovno izvedivo rješenje x 1 = 0, x 2 = 2, x 3 = 0, u 1 = 0 i u 2 = 7. Odgovarajući vrh obuhvaća samo varijable odlučivanja i ima koordinate (0,2,0).
Vrijednost funkcije cilja određuje se uvrštavanjem dobivenih rješenja.
F = 8 – 4· 0 + 5· 0+ 2·0 = 8
Treba primijetiti da se nova vrijednost funkcije cilja pojavljuje u donjem desnom kutu. To vrijedi za sve tablice.
Napomena: kolone koje odgovaraju osnovnim varijablama u svim matricama su jednake kao i one u jediničnoj matrici (osjenčani dijelovi).
x 2
(0, 0) x^1
x 1 +x 2 = 4
2 x 1 + 3 x 2 = 9
Slika 4.1 područje izvedivosti za sustav nejednadžbi
Kako bi se odredilo je li to rješenje optimalno, moramo provjeriti posljednji red inicijalne tablice. Negativni indikatori – 4 i – 5 poprimaju pozitivne vrijednosti kad se jednadžba napiše u eksplicitnom obliku. Ovo rješenje nije optimalno jer se vrijednost F može povećavati s povećavanjem kako x 1 tako i x 2. Kako je previše složeno povećavati istovremeno obje varijable, slijedeće rješenje se dobiva povećavanjem x 2 dok istovremeno x 1 ostaje na vrijednosti 0. Povećava se x 2 , a ne x 1 zbog toga što x 2 ima veći multiplikator (5 > 4) iz čega slijedi da će povećanjem x 2 proporcionalni utjecaj na funkciju cilja biti veći. Povećavanje varijable x 2 je limitirano ograničenjima prikazanim u prva dva reda simpleks tablice. Prvi red određuje da je 2x 1 + 3x 2 + u 1 =
najnegativniji indikator (pivot kolona)
pivot
najmanji omjer
inicijalna tablica
Član koji se nalazi i u pivot koloni i u pivot redu se naziva pivotom. Slijedeći korak je pivotiranje za dobivanje nove tablice
inicijalna tablica
x 1 x (^2) u 1 u (^2) F
pivot zamjena s 1
zamjena s 0
1 3 3
1 2 2
1 1
5 R R R
R R R
R R 3
1
− + →
→
−
−
0 1 15 3
5 0 3
2
1 0 1 3
1 0 3
1
0 0 3 3
1 1 3
2
x 1 x (^2) u 1 u 2 F
druga tablica
Osnovne varijable su sad x 2 i u 2 , a odgovarajuće osnovno izvedbeno rješenje je x 1 = 0, x 2 = 3, u 1 = 0, u 2 = 1. Ova rješenja odgovaraju vrhu (0,3) u kojem je vrijednost funkcije cilja F = 15 Prisutnost negativnog indikatora -2/3 ukazuje na to da rješenje još uvijek nije optimalno, zato jer se može povećavati vrijednost F povećavajući x 1 (trenutna vrijednosti je 0). U prvom i drugom redu se dijele konstante s desne strane sa pozitivnim koeficijentima uz x 1. x 1 ≤ 9/2 i x 1 ≤ 3 Može se zaključiti da je 3 najveći broj koji x 1 može poprimiti uz zadane uvjete. Ponovno se transformira tablica s obzirom na pivota 1/3 koji je na poziciji (2,1) u drugoj tablici.