Egyes logisztikai feladatok megoldása lineáris programozás segítségével - bútorgyári termelési probléma - szállítási probléma
Egy bútorgyár polcot, asztalt és szekrényt gyárt faforgácslapból. A kereskedelemben kapható anyag, a saját üzemcsarnokában álló gépei, és dolgozói jelenlegi szakértelme segítségével ezen termékek gyártását indíthatná. A kérdés az, hogy ezek közül melyiket, milyen mennyiségben gyártsa. A gyárnak jelenleg legfeljebb 1500 m 2 faforgácslap megvásárlására van lehetősége 500 Ft/m 2 áron. Az anyag-felhasználási számítások szerint egy polchoz 3, egy asztalhoz 6, egy szekrényhez 15 m 2 anyag szükséges. A faforgácslap megmunkálása átlagosan 5, 8 és 25 órát vesz igénybe termékenként. A következő 5 hét során a felhasználható gépidő-kapacitás összesen 2150 üzemóra. (öt üzemelő berendezés két műszakban, hetente összesen 86 órát működik.) Az elkészített bútoralapelemek összeépítése a polcok és asztalok esetében termékenként 1 óra, míg szekrények esetén 4 óra. Az összeépítésre a következő 5 hétben felhasználható kapacitás összesen 300 óra.
Az egységnyi termék előállításához szükséges anyag, gépóra és munkaóra mennyisége, (az ún. fajlagos ráfordítási együtthatók) a termelés során általában véletlen ingadozásokat mutatnak, de mivel ezek az ingadozások nem jelentősek, a továbbiakban ezek átlagos értékével számolhatunk. Gyakori, hogy a ráfordítások k-szoros növelésekor az előállított termék mennyisége nem ugyanilyen arányban nő. Példánkban azonban a gyakorlati tapasztalatok azt mutatják, hogy a felhasznált ráfordítások (anyag, gépóra, munkaóra) nagysága és az ezekkel előállított termékek (polc, asztal, szekrény) mennyisége egyenesen arányos. Környezeti feltétel, hogy gyár nem tudja befolyásolni az árakat sem vásárlásai, sem eladásai során, vagyis kénytelen alkalmazkodni a piachoz. A termelési körülmények miatt 1 gépóra költsége 1300 Ft, a termékek összeépítésekor felhasznált 1 óra élőmunka költsége 400 Ft.
Így 1 db termék átlagos költsége a következő: polc: asztal: szekrény: 3 500 + 5 1300 + 1 400 = 8.400 Ft, 6 500 + 8 1300 + 1 400 = 13.800 Ft, 15 500 + 25 1300 + 4 400 = 41.600 Ft. A gyár a polcot 9600, az asztalt 15600, a szekrényt pedig 44600 Ft-os legmagasabb áron tudja értékesíteni. A vizsgált 5 hetes időszakban az üzemcsarnok és a benne működő gépek amortizációja, valamint egyéb, a termelés mértékétől független költségek összesen 400 ezer Ft-ot tesznek ki. A nyilvánvaló cél olyan termelési szerkezet kialakítása, amely a kapacitáskorlátok betartása mellett az adott időszakban a maximális nyereséget biztosítja.
A megoldáshoz többféle úton is eljuthatunk: Megvizsgálhatjuk a termékek gazdaságosságát egyenként. Pl. mi a helyzet, ha a gyár csak polcokat akar gyártani. Hány polcot gyártsanak, hogy a nyereség maximális legyen? A példában a bevétel és az összes költség is a termelt mennyiség lineáris (elsőfokú) függvénye. Ha a gyártandó polcok számát x 1 jelöli, akkor a bevétel: 9600 x 1, az összes költség: 8400 x 1 + 400 000. Mivel a bevétel és a változó költség különbsége - a fedezet - 1200 Ft, ezért a termelést addig kell növelni, amíg a kapacitások megengedik. A termelés növelésekor először a 300 munkaóra fogy el, ezért csak 300 db polc állítható elő.
Az ábrán a bevétel és költségek alakulása látható a legyártott polcok számának függvényében eft. 2000 teljes költség 500 100 200 300 óra
Látható, hogy a munkaórák korlátossága miatt a vizsgált időszakra eső fix költségek kizárólag polc gyártásával nem térülnek meg, hiszen: 300 db 1200Ft = 360 000 Ft. Ha csak asztalt gyártanak, akkor az erőforrások közül először a faforgácslap fogy el, mégpedig 250 db asztal elkészítése után. A keletkező nyereség a fix költségek levonása után 50.000 Ft. Szekrény a szükséges munkaórák mértéke miatt csak 75 db készíthető, ezért csupán ezt gyártani veszteséges vállalkozás. Ha tehát a gyár csak egyetlen terméket állítana elő, akkor legfeljebb asztalok gyártásával foglalkozhatna. Egy termék gyártásakor azonban általában egyetlen erőforrás fogy el először, ekkor a többiből még rendelkezésre áll bizonyos mennyiség. Ritkán fordul elő, hogy két vagy több erőforrás egyszerre fogy el. A példában a polcokból és szekrényekből a nagyobb mennyiség gyártását a munkaórák, az asztalokból a faanyag szűkössége akadályozta.
Ha 250 asztal helyett csak 249-et készítenek, akkor még két polcot is lehet gyártani. Az anyag most is pontosan elfogy, mivel két polchoz pontosan annyi faanyag kell, mint egy asztalhoz. Több gép- és munkaórára lesz ugyan szükség, de ezekből még vannak tartalékok, nem lépik túl a megengedett kereteket. A fedezet a cserével nő, hiszen két polcon ez összesen 2400 Ft, tehát 600 Ft-tal több, mint egy asztalon. Látható, hogy több termékféle kombinációjával mód nyílik a fedezet további növelésére. Sajnos több száz termék esetén nehéz lenne hasonló összefüggéseket felfedezni, ezért a megoldás keresése helyett modellt fogalmazunk meg és azt oldjuk meg. Legyen: x 1 = a gyártandó polcok száma, x 2 = a gyártandó asztalok száma, x 3 = a gyártandó szekrények száma.
Az összes nyereséget úgy írhatjuk fel, hogy a termékenként számított fedezet összegéből levonjuk a fix költséget. A nyereséget az alábbi háromváltozós függvénnyel írhatjuk fel: 1200 x 1 + 1800 x 2 + 3000 x 3 400 000 Ennek a maximumát kell megkeresni az olyan [x 1, x 2, x 3 ] számhármasok halmazán, amelyek megvalósítható - azaz kapacitás-korlátokat túl nem lépő - termelési programokat reprezentálnak.
A maximum helyét az adott időszakra eső fix költség nem befolyásolja, ezért figyelmen kívül hagyható. A célfüggvény tehát: z = 1200 x 1 + 1800 x 2 + 3000 x 3 ennek maximumát kell megkeresni (itt a célfüggvény együtthatói a termékek aktuális fedezetei). A kapacitáskorlátok túllépését három egyenlőtlenség teljesülésének megkövetelésével akadályozzuk meg. A feltételes szélsőértékfeladat felírása: max z = 1200 x 1 + 1800 x 2 + 3000 x 3 feltéve, hogy 3x 1 + 6x 2 + 15x 3 1500 5x 1 + 8x 2 + 25x 2150 3 x 1 + x 2 + 4x 300 3 x 1, x 2, x 3 0
Mivel a fenti modellben: - a feltételrendszer függvényei lineárisak, - a változók folytonosak, - a célfüggvény is lineáris, ezt a feladatot lineáris programozási feladatnak nevezzük. A feladat megoldható pl. az ún. szimplex módszerrel, vagy táblázatkezelő program megfejtő eljárásával, vagy WinQSB programmal Például:WINQSB\LP- ILP.EXE Például: lin_termprogr.xls
2. Szállítási feladat Három pályaudvaron 30, 25 és 21 db egyforma vasúti kocsi áll, amelyet négy másik pályaudvarra kell átcsoportosítani, amelyek igénye 15, 17, 22 és 12 db. Az i-edik helyről a j-edik pályaudvarra a fajlagos szállítási költséget az alábbi táblázat mutatja: feladó helyek rendelési helyek r1 r2 r3 r4 f1 2 5 8 1 f2 2 2 4 4 f3 8 8 1 3 Hogyan szervezzük meg a szállítást, hogy a szállítási összköltség minimális legyen?
2. Szállítási feladat Jelölje x ij az i-edik helyről a j-edik helyre szállított mennyiséget. A modell feltételrendszerének biztosítani kell, hogy - minden állomásról legfeljebb annyit vigyünk el, mint az ott lévő mennyiség, - minden fogadóhely igényét elégítsük ki. A modell feltételrendszere: x 11 + x 12 + x 13 + x 14 30 x 11 + x 21 + x 31 15 x 21 + x 22 + x 23 + x 24 25 x 12 + x 22 + x 32 17 x 31 + x 32 + x 33 + x 34 21 x 13 + x 23 + x 33 22 x 14 + x 24 + x 34 12
2. Szállítási feladat A célfüggvény a szállítási összköltséget adja: z = 6x 11 + 2x 12 + 6x 13 + 7x 14 + 4x 21 + 9x 22 + + 5x 23 + 3x 24 + 8x 31 + 8x 32 + 1x 33 + 5x 34 min Például: szállításiprogr.xls Például: NET.EXE