Jelen jegyzet a József Attila Tudományegyetem programozó matematikus és. A feldolgozott anyag bevezető jellegű. Néhány karakterisztikus, ma már

Hasonló dokumentumok
11. Előadás. 11. előadás Bevezetés a lineáris programozásba

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

A szimplex algoritmus

3. Lineáris differenciálegyenletek

összeadjuk 0-t kapunk. Képletben:

15. LINEÁRIS EGYENLETRENDSZEREK

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet

A szimplex algoritmus

Opkut deníciók és tételek

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Egyenletek, egyenlőtlenségek VII.

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

KOVÁCS BÉLA, MATEMATIKA I.

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

8. Egyenletek, egyenlőtlenségek, egyenletrendszerek II.

Trigonometria Megoldások. 1) Igazolja, hogy ha egy háromszög szögeire érvényes az alábbi összefüggés: sin : sin = cos + : cos +, ( ) ( )

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Nemlineáris programozás 2.

10. Előadás. Megyesi László: Lineáris algebra, oldal. 10. előadás Sajátérték, Kvadaratikus alak

1/ gyakorlat. Hiperbolikus programozási feladat megoldása. Pécsi Tudományegyetem PTI

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, Leontyev-modell

Analízis előadás és gyakorlat vázlat

LINEÁRIS EGYENLETRENDSZEREK október 12. Irodalom A fogalmakat, definíciókat illetően két forrásra támaszkodhatnak: ezek egyrészt elhangzanak

Egészrészes feladatok

Totális Unimodularitás és LP dualitás. Tapolcai János

Általános algoritmustervezési módszerek

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján

