$Title Tourenplanung $Ontext Vorlesung: Distributionslogistik Tourenplanung - Model - Author: Rui Guo Date: 11/11/2019 $Offtext $eolcom// $include vrp_data.gms variables zeit Gesamte Fahrzeit (Zielfunktion) x(i,j,mu) Haeufigkeit mit der Strecke i-j auf Tour mu durchfahren wird y(i,mu) gleich 1 falls Kunde i auf Tour mu bedient wird pi(i) Stufenindex von Knoten i auf seiner Tour bei Indizierung mit pi(i0) gleich 0 ; binary variables y ; integer variables x ; equations def_zeit Definition der Fahrzeit bedienung(i) Zuweisung von Kunde i zu einer Tour kapazitaet(mu) Kapazitaetsrestriktion fuer Fahrzeug der Tour mu fahrzeit_max(mu) Fahrzeitrestriktion fuer Fahrzeug der Tour mu flusserhaltung(i,mu) Flusserhaltungsbedingung fuer Knoten i und Tour mu (Ausgangsgrad gleich Eingangsgrad) kopplung(i,mu) Knoten i wird auf auf Tour mu verlassen wenn er zur Tour mu gehoert (Kopplungsbedingung) kurzzyklen(i,j,mu) Miller-Tucker-Zemlin-Bedingung zur Vermeidung von Kurzzyklen fuer Pfeil ij und Tour mu ; def_zeit.. zeit =e= sum((i,j,mu)$a(i,j), c(i,j)*x(i,j,mu)) ; bedienung(i)$(ord(i)>1).. sum(mu, y(i,mu)) =e= 1 ; kapazitaet(mu).. sum(i, b(i)*y(i,mu)) =l= u ; fahrzeit_max(mu).. sum((i,j)$a(i,j), x(i,j,mu)*c(i,j)) =l= D ; flusserhaltung(i,mu).. sum(j$a(i,j), x(i,j,mu)) =e= sum(j$a(j,i), x(j,i,mu)) ; kopplung(i,mu)$(ord(i)>1).. sum(j$a(i,j), x(i,j,mu)) =g= y(i,mu) ; kurzzyklen(i,j,mu)$(a(i,j) and (ord(j)>1)).. pi(j)-pi(i) =g= card(i)*(x(i,j,mu)-1)+1 ; model vrp / all / ; options mip = cplex optcr = 0 reslim = 60 ; solve vrp minimzing zeit using mip ; display zeit.l, x.l, y.l ;