OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.

Slides:



Advertisements
Hasonló előadás
Egyszerű oszthatósági problémák
Advertisements

Készítette: Kosztyán Zsolt Tibor
A Szállítási feladat megoldása
Lineáris egyenletrendszerek megoldása Gauss elimináció, Cramer-szabály Dr. Kovács Sándor DE GVK Gazdaságelemzési és Statiszikai Tanszék.
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Programozási tételek, és „négyzetes” rendezések
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
MI 2003/ A következőkben más megközelítés: nem közvetlenül az eloszlásokból indulunk ki, hanem a diszkriminancia függvényeket keressük. Legegyszerűbb:
Halmazok, műveletek halmazokkal
Kötelező alapkérdések
Matematika II. 3. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Illeszkedési mátrix Villamosságtani szempontból legfontosabb mátrixreprezentáció. Legyen G egy irányított gráf, n ponton e éllel. Az n x e –es B(G) mátrixot.
Matematika II. 2. előadás Geodézia szakmérnöki szak 2012/2013. tanév Műszaki térinformatika ágazat őszi félév.
Matematika II. 1. előadás Geodézia szakmérnöki szak 2012/2013. tanév/
Illés Tibor – Hálózati folyamok
INFOÉRA Kombinatorikai algoritmusok (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Euklidészi gyűrűk Definíció.
Csoport részcsoport invariáns faktorcsoport részcsoport
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Gubicza József (GUJQAAI.ELTE)
Operációkutatás szeptember 18 –október 2.
Programozási alapismeretek 10. előadás
Algoritmusok Az algoritmus fogalma:
MI 2003/ Alakfelismerés - még egy megközelítés: még kevesebbet tudunk. Csak a mintánk adott, de címkék nélkül. Csoportosítás (klaszterezés, clustering).
Szállítási feladatok Optimalitás vizsgálat
Papp Róbert, Blaskovics Viktor, Hantos Norbert
Lineáris programozás Modellalkotás Grafikus megoldás Feladattípusok
Operációkutatás Kalmár János, Hiperbolikus és kvadratikus programozás.
OPERÁCIÓKUTATÁS Kalmár János, 2011 Tartalom Több lineáris célfüggvényes LP Tiszta egészértékű LP.
Matematikai modellek a termelés tervezésében és irányításában
A digitális számítás elmélete
Differenciál számítás
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
„Országos” feladat. Feladat: Egy tetszőleges, színes országokat tartalmazó térképen akar eljutni egy kommandós csapat egy országból egy másikba. Viszont.
Dijkstra algoritmusa Egy csúcsból a többibe vezető legkisebb költségű út megkeresése Az algoritmus működésének leírása és bemutatása LL.
EGÉSZÉRTÉKŰ PROGRAMOZÁS
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Lineáris programozás Definíció: Olyan matematikai programozási feladatot nevezünk lineáris programozási feladatnak, amelyekben az L halmazt meghatározó.
Készítette: Lakos Péter.  Adott egy élsúlyozott, véges gráf  Negatív élsúlyokat nem tartalmaz  Lehet irányított vagy irányítatlan  Továbbá adott egy.
Feladatok: Algoritmusok Pszeudokódban
Az oszd meg és uralkodj (Divide et Impera) programozási módszer
Lénárt Szabolcs Páll Boglárka
Rendezések és szövegkezelő függvények
Lineáris programozás.
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
Matematika II. 1. előadás Geodézia szakmérnöki szak 2010/2011. tanév Kataszteri ágazat tavaszi félév.
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Dr. Bánkuti Gyöngyi Klingné Takács Anna
előadások, konzultációk
Többdimenziós valószínűségi eloszlások
8. osztály Egyszerű képletek. Első feladat  Adjunk meg egész számokat, majd számítsuk ki az összegüket, különbségüket és hányadosukat.
előadások, konzultációk
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
1 Alternatív optimum Nem csak egy megoldása van!.
T.5. tétel (minimálpolinom egyértelmű létezése)
Készítette: Mátyás István agrár mérnöktanár szakos hallgató,
Algoritmusok és adatszerkezetek
OPERÁCIÓKUTATÁS TÖBBCÉLÚ PROGRAMOZÁS. Operáció kutatás Több célú programozás A * x  b C T * x = max, ahol x  0. Alap összefüggés: C T 1 * x = max C.
Prim algoritmus Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
Mediánok és rendezett minták
Mesterséges intelligencia
Informatikai gyakorlatok 11. évfolyam
Depth First Search Backtracking
Előadás másolata:

OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat

A nulla-egy LP megoldása A  x  b, x  0 (1) c T  x  max (2)  A Z feletti (egész) mátrix, b és c Z feletti vektorok, x bináris (0-1) vektor. Megoldása leszámlálási algoritmussal, tehát az összes lehetséges x (2 n darabszámú) megoldást számba veszi, úgy választja ki az optimumot. A gyakorlatban a vizsgált esetek számát természetesen ésszerűen korlátozzák.

A nulla-egy LP megoldása 1. Tétel: Legyen S részhalmaza az {1,2,…,n} indexhalmaznak. A  j x j   j  S (3) lineáris egyenlőtlenségnek akkor és csak akkor nincs 0-1 megoldása, ha  min(0,  j ) >  j  S (4) teljesül. Bizonyítás:  j x j a minimumát akkor veszi fel, amikor x j = 0, ha  j > 0, és x j = 1, ha  j < 0

A nulla-egy LP megoldása 2. Tétel: Ha a  min(0,  j ) +  j0  >  j, j 0  S (5) feltétel teljesül valamely j 0 indexre, akkor annak szükséges feltétele, hogy (3)-nak legyen 0-1 lehetséges megoldása az, hogy x j0 = 1 legyen, ha  j0 < 0, illetve x j0 = 0 legyen, ha  j0 > 0. Ha  j0 = 0, akkor az 1. Tétel miatt nincs megoldás.

A nulla-egy LP megoldása Algoritmus: x j változókat két halmazra osztjuk: ha j  S, akkor x S j kötött változó (értékét rögzítjük 0-ra vagy 1-re), a többi x j, j  S szabad (meghatározandó) változó. Ennek megfelelően az (1) feltételek aktualizálva:  a i,j  x j  b i -  a i,j  x S j (6) illetve ismerve a (2) célfgv. egy z alsó korlátját kiegészítjük (1)-et az alábbi feltétellel, hogy a rosszabb eredményeket kizárhassuk: c T  x  z

A nulla-egy LP megoldása 3. Tétel: Az alábbi algoritmus véges lépésben véget ér: Inicializálás: Legyen S={0}, tehát minden változó szabad, és legyen z =  c j, ahol c j < 0 Folytassuk a ciklusnál.

A nulla-egy LP megoldása Algoritmus Ciklus: az S-ben kötött változók alapján számítsuk újra (1) feltételeket. Ha nincs több szabad x j változó, akkor lépjünk tovább az célfgv ellenőrzésre. Egyébként a 2. tétel (5) feltételét alkalmazva keressünk olyan szabad x j változót, melynek (0-1) rögzítése szükséges valamelyik (1)-beli feltétel kielégítéséhez; ha találtunk ilyet, egészítsük ki S sort jobbról j-vel, húzzuk alá j-t, és kezdjük elölről a ciklust. Ha nem találtunk ilyen szabad változót, akkor tetszőleges x j szabad változóval egészítsük ki S sort jobbról j-vel (aláhúzás nélkül), és lépjünk vissza a ciklus elejére.

A nulla-egy LP megoldása Algoritmus Célfgv ellenőrzés: ha az S-beli megoldás (2) célfgvénye z-nél tovább nem javítható (ld. 1. Tétel) menjünk tovább az alternatíva keresésre. Egyébként módosítsuk z-t, tároljuk a hozzá tartozó lehetséges megoldást és menjünk tovább az alternatíva keresésre.

A nulla-egy LP megoldása Algoritmus Alternatíva keresése: válasszuk ki S sorban utolsó nem aláhúzott j elemét – ha nincs ilyen, akkor az eddig tárolt legjobb megoldás az optimális megoldás. Ha még nem találtunk legjobb megoldást, akkor (1)-nek nincs megoldása. Ha találtunk utolsó nem aláhúzott j elemet, akkor húzzuk alá, a hozzá tartozó kötött x j változó értékét változtassuk meg (0-ról 1-re, vagy viszont), töröljük a tőle jobbra álló elemeket S-ből, és ugorjunk vissza a ciklusra.

A nulla-egy LP megoldása Mintapélda: -x 1 + 3x 2 – 5x 3 – x 4 + 4x 5  -2 2x 1 - 6x 2 + 3x 3 + 2x 4 - 2x 5  0 x 2 – 2x 3 + x 4 + x 5  -1 -5x 1 - 7x 2 – 10x 3 – 3x 4 - x 5  max Inicializálás: Legyen S={0}, és z = -26 így a célfüggvényből származtatott kiegészítő feltétel -5x 1 - 7x 2 – 10x 3 – 3x 4 - x 5  -26

A nulla-egy LP megoldása Mintapélda: A 3. feltételre elvégzett 2. tétel szerinti teszt alapján x 3 = 1 szükséges ahhoz, hogy legyen lehetséges megoldás, ezért S = {3}. x 3 rögzítése után a 2. feltétel 2x 1 - 6x 2 + 2x 4 - 2x 5  -3 és a 2. tétel szerinti teszt alapján x 2 = 1 szükséges ahhoz, hogy legyen lehetséges megoldás, ezért S = {3, 2}.

A nulla-egy LP megoldása Mintapélda: A 3. feltétel most x 4 + x 5  0 Az erre elvégzett 2. tétel szerinti teszt alapján x 4 = x 5 = 0 szükséges ahhoz, hogy legyen lehetséges megoldás, ezért S = {3,2,-4,-5}. (a tárolt sorszám előjele mutatja a hozzá tartozó változó értékét: j>0  x j = 1, j<0  x j = 0) Mivel egyik teszt sem pozitív, ezért az egyetlen szabad változót x 1 = 0-n rögzítem, ezért az új S={3,2,-4,-5,-1}

A nulla-egy LP megoldása Mintapélda: S={3,2,-4,-5,-1} már egy lehetséges megoldás, melynek célfgvénye -17, ezért a kiegészítő feltételt szigoríthatjuk: -5x 1 - 7x 2 – 10x 3 – 3x 4 - x 5  -17 Most S-ben az utolsó nem aláhúzott elem -1, ezért (alternatívaként) áttérünk az S={3,2,-4,-5,1} megoldásra, ami a kiegészítő feltételt már nem elégíti ki, ezért marad optimális megoldásnak x 1 = x 4 = x 5 = 0, x 2 = x 3 = 1

A hátizsákfeladat megoldása A megoldandó feladat a T  x  b, x  0 (3) c T  x  max (4)  a és c Z feletti (pozitív egészelemű) n dimenziós vektorok, x n dimenziós bináris (0-1) vektor, és b pozitív egész szám. A paraméterek jelentése: a j a j-dik tárgy súlya, c j a j-dik tárgy értéke b a hátizsák (súly)kapacitása x j = 1 jelenti azt, hogy a j-dik tárgy bekerült a zsákba, x j = 0, ha nem.

A hátizsákfeladat megoldása A gyorsabb megoldás érdekében rendezzük a tárgyakat c j / a j (egységnyi súlyra eső érték) szerint csökkenő sorba; a ‘brutal force’ (nyers erő) módszer (sorban egymás után tesszük be a tárgyakat a hátizsákba, amíg be nem telik) ezen sorrend mellett gyakran azonnal az optimumhoz vezet. A feladatot dinamikus programozással oldjuk meg, amihez rekurzív összefüggést keresünk. Jelölje P r (d) a következő feladatot a T  x  d, x  0 (5) c T  x  max (6) 

A hátizsákfeladat megoldása ahol a és c Z feletti (egészelemű) pozitív r (<=n) dimenziós vektorok, x r dimenziós bináris (0-1) vektor, és d pozitív egész szám. Jelölje a P r (d) feladat megoldását f r (d), akkor a (3)-(4) feladat optimális megoldása nyílván f n (b). Ha az optimális megoldásban x r = 0, akkor f r (d) = f r-1 (d), viszont x r = 1 esetén f r (d) = f r-1 (d - a r ) + c r, ezért végeredményben az f r (d) = max(f r-1 (d), f r-1 (d - a r ) + c r ) képlet adja a keresett rekurziót.

A hátizsákfeladat megoldása Mintapélda: x  x  x  x 4 <= 7 7  x  x  x  x 4  max  Az ismeretlenek már eleve a fajlagos érték szerint csökkenő sorrendben vannak, ezért megkezdhetjük az f r (d) függvény kiszámítását: f r (d) d=0d=1d=2d=3d=4d=5d=6d=7 f0f f1f f2f f3f f4f

A hátizsákfeladat megoldása A táblázatból kiolvasható, hogy az optimális megoldásban x 1 = 0, x 2 = 1, x 3 = 1 és x 4 = 0. Ha a j-dik tárgyból nem 1, hanem t j példány áll rendelkezésre (x j <= t j ), akkor úgy vezetjük vissza a feladatot a bináris megoldásra, hogy a tárgyak közé a j-diket t j különböző példányban visszük be. Különböző optimalizálási feladatok megoldó programjai találhatók a neten az alábbi címen: