JAVA podrška za simpleks metodu



Σχετικά έγγραφα
1 Promjena baze vektora

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

Linearna algebra 2 prvi kolokvij,

3.1 Granična vrednost funkcije u tački

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

Determinante. a11 a. a 21 a 22. Definicija 1. (Determinanta prvog reda) Determinanta matrice A = [a] je broj a.

7 Algebarske jednadžbe

ELEKTROTEHNIČKI ODJEL

18. listopada listopada / 13

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Neka je a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 algebarska jednadžba trećeg stupnja. Rješavanje ove jednadžbe sastoji se od nekoliko koraka.

Elementi spektralne teorije matrica

Operacije s matricama

TRIGONOMETRIJSKE FUNKCIJE I I.1.

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Riješeni zadaci: Limes funkcije. Neprekidnost

Matematička analiza 1 dodatni zadaci

Linearna algebra 2 prvi kolokvij,

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

DUALNOST. Primjer. 4x 1 + x 2 + 3x 3. max x 1 + 4x 2 1 3x 1 x 2 + x 3 3 x 1 0, x 2 0, x 3 0 (P ) 1/9. Back FullScr

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

Funkcije dviju varjabli (zadaci za vježbu)

1.4 Tangenta i normala

radni nerecenzirani materijal za predavanja

16 Lokalni ekstremi. Definicija 16.1 Neka je A R n otvoren, f : A R i c A. Ako postoji okolina U(c) od c na kojoj je f(c) minimum

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

VJEROJATNOST I STATISTIKA Popravni kolokvij - 1. rujna 2016.

Teorijske osnove informatike 1

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

Numerička matematika 2. kolokvij (1. srpnja 2009.)

IZVODI ZADACI (I deo)

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

SISTEMI NELINEARNIH JEDNAČINA

KONVEKSNI SKUPOVI. Definicije: potprostor, afin skup, konveksan skup, konveksan konus. 1/5. Back FullScr

Matrice linearnih operatora i množenje matrica. Franka Miriam Brückler

Dijagonalizacija operatora

Matematičke metode u marketingumultidimenzionalno skaliranje. Lavoslav ČaklovićPMF-MO

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

LINEARNA ALGEBRA 1, ZIMSKI SEMESTAR 2007/2008 PREDAVANJA: NENAD BAKIĆ, VJEŽBE: LUKA GRUBIŠIĆ I MAJA STARČEVIĆ

9. GRANIČNA VRIJEDNOST I NEPREKIDNOST FUNKCIJE GRANIČNA VRIJEDNOST ILI LIMES FUNKCIJE

- pravac n je zadan s točkom T(2,0) i koeficijentom smjera k=2. (30 bodova)

5. Karakteristične funkcije

6 Polinomi Funkcija p : R R zadana formulom

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

( x) ( ) ( ) ( x) ( ) ( x) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

Više dokaza jedne poznate trigonometrijske nejednakosti u trokutu

RIJEŠENI ZADACI I TEORIJA IZ

Poglavlje 1 GRAM-SCHMIDTOV POSTUPAK ORTOGONALIZACIJE. 1.1 Ortonormirani skupovi

Prikaz sustava u prostoru stanja

Funkcija gustoće neprekidne slučajne varijable ima dva bitna svojstva: 1. Nenegativnost: f(x) 0, x R, 2. Normiranost: f(x)dx = 1.

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

41. Jednačine koje se svode na kvadratne

2. Ako je funkcija f(x) parna onda se Fourierov red funkcije f(x) reducira na Fourierov kosinusni red. f(x) cos

4. poglavlje (korigirano) LIMESI FUNKCIJA

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

Zadaci iz Osnova matematike

Numerička analiza 26. predavanje

Riješeni zadaci: Nizovi realnih brojeva

Teorem 1.8 Svaki prirodan broj n > 1 moºe se prikazati kao umnoºak prostih brojeva (s jednim ili vi²e faktora).

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

MATEMATIKA 1 8. domaća zadaća: RADIJVEKTORI. ALGEBARSKE OPERACIJE S RADIJVEKTORIMA. LINEARNA (NE)ZAVISNOST SKUPA RADIJVEKTORA.

ELEMENTARNA MATEMATIKA 1

Četrnaesto predavanje iz Teorije skupova

Osnovne teoreme diferencijalnog računa

Linearna algebra I, zimski semestar 2007/2008

MJERA I INTEGRAL 2. kolokvij 30. lipnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!)

Linearno programiranje Ivana Kuzmanović, Kristian Sabo Radni materijal za predavanja

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

MATEMATIKA Pokažite da za konjugiranje (a + bi = a bi) vrijedi. a) z=z b) z 1 z 2 = z 1 z 2 c) z 1 ± z 2 = z 1 ± z 2 d) z z= z 2

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

Uvod u teoriju brojeva

Ĉetverokut - DOMAĆA ZADAĆA. Nakon odgledanih videa trebali biste biti u stanju samostalno riješiti sljedeće zadatke.

Linearna algebra Materijali za nastavu iz Matematike 1

APROKSIMACIJA FUNKCIJA

( ) ( ) Zadatak 001 (Ines, hotelijerska škola) Ako je tg x = 4, izračunaj

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

Program za tablično računanje Microsoft Excel

3 Populacija i uzorak

1 Afina geometrija. 1.1 Afini prostor. Definicija 1.1. Pod afinim prostorom nad poljem K podrazumevamo. A - skup taqaka

2.2 Srednje vrijednosti. aritmetička sredina, medijan, mod. Podaci (realizacije varijable X): x 1,x 2,...,x n (1)

( , 2. kolokvij)

ZBIRKA POTPUNO RIJEŠENIH ZADATAKA

POVRŠINA TANGENCIJALNO-TETIVNOG ČETVEROKUTA

Ispitivanje toka i skiciranje grafika funkcija

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

VJEŽBE 3 BIPOLARNI TRANZISTORI. Slika 1. Postoje npn i pnp bipolarni tranziostori i njihovi simboli su dati na slici 2 i to npn lijevo i pnp desno.

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

numeričkih deskriptivnih mera.

k a k = a. Kao i u slučaju dimenzije n = 1 samo je jedan mogući limes niza u R n :

1 Aksiomatska definicija skupa realnih brojeva

Transcript:

Sveučilište u Zagrebu PMF - Matematički odjel Juraj Ivančić JAVA podrška za simpleks metodu Diplomski rad Zagreb, siječanj 2005.

Sveučilište u Zagrebu PMF - Matematički odjel Juraj Ivančić JAVA podrška za simpleks metodu Diplomski rad Voditelj rada: prof. dr. sc. Lavoslav Čaklović Zagreb, siječanj 2005.

Predgovor Simpleks metoda je algoritam koji u konačno koraka daje rješenje problema linearnog programiranja, odnosno pokazuje da dani problem nema rješenja. Simpleks applet napisan je prema ideji profesora Čaklovića kao alat koji bi studentima olakšao razumjevanje simpleks metode. U ovom radu dan je uvod u problematiku, opis simpleks algoritma, te korištenje appleta za rješavanje problema linearnog programiranja. Ovdje su ubačeni dijelovi skripte Geometrija linearnog programiranja prof. Čaklovića i to u najmanjoj mjeri potrebnoj da bi se ovaj dokument mogao čitati samostalno. Većina ovdje iznesenih tvrdnji opisane su i prikazane na intuitivno prihvatljiv način, gdje god je to bilo moguće dan je dokaz tvrdnji na prste bez prevelikog matematičkog formalizma. Cilj takvog pristupa je minimizirati matematičko predznanje potrebno za razumijevanje postupka simpleks metode. Linearno programiranje je grana matematike koja je široko primjenjiva, i ovaj dokument, zajedno sa appletom, pokušava objasniti postupak rješavanja linearnih problema nematematičarima. Applet je pisan u Java programskom jeziku, da bi se mogao pokrenuti lokalno, kao aplikacija, ali i iz Internet pretraživača. Da biste mogli pokrenuti applet, u bilo kojoj varijanti, potrebno je imati instaliranu podršsku (Java VM), koju možete besplatno nabaviti na http://java.sun.com. Applet dobro radi pod MS Internet Explorerom i u Mozilla browseru. Ukoliko vam ne funkcionira otvaranje u pretraživaču, uvijek vam ostaje mogućnost pokretanja s komandne linije. Link za applet možete potražiti na http://www.math.hr/nastava/uopt/. Želim na kraju izraziti duboku zahvalnost mentoru prof. Čakloviću na samoj ideji za ovaj projekt i velikom broju sugestija i primjedbi koji su unaprijedili applet i ovaj tekst. I

Sadržaj 1 Applet 1 1.1 Zadavanje simpleks tabele........................... 1 1.2 Opisi ostalih komandi.............................. 1 2 Uvod u problematiku i osnovni pojmovi 3 2.1 Linearno programiranje............................. 3 2.2 Rječnik i simpleks tabela............................ 3 2.3 Gauss-Jordanova transformacija........................ 5 3 Primarna simpleks metoda 7 3.1 Traženje dopustive točke............................ 7 3.2 Optimizacija................................... 9 3.3 Degeneracija................................... 10 3.4 Algoritam optimizacije............................. 11 3.5 Jednakosti.................................... 13 3.6 Slobodne varijable............................... 15 4 Dualna simpleks metoda, teorem dualnosti 18 4.1 Dualna simpleks metoda............................ 18 4.2 Teorem dualnosti................................ 19 4.3 Uvjet optimalnosti, stroga komplementarnost................. 21 5 Analiza osjetljivosti 24 5.1 Bazična particija................................ 24 5.2 Klasična analiza osjetljivosti.......................... 24 6 Primjena u teoriji igara - matrična igra 28 II

Uvod Simpleks applet je grafički prikaz simpleks tabele. U njega su ugradene operacije koje se mogu vršiti nad simpleks tabelom, tj. Gauss-Jordanove transformacije i još nekoliko korisnih operacija. Mnogo pažnje je posvećeno preglednosti appleta. Svrha appleta nije da on samostalno rješi probleme linearne optimizacije. Za to postoji čitav spektar višestruko efikasnijih programa. Svrha appleta je pedagoška, tj. da korisnik nauči samostalno rješavati probleme linearne optimizacije, a da pri tome ne treba provoditi gomilu trivijalnih aritmetičkih operacija. Primjerice, za linearni problem od 5 varijabli i 5 uvjeta, za svaku Gauss-Jordanovu transformaciju potrebno je oko 90 aritmetičkih operacija (a najčešće se, da bi se došlo do rješenja, mora izvršiti nekoliko transformacija), pa postoji velika mogućnost pogreške kod računa. Applet provodi te operacije u djeliću sekunde, a podržava i operacije za ispravak (Undo i Redo). Simpleks tabele u appletu se mogu zadavati samostalno, a mogu se i automatski popuniti sa slučajnim cijelim brojevima u zadanom rasponu, pa je applet ujedno i zbirka zadataka iz linearne optimizacije. Naravno, veliki dio automatski generiranih simpleks tabela neće imati rješenje (zbog eventualnih kontradiktornih uvjeta ili zbog neograničenosti funkcije cilja). Sve takve situacije su jednostavno objašnjene u sljedećim odjeljcima. Na kraju ovog rada dana je i jedna primjena linearnog programiranja u teoriji igara. Ovdje je to izneseno prema knjizi Linear Programming, R. Vanderbei Kratki pregled sadržaja Applet - Ovdje je ukratko opisano grafičko sučelje appleta, te način zadavanja simpleks tabele. Ostale mogućnosti appleta su na primjerima pokazane kroz iduća poglavlja Uvod u problematiku i osnovni pojmovi - U ovom poglavlju nalazi se kratki uvod u problem linearnog programiranja i osnovne definicije potrebne za rješavanje tih problema pomoću simpleks metode. III

Primarna simpleks metoda - Ovdje je u kratkim crtama iznesen simpleks algoritam za rješavanje primarnog problema linearnog programiranja pomoću appleta. Algoritam je popraćen primjerima. Takoder ovdje su prikazani postupci za svodenje općenitih problema na kanonsku formu Dualna simpleks metoda, teorem dualnosti - Ovo poglavlje pokazuje kako simpleks metoda, uz rješenje primarnog problema daje rješenje dualnog problema. Dualna simpleks metoda daje intuitivan dokaz teorema dualnosti. Analiza osjetljivosti - Analiza osjetljivosti spada u postoptimalnu analizu probema linearnog programiranja. Nakon što je pronadeno optimalno rješenje, gledamo kako se ono mijenja ako mijenjamo ulazne parametre. Ovdje je opisan tzv. naivni pristup analizi osjetljivosti koji je razraden u pedesetim godinama prošlog stoljeća Primjena u teoriji igara - matrična igra - Ovo poglavlje prikazuje primjenu linearnog programiranja u teoriji igara. Ovdje pokazujemo kako se pomoću simpleks appleta rješava problem izbora optimalnih strategija u matričnoj igri. IV

1 Applet 1.1 Zadavanje simpleks tabele Novu simpleks tabelu u appletu zadajete pomoću opcije novu tabelu:. Pojavit će se dijalog za Ovdje zadajete dimenzije tablice, te da li želite koristiti primarnu ili dualnu simpleks tabelu. Opcija Random Numbers služi za automatsko popunjavanje simpleks tabele slučajnim cijelim brojevima. Raspon dopuštenih brojeva zadajete u poljima min. i max. Ukoliko isključite opciju Random numbers pojavljuje se novi dijalog Ovdje zadajete samu simpleks tabelu. Prvi redak i prvi stupac služe za imena varijabli i mogu sadržavati proizvoljan niz znakova. Ostala polja prihvaćaju samo numeričke vrijednosti. Vrijednosti je moguće unijeti kao razlomke (za razlomačku crtu koristite / ) ili kao decimalne brojeve (npr. -2, -2/3, 5.4 ). Prazno polje ili neispravan unos podrazumijeva vrijednost 0. 1.2 Opisi ostalih komandi - * Otvara dijalog za učitavanje prethodno snimljene simpleks tabele (Open) - * Snima trenutnu simpleks tabelu pod postojećim imenom (Save) 1

