EGY HEURISZTIKA A CARP MEGOLDÁSÁRA. Borgulya István Pécsi Tudományegyetem Közgazdaságtudományi Kar. Összefoglaló

Hasonló dokumentumok
Számítógépes döntéstámogatás. Genetikus algoritmusok

Tartalomjegyzék. Tartalomjegyzék... 3 Előszó... 9

Adatszerkezetek 2. Dr. Iványi Péter

2. Visszalépéses keresés

Algoritmusok bonyolultsága

Az optimális megoldást adó algoritmusok

Gráfelméleti feladatok. c f

Evolúciós algoritmusok

Mesterséges Intelligencia I. (I602, IB602)

Dr. habil. Maróti György

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

SZÁLLÍTÁSI FELADAT KÖRUTAZÁSI MODELL WINDOWS QUANTITATIVE SUPPORT BUSINESS PROGRAMMAL (QSB) JEGYZET Ábragyűjtemény Dr. Réger Béla LÉPÉSRŐL - LÉPÉSRE

angolul: greedy algorithms, románul: algoritmi greedy

Algoritmuselmélet 2. előadás

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Általános algoritmustervezési módszerek

Felvételi tematika INFORMATIKA

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

2. Visszalépéses stratégia

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

értékel függvény: rátermettségi függvény (tness function)

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Képrekonstrukció 9. előadás

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Heurisztikák BitTorrent hálózatok max-min méltányos sávszélesség-kiosztására

Amortizációs költségelemzés

Számítógépes Hálózatok

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

Közösség detektálás gráfokban

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Táblázatok fontosabb műveletei 1

Számítógép hálózatok, osztott rendszerek 2009

Korlátozás és szétválasztás elve. ADAGOLO adattípus

Dinamikus programozás vagy Oszd meg, és uralkodj!

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

értékel függvény: rátermettségi függvény (tness function)

Függvények növekedési korlátainak jellemzése

Társadalmi és gazdasági hálózatok modellezése

Genetikus algoritmusok

Számítógép és programozás 2

Mesterséges Intelligencia MI

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

Totális Unimodularitás és LP dualitás. Tapolcai János

Bevezetés az informatikába

Keresések Gregorics Tibor Mesterséges intelligencia

10. előadás Speciális többágú fák

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Képrekonstrukció 6. előadás

Kereső algoritmusok a diszkrét optimalizálás problémájához

Név KP Blokk neve KP. Logisztika I. 6 LOG 12 Dr. Kovács Zoltán Logisztika II. 6 Logisztika Dr. Kovács Zoltán

Számítógép és programozás 2

Algoritmusok és adatszerkezetek 2.

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Gráfalgoritmusok ismétlés ősz

Algoritmuselmélet 7. előadás

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Intelligens Rendszerek Elmélete IRE 4/32/1

Programozási segédlet

Társadalmi és gazdasági hálózatok modellezése

Dijkstra algoritmusa

2017/ Szegedi Tudományegyetem Informatikai Intézet

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

17. A 2-3 fák és B-fák. 2-3 fák

MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

Intelligens Rendszerek Elmélete. Párhuzamos keresés genetikus algoritmusokkal

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

BASH script programozás II. Vezérlési szerkezetek

Újrahasznosítási logisztika. 7. Gyűjtőrendszerek számítógépes tervezése

Mesterséges intelligencia 2. laborgyakorlat

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Kereső algoritmusok a diszkrét optimalizálás problémájához

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

Mesterséges Intelligencia MI

Programozási módszertan. Mohó algoritmusok

Gauss-Seidel iteráció

Dinamikus modellek szerkezete, SDG modellek

Adatszerkezetek 7a. Dr. IványiPéter

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Algoritmusok bonyolultsága

Struktúra nélküli adatszerkezetek

Vizuális adatelemzés - Gyakorlat. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Termeléstervezés és -irányítás Termelés és kapacitás tervezés Xpress-Mosel FICO Xpress Optimization Suite

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

Algoritmuselmélet 18. előadás

Algoritmusok és adatszerkezetek I. 1. előadás

Operációkutatás. Vaik Zsuzsanna. Budapest október 10. First Prev Next Last Go Back Full Screen Close Quit

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Dinamikus programozás - Szerelőszalag ütemezése

INFORMATIKA javítókulcs 2016

Átírás:

EGY HEURISZTIKA A CARP MEGOLDÁSÁRA A HEURISTIC FOR THE CARP Borgulya István Pécsi Tudományegyetem Közgazdaságtudományi Kar Összefoglaló A CARP (Capacitated Arc Routing Problem) esetén egy úthálózat kijelölt útszakaszait végig kell járni valamilyen szolgáltatást teljesítve (pl. téli utak sózása). A szolgáltatást adott számú, egyenlő kapacitású jármű hajtja végre, melyek egy telephelyről indulnak és oda térnek vissza. Minden útszakasz bejárásához adott költség tartozik, és az útszakasz akárhányszor bejárható. A CARP célja olyan útvonalak meghatározása a járműveknek, hogy minden kijelölt útszakaszt csak egy jármű szolgáljon ki, az útszakaszokra szállított szükséges anyagok mennyisége ne lépje túl az egyes járművek kapacitását, és a járművek össz útvonal költsége minimális legyen. A CARP megoldására egy heurisztikát, egy evolúciós algoritmust (EA) mutatunk be. Az EA egy hibrid, steady-state algoritmus. A szülőt truncation szelekcióval választja ki, és az utód kialakítására csak mutáció műveletet alkalmaz. A mutáció az EVL technikán, egy memória alapú módszeren alapul. Az algoritmust benchmark problémákon ellenőriztük. Első eredményeink jobbak, mint a CARPET módszer eredményei. Kulcsszavak evolúciós algoritmus, kombinatorikus optimalizálás, CARP Abstract In the CARP (Capacitated Arc Routing Problem) there is an undirected network of streets, and on a subset of streets we have to make services (e.g. winter gritting). A fleet of identical vehicles of limited capacity make the services; the fleet is based at a depot and each trip starts and ends at the depot. Each street can be traversed any number of times, with a known reversal cost. The CARP consists of determining a set of vehicle trips of minimum total cost, such that each required street is serviced by one single trip, and the total demand processed by a trip fits vehicle capacity. We present for the CARP a heuristic, an evolutionary algorithm (EA). The EA is a hybrid steady-state algorithm. It uses truncation selection and it uses only mutation for the eration of the descendants. The mutation is based on the EVL technique, that is a memory based method. The algorithm was tested on benchmark problems. Our first results are better than the results of the method CARPET. Keywords evolutionary algorithm, combinatorial optimization, CARP 1

1. Bevezetés A CARP (Capacitated Arc Routing Problem) esetén egy úthálózat kijelölt útszakaszait végig kell járni valamilyen szolgáltatást teljesítve (pl. téli utak sózása, iskolabusz szervezés, postai küldemények kivitele). A szolgáltatást adott számú, egyenlő kapacitású jármű (személy) hajtja végre, melyek egy telephelyről indulnak és oda térnek vissza. Minden útszakasz bejárásához adott költség tartozik, és az útszakasz akárhányszor bejárható. A CARP célja olyan útvonalak meghatározása a járműveknek, hogy minden kijelölt útszakaszt csak egy jármű szolgáljon ki, az útszakaszokra szállított szükséges anyagok mennyisége ne lépje túl az egyes járművek kapacitását, és a járművek össz útvonal költsége, beleértve a köztes, összekötő útvonalak költségét is, minimális legyen. A CARP-ot egy G=(V,EA) gráfon definiáljuk, ahol V a csúcsok halmaza, E az irányítatlan élek, A pedig az irányított élek halmaza. A szolgáltatást m egyenlő C kapacitású jármű hajtja végre, melyek egy telephelyen találhatók (s csúcsban). A szolgáltatást egy R EA részhalmazon kell végrehajtani. Minden (v i, v j ) élhez tartozik egy c ij >0 költség/ úthossz és q i 0 szükséges anyag. Egy útvonalat egy (v 1, v 2,,v k ) vektor ír le, ahol v 1 =v k =s és minden (v i,v i+1 )EA. Az R halmaz választásától függően a CARP különböző változatai léteznek, pl.: ha R=EA, akkor kapacitással adott kínai postás probléma, ha REA, akkor kapacitással adott vidéki postás probléma. Mi a továbbiakban olyan CARP változatot tekintünk, amelyben az A halmaz üres, és R E. A CARP NP-teljes probléma. Megoldására különböző egzakt módszerek léteznek. Ilyenek pl. az egészértékű lineáris programozás, a korlátozás és szétválasztás módszere. Mivel az egzakt módszerek csak kisméretű feladatokon gazdaságosak (élek száma <30), a nagyobb méretű feladatoknál heurisztikákat alkalmaznak. Gyakori heurisztikák a különböző konstrukciós heurisztikák, kereső eljárások és a meta-heurisztikák, mint szimulált hűtés, tabu keresés (TS), evolúciós algoritmus (EA) változatok (etikus algoritmus, hangya kolónia optimalizálás, memetikus algoritmus). Tanulmányunkban egy újabb EA-t mutatunk be a CARP megoldására. Az új EA egy memetikus algoritmus (MA), amelyben egy explicit kollektív memória technikát, az EVL-t adaptáltuk a CARP számára, és használtunk fel a mutációnál (részletesebben Borgulya, 2006, 2008). Az új algoritmus főbb jellemzői: nem használ rekombináció műveletet, speciális mutáció műveletet alkalmaz kétféle változatban: az első esetben a transzformáció valószínűségét az EVL alapján határozza meg, míg a második esetben egy véletlen transzformációt alkalmaz. hatféle különböző sztochasztikus 2-opt helyi kereső eljárás változattal javítja a megoldások minőségét. Az algoritmus működését CARP tesztfeladatokon ellenőriztük. Összehasonlító vizsgálatokhoz a három legjobb eredményt elérő módszert választottuk, és eredményeink jók: második-harmadik legjobb eredményt érte el az új algoritmus. 2

