KÜLÖNBÖZŐ GÉPEKEN MEGHATÁROZOTT SORRENDBEN MEGMUNKÁLANDÓ GYÁRTMÁNYOK
GYÁRTÁSI ÜTEMTERVÉNEK MEGHATÁROZÁSA HEURISZTIKUS MÓDSZERREL
DR. PERGE IMRE
(Közlésre érkezett: 1973. december 3.)
1. Bevezetés
Az eltelt 20—25 év alatt sok, a gyakorlatban előforduló, operáció- kutatási probléma standard matematikai módszerek (lineáris programo- zás, egészértékű programozás stb.) segítségével megoldást nyert. E mód- szerek alkalmazását azonban a m a t e m a t i k a és a számítógépek fejlettségi foka korlátozza. Ilyen korlátozó tényező például:
— az ismert modell nem algoritmizálható, vagy még nem ismeretes az algoritmusa,
— a számítási eljárás annyira számítógép-igényes, hogy meghaladja a rendelkezésre álló számítógép kapacitását, vagy elfogadható időn belül nem vezet el a probléma megoldásához.
— a probléma egyetlen lehetséges megoldása is komoly nehézségeket okoz és a célfüggvény sem fogalmazható meg egyértelműen stb, Ilyen esetekben az ún. heurisztikus módszer alkalmazása válik szük- ségessé.
A heurisztikus módszer lényeges vonása, hogy az adott probléma megoldását egy terv kontsruálása ú t j á n keressük és lépésről lépésre dön- tünk a következő tervezési elemről. Minél gondosabb és célszerűbb az un. előrehaladási stratégiánk, annál jobb megoldást kapunk.
A heurisztikus eljárások általában bonyolult és a gyakorlatban igen je- lentős problémák megoldására készülnek.
Ebben a cikkben egy — a gyakorlatban is bevált — heurisztikus eljá- rást ismertetünk, az úgynevezett gépterhelési probléma megoldására, pon- tosabban különböző gépeken, meghatározott sorrendben megmunkálandó gyártmányok gyártási ütemtervének meghatározására.
2. A feladat matematikai megfogalmazása
Azoknál a vállalatoknál, ahol egy-egy időszak gyártmányválasztéká- nak megfelelően, a gyártmányokat megadott határidőkre kell elkészíteni.
. 3 3 5
gondos tervező m u n k á t kell végezni annak érdekében, hogy a rendelke- zésre álló idő alatt és gépeken a m u n k a a lehető „leggazdaságosabban", vagy egyáltalán elvégezhető legyen. G y a k r a n előfordul, hogy egyes gépek állnak, mert m é g a gyártmányok ezen a gépen nem kerülhetnek meg- munkálásra, m á s gépeknél viszont a gyártmányok megmunkálásra várva torlódnak. Azzal, hogy m e g a d j u k az optimális termelési tervet még n e m i s m e r j ü k a g y á r t m á n y o k ütközésmentes gyártási ütemtervét és a gépek terhelését.
Gyakori probléma a következő tervezési, ütemezési f e l a d a t : Egy meghatározott időszakban (hónap, félév stb.) adott
Sk , (k = 1, 2, . . . , n) gyártmányokat, adott
Gi , (i = 1, 2 s)
gépeken kell meghatározott időre legyártani. Minden Sk g y á r t m á n y el- készítéséhez meghatározott
Tk , (k = 1,2, . . . , n) idő (pl. napokban) áll rendelkezésre.
Minden gépet és g y á r t m á n y t az index számával, mint kódszámmal jellemezhetjük. Minden g y á r t m á n y megmunkálása közben megadott sor- rendben végighalad bizonyos gépeken. A gyártmányok elkészítését m u n k a - folyamatokra b o n t h a t j á k , mégpedig minden gyártmány gyártását annyira, a h á n y gépen megmunkálásra kerül. Egy munkafolyamat egy g y á r t m á n y megmunkálását jelenti egy gépen. Jelöljük a gyártmányoknak éppen az adott sorrendben felbontott m u n k a f o l y a m a t a i t
Ej , (j = l , 2 , . . . , m)
-vei, ahol ha fk a k-adik g y á r t m á n y munkafolyamatainak a száma, akkor
n k = l
az összes m u n k a f o l y a m a t o k száma.*
Az Ej m u n k a f o l y a m a t n a k az alábbi két követelményt kell kielégí- teni :
* Számítástechnikai meggondolásból a m a t e m a t i k á b a n szokásos kétindexes jelölés helyett, az egyindexes jelölési f o r m á t alkalmazzuk.
a) Az Sk g y á r t m á n y t adott munkafolyamatokkal (adott gépeken), adott sorrendben kell elkészíteni. Tehát minden egyes Sk gyárt- mányhoz tartozik az 1, 2, . . . , s számoknak egy jól meghatározott fk osztályú variációja, amelyből egyértelműen meghatározhatók a k-adik g y á r t m á n y legyártásához szükséges gépek, és azok sor- r e n d j e .
b) Az Ej munkafolyamatot a Gj gépen kell elvégezni, t j idő alatt (megmunkálási idő pl. percekben).
Jelölje gj a j-edik munkafolyamathoz rendelt gép indexszámát, és végül Mj , (i = 1, 2, . . . , s) azt, hogy az i-edik gép h á n y m ű - szakban üzemel. 1 ^ Mi ^ 3.
Az Ej munkafolyamatok ütemezésénél ügyelni kell arra, hogy egy g y á r t m á n y t sem lehet valamely gépen megmunkálni mindaddig, amíg az előzőn m u n k á b a n van, továbbá egyetlen gép sem lehet duplán terhelve.
Azonos m u n k a f o l y a m a t elvégzésére egy gép áll rendelkezésre, vagyis egy folyamat realizálásához pl. egy fúrógépet, egy esztergapadot stb. haszná- lunk és egyetlen g y á r t m á n y sem kerül vissza u g y a n a r r a a gépre.
Tekintsük a m u n k a f o l y a m a t o k egy lehetséges d ütemezését és jelöl- jük dj-vel a j-ediknek beütemezett m u n k a f o l y a m a t indexét. Tehát a d j számok az 1, 2, . . . , m számok egy permutációját alkotják és ez a permu- táció egyértelműen meghatározza a munkafolyamatok ütemezését.
Az előírások figyelembevételével az ütemezés alapján meg kell ha- tározni minden G, gépre (i = 1, 2, . . . , s) a megmunkálási sorrendet, vagyis mindazon
Ej - k a t
J <c
ahol
g j «= i' ( « = 1, 2, /*),
továbbá ezen munkafolyamatok kezdési és befejezési idejét, amelynek alapján m á r az egyes gyártmányokhoz tartozó m u n k a f o l y a m a t o k és azok kezdési és befejezési ideje is meghatározott.
Az optimális megoldást többféleképpen is m e g f o g a l m a z h a t j u k :
— a gépek m u n k a f o l y a m a t o k közötti üresjárása legyen minimális,
— a teljes gyártási idő legyen minimális,
— a betartandó határidők késése legyen minimális stb.
Mi ezek közül az elsőt választjuk, de csak m i n t szempontot, tekintet- tel arra, hogy a heurisztikus módszerek csak szuboptimális megoldást szolgáltatnak és az optimalizálásra csak utalunk, mivel nagyszámú gép és g y á r t m á n y esetén a probléma egyetlen lehetséges megoldásának létre- hozása is komoly nehézségeket okoz.
3. Az algoritmus
1. lépés. A megadott információk alapján a gyártást m u n k a f o l y a m a - tokra bontjuk, azaz sorszámozzuk.
21* 3 3 7
j = 1, 2, . . . , m ; m = ,
k = 1
és egyúttal feljegyezzük a gyártmányok
к h=l
befejező és bk = vk — fk + 1, (k = 1, 2, . . . , n)
kezdő m u n k a f o l y a m a t á n a k sorszámát, valamint az egyes m u n k a f o l y a m a - tokhoz rendelt gépek gj indexszámát és azok elvégzéséhez szükséges t j időket órákban kifejezve.
Ha a gépek nem azonos műszakszámban dolgoznak, akkor
értékeit vesszük figyelembe, amivel a problémát egy műszakos üzemelés- re vezetjük vissza, és egységesen napi 8 órás terheléssel számolhatunk.
2. lépés. A d j u n k egy A változónak nagy értéket, (pl. A = 8 000 000).
Meghatározzuk az egyes gyártmányok elkészítésére fordítható idők figye- lembevételével mindenegyes g y á r t m á n y n á l a soronkövetkező m u n k a f o - lyamatokra még rendelkezésre álló időket „a", azaz k = 1, 2, . . , , n-re el- végezzük az alábbi számításokat.
vk
i = bk
A legkisebb „a" é r t é k meghatározása végett ha a < A . akkor feljegyezzük a ,,k" és „ bk" értékét, q = к és e = bk, A = a.
Megjegyzés: A bk sorszámú m u n k a f o l y a m a t lesz az a soron következő te- vékenység, amelyhez a legkevesebb idő áll rendelkezésre, így feltétlenül ezt kell beütemezni. Előfordulhat, hogy az említett listában többhöz is tartozik legkisebb időpont. Ilyen esetben ú j a b b „elsőbbségű" lista konst- ruálására nyílna lehetőség, ez azonban a gyakorlatban csak kis valószínű- séggel következhet be, ezért ettől eltekintünk.
3. lépés. A 2. lépést kell végezni
1 = 1 , 2, . . . , m
- r e és minden egyes lépésnél rögzíteni kell a beütemezett tevékenység indexszámát
di = e
és a szóban forgó g y á r t m á n y irdexszámát:
ci = q-
Továbbá, ha e = Vq, vagyis egy g y á r t m á n y befejező tevékenysége, akkor Ta értékét elég n a g y r a változtatjuk (pl. 8 000 000), hogy a q-adik g y á r t - m á n y ú j a b b beütemezésére m á r ne kerüljön sor.
Végül bg értékét eggyel növeljük, annak érdekében, hogy az „üteme- zés" m á r a soron következő m u n k a f o l y a m a t o t vegye figyelembe, ha m a j d - ú j r a a szóban forgó g y á r t m á n y r a k e r ü l sor.
4. lépés. Ebben a lépésben az egyes munkafolyamatok kezdő és befe- jező idejét kell meghatározni (pl. napokban).
Először definiálunk egy m. 6 m é r e t ű W = [Wjj] mátrixot az adatok rögzítésére.
A beütemezett munkafolyamatok mindegyikére, vagyis 1 = 1 , 2,. . . , m - r e v é g r e h a j t j u k az alábbiakat. Jelölje xk (k = 1, 2, . . . , n) a k-adik g y á r t m á n y r a m á r beütemezett időt és y, (i = 1, 2, . . . , s) az i-edik gép m á r beütemezett terhelési idejét. A kiindulásnál
xk = 0 és yi = 0
valamennyi k-ra és i-re. Legyen továbbá j = d i , i = gj és к = ci . Ha yi ^ xk, akkor w15 = xk/8 és yi = xk + tj,
egyébként
Wj5 = yi 8 és yj értékét tj-vel növeljük (yi -f- tj).
Ezután az
xk = Yi W1G = Yi/8
meghatározása után, ahol w ^ és
W]ß az 1-ediknek beütemezett m u n k a f o l y a m a t kezdési illetve befejezési időpontja, feljegyezzük a W m á t r i x 1-edik sorába még
wii = j Wj2 — i
W13 = k
wl 4 = t j • Mi értékeit.
5. lépés, i = 1, 2, . . . , s-re i értékének kiíratása után kiválasztjuk a W m á t r i x azon sorait, amelyekben w12 = i-vel ( 1 = 1 , 2, ... , m), és ki- í r a t j u k
W13, W14, W15, WJG
értékeit, (wjg és Wj6 értékei m u n k a n a p r a órára és percre könnyen átalakít- hatók.) Ezek az értékek szolgáltatják az egyes gépek terhelési táblázatát.
6. lépés, к = 1, 2, . . . , n-re к értékének kiíratása után kiválasztjuk a W m á t r i x azon sorait, amelyekre w ^ = k-val ( 1 = 1 , 2, . . . , m) és kiírat- juk
w12, w16 w15, w14,
értékeit, amelyek az egyes gyártmányok elkészítési ütemtervét szolgál- tatják.
22* 339
4. A gépi program
blokkdiagramja START
n . i m:= vn
Í5 : =
> II
_IC X > II _IC X
W1 6 - ő
5. Példa
Az algoritmus működését egy egyszerű példán m u t a t j u k be, ahol a gépek száma s = 4 és a g y á r t m á n y o k száma n = 3. A szükséges adatokat és az ütemezést az alábbi táblázat tartalmazza.
Tk j к cf
ai t. 1 1 2 8 3 4 9 5 6 7 10 11 1 vk bk 15 1
2 3
1 2 3 4
2 5 2
6 8
13 13 A A A A A A A
1 2 4
3 1 25 4
5 6 7
2 4 3 1 2
3 1 3 4
14 14 14 14 14
17 17 18
21 A A 5 7 8 9
7 4 25 8
9 10 11
3 1 2 3 4
5 5 2 1
12 12 12
17 17 17
22 22 22 22 24
3 6 10 11
11 8
A = 8 ООО 000 és az egyszerűség kedvéért a műszakok száma valamennyi gépnél legyen 1 és az idő mértéke a nap.
1. lépés: a szükséges adatokat a táblázatban feltüntettük.
2—3. lépés. 1 = 1 ; A = 8 000 000.
k = l, a = 6, q = l , e = l, A = 6 k = 2, a = 14,
к = 3, a = 12, di = l, с, = 1, b, = 1 = 2; A = 8 000 000.
k = l , a == 8, q = 1, e = 2, A = 8 к = 2, II
k = 3, a = 12, <*a= 2, 0 = 1 , bi = 1 = 3, A — 8 000 000
k = l , a = 13, q = i, e — 3, A = 13
k = 2, a = 14,
k = 3, e = 12, q = з , e = 8, A = 12
d3 = 8, c3 = 3, bg = 9
és így tovább. Az e l j á r á s további része a táblázat alapján világos: 1, dL ér- tékeit és az ütemezést a táblázatban végig f e l t ü n t e t t ü k .
4. lépés: A beütemezett m u n k a f o l y a m a t o k a t két diagramba helyezve szemléltethetjük. A diagram vízszintes tengelyére az időt m é r j ü k fel, a függőleges tengelyre pedig, az egyik diagramban a gyártmányokat, a má-
síkban pedig a gépeket visszük fel (lásd. 1. ábra). A j-edik m u n k a f o l y a - matot jelképező időintervallumot a megfelelő g y á r t m á n y n á l és a m e g f e - lelő gépnél is elhelyezzük A szóbanforgó W m á t r i x a következő
W =
1 2 1 2 0 2
2 3 1 5 2 7
8 1 3 5 0 5
3 4 1 2 7 9
4 4 2 3 9 12
9 2 3 5 5 10
5 3 2 1 12 13 6 1 2 3 13 16 7 2 2 4 16 20 10 3 3 2 13 15 11 4 3 1 15 16 5. lépés
A beütemezett munkafolyamatokat g y á r t m á n y o k r a és gépekre az alábbi ábrán szemléltetjük.
Gyártmányok: 1. ábra
3) 1-
4 5 6 7
10 в
20
6 Gépek:
A munkafolyamatok közötti ü r e s j á r a t -\ 8 nap
2 >
ЗУ 5 10
4у
3 4 I I
11
н 9 nap -I 5 nap
н 3 n a p
összesen 25 nap
Mint látható a gyártás az előírt határidőre befejezhető. Amennyiben az egyes gyártmányok gyártása határidő előtt befejezhető, az egyes idő intervallumok mozgatásával bizonyos optimalizálásra is lehetőség nyílik.
Példánk egy ilyen szuboptimális megoldását a 2. ábrán m u t a t j u k be.
6. A modell gyakorlati alkalmazása
Végül a modell felhasználására teszünk néhány megjegyzést. Az is- mertetett módszert a gyakorlatban is kipróbáltuk a Mátravidéki F é m m ü - veknél (Sirok). A feladat megoldása ODRA—1204 elektronikus számító- gép segítségével történt és p r o g r a m j a ALGOL—60 programozási nyelven
. 3 4 5
2. ábra
A gépek ü r e s j á r a t a 6 napra csökken.
készült. A feladat főbb paraméterei a következők voltak: Az elkészítendő gyártmányok száma 51. (Egy-egy g y á r t m á n y 50—100 db.) Az egyes g y á r t - mányok 8 időnorma szerint megkülönböztethető csoportba sorolhatók, amelyek megmunkálása az alábbi gépeken és sorrendben történik:
_ , „, , Hány műszakban Egyidejűleg h á n y Sorszám Gep, m ű h e l y üzemel db-ot készít
1 Eszterga 3 1
2 Edző I. 3 10
3 Síkköszörű 2 20
4 Univ. köszörű 3 1
5 Furatköszörű 3 1
6 Leppelő 2 1
7 Szerszámköszörű 2 1
8 Lakatos 1 1
9 Edző 2. 3 10
Az egyes munkafolyamatok elvégzése után az átadás-átvétel miatt 24—48 óra időt kell biztosítani. Ismeretes továbbá az egyes szériák leg- későbbi befejezésének határideje. Meghatározandó a szóbanforgó gyárt- mányok féléves gyártási ütemterve. Ez a feladat a közölt algoritmus egy speciális esete, a m e n n y i b e n valamennyi gyártmány ugyanazokon a gépe- ken és ugyanolyan s o r r e n d b e n kerül megmunkálásra.
A feladat megoldási ideje egy óra volt, melynek jelentős része a ki- nyomtatásra fordított idő volt. Külön táblázat készült az egyes gépek ter- helésére, másrészt az egyes g y á r t m á n y o k megmunkálására vonatkozóan (gyártmánykísérő táblázat). Az eljárás segítségével nemcsak ütközésmen- tes ü t e m t e r v elkészítése vált lehetségessé, hanem a gyártási folyamat is jelentősen, közel 17 százalékkal, egy teljes hónappal lerövidült. Külön eredmény még az is, h o g y a legidőigényesebb gép (az eszterga) kapacitá- sát 100 százalékosan sikerült lekötni, tehát nincs üresjárata.
Megemlítjük még, hogy egy ilyen méretű feladat megoldásának még kézi számológépek segítségével sincs reális alapja. (Több évszázad szük- séges egy féléves terv elkészítéséhez.) A számítógép és a módszer alkal- mazása tehát rendkívül jelentős.
I R O D A L O M
[1] K a u f m a n n A: Az o p e r á c i ó k u t a t á s módszerei és m o d e l l j e i . Műszaki Kiadó, 1968.
[2] H e u r i s t i s c h e P l a n u n g s m e t h o d e n . L e c t u r e in O p e r a t i o n s R e s e a r c h a n d M a t h e m a t i - cal Economics. 13. sz. 1969.
[3] M ü l l e r - M e r b e c h : O p e r a t i o n s R e s e a r c h , 1969. V e r l a g F r a n z V a h l e n G m b h , Berlin u n d F r a n k f u r t .
[4] Dr. Csath M a g d o l n a : O p e r á c i ó k u t a t á s . SZÁMOK, B u d a p e s t , 1972.
BESTIMMUNG DES PRODUKTIONSTERMINPLANS FÜR DIE — A N DEN VERSCHIEDENEN MASCHINEN UND IN BESTIMMER REIHENFOLGE ZU BEARBEITENDEN — PRODUKTE, MIT HEURISTISCHER METHODE
Dr. I m r e P e r g e
I n dieser A r b e i t w i r d ein — a u c h in P r a x i s g u t b e w ä h r t e s — h e u r i s t i s c h e s Ver- f a h r e n f ü r die Lösung des M a s c h i n e n b e l a s t u n g s p r o b l e m s b e k a n n t g e m a c h t . Mit Hilfe des m i t g e t e i l t e n A l g o r i t h m u s k a n n n e b e n d e r B e l a s t u n g s z e i t d e r e i n z e l n e n Maschi- n e n a u c h d e r P r o d u k t i o n s t e r m i n p l a n b e s t i m m t w e r d e n . Es ist auch f ü r die Lösung u m f a n g r e i c h e r A u f g a b e n g u t zu v e r w e n d e n .
. 3 4 7