Assignment problem Hozzárendelési feladat (Szállítási feladat speciális esete) C költség mátrix költség Munkákat hozzá kell rendelni gépekhez: egy munka-egy gép c(i,j) mennyi be kerül i-dik munka j-dik gépen 2005.05.09. Dr. Bajalinov Erik, DE IK 1
Hozzárendelési feladat matematikai modellje ahol x ij =1, ha i-dik munkát hozzá kell rendelni j-dik géphez 2005.05.09. Dr. Bajalinov Erik, DE IK 2
Példa Egy cégnek 4 gépe van és 4 olyan munka, amelyeket kell ezeken a gépeken kell elvégezni. Minden egyes gépre egy munkát kell kijelölni, amelyet a gép teljesen elvégez. A következő táblázat mutatja, hogy az egyes gépeknek az egyes munkák elvégzéséhez mennyi munkaórára van szükség: Ki kell deríteni, hogy melyik munkát melyik géphez kell hozzárendelni ahhoz, hogy összes munkák elvégzéséhez szükséges munkaidő legyen minimális 2005.05.09. Dr. Bajalinov Erik, DE IK 3
Modell 2005.05.09. Dr. Bajalinov Erik, DE IK 4
Lingo modell 2005.05.09. Dr. Bajalinov Erik, DE IK 5
Lingo output 2005.05.09. Dr. Bajalinov Erik, DE IK 6
Optimális megoldás C(x)=5+5+3+2=15 2005.05.09. Dr. Bajalinov Erik, DE IK 7
Magyar módszer (Harold W. Kuhn - amerikai matematikus, 1992.-óta Magyar Operációkutatási Társaság tiszteletbeli tagja ) miért??? 1. Keressük meg az n n es költség mátrix minden sorában a legkisebb elemet. Képezzük egy új mátrixot úgy, hogy, a sor minden eleméből kivonjuk a legkisebb elemet. Ebben az új mátrixban keressük meg minden oszlopban a legkisebb elemet. Képezzük egy új (un. redukált) mátrixot úgy, hogy az oszlop minden eleméből kivonjuk a legkisebb elemet. 2. Húzzuk át vízszintes és függőleges vonalakkal a kapott redukált mátrixban összes nulla értékű elemet (minimális számban). Ha ehhez éppen n vonal szükséges, akkor optimális megoldást kaptunk (lefedett nulláknál). Egyébként 3. Keressük meg a redukált mátrix nem lefedett részében legkisebb nem-nulla értékű elemet és vonjuk ki azt minden nem lefedett elemből, majd adjuk azt hozzá a kétszer lefedett elemekhez. Térjünk vissza a 2. lépéshez. 2005.05.09. Dr. Bajalinov Erik, DE IK 8
Megjegyzések 1. Ha feladatban cél-függvényt kell maximalizálni, akkor a magyar módszer használata előtt költség mátrix minden elemét meg kell szoroznunk -1-gyel. 2. Magyar módszer alkalmazható csak olyan hozzárendelési feladatoknál, amelyekben sorok száma pontosan egyenlő oszlopok számával. Ha ez nem teljesül, akkor fiktív munka vagy fiktív gép bevezetésével a feladatot lehet átalakítani szükséges formába (kiegyensúlyozottá tenni). 3. Ahány vonallal sikerült lefedni nulla értékű elemeket redukált mátrixban, annyi munkát lehet hozzárendelni a nulla értékű elemeken keresztül ingyen, azaz a minimális költséghez képest. Ezért éppen n darab lefedő vonalra van szükségünk. 2005.05.09. Dr. Bajalinov Erik, DE IK 9
Példa 1.lépés 2005.05.09. Dr. Bajalinov Erik, DE IK 10
2.lépés 3 vonal 3.lépés: Legkisebb nem lefedett elem = 1, ezért kivonása után: 2005.05.09. Dr. Bajalinov Erik, DE IK 11
A kétszer lefedett elemekhez adjuk hozzá 1-t, majd vízszintes és függőleges vonalakkal húzzuk át összes nullát: 4 vonal megvan! Mivel lefedéshez szükséges vonalak száma éppen 4, ezért optimális táblázat!!! 2005.05.09. Dr. Bajalinov Erik, DE IK 12
Optimális megoldás leolvasása (0-kat tartalmazó cellák alapján) Kezdjünk azzal a nullát tartalmazó cellával, amely saját sorban és saját oszlopban egyetlen egy nullát képez: 3.oszlopban 3.sorban áll egyetlen nulla, ezért x 33 =1 2.oszlopban csak egy lefedett nulla van, 1.sorban, ezért x 12 =1 Mivel 1. munka már hozzá van rendelve 2. géphez, akkor 4.oszlopban szereplő 2 darab nullából csak 2.sorban állót lehet használni, így x 24 =1 Mivel csak 4. sor és 1.oszlop maradnak hozzárendelés nélkül, ezért x 41 =1 2005.05.09. Dr. Bajalinov Erik, DE IK 13