- * Snima trenutnu simpleks tabelu pod novim imenom (Save As) Gornje tri opcije, koje uključuju rad sa datotekama, ne mogu biti realizirane u online verziji appleta. Da biste koristili njih potrebno je pokrenuti applet lokalno na vašem računalu. - Ova opcija služi za prebacivanje trenutne primarne simpleks tabele u ekvivalentnu dualnu simpleks tabelu, i obratno. To znači zapravo, da mijenja predznak svim brojevima u simpleks tabeli - Pomoću ove opcije možete promijeniti neke ili sve brojeve u simpleks tabeli. - Gauss-Jordanova transformacija nad odabranim elementom. Ovu transformaciju treba koristiti kada je problem postavljen u primarnu simpleks tabelu. - dualna Gauss-Jordanova transformacija nad odabranim elementom. Ovu transformaciju treba koristiti kada je problem postavljen u dualnu simpleks tabelu. - Zaključavanje retka u simpleks tabeli. Ovom opcijom onemogućuju se transformacije nad danim retkom. - Zaključavanje stupca u simpleks tabeli. Ovom opcijom onemogućuju se transformacije nad danim stupcem. - Vraćanje korak unazad (Undo) - Vraćanje korak unaprijed (Redo) - Promjena izmedu ispisa brojeva u obliku razlomka i decimalnog ispisa. Brojevi u appletu se pamte isključivo u obliku razlomka, no ova mogućnost je dodana 1398512412461389 za slučaj da razlomci postanu prekomplicirani (npr. ). Tada se 193860187356108975 prikazuje vrijednost razlomka zaokružena na 5 decimala. - Ova opcija predlaže sljedeći pivotni element koji vodi rješenju (problema maksimizacije), u skladu sa Blandtovim algoritmom navedenim kasnije u ovoj dokumentaciji. 2

2 Uvod u problematiku i osnovni pojmovi 2.1 Linearno programiranje Linearno programiranje ili linearna optimizacija je specijalan slučaj problema uvjetne minimizacije. Problem uvjetne minimizacije je problem tipa min{f(x) x D} gdje je f : R n R, a D podskup od R n. Gornji zapis je simbolički zapis problema pronalaženja minimuma funkcije f na skupu D. Točka z je rješenje gornjeg problema ako je z D i ako vrijedi f(z) f(x), x D. D nazivamo skupom dopustivih točaka ili područjem minimizacije, a funkciju f funkcijom cilja. Kod linearnog programiranja funkcija f je linearan funkcional, tj. f(x) = z τ x = n z i x i i=1 gdje je z = (z 1, z 2,..., z n ) R n, a područje minimizacije D je skup svih točaka x = (x 1, x 2,..., x n ) takvih da je a 11 x 1 +a 12 x 2 +... +a 1n x n b 1 a 21 x 1 +a 22 x 2 +... +a 2n x n b 2. a m1 x 1 +a m2 x 2 +... +a mn x n b m x 1, x 2,..., x n 0 što kompaktnije zapisujemo kao D = {x R n x 0, Ax b} gdje je A = [a ij ] realna matrica sa m redaka i n stupaca, a b = (b 1, b 2,..., b m ) R m 2.2 Rječnik i simpleks tabela Traži se maksimum funkcije c = 4x 1 + x 2 uz uvjete 2x 1 x 2 6 x 1 + x 2 6 x 1 + x 2 2 x 1, x 2 0 3

Prirodno je nejednakosti zamijeniti jednakostima jer se njima može lakše manipulirati. Prvom uvjetu 2x 1 x 2 6 nedostaje nenegativan broj da bi se postigla jednakost. Zato uvodimo novu varijablu w 1 tako da vrijedi 2x 1 x 2 + w 1 = 6 odnosno w 1 = 2x 1 + x 2 + 6 Ako to učinimo za svaki uvjet, problem dobiva ekvivalentnu formulaciju max 4x 1 + x 2 w 1 = 2x 1 + x 2 + 6 w 2 = x 1 x 2 + 6 w 3 = x 1 x 2 + 2 koju možemo kompaktnije zapisati kao x 1, x 2, w 1, w 2, w 3 0 w 1 = 2x 1 + x 2 + 6 w 2 = x 1 x 2 + 6 w 3 = x 1 x 2 + 2 c = 4x 1 + x 2 Gornji zapis problema nazivamo rječnikom jer su u tom zapisu jedne varijable izražene pomoću drugih. Vrijednost x-varijable je x = (0, 0) i c poprima vrijednost c = 0, a varijabla w poprima vrijednost w = (6, 6, 2). Uvjeti na varijable su zadovoljeni pa kažemo da je točka x = (0, 0), ili točka (x, w) = (0, 0, 6, 6, 2), dopustiva točka skupa odredenog uvjetima zadaće. Varijable w 1, w 2, w 3 s lijeve strane znaka jednakosti nazivamo nebazičnim, a varijable x 1, x 2 s desne strane znaka jednakosti nazivamo bazičnim varijablama. Problem iz primjera možemo zapisati u još kompaktnijoj formi koju nazivamo simpleks tabela. Bazične i nebazične varijable upisujemo u gornji redak tabele, odnosno lijevi stupac tabele. Vrijednosti nebazičnih varijabli upisujemo u desnom stupcu tabele, a u posljednjem retku na dnu tabele upisujemo koeficijente vektora z funkcije cilja izraženog preko bazičnih varijabli. U samom donjem desnom kutu tabele upisujemo vrijednost od c u dopustivoj točki kojoj je tabela pridružena. Koordinate te dopustive točke vidljive su u desnom stupcu dok bazične varijable uvijek imaju vrijednost 0 i te vrijednosti nisu 4

eksplicitno zapisane u tabeli. v 0 x 1 x 2 w 1 2 1 6 w 2 1 1 6 w 3 1 1 2 c 4 1 0 2.3 Gauss-Jordanova transformacija Osnovni korak u prelazu s jednog rječnika na drugi ili jedne simpleks tabele u drugu je Gauss-Jordanova transformacija. Ona se sastoji u izračunavanju jedne varijable iz odabrane jednadžbe i uvrštavanjem tog izraza u sve ostale jednadžbe. Zapišimo problem u najopćenitijoj formi max c = n j=1 z jx j + c 0 n j=1 a ljx j β l, l = 1, 2,..., m x i 0, Tom problemu pridružena simpleks tabela ima oblik i = 1, 2,..., n x 1 x n w 1 β 1. A. w m β m A pridruženi rječnik je w i = z z 1 z n c 0 n γ ij x j + β i, i = 1,..., m j=1 c = n z j x j + c 0 j=1 gdje je γ lj = a lj. Pretpostavimo da smo odabrali i-tu varijablu x i da izade iz baze i k-tu varijablu w k da ude u bazu. To znači da iz k-te jednadžbe w k = n γ kj x j + β k j=1 izražavamo x i pomoću w k i preostalih x-varijabli i taj izraz uvrstimo u sve preostale jednadžbe. Osnovna pretpostavka za tu mogućnost je γ ki 0. Nakon sredivanja dobije 5

se rječnik w l = j i γ ki γ lj γ kj γ li x j + γ li w k + γ kiβ l γ li β k, l k γ ki γ ki γ ki x i = j i γ kj x j + 1 w k γ ki γ ki β k γ ki, l = k c = j i γ ki z j γ kj z i x j + z i w k + γ ki γ ki γ kic 0 z i β k γ ki Kažemo da smo napravili Gauss-Jordanovu transformaciju sa ključnim elementom γ ki 6