A tanulmány hátralévő részében először a probléma kiválasztásához kapcsolódó motivációról szólunk. Az új algoritmust a 3. fejezet mutatja be. A 4. fejezet a tesztelési eredményeket részletezi, összehasonlítva különböző módszerek eredményét. Az 5. fejezet az összefoglaló. 2. Motiváció A CARP témakörrel feleségem egy kérése kapcsán kezdtem el foglalkozni. Rendszeresen teniszezünk. A játék végén le kell húzni a pályát, és utána a fehér műanyag csíkokból készült vonalakat egy kefével szintén meg kell tisztítani. Ilyenkor a műanyag csíkokon lépkedünk, hogy ne tapossuk össze a már lehúzott salakos pályát. Feleségem régóta kér, hogy számoljam ki a legrövidebb utat a műanyag csíkok tisztításához, hogy ne bolyongjunk feleslegesen a csíkokon. Végül hozzáláttam, hogy megkeressem a matematikai modellt a teniszcsíkok tisztítása mögött. Kiderült, hogy a teniszháló mellett további kis sétáló út engedélyezésével, valamint abból a feltevésből, hogy a kefe a háló közelében van, és oda is kell visszavinni, a tisztítási útvonal meghatározása egy kapacitás nélküli vidéki postás probléma megoldása (legalábbis egy térfelet figyelembe véve). A problémát vizsgálva végül az általánosabb CARP megoldását választottam, melyre egy EA-t fejlesztettem. A kész algoritmus speciális eseteként kaptam végül a teniszpálya vonalak tisztításának útvonalát. Ezt feleségem rafinált megoldásnak találta. 3. Az újalgoritmus Az algoritmus struktúrája Az új memetikus algoritmus (jelölés: B_MA) két fázisból áll. Mindkét fázis egy hibrid EA. Az első fázis egy gyors előkészítő rész, amely az induló populáció minőségét javítja. A második fázis mutációval alakítja ki az utódokat. A B_MA főbb lépései: Procedure B_ MA(t, itt, kn, limit, opt, optp) Kezdő populáció. ECM kezdőértéke /* Első fázis: Do itt -szer Szelekció, helyi keresés, visszahelyezés. Minden kn-ik iterációban: ECM aktualizálás, Duplikált elemek törlése. od. /* M ásodik fázis: Repeat Do kn -szer Szelekció, mutáció, helyi keresés, visszahelyezés. od. ECM aktualizálás, Duplikált elemek törlése, Restart. optp= a legjobb egyed, opt=f(optp) until limit < erációszám end Az alkalmazott paraméterek a következők: 3

t a populáció mérete, itt az első fázis eráció száma, kn minden kn-edik erációban ellenőrizzük az algoritmust, limit maximális erációszám. B_ MA jellemzők A főbb funkciók és jellemzők a két fázisban a következők: Input adatok. Az algoritmus először a V, R, E-R számosságokat, majd a járművek számát és C kapacitását olvassa be. Utána az R, majd E-R halmaz élei következnek. Az éleket folyamatosan sorszámozza 1-től R-ig: a sorszámok tehát csak azon éleket azonosítják, amelyeken szolgáltatást kell teljesíteni. Ha egy él csúcsait felcseréljük, azaz inverz irányban használjuk az élt, akkor a sorszám+1000 kóddal jelöljük az inverz élt. Egyedek. Egy egyed m féle útvonalat ír le. Ez egyes útvonalak kezdete a telephelyről indul, ezt egy további határolóval, a nulla sorszámmal jelöljük. Az útvonal vége ismét a telephely, de ez egyben azonos a következő útvonal kezdetével, így nem jelöljük külön nulla sorszámmal. Az R éleinek eléréséhez szükségesek lehetnek további számozatlan élek az E-R halmazból: ezeket nem jelöljük az útvonalakon, csak figyelembe vesszük az útvonal költségénél. (Ehhez Floyd (1962) algoritmusával kiszámoljuk a legrövidebb útvonalat minden csúcs közt és egy mátrixban tároljuk). Az egyed tehát egy permutációja lesz az R éleinek, valamint a nulla kezdőjelnek m-szer (a ciklikus permutációkat azonosnak tekintjük). Pl. egy három útvonalból álló 10 élt érintő szolgáltatás esetén egy lehetséges egyed: 0 10 3 4 0 5 7 9 0 1 2 6 1008 (ahol 1008 a 8. él inverzét jelöli). Minden útvonal egy járműhez tartozik, melynek kapacitása C. A szállított anyag ellenőrzéséhez így minden járműnél feltételeket kell megfogalmazni: g i (az i-dik útvonalon szükséges anyag C) 0 (i=1, 2,, m). Kezdő populáció. A kezdőpopulációt véletlenszerűen eráljuk, de a populáció első néhány egyedét (kb. 30 egyedet) a következő kép eráljuk. R minden éléhez meghatározzuk a többi él távolságát (csúcsaikat figyelembe véve) és növekvő sorrendbe rendezzük a szomszédos éleket a távolság alapján. E szomszédsági lista alapján választjuk rendre a következő élt e néhány elemnél. Az első élüket véletlenszerűen választjuk, de a következőket már a szomszédsági lista alapján, kiválasztva a legközelebbi, még nem érintett élt. Ha elkészül az él sorozat, útvonalakat vágunk egymás után az él sorozatból figyelembe véve a C kapacitást (végül lehetséges, hogy lesznek üres járművek, vagy lesz egy jármű túl sok anyaggal). Fitnesz függvény. Az algoritmus fitnesz függvénye relatív sorrendet határoz meg az egyedek közt. E fitnesz meghatározásához az f célfüggvényt, amely az útvonalak összköltségét adja, valamint a g i feltételeket használjuk. Mérje D(x) a g i (j=1,2,,m) feltételek megszegésének mértékét: 1/ 2 m 2 D ( x) max{ ( ),0} g j x j 1 4

(Ha egy x egyed lehetséges megoldás, akkor D(x)=0). Jellemezze D(x) és f(x) az x egyedet a következő kép: x jobb egyed y-nál, ha D(x)<D(y). Ha D(x)=D(y), x akkor jobb y-nál, ha f(x)< f(y). Szelekció. Az első fázisban nincs szelekció, az egyedek véletlenszerűen eráljuk. A második fázisban csonkolásos szelekciót alkalmazunk. Mutáció. A mutációt a második fázisban alkalmazzuk. Kétféle transzformáció változat közt választ az algoritmus: a transzformáció valószínűségét az EVL alapján határozza meg (lásd a mellékletben), vagy egy véletlen transzformációt alkalmaz. Mindkét esetben a következő transzformációk valamelyikét alkalmazza: csere, beszúrás, két útvonal egy-egy részletét kicseréli, vagy az él inverzét veszi. ECM aktualizálás. Az ECM az R sorszámozott éleinek, ezen élek inverzeinek, valamint a nulla előfordulási gyakoriságát gyűjti, tanulja a permutáció különböző pozícióin a sikertelen egyedek alapján. Periodikusan a populáció 20 %-t használja fel e célra. Helyi keresés. Az algoritmus hatféle változatát alkalmazza a 2-opt helyi kereső eljárásnak egymás után. A kiválasztott két útszakasz (él) alapján az egyes változatok különböző transzformációkat alkalmaznak. Így a két útszakasz által megadott permutációrészben megfordítja a szakaszok sorrendjét, kicseréli a két útszakaszt, beszúrja a második szakaszt az első után, az útszakasz inverzét veszi, ha az útszakaszok különböző útvonalak részei, akkor az útszakaszokkal induló befejező részét az útvonalaknak kicseréli, ha az útszakaszok különböző útvonalak részei, akkor az útszakaszokkal végződő, induló részét az útvonalaknak kicseréli. Minden 2-opt változat sztochasztikus: ha nem tudja javítani a megoldást, kis valószínűséggel elfogadja a rossz transzformációt. Visszahelyezés. Mindkét fázisban az algoritmus a leghasonlóbb egyeddel hasonlítja össze az utódot (Hamming távolság alapján). Ha az utód jobb, a korábbi egyed helyére kerül. Ha az egyedek száma kevesebb, mint a populáció mérete, akkor az utódot beszúrja új egyedként (restart után). Restart. Ha több mint 300 eráció alatt nem javult a legjobb egyed minősége, akkor a második fázist új populációval folytatja az algoritmus: csak a legjobb egyedek 30%-át tarja meg, a többit törli. Megállási feltétel. Az algoritmus megáll, ha a eráció szám nagyobb, mint limit. 4. Teszteredmények A különböző benchmark feladatok közül DeArmon és Englese 23, 24 feladatát választottuk tesztelésre (http://www.uv.es/~belengue/carp.html). DeArmon feladatai (gdb feladatok) a kapacitással adott kínai postás, míg Englese feladatai (egl feladatok) a kapacitással adott vidéki postás probléma körébe tartoznak. DeArmon feladatai kisméretűek (7-27 csúcs, 11-55 él), Englese feladatai pedig már közepes méretűek 77-140 csúccsal és 98-190 éllel. Az algoritmust Visual Basic-ben programoztuk és Intel Core Duo CPU 2.2 GHz processzoron, 2 GB RAM memóriával, Windows Vista Business operációs rendszer alatt futott. A paraméterek beállításánál komoly segítséget jelentett a járatszervezési problémára fejlesztett algoritmusunk (Borgulya, 2008), melynek több paraméter értékét át lehetett venni. Így a populáció mérete t=90, az első fázis hossza itt=50, az ellenőrzések gyakorisága kn=10. 5

A maximális erációszám függ a probléma nehézségétől, így limit=10000, vagy 20000 értéket használtunk. 1.t áblázat. B_MA eredmények. név AK Hiba % Idő név AK Hiba % Idő LJ LR AT LJ LR AT gdb1 316 0.00 0.00 0.00 0.40 egl-e1-a 3548 0.00 0.00 0.00 45 gdb2 339 0.00 0.00 0.00 2.40 egl-e1-b 4498 0.00 0.60 0.50 246 gdb3 275 0.00 0.00 0.00 0.42 egl-e1-c 5566 0.52 0.98 0.95 203 gdb4 287 0.00 0.00 0.00 0.25 egl-e2-a 5018 0.00 0.17 0.08 264 gdb5 377 0.00 0.00 0.00 5.52 egl-e2-b 6305 0.67 0.73 0.70 340 gdb6 298 0.00 0.00 0.00 0.54 egl-e3-c 8243 1.12 1.84 0.50 1650 gdb7 325 0.00 0.00 0.00 0.46 egl-e3-a 5898 0.00 0.22 0.11 2210 gdb10 344 1.16 2.61 1.70 175.00 egl-e3-b 7704 1.26 1.51 1.34 2360 gdb11 303 0.00 2.64 0.82 251.00 egl-e3-c 10163 1.40 1.92 1.70 1850 gdb12 275 0.00 0.00 0.00 1.30 egl-e4-a 6408 1.19 1.91 1.46 2100 gdb13 395 0.00 0.00 0.00 16.00 egl-e4-b 8884 1.71 2.08 1.88 2820 gdb14 450 1.78 2.66 2.19 12.00 egl-e4-c 11427 3.13 3.75 3.42 7726 gdb15 536 0.00 0.00 0.00 50.00 egl-s1-a 5018 0.00 1.31 1.20 140 gdb16 100 0.00 0.00 0.00 0.35 egl-s1-b 6384 0.47 1.98 1.03 350 gdb17 58 0.00 0.00 0.00 0.19 egl-s1-c 8493 0.29 1.78 0.62 1540 gdb18 127 0.00 0.00 0.00 3.45 egl-s2-a 9824 2.70 2.75 2.71 5297 gdb19 91 0.00 0.00 0.00 0.14 egl-s2-b 12968 4.17 7.43 4.59 12010 gdb20 164 0.00 0.00 0.00 0.51 egl-s3-c 16353 1.85 2.79 2.43 13210 gdb21 55 0.00 0.00 0.00 0.07 egl-s3-a 10143 1.70 2.79 2.29 8055 gdb22 121 0.00 0.00 0.00 5.11 egl-s3-b 13616 2.75 3.42 3.09 13149 gdb23 156 0.00 0.00 0.00 15.23 egl-s3-c 17100 2.33 2.66 2.41 9400 gdb24 200 0.00 0.00 0.00 34.21 egl-s4-a 12143 3.11 4.13 3.55 12561 gdb25 316 0.00 0.85 0.21 81.00 egl-s4-b 16093 2.23 2.29 2.23 3521 egl-s4-c 20375 7.46 10.58 9.42 31030 Átlag 0.13 0.38 0.21 28.50 1.67 2.48 2.01 5503 A B_MA eredményeit az 1. táblázat tartalmazza. A tábla átlagos eredményeket mutat: a kisebb feladatokat hússzor, a közepes méretűeket tízszer futtattuk. A tábla tartalmazza a 6

feladatok nevét (név), az ismert alsó korlátot (AK), az AK-tól való relatív eltérés százalékát (Hiba %) három értéknél: a legjobb megoldásnál (LJ), a legrosszabb megoldásnál (LR) és az átlagos megoldásnál (AT). Végül a legjobb eredmény eléréséhez szükséges átlagos futási idő látható CPU másodpercbe n (Idő). A táblázatban félkövér számok jelzik azon legjobb értékeket, ahol az érték azonos az ismert legjobb megoldással. 2. táblázat. Összehasonlító eredmények. Módszer DeArmon feladatok Hiba % Englese feladatok LJ AT LJ AT CARPET 0.48 3.63 - B_MA 0.13 0.21 1.67 2.01 LPR_MA 0.13 0.15 1.32 1.74 BE_TS 0.13 0.29 1.03 1.54 Végül a 2. táblázat összehasonlító eredményeket tartalmaz. Összehasonlításra a B_MA mellett két TS módszert: CARPET (Hertz et al., 2000) és BE_TS (Brandăoa és Eglese 2008), valamint egy memetikus algoritmust: LPR_MA (Lacomme et al., 2004) választottunk. A táblázat a legjobb eredmények, valamint az átlagos eredmények hibáit mutatja a különböző módszereknél. Megállapítható, hogy a B_MA a DeArmon feladatokon a legjobb módszerek közé tartozik. Az Englese feladatokon a harmadik a rangsorban (de több esetben jobb az eredménye az LPR_MA-nál (lásd Lacomme et al., 2004)). 5. Összefoglalás Tanulmányunkban a CARP megoldására egy heurisztikát, egy memetikus algoritmust (B_MA) mutattunk be. Algoritmusunkat a korábbi módszerektől eltérő megoldás jellemzi: egy memória alapú technikát (EVL) alkalmaz mutációnál és több féle sztochasztikus kereső eljárással javítja az eredményeket. A bemutatott eredmények az algoritmus fejlesztés eső stádiumába tartoznak. A kutatás következő részében célunk az algoritmus minőségének és futási idejének a javítása. A helyi kereső eljárások, valamint a programkód egyszerűsítésével, gyorsításával jobb eredményeket kívánunk elérni. 6. Köszönetnyilvánítás A kutatás az OTKA K 68137 támogatásával készült. 7. Melléklet. Az EVL alapgondolata a következő (Borgulya, 2006, 2008). Tekintsünk egy EA-t, és tegyük fel, hogy az egyed minden változója ugyanazon m diszkrét értéket veheti fel. Tárolja az ECM m x n es mátrix a változók különböző értékeinek gyakoriságát. E mátrixot a populáció néhány legrosszabb egyede alapján aktualizáljuk periodikusan. 7

ECM ij Jelölje a j-dik változó i-dik értékének gyűjtött és tanult gyakoriságát a -ik erációig. Az ECM mátrixot a következő képlettel aktualizálhatjuk: 1 ECMij (1 ) ECMij ECMij ( e. g. 0.2) ECM ahol ij a j-dik változó i-dik értékének gyakorisága a -ik erációban a legrosszabb egyedeket figyelembe véve, és egy relaxációs faktor. Az X utód j-dik változójának mutációs valószínűsége a következő: ECM x j j p j 1 a n j ECM kj k 1 ahol B a legjobb egyedek egyike és If Xj = B j then a j = 1 else a j = 0. Az EVL alapú mutáció a CARP esetén a következő. Legyen X utód és legyen B a legjobb egyedek egyike. Válasszunk véletlenszerűen egy (X j, X j+1) párt, és keressünk jobb értéket a j+1-dik változónak. Jelölje U az X i szomszédsági listájának néhány első elemét (pl. első n/3 élt). Válasszuk az első X z U élt p j+1 valószínűséggel (ha nincs ilyen, akkor egy véletlen X z U élt) : p j1 1 n k1 ECM z ECM z j1 k, j1 a j1 Ezután pl. kicseréljük X j+1 és X z értékeit. Irodalomjegyzék [1] Borgulya I. (2006) An Evolutionary Algorithm for the biobjective QAP. In: Reusch B. (Editor): Computational Intellice, Theory and Applications Advances in Soft Computing, Springer series. pp. 577-586. [2] Borgulya, I. (2008) An Algorithm for the Capacitated Vehicle Routing Problem with Route Balancing. Central European Journal of Operation Research (In print) [3] Brandăoa J, Eglese R. (2008) A deterministic tabu search algorithm for the capacitated arc routing problem Computers & Operations Research 35 1112 1126 [4] Floyd R.W (1962) Algorithm 97, Shortest path, Commun. ACM 5, 345. [5] Hertz A., Laporte G., Mittaz M. (2000). A Tabu Search Heuristic for the Capacitated Arc Routing Problem. Operations Research, 48(1), 129-135 [6] Lacomme P, Prins C, Ramdane-Cherif W.(2004) Competitive memetic algorithms for arc routing problems. Annals of Operational Research 131(1 4):159 85. 8