Kooper´ aci´ o´ es intelligencia (BMEVIMIM135)
H´ azi feladat dokument´ aci´ o
Forg´ acsol´ ou ¨zem ´ agensk¨ oz¨ oss´ ege
Husz´ar Andr´as
[email protected]
2010. j´ unius. 9.
A feladatr´ ol
A konkr´et feladatot k´et ok miatt v´alasztottam. Egyr´eszt, mert kapcsol´odik ¨ all´o laborat´orium t´argyam t´em´aj´ahoz, az On´ m´asr´eszt mert nincs tudom´asom olyan iparban haszn´alt informatikai megold´asr´ol, amivel egy u ¨zem ´elet´et ´es k¨ ul¨onb¨oz˝o gy´art´asi helyzeteket lehetne szimul´alni, holott a termel´es biztons´ag´anak n¨ovel´es´ere ´es kisz´am´ıthat´obb´a t´etel´ere egy´ertelm˝ uen lenne ig´eny. A mai modern megold´asok[1][2] (f˝oleg CAM rendszerek, l´asd a 2. ´abr´an) szinte kiv´etel n´elk¨ ul csak egyetlen gy´art´oegys´egre (pl. esztergag´ep, mar´og´ep, szikraforg´acsol´o g´ep, stb.) f´okusz´alnak, viszont az egyes g´epek optimum k¨ozeli param´etereib˝ol m´eg nem k¨ovetkezik az optim´alis gy´art´as t´enye az u ¨zem eg´esz´ere n´ezve[3][4][5].
1. ´abra. Forg´acsol´ou ¨zem „bel¨ ulr˝ol” H´azi feladatomban egy forg´acsol´ou ¨zem (1. ´abra) ´elet´enek egy-egy szelet´et k´ıs´ereltem meg bemutatni, annak egensk¨oz¨oss´eg´en kereszt¨ ul. Mivel az ¨on´all´o munka els˝odleges c´elja a t¨obb´agenses rendszerek ´es az AgentSpeak nyelvben val´o j´artass´ag megszerz´ese volt Jason platformon, az u ¨zem modellj´et t¨obb helyen is egyszer˝ us´ıtettem u ´gy, hogy annak l´enyege a lehet˝o legkev´esb´e s´er¨ ulj¨on, ugyanakkor a probl´ema megold´asa szeml´eletes maradjon.
´ Agensmodellek A forg´acsol´ou ¨zem modellem egy rakt´arb´ol, tetsz˝oleges sz´am´ u g´epb˝ol, egy u ¨zemvezet˝ob˝ol, egy technol´ogusb´ol, egy min˝os´egellen˝orb˝ol, egy g´epkarbantart´ob´ol ´es egy anyagmozgat´ob´ol ´all. Mag´at a rakt´arat ´es a g´epeket sz´ıvem szerint k¨ornyezeti felt´etelk´ent vettem volna figyelembe, azonban Jason alatt ez n´emileg k¨or¨ ulm´enyesnek bizonyult. A kommunik´aci´o lebonyol´ıt´asa ´es az egyedi grafikus fel¨ uletek mind egyszer˝ ubben megval´os´ıthat´ok, ha azokat mint ´agensek val´os´ıtom meg. A probl´ema term´eszet´et ez a m´odos´ıt´as nem befoly´asolja ´erdemben. Az ´ıgy megval´os´ıtott ´agensek ´es f˝obb tulajdons´agaik a k¨ovetkez˝ok:
Rakt´ ar „´ agens” • Jason-beli n´ev: raktar. • Poz´ıci´o: fix. 2. ´abra. Szimult´an megmunk´al´as szimul´aci´oja CAM rendszerben
• Feladat: 1
alapanyagok
´es
k´eszterm´ekek
t´arol´asa, anyagmozgat´o ´agens ell´at´asa elv´egz´es´ere k´epes. Ezt az inform´aci´ot a techalapanyaggal, min˝os´egellen˝or ´agens ell´at´asa nologiz´al´as sor´an maga a technol´ogus ´agens k´esz munkadarabokkal (3. ´abra). haszn´alja fel, melyeket az u ¨zemvezet˝o ´agens ad ´at neki. A megmunk´al´as sor´an a bemeneti munkadarab tulajdons´agai k¨oz´e beker¨ ulnek az elv´egzett m˝ uveletek is. Amennyiben az adott m˝ uveletet hib´atlanul siker¨ ult v´egrehajtani, u ´gy a m˝ uvelet ´ert´eke 1 lesz. K¨ ul¨onben a m˝ uvelet sikeress´ege egy val´osz´ın˝ us´egi v´altoz´ot´ol f¨ ugg, ami jelen esetben a g´ep megb´ızhat´os´ag´at szimboliz´alja. Tov´abbi befoly´asol´o t´enyez˝o, hogy a megmunk´al´askor a g´ep er˝oforr´asai (pl. h˝ ut˝o-ken˝o folyad´ek mennyis´ege, szersz´am ´el´enek ´allapota, stb.) milyen m´ert´ekben tudt´ak t´amogatni a hib´atlan darab elk´esz¨ ult´et. Ha csak egy er˝oforr´as is a kritikus szint al´a s¨ ullyed, azt a m˝ uveletet a rendszer automatikusan 0 sikeress´eg˝ unek (selejtnek) veszi.
3. ´abra. A rakt´ar grafikus fel¨ ulete
G´ ep „´ agens” • Jason-beli n´ev: pl. eszterga1, maro3, stb.
¨ Uzemvezet˝ o´ agens
• Poz´ıci´o: fix.
• Jason-beli n´ev: uzemvezeto.
• Feladat: a technol´ogus ´agens ´altal meghat´arozott m˝ uveletek (programlista alapj´an) elv´egz´ese a munkat´erbe ker¨ ul˝o munkadarabokon.
• Poz´ıci´o: nincs ´ertelmezve. • Feladat: fel¨ ulet biztos´ıt´asa egy adott alkatr´esz gy´art´as´anak elind´ıt´as´ara, felt´eve, hogy a technol´ogus ´agens k´epes volt technol´ogia meghat´aroz´as´ara az adott gy´art´oi felt´etelek (g´eppark ´es g´epek k´epess´egei) mellett.
Platformra ´erkez´esekor egy „broadcast” u ¨zenettel felk´eri a platform g´epeit, hogy v´alaszukban azonos´ıts´ak magukat ´es t¨ untess´ek fel kepess´egeiket is. A keletkezett g´ep–k´epess´eg 4. ´abra. Egy g´ep grafikus fel¨ ulete p´arokat list´aba f˝ uzve tov´abb´ıtja a technol´ogus Minden g´ep rendelkezik bizonyos k´epess´egekkel, ´agensnek. Egy adott gy´artm´any ind´ıt´as´anak melyek egy´ertelm˝ uen meghat´arozz´ak, hogy az felt´etele, hogy a technol´ogus ´agens k´epes volt adott g´ep milyen r´eszfeladatok (m˝ uveletek) meghat´arozni egy technol´ogiai l´ancot (g´epek 2
(ebb˝ol a szempontb´ol az elj´ar´as „moh´o”). A m´asodik k¨orben a m´asodik legt¨obb m˝ uveletet elv´egezni k´epes g´ep ker¨ ul ki gy˝oztesen, ´es ´ıgy tov´abb, m´ıg el nem fogynak a kioszt´asra v´ar´o m˝ uveletek, vagy a m´elys´egi korl´atba nem u ¨tk¨oz¨ unk. Amennyiben nem siker¨ ul technol´ogi´at ¨ossze´all´ıtani, az elj´ar´as meghi´ usul. A h´azi feladatnak egy´ebk´ent ez a legnagyobb Java-ban ´ırt r´esze.
list´aj´at). Ezt a +technologia(T) esem´eny bek¨ovetkezt´evel ´erz´ekeli, ´es a technol´ogus ´agens ´altal ´atadott programok list´at feldolgozva meghat´arozza a sz´all´ıt´asi u ´tvonalat az anyagmozgat´o ´agens sz´am´ara. Ezzel a momentummal l´enyeg´eben kezdet´et veszi a gy´art´as.
Min˝ os´ egellen˝ or ´ agens
¨ 5. ´abra. Uzemvezet˝ o ´agens grafikus fel¨ ulete
• Jason-beli n´ev: minosegellenor. • Poz´ıci´o: v´altoz´o.
Technol´ ogus ´ agens
• Feladat: elk´esz¨ ult munkadarabok vizsg´alata, ellen˝orz¨ott munkadarabok nyilv´antart´asa, selejtar´any (DPM) sz´am´ıt´asa.
• Jason-beli n´ev: technologus. • Poz´ıci´o: nincs ´ertelmezve. • Feladat: technol´ogia kidolgoz´asa az u ¨zemvezet˝o ´altal meghat´arozott inform´aci´ok (munka, g´epek k´epess´egei) alapj´an. ˝ az egyed¨ O uli ´agens, akinek nincs grafikus fel¨ ulete. Feladata mind¨ossze annyi, hogy a rendelkez´es´ere bocs´atott g´ep–k´epess´eg lista ´es munkadefin´ıci´o alapj´an megk´ıs´ereljen egy j´o technol´ogi´at kidolgozni. Maga az elj´ar´as nem felt´etlen¨ ul optim´alis minden szempontb´ol a g´epek ter´eben, de minimaliz´alja a megmunk´al´ashoz sz¨ uks´eges g´epek sz´am´at. K¨ozvetetten teh´at igyekszik maxim´alisan kihaszn´alni a g´epek k´epess´egeit, azaz min´el univerz´alisabb egy g´ep, ann´al nagyobb es´ellyel vesz majd r´eszt a megmunk´al´as valamely f´azis´aban.
A technologiz´al´o elj´ar´as rekurz´ıv. Minden fut´as elej´en rangsort k´esz´ıt, hogy az adott 6. ´abra. Min˝os´egellen˝or ´agens grafikus fel¨ ulete megmunk´al´asi szinten mely g´epekkel oldhat´o meg a legt¨obb m˝ uvelet. A k¨or „nyertese” bi- A min˝os´egellen˝or ´agens folyamatosan ing´azik zonyosan r´eszt fog venni a megmunk´al´asban, a rakt´ar ´es a m´er´esi hely k¨oz¨ott, ahol az a k´es˝obbiekben m´ar nem t¨or¨olhet˝o a list´ab´ol elk´esz¨ ult munkadarabokat vizsg´alja. Ha tal´al 3
a munkadarab m˝ uveleti list´aj´aban olyat, ami nem felel meg az el˝ozetes megrendel˝oi k¨ovetelm´enyeknek (´ert´eke 0), akkor azt selejtk´ent k¨onyveli el. Minden rakt´arb´ol kivett darabot visszatesz a rakt´arba ´es megjel¨oli, hogy egy darab ne ker¨ ulhessen t¨obbsz¨or is vizsg´alat al´a.
Amikor megmunk´al´as k¨ozben egy g´ep valamely er˝oforr´asa kimer¨ ul, u ¨zenetet k¨ uldhet a karbantart´o ´agensnek, hogy „felt¨oltse” az(oka)t. Ez az u ¨zenet a karbantart´o ´agens meg´erkez´es´eig csak egyszer ker¨ ulhet elk¨ uld´esre. Ha a karbantart´o nem tud azonnal az u ¨zenet k¨ uld˝oj´ehez menni, l´etrehoz egy FIFO v´arakoz´asi sort ´es beilleszti az u ¨zenetet k¨ uld˝o g´epet a sorba. A befejezett karbantart´asi munka ut´an elkezdi bej´arni a v´arakoz´asi sorban szerepl˝o g´epeket.
Felhaszn´al tov´abb´a – m´as ´agensekkel egyetemben – egy move nev˝ u Java-ban ´ırt elj´ar´ast, ami a c´el´allom´as ´es pillanatnyi helye k¨oz¨otti Euklideszi t´avols´aggal ar´anyosan sz´am´ıtja ki A karbantartand´o g´ephez ´erkezve az ´agens a c´el el´er´es´ehez sz¨ uks´eges id˝ot. Ut´obbit egy u ¨zenetet k¨ uld a g´epnek, melyben felsz´ol´ıtja a Threads.sleep(...) h´ıv´assal szimul´alja. karbantartas programj´anak futtat´as´ahoz. A program fut´asa sor´an a p´otoland´o er˝oforr´asokat G´ epkarbantart´ o´ agens a g´epkarbantart´o ´agens biztos´ıtja.
Anyagmozgat´ o´ agens • Jason-beli n´ev: anyagmozgato. • Poz´ıci´o: v´altoz´o. • Feladat: alapanyagok, munkadarabok ´es k´eszterm´ekek sz´all´ıt´asa a rakt´ar ´es a g´epek k¨oz¨ott. Teend˝oje mind¨ossze annyi, hogy az u ¨zemvezet˝o ´agens ´altal megadott rakt´ar–g´ep(ek)–rakt´ar u ´tvonalat j´arja be, azt kiz´ar´olag a fel- ´es lerakod´as idej´ere megszak´ıtva. 7. ´abra. G´epkarbantart´o ´agens grafikus fel¨ ulete
• Jason-beli n´ev: gepkarbantarto. • Poz´ıci´o: v´altoz´o. • Feladat: g´epek er˝oforr´asainak regener´al´asa, hogy azok min´el kevesebb selejtet gy´artsanak.
8. ´abra. Anyagmozgat´o ´agens grafikus fel¨ ulete
4
Ismert hib´ ak
´erdekes megmunk´al´asi helyzeteket, probl´em´akat megfigyelni.
A g´epkarbantart´o ´agens nem ellen˝orzi, hogy v´arakoz´asi list´aj´aban szerepel-e m´ar egy ´eppen bejelentkez˝o g´ep. ´Igy egy hib´as kommunik´aci´os protokollt haszn´al´o g´ep egyn´el t¨obbsz¨or teheti mag´at a v´arakoz´asi sorba, amivel felesleges kisz´all´asokat okozhat a karbantart´onak.
Hivatkoz´ asok [1] Planit Software Limited, http://www.planit.com/ [2] CGTech Ltd.’s Vericut, http://www.cgtech.com/usa/products/
Fejleszt´ esi lehet˝ os´ egek
[3] Dud´as Ill´es, G´epgy´ art´as-technol´ogia I. k¨otet, M˝ uszaki K¨onyvkiad´o, Budapest, 2009.
Egy, a val´os ´elet ´altal ´eletre h´ıvott viszonlag komplex feladat megold´asa sor´an meglep˝oen rugalmasnak ´es hat´ekonynak bizonyult az AgentSpeak nyelv! A Java-val val´o kapcsol´od´as egyes esetekben m´ar probl´em´asnak bizonyult, de mivel a platform akt´ıv fejleszt´es alatt ´all, ez m´eg javulhat a j¨ov˝oben. A fejleszt´es sor´an j´ol j¨ott volna, ha az ´agensek tulajdons´agait grafikus fel¨ ulet¨ uk¨on, fut´as k¨ozben lehetett volna v´altoztatni ´es ez´altal
[4] Dud´as Ill´es, G´epgy´ art´as-technol´ogia II. k¨otet, M˝ uszaki K¨onyvkiad´o, Budapest, 2007. [5] Hans J¨ urgen Jacobs, Optim´ alis forg´acsol´as, M˝ uszaki K¨onyvkiad´o, Budapest, 1981.
5