3 Primarna simpleks metoda Ovdje je opisan postupak za rješavanje problema max{z τ x Ax b, x 0} Ovaj zapis problema linearne optimizacije je već spomenuti kanonski zapis i kasnije ćemo pokazati da se svaki problem linearne optimizacije može svesti na kanonski. 3.1 Traženje dopustive točke Da bi simpleks metoda bila primjenjiva za optimizaciju mora biti poznata bar jedna dopustiva točka. Ukoliko nisu svi b i 0 tada točka x = 0 nije dopustiva točka problema. Kako pronaći dopustivu točku pokazati ćemo na primjeru Zadano je područje optimizacije x 1 + x 2 1 x 1 2x 2 2 x 2 1 x 1, x 2 0 Rječnik pridružen tom problemu je w 1 = x 1 x 2 1 w 2 = x 1 + 2x 2 2 w 3 = x 2 + 1 x 1, x 2, w 1, w 2, w 3 0 Kako je u simpleks tabeli x = (0, 0) uvijek početna točka, potrebno je na odredeni način povećati varijable x 1 i x 2 tako da uvjeti w 1, w 2 0 budu zadovoljeni. Iz prve jednakosti u rječniku vidimo da ćemo povećavanjem varijable x 1 postići uvjet w 1 0, pa zato izbacujemo w 1 iz baze i ubacujemo x 1. Time smo zapravo povećali vrijednost x 1 za onoliko koliko je potrebno da w 1 bude 0. Novi rječnik je x 1 = w 1 + x 2 + 1 w 2 = w 1 + 3x 2 1 w 3 = x 2 + 1 x 1, x 2, w 1, w 2, w 3 0 Sada je potrebno zadovoljiti drugi uvjet. Sada imamo izbor jer uz obje varijable w 1 i x 2 pozitivan predznak. Kada imamo takav izbor, za izlazak iz baze treba odabrati onu varijablu uz koju stoji veći koeficijent, u ovom slučaju x 2. Ukoliko se dogodi da ne postoji 7

bazična varijabla sa pozitivnim predznakom, tada su dani uvjeti kontradiktorni i područje optimizacije je prazan skup. Sada je rječnik x 1 = 2 3 w 1 + 1 3 w 2 + 4 3 x 2 = 1 3 w 1 + 1 3 w 2 + 1 3 w 3 = 1 3 w 1 1 3 w 2 + 2 3 x 1, x 2, w 1, w 2, w 3 0 Ovaj rezultat u slobodnoj interpretaciji znači da bi varijable w 1 i w 2 bile jednake nuli x 1 mora biti jednak 4, a x 3 2 mora biti 1. Očito je točka (x 3 1, x 2 ) = ( 4, 1 ) dopustiva točka 3 3 polaznog problema. Algoritam. (Pronalaženje dopustive točke) Najprije formiramo simpleks tabelu b 1 A. b m Pretpostavimo da nakon svake transformacije dobijemo sljedeću simpleks tabelu δ 1 γ ki. δ m 1. (Test dopustivosti) Ako je δ i 0, i = 1, 2,..., n tada je trenutni vrh dopustiv. 2. (Izbor ključnog elementa) U suprotnom postoji bar jedan indeks k takav da je δ k < 0. Sada postoje dvije mogućnosti Ne postoji pozitivan γ ki, i = 1, 2,..., n. Tada je skup dopustivih točaka prazan. Bar jedan koeficijent γ ki je pozitivan. Ukoliko ih ima više biramo najveći. Vršimo GJT nad elementom γ ki i vraćamo se na prvi korak 8

3.2 Optimizacija Korak optimizacije se radi kada je poznata dopustiva točka zadanog problema. vidljivo u simpleks tabeli kada je posljednji stupac nenegativan. Primjer. Traži se maksimum funkcije c = 4x 1 + x 2 uz uvjete To je Rječnik pridružen tom problemu je 2x 1 x 2 6 x 1 + x 2 6 x 1 + x 2 2 x 1, x 2 0 w 1 = 2x 1 + x 2 + 6 w 2 = x 1 x 2 + 6 w 3 = + x 1 x 2 + 2 x 1, x 2 0 Iz gornjeg rječnika se vidi da vrijednost c = 0 u točki x = (0, 0) možemo povećati ako povećavamo x 1 i x 2. Medutim, x 1 ne može rasti neograničeno jer će w 1, a isto tako i w 2, za velike vrijednosti od x 1 postati negativni. Stoga je gornja ograda za x 1 odredena minimumom { } 6 x 1 min 2, 6 = 3 imajući u vidu da je x 2 =0. Za x 1 = 6 2 je w 1 = 0, a za x 1 = 6 je w 2 = 0. Istu priču možemo ponoviti i za x 2. Ako želimo povećati x 2 onda to možemo učiniti do granice x 2 min {6, 2} = 2 imajući u vidu da je x 1 =0. Za tu graničnu vrijednost je w 3 = 0, a za veće vrijednosti od x 2 je w 3 < 0 što nije dopustivo uvjetima. Odlučimo li se za povećanje c promjenom varijable x 2 tada za njenu novu vrijednost uzimamo x 2 = 2. Iz treće jednadžbe izrazimo x 2 = x 1 w 3 + 2. U preostalim jednadžbama i u izrazu za c eliminiramo x 2 supstituiranjem gornjeg izraza i dobijemo novi rječnik koji je pridružen dopustivoj točki w 1 = x 1 w 3 + 8 w 2 = 2x 1 + w 3 + 4 x 2 = x 1 w 3 + 2 c = 5x 1 w 3 + 2 (x, w) = (0, 2, 8, 4, 0). 9

Vrijednost od c u novoj dopustivoj točki iznosi 2. Bazične varijable novog rječnika su x 1, w 3, a nebazične w 1, w 2, x 2. Novi rječnik tretiramo na isti način kao i stari. Varijabla koju izbacujemo iz baze je x 1 jer je koeficijent u izrazu za c uz nju pozitivan. Gornja granica za x 1 je { x 1 min 8, 4 } = 2 2 što znači da varijablu w 2 ubacujemo u bazu. Novi rječnik je pridružen dopustivoj točki w 1 = 1 2 w 2 3 2 w 3 + 6 x 1 = 1 2 w 2 + 1 2 w 3 + 2 x 2 = 1 2 w 2 1 2 w 3 + 4 c = 5 2 w 1 + 3 2 w 3 + 12 (x, w) = (2, 4, 6, 0, 0). Vrijednost od c u toj točki je 12 i nije maksimalna moguća jer se može povećati ako povećamo w 3. Gornja ograda za w 3 je w 3 min {4, 8} = 4. Nova bazična varijabla je w 1, a w 3 izlazi iz baze. Novi rječnik je pridružen dopustivoj točki w 3 = 1 3 w 2 2 3 w 1 + 4 x 1 = 1 3 w 2 1 3 w 1 + 4 x 2 = 2 3 w 2 + 1 3 w 1 + 2 c = 2w 2 w 1 + 18 (x, w) = (4, 2, 0, 0, 4). Vrijednost od c u toj točki iznosi 18 i gornjim se postupkom više ne može povećati. Da je 18 i optimalno rješenje lagano se vidi iz činjenice da su svi rječnici ekvivalentni, t.j. imaju iste skupove dopustivih točaka. Kako na sve varijable imamo uvjet nenegativnosti, očito je vrijednost ciljne funkcije 18 za svaku dopustivu točku. Odavde se vidi da se simpleks metoda sastoji od dovoljno dobrog algoritma za isbacivanje/ubacivanje varijabli u bazu, tj. za pivotiranje. 3.3 Degeneracija Za rječnik kažemo da je degeneriran ako nebazična varijabla poprimi vrijednost 0. Degeneracija može izazvati teškoće simpleks metodi. Ubacivanje degenerirane nebazične varijable u bazu ne povećava vrijednost ciljne funkcije. Teoretski se može dogoditi i da u nekoliko iteracija simpleks metoda ne poveća vrijednost funkcije cilja. Tada postoji 10