(Diszkrét idejű Markov-láncok állapotainak

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS I. Sorozatok és sorok

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Abszolútértékes és gyökös kifejezések

Hódmezővásárhelyi Városi Matematikaverseny április 14. A osztályosok feladatainak javítókulcsa

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

1. előadás: Halmazelmélet, számfogalom, teljes

A szimplex tábla. p. 1

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

2014. november 5-7. Dr. Vincze Szilvia

Exponenciális és logaritmikus kifejezések Megoldások

Az optimális megoldást adó algoritmusok

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Trigonometria


Hadamard-mátrixok Előadó: Hajnal Péter február 23.

SHk rövidítéssel fogunk hivatkozni.

Analízis I. Vizsgatételsor

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

KOVÁCS BÉLA, MATEMATIKA I.

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

M. 33. Határozza meg az összes olyan kétjegyű szám összegét, amelyek 4-gyel osztva maradékul 3-at adnak!

Nagy Gábor compalg.inf.elte.hu/ nagy

Analízis I. beugró vizsgakérdések

Szélsőérték feladatok megoldása

Kétfázisú szimplex algoritmus és speciális esetei

Függvények Megoldások

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Mátrixok 2017 Mátrixok

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

KOVÁCS BÉLA, MATEMATIKA I.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Exponenciális és Logaritmikus kifejezések

Gauss-Seidel iteráció

8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer

Ütemezési feladatok. Az ütemezési feladatok vizsgálata az 50-es évek elején kezdődött, majd

Norma Determináns, inverz Kondíciószám Direkt és inverz hibák Lin. egyenletrendszerek A Gauss-módszer. Lineáris algebra numerikus módszerei

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Exponenciális és Logaritmikus kifejezések

Matematika A2 vizsga mgeoldása június 4.

Operációkutatás. 4. konzultáció: Szállítási feladat. A feladat LP modellje

Vektorok, mátrixok, lineáris egyenletrendszerek

Lineáris egyenletrendszerek

Operációkutatás I. Bajalinov, Erik, Nyíregyházi Főiskola, Matematika és Informatika Intézete Bekéné Rácz, Anett, Debreceni Egyetem, Informatikai Kar

352 Nevezetes egyenlôtlenségek. , az átfogó hossza 81 cm

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

Typotex Kiadó. Bevezetés

egyenlőtlenségnek kell teljesülnie.

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

A dualitás elve. Készítette: Dr. Ábrahám István

Diszkrét matematika 1. estis képzés. Komputeralgebra Tanszék ősz

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Gauss elimináció, LU felbontás

Az egydimenziós harmonikus oszcillátor

I. Egyenlet fogalma, algebrai megoldása

A valós számok halmaza 5. I. rész MATEMATIKAI ANALÍZIS

II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés

Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged

5. Előadás. (5. előadás) Mátrixegyenlet, Mátrix inverze március 6. 1 / 39

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Átírás:

Előszó Jelen jegyzet a József Attila Tudományegyetem programozó matematikus és közgazdasági programozó hallgatói számára készült, akik második félévtől hallgatnak operációkutatást. A feldolgozott anyag bevezető jellegű. Néhány karakterisztikus, ma már klasszikusnak számító részterületet ölel fel, érintve ezek alapkérdéseit és néhány ismertebb, egyszerűbb megoldási technikát. Nem érinti a jegyzet az utóbbi időben igen előtérbe került kombinatorikus optimalizálás témakörét, amely külön tantárgyként szerepel az oktatásban. A tárgyalás során mind lineáris algebrából, mind analízisből csak a legszükségesebb fogalmak, alapöszefüggések ismeretét tételezzük fel. A felépített eljárások rendre egyszerű numerikus példákon keresztül kerülnek bemutatásra. Az egyes fejezeteket feladatok követik, amelyek részben az algoritmusoknak a hallgatók által történő önálló végrehajtását szolgálják, részben egyszerű bizonyítások kitűzésével a fogalmak maradandóbb megismerését célozzák. A jegyzet megírása során nagy segítséget jelentett Csirik János, Grőger Hans Dietmar és Máté Eörs munkatársaim számos hasznos tanácsa, konstruktív észrevételeik. Végül itt szeretnék köszönetet mondani lektoraimnak, Megyesi Lászlónak, a JATE docensének, és Szántai Tamásnak, az ELTE docensének a kézirat igen alapos és gondos lektorálásáért. Szeged, 1993. február 2. Imreh Balázs 1

2

1. BEVEZETÉS 1.1 Az optimumszámítási modellek Az operációkutatás viszonylag új tudományág, amelynek fejlődése és széleskörű alkalmazása szorosan összefügg a számítógépek kialakulásával, fejlődésével. Maga az operációkutatás kategória a második világháború idején alakult ki. A szövetséges hadseregek vezérkarai mellett létrehoztak olyan különböző szakmájú tudósokból álló kutatócsoportokat, amelyeknek az volt a fő feladata, hogy tudományos eszközök segítségével javaslatokat dolgozzanak ki a hadműveletek legeredményesebb irányításához. Innen ered az elnevezés, amelyben az operáció szó katonai műveletre, hadműveletre utalt. A világháború után, a számítógépek fejlődésével párhuzamosan az operációkutatás mind tartalmában, mind alkalmazási körét illetően gyorsan fejlődött, és napjainkban a társadalmi-gazdasági élet majd minden területén alkalmazást nyer. Az operációkutatás feladatának szemléltetéséhez tekintsük a következő gyakorlati problémát. Adott egy műhely, amely asztalokat, székeket és szekrényeket gyárt. A gyártás során kétféle anyagot használnak fel, egyfajta lemezt és egyfajta deszkát. Ezek egymással nem helyettesíthetők és korlátozott mennyiségben állnak rendelkezésre. A feladat: olyan termékösszetétel meghatározása, amely mellett a műhely nyeresége maximális. A fenti problémához egy matematikai modellt konstruálhatunk. E célból jelölje rendre x 1, x 2, x 3 a gyártásra kerülő asztalok, székek, szekrények számát, l 1, l 2, l 3 egy asztal, egy szék, egy szekrény készítéséhez szükséges lemezek számát, d 1, d 2, d 3 egy asztal, egy szék, egy szekrény készítéséhez szükséges deszkák számát, c 1, c 2, c 3 egy asztal, egy szék, egy szekrény gyártásából származó nyereséget, l, d a rendelkezésre álló lemezek és deszkák számát. A bevezetett jelölésekkel a tekintett probléma az alábbi, úgynevezett optimumszámítási modellel írható le, amely matematikai szempontból egy feltételes szélsőérték feladat. l 1 x 1 + l 2 x 2 + l 3 x 3 l d 1 x 1 + d 2 x 2 + d 3 x 3 d x i egész & x i 0 (i = 1, 2, 3) c 1 x 1 + c 2 x 2 + c 3 x 3 = z max A fentiekkel kapcsolatban vegyük észre, hogy a kapott modell leírhatná más olyan műhelyek problémáját is, amelyek háromféle terméket gyártanak kétféle anyag felhasználásával. Így lényegében a modellhez egy problémacsoport rendelhető. A problémát, problémacsoportot leíró modell ismerete önmagában persze még nem jelenti a probléma megoldását. Ehhez szükséges lenne olyan eljárás ismerete, amely a modell által meghatározott matematikai feladat megoldására 3

szolgál. Következésképpen az alábbi három, egymással szorosan összefüggő fogalmat különböztethetjük meg: (1) gyakorlati problémák, tevékenységek formalizálhatóság szempontjából közös tulajdonságú csoportja, (2) a fenti problémacsoportot leíró optimumszámítási modell, (3) a szóban forgó optimumszámítási modell által meghatározott matematikai feladat megoldására szolgáló eljárás. A gyakorlati problémák csoportosíthatóságát, az ezzel kapcsolatos meggondolásokat főképpen a rendszerszervezésnek és a konkrét alkalmazási terület, területek szakembereinek kell vizsgálniuk. Mi elsősorban a (2) és (3) pontokhoz tartozó problémákkal fogunk foglalkozni. Kézenfekvő az a kérdés, hogy adott problémacsoporthoz hogyan határozható meg az illető problémacsoportot leíró optimumszámítási modell. A modellalkotás általában igen bonyolult tevékenység, amely során a jelenségek tömegéből ki kell emelni a lényeges, meghatározó és tartós jegyeket, összefüggéseket és a többi összefüggéstől, ismérvtől el kell tekinteni a modell kezelhetőségének érdekében. A modellekkel szemben kétirányú követelménnyel lépünk fel: tükrözzék minél hűebben a valóságot, legyenek matematikailag, számítástechnikailag kezelhetők. Sok esetben ez két ellentétes szempont ütköztetését jelenti, és a modell kialakításánál olyan kompromisszumra kell törekedni, amelynél az matematikailag, számítástechnikailag még kezelhető és emellett a vizsgálat szempontjából hűen tükrözi a valóságot is. Tekintettel a modellalkotás bonyolultságára, nem adható meg olyan eljárás, amely alapján bármely problémacsoporthoz a megfelelő modell elkészíthető lenne. Megadhatók viszont olyan általános elvek, amelyek segítséget nyújthatnak a modellalkotásban. A továbbiakban áttekintjük ezeket az elveket, miközben végrehajtásukat az előzőek során megadott problémán szemléltetjük. 1.2 A modellalkotás elemei 1. A vizsgálat tárgyát képező tevékenységet bontsuk fel véges sok, úgynevezett elemi tevékenységre. Elemi tevékenységen a teljes tevékenység azt a pontosan körülhatárolt részét értjük, amelyet tovább bontani már nem szándékozunk. Jelölje a felbontás során előálló elemi tevékenységeket E 1,..., E n. A szemléltetésül választott problémánál a műhely termelését három elemi tevékenységre bontottuk fel: asztalgyártásra, székgyártásra és szekrénygyártásra. Nyilvánvaló, hogy választhatnánk finomabb felbontást is, de a probléma megfogalmazása nem teszi ezt szükségessé. Ilyen finomabb felbontás lehetne például az, amikor a három termékfajta gyártásához szükséges részeket (fedőlap, lábak, stb.) különkülön is figyelembe vennénk, és ennek megfelelően az anyagok kiválasztását is tovább bontanánk. Láthatjuk, hogy a teljes tevékenység felbontása elemi tevékenységekre 4

bizonyos tekintetben önkényes eljárás, ami általában igen alapos közgazdasági, rendszerelméleti, modellalkotási megfontolásokat igényel. 2. Minden egyes E i elemi tevékenységhez rendeljünk hozzá egy x i valós változót, amely arra nézve ad felvilágosítást, hogy E i milyen mértékben vesz részt a teljes tevékenységben. Az x i változót az E i elemi tevékenység szintjének, intenzításának nevezzük. Példánkban az asztalgyártás elemi tevékenység intenzításának vegyük a gyártandó asztalok számát, és ehhez hasonlóan, a másik két termékféleségnél is legyen a legyártandó termékek száma az illető elemi tevékenység intenzítása. Ekkor a három elemi tevékenység aktuális intenzításait az (x 1, x 2, x 3 ) vektorral írhatjuk le. Nyilvánvaló, hogy a lemez és deszka korlátozott volta miatt az intenzításértékek korlátosak és nem függetlenek egymástól. 3. Határozzuk meg azokat a kapcsolatokat, összefüggéseket, amelyeket az intenzításértékeknek külön-külön és együttesen ki kell elégíteni. Ezeket fogjuk feltételeknek nevezni. Itt tehát egyrészt az x i változókra (i = 1,..., n), másrészt az (x 1,..., x n ) vektorváltozóra vonatkozó feltételeket kell meghatározni. Egy ( x 1,..., x n ) valós vektort a feladat lehetséges megoldásának nevezünk, ha x az intenzításértékekre vonatkozó összes, az előzőekben meghatározott feltételt kielégíti. A lehetséges megoldások halmazát a továbbiakban L-lel fogjuk jelölni. Példánkban az intenzításértékekre vonatkozó, a probléma szempontjából lényeges összefüggések a következők: mivel x i a gyártandó termékek száma, ezért x i 0 és x i egész (i = 1, 2, 3), továbbá, mivel a rendelkezésre álló lemezek és deszkák száma l és d, ezért az l 1 x 1 + l 2 x 2 + l 3 x 3 l és d 1 x 1 + d 2 x 2 + d 3 x 3 d feltételeknek is teljesülnie kell. Ekkor a lehetséges megoldások halmaza a 3-dimenziós euklideszi tér azon részhalmaza, amelyet a felsorolt feltételek határoznak meg. Ezen részhalmaz minden pontja egy terv abban az értelemben, hogy végre lehet hajtani. 4. A tevékenység vizsgálatának általában valamilyen célja van. Fogalmazzuk meg ezt a célt a választott elemi tevékenységek segítségével, azaz adjunk meg egy olyan z : L V valós függvényt, amely a lehetséges megoldások értékét, jóságát jellemzi a kitűzött cél szempontjából. Ezt a függvényt célfüggvénynek nevezzük. A vizsgált problémában célunk a nyereség maximalizálása. A nyereség mennyisége c 1 x 1 +c 2 x 2 +c 3 x 3, így a vizsgálat szempontjából alkalmas célfüggvény a z(x 1, x 2, x 3 ) = c 1 x 1 + c 2 x 2 + c 3 x 3 függvény. A modellalkotás nagy körültekintést igénylő feladatával a továbbiakban nem foglalkozunk, hanem a modellek által meghatározott matematikai feladatok megoldására szolgáló eljárásokat fogjuk vizsgálni. 1.3 Az optimumszámítási modellekkel megadott matematikai feladatok megoldására szolgáló eljárások Az előzőekből adódik, hogy az optimumszámítási modell matematikai szempontból egy feltételes szélsőérték feladatnak tekinthető, nevezetesen a feltételek által 5

meghatározott L halmazon keressük a célfüggvény szélsőértékét. Maximum keresés esetén maximum feladatról, minimum keresésnél minimum feladatról beszélünk. Maximum feladatnál egy maximumhelyet optimális megoldásnak, a maximum értékét pedig optimumnak nevezzük. (Ugyanezen elnevezéseket használjuk minimum feladat esetén is.) Tehát x L optimális megoldása egy maximum feladatnak, ha z(x) z(x) teljesül bármely x L lehetséges megoldásra, és ebben az esetben az optimum z(x). Nyilvánvaló, hogy egy feltételes szélsőérték feladatnak nem szükségképp létezik optimális megoldása, továbbá ha létezik optimális megoldás, akkor az optimumot egyidejűleg több helyen is felveheti a célfüggvény. Az általunk vizsgálandó eljárások általában egy optimális megoldás meghatározását biztosítják, feltéve, hogy a feladatnak létezik optimális megoldása. Ellenkező esetben az eljárás alapján véges lépésben kiderül, hogy a feladatnak nincs optimális megoldása. Az egyetlen optimális megoldás meghatározására vonatkozó törekvést gyakorlati meggondolások motiválták. Általában gyakorlati szempontból egy optimális megoldás ismerete is kielégítő. Gondoljunk például a tekintett műhely termelésére. A maximális nyereséget biztosító valamely terv ismeretében nem okvetlenül szükséges ugyanekkora nyereséget biztosító más tervet is meghatározni. Az eddig elmondottak lehetővé teszik számunkra, hogy a továbbiakban vázoljuk az operációkutatás feladatát, és osztályozzuk az optimumszámítási modelleket. 1.4 Az operációkutatás feladata, az optimumszámítási modellek osztályozása Az operációkutatásnak, mint tudományágnak a feladatát a következőképpen határozhatjuk meg: Az operációkutatás feladata a gyakorlati élet különböző problémacsoportjaihoz az illető problémacsoportokat leíró optimumszámítási modellek konstruálása, továbbá a meglévő modellekhez az optimális megoldást meghatározó eljárások kidolgozása. Igen fontos, és gazdasági okokból egyre inkább előtérbe kerül az operációkutatás gyakorlati alkalmazása. Ez abban áll, hogy a meglévő modelleket és eljárásokat a gyakorlati élet problémáinak megoldására használjuk fel. Ahhoz, hogy ezt megtehessük, meg kell ismerkednünk a modellekkel és a kapcsolódó eljárásokkal. Mielőtt erre rátérnénk megkísérlünk rövid áttekintést adni a fontosabb modelltípusokról. Az optimumszámítási modellek több szempont szerint osztályozhatók. A következőkben ismertetjük a főbb szempontokat és a megfelelő osztályozásokat. I. Az elemi tevékenységek intenzításértékeitől függően megkülönböztetünk 1. folytonos modelleket, 2. diszkrét modelleket, 3. vegyes modelleket. Egy modellt folytonosnak nevezünk, ha a benne szereplő x i (i = 1,..., n) változók mindegyikére teljesül az, hogy x i a modell által meghatározott, i-től függő intervallumban bármilyen értéket felvehet. Diszkrét modellről beszélünk akkor, ha a modellben 6

szereplő minden x i változó a számegyenes bizonyos diszkrét pontjait tartalmazó, i-től függő halmazból veheti fel az értékeit. Ha a modell változóira az előző feltételek egyike sem teljesül, akkor vegyes modellről beszélünk. Megjegyezzük, hogy általában akkor neveznek egy modellt vegyesnek, ha a fenti típusú változókat és csak ilyeneket tartalmaz. Az utóbbi meghatározással nem kapnánk osztályozást. Például az x [a, b] vagy x {i 1,..., i k } feltételű modellt nem sorolhatnánk sehová. Ennek kiküszöbölésére használjuk a vegyes modellre a fenti, általánosabb meghatározást. II. A modellekben szereplő paraméterek szerint megkülönböztetünk 1. determinisztikus modelleket, 2. sztochasztikus modelleket. Determinisztikus modellről akkor beszélünk, ha a modellben szereplő paraméterek pontosan meghatározható konstansok. Abban az esetben, ha a modellnek van olyan paramétere, amely valószínűségi változó, akkor a modellt sztochasztikusnak nevezzük. III. Az olyan modellek között, amelyekben a feltételek mindegyike lineáris egyenlőség vagy egyenlőtlenség, a célfüggvény szerint megkülönböztetünk 1. lineáris programozási modelleket, 2. nemlineáris programozási modelleket. Lineáris programozási modellről vagy feladatról beszélünk, ha a célfüggvény maga is lineáris függvény. Ellenkező esetben használjuk a modellre a nemlineáris programozási feladat elnevezést. E rövid bevezetésből is kitűnik, hogy az operációkutatás igen nagy és sokrétű anyagot foglal magába. Ennek a nagy anyagnak csak egy kis részével fogunk megismerkedni a továbbiak során. Elsőként a lineáris programozás témakörével foglalkozunk. Ismertetjük a lineáris programozási feladatok megoldására szolgáló szimplex algoritmust és ennek különböző változatait. Ezt követően a lehetséges megoldások halmazának tulajdonságait vizsgáljuk, és érintjük a dualitás, valamint az egészértékű lineáris programozás témakörét, majd két speciális lineáris programozási feladatot vizsgálunk, a hozzárendelési feladatot és a szállítási feladatot. Ezek után a nemlineáris programozás néhány speciális, viszonylag jól kezelhető feladatát tárgyaljuk. 2. LINEÁRIS PROGRAMOZÁS 2.1 A lineáris programozás általános feladata, standard feladat Az előző pontban megismerkedtünk az optimumszámítási modellek osztályozásával. Ennek kapcsán definiáltuk a lineáris programozási feladatot, amelyben a feltételek lineáris egyenlőség, egyenlőtlenség formájában adottak, és ezen feltételek mellett kell egy lineáris függvény maximumát vagy minimumát meghatározni. Tekintettel arra, hogy tetszőleges lineáris programozási feladatra max{z(x) : x L} és min{ z(x) : 8

x L} egyidejűleg léteznek illetve nem léteznek, továbbá max{z(x) : x L} = min{ z(x) : x L}, az optimális megoldás létezése és meghatározása szempontjából elegendő a két típus közül az egyik vizsgálatára szorítkozni. Ennek megfelelően a továbbiakban csak minimum feladatokat vizsgálunk. Nyilvánvaló, hogy tetszőleges minimum feladat sorcserékkel az alábbi alakban írható fel: a 11 x 1 +... + a 1m x m b 1...... a k1 x 1 +... + a km x m b k a k+1,1 x 1 +... + a k+1,m x m = b k+1 (2.1.1)... a l1 x 1 +... + a lm x m = b l a l+1,1 x 1 +... + a l+1,m x m b l+1 ahol 1 k l n.... a n1 x 1 +... + a nm x m b n α + c 1 x 1 +... + c m x m = z min A feladatot mátrixokkal és vektorokkal a következőképpen adhatjuk meg: A 1 x b (1) A 2 x = b (2) A 3 x b (3) α + cx = z(x) min ahol A 1, A 2, A 3, b (1), b (2), b (3), c a megfelelő együtthatókból álló mátrixokat illetve vektorokat jelölik. A sor- és oszlopvektorokat külön jelöléssel nem fogjuk megkülönböztetni, az egyes formulákból mindig ki lehet következtetni, hogy az illető vektor sorvektor vagy oszlopvektor. Például a fenti felírásban c = (c 1,..., c m ) és x pedig olyan oszlopvektor, amelynek komponensei x 1,..., x m. Hasonlóan fogunk eljárni a mátrixok, vektorok méreteit illetően is, azaz a típust csak akkor írjuk ki, ha ez az összefüggésekből nem következtethető ki, vagy a tárgyalás szükségessé teszi azt. A fenti felírásban A 1 például egy k m-es mátrix. Megjegyezzük még, hogy szisztematikusan x-szel fogjuk jelölni a vektorváltozót, és x, x mindig egy-egy konkrét vektort fog jelölni. Tekintsük most a (2.1.1) feladatot. Nyilvánvaló, hogy egy x vektor akkor és csak akkor elégít ki egy egyenlőséget, egyenlőtlenséget, ha x kielégíti ennek az egyenlőségnek, egyenlőtlenségnek a 1-szeresét is. Következésképpen, ha a (2.1.1) feladatban 1-gyel megszorozzuk azokat az egyenlőségeket, egyenlőtlenségeket, amelyek jobboldala negatív, akkor olyan lineáris programozási feladatot kapunk, amelynek feltételrendszerét azok és csak azok a vektorok elégítik ki, amelyek kielégítik a (2.1.1) feladat feltételrendszerét is. Ez azt jelenti, hogy e két feltételrendszerhez tartozó lehetséges megoldások halmaza megegyezik. Így a két feladatnak egyidejűleg létezik optimális megoldása, továbbá, ha x optimális megoldása az egyik feladatnak, akkor x optimális megoldása a másik feladatnak is. Ez azt jelenti, hogy az optimális 9

megoldás létezését és meghatározását illetően az alábbi típusú feladatok vizsgálatára szorítkozhatunk: A 1 x b (1) A 2 x = b (2) (2.1.2) A 3 x b (3), (b (i) 0, i = 1, 2, 3) α + cx = z(x) min Konstruáljunk a (2.1.2) feladatból egy további lineáris programozási feladatot úgy, hogy a feladatban szereplő x i változók mindegyikét az u i, v i nemnegatív változók különbségével helyettesítjük. Ekkor a következő feladathoz jutunk: A 1 (u v) b (1) A 2 (u v) = b (2) (2.1.3) A 3 (u v) b (3) u 0, v 0, (b (i) 0, i = 1, 2, 3) α + c(u v) = z(u, v) min A (2.1.2) és (2.1.3) feladatok között igen szoros kapcsolat van, ezt adja meg az alábbi segédtétel. 1.segédtétel. A (2.1.2) és (2.1.3) feladatoknak egyidejűleg létezik optimális megoldása, és az optimális megoldások közvetlenül származtathatók egymásból. Bizonyítás. Tegyük fel, hogy a (2.1.2) feladatnak létezik optimális megoldása, és jelöljön x egy optimális megoldást. Képezzük az ū, v vektorokat a következő módon: { { xj, ha x ū j = j 0, 0, ha xj 0, v 0 különben, j = x j különben. Megmutatjuk, hogy (ū, v) optimális megoldása a (2.1.3) feladatnak. Ehhez elsőként igazoljuk, hogy (ū, v) lehetséges megoldása (2.1.3)-nak, azaz kielégíti annak feltételrendszerét. Az (ū, v) definíciójából következik, hogy ū 0, v 0. Másrészt vegyük észre, hogy ū v = x. Mivel x a (2.1.2) feladat lehetséges megoldása, ezért A 1 x b (1), A 2 x = b (2), A 3 x b (3) teljesül. De akkor A 1 (ū v) b (1), A 2 (ū v) = b (2), A 3 (ū v) b (3) is teljesül, és így (ū, v) lehetséges megoldása a (2.1.3) feladatnak. Most megmutatjuk, hogy (ū, v) optimális megoldás is. Ehhez elegendő belátni, hogy a (2.1.3) feladat tetszőleges (u, v ) lehetséges megoldására z(u, v ) z(ū, v) teljesül. Legyen x = u v. Mivel (u, v ) lehetséges megoldása (2.1.3)-nak, ezért A 1 (u v ) b (1), A 2 (u v ) = b (2) és A 3 (u v ) b (3) teljesül. De akkor A 1 x b (1), A 2 x = b (2) és A 3 x b (3), és így x lehetséges megoldása a (2.1.2) feladatnak. Mivel x optimális megoldás, ezért z(x ) z( x). Másrészt z( x) = z(ū, v) és z(x ) = z(u, v ), amiből z(u, v ) z(ū, v) következik, azaz (ū, v) a (2.1.3) feladatnak egy optimális megoldása. Ezzel igazoltuk, hogy amennyiben x optimális megoldása a (2.1.2) feladatnak, akkor a fentieknek megfelelően megkonstruált (ū, v) optimális megoldása a (2.1.3) 10

feladatnak. Teljesen hasonló gondolatmenettel belátható, hogy ha (ū, v) optimális megoldása (2.1.3)-nak, akkor az x = ū v vektor optimális megoldása a (2.1.2) feladatnak. Ebből a két állításból következik, hogy a (2.1.2) és (2.1.3) feladatoknak egyidejűleg létezik optimális megoldása, és az optimális megoldások közvetlenül származtathatók egymásból. Ezzel az 1.segédtétel bizonyítását befejeztük. Következmény. Az optimális megoldás létezését és meghatározását illetően elegendő az alábbi, (2.1.4) típusú feladatok vizsgálatára szorítkozni. A 1 x b (1) A 2 x = b (2) (2.1.4) A 3 x b (3) x 0, (b (i) 0, i = 1, 2, 3) α + cx = z(x) min Valóban, hiszen a zárójelek felbontásával és átjelölések alkalmazásával a (2.1.3) feladat (2.1.4) alakúra hozható. Megjegyezzük, hogy a fenti A i mátrixok nem egyeznek meg a (2.1.2)-ben szereplő mátrixokkal, az azonos szimbólumokat csak az egyszerűbb jelöléstechnika érdekében használjuk. Vizsgáljuk ezek után (2.1.4)-et. Konstruáljuk meg hozzá az alábbi (2.1.5) feladatot, amelyben E (1), E (3) megfelelő méretű egységmátrixok és u,v megfelelő dimenziójú vektorváltozók. A 1 x + E (1) u = b (1) A 2 x = b (2) (2.1.5) A 3 x E (3) v = b (3) x 0, u 0, v 0, (b (i) 0, i = 1, 2, 3) α + cx = z(x) min A két feladat között ismét szoros kapcsolat van, amint azt a következő segédtétel mutatja. 2.segédtétel. A (2.1.4) és (2.1.5) feladatoknak egyidejűleg létezik optimális megoldása, és az optimális megoldások közvetlenül származtathatók egymásból. Bizonyítás. Elsőként igazoljuk, hogy amennyiben x (2.1.4) optimális megoldása, akkor ( x, ū, v) optimális megoldása (2.1.5)-nek, ahol ū = b (1) A 1 x, továbbá v = A 3 x b (3). Az ū, v definíciójából és abból, hogy x lehetséges megoldása a (2.1.4) feladatnak következik egyrészt az, hogy x 0, ū 0, v 0, másrészt az, hogy A 1 x+e (1) ū = b (1), A 2 x = b (2), A 3 x E (3) v = b (3) teljesül. Ez pontosan azt jelenti, hogy ( x, ū, v) lehetséges megoldása a (2.1.5) feladatnak. Ahhoz, hogy ( x, ū, v) optimális megoldás is, azt kell igazolnunk, hogy (2.1.5) tetszőleges (x, u, v ) lehetséges megoldására z(x ) z( x) teljesül. Ehhez vegyük észre, hogy ha (x, u, v ) lehetséges megoldása (2.1.5)-nek, akkor x lehetséges megoldása (2.1.4)-nek. De akkor x optimális megoldás volta miatt z(x ) z( x) teljesül, amivel igazoltuk, hogy ( x, ū, v) optimális megoldás. 11

Teljesen hasonló gondolatmenettel belátható, hogy amennyiben ( x, ū, v) a (2.1.5) feladat egy optimális megoldása, akkor x a (2.1.4) feladat egy optimális megoldása. A fenti két állításból következik, hogy a két feladatnak egyidejűleg létezik optimális megoldása, és ezek egymásból közvetlenül származtathatók. Következmény. Az optimális megoldás létezését és meghatározását illetően elegendő az alábbi, (2.1.6) típusú feladatok vizsgálatára szorítkozni. Ax = b (2.1.6) x 0, (b 0) α + cx = z(x) min Összegezve az előzőeket, igazolást nyert, hogy tetszőleges lineáris programozási feladat megoldása visszavezethető egy alkalmas (2.1.6) típusú feladat megoldására. Tekintettel ezen feladatok ilyen értelmű kitüntetett szerepére, a (2.1.6) típusú feladatokat standard feladatoknak nevezzük. Az elmondottak egyben az alábbi eljárást is szolgáltatják, amely tetszőleges lineáris programozási feladat standard feladatra való visszavezetésére alkalmas. Eljárás: 1.lépés. Ha a megoldandó feladat maximum feladat, akkor szorozzuk meg a célfüggvényt 1-gyel, és keressük ennek az új célfüggvénynek a minimumát. 2.lépés. Ha szerepel negatív mennyiség a jobboldalon, akkor szorozzuk meg a megfelelő egyenlőséget vagy egyenlőtlenséget 1-gyel. 3.lépés. Ha szerepelnek olyan változók a feladatban, amelyekre nincs előírva nemnegativitási feltétel, akkor helyettesítsük rendre ezeket a változókat két nemnegatív változó különbségével. 4.lépés. Minden egyes egyenlőtlenség baloldalához adjunk hozzá illetve vonjunk ki egy nemnegatív változót attól függően, hogy a tekintett egyenlőtlenségben illetve szerepel, és változtassuk az egyenlőtlenségeket egyenlőségekre. Az eljárás alkalmazását az alábbi példán illusztráljuk: 1.példa. 2x + 3y 5 4x + 7y = 3 2x + 5y 5 8x y 3 17 + 4x + 5y = z(x, y) max Az első lépés után a következő feladatot kapjuk: 2x + 3y 5 4x + 7y = 3 2x + 5y 5 12

8x y 3 17 4x 5y = z(x, y) min Végrehajtva a második lépést, az alábbi feladat adódik: 2x + 3y 5 4x + 7y = 3 2x + 5y 5 8x+ y 3 17 4x 5y = z(x, y) min A harmadik lépésben az x = x 1 x 2, y = x 3 x 4 helyettesítéssel a következő feladatot nyerjük: 2x 1 2x 2 + 3x 3 3x 4 5 4x 1 + 4x 2 + 7x 3 7x 4 = 3 2x 1 2x 2 + 5x 3 5x 4 5 8x 1 + 8x 2 +x 3 x 4 3 x j 0, (j = 1,..., 4) 17 4x 1 + 4x 2 5x 3 + 5x 4 = z(x 1,..., x 4 ) min Végül a negyedik lépésben, bevezetve az x 5, x 6, x 7 változókat, az alábbi standard feladathoz jutunk: 2x 1 2x 2 + 3x 3 3x 4 +x 5 = 5 4x 1 + 4x 2 + 7x 3 7x 4 = 3 2x 1 2x 2 + 5x 3 5x 4 x 6 = 5 8x 1 + 8x 2 +x 3 x 4 +x 7 = 3 x j 0, (j = 1,..., 7) 17 4x 1 + 4x 2 5x 3 + 5x 4 = z (x 1,..., x 7 ) min A standard feladatok vizsgálatánál igen hasznos lesz a következő fogalom. Két standard feladatot ekvivalensnek nevezünk, ha a lehetséges megoldások halmazai egybeesnek, és ezen a közös L halmazon a két célfüggvény megegyezik. A bevezetett relációról könnyen belátható, hogy reflexív, szimmetrikus, valamint tranzitív, és így a standard feladatok halmazán egy ekvivalenciareláció. Ismeretes, hogy egy ekvivalenciarelációhoz hozzárendelhető az illető halmaz egy osztályozása, ha az egymással ekvivalens elemeket egy osztályba soroljuk. Így a bevezetett reláció alapján a standard feladatok egy osztályozásához jutunk: két feladat akkor és csak akkor kerül egy osztályba, ha ekvivalensek. Az ilyen módon meghatározott osztályokat az ekvivalenciareláció osztályainak nevezzük. Az ekvivalencia definíciójából következik, hogy ekvivalens feladatok optimális megoldásai megegyeznek. Ez azt jelenti, hogy az optimális megoldás létezését és meghatározását illetően adott feladat helyett tekinthetünk egy másik, az előzővel ekvivalens feladatot. Az ekvivalenciának ezt a következményét a továbbiakban gyakran fel fogjuk használni. 13

Feladatok 1. Határozzuk meg az alábbi lineáris programozási feladatokhoz rendre azokat a standard feladatokat, amelyekre az illető lineáris programozási feladatok visszavezethetők. 3x 1 + x 2 4x 3 2 2x 1 x 2 + x 3 8 (a) x 1 + x 2 + x 3 = 4 x 1 0 3x 1 + x 2 2x 3 = z(x) max 4x 1 + x 2 5x 3 7 2x 1 + x 2 + 2x 3 8 (b) 5x 1 + x 2 2 x 1 0, x 2 0-2x 1 4x 2 + x 3 = z(x) min 2. Mutassuk meg, hogy az alábbi standard feladatok ekvivalensek: 2x y = 0 x + 2y = 1 x + y = 1 3x + 3y = 1 x 0, y 0 x 0, y 0 5x + 4y = z(x, y) min x + 7y = z(x, y) min 3. Adjunk meg olyan standard feladatot, amely ekvivalens az alábbi feladattal. 8x + 12y = 9 2x 2y = 1 x 0, y 0 2x + 3y = z(x, y) min 4. Igazoljuk, hogy az alábbi műveletek egy standard feladathoz olyan feladatot rendelnek, amely ekvivalens az eredetivel. (a) A feladat valamely egyenletét helyettesítsük az illető egyenlet egy pozitív konstansszorosával. 14

(b) A feladat valamely egyenletének konstansszorosát adjuk hozzá a feladat egy másik egyenletéhez, és az eredménnyel helyettesítsük az utóbbi egyenletet, feltéve, hogy az új egyenlet jobboldala nemnegatív. (c) A feladat valamely egyenletének konstansszorosát adjuk hozzá a célfüggvényt meghatározó egyenlethez, és az előálló egyenlettel helyettesítsük a célfüggvény egyenletét. 5. Vezessük be a standard feladatok halmazán a következő relációt: két standard feladat gyengén ekvivalens, ha lehetséges megoldásaik halmazai egybeesnek, és ezen a közös halmazon a két célfüggvény eltérése konstans. Igazoljuk, hogy a bevezetett reláció ekvivalenciareláció, továbbá mutassuk meg, hogy gyengén ekvivalens feladatok optimális megoldásai megegyeznek. 2.2 Szimplex algoritmus A továbbiakban egy olyan eljárást építünk fel, amely alapján tetszőleges standard feladatról eldönthető, hogy létezik-e optimális megoldása, és ha létezik, akkor az eljárás alapján egy optimális megoldás meg is határozható. Ezen eljárás felépítése több lépésen keresztül történik, és az algoritmus konkrét megadására a 2.6 fejezetben kerül sor. Első lépésként egy speciális standard feladatot vizsgálunk, és ehhez adunk meg egy, a megoldást szolgáltató algoritmust. Egy standard feladatot lehetséges kanonikus alakú feladatnak nevezünk, ha sorés oszlopcserékkel, a változók átjelölésével az alábbi formában írható fel: (2.2.1) x 1 + a 1,n+1 x n+1 +... + a 1,n+m x n+m = b 1 x 2 + a 2,n+1 x n+1 +... + a 2,n+m x n+m = b 2...... x n + a n,n+1 x n+1 +... + a n,n+m x n+m = b n x j 0 (j = 1,..., n + m), (b i 0, i = 1,..., n) - α+ +c n+1 x n+1 +... + c n+m x n+m = z(x) min A (2.2.1) feladattal kapcsolatban vegyük észre, hogy közvetlenül leolvasható egy triviális lehetséges megoldása, nevezetesen x s = b s (s = 1,..., n), x n+t = 0 (t = 1,..., m). Ezt a triviális lehetséges megoldást bázismegoldásnak, az x s (s = 1,..., n) változókat pedig bázisváltozóknak nevezzük. Ha van olyan 1 i n index, hogy b i = 0, akkor a fenti bázismegoldást szokásos degenerált bázismegoldásnak nevezni. A bázismegoldást illetően vegyük észre, hogy az x s bázisváltozó együtthatóiból álló oszlopvektor pontosan az n-dimenziós euklideszi tér s-edik egységvektora, és 15

x s együtthatója a célfüggvény egyenletében 0-val egyenlő. Végül egyszerű behelyettesítéssel megállapíthatjuk, hogy a z(x) célfüggvény a bázismegoldáson az α értéket veszi fel. A következő tétel elegendő feltételt ad arra nézve, hogy a (2.2.1) feladat bázismegoldása mikor lesz optimális megoldás. 1.tétel. A (2.2.1) feladat bázismegoldása egyben optimális megoldás is, ha c n+t 0 (t = 1,..., m) teljesül. Bizonyítás. Mivel a bázismegoldáson felvett célfüggvényérték α, ezért elegendő igazolni, hogy a (2.2.1) feladat tetszőleges x lehetséges megoldására z( x) α teljesül. Valóban, x lehetséges megoldás lévén nemnegatív. Másrészt a feltétel szerint c n+t 0 (t = 1,..., m), így m t=1 c n+t x n+t 0. De akkor z( x) = α + m t=1 c n+t x n+t α, amivel az állítást igazoltuk. A tételben megfogalmazott elégséges feltételt szokásos optimum-kritériumnak nevezni. Azt, hogy a fenti feltétel nem szükséges, például a következő lehetséges kanonikus alakú feladat mutatja: x 1 +x 3 = 0 x 2 + x 3 = 0 0 x j (j = 1, 2, 3) - 5x 3 = z(x) min Nyilvánvaló, hogy a fenti feladatnak egyetlen lehetséges megoldása van, az x = (0, 0, 0) vektor, amely egyben bázismegoldás is, és optimális megoldás is. Ennek ellenére az optimum-kritérium nem teljesül. A következő tétel, amely bázisváltoztatás tétele néven ismeretes, lehetővé teszi, hogy bizonyos esetben a (2.2.1) feladatról áttérjünk egy vele ekvivalens lehetséges kanonikus alakú feladatra úgy, hogy az új feladat bázismegoldásán felvett célfüggvényérték ne legyen nagyobb, mint α. 2.tétel. Ha a (2.2.1) feladat célfüggvényében a c j (n + 1 j n + m) együttható negatív, továbbá létezik a = min{b r /a rj : a rj > 0, 1 r n} mennyiség, akkor megadható egy olyan, a (2.2.1) feladattal ekvivalens lehetséges kanonikus alakú feladat, amelynek x bázismegoldására z(x ) = α + c j teljesül. Bizonyítás. Első lépésként megkonstruáljuk az új feladatot. E célból tegyük fel, hogy c j < 0, = b k /a kj és jelölje (2.2.1) i-edik egyenletét r i, a célfüggvény egyenletét pedig z. Hajtsuk végre a (2.2.1) feladaton az alábbi átalakításokat: r k = 1 a kj r k, r i = r i a ij a kj r k (1 i n, i k), z = z c j a kj r k, 16

ahol r t az új feladat t-edik egyenletét (t = 1,..., n), z pedig az új feladat célfüggvényegyenletét jelöli. Megmutatjuk, hogy a fenti módon előállított feladat rendelkezik a kívánt tulajdonságokkal, azaz ekvivalens a (2.2.1) feladattal, lehetséges kanonikus alakú, továbbá az x bázismegoldására z(x ) = α + c j teljesül. Az ekvivalencia igazolásához jelölje L a (2.2.1) feladat, és L az új feladat lehetséges megoldásainak a halmazát. Legyen x L tetszőleges. Akkor x 0 és x kielégíti az r t (t = 1,..., n) egyenletek mindegyikét, azaz n+m s=1 a ts x s = b t (t = 1,..., n) teljesül, ahol tetszőleges 1 p n; 1 q n indexekre { 1, ha p = q, a pq = 0 különben. Vizsgáljuk az új feladat r i egyenletét, ahol 1 i n, i k. Az r i (a ij /a kj )r k összefüggéssel meghatározott r i egyenlet a következő: n+m s=1 ( a is a ) ij a ks x s = b i a ij b k. a kj a kj Egyszerű behelyettesítéssel belátható, hogy x kielégíti a fenti egyenletet. Tekintsük ezek után r k -t. Ez definíció szerint a következő: n+m s=1 (a ks/a kj )x s = b k /a kj. Ismét behelyettesítéssel adódik, hogy x kielégíti ezt az egyenletet is. Következésképp x kielégíti az új feladat minden egyenletét, amiből x L, és így L L következik. A fordított irányú tartalmazás igazolásához legyen x L tetszőleges. Akkor n+m s=1 ( a is a ) ij a ks x s = b i a ij b k a kj a kj n+m s=1 a ks a kj x s = b k a kj (1 i n, i k), teljesül. Az utóbbi egyenletből n+m s=1 a ks x s = b k adódik. Ezt felhasználva, az első n 1 egyenletből azt kapjuk, hogy n+m s=1 a is x s = b i (1 i n, i k) teljesül, azaz x L, amivel L L adódik. Az igazolt két tartalmazásból az L = L egyenlőség következik. Ezek után az ekvivalenciához még azt kell megmutatnunk, hogy az L halmazon a két célfüggvény megegyezik. Az új célfüggvényt meghatározó egyenlet a következő: α + n+m s=1 ( c s c ) j a ks x s = z(x) c j b k, a kj a kj ahol c t = 0 (t = 1,..., n). Az egyenlet által meghatározott új függvényt jelölje z (x). Rendezéssel z (x)-re a következő kifejezést kapjuk: ( ) n+m z (x) = α + c s x s + c n+m j b k a ks x s. a kj s=1 17 s=1

A fenti kifejezésből nyilvánvaló, hogy tetszőleges x L lehetséges megoldásra z( x) = z ( x) teljesül, amivel az ekvivalenciát igazoltuk. Ezek után megmutatjuk, hogy az új feladat lehetséges kanonikus alakú. Ehhez elsőként igazoljuk az előállított feladat b 1,..., b n jobboldalának nemnegativitását. Valóban, b k = b k/a kj nemnegatív, mivel b k 0 és a kj > 0. Most legyen 1 i n, i k tetszőleges. Akkor b i = b i (a ij /a kj )b k. Az a ij előjelétől függően két esetet különböztetünk meg. Ha a ij 0, akkor b i 0 és b k /a kj 0 alapján b i 0 teljesül. Ha a ij > 0, akkor = b k /a kj miatt b i /a ij b k /a kj, és így b i (a ij /a kj )b k, amivel b i 0 adódik. Most vegyük észre, hogy egyrészt az átalakítás során az x 1,..., x k 1, x k+1,..., x n változók együtthatói sem az egyenletrendszerben, sem a célfüggvényben nem változnak, másrészt kiszámítva az új feladatban az x j változó a ij (i = 1,..., n), c j együtthatóit, a következőket kapjuk: { c j = 0, a 1, ha i = k, ij = 0 különben. Következésképp, ha az új feladatban az x s változókról áttérünk az x s változókra az x s = x s (1 s n + m, s k, s j), x j = x k, x k = x j helyettesítéssel, és átrendezzük az oszlopokat az új változók indexei szerint, akkor egy (2.2.1) alakú feladatot kapunk, azaz az új feladat lehetséges kanonikus alakú. Végül vizsgáljuk az új feladat x bázismegoldásán a célfüggvény értékét. A bázismegoldás definíciója szerint x j = b k, x i = b i (1 i n, i k) és x s = 0 a további s indexekre. Az ekvivalencia miatt z (x ) = z(x ). Másrészt z(x ) = α + n+m s=1 c sx s = α + n+m t=n+1 c tx t = α + c j b k = α + c jb k /a kj = α + c j. Ezzel a 2.tétel bizonyítását befejeztük. Vegyük észre, hogy a fenti bizonyításban alapvető szerepet játszott az a kj együttható. Tekintettel ezen kitüntetett szerepre, az a kj együtthatót generáló elemnek nevezzük. Feltételezésünk szerint min{b r /a rj : a rj > 0, 1 r n} = b k /a kj. Nyilvánvaló, hogy A j-edik oszlopának több eleme is rendelkezhet ezzel a tulajdonsággal. Mivel a kj tetszőleges ilyen elem volt, ezért a bizonyításban szereplő átalakítás bármelyik, a fenti tulajdonsággal rendelkező együtthatóra érvényes. A 2.tétellel kapcsolatban vegyük még észre, hogy pozitív esetén a régi feladatról az új feladatra történő áttérés egyidejűleg egy jobb megoldást is eredményez abban az értelemben, hogy az új bázismegoldáson felvett célfüggvényérték kisebb, mint az eredeti bázismegoldáshoz tartozó célfüggvényérték. Valóban, ez utóbbi érték α, míg az új bázismegoldáshoz tartozó függvényérték α + c j, ami kisebb α-nál, ha > 0. Ezek után vizsgáljuk a 2.tétel feltételét. Nyilvánvaló, hogy min{b r /a rj : a rj > 0, 1 r n} akkor és csak akkor létezik, ha az a rj (r = 1,..., n) elemek között van legalább egy pozitív. Ellenkező esetben a feladatnak nem létezik optimális megoldása, amint azt az alábbi állítás mutatja. 3.tétel. Ha a (2.2.1) feladatban valamely n + 1 j n + m indexre c j < 0 és az a rj (r = 1,..., n) elemek egyike sem pozitív, akkor a feladat célfüggvénye alulról nem 18

korlátos a lehetséges megoldások halmazán. Bizonyítás. Feltételünk szerint a rj 0 (r = 1,..., n). Definiáljuk az x (1), x (2),... vektorsorozat elemeit a következőképpen: x (k) j = k, x (k) r = b r a rj k (r = 1,..., n), x (k) s = 0 (n + 1 s n + m, s j), ahol k tetszőleges pozitív egész. Mivel a rj 0 és b r 0 teljesül bármely 1 r n indexre, továbbá k > 0, ezért a fenti sorozat elemei rendre nemnegatív vektorok. Másrészt egyszerű behelyettesítéssel adódik, hogy bármely k pozitív egészre x (k) kielégíti a (2.2.1) feladat egyenletrendszerét, azaz x (k) lehetséges megoldása a feladatnak. Vizsgáljuk most a célfüggvényértékek z( x (1) ), z( x (2) ),... sorozatát. Behelyettesítve x (k) -t a célfüggvény egyenletébe, azt kapjuk, hogy z( x (k) ) = α+c j k. Ekkor a c j < 0 feltétel miatt, ha k, akkor z( x (k) ). Ebből viszont már adódik, hogy z(x) alulról nem korlátos a lehetséges megoldások halmazán, amivel az állítást igazoltuk. Az 1., 2. és 3.tételekkel kapcsolatban megjegyezzük, és a továbbiakban felhasználjuk a következőket. Tekintettel arra, hogy tetszőleges lehetséges kanonikus alakú feladat sor- és oszlopcserékkel, a változók átjelölésével (2.2.1) alakúra hozható, és a felsorolt műveletek az eredeti feladattal ekvivalens feladatot eredményeznek, ezért az említett három tétel tetszőleges lehetséges kanonikus alakú feladatra is érvényes. A három tételt felhasználva felépíthetünk egy olyan eljárást, amely alkalmas lehetséges kanonikus alakú feladatok megoldására. Mielőtt erre rátérnénk, vegyük észre, hogy a 2.tétel alkalmazása adott esetben nem egyértelmű. Az említett tétel két helyen is szabad választást biztosít. Egyrészt, ha több negatív c j szerepel a célfüggvényben, akkor a tétel nem tartalmaz utalást arra, hogy ezek közül melyiket válasszuk. Másrészt, ha c j < 0 és { br min : a rj > 0, a rj } 1 r n = b k 1 a k1 j =... = b k s, a ks j ahol s 2, akkor nincs meghatározva, hogy az a kt j (t = 1,..., s) elemek közül melyiket válasszuk generáló elemnek. Nyilván egy eljárásban ezeket a választásokat szabályozni kell. Egy konkrét választási stratégia rögzítésével, egy konkrét eljáráshoz jutunk, és különböző választási stratégiák különböző eljárásokat eredményezhetnek. Ezek mindegyike épülhet a 2.tételre, ugyanis a bizonyítás során nem használtuk ki, hogy a negatív célfüggvényegyüttható és a generáló elem milyen stratégia alapján lett kiválasztva. Az alábbi, történetileg legelső ilyen eljárásban egy egyszerű stratégia alapján történik a választás, ami az eljárás végességét illetően problémát okoz. Szimplex algoritmus: 19

1.lépés. Ha a tekintett lehetséges kanonikus alakú feladat célfüggvénye nem tartalmaz negatív együtthatót, akkor vége az eljárásnak, a feladat bázismegoldása optimális megoldás. Ellenkező esetben a 2.lépés következik. 2.lépés. Vegyük a negatív c s -ek minimumát. Jelölje c j a minimummal megegyező c s -ek közül a legkisebb indexűt. Ha a rj 0 (r = 1,..., n), akkor vége az eljárásnak, a célfüggvény alulról nem korlátos a lehetséges megoldások halmazán. Ellenkező esetben a 3.lépés következik. 3.lépés. Ha min{b r /a rj : a rj > 0, 1 r n} = b k1 /a k1 j =... = b ks /a ks j, akkor válasszuk az a kt j (t = 1,..., s) elemek közül a legkisebb sorindexűt generáló elemként, majd hajtsuk végre a 2.tétel bizonyításában megadott átalakításokat, és a kapott lehetséges kanonikus alakú feladattal folytassuk az eljárást az 1.lépésnél. Az algoritmus helyessége következik az 1., 2. és 3.tételekből. Alapvető kérdés, hogy mit állíthatunk az eljárás végességéről. Ezt most nem tárgyaljuk, de a későbbiek során visszatérünk rá. Előbb azonban egy példán illusztráljuk az algoritmust, majd az úgynevezett szimplex táblázatok bevezetésével olyan eszközt adunk meg, amely nagyban megkönnyíti az eljárás tényleges végrehajtását. 2.példa. x 1 +2x 4 +x 6 = 2 x 2 +3x 4 x 5 + 3x 6 = 1 x 3 x 4 + 2x 5 +x 6 = 3 x i 0 (i = 1,..., 6) - 2x 4 3x 5 3x 6 = z(x) min A negatív célfüggvényegyütthatók minimuma 3, és a minimummal megegyező c s -ek közül c 5 a legkisebb indexű. Az a 15, a 25, a 35 elemek közül csak a 35 pozitív, így csak ez az együttható választható generáló elemnek. Ekkor a feladat átalakítása a következő összefüggések alapján történik: r 3 = 1 a 35 r 3, r i = r i a i5 a 35 r 3 (i = 1, 2), z = z c 5 a 35 r 3. Végrehajtva a fenti átalakításokat, a következő feladathoz jutunk: x 1 +2x 4 +x 6 = 2 x 2 + 1 2 x 3 + 5 2 x 4 + 7 2 x 6 = 5 2 1 2 x 3 1 2 x 4 + x 5 + 1 2 x 6 = 3 2 x i 0 (i = 1,..., 6) - 3 2 x 3 7 2 x 4 3 2 x 6 = z(x) + 9 2 min Most c 4 = 7/2 a legkisebb negatív célfüggvényegyüttható, és a 14, a 24 lehet generáló elem. Ezek közül a kisebb sorindexű a 14 -et választva generáló elemnek, és végrehajtva a megfelelő átalakításokat, az alábbi feladatot kapjuk: 20

1 2 x 1 +x 4 + 1 2 x 6 = 1 5 4 x 1 + x 2 + 1 2 x 3 + 9 4 x 6 = 0 1 4 x 1 + 1 2 x 3 +x 5 + 3 4 x 6 = 2 x i 0 (i = 1,..., 6) 7 4 x 1 + 3 2 x 3 + 1 4 x 6 = z(x) + 9 2 + 7 2 min Ebben a feladatban már valamennyi célfüggvényegyüttható nemnegatív, így az x 4 = 1, x 2 = 0, x 5 = 2 és x 1 = x 3 = x 6 = 0 bázismegoldás egyben optimális megoldás is. A bázismegoldáson felvett z( x) célfüggvényérték 9/2 7/2 = 8. Az eljárás konkrét végrehajtása után felvetődik az a kérdés, hogy az egyenletrendszerek valamilyen tömörített írásmódja nem eredményezne-e technikailag egy egyszerűbb számítást. Erre a kérdésre pozitív a válasz. Nevezetesen, rendeljük a (2.2.1) feladathoz a következő táblázatot, amelyet az illető feladat szimplex táblázatának vagy szimplex táblájának nevezünk. x n+1... x n+m (2.2.2) x 1 a 1,n+1... a 1,n+m b 1.. x n a n,n+1... a n,n+m b n c n+1... c n+m α A hozzárendelésnél valójában a változókat emeljük ki oly módon, hogy a táblázat i-edik sora első elemként tartalmazza az i-edik egyenletben szereplő bázisváltozót, majd rendre az i-edik egyenletre vonatkozóan az x s (s = n + 1,..., n + m) változók együtthatóit, végül az i-edik egyenlet jobboldalát. Lényegében a szimplex táblázat a lehetséges kanonikus alakú feladat egy tömörített leírása. Ebből adódóan az eljárást átfogalmazhatjuk szimplex táblázatokra. Ehhez azt kell megvizsgálnunk, hogy a 2.tétel bizonyításában megadott, az egyenletekre vonatkozó átalakítások során az egyenletekben szereplő együtthatók hogyan változnak meg. E célból tegyük fel, hogy c j < 0, min{b r /a rj : a rj > 0, 1 r n} = b k /a kj. Ekkor az egyenletrendszeren végrehajtandó átalakítások a következők: r k = 1 a kj r k, (2.2.3) r i = r i a ij a kj r k (1 i n, i k), z = z c j a kj r k, A 2.tétel bizonyításából tudjuk, hogy a k-adik bázisváltozó x j lesz, és x k kikerül a bázisváltozók közül. Ezt a szimplex táblázattal történő felírásban úgy tudjuk megadni, hogy az új táblázatban az x k, x j változók helyét megcseréljük. 21

Vizsgáljuk ezek után az új táblázatban szereplő együtthatókat, jelölje ezeket rendre a ij, b i, c j, α, ahol 1 i n, n + 1 j n + m. Elsőként tekintsük a kj - t. Az x j, x k változók cseréje miatt a kj az x k változó együtthatója r k-ben. Mivel x k együtthatója r k -ban 1, ezért (2.2.3) alapján a kj = 1/a kj. Ezt szavakban úgy fogalmazhatjuk meg, hogy a generáló elem helyére annak reciproka kerül. A j-edik oszlop elemeinél maradva, mivel x k együtthatója r i -ben és z-ben 0, ezért a változók cseréje és (2.2.3) alapján a ij = a ij/a kj (1 i n, i k), c j = c j/a kj, azaz a generáló elem oszlopában lévő elemek helyére az illető elemeknek a generáló elem negatívjával képezett hányadosa kerül. Vizsgáljuk most a k-adik sor elemeit. A (2.2.3) alatti összefüggések miatt a ks = a ks /a kj (n+1 s n+m, s j), b k = b k/a kj, azaz a generáló elem sorában szereplő elemek helyén az illető elemeknek a generáló elemmel képezett hányadosa szerepel. Végül tekintsük a felsorolt elemektől eltérő indexű együtthatók számítását. Ha 1 i n, i k és n + 1 s n + m, s j, akkor (2.2.3) alapján a is = a is a ij a kj a ks, b i = b i a ij a kj b k, c s = c s c j a kj a ks, α = α c j a kj b k. Vegyük észre, hogy a felsorolt esetekben az illető elemből ki kell vonni a sorában és a generáló elem oszlopában, továbbá az oszlopában és a generáló elem sorában lévő két elem szorzatának a generáló elemmel képezett hányadosát. a ks a kj a is a ij Amint azt a mellékelt ábra mutatja, ezen elemek egy téglalap csúcsain helyezkednek el, és a kivonandó a generáló elemmel szomszédos csúcsokban lévő elemek szorzatának a generáló elemmel képezett hányadosa. Az átfogalmazott eljárás illusztrálására végrehajtjuk az algoritmust az előzőekben megadot lehetséges kanonikus alakú feladaton. A végrehajtás során a választott c j -t aláhúzással, a választott generáló elemet *-gal jelöljük meg. 3.példa. x 4 x 5 x 6 x 4 x 3 x 6 x 1 x 3 x 6 x 1 2 0 1 2 x 1 1 1 2 0 1 2 x 4 2 0 5 1 7 5 x 2 3 1 3 1 x 2 2 2 2 2 x 2 5 1 9 4 2 x 3 1 2 1 3 x 5 1 2 2 3 3 0 7 2 1 2 1 2 3 2 3 2 3 1 2 x 5 4 9 2 7 4 1 2 3 2 2 1 4 0 3 4 2 1 4 8 Az utolsó szimplex táblázatnak megfelelő lehetséges kanonikus alakú feladatban már minden célfüggvényegyüttható nemnegatív, így az x 4 = 1, x 2 = 0, x 5 = 2, x 1 = x 3 = x 6 = 0 bázismegoldás egyben optimális megoldás is. A bázismegoldáson felvett z( x) célfüggvényérték 8. 22

A lehetséges kanonikus alakú feladatok megoldására szolgáló, az előzőekben ismertetett szimplex algoritmus G. B. Dantzigtól származik. Érdekes momentum, hogy az eljárás már 1947-ben elkészült, de publikálására csak 1951-ben került sor, tekintettel a téma katonai indíttatására. Az eljárás elkészülte után a végesség kérdése egyre inkább előtérbe került. A kutatók egy része annak igazolására törekedett, hogy az eljárás bármely lehetséges kanonikus alakú feladaton véges lépésben véget ér. Ezzel szemben mások ellenpéldát kerestek, azaz olyan lehetséges kanonikus alakú feladatot, amelyen az eljárás vég nélkül folytatódik. Ez utóbbi kutatások bizonyultak eredményesnek. Elsőként A. J. Hoffmannak sikerült egy ilyen lehetséges kanonikus alakú feladatot megadnia. Hoffman példája, amely szerepel a fejezet végén felsorolt feladatok között, három egyenletet és tizenegy változót tartalmaz, az együtthatók pedig szögfüggvényértékek. Az eljárás során a szögfüggvények addíciós tételeit kell alkalmazni, így az algoritmus végrehajtása igen nehézkes. Később, 1955-ben E. M. L. Beale is megadott egy ellenpéldát, amely racionális együtthatókat tartalmaz és méreteiben is kisebb, mint Hoffman feladata. Tekintettel a fentiekre, az algoritmus vég nélküli folytatódásának illusztrálására a Beale-féle feladatot oldjuk meg. 4.példa. x 4 x 5 x 6 x 7 x 1 x 5 x 6 x 7 x 1 1 4 8 1 9 0 x 4 4 32 4 36 0 1 x 2 2 12 1 2 3 0 x 2 2 3 4 2 15 0 x 3 0 0 1 0 1 x 3 0 0 1 0 1 3 4 20 1 2 6 0 3 4 7 2 33 0 x 1 x 2 x 6 x 7 x 1 x 2 x 4 x 7 x 4 12 8 8 84 0 x 6 3 2 1 1 x 5 1 1 3 2 4 8 15 1 4 0 x 5 16 1 8 3 64 3 x 3 0 0 1 0 1 x 3 2 1 1 8 8 21 2 0 3 16 0 21 2 1 1 1 1 2 18 0 2 3 4 3 0 x 1 x 2 x 4 x 5 x 6 x 2 x 4 x 5 x 6 2 6 5 1 2 56 0 x 1 2 3 5 4 28 0 1 x 7 3 2 3 1 16 4 3 0 x 7 1 1 1 6 3 6 4 0 5 x 3 2 6 2 56 1 x 3 1 0 0 0 1 1 1 1 1 2 16 0 2 2 7 4 44 0 23

x 6 x 7 x 4 x 5 Vegyük észre, hogy az utolsó szimplex 1 x 1 1 9 4 8 0 táblázat csak az oszlopok sorrendjéx 2 1 1 2 3 2 12 0 ben különbözik az elsőtől. Tekintettel x 3 1 0 0 0 1 arra, hogy a célfüggvény együtthatói 1 2 6 3 4 20 0 között minden lépésben van legkisebb, az oszlopok sorrendje az eljárást nem befolyásolja. Így, folytatva az algoritmust, az oszlopok sorrendjétől eltekintve ismét megkapnánk rendre a második, harmadik,..., szimplex táblát, és az eljárás vég nélkül folytatódna. Miután sikerült ciklizációs példákat megadni, a kutatások új irányt vettek. Azt vizsgálták, hogy miként lehetne az eljárást úgy megváltoztatni, hogy minden esetben véges lépésben véget érjen. Az eljárásban az alkalmazott kiválasztási stratégia bizonyult döntőnek. Igazolást nyert, hogy alkalmas stratégiával elérhető a végesség. Az algoritmus első ilyen változata lexikografikus szimplex algoritmus néven ismeretes. Mielőtt ezzel megismerkednénk, az eljárás egy másik változatát, az úgynevezett módosított szimplex algoritmust fogjuk a következő fejezetben tárgyalni, amelyet azután felhasználunk a lexikografikus eljárás végességének igazolásához. Feladatok 1. Írjuk fel rendre az alábbi szimplex táblázatoknak megfelelő lehetséges kanonikus alakú feladatokat. x 4 x 5 x 6 x 7 x 4 x 1 2 1 2 4 6 x 1 1 2 x 2 1 3 2 3 1 1 3 7 x 2 1 0 x 3 2 6 5 5 8 x 3 3 1 1 2 2 3 4 3 0 2. Az alábbi szimplex táblázattal megadott feladathoz konstruáljunk lehetséges megoldásoknak egy végtelen sorozatát. Következik-e a sorozat létezéséből, hogy a célfüggvény alulról nem korlátos a lehetséges megoldások halmazán? x 4 x 5 x 6 x 1 1 1 1 4 x 2 1 1 2 5 x 3 3 1 2 2 2 2 3 0 24

3. Konstruáljunk az alábbi lineáris programozási feladatokhoz olyan lehetséges kanonikus alakú feladatokat, amelyekre az illető lineáris programozási feladatok viszszavezethetők. Adjuk meg a feladatok szimplex táblázatát, és oldjuk meg szimplex algoritmussal ezen feladatokat. x 1 + 3x 2 7 3x 1 x 2 11 (a) x 2 4 x 1 0, x 2 0 - x 1 x 2 = z(x) min 4x 1 +3x 2 11x 3 10 2x 1 +2x 2 6x 3 4 (b) 5x 1 2x 2 +8x 3 2 x i 0 (i = 1, 2, 3) 3x 1 5x 2 8x 3 = z(x) min 2x 1 x 2 2x 3 x 4 +x 5 4 4x 1 2x 2 +3x 3 x 4 8 (c) 2x 1 +x 2 +x 3 +2x 4 6 x 1 x 2 +4x 3 +3x 4 10 x i 0 (i = 1,..., 5) - 3x 1 2x 2 +x 3 x 4 = z(x) min 4. Hajtsuk végre a szimplex algoritmust az alábbi, A. W. Tucker által megadott feladaton, amely hasonlóan a Beale-féle feladathoz azt demonstrálja, hogy esetenként az eljárás vég nélkül folytatódik. x 4 x 5 x 6 x 7 x 1 2 9 1 9 0 x 2 1 3 1 1 3 2 0 x 3 1 1 1 1 1 2 3 1 12 0 5. Hajtsuk végre a szimplex algoritmust az alábbi, A. J. Hoffmantól származó feladaton, és figyeljük meg, hogy az első és harmadik szimplex táblázatban ugyanazon együtthatók szerepelnek, csak az oszlopok sorrendje más. Vegyük észre, hogy az első 25

és harmadik szimplex táblázat összehasonlításából az következik, hogy folytatva az eljárást, a tizennegyedik szimplex tábla megegyezik az első szimplex táblával. x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 1 0 0 0 0 0 0 0 0 1 x 2 cos ρ t cos ρ cos 2ρ 2t cos 2 ρ cos 2ρ 2t cos 2 ρ cos ρ t cos ρ 0 x 3 sin ρtgρ t cos ρ tgρ sin 2ρ t cos 2ρ 2 sin 2 ρ t cos 2ρ tgρ sin ρ t cos ρ 0 (1 cos ρ) cos ρ t 0 2t 4 sin 2 ρ 2t cos 2ρ 4 sin 2 ρ t(1 2 cos ρ) 0 ahol ρ = 2π/5 és t > (1 cos ρ)/(1 2 cos ρ). 6. Oldjuk meg szimplex algoritmussal a következő feladatot. x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 1 1 1 1 1 1 2 2 1 4 x 2 1 2 2 1 1 2 1 1 6 x 3 2 1 2 2 2 1 3 1 5 1 2 5 1 6 1 6 8 0 7. Adott szimplex táblázatról egy másik szimplex táblázatra történő áttérés során, az új együtthatókat kiszámíthatjuk úgy is, hogy miután kiszámítottuk a generáló elem sorában és oszlopában szereplő új elemeket, a további együtthatók meghatározását a régi és az új táblázatokban szereplő értékek alapján végezzük. Adjuk meg az a is = a is a ij a ks /a kj összefüggéseknek megfelelő összefüggéseket, ha (a) a számítások a régi táblázat és az új táblázat k-adik sorának felhasználásával történnek, (b) a számításoknál a régi táblázatot és az új táblázat j-edik oszlopát használjuk, (c) a számításokat a régi táblázat, továbbá az új táblázat k-adik sora és j-edik oszlopa alapján végezzük. 2.3 Módosított szimplex algoritmus Bizonyos problémák, problémacsoportok olyan lehetséges kanonikus alakú feladatokat eredményeznek, amelyek kevés feltétel mellett viszonylag sok változót tartalmaznak. Ilyen feladatokon végrehajtva a szimplex algoritmust, azt tapasztaljuk, hogy egyes változók és a hozzájuk tartozó oszlopvektorok érdemben nem befolyásolják az 27