Professional Documents
Culture Documents
a
Kombinált Járműütemezés és Járműhozzárendelés a Közösségi Közlekedésben
c. projekt keretén belül
Szeged, 2015
1
Köszönetnyilvánítás
TÁMOP-4.2.2/C-11/1/KONV-2012-0004 Nemzeti kutatóközpont fejlett infokommunikációs
technológiák kidolgozására és piaci bevezetésére. A projekt a Magyar Állam és az Európai
Unió támogatásával, az Európai Szociális Alap társfinanszírozásával valósul meg.
2
Tartalom
1. Bevezetés ................................................................................................................................ 5
2. Matematikai alapfogalmak, a felhasznált legfontosabb matematikai módszerek .................. 8
2.1. Gráfok.............................................................................................................................. 8
2.2. Alapvető algoritmusok gráfokon ................................................................................... 12
2.2.1. Szélességi keresés .................................................................................................. 12
2.2.2. Mélységi keresés .................................................................................................... 13
2.2.3. Topológikus rendezés ............................................................................................. 14
2.2.4. Erősen összefüggő komponensek........................................................................... 14
2.2.5. Minimális költségű feszítőfa .................................................................................. 15
2.2.6. Legrövidebb utak problémája................................................................................. 16
2.2.7. Fokozatos közelítés ................................................................................................ 16
2.2.8. Dijkstra algoritmusa ............................................................................................... 17
2.2.9. Bellmann-Ford algoritmus ..................................................................................... 18
2.2.10. Irányított körmentes gráfok .................................................................................. 18
2.2.11. Legrövidebb utak meghatározása minden csúcspárra .......................................... 19
2.2.12. Floyd-Warshall algoritmus ................................................................................... 19
2.3. Hálózati folyamok ......................................................................................................... 21
2.4. Lineáris és egészértékű programozás ............................................................................ 22
2.4.1. A szimplex módszer ............................................................................................... 23
2.4.2. Belsőpontos algoritmusok ...................................................................................... 26
2.4.3. Metszősíkok módszere ........................................................................................... 30
2.4.4. A korlátozás és szétválasztás módszere ................................................................. 31
2.4.5. Lagrange relaxáció ................................................................................................. 33
2.4.6. Megoldó szoftverek ................................................................................................ 35
2.4.7. Oszlopgenerálás ..................................................................................................... 38
2.4.8. A halmazlefedési és halmazosztályozási probléma ............................................... 39
2.5. A dinamikus programozás módszere ............................................................................ 40
2.6. Metaheurisztikák ........................................................................................................... 42
3. A közösségi közlekedés járműütemezési feladata: szakirodalmi áttekintés ........................ 45
3.1 Az egydepós járműütemezési feladat (SDVSP) ............................................................. 46
3.2. A többdepós járműütemezési feladat (MDVSP) ........................................................... 48
3.3 Robusztus járműütemezési feladat ............................................................................ 50
4. Jármütemezési feladat: megoldási módszerek ..................................................................... 51
4.1. A kapcsolatalapú többtermékes hálózati folyam modell ............................................... 51
4.2. Az idő-tér hálózati modell ............................................................................................. 53
4.3. Heurisztikus algoritmusok............................................................................................. 55
5. A javasolt, új jármű-hozzárendelő modell és megoldási módszere ..................................... 58
5.1. A matematikai modell ................................................................................................... 58
3
5.2. A legkisebb negatív költségű eszközfordák generálása ............................................... 62
5.3. A matematikai modell megoldása ................................................................................. 63
5.3.1. A cimkézési algoritmus .......................................................................................... 63
6. Egy kombinált eszköz-emberforda optimalizáló modell ..................................................... 65
6.1. A szubgradiens algoritmus, a Lagrange duális megoldása ........................................... 68
6.2. Az árazási probléma megoldása .................................................................................... 68
6.3. A munkaszakaszok generálása ...................................................................................... 69
6.4. Az emberfordák generálása ........................................................................................... 70
7. Irodalomjegyzék ................................................................................................................... 71
4
1. Bevezetés
A fent vázolt IKT-környezet képezi sok esetben a hatékony logisztikai irányítás szervezett
hátterét (lásd pl. [Meilton2001]), azonban a folyamatban jelen van egy következő lépés is,
amelynek az a feladata, hogy megtalálja a szervezésnek és az üzemeltetésnek azon részeit,
amelyek az operatív műveleti költségek szempontjából csökkenthetők.
5
teljsítését is itt kell kezelni, mint például a vonalak kapacitására, vagy egy-egy járaton a
szolgáltatást ellátó járművek milyenségére is (pl. melyik vonalon milyen időközzel
közlekedjenek alacsonypadlós járművek) lehetnek előírások.
Mindenképpen érdemes megjegyezni, hogy van arra is kísérlet, hogy a stratégiai és a taktikai
tervezést közös, ún. szolgáltatástervezési modellben egyesítsék. Borndörfer
[Borndörfer+2008] vizsgál más kapcsolódó – a szolgáltatástervezés körébe sorolható –
feladatokat (pl. jegyárazás, tarifatervezés és -kialakítás), amelyek az utas-hozzárendelés
kapcsolódó problémái lehetnek, és az utazási igényeket is meghatározhatják.
6
beosztását vizsgáljuk. Ennek egyrészt terjedelmi oka van, másrészt ezt az is indokolja, hogy a
közösségi közlekedési szolgáltató vállalatoknak a stratégiai és taktikai tervezési feladatra
kevés befolyásuk van: ezeket általában más – állami, kormányzati vagy önkormányzati (pl.
városi) – szinten kerülnek meghatározásra. Amennyiben ezek a paraméterek rögzítésre
kerülnek, akkor csak a közlekedési társaságok döntésétől függ, hogy járműflottájukat hogyan
ütemezik, és a járművezetőiket hogyan osztják be műszakokba rövid- és hosszútávon
egyaránt. Az operatív tervezésnek van két fázisa, amelyet a korai rendszerekben elkülönítve
kezeltek. Két különálló fázisban került megvalósításra a tervezés és az ütemezés kezelése.
Megjegyezzük, hogy ennek ellenére a tervezés és az ütemezési fázis, ha nem is szorosan, de
általában mégis hat egymásra annak érdekében, hogy globálisan hatékonyabb (illetve
lehetséges, fízibilis) megoldás legyen nyerhető.
7
2. Matematikai alapfogalmak, a felhasznált legfontosabb
matematikai módszerek
2.1. Gráfok
A vizsgálódások során többször előfordul, hogy a megoldáshoz egy adott halmaz elemeiből
képzett párokkal kell dolgozni. Egy ilyen problémához a gráfelmélet jó modellalkotási
lehetőséget nyújt. Feleltessük meg a halmaz elemeit pontoknak a síkban, a vizsgált pároknak
megfelelő pontokat pedig kössük össze egy éllel. Az élek nem mehetnek keresztül további
pontokon (1. ábra). Egy ilyen rajzot szokás gráfnak nevezni.
Legyen N elemek egy véges halmaza, valamint E az N elemeiből képzett rendezetlen párok –
esetleg üres – halmaza. Irányítatlan gráfnak nevezzük az N és E által meghatározott struktúrát.
Az így létrehozott struktúrát irányítatlan gráfnak nevezzük, és G(N,E)-vel jelöljük, ahol
N=N(G)-t a gráf csúcsainak halmaza (a csúcsokat pontoknak vagy szögpontoknak is szokták
nevezni) és E=E(G) a gráf éleinek a halmaza.
Amennyiben az éleknek irányítást adunk, egyik csúcstól a másikig, azaz minden él rendezett
pár lesz, akkor irányított gráfról, vagy más néven digráfról beszélünk. Akár irányított, akár
irányítatlan gráfról van szó, az i-ből j-be vezető élt (i,j)-vel jelöljük, – az (i,i) élt hurokélnek
nevezzük – az i és j csúcsokat szomszédos csúcsoknak, az i csúcsból kiinduló éleket pedig
8
szomszédos éleknek nevezzük. Azokat a gráfokat, melyekben nem található többszörös él
(többszörös élről beszélünk, ha az i,j csúcsokat több él köti össze) egyszerű gráfoknak
nevezzük, egyéb esetekben általános gráfokról beszélünk. Definiálható továbbá a gráf rendje,
mely N(G) elemeinek száma, amelyet n(G)-vel jelölünk, valamint a gráf mérete, mely E(G)
elemeinek száma, amelynek jelölése: m(G). Az n-ed rendű és m méretű G(N,E) gráfot G(n,m)-
mel vagy Gn,m-mel jelöljük.
0 1 1 1 1
1 0 0 0 1
A 1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 0 0
1 0 0 0 1 0
B 0 1 0 0 0 1
0 0 1 0 0 1
0 0 0 1 1 0
9
Jegyezzük meg, hogy mindkét mátrix definiálható digráfok esetében is, ettől azonban most
eltekintünk, mert célunk annak bemutatása, hogy a gráfok segítségével megoldható
problémák számítógépes környezetbe interpretálhatók.
Számos olyan probléma van a gyakorlati életben, amely gráfokkal jól modellezhető. Egyszerű
gráfokkal megoldható feladatokra jó példa egy úthálózat, melyben azt kell eldönteni, hogy el
lehet e jutni egyik helyről a másikra. Abban az esetben, ha költséget is akarunk számolni, az
egyes élekhez súlyokat rendelhetünk, melyek megadják, hogy mekkora költséggel lehet a gráf
egyik csúcsából egy másik csúcsába eljutni. Azokat a gráfokat, melyeknél a gráf csúcsaihoz
vagy éleihez numerikus értéket rendelünk, súlyozott gráfnak vagy hálózatnak nevezzük.
Tekintsünk éleknek egy (i,j) (j,k) (k,l)… egymáshoz csatlakozó sorozatát, egy ilyen sorozatot
sétának nevezünk a gráfban. Az olyan sétákra, melyekben minden él csak egyszer fordul elő
szokás a vonal elnevezést használni, továbbá azokra a vonalakra, melyek minden csúcson
pontosan egyszer mennek át használatos az út elnevezés. Léteznek olyan vonalak, melyekben
a kezdő és a végpont megegyezik. Amennyiben egy ilyen vonal minden más ponton csak
egyszer megy át, körnek nevezzük. A fenti fogalmak segítségével definiálható az összefüggő
gráf, melynek bármely két pontja között van út. Az úthálózatos példánál csak azt vizsgáltuk,
hogy el lehet e jutni egyik csúcsból a másikba, de azt nem elemeztük, hogy a két csúcs között
milyen útvonalat választottunk. Van-e több megoldás? Ha több út van, akkor melyik a
legkisebb költségű? Stb.
10
2.2. ábra Egy páros gráf kétféle módon lerajzolva
Amennyiben a G(N,E) gráf páros, akkor szokás a G(U,V,E) jelölést használni, ahol
N U V és U V Ø . Az U és V halmazokat szokás a G gráf színosztályainak is nevezni.
Páros gráfok esetében legtöbbször az úgynevezett párosítási feladattal találkozhatunk,
melynek bevezetéséhez szükséges a független élek bevezetése. Egy G gráfban két él akkor
független, ha végpontjaik négy különböző csúcsban vannak. A G gráf éleinek egy M halmaza
párosítás, ha a benne lévő élek páronként függetlenek. Egy G gráf maximális párosítás
méretének meghatározása egy jól ismert optimalizálási feladat, formálisan:
Ha az M párosítás a G gráf összes pontját lefedi, akkor M egy teljes párosítás, vagy 1-faktor.
Az elmúl évtizedek során számos hatékony, polinomális megoldási algoritmust dolgoztak ki
maximális párosítások keresésére.
11
2.2. Alapvető algoritmusok gráfokon
Sok algoritmus alapszik a szélességi keresésen. A program egy sor segítségével fedezi fel a
gráfot, és épít fel egy fát. Induláskor a kezdőpontot feketére színezi, majd a fekete csúcsok
mindegyikének megkeresi a még nem feketére színezett szomszédjait. Ezeket feketére színezi,
és felveszi egy sorba. Miután a fekete csúcs minden szomszédját meghatároztuk, feketére
színezzük. Az algoritmus pszuodókódját a 2.3 ábra mutatja.
Input: G gráf
Output: a gráf alapján egy fát generál
12
2.2.2. Mélységi keresés
Mélységi keresés során az éppen elért, még kimenő élekkel rendelkező csúcs éleit járjuk be.
Ha az összes kimenő élt bejártuk, akkor a csúcs szülőjének kimenő éleit vizsgáljuk tovább.
Ezt addig folytatjuk, míg a kiinduló csúcsból elérhető összes csúcsot fel nem fedeztük. Ezek
után a még meg nem talált csúcsok közül választunk egyet, s megkeressük az innen elérhető
csúcsokat. Ezt ismételjük mindaddig, amíg az összes csúcsot be nem jártuk. Mikor a bejárás
során feketére festjük a csúcsot, az időpontot a pont be változójában tároljuk. A pont feketére
festésének időpontját pedig ki változójában tároljuk.
1 forall the u ∊ V do
2 u.szín = FEHÉR
3 u.apa = Nil
4 endforall
5 idő = 0
6 forall the u ∊ V do
7 if u.szín == FEHÉR then
8 MÉLYSÉGI-BEJÁR(u)
9 endif
10 endforall
Input: u csúcs
Output: a csúcsból elérhető, még fel nem fedezett csúcsok alapján
felépít egy fát
1 u.szín = SZÜRKE
2 u.be = idő
3 idő = idő + 1
4 forall the v ∊ Adj(u) do
5 if v.szín == FEHÉR then
6 v.apa = u
7 MÉLYSÉGI-BEJÁR(v)
8 endif
9 endforall
10 u.szín = FEKETE
11 u.ki = idő
12 idő = idő + 1
13
2.2.3. Topológikus rendezés
Egy G = (V,E) irányított gráf topológikus rendezése a V elemeinek egy olyan sorbarendezése,
hogy ha (u, v) ϵ E, akkor u megelőzi a sorban v-t. Ha a gráf tartalmaz irányított kört, akkor
nincs topológikus rendezése. Az algoritmusnak megfelelően a bonyolultság O(V + E).
Input: G gráf
Output: L láncolt listája a topológikus rendezettségű csúcsoknak
Egy G irányított gráf erősen összefüggő komponense a csúcsok egy maximális U halmaza,
melynek bármely két u és v csúcsára teljesül a következő: u-ból vezet út v-be és v-ből vezet út
u-ba. A gráfot erősen összefüggő komponenseire bontó algoritmus felhasználja a G gráf GT
transzponáltját. A GT -nek akkor és csak akkor éle az (u, v), ha G-nek éle (v, u). Az
összefüggő komponenseket a csúcsok és élek számának összegével arányos bonyolultságú
algoritmussal határozhatjuk meg. A megadott algoritmus tetszőleges végrehajtásával
meghatározhatjuk az összefüggő komponenseket.
Input: G gráf
Output: a gráf alapján felépít egy erdőt, ahol egy fa felel meg egy
komponensnek
14
2.2.5. Minimális költségű feszítőfa
Input: G gráf
Output: Az A tartalmazza a feszítőfát
1 A=∅
2 forall the v ∊ V do
3 HALMAZT-KÉSZÍT (v)
4 endforall
5 forall the (u, v) ∊ E (Súly szerint növekvő sorrendben) do
6 if HALMAZT-KERES(u)!=HALMAZT-KERES(v) then
7 A = A ⋃ {(u, v)}
8 EGYESÍT (u,v)
9 endif
10 endforall
B. Prim algoritmusában használunk egy segédtömböt is, amely azt adja meg, hogy milyen
messze vannak a gyökértől a fában még nem szereplő csúcsok. (Ezt a távolságot kezdetben
végtelenre állítjuk.) Majd sorra átvesszük a fába a legközelebbi csúcsot. Természetesen
ekkor be kell állítani ezen csúcs szomszédjainak távolságát és a távolsághoz tartozó szülőt.
Az algoritmus speciális adatszerkezettel O(E + V ln(V )) lehet.
15
Procedure PRIM-FESZÍTŐFA (G,súly,r)
1 Q=V
2 forall the v ∊ Q do
3 v.kulcs = ∾
4 endforall
5 r.kulcs = 0
6 r.apa = Null
7 while Q != ∅ do
8 u = KIVESZ-MIN(Q)
9 forall the v ∊ Adj(u) do
10 if v ∊ Q and súly(u, v) ≤ v.kulcs then
11 v.apa = u
12 v.kulcs = súly(u, v)
13 endif
14 endforall
15 endwhile
Adott egy G = (V, E) gráf és egy súlyfüggvény, amely az élekhez egy nemnegatív valós
számot rendel. Egy út költsége az utat alkotó élekhez tartozó számok összege. A legrövidebb
út súlya a minimális költségű út költsége. A feladatok természetétől függően más és más
értékek iránt érdeklődünk. A jellemző problémák a következők:
A gráf minden egyes pontjához hozzárendelünk egy valós számot, amely majd az adott
csúcstól mért távolságát fogja tartalmazni. Ezt kezdetben az induló csúcs kivételével
végtelenre állítjuk. Továbbá felépítünk egy fát, mely az apák fele mutató mutatókból áll
össze, melynek a gyökere a kezdő csúcs. A kezdőértékek beállítását a KEZDŐ ÉRTÉK rutin
végzi.
16
Procedure KEZDŐÉRTÉK (G,s)
1 forall the v ∊ V do
2 v.táv = ∾
3 v.apa = Null
4 endforall
5 s.táv = 0
Procedure DIJKSTRA(G,s)
1 KEZDŐÉRTÉK(G,s)
2 S=∅
3 Q=V
4 while Q != ∅ do
5 u = KIVESZ-MIN(Q)
6 S = S ⋃ {u}
7 forall the v ∊ Adj(u) do
8 KÖZELÍT(u,v,súly)
9 endforall
10 endwhile
17
2.11. ábra Dijkstra algoritmusának pszeudokódja
2.2.9. Bellmann-Ford algoritmus
1 KEZDŐÉRTÉK (G,s)
2 forall the i = 1 to |V|-1 do
3 forall the (u, v) ∊ E do
4 KÖZELÍT(u,v,súly)
5 endforall
5 endforall
6 forall the (u, v) ∊ E do
7 if v.táv ≥ u.táv + súly(u, v) then
8 return HAMIS
9 endif
10 endforall
11 return IGAZ
1 KEZDŐÉRTÉK(G,s)
2 forall the u ∊ V a topológikus rendezésnek megfelelően do
3 forall the v 2 Adj(u) do
4 KÖZELÍT(u,v,súly)
5 endforall
6 endforall
18
2.13. ábra A Bellmann-Ford algoritmus pszeudokódja
A soron következő négy algoritmus bemenő adata egy W n × n-es mátrix. Ezen mátrix
főátlójában 0 értékek szerepelnek, míg ha a jelzett két pont között él található, akkor a mátrix
adott pozíciójában az él súlya szerepel, egyébként végtelen. Az algoritmusok kimenete egy
n×n-es mátrix, mely a megfelelő csúcsok közötti távolságot adja. Az ÚTBŐVÍTÉS rutin
minden egyes végrehajtásakor az eddig már kiszámolt utakat egy éllel bővíti. Ha egy, a
főátlójában 0, egyébként végtelen értékeket tartalmazó mátrixból indulnánk ki, akkor ez a
nulla hosszúságú utakat tartalmazná. Az ÚTBŐVÍTÉS rutint kell végrehajtani erre a mátrixra
n−1-szer, miután a gráfban legfeljebb n−1 hosszú út található. Ezzel az algoritmus
bonyolultsága O(V4). Ha a kiinduló mátrix a W, akkor a bővítést csak n−2-szer kell
végrehajtani (LASSÚ-LEGRÖVIDEBB-ÚT). Az útbővítés során egyszer már kiszámolt
útsorozatokat is fel lehet használni, s a D mátrixot nem a W alapján frissítjük, hanem saját
magát használva (GYORSABBLEGRÖVIDEBB- ÚT). Ezzel a bonyolultság O(V3lnV)-re
csökken
19
Function ÚTBŐVÍTÉS (D,W)
2.15. ábra
Az összes csúcs közötti legrövidebb utakat meghatározó algoritmus függvényeinek
pszeudokódjai
20
2.3. Hálózati folyamok
f : E R
f (i, j ) c(i, j ) (i, j ) E
f (i, j ) |(i, j ) E f ( j, i) |( j, i) E 0 i N (G) \ s, t
Általánosságban elmondható, hogy a folyam értéke a forrásból kiáramló anyagmennyiség
illetve a visszaáramló anyagmennyiség különbsége.
A továbbiakban feltesszük, hogy s-be nem lép be él, illetve t-ből nem lép ki él. Ezekben az
esetekben az s-ből kilépő f(s,i) értékek összegét, ahol i N (G) nevezzük a folyam értékének.
Legyen adott egy hálózat és egy r R érték. A feladat egy adott hálózatban eldönteni, hogy
van-e benne r értékű folyam. Az így megfogalmazott problémákat szokás folyamproblémának
nevezni. Definiálható továbbá egy úgynevezett maximális folyamprobléma is, mely egy adott
hálózatban maximális értékű folyamot keres. Ennek a problémának több polinomiális futási
idejű algoritmusa ismert:
Edmonds-Karp-algoritmus,
Goldberg és Tarjan általános előfolyam algoritmusa.
21
egy (s,t,d) hármas, ahol s a forrás, t a nyelő és d R az igény mértéke. Legyen adott egy
(G,c,s,t) hálózat valamint k darab termék. Feladat elvezetni a termékek fn folyamait úgy, hogy
összegük nem haladhatja meg a kapacitásokat, azaz:
fn : E R
k
f (i, j ) f n (i, j ) c(i, j ) (i, j ) E
n 1
a
j 1,..., X
ij x j bi i 1,..., n
x j , bi 0 j 1,..., X , i 1,..., n
c
j 1,..., X
j x j min
22
ahol X a változók halmaza. A minimalizálandó (vagy maximalizálandó, ekvivalens módon
kifejezhetően) kifejezés a célfüggvény. Bizonyítható, hogy az egyenlőségek által
meghatározott halmaz – a lehetséges megoldások halmaza – egy konvex poliédert alkot. A
lehetséges megoldások halmazán a célfüggvényen felvett minimális (vagy maximális) értéket
optimumnak nevezzük, míg azon lehetséges megoldásokat, melyek a célfüggvénybe
helyettesítve az optimumot szolgáltatják, optimális megoldásoknak hívjuk. A feladat
megoldásának egyik klasszikus módszere az úgynevezett szimplex módszer.
a
j 1,...,m
ij x j bi i 1,..., n
x j , bi 0 j 1,..., m, i 1,..., n
c x
j 1,...,m
j j max
𝑎11 ⋯ 𝑎1𝑚
𝐴=( ⋮ ⋱ ⋮ ).
𝑎𝑛1 ⋯ 𝑎𝑛𝑚
𝑎1𝑗
𝐴𝑗 = ( ⋮ ) , 𝑗 = 1, … , 𝑚.
𝑎𝑛𝑗
23
𝑏1
𝑏 = ( ⋮ ).
𝑏𝑛
𝑐 = (𝑐1 , … , 𝑐𝑚 ).
Az 𝐴𝑗 vektorokat tartalmazó
𝐵 = (𝐴𝑘1 , … , 𝐴𝑘𝑛 )
𝐼𝐵 = {𝑘𝑖 |𝑖 = 1, … , 𝑛}
𝑥 = (𝑥1 , … , 𝑥𝑚 )
Ax
iI B
i i b
ha 𝑖 ∈ 𝐼𝐵 , azaz 𝑥𝑖 bázisváltozó.
Belátható, hogy egy 𝑥 ∈ 𝐿 pont akkor és csak akkor extremális, ha x egy bázismegoldás. Ez
alapján a szimplex módszer a következő lépésekből áll:
24
Tegyük fel adott egy B bázis a hozzá tartozó x bázismegoldással. Vegyünk egy 𝐴𝑘 vektort és
vigyük be a bázisba! Ekkor az új bázismegoldásban 𝑥𝑘 értéke már nem nulla lesz. Legyen az
új érték 𝛼. Az eddig bázisváltozók új értékeit a bázismegoldásban jelölje 𝑥𝑖′ , 𝑖 ∈ 𝐼𝐵 . Ekkor
A x A b.
iI B
'
i i k
Ak Ai aik .
iI B
A x A a b.
iI B
'
i i
iI B
i ik
A x Aa A x .
iI B
'
i i
iI B
i ik
iI B
i i
xi' xi aik .
𝑐(𝑥 ′ ) = c ( x a
i i ik ) ck = c x c a
i i i ik ck .
iI B iI B iI B
c a
iI B
i ik ck
25
kifejezés értéke negatív. Ezért a bázisba belépő oszlopvektort úgy kell megválasztani, hogy a
fenti kifejezés értéke negatív legyen. Ha nincs ilyen oszlopvektor, akkor a bázismegoldás
optimális.
A módszer bemutatásához a már ismert, úgynevezett primál feladat mellett a duál feladat
definíciója is szükséges. Ha feltételezzük, hogy a primál problémának n változója van,
amelyhez m nem redundáns feltétel tartozik, akkor a duál feladatnak m változója lesz,
amelyeket π-vel jelölünk. A feltételek száma n lesz. Hogy a duál feladat is egyenlőség
formában legyen, szokásos egy nemnegatív, n dimenziós z vektort használni. Ezek alapján a
primál és a duál feladat az alábbi formába írható.
Primál feladat:
𝑐𝑥 → 𝑚𝑎𝑥
𝐴𝑥 = 𝑏
𝑥≥0
Duál feladat:
𝜋𝑏 → 𝑚𝑖𝑛
𝜋𝐴 − 𝑧 = 𝑐
𝑧≥0
26
1. Az úgynevezett Lagrange módszer használata a korlátokkal rendelkező optimalizálási
probléma korlátok nélküli formára hozásához.
2. Az egyenlőtlenség típusú korlátok logaritmikus függvénnyel történő eltüntetése.
3. A kapott nemlineáris egyenletek Newton módszerrel történő megoldása.
A megoldás során az egyes lépésekben az optimális megoldások egy jól meghatározott utat
követnek, ezért is nevezték el az algoritmust útkövető módszernek.
Primál feladat:
𝑛
𝐿𝑃 = 𝑐𝑥 + 𝜇 ∑ log(𝑥𝑗 ) − 𝜋(𝐴𝑥 − 𝑏)
𝑖=1
Duál feladat:
𝑛
𝐿𝐷 = 𝜋𝑏 − 𝜇 ∑ log(𝑧𝑗 ) − (𝜋𝐴 − 𝑧 − 𝑐) 𝑥
𝑗=1
∑ 𝑎𝑖𝑗 𝑥𝑗 = 𝑏𝑖
𝑗=1
𝑖 = 1, … , 𝑚
∑ 𝑎𝑖𝑗 𝜋𝑗 − 𝑧𝑗 = 𝑐𝑗
𝑖=1
𝑗 = 1, … , 𝑛
𝑧𝑗 𝑥𝑗 = 𝜇
𝑗 = 1, … , 𝑛
A feladat ezek után a fenti n+m lineáris és n nemlineáris egyenletből álló egyenletrendszer
megoldása úgy, hogy közben a μ paramétert 0-hoz tartatjuk. A belsőpontos módszerek
elmélete alapján a megoldás így az eredeti rendszer optimális megoldásához tart.
27
Az egyenletrendszer megoldására a Newton módszert használjuk, így az alábbi algoritmust
kapjuk.
28
Input adatok:
– Az eredeti probléma adatai (A,b,c) formában, ahol A mxn-es mátrix melynek sorai
függetlenek.
– A kezdeti fizibilis primál és duál megoldások : 𝑥 0 > 0, 𝑧 0 > 0, 𝜋 0 .
– Az optimalitás küszöbszáma, 𝜀 > 0 és a lépéshossz paraméter 𝛾 ∈ (0,1).
Az algoritmus:
𝑋 𝑘 = 𝑑𝑖𝑎𝑔{𝑥1𝑘 , … , 𝑥𝑛𝑘 }
𝑍 𝑘 = 𝑑𝑖𝑎𝑔{𝑧1𝑘 , … , 𝑧𝑛𝑘 }
𝑘
(𝑧 𝑘 )𝑇 𝑥 𝑘
𝜇 =
𝑛
Oldjuk meg a következő egyenletrendszert, hogy megkapjuk 𝑑𝑥𝑘 , 𝑑𝜋𝑘 , 𝑑𝑧𝑘 értékét:
𝐴𝑑𝑥 = 0
𝐴𝑇 𝑑𝜋 − 𝑑𝑧 = 0
−𝑥𝑗𝑘
𝛼𝑃 = 𝛾 ∙ min ( : (𝑑𝑥𝑘 )𝑗 < 0)
𝑗 (𝑑𝑥𝑘 )𝑗
−𝑧𝑗𝑘
𝛼𝐷 = 𝛾 ∙ min ( 𝑘 : (𝑑𝑧𝑘 )𝑗 < 0)
𝑗 (𝑑𝑧 )𝑗
5. lépés: Megoldás aktualizálása. Hajtsunk végre egy lépést a megadott irányokban a számolt
lépéshosszal, azaz legyen
𝑥 𝑘+1 = 𝑥 𝑘 + 𝛼𝑃 𝑑𝑥𝑘
𝜋 𝑘+1 = 𝜋 𝑘 + 𝛼𝐷 𝑑𝜋𝑘
𝑧 𝑘+1 = 𝑧 𝑘 + 𝛼𝐷 𝑑𝑧𝑘
29
Elméleti szempontból bizonyították, hogy ahhoz, hogy a megoldás pontosságát 𝜀 0 -ról 𝜀-ra
𝜀0
csökkentsük a legrosszabb-esetben √𝑛𝑙𝑜𝑔 ( 𝜀 ) lépés szükséges. A gyakorlati tapasztalatok
szerint viszont azt mutatják, hogy a konvergencia gyakran független a probléma méretétől és
általában 20 és 80 iteráció elegendő lehet a megfelelő konvergenciához. Az implementáció
legmunkaigényesebb része az egyenletrendszer megoldása a 3. lépésben. A megoldás az
alábbi formulákkal írható le:
30
megoldása nem egész, akkor bővítsük a feladat feltételrendszerét egy további olyan feltétellel,
amelyet az az x nem egész megoldás nem elégít ki, de az egészértékű változat minden
megoldása kielégíti. Így egész megoldást nem veszítünk el, és az új feladatra illetve annak
relaxációjára áttérve, már az x megoldás nem lesz lehetséges, és ezt a lépést ismételve addig,
amíg egész megoldását nem kapjuk az LP relaxációnak egy megoldó algoritmushoz jutunk.
Így az a kérdés merül fel miként tudunk megfelelő vágósíkokat, azaz további feltételeket
generálni. Ennek az egyik legelterjedtebb módszere a Gomory vágás néven ismert eljárás
(Gomory 1958). Az algoritmus első lépésként megoldja a feladat LP relaxációját a szimplex
algoritmus valamely változatával. Amennyiben a kapott megoldás egész, akkor megkaptuk az
egészértékű feladat optimális megoldását is, ellenkező esetben rátérünk az iterációs részre.
Az r-edik iteráció a következőképpen néz ki. Vegyük az első olyan egyenletet, amelyben
valamely xi a bázisváltozóra az egyenlet jobboldala nem egész. Legyen ez az egyenlet:
xi+as1v1+... +asmvm=bs
t(as1)v1+... +t(asm)vm=t(bs)
Gomory-féle metszetet, ahol a t() függvény az adott elem törtrészét jelöli. Megszorozva az
egyenlőtlenség mindkét oldalát -1-gyel, \'es bevezetve egy új ur különbségváltozót az
c x
j 1,...,m
j j max
a x
j 1,...,m
ij j bi i 1,..., n
31
A korlátozás és szétválasztás módszerének lényege, hogy a feladatot szétbontjuk
részfeladatokra, méghozzá olyan módon, hogy a részfeladatok lehetséges megoldásai
diszjunkt halmazokat alkotnak és egyesítésük kiadja az eredeti feladat lehetséges
megoldásainak halmazát. Ilyen felbontás esetén az egyes részfeladatok optimum értékeinek
maximuma éppen az eredeti feladat optimális megoldását adja. A felbontás tetszőleges
mélységig folytatható, vagyis ha már van egy felbontásunk, akkor annak elemeit tovább
bonthatjuk. Az szétbontásokat fával ábrázolhatjuk, amelynek gyökerét az eredeti feladat
alkotja. A módszerben ez jelenti a szétválasztást. A korlátozás megvalósítása olyan módon
történik, hogy minden részfeladathoz egy felső, illetve alsó korlátot számolunk az optimumra.
Amennyiben a kiszámolt felső korlát kisebb, mint a más eddig megismert legjobb alsó korlát,
akkor annak ága biztos nem adhat optimális megoldást, tehát törölhetjük a fából. Kérdés,
hogyan számolhatjuk a korlátokat. Erre lehetőség van a relaxált LP feladat megoldásával,
vagyis elhagyva az egészértékűség feltételt. Ehhez használható a szimplex módszer. A
következőkben ismertetjük a korlátozás és szétválasztás módszerének algoritmusát. Előtte
vezessünk be néhány jelölést. Jelöljön R egy adott részfeladatot. Jelölje OPT(R) az adott
részfeladat relaxált optimum értékét, ami felső korlát az R részfeladat optimum értékére. Az
eredeti feladat legyen R0. Az algoritmus az alábbi:
b. Ha 𝑂𝑃𝑇(𝑅) > 𝐾 és R-nek van egész megoldása, akkor jegyezzük meg ezt a
megoldást és K:=OPT(R).
c. Ha 𝑂𝑃𝑇(𝑅) > 𝐾 és R-nek nincs egész megoldása, akkor tekintsünk egy nem egész
megoldást és valamelyik komponensét (𝑥𝑖∗ ) tekintve válasszuk szét a részfeladatot két
részfeladatra, az 𝑥𝑖 ≤ ⌊𝑥𝑖∗ ⌋ illetve az 𝑥𝑖 ≥ ⌈𝑥𝑖∗ ⌉ feltételek hozzáadásával. A két
részfeladatot hozzáadjuk a fához úgy, hogy a két részfát az R feladathoz kapcsoljuk,
valamint az új részfeladatokat helyezzük el a részfeladatok listájában is.
3. Töröljük R-et a listából. Ha a lista nem üres, lépjünk a 2. lépésre, különben az optimális
megoldás az eltárolt eddigi legjobb megoldás.
32
Célunk ebben az esetben a korlátok minél jobban történő csökkentése lehet. Minden változót
végigvizsgálni, hogy melyik milyen korlátot ad túl időigényes lenne, azért lehetséges hogy
csak néhány lépést hajtunk végre a szimplex módszerrel és ez alapján döntünk. Vagy akár az
is elképzelhető, hogy csak egy lépést teszünk, ekkor rövidebb számolást igényel csak a
döntés.
Végezetül megjegyezzük, hogy a fenti megoldási módszerek meglehetősen elterjedtek, több,
akár ingyenesen is használható szoftver létezik, amelyek az ismertetett módszereket
alkalmazzák. Mi az algoritmusunknál a Symphony nevű programot használjuk.
max cx
feltéve, hogy
Ax b
Dx d
feltéve hogy x X .
Mint látható az eredeti feladat nehéz feltételét beépítettük a célfüggvénybe, így azt
meglazítottuk, idegen szóval relaxáltuk. Nyilvánvaló, hogy ha az eredeti feladatnak van
optimális megoldása, akkor a Lagrange-feladat optimális megoldása felső korlátja lesz ez
előbbinek minden 0 -ra, mivel az új feladat lehetséges megoldásainak halmaza bővebb.
Érdemes megkeresni a lehető legjobb felső korlátot, mivel ezzel tudjuk legjobban
megközelíteni az eredeti feladat optimumát a módszer segítségével. L() tekinthető
függvénynek, amiről belátható, hogy konvex és szakaszonként lineáris. Célunk tehát a
következő optimalizálási feladat megoldása:
33
min L() ,
ahol 0 .
34
2.17. ábra A szubgradiens szemléletes jelentése egyváltozós Lagrange függvény esetén
GLPK (GNU Linear Programming Kit) [Makhorin, 2000]: ANSI C nyelven íródott
program, amely meghívható könyvtári függvények formájában áll rendelkezésre. A GLPK
csomag a következő fő komponensekből áll:
1. primál and duál szimplex módszer,
2. primál-duál belsőpontos módszer,
3. branch-and-cut módszer,
4. átalakító a GNU MathProg programhoz,
5. alkalmazás programozási interfész (API),
6. önálló LP/MIP megoldó.
LPSOLVE[Berkelaar et al., 2004]: Egy másik ANSI C nyelven íródott program, amely a
módosított szimplex módszert használja LP feladatoknál és korlátozás és szétválasztás
módszert egészértékűekre. Meghívható könyvtári függvényeket tartalmaz. A legfontosabb
jellemzői az alábbiak:
1. kevert egészértékű (MILP) megoldó,
2. nincs korlátozás a modell méretét illetően,
3. támogatja az egészértékű változók használatát,
4. képes úgynevezett MPS és LP formátumú adatok beolvasására,
5. a modellek felépíthetők a memóriában, állományok használata nélkül,
6. van alkalmazás programozási felülete (API) ,
7. könnyen hívható más programozási nyelvekből,
8. tartalmaz érzékenységvizsgálatot.
35
A fenti programok objektumorientált programozási technológiával készültek, meghívható
könyvtári rutinok formájában érhetők el, de önálló alkalmazásként is futtathatók. A CLP
alapvetően a szimplex algoritmust tartalmazza. A SYMPHONY különböző LP megoldókat
tud használni, alapértelmezésben a CLP-t tartalmazza.
Mind a szekvenciális, mind a párhuzamos változatait tartalmazza a szétválasztás és vágás
módszernek, amely a szétválasztás és korlátozás módszeréhez hasonló, de tartalmaz speciális
vágósík módszereket. A problémák felépíthetők a memóriában, vagy beolvashatók file-ból,
kezelni tudja az MPS és LP formátumokat. Lehetőség van arra is, hogy a megoldandó
probléma sajátosságait figyelembe véve a programozó saját eljárásokat építsen be, például
speciális vágósíkok előállítására, azonban ehhez megfelelő szakértelem szükséges. Alapszintű
problémák megoldására a beépített módszerek jól használhatók.
Cplex [IBM, 2012]: Az IBM ILOG CPLEX Optimization Studio, amit gyakran röviden
csak Cplex-nek neveznek, egy üzleti célú megoldó nagy méretű kevert egészértékű
matematikai feladatok megoldására. A Cplex-et az IBM folyamatosan fejleszti. Különböző
csatlakozási lehetőségekkel rendelkezik, így többféle programnyelvből használható, de önálló
megoldóként is működik.
Xpress [Fico, 2012]: The Xpress Optimization Suite (vagy röviden Xpress) másik üzleti
megoldó, amely különböző számítógépes platformokon is rendelkezésre áll. Szintén többféle
programnyelvből használható, hívható könyvtári függvények formájában. Önálló
megoldóként is működik.
Gurobi [Gurobi Optimization Inc., 2012]: A Gurobi Optimizer egy modern megoldó
lineáris és nemlineáris kevert egészértékű optimalizálási problémák megoldására. C nyelven
készült, különböző számítógépes platformokon is rendelkezésre áll. Többféle
programnyelvből használható, hívható könyvtári függvények formájában, illetve önálló
megoldóként is.
36
A következő ábrák a különböző megoldók által elért futási időket, valamint a megoldott
tesztfeladatok arányát mutatják százalékosan, az egyes megoldókra. Az SCIP 3 különböző LP
megoldóval szerepel (SCIP-C: Cplex, SCIP-L: CLP, SCIP-S: SoPlex). Az adatok Meindl és
Templ kutatási jelentésen alapulnak.
Megoldás ideje
25
20
15
10
0
GUROBI XPRESS CPLEX SCIP-C SCIP-S SCIP-L CBC LP SOLVE GLPK
37
2.4.7. Oszlopgenerálás
cj a u b
i 1...n
ij i i
min j 1... X c j aij ui 0 ,
i 1...n
akkor minden oszlopnak pozitív redukált költsége van. Szokták ezeket a költségeket
árnyékáraknak is nevezni, és a minimalizálási feladat az ún. pricing probléma. Ezért
elegendő ezt a feladatot megoldani, nem szükséges, hogy az összes oszlopot egzaktan
ismerjük, és a szükséges bázistranszformációkat minden oszlopra elvégezzük. A megoldás
eredményeképpen az algoritmus következő lépéséhez szükséges oszlopok generálhatóak
implicit módon ezen optimalizálási probléma megoldásával.
38
járműútvonal tervezés és a vasút tervezés területén, ahol gyakran előfordul, hogy a feladatban
az oszlopok száma igen nagy. Ezt a módszert alkalmazzuk mi is az algoritmusunknál.
Adott egy U = {u1, u2, …, un} halmaz, és nemüres részhalmazainak egy S = {S1, S2, …, Sm}
rendszere. E részhalmazok rendelkeznek súlyokkal is. Jelölje ezeket c1, c2,…, cm ≥ 0. A
halmazlefedési probléma esetén U egy minimális súlyú lefedését határozzuk meg, ahol F ⊆ S
egy lefedés, ha ⋃SjF Sj=U. A probléma az alábbi módon írható fel egy 0-1 egészértékű
programozási feladatként. Legyen 1 ≤ i ≤ n és j{1,2,…,m} indexekre
1, ha u i S j
aij
0, különben
valamint
1, ha S j F
xj
0, különben
a x
j 1
ij j 1 i 1..n
x j 0,1 j 1..m
m
c x
j 1
j j z min
Hasonló feladatot kapunk, ha lefedés helyett U egy minimális súlyú osztályozását keressük.
Ekkor F ⊆ S egy osztályozás, ha az egyben lefedés (⋃SjF Sj = U) és pakolás is (Sj ∩ Sk ≠ ∅)
bármely Sj, Sk F , j ≠ k , esetén.
39
m
a x
j 1
ij j 1 i 1..n
x j 0,1 j 1..m
m
c x
j 1
j j z min
Érdemes megfigyelni, hogy a két probléma matematikai modellje csak látszólag azonos. A két
feladatban az S halmazrendszerek eltérnek egymástól, és ezért a két feladat is különbözik. A
halmazlefedési- és osztályozási feladatokról bővebb információ a [Du+1998]-ban olvasható.
Mindkét probléma a klasszikus NP-teljes problémák közé tartozik [Karp1972]. A feladatok
lineáris programozási relaxációját úgy kapjuk, hogy az xj {0,1} feltételt az xj ≥ 0 feltétellel
helyettesítjük. Az így kapott relaxáció megoldására általánosan a branch-and-bound módszer
használható. Míg azonban a hagyományos branch-and-bound technika alkalmazása a feladat
egyes szimmetrikus eseteinél nem hatékony, addig egy oszlopgeneráláson alapuló algoritmus
esetén a halmazosztályozási feladat jól alkalmazható master problémaként. A kombinatorikus
optimalizálási feladatok többsége megadható halmazosztályozási problémaként, és a
szakirodalomban található branch-and-price (korlátozás és árazás) módszerek többsége is
ilyen feladatok megoldásánál kerül alkalmazásra. Bizonyos problématípusoknál (pl. járművek
ütemezése) hasonló módon alkalmazható a halmazlefedési feladat is. A fenti modellek
alkalmazásáról nagyméretű feladatok oszlopgenerálással történő megoldása esetén további
információ a [Barnhart+1998]-ban olvasható.
40
5. Egy [optimális] megoldás előállítása a 4. lépésben kiszámított (és tárolt)
információkból. Visszafejtéses vagy feljegyzéses módszer.
Érdemes megjegyeznünk, hogy az 1-3 pontok lényegében egy rekurzív algoritmus
megtervezését jelentik. Felmerül a kérdés, hogy mikor lehet és mikor érdemes egy dinamikus
programozási algoritmust használni. Akkor van esélyünk dinamikus programozásra, ha a
megoldandó feladat optimális részstruktúrájú, ami azt jelenti, hogy a probléma egy
részfeladatának optimális megoldása önmagán belül a további részfeladatok optimális
megoldásait is tartalmazza. valójában ez ahhoz szükséges, hogy rekurzív algoritmussal
megoldható legyen a feladat. másrészt a rekurzív algoritmusok gyakran sokszor meghívják
magukat ugyanarra a paraméterre és ilyen esetekben egy teljes algoritmust végigfuttatnak. Ezt
küszöböli ki a dinamikus programozás azzal, hogy nem felülről lefele építi fel rekurzívan a
megoldást, hanem alulról felfele, így nem hajtja végre az ilyen hívásokból adódó, valójában
felesleges számításokat.
8
B C
2
4
3 E 7
A D
2 3 4
F 3 G
41
for each 𝑣 ∈ 𝑉\{𝐴} topológikus rendezés szerint
dist(v) = 𝑚𝑖𝑛(𝑢,𝑣)∈𝐸 (dist(𝑢) + 𝑤(𝑢, 𝑣))
Láthatjuk, hogy a módszer {dist(𝑢): 𝑢 ∈ 𝑉} formájú részproblémákat old meg. A
legegyszerűbbel kezdi, amikor csak az A csúcsot tekinti és nyilvánvalóan ilyenkor az érték 0.
Ezután egyre bonyolultabb részproblémák megoldása szükséges, ahol a bonyolultság attól
függ, hogy hány kisebb részproblémát kell az eredmény megkapásához megoldani. Ez a
dinamikus programozás alaptechnikája, amikot a nagyobb problémák optimális megoldását a
kisebb problémák optimumaiból kapjuk, a közöttük lévő összefüggéseket alkalmazva.
Egy jól ismert feladat a diszkrét optimalizálásban az úgynevezett hátizsák feladat. Egy adott
hátizsákba tárgyakat akarunk pakolni. Adott n tárgy minden tárgynak van egy fontossági
értéke (f(i)) és egy súlya (s(i)) a hátizsákba maximum összesen S súlyt pakolhatunk. Az f(i)),
s(i) és S értékek egészek. Szeretnénk úgy választani tárgyakat, hogy az összfontosság
maximális legyen. Tehát feladatunk, hogy kiválasszuk a tárgyaknak olyan halmazai közül,
amelyekre az összsúly nem haladja meg S-t azt, amelyre maximális az összfontosság.
Definiáljuk az F(i,W) függvényt, minden i=1,...,n,W=0,...,S értékre. Ez a függvény azon
hátizsák probléma optimális függvényértékét adja meg, amelyben a tárgyak listája az első i
tárgyat tartalmazza, és a hátizsák mérete W. Ekkor a kezdeti értékekre F(1,W)=f(1), ha
s(1)≤W és 0 különben. Másrészt a következő rekurzió teljesül:
𝐹(𝑖 + 1, 𝑊) = 𝑚𝑎𝑥{𝐹(𝑖, 𝑊), 𝑓(𝑖 + 1) + 𝐹(𝑖, 𝑊 − 𝑠(𝑖 + 1))},
ha 𝑠(𝑖 + 1) ≤ 𝑊. Továbbá F(i+1,W)=F(i,W), ha s(i+1)>W.
2.6. Metaheurisztikák
42
(ismerjük az adatok eloszlását, szórását, stb), akkor vizsgálhatjuk az algoritmus által
szolgáltatott eredmény optimumtól való eltérésének várható értékét. Ez utóbbi elemzést
átlagos-eset vizsgálatnak (average-case analysis) nevezzük.
Egy metaheurisztikában az alap lokális keresési módszert a következő hármas határozza meg:
A hegymászó eljárás a legalapvetőbb lokális keresési módszer. Alapötlete az, hogy minden
iteráció esetében a lehetséges jobb megoldásokat minden esetben el kell fogadni, át kell térni
rájuk. Ezáltal a lokális környezet „hegycsúcsa” garantáltan elérhető, amely egy lokális
optimumnak felel meg. Az eljárás egy véletlen megoldással indul és minden iterációban kis
változásokkal generálható egy szomszédos megoldás. Amennyiben ez a szomszédos
megoldás jobb, mint a jelenlegi, a szomszédos megoldásra térünk át. Az eljárás kiterjeszthető
„véletlen újraindítással”, amely a lokális optimumból való „kitörést” teszi lehetővé.
A tabu keresés fő ötlete, hogy egy adott pontból való elmozdulást megakadályozzunk egy
olyan pontba, amely korábban már vizsgálva volt. A tabu keresés alapvetően egy hegymászó
eljárás, azonban további stratégiák kerülnek alkalmazásra a lokális optimumokban való
„ragadás” elkerülésére. A szomszédsági struktúra egy úgynevezett tabu listával módosított,
amely a korábban vizsgált megoldásokat tartalmazza.
43
A genetikus algoritmusok a leggyakrabban alkalmazott populáció-alapú módszerek.
Alapötletük, hogy reprodukciót, keresztezést és mutációt alkalmaznak operátorként a
következő iteráció megoldáshalmazának előállítására. A genetikus algoritmusok alkalmasak
módszeresen bejárni a keresési teret, azonban a „jó” megoldások hatékony megtalálásában
nehézkesek.
44
3. A közösségi közlekedés járműütemezési feladata:
szakirodalmi áttekintés
45
Löbel1997]). Ebben a modellben az optimális ütemezést egy egészértékű lineáris
programozási feladat megoldásaként számíthatjuk ki.
46
között végrehajtott rezsimeneteket, így az itt meghatározott β reláció a fent definiált
kompatibilitásnál gyengébb.
Az SDVSP-re több páros gráfon alapuló modellt is publikáltak. Ezekről bővebb áttekintés
található Bunte és Kliewer munkájában [Bunte+2009]. Mi az alábbiakban Bertossi és társai
[Bertossi+1987] megfogalmazását és megoldását ismertetjük, ahol szintén párosítási
problémaként adják meg a feladatot. Vegyünk egy G=(U,W,E) kétrészes gráfot, ahol U és W
csúcshalmazok, E pedig élhalmaz, valamint |U|=|W|=n, és |E|=n2. Tegyük fel továbbá, hogy
E két E1 és E2 részhalmazra osztható, melyek:
E2 = E\E1.
A fenti gráf a következő módon értelmezhető. Minden iU csúcs a járatok befejezési földrajzi
helyének felel meg, míg minden j W csúcs a járatok kezdeti földrajzi helyének felel meg. Az
(i,j) E1 élek a két kompatibilis ti és tj járat befejezési és kezdési földrajzi helyei közti
lehetséges rezsijáratot jelképezi, míg minden (i,j) E2 él két egymás utáni rezsijáratnak felel
meg, ezek közül az első a ti járat befejezési földrajzi helyéről a depóba, majd a másik a
depóból a tj járat indulási földrajzi helyére. Ezek segítségével látható, hogy G a gráf M teljes
párosítása egy lehetséges jármű-ütemezést fog adni, melyben a járművek száma |ME2|.
Az (i,j) élekhez cij költségeket rendelve az SDVSP megegyezik egy minimális költségű teljes
párosítás keresésével a G gráfban. Ha cij=1 minden (i,j)E2 esetén, és cij=0 egyébként, úgy a
feladat megoldásával megkapjuk a járatok teljesítéséhez szükséges minimális eszközszámot.
Ha a cij értékei az adott rezsijáratok végrehajtásához szükséges költségek lesznek, akkor a
feladat megoldása a minimális operációs költséget adja. Természetesen az előbbi költségek
bármely kombinációja használható.
A gyakorlati életben alkalmazott feladat esetén a fent ismertetett probléma kiegészül még a
járművek darabszámára adott korláttal. Így egy korlátos párosítási feladatot kapunk, ami a
minimális költségű párosítást keresi a gráfban a |ME2| ≤ k feltétel mellett (ahol k pozitív
egész). A probléma formálisan
xj
ij 1, i,
xi
ij 1, j ,
xij k .
i , j E2
Ahol k a rendelkezésre álló eszközök számát jelöli. A fenti feladat minimális költségű hálózati
folyamproblémaként megoldható. A hálózat konstruálása szokásosan eltér a fent definiált
gráftól. A járatokat jelző csúcsokat a hálózatban kettébontjuk egy járat indulási és egy járat
érkezési csúcsra, melyeket egy, a járatot jelző él köt össze. Ezeknek a járat-éleknek az alsó és
47
felső korlátja is 1 lesz, így biztosítva, hogy minden járat pontosan egy alkalommal kerüljön
teljesítésre. Mivel minden járatot pontosan egy alkalommal kell végrehajtani, így az éleiken
felmerülő költségek egy konstans többletként jelentkeznek, ami a feladat célfüggvényére
nincs hatással. A járatok csúcsaihoz hasonlóan a depót jelképező csúcs helyett is egy depó-
indulási, illetve depó-érkezési csúcsot vezetünk be. Ezeket egy 0 költségű éllel kötjük össze,
mely a hálózat depó-körfolyam éle lesz. Ha a fentiek szerint korlátozzuk a rendelkezésre álló
eszközök számát, úgy ennek az élnek a kapacitása k lesz. Ezt a fajta formalizmust használva a
feladat erősen polinomiális időben megoldható [Ahuja+1989].
48
A menetrendi járatok között bizonyos összefüggéseket, relációkat definiálhatunk. Akkor
mondjuk, hogy két járat kompatibilis, ha a jármű az egyik járat végrehajtása után képes
időben odaérkezni a másik járat indulási helyére annak indulási idejéig. Amennyiben az első
járat érkezési állomása megegyezik a második járat indulási helyével, akkor az egyetlen
feltétel, hogy az első járat érkezési időpontja korábban vagy ugyanakkor legyen, mint a
második járat indulási időpontja. Ha az első járat érkezési állomása nem egyezik meg a
második járat indulási állomásával, akkor figyelembe kell vennünk az állomások közötti
rezsijáratok idejét. Feltesszük, hogy a kiállási és beállási járatok mindig kompatibilisek
egymással.
Már eddig is használtuk egy jármű ütemezésének fogalmát, de most pontosabban definiáljuk.
Egy jármű ütemezése járatoknak egy olyan lánca, amelyben minden egymást követő két
menetrendi járat egymással kompatibilis. Általában egy jármű ütemezése a gyakorlatban egy
jármű egy napi munkájának előírását jelenti, amit műszaknak, jármű-műszakoknak is
nevezzük. A jármű egy érvényes ütemezése egy kiállási járattal kezdődik, és egy beállási
járattal végződik.
Az MDVSP alapfeladata abból áll, hogy adjuk meg minimális számú jármű ütemezését a fenti
módon úgy, hogy minden egyes menetrendi járat hozzá legyen rendelve pontosan egy jármű
ütemezéséhez, és minden menetrendi járat a megfelelő, előírt depók valamelyikéből legyen
végrehajtva. Célfüggvényként kezelhetjük a járművek számának a minimalizálását, de
definiálható egy költségfüggvény is, és a cél ekkor a költségfüggvény minimalizálása. A
költségfüggvény ebben az esetben a teljes ütemezés költségét reprezentálja.
Megkülönböztethetünk az egyes depókhoz tartozó járművek esetén úgynevezett
átalányköltséget, valamint operatív költséget. Az átalányköltség az abból eredő költségátlagot
reprezentálja, hogy ilyen jármű rendelkezésre áll a depóban. Ez lehet a beszerzési, fenntartási,
karbantartási, stb. költségekből vetített átlag. Az operatív költség általában a megtett
távolságokkal arányos, azonban különböző lehet attól függően, hogy melyik depóból
származó jármű látja el az adott feladatot. A járatok operatív költsége attól is függhet, hogy
rezsi- vagy menetrendi járatról van-e szó, mivel különböző lehet a kilométerek „egységára”.
A modell képes úgynevezett depókapacitási korlátozó feltételek kezelésére is, azaz lehetséges
megoldásnak csak olyan megoldásokat tekint, amely figyelembe veszi minden depó esetén az
oda tartozó járművek maximális számát. Habár a rendszer figyelembe veheti, és a modellre
épülő, általunk fejlesztett rendszer figyelembe is veszi ezeket a kiterjesztéseket az
optimalizálás során, az egyszerűség kedvéért ezek leírására nem térünk ki a modell
ismertetése során.
49
3.3 Robusztus járműütemezési feladat
A járművek menetrendjére jelentős hatással vannak a forgalmi torlódások és a vezetők
viselkedése. Ha a szolgáltatók nem veszik figyelembe a jövőbeli zavarokat, az kockázatos
működéshez vezethet, és esetleg büntetési díjat is kell fizetniük, például ha a pontosság nem
éri el a szerződött minimális szintet. Az egyik lehetőség ezen probléma kezelésére, hogy
robusztus ütemezést hozunk létre, amely ellenálló ezeknek a bizonytalansági paramétereknek.
Például, Kramkowski és társai. (2009) extra időket használtak az SDVSP
implementációjukban, hogy minimalizálják az átlagos késedelmet a tervezett ütemezésnél. A
szerzők egy szimulált hűtés algoritmust dolgoztak ki különböző szomszédsági operátorokkal.
A numerikus eredmények azt mutatják, hogy a minimális extra idő használata minden
menetrendi utazásra nagymértékben csökkenti a késések várható időtartamát, míg nagyobb
extra idő alkalmazása (például öt perc) esetén szinte nulla lesz a felgyülemlett késések
összege, de ez a tervezett költséget is növeli.
Naumann és munkatársai [Naumann+2011] definiálnak egy optimalizálási problémát, hogy
csökkentsék a zavarok által okozott késésekből adódó költség összegét. A szerzők egy idő-tér
alapú (Kliewer és társai (2006)) hálózatot alkalmaznak, amelyhez extra éleket adnak, hogy a
buszok várjanak egy bizonyos ideig, mielőtt végrehajtják a következő tervezett utazást, így
robusztusabb ütemtervet generálva. Nyilvánvaló, hogy ha csökkentjük a zavarból adódó
probléma mértékét, az növeli a tervezett költségeket. A szerzők Pareto optimális
megoldásokat javasolnak, amelyeket összehasonlítanak a determinisztikus megközelítés
optimális megoldásával és a zavarok okozta késedelemet is figyelembe vevő megoldások
eredményeivel. A javasolt megközelítést kisméretű (néhány száz járat) valós adatokon
tesztelik..
Wei és munkatársai [Wei+2012] a robusztus MDVSP megoldásával foglalkoznak,
minimalizálva a működési költségeket, beleértve a futásteljesítmény költségeit is. A
késedelmes utazás okozta bizonytalan menetidőt véletlen változókkal modellezik egy adott
intervallumon belül, ismert várható értékkel. Néhány megszorítást alkalmaznak: korlátozzák a
tartalék járművek használatát; garantálniuk kell, hogy a jármű rendelkezik megfelelő
üzemanyag mennyiséggel a megfelelő utak végrehajtására két egymás utáni tankolás között;
és megjövetelik a kompatibilis vonal-jármű párokat. Több példát is megoldanak egy
hangyakolóniás algoritmussal.
Annak érdekében, hogy pontos szolgáltatást biztosítsanak, Yan és munkatársai [Yan+2012]
egy olyan VSP-re tesznek javaslatot, ami az eltérést az eredeti ütemtervtől egyedi ellenőrzési
pontokon minimalizálja. Az utazási időket ismert eloszlású valószínűségi változókkal
reprezentálják és a vezetők viselkedését is modellezik annak érdekében, hogy megfelelő
legyen a pontosság. A szerzők feltételezik, hogy ha egy busz eltér a menetrendtől az
ellenőrzési ponton, a buszvezető módosítja a busz sebességét - akár felgyorsítva vagy
lelassítva azt - annak érdekében, hogy az ütemezést tartani tudja a következő alkalommal.
Továbbá, a szerzők kidolgoznak egy koncepciót a fennmaradó késések kezelésére, amit nem
tudnak korrigálni a vezetők. Ezt Monte Carlo szimulációval modellezik, és így megadják azt a
buszütemezést, amely minimalizálja a menetrend be nem tartásából adódó szankciókat.
50
4. Jármütemezési feladat: megoldási módszerek
A modell leírásához először néhány jelölést kell bevezetnünk. Jelölje D a depók halmazát, és
T a járatok halmazát. Minden tT járat esetén jelölje d(t) és a(t) ennek indulási, illetve
érkezési időpontját. Jelölje g(t) D a t járat depóhalmazát: ez azokat a depókat tartalmazza,
amelyekből ki lehet kiszolgálni a t járatot. Jelölje Td T azoknak a járatoknak a halmazát,
amelyek kiszolgálhatók a d depóból. Hasonlóan, minden dD esetén definiálunk két, s(d) és
e(d) csúcspontot a hálózatban, ezek szimbolizálják azt, hogy a jármű a d depóból indul, és oda
érkezik vissza.
Ad:= {(d(t),a(t))|tTd}
Pd:={(s(d),d(t)), (a(t),e(d))|tTd}
51
ahol (e(d),s(d)) az úgynevezett depó-körfolyam élek, amelyekre szintén szükségünk van a
hálózat korrekt definíciójához. A kapcsolat alapú modell felépítését a 4. ábra szemlélteti.
Ezen előkészületek után most már készen állunk arra, hogy definiáljuk az MDVSP feladatot
az (N,E) hálózaton. Ehhez definiálunk egy egészekből álló x vektort, amely egy többtermékes
folyamként is tekinthető.
A korlátozó feltételek biztosítják, hogy minden járatot pontosan egyszer hajtsunk végre, és
megoldást a járatokból álló olyan láncok alkossanak, amelyeknek nincs közös elemük, a
depó-körfolyam éleket kivéve. Formalizálva:
x
dg ( t )
d
( d ( t ), a ( t )) 1, t T , (1)
x x d
e
d
e 0, t T, n N, (2)
en en
xed egész,
ahol n+ jelöli az nN csúcsból induló élek és n− jelöli az nN csúcsba futó élek halmazát.
Az (1) korlátozó feltétel biztosítja azt, hogy minden járatot végre kell hajtani, a (2) korlátozó
feltétel azt, hogy ha egy adott depóhoz tartozó jármű egy állomásra érkezik, akkor azután azt
el is kell hagynia. Amennyiben vannak depókapacitást korlátozó feltételek, akkor azokat a
depó-körfolyam élekhez kell kapacitásként, vagyis a folyamértékre vonatkozó felső korlátként
előírni. Bármely, a fenti feltételeket kielégítő folyam a feladat egy lehetséges megoldása.
52
Amennyiben optimális megoldást szeretnénk kapni, definiálnunk kell a célfüggvényt,
amelynek a fenti feltételeket kielégítő optimális megoldását keressük. Ez az élekhez
nemnegatív, valós értékű súlyokat rendelve történhet. Az él súlya az adott járat költségét
reprezentálja. Amennyiben egyszerűen a járművek számát szeretnénk minimalizálni (ekkor a
flottaminimalizálási feladatnak nevezett problémáról van szó), akkor a kiállási élekhez a többi
él költségéhez viszonyítva nagyon nagy súlyokat kell rendelni. Ha ce jelöli az e élhez rendelt
költséget (súlyt), akkor a célfüggvény a következő alakú:
c x ,
e
e e
Az élek számának csökkentése egy új, módosított modellel történhet. Ezt tárgyaljuk a
következőekben,
Ennek az oka az, hogy a kapcsolatalapú hálózat minden élt tartalmaz, ahol akár csak
elméletileg is lehetséges átmenet (az adott két járat elméletileg követheti egymást). A végső
megoldásba ezeknek ugyan csak egy csekély hányada kerül be, de nem lehetséges ezek
elhagyása, mert azzal elveszíthetjük a feladat optimális megoldását is.
53
A 4. ábrán egy tér-idő hálózat ábráját példáként.
A legfőbb különbség azonban a két modell között a rezsijáratok definíciójában rejlik. Az idő-
tér hálózati modellben ugyanis az idővonalak használatával lehetőség nyílik arra, hogy egybe
„összegyűjtsük”, összevonjuk több rezsijáratnak a lehetséges folyamát. Így nem feltétlenül
szükséges minden egyes lehetséges rezsijáratot külön éllel reprezentálni, hanem megfelelő
rezsiátmenetekhez tartozó éleket összevonhatunk egyetlen éllé. A szerzők [Kliewer+2006] az
úgynevezett utolsó-első egyezési stratégiát alkalmazták. Ennek alapgondolata egy kétfázisú
összevonási stratégia. Az első fázisban minden egyes járat érkezését jelképező csúcspontból
az összes többi állomás esetén csak a másik állomás első olyan járatához vezető, rezsijáratot
jelentő élt húzzuk be, amely járatunkkal időben az első kompatibilis járat a másik állomáson.
Ezen éleket nevezzük első egyezésnek. Csak ezeket az éleket tekintjük a lehetséges rezsiélek
közül. A második fázisban tovább csökkentjük ezen élek számát. Most kerül sor arra, hogy
összevonjuk a beérkező rezsiéleket. Egy-egy adott állomásnak az indulást jelképező
csúcspontjaiba mindegyik másik állomásról érkező rezsijáratok közül már csak ez első
egyezésnek megfelelő rezsijáratokat hagytuk meg az első fázis után. A második fázisban egy
adott állomás időpontjaihoz végignézzük az összes többi állomásról érkező, első egyezés
éleket, és az oda egy azonos, de másik állomásról érkező, első egyezést jelentő élek közül
csak a legkésőbb indulót hagyjuk meg. Ezt nevezzük utolsó-első egyezést jelképező élnek.
Elhagyva a többi, első egyezést jelképező élt, az élek számának további csökkentése
lehetséges. Így a Bd halmaz az összes rezsijáratnak csak egy részét fogja tartalmazni. Ezen a
módon csökkenthető a különböző állomások között rezsiélek száma. Azonban, hogy teljessé
tegyük a modellt, ahhoz mindegyik állomáshoz be kell vezetni az állomáson belüli
csúcspontokat összekötő, úgynevezett várakozó élek Wd halmazát, minden dD depó esetén.
54
Élek összevonása az idő-tér modellben
Ezek az élek mindig az állomás idővonalát követik, éllel összekötve az egymást követő
(indulási) időpontokat, összegyűjtve azok folyamát.
xed {0,1}
feltétel helyett az
xed 0
feltételt kell szerepeltetnünk. (Ez természetesen egész lesz, mivel egész megoldásokat
keresünk, egészértékű programozási feladatról van szó.)
55
depójára) olyan járatsorozatokat találjon, melyek minden egyszerűsített problémában egymás
után következnek. Ezeket a sorozatokat leköti, és a felépítendő idő-tér modellben együtt
kezeli őket.
x , ha f j [0, rl ],
x j := j
x j , ha f j [ru ,1].
Egymás után több kerekítési iterációt is végrehajthatunk, feltéve, hogy az így létrejött LP még
mindig lehetséges megoldást ad. Ha nem tudtunk egy változót sem kerekíteni, akkor a kezdeti
kerekítési intervallumok növelhetők. Az így kapott feladatra újra lefuttatjuk a korlátozás-
szétválasztás módszerére alapuló IP-megoldót. A folyamatot addig ismételjük, amíg minden
változót fixáltunk, vagy a feladatnak nincs lehetséges megoldása.
Pepin és szerzőtársainak [Pepin+2009] dolgozata több heurisztikus módszert hasonlít össze. A
publikációban öt különböző heurisztikus megközelítést vizsgálnak:
A szétválasztás és vágás típusú megoldás alkalmazásánál a feladat idő-tér modelljét építik fel,
majd oldják meg CPLEX-szel, míg az oszlopgenerálásnál lényegében szintén CPLEX-szel
kapnak eredményt.
56
és csere-mozgatás alapján. Az 1-mozgatással olyan szomszédok érhetőek el, melynél a v i
eszköz valamely járatát a szomszédban egy másik, v j eszköz hajtja végre. A csere-mozgatás
olyan szomszédokat ad, melyeknél, ha a t k járatot a v i eszköz, valamint a t k járatot a v j
eszköz hajtotta végre az eredeti ütemezésben, úgy a szomszédban a t k járatot a v j , valamint a
t k járatot a v i eszköz hajtja végre (valamely k , k , i és j értékekre).
Tabukeresés algoritmusa
1: Egy s kezdeti megoldás létrehozása
2: Legyen TL üres, és s s
3: amíg van lehetséges javítás a szomszédság alapján
4: legyen s' N( s ) , melyre f ( s') minimális, és s' -t egy m TL lépéssel kapjuk
6: s s
7: legyen s s' , és frissítsük TL -t
57
5. A javasolt, új jármű-hozzárendelő modell és megoldási
módszere
Mint ezt korábban is említettük, az (elméleti) járműütemezésben néhány fontos feladat nem
modellezhető. A következőkben bemutatjuk, milyen módszert javasolunk annak érdekében,
hogy ezeket a szempontokat ki tudjuk elégíteni. Ebben az alfejezetben a járműütemező és
hozzárendelő modul részletes leírását adjuk meg, és ennek alkalmazási tapasztalatait
elemezzük. A teszteredményeket a teszteredményeket tárgyaló fejezetben a 6. fejezetben
találjuk.
H = H d
dD
58
az összes ilyen szabályos utak halmaza. Minden p H d esetén vezessünk be egy y dp bináris
változót, amelyet a következöképpen definiálunk:
c y
dD pH d
p
d
p
célfüggvényt a
dD pH d ,e = ( dt( t ), at ( t ))E d
a de,p y dp = 1, t T
dD pH d ,e = ( dt( r ), at ( r ))E d
a de,p y dp k r , r R
és
ydp {0,1}, d D, p Hd
y
pH d
d
p k d , d D.
59
2. A relaxált feladat megoldása az adott oszlophalmazzal, az alsó korlát, a duálisok és az
oszlophalmaz tárolása.
3. Az úgynevezett árazási (pricing) probléma megoldása, ami olyan új oszlopok keresését
jelenti, amelyre a redukált költség (reduced cost) negatív.
4. Az új oszlopok hozzávétele a problémához, a szükségtelen, nagy költségű oszlopok
törlése.
5. Megállási kritérium ellenőrzése, ha nem teljesül, akkor folytatás a 2. lépéssel.
6. Végső eszközfordák kialakítása a kapott oszlophalmaz alapján.
60
5.1. ábra Fordagenerátor felépítése idő-tér hálózattal
Forda- Munkaszakaszok
Él típus Költség Munkaidő
időtartam száma
Kiállás Forda napi 0 Hossz 0
költsége
Beállás 0 0 Hossz 0
Járat Hossz*költség Hossz Hossz 1
Várakozás 0 0 Hossz 0
Várakozás 0 0 Hossz 0
utazással
Az előzőekben említett idő-tér hálózati modellben a várakozó élek minden járatz vég és vele
kompatiblis következő járat kezdet között generáljuk. Ez nagyméretű feladat esetén igen sok
élt jelenthet. Ezért a feladat méretének csökkentése érdekében lehetséges aggregált idő-tér
hálózat használata is. Ebben az esetben szétválasztjuk a szünet és a várakozó éleket, az
idővonalon a járatok kezdetei között várakozó éleket generálunk, amelyek összesítik az
idővonalon a folyamot. Az 5.3. ábra az aggregált idő-tér hálózatot mutatja be.
61
5.3. ábra Eszközforda generátor felépítése aggregált idő-tér hálózattal
c~ x
eE
e e min,
feltéve, hogy
1, ha n a forrás
x x = 0, ha n nem a forrás vagy a cél, n N
d
e
d
e
(6)
en en - 1, ha n a cél
62
(7) egyenlőtlenségek pedig azt jelentik, hogy a szabályos emberfordáknak minden a
modellben definiált kritériumnak eleget kell tenni, például nem lehet hosszabb egy megadott
időtartamnál, nem tartalmazhat csak korlátozott vezetési időt, stb. A modell megoldása pedig
épp a legkisebb csökkentett költségű szabályos eszközfordát adja, aminek keresése a célunk.
𝑟
𝐶𝑗 (𝑡 𝑟 ) = 𝑚𝑖𝑛 {𝐶𝑗 (𝑡 𝑟 − 1), min𝑖𝑗∈𝐸|𝑑𝑖𝑗𝑟 ≤𝑡 𝑟 {𝐶𝑖 (𝑡 𝑟 − 𝑑𝑖𝑗 ) + 𝑐̃𝑖𝑗 }},
ahol
𝐶1 (𝑡 𝑟 ) = 0, ha 0 ≤ 𝑡 𝑟 ≤ 𝑓 𝑟 , és 𝐶𝑗 (0) = ∞, ha 𝑗 = 2, … , |𝑁|.
Egy új cimke csak akkor elfogadható, ha teljesül a 𝑑 𝑟 (𝑃𝑗𝑙 ) ≤ 𝑓 𝑟 feltétel, minden 𝑟 ∈ 𝑅 esetén.
Amennyiben 𝑑 𝑟 (𝑃𝑖𝑘 ) + 𝑑𝑖𝑗
𝑟
< 𝑎𝑟 , valamely 𝑟 ∈ 𝑅-re, akkor 𝑑𝑟 (𝑃𝑗𝑙 ) = 𝑎𝑟 lesz. A cimkék
továbbá csak akkor tárolódnak, ha nem domnálja egyetlen más cimke sem. Egy 𝐿𝑗𝑚 cimke
dominálja az 𝐿𝑗𝑛 cimkét, ha 𝑐̃ (𝑃𝑗𝑚 ) ≤ 𝑐̃ (𝑃𝑗𝑛 ), továbbá 𝑑 𝑟 (𝑃𝑗𝑚 ) ≤ 𝑑 𝑟 (𝑃𝑗𝑛 ), minden 𝑟 ∈ 𝑅
esetén.
63
4. Legyen l a i csúcs cimkéi közül a következő indexe.
𝑟
5. Ha van olyan 𝑟 ∈ 𝑅, hogy 𝑑 𝑟 (𝑙) + 𝑑𝑖𝑗 > 𝑓 𝑟 , akkor folytassuk a 4. lépéssel.
6. Legyen 𝐿𝑗𝑚 = (𝑙, 𝑐̃ (𝑙) + 𝑐̃𝑖𝑗 , 𝑑1 (𝑙) + 𝑑𝑖𝑗
1 𝑟
, … , 𝑑 𝑟 (𝑙) + 𝑑𝑖𝑗 ), 𝐿𝑗 = 𝐿𝑗 ∪ 𝐿𝑗𝑚 .
7. Ha van még vizsgálatlan cimke az i-edik csúcsban, folytassuk a 4. lépéssel.
8. Ha van még vizsgálatlan csúcs, amelyből vezet él j-be, folytassuk a 3. lépéssel.
9. Távolítsuk el j cimkéi közül azokat, amelyeket nem dominál másik cimke.
10. Ha van még vizsgálatlan csúcs, akkor folytassuk a 3. lépéssel.
64
6. Egy kombinált eszköz-emberforda optimalizáló modell
Végezetül [Steinzen2007] alapján bemutatunk egy kombinált modellt, ami lehetőséget biztosít
eszköz- és emberfordák együttes kialakítására.
A fentiekben használt ( N , E ) hálózaton és a K emberforda halmazon definált egészértékű
programozási feladat az alábbi módon adható meg. A definicióban ha egy xe változó a d
depóhoz tartozó élre vonatkozik, akkor ezt egyszerűen xed -val jelöljük. Hasonlóan, ha egy
d
emberforda változó K -hez tartozik, ykd -vel jlöljük Formálisan a modell a következő:
c x w y
eE
e e
kK
k k min,
feltéve, hogy
x
d g t
d
( d ( t ), a ( t )) = 1 minden t T esetén, (1)
x d
e x d
e = 0 minden d D és n N esetén, (2)
en en
~
xed ykd = 0 minden d D és e E d esetén, (3)
kK d ( e )
~d
ahol n jelöli a kimenő éleket, míg n a bemenő éleket az n N csúcs esetén, E pedig
azon élek halmaza, amelyekhez járművezetőt kell rendelni.
Az (1) egyenlet azt fejezi ki, hogy minden járatot pontosan egyszer kell végrehajtani, míg (2)
azt jelenti, hogy ha egy járat beérkezik egy végállomásra, akkor onnan tovább is kell haladnia.
A (3) egyenlet kapcsolatot teremt az eszköz- és emberfordák között: minden élet, amit egy
eszközforda lefed, pontosan ugyanannyi számú emberfordával kell lefedni, méghozzá
ugyanabból a depóból.
65
megközelítést használjuk. Ennek bővebb tárgyalása megtalálható a [Steinzen2007]
dolgozatban.
66
A célunk ebben az esetben úgynevezett Lagrange duális közelítő megoldása, ami a
szubgradiens módszerrel történik. A végén a Lagrange szorzók közelítik az optimális duális
változókat. Amennyiben a korábban leírt modellben a járatok és az emberfordák közötti
kapcsolatot biztosító feltételeket, valamint a járatok egyszeri teljesítésére vonatkozó
feltételeket a Lagrange módszerrel relaxáljuk, akkor a probléma két részre esik szét. Egy
egydepós járműütemezési problémává, ami polinomiális időben megoldható, valamint egy
egyszerű optimalizálási problémává.
c x w y 1 x d
ed xed ykd min.
dD eE~ d
e e k k t ( d ( t ), a ( t ))
eE kK tT d g t kK d ( e )
c~ x
eE
e e min,
feltéve, hogy
x d
e x d
e = 0 minden d D és n N esetén, (6)
en en
xed egész.
w~ y
kK
k k min,
~
ced ed t , ha e a t járathoz tartozó él és e E d ,
~
c~ed ced ed , ha e nem tartozik járathoz, e E d ,
ced különben
valamint
~ d wd
wk k d
e .
kK d ( e )
67
Amennyiben adottak a 𝜇, 𝜋 szorzóvektorok, akkor az első probléma a depók számának
megfelelő darabszámú egydepós járműütemezési probléma megoldását jelenti. Ez megtehető
~d 0 ,
polinomiális időben. A második probléma megoldása egyszerű, minden ykd 1, ha wk
különben yk 0 .
d
~
1 x(dd (t ), a (t )) , minden e E d élre, amely emberfordához kell, tartozzon, illetve t
d g t
járatra, amelyet végre kell hajtani. Itt x és y a 2. lépésben megadott feladat optimális
megoldását jelentik.
z∗ −ZLR
4. lépés: Számoljuk ki a 𝑤 = 𝜆 ‖𝑑‖2
lépéshosszt, ahol 𝜆 egy paraméter, melynek értékét
felére csökkentjük, ha a célfüggvény 10 iteráción át nem csökken.
68
vagy több munkaszakaszból áll, köztük a szabályoknak megfelelő szünetekkel. A
gyakorlatban egy emberforda általában maximum 2-3 munkaszakaszból tevődik össze.
A generálás algoritmusa:
3. Legyen i=0.
5. Ha az adott időpont nem járat indulási időpont, akkornöveljük i-t 1-gyel és lépjünk a
4. lépésre.
9. Növeljük i-t 1-gyel amíg el nem jutunk az időpontok végéig és lépjünk a 4. lépésre. Ha
minden időpontot bejártunk, az algoritmus befejeződik.
69
6.4. Az emberfordák generálása
70
7. Irodalomjegyzék
[Aarts+1989] Aarts, E. and Korst, J., Simulated Annealing and Boltzman Machines: A
Stochastic Approach to Combinatorial Optimization and Neural Computing. Wiley,
Chichester, 1989.
[Aarts+1997] Aarts, E. and Lenstra, J., K., Local search in combinatorial optimization, John
Wiley and Sons, 1997.
[Ahuja+1989] Ahuja, R.K., Magnanti, T.L., and Orlin, J.B., Network Flows, Nemhauser,
Rinnooy Kan, and Todd, IV, 211–369, 1989.
[Árgilán+2012] Árgilán, V., Balogh, J., Békési, J., Galambos, G., Krész, M., and Tóth, A., An
Assignment Model for Real-World Vehicle Scheduling Problem with Refueling,
közlésre benyújtva, 2012.
[Balas+1996] Balas, E., Ceria, S., Cornuejols, G., and Natraj, N.R., Gomory cuts revisited,
Operations Research Letters, 19, 1-10, 1996.
[Ball+1983] Ball, M., Bodin, L., and Dial, R., A matching based heuristic for scheduling mass
transit crews and vehicles. Transportation Science, 17, 4–31, 1983.
[Balogh+2009] Balogh, J., Békési, J., Galambos, G., and Krész, M., Model and Algorithm for
a Vehicle Scheduling Problem with Refueling, In: Proceedings of the 9th Workshop on
Models and Algorithms for Planning and Scheduling Problems, pp. 229−231, 2009
[Bertossi+1987] Bertossi, A.A., Carraresi, P., and Gallo, G., On Some Matching Problems
Arising in Vehicle Scheduling Models, Networks, 17, 271–281, 1987.
[Békési+2009] Békési, J., Brodnik, A., Pash, D., and Krész, M., An integrated framework for
bus logistic management: case studies, In: Logistik Management, Physica-Verlag, pp.
389–411, 2009.
[Bodin+1983] Bodin, L., Golden, B., Assad, A., and Ball, M., Routing and Scheduling of
Vehicles and Crews: The State of the Art. Computers and Operations Research, 10, 63–
211, 1983.
71
[Borndörfer2008] Borndörfer, R., Discrete Optimization in Public Transportation, ZIB-Report
08-56, Konrad-Zuse-Zentrum für Informationstechnik Berlin, Germany, 2008.
[Borndörfer+2008b] Borndörfer, R., Löbel, A., and Weider, S., A bundle method for
integrated multi-depot vehicle and duty scheduling in public transit, In: Lecture Notes in
Economics and Mathematical Systems 600, Computer-aided Systems in Public
Transport, Hickman, M., Mirchandani, P., Voß. S. (eds.), 3–24, Springer-Verlag,
Heidelberg, 2008.
[Bunte+2009] Bunte, S. and Kliewer, N., An overview on vehicle scheduling models, Journal
of Public Transport, 1(4), 299–317, 2009.
[Carpaneto+1989] Carpaneto, G., Dell'Amico, M., Fischetti, M., Toth, P., A branch and
bound algorithm for the multiple depot vehicle sheduling problem, Networks, 19, 531–
548, 1989.
[Chvátal+1983] Chvátal, V., Linear Programming, W.H. Freeman and Company, New York,
1983.
[Dell’Amico+1993] Dell’Amico, M., Fischetti, M., and Toth, P., Heuristic algorithms for the
multiple depot vehicle scheduling problems. Management Science, 39, 115–125, 1993.
[Desaulniers+2007] Desaulniers, G. and Hickman, M.D., Public Transit, In: C. Barnhart and
G. Laporte (Eds.), Handbook in OR & MS, Vol. 14, Chapter 2, Elsevier B.V., 2007.
[Du+1998] Du, D-Z. and Pardalos P.M. (eds), Handbook of combinatorial optimization,
Volume 1, Kluwer Academic Publishers, 1998.
[Eberhart+1995] Eberhart, R. and Kennedy, C., A New Optimizer Using Particle Swarm Theory,
Proceedings of the Sixth International Symposium on Micromachine and Human Science,
Nagoya, Japan, 39–43, 1995.
[Fischetti+1999] Fischetti, M., Lodi, A., and Toth, P., A branch-and-cut algorithm for the
multi depot vehicle scheduling problem, Technical report, 1999.
[Freling+1995] Freling, R., Boender, G., and Paixão, J.M.P., An integrated approach to
vehicle and crew scheduling, Technical Report 9503/A, Economie Institute, Erasmus
University Rotterdam, Rotterdam, 1995.
[Freling1997] Freling, R., Models and Techniques for Integrating Vehicle and Crew
Scheduling, PhD thesis, Tinbergen Institute, Erasmus University Rotterdam, 1–151,
1997.
72
[Freling+1999] Freling, R., Wagelmans, A.P.M., and Paixão, J.M.P., An overview of models
and techniques for integrating vehicle and crew scheduling. In: Lecture Notes in
Economics and Mathematical Systems, 471, Computer-Aided Transit Scheduling,
Wilson, N.H.M. (ed.), 441–460, Springer, Berlin, 1999.
[Freling+2003] Freling, R., Huisman, D., and Wagelmans, A.P.M. (2003). Models and
algorithms for integration of vehicle and crew scheduling. Journal of Scheduling, 6, 63–
85, 2003.
[Gaffi+1999] Gaffi, A. and Nonato, M., An integrated approach to the extra-urban crew and
vehicle scheduling problem. In: Lecture Notes in Economics and Mathematical
Systems, 471, Computer-Aided Transit Scheduling, Wilson, N.H.M. (ed.), 103–128.
Springer, Berlin, 1999.
[Garey+1979] Garey, M.R. and Johnson, D.S., Computers and Interactability: A Guide to the
Theory of NP-Completness, Freeman, San Fransisco, 1979.
[Gintner+2006] Gintner, V., Steinzen, I., and Suhl, L., A time-space network based approach
for integrated vehicle and crew scheduling in public transport, In: Binetti, M., Civitelle,
F., De Liddo, E., Dell’Orco, M., Ottomanlli, M. (eds.), Proc. EWGT2006 Joint Conf.,
Bari, Irtaly, 371-377.
[Gintner+2008] Gintner, V., Kliewer, N., and Suhl, L., A Crew Scheduling Approach for
Public Transit Enhanced with Aspects from Vehicle Scheduling, In: Lecture Notes in
Economics and Mathematical Systems 600, Computer-aided Systems in Public
Transport, Hickman, M., Mirchandani, P., Voß, S. (eds.), 25-42, Springer-Verlag,
Heidelberg, 2008.
[Goemans+1998] Goemans, M.X., Dinitz, Y., and Garg, N., On the singlesource unsplittable
flow problem, In: Proceedings of the 39th Annual IEEE Symposium on Foundations of
Computer Science, pp. 290–299, 1998.
[Gomory+1958] Gomory, R., E., Outline of an algorithm for integer solutions to linear
programs, Bulletin of the American Mathematical Society. 64, 275–278, 1958.
[Haase+1999] Haase, K. and Friberg, C., An exact branch and cut algorithm for the vehicle
and crew scheduling problem, In: Lecture Notes in Economics and Mathematical
Systems, 471, Computer-Aided Transit Scheduling, Wilson, N.H.M. (ed.), 63-80,
Springer, Berlin, 1999.
73
[Haase+2001] Haase, K., Desaulniers, G., and Desrosiers, J., Simultaneous vehicle and crew
scheduling in urban mass transit systems, Transportation Science, 35(3), 286–303,
2001.
[Hadjar+2001] Hadjar, A., Marcotte, O., and Soumis, F., A Branch-and-Cut Algorithm for the
Multiple Depot Vehicle Scheduling Problem, Tech. rept. G-2001-25. Les Cahiers du
Gerad, Montreal, 2001.
[Held+1970] Held, M. and Karp, R.M., The travelling salesman problem and minimum
spanning trees,' Operations Research, 18, 1138–1162, 1970.
[Held+1974] Held, M., Wolfe, P. and Crowder, H., (1974), Validation of Subgradient
Optimization, Mathematical Programming, 6, 62–88, 1974.
[Huisman+2004] Huisman, D., Integrated and Dynamic Vehicle and Crew Scheduling, PhD
thesis, Erasmus University of Rotterdam, 2004.
[Karp1972] Karp, R. M., Reducibility among combinatorial problems, In Miller, Raymond E.,
Thatcher, James W, Complexity of Computer Computations, Plenum. pp. 85-103, 1972.
[Kliewer+2005] Kliewer, N., Mellouli, T., and Suhl, L.: Solving large multiple-depot
multiple-vehicle-type bus scheduling problems in practice. OR Spectrum, 27(4), 507-
523, 2005.
[Kliewer+2006] Kliewer N., Mellouli, T., and Suhl, L., A time-space network based exact
optimization model for multi-depot bus scheduling, European Journal of Operational
Research, 175, 1616-1627, 2006.
[Kokott+1996] Kokott, A. and Löbel, A., Lagrangean Relaxations and Subgradient Methods
for Multiplie-Depot Vehicle Scheduling Problems, ZIB-Report 96-22, Konrad-Zuse-
Zentrum für Informationstechnik, Berlin, Germany, 1996.
[Kodialam+2000] Kodialam, M.S. and Lakshman, T.V., Minimum interference routing with
applications to MPLS traffic engineering, INFOCOM 2000, Nineteenth Annual Joint
Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE,
2, 884–893, 2000.
[Land+1960] Land, A.H. and Doig, A.,G., An automatic method for solving discrete
programming problems, Econometrica, 28, 493–520. 1960.
74
[Laurent+2008] Laurent, B. and Hao J-K., Simultaneous Vehicle and Crew Scheduling for
Extra Urban Transports In: N.T. Nguyen et al. (Eds.): IEA/AIE 2008, LNAI 5027, pp.
466–475, 2008.
[Li+2009] Li, J-Q. and Head K.L., Sustainability provisions in the bus-scheduling problem;
Transportation Research Part D 14, 50-60, 2009.0
[Löbel1997] Löbel, A., Optimal Vehicle Scheduling in Public Transit, Ph.D. thesis,
Technische Universitaet at Berlin., 1997.
[Löbel1998] Löbel, A., Vehicle Scheduling in Public Transit and Lagrangian Pricing.
Management Science 44, 1637–1649, 1998.
[Lübbecke+2005] Lübbecke, M.E. and Desrosiers J., Selected topics in column generation.
Operations Research 53(6), 1007-1023, 2005.
[Meilton2001] Meilton, M., Selecting and implementing a computer aided scheduling system
for a large bus company, In: Voss, S., and Daduna, J. R., (eds.), Computer-Aided
Scheduling of Public Transport, Springer-Verlag, Berlin, 2001.
[Mesquita+1992] Mesquita, M. and Paixao, J., Multiple Depot Vehicle Scheduling Problem:
A New Heuristic Based on Quasi-Assignment Algorithms, In: M. Desrochers and J.-M.
Rousseau (eds.), Computer-Aided Transit Scheduling, In: Lecture Notes in Economics
and Mathematical Systems 386, Springer-Verlag, Berlin, 167–180, 1992.
[Pepin+2009] Pepin, A.-S., Desaulniers, G., Hertz A., and Huisman, D., Comparison of
Heuristic Approaches for the Multiple Depot Vehicle Scheduling Problem, Journal of
Scheduling, 12(1), 17-30, 2009.
[Rabl2002] Rabl, A., Environmental benefits of natural gas for buses. Transportation
Research, D 7, 391-405. 2002.
[SYMPHONY] Ralphs, T.K. and Güzelsoy, M., SYMPHONY 5.2.3 User's Manual, online
elérhető: http://www.coin-or.org/SYMPHONY/man-5.2/
[Ribeiro+1994] Ribeiro, C.C. and Soumis, F., A Column Generation Approach to the
Multiple-Depot Vehicle Scheduling Problem. Operations Research, 42(1), 41–52, 1994.
75
[Saha1972] Saha, J. L., An algorithm for bus scheduling problems. Operational Research
Quarterly, 21(4), 463-474, 1972.
[Steinzen2007] Steinzen, I., Instances for integrated vehicle and crew scheduling problems
with multople depots, online elérhető:
http://dsor.uni-paderborn.de/index.php?id=bustestset&L=0.
[Steinzen+2010] Steinzen, I., Gintner, V., Suhl, L., and Kliewer, N., A Time-Space Network
Approach for the Integrated Vehicle- and Crew-Scheduling Problem with Multiple
Depots, Transportation Science, 44(3), 367-382, 2010.
[Suhl+2007] Suhl, U. H., Friedrich, S., and Waue, W., Progress in solving large scale multi-
depot multi-vehicle-type bus scheduling problems with integer programming.
Wirtschaftinformatik Proceedings, Paper 81, 2007
[Wang+2007] Wang, H. and Shen, J., Heuristic approaches for solving transit vehicle
scheduling problem with route and fueling time constraints, Applied Mathematics and
Computation, 190, 1237–1249, 2007.
[Wei+2012] Wei, M., Sun, B., Jin, W.,. Model and algorithm of regional bus scheduling with
grey travel time. Journal of Transportation Systems Engineering and
Information Technology 12, 106–112., 2013
[Wren+2003] Wren, A., Fores, S., Kwan, A.S.K., Kwan, R.S.K., Parker, M.E., and Proll, L.,
A flexible system for scheduling drivers, Journal of Scheduling, 6(5), 437-455, 2003.
[Yan+2012] Yan, Y., Meng, Q., Wang, S., Guo, X., Robust optimization model of schedule
design for a fixed bus route. Transportation Research Part C 25, 113–121., 2012
76