mogućnost da se nakon nekoliko takvih iteracija ponovi riječnik. Takvu pojavu nazivamo cikličko ponavljanje, i ako do njega dode, simpleks metoda nikada ne završava. Takvi slučajevi su dosta rijetki, no treba biti svjestan da takva mogućnost postoji. Lako se vidi da, ukoliko nema cikličkog ponavljanja, simpleks metoda završava u konačno mnogo koraka. 3.4 Algoritam optimizacije Jedan od algoritama koji garantira konačnost simpleks metode je tzv. Blandtovo pravilo: Od svih varijabli koje se natječu za izlazak iz baze odabrat ćemo onu sa najmanjim indeksom. Algoritam. (Primarna simpleks metoda): Najprije formiramo tabelu x 1 x n w 1 b 1. A. w m b m z z 1 z n 0 Pretpostavimo da nakon svakog koraka algoritma dobivamo sljedeću simpleks tabelu x 1 x n w 1 b 1. γ ki. w m b m z z 1 z n c 1. (Test optimalnosti) Ako je z i 0, i = 1, 2,..., n tada je tabela optimalna. Rješenja pročitamo u posljednjem stupcu. 2. (Izbor ključnog elementa) U suprotnom postoji bar jedan indeks i takav da je z i > 0. Za svaki takav indeks vrijednost funkcije cilja z τ x = n z j x j raste povećavanjem komponente x i. Dvije su mogućnosti: i=1 Svi koeficijenti γ ki, k = 1, 2,..., m i-tog stupca su nenegativni. Tada je skup dopustivih točaka neograničen jer su nejednakosti 0 b k + γ ki x i, k = 1, 2,..., m zadovoljene za x i 0 Ako je bar jedan matrični element γ ki pozitivan tada je funkcija cilja neograničena odozgo. 11

Bar jedan koeficijent γ ki je negativan. Ukoliko ih ima više biramo najmanji k u kojem se postiže minimum { } bk min γ ki <0 γ ki Vršimo GJT nad elementom γ ki i vraćamo se na prvi korak Ovakvo pivotiranje povećava funkciju cilja i pritom čuva dopustivost. Ukoliko se u nekom od koraka pojave negativne vrijednosti na desnoj strani to znači da ste odabrali krivi pivotni element. Primjer. Rješavanje gornjeg problema pomoću appleta: Najprije formiramo sljedeću simpleks tabelu Prema algoritmu, izbacujemo X1 iz baze i ubacujemo Y1 Izbacujemo X2 iz baze i ubacujemo Y2 12

U ovoj tabeli svi elementi posljednjeg retka su negativni pa je rješenje optimalno. tablice očitamo da je rješenje x = (4, 2). Vrijednost funkcije cilja u toj točki iznosi 18 Iz 3.5 Jednakosti Često problem linearnog programiranja sadrži kombinaciju jednakosti i nejednakosti. Tada možemo iz jednakosti izraziti neku varijablu i uvrstiti u ostale nejednakosti, te time problem svesti na prethodne. max 2x 1 x 2 + 4x 3 x 1 + 2x 2 + x 3 5 x 1 2x 2 3 3 2 x 2 + 3x 3 = 5 x 1, x 2, x 3 0 Pripadni rječnik je w 1 = x 1 2x 2 x 3 + 5 w 2 = x 1 + 2x 2 + 3x 3 + 2 w 3 = x 2 3x 3 + 5 c = 2x 1 x 2 + 4x 3 s time da umjesto uvjeta w 3 0 imamo uvjet w 3 = 0. Ako želimo vrijednost neke varijable postaviti na nulu znamo otprije da je treba ubaciti u bazu. Ubacivanjem w 3 u bazu (na bilo koje mjesto) i zaključavanjem odgovarajućeg stupca smo osigurali da w 3 više nikad ne može izaći iz baze i time smo ugradili jednakost u simpleks tabelu. Istu takvu simpleks tabelu bismo dobili da smo iz gornje jednadžbe izrazili npr. x 2 preko x 3, te ga uvrstili u preostale nejednadžbe Za gornji problem simpleks tabela izgleda 13

Najprije moramo ubaciti w3 u bazu Taj stupac više nije potreban pa ga smijemo zaključati Sada tražimo dopustivu točku 14

Točka (0, 2, 1) je dopustiva, pa idemo na optimizaciju Nakon nekoliko koraka dolazimo do optimalnog rješenja x = (12, 0, 5 ). Maksimum 3 iznosi 62 3 3.6 Slobodne varijable Do sada smo u svim primjerima imali uvjet nenegativnosti na varijable. Varijable koje ne moraju nužno biti nenegativne nazivamo slobodnim varijablama. Ako problem sadrži i slobodne varijable, tada ih treba izbaciti iz baze prije traženja prvog plana ili optimizacije. Retke koji odgovaraju slobodnim varijablama treba ignorirati kod odabira pivotnog elementa, tako da se osiguramo da se neće vratiti u bazu. Za tu svrhu koristimo opciju zaključavanja retka. Tada ćemo, kod pronadenog optimalnog rješenja, vidjeti koju vrijednost dotična slobodna varijabla poprima. Primjer. max 2x 1 x 2 + 4x 3 x 1 + 2x 2 + x 3 5 x 1 2x 2 3 3 2 x 2 + 3x 3 = 5 x 1, x 3 0 Ovdje je izbačen uvjet nenegativnosti na x 2. Budući da se u ciljnoj funkciji x 2 pojavljuje sa negativnim predznakom očito će micanje uvjeta nenegativnosti od x 2 rezultirati povećanjem funkcije cilja. Početna simpleks tabela je 15

Moramo izbaciti iz baze x 2 jer je ona slobodna varijabla i ubaciti u bazu w 3 zbog jednakosti. Sada zamrznemo pripadni redak i stupac, pa je problem sveden na kanonsku formu Tražimo prvi plan Faza optimizacije 16

Odavde pročitamo rješenje (0, 7, 4) koje je optimalno. Vidimo da je izbacivanje uvjeta nenegativnosti na x 2 povećalo maksimum funkcije cilja na 23. U prošlom odjeljku smo vidjeli da je sa uvjetom nenegativnosti optimalno rješenje bilo 62 3. 17

4 Dualna simpleks metoda, teorem dualnosti 4.1 Dualna simpleks metoda Do sada smo se bavili rješavanjem tzv. primarnog problema max{z τ x x 0, Ax b} Promatrajmo njemu dualni problem min{b τ y y 0, y τ A z τ } zadan pomoću istih komponenti kao i primarni problem. svesti na kanonski oblik, jer je Ovaj novi problem možemo min{b τ y y 0, y τ A z τ } = max{ b τ y y 0, A τ y z} Pripadna simpleks tabela za ovaj problem je y 1 y n u 1 z 1. A τ. u m z m z b 1 b n 0 Ona je vrlo slična simpleks tabeli za primarni problem, preciznije ona je negativni transponat primarne simpleks tabele. Dualna simpleks tabela je transponirana gornja tabela, dakle ona je oblika u 1 u n y 1 b 1. A y m. b m z z 1 z n 0 Dualni problem sada rješavamo na isti način kao i do sada, s time da su zamijenjene uloge redaka i stupaca. Bazične varijable se nalaze u retcima, a nebazične u stupcima. Transformacije koje vršimo nad ovom simpleks tabelom su dualne Gauss-Jordanove transformacije, i one tretiraju redak kao što je do sada primarna Gauss-Jordanova tretirala stupac i obratno. Algoritam. (Dualna simpleks metoda) 18

Pretpostavimo da nakon svake transformacije dobijemo sljedeću simpleks tabelu δ 1. γ ik. δ m u 1 u n c 1. (Test optimalnosti) Ako je δ i 0, i = 1, 2,..., n tada je tabela optimalna. Rješenja pročitamo u posljednjem retku. 2. (Izbor ključnog elementa) U suprotnom postoji bar jedan indeks k takav da je δ k > 0. Za svaki takav indeks vrijednost funkcije cilja δ τ y = n δ j y j raste povećavanjem komponente y k. Dvije su mogućnosti: i=1 Svi koeficijenti γ ki, i = 1, 2,..., n k-tog stupca su nenegativni. Tada je skup dopustivih točaka neograničen jer su nejednakosti 0 u i + γ ki y k, i = 1, 2,..., n zadovoljene za y k 0 Ako je bar jedan matrični element γ ki pozitivan tada je funkcija cilja neograničena odozgo. Bar jedan koeficijent γ ki je negativan. Ukoliko ih ima više biramo onaj i u kojem se postiže minimum min { u i } γ ki <0 γ ki Vršimo dgjt nad elementom γ ki i vraćamo se na prvi korak 4.2 Teorem dualnosti Dualna simpleks tabela ustvari nije ništa drugo nego negativna primarna simpleks tabela. To važno svojstvo ostaje sačuvano i nakon transformacija nad odgovarajućim elementima. Iz toga zaključujemo sljedeće: ako smo rješavanjem problema primarnom simpleks metodom došli do optimalnog rješenja primarnog problema (to se vidi ako je zadnji stupac pozitivan, a zadnji redak negativan), tada smo došli i do optimalnog rješenja dualnog problema (jer je tada u dualnoj simpleks tabeli zadnji stupac negativan, a zadnji redak pozitivan). Drugim riječima, iz obje tablice se mogu očitati rješenja i primarnog i dualnog problema. Ovaj zaključak nam pokazuje da simpleks metoda (u bilo kojoj varijanti) istovremeno rješava i primarni i dualni problem, te da su maksimum primarne funkcije cilja i minimum dualne funkcije cilja jednaki. To je tvrdnja teorema dualnosti: 19

Teorem. Ukoliko su skupovi dopustivih točaka primarnog i dualnog problema neprazni, tada max{z τ x x 0, Ax b} = min{y τ b y 0, y τ A z τ } Označimo li sa P = {x x 0, Ax b} skup dopustivih točaka primarnog problema, a sa D = {y y 0, y τ A = z τ } skup dopustivih točaka dualnog problema, teorem dualnosti tvrdi da je max{z τ x x P} = min{b τ y y D} Vrijedi i više: Ako je P = i D =, tada je dualna funkcija cilja neomedena odozdo na skupu dopustivih točaka dualnog problema. Ako je P = i D =, tada je primarna funkcija cilja neomedena odozgo na skupu dopustivih točaka primarnog problema. Teorem dualnosti pojavljuje se u još nekoliko oblika, koji ovise o formi zadaće linearnog programiranja: max{z τ x Ax b} = min{y τ b y 0, y τ A = z τ } max{z τ x x 0, Ax = b} = min{y τ b y τ A z τ } max{z τ x Ax = b} = min{y τ b y τ A = z τ } Primjer. max 2x 1 x 2 x 3 uz uvjete 2x 1 + x 2 x 3 2 x 1 + 2x 2 1 x 1, x 3, x 3 0 min 2y 1 + y 2 uz uvjete 2y 1 + y 2 2 y 1 + 2y 2 1 y 1 1 y 1, y 2 0 Kod primarnog problema x = 0 nije dopustiva točka, no ako formiramo dualnu simpleks tabelu za dualni problem vidimo da je y = 0 dopustiva, pa smo time izbjegli traženje prvog plana. Dualna simpleks tabela je 20

Prema gornjem algoritmu za pivotni element uzimamo onaj na presjeku retka Y1 i stupca u1, te pritisnemo Ova tabela je optimalna, rješenje je y = (1, 0), minimum dualne funkcije je 2. Takoder, vidimo da je rješenje primarnog problema x = (1, 0, 0), maksimum primarne funkcije je naravno, zbog teorema dualnosti, takoder jednak 2. 4.3 Uvjet optimalnosti, stroga komplementarnost U ovoj točki dokazujemo nekoliko zanimljivih posljedica teorema dualnosti. Promatramo, kao i do sada, zadaću u formi i pripadni dual max z τ x uz uvjete Ax + w = b (1) x 0, w 0 min b τ y uz uvjete A τ y u = z (2) y 0, u 0 Označimo sa P dopustive točke primarnog problema, sa D dopustive točke dualnog problema. Posljedica teorema dualnosti je da su dopustive točke x P, y D primarnog odnosno dualnog problema optimalne ako i samo ako su ispunjeni uvjeti optimalnosti y τ w = 0 i x τ u = 0 odnosno y i w i = y i (b i a τ i x) = 0, x j u j = x j (y τ a j z j ) = 0, i = 1, 2,..., m j = 1, 2,..., n (gdje je a i i-ti redak matrice A, a a j j-ti redak matrice A τ ). Dakle uvjet optimalnosti tvrdi da u svakom od n+m uredenih parova (y i, w i ), i = 1, 2,..., m 21

(x j, u j ), j = 1, 2,..., n barem jedan član jednak nuli. Dokaz: Za dopustive x i y očigledno vrijedi odnosno z τ x y τ Ax y τ b m j=1 z jx j m j=1 ( n i=1 y ia ij )x j = = n i=1 ( m j=1 a ijx j )y i n i=1 b iy i Ako su x i y optimalna rješenja tada u zadnjem nizu nejednakosti mora vrijediti jednakost zbog teorema dualnosti. Prva nejednakost postaje jednakost ako i samo ako za svaki j vrijedi ili z j = n i=1 y ia ij (što je ekvivalentno u j = 0) ili x j = 0. Slično, druga nejednakost postaje jednakost ako i samo ako za svaki i vrijedi ili b i = m j=1 a ijx j (odnosno w i = 0) ili y i = 0. Ako je u svakom od gornjih parova točno jedan broj jednak nuli tada rješenja x, y nazivamo strogo komplementarnim parom. Teorem. (Goldman-Tucker) Ako primarna i dualna zadaća imaju rješenje, tada postoji strogo komplementarni par, to jest postoje optimalna rješenja x, y primarne odnosno dualne zadaće koja zadovoljavaju y + w(x) > 0 i x + u(y) > 0 Dokaz: Označimo sa P, D skupove optimalnih rješenja primarne odnosno dualne zadaće. Ukoliko postoji x P tako da je x i > 0 tada s i-tim indeksom nema poteškoća. Problemi se javljaju ako postoji indeks i takav da je x i = 0 x P. Neka je i takav indeks. Želimo pokazati da postoji y D t.d. je u(y) i > 0. Promatrajmo pomoćni problem max x i uz uvjete Ax b (3) z τ x ξ x 0 gdje smo sa ξ označili optimalnu vrijednost funkcije cilja primarnog problema. Skup dopustivih točaka problema (3) je neprazan jer je jednak skupu optimalnih rješenja problema (1). Optimalna vrijednost funkcije cilja je jednaka 0. Dual pomoćnog problema je min b τ y ξ t uz uvjete A τ y zt e i (4) y 0, t 0 22

(t R je varijabla koja se pojavljuje kao dual dodatnom uvjetu z τ x ξ ). Prema teoremu dualnosti postoje y 1 0 i t 0 t.d. je b τ y 1 ξ t = 0 u 1 = A τ y 1 zt e i 0 Neka je sada y 2 proizvoljno optimalno rješenje problema (2) i u 2 = A τ y 2 z. Tada je i y = y 1+y 2 1+t optimalno rješenje od (2) jer je Izračunajmo u(y) b τ y = 1 1 + t bτ (y 1 + y 2 ) = 1 1 + t (ξ + ξ t) = ξ u(y) = A τ y z = 1 1+t Aτ (y 1 + y 2 ) z = = 1 (u 1+t 1 + zt + e i + u 2 + z (1 + t)z) = 1 (u 1+t 1 + u 2 + e i ) Dakle y je traženo optimalno rješenje jer i-ta komponenta od u(y) iznosi najmanje 1 1+t. Dokazali smo dakle da za svaki i postoji primarno optimalno rješenje x i dualno optimalno rješenje y tako da je x i + u(y) i > 0. Na sličan način pokažemo da za svaki j postoje optimalna rješenja x i y tako da je y j + w(x) j > 0. Konačno, formiramo strogo konveksnu kombinaciju tih n+m rješenja. Kako je skup optimalnih rješenja konveksan, ta konveksna kombinacija je takoder optimalno rješenje. Zbog toga što je konveksna kombinacija stroga rješenja su strogo komplementarna. 23

5 Analiza osjetljivosti 5.1 Bazična particija Promatramo problem max{z τ x Ax b, x 0}. Promijenimo oznake pomoćnih varijabli (w 1, w 2,..., w m ) (x n+1, x n+2,..., x n+m ). Svaka simpleks tabela je potpuno odredena sa skupom svojih bazičnih varijabli. Kako su sada sve varijable indeksirane brojevima od 1 do m + n, simpleks tabela je odredena (do na permutaciju redaka i stupaca) sa n- članim podskupom skupa {1, 2,..., n + m}. Tih podskupova ima ( ) n+m n, i svaki problem linearnog programiranja ima točno toliko različitih simpleks tabeli. Svaki taj podskup nazivamo bazična particija za danu simpleks tabelu. 5.2 Klasična analiza osjetljivosti U praksi je često, osim danog problema linearnog programiranja, potrebno pronaći i rješenja nekoliko vrlo sličnih problema, gdje je nekoliko koeficijenata promijenjeno. Postoji nekoliko razloga zbog kojih dolazi do toga. Jedan od njih je činjenica da podaci koji definiraju problem mogu biti neprecizni (zbog nepreciznosti mjerenja), te da posljedično imamo samo aproksimacije veličina koje definiraju stvarni problem. Tada nas zanima da li malene promjene u ulaznim podacima mogu rezultirati u drastičnim promjenama rješenja. Drugi razlog može biti da se neke varijable mijenjaju s vremenom, te je potrebno svaki dan riješiti problem koji se kojem su svega nekoliko vrijednosti razlikuje od jučerašnjeg. Analiza osjetljivosti spada u postoptimalnu analizu problema. Nakon što je pronadeno optimalno rješenje, možemo se zapitati kako se ono mijenja kad mijenjamo ulazne parametre. Ulazni parametri su, očito, sama matrica A, vektor ograničenja b, te funkcija cilja z. Klasična analiza osjetljivosti je najjednostavniji slučaj postoptimalne analize, gdje ispitujemo ovisnost bazične particije o samo jednoj komponenti vektora ograničenja b (vektora funkcije cilja z). Centralno pitanje je za koje vrijednosti t će bazična particija optimalnog rješenja ostati nepromijenjena ukoliko vektor b zamijenimo sa b+te i (odnosno vektor z zamijenimo sa z + te i ). Kako se provodi analiza osjetljivosti pokazat ćemo na primjeru max x 1 + 2x 2 uz uvjete 2x 1 + x 2 2 x 1 + 2x 2 7 x 1 3 x i 0. 24

Riješimo problem primarnom simpleks metodom. x 1 x 2 w x 5 x 2 w x 5 x 4 w x 3 2 1 2 x 4 1 2 7 x 3 2 1 8 x 4 1 2 10 x 3 3 2 1 3 2 x 2 1 2 1 2 5 x 5 1 0 3 x 1 1 0 3 x 1 1 2 0 3 z 1 2 0 z 1 2 3 z 4 1 13 Iz posljednje tabele očitamo rješenje primarnog problema x = (3, 5). Bazična particija tog rješenja je B = {4, 5}, N = {1, 2, 3}. Odaberimo sad jednu komponentu vektora b, npr. b 2. Postavlja se pitanje za koje sve vrijednosti b 2 bazična particija ostaje nepromijenjena. Očekujemo da je to interval koji sadrži sadašnju vrijednost od b 2, ovdje je to 7. Taj interval nazivamo rangom koeficijenta b 2. Za račun ranga od b 2 potrebno je umjesto vektora b gledati vektor b + βe 2, gdje je e 2 jedinični vektor kanonske baze i umjesto broja 7 u prvu tabelu ubaciti 7 + β te ponovno provesti račun. Umjesto gornjeg niza tabela dobiti ćemo novi niz tabela koje će se razlikovati u krajnjem desnom stupcu. Radi uštede prostora zapisat ćemo samo niz promijenjenih desnih stupaca. Račun možemo još pojednostavniti ako tabelu proširimo s još jednim stupcem βe 2 tako da ćemo sada umjesto jednog desnog stupca b + βe 2 imati dva, b i βe 2. Provedemo li ponovno gornji račun dobit ćemo, pišemo samo desne stupce,... w βe 2... w βe 2... w βe 2 x 3... 2 0 x 3... 8 0 x 3... 3 β 2 x 4... 7 β x 5... 3 0 x 4... 10 β x 1... 3 0 x 2... 5 β 2 x 1... 3 0 z... 0 z... 3 z... 13 Bazična particija novog rješenja ostaje ista ako je 3 β 2 0 i 5 + β 2 0, (5) odnosno, 10 β 6. Rang koeficijenta b 2 dobiti ćemo tako da dobiveni interval za β translatiramo za sadašnju vrijednost koeficijenta, tj. za 7, što daje interval [ 3, 13]. Općenito, ako želimo izračunati rangove za sve koeficijente b i, potrebno je na simpleks tabelu dopisati jediničnu matricu m m x 1 x 2 w e 1 e 2 e 3 x 3 2 1 2 1 0 0 x 4 1 2 7 0 1 0 x 5 1 0 3 0 0 1 z 1 2 0 25

te vršiti GJT kao i do sada. Na kraju, ako se pokaže da optimalno rješenje zaista postoji, iz m dobivenih stupaca se izračunaju rangovi koeficijenata b i na navedeni način. Slično se mogu računati rangovi koeficijenata z i, potrebno je dopisati jediničnu matricu n n i provesti postupak analogan onome za računanje koeficijenata b i Proširena tablica za računanje rangova izgleda x 1 x 2 w e 1 e 2 e 3 x 5 x 2 w e 1 e 2 e 3 x 3 2 1 2 1 0 0 x 3 2 1 8 1 0 2 x 4 1 2 7 0 1 0 x 4 1 2 10 0 1 1 x 5 1 0 3 0 0 1 x 1 1 0 3 0 0 1 z 1 2 0 z 1 2 0 f 1 1 0 f 1 1 0 f 2 0 1 f 2 0 1 x 5 x 4 w e 1 e 2 e 3 x 3 3 2 1 2 3 1 1 2 x 2 1 2 1 2 5 0 1 2 3 2 1 2 x 1 1 0 3 0 0 1 z 2 1 0 f 1 1 0 f 2 1 1 2 2 Applet samostalno računa spomenute rangove. Jednom kad smo došli do optimalnog rješenja rangovi se mogu vidjeti na tabu Ranges. 26

Dakle rangovi su sljedeći: b 1 [ 1, ] b 2 [ 3, 10] b 3 [1, ] z 1 [ 1, ] z 2 [0, ] Transformirane jedinične matrice nalaze se u tabovima RHS Sensitivity (RHS - Right hand side odnosno vektor desne strane) i TF Sensitivity (TF - Target function odnosno ciljna funkcija). Važno je napomenuti da spomenuti rangovi čuvaju bazičnu particiju samo ako promijenimo jedan jedini koeficijent vektora b ili z, to jest ako promijenimo dva ili više koeficijenata, može se promijeniti i bazična particija. Ovaj postupak nije teško generalizirati da se vidi invarijantnost bazične particije u odnosu na jednodimenzionalne perturbacije b+t b (z+t z) gdje je b R m ( z R n ). 27

6 Primjena u teoriji igara - matrična igra Teorija linearnog programiranja ima svoju primjenu u teoriji igara. Jednostavna i elegantna primjena može se prikazati na matričnoj igri. Pravila Matrične igre ili konačne igre (za dva igrača sa sumom nula su sljedeća. Neka je zadana realna matrica A = [α ij ] sa m redaka i n stupaca. Na početku igre svaki igrač bira jedan broj. Prvi igrač bira jedan od redaka matrice, odnosno broj iz skupa {1, 2,..., m}, drugi igrač bira jedan od stupaca matrice, odnosno broj iz skupa {1, 2,..., n}. Od sada nadalje ćemo ih nazivati igrač R i igrač S. Kada su oba odabrala svoje brojeve pokazuju ih jedan drugom. Ako je igrač R odabrao broj i, a S broj j tada pravila igre nalažu da igrač R mora platiti igraču S α ij kuna. Igrač S nije u boljem položaju od igrača R, jer negativne vrijednosti u matrici znače da plaćanje ide u suprotnom smjeru. Matricu A nazivamo matrica isplate. Kod matrične igre općenito ne postoji deterministička strategija igranja. Svaki redak i svaki stupac može sadržavati i pozitivne i negativne vrijednosti, pa prema tome mogu i ne moraju biti dobri izbori za pojedinog igrača. Tada je u interesu svakog igrača koristiti slučajnu strategiju. Pod slučajnom strategijom podrazumjevamo da bi svaki potez trebao biti odabran s odredenom vjerojatnošću. Strategija igrača R je slučajna varijabla X sa zakonom razdiobe X 1 2... m x 1 x 2... x m Dakle X je redak koji je odabrao igrač R. Slično, strategija igrača S je slučajna varijabla Y sa zakonom razdiobe Y 1 2... n y 1 y 2... y n Pretpostavljamo da su X i Y nezavisne slučajne varijable, što odgovara činjenici da niti jedan od igrača ne zna što će izabrati drugi. Uz tu notaciju, dobitak igrača S je α XY. Očekivani dobitak igrača S je E[α XY ] = m n x i α ij y j = xay τ i=1 j=1 Cilj je odrediti vjerojatnosne razdiobe varijabli X i Y tako da bi dobitak igrača bio najveći mogući. Kakvu god strategiju X odabrao igrač R, igrač S će se od nje braniti strategijom Y za koju se postiže donji maksimum max xay τ y gdje maksimum uzimamo po svim stohastičkim vektorima duljine n. Stoga igrač R kao najbolju moguću obranu bira stohastički vektor x za koji se postiže donji minimum min x max xay τ y 28

Ovaj problem se može postaviti kao problem linearnog programiranja. Ako primjetimo da je (e i je i-ti vektor kanonske baze R n ) problem možemo napisati kao max xay τ = max xae τ i y i {1,...,n} min x max i xae τ i uz uvjete n x j = 1 j=1 x j 0, j = 1, 2,..., n Ovaj problem možemo napisati i drugačije uvodenjem pomoćne varijable u: min u uz uvjete u xae τ i, i = 1, 2,..., n m x j = 1 (6) j=1 x j 0, j = 1, 2,..., m Na isti način, igrač S, kao svoju strategiju bira y za koju se postiže najveća isplata: Pripadni problem je max v max y min xay τ x uz uvjete v e τ i Ay i = 1, 2,..., m n y j = 1 (7) j=1 x j 0 j = 1, 2,..., n Sada kada je računanje optimalnih strategija svedeno na linearni problem može se pokazati konzistentnost danih rješenja. Vrijedi Teorem. (von Neumann) Postoje stohastički vektori x i y za koje max y x Ay τ = min xay τ x Dokaz: Kako je (6) dualan problemu (7) teorem dualnosti tvrdi da je v = u. Nadalje v = max e i Ay τ = max xay τ i x i slično u = min j x Ae τ j = max x Ay τ y 29

Vrijednost u = v nazivamo vrijednost igre. Ako igrač R prihvati strategiju x tada se osigurava da u prosjeku neće izgubiti više od u kuna. Slično, igrač S prihvaćanjem strategije y se osigurava da u prosjeku neće zaraditi manje od v kuna. Zbog toga igru čija je vrijednost 0 nazivamo pravednom igrom. Primjer. Izračunajmo strategije igrača ako je zadana matrica isplate 0 3 2 A = 5 0 6 3 4 0 Linearni problem glasi: max v 3x 2 2x 3 + v 0 5x 1 + 6x 3 + v 0 3x 1 4x 2 + v 0 x 1 + x 3 + x 3 = 1 x 1, x 2, x 3 0 Formiramo simpleks tabelu za taj problem: Ubacujemo u bazu redak eq koji odgovara jednakosti umjesto npr X3 i zaključamo odgovarajući stupac 30

v je slobodna varijabla, pa ju izbacujemo iz baze. Da bi problem sveli na kanonsku formu moramo zaključati redak v. Nakon nekoliko koraka algoritma dolazimo do sljedeće tebele Optimalna strategija za igrača R je x = ( 25, 17, 11 ), zbog dualnosti, optimalna strategija 64 64 32 za igrača S je y = ( 31, 23, 43 ). Vrijednost igre je 7, što znači da je igrač R u prednosti. 64 128 128 64 31

Literatura [1] Čaklović, L., Geometrija linearnog programiranja, skripta [2] Vanderbei R. J., Linear programming, Foundations and extensions, Kluwer Academic Publishers, 2001. [3] Čukman, T., JAVA, Alfej, 1997. [4] Eckel, B., Thinking in Java, 2nd. ed. 32