• No results found

Ch11-DA: Ex11.3 – Equilibrium and Feedback

In document Modelling Transport - Cube Guidebook (Page 116-127)

RUN PGM=HIGHWAY PRNFILE="C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3HWY01A.PRN“, MSG='Example 11.3 - Initial HW Costs'

FILEO MATO[1] = "C:\Modelling Transport_CG\Output\Chapter11\HWInitCosts_11_3.MAT", MO=1 DEC=9 NAME=HW_INIT_GCOSTS

FILEI NETI = "C:\Modelling Transport_CG\Input\Chapter11\Input.mdb\NET_11_3" PAR MAXITERS=1 PROCESS PHASE=LINKREAD LINKCLASS=LI.CLASS IF (LI.CLASS=10) ADDTOGROUP=1 ENDPROCESS PROCESS PHASE=ILOOP

; This phase performs a zonal loop (I=1,Zones). This phase is required and must contain ; at least 1 PATHLOAD statement. Almost all MATRIX operation are available in this phase ; and the PATHLOAD statement can be used to build and load paths for assignment

PATHLOAD PATH=LI.T0 EXCLUDEGROUP=1 MW[1]=PATHCOST NOACCESS=0 ENDPROCESS

PROCESS PHASE=ADJUST

; This phase is automatically run after the ILOOP phase. The volume-delay functions (TC) are

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

RUN PGM=PUBLIC TRANSPORT PRNFILE="C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3PTR01A.PRN“, MSG='Example 11.3 - Initial PT Costs'

FILEO REPORTO = "C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3PTR01B.PRN" FILEO ROUTEO[1] = "C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3PTR01A.RTE"

FILEO MATO[1] = "C:\Modelling Transport_CG\Output\Chapter11\PTInitCosts_11_3.MAT", MO=1 DEC=9 NAME=PT_INIT_GCOSTS FILEI FACTORI[1] = "C:\Modelling Transport_CG\Input\Chapter11\FactorFile_11_3.FAC"

FILEI SYSTEMI = "C:\Modelling Transport_CG\Input\Chapter11\SystemFile_11_3.PTS" FILEI LINEI[1] = "C:\Modelling Transport_CG\Input\Chapter11\Input.mdb\NETPT_11_3" FILEI NETI = "C:\Modelling Transport_CG\Input\Chapter11\Input.mdb\NET_11_3"

PARAMETERS TRANTIME = LW.TRANTIME ;PROCESS PHASE=NODEREAD

; loops over all nodes computes node based scalar and array variables (Optional) ;ENDPROCESS

PROCESS PHASE=LINKREAD

; loops over all links Computes link based scalar and array variables (Optional) LW.TRANTIME=LI.T0

ENDPROCESS

; script continues on NEXT page

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

; SCRIPT CONTINUED FROM PREVIOUS PAGE

PROCESS PHASE=DATAPREP

; generates/reads non-transit legs (Optional - Required for PT Network Development) ; NT legs for access and egress

GENERATE FROMNODE=1, TONODE=108, COST=LI.T0, MAXCOST=1, NTLEGMODE=100, DIRECTION=1, MAXNTLEGS=1 GENERATE FROMNODE=107, TONODE=2, COST=LI.T0, MAXCOST=1, NTLEGMODE=100, DIRECTION=1, MAXNTLEGS=1 ENDPROCESS PROCESS PHASE=SKIMIJ

; saves and manipulates skims for zone pairs, IJ (Optional - Required for Skimming)

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

; PILOT STEP

; INITIALIZE CONVERGENCE VARIABLES CONV.DIFF=0

CONV.P_DIFF=0

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

RUN PGM=MATRIX PRNFILE="C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3MAT01A.PRN“, MSG='Example 11.3 - Modal choice step'

FILEI MATI[1] = "C:\Modelling Transport_CG\Input\Chapter11\ODMat_11_3.MAT"

FILEO MATO[1] = "C:\Modelling Transport_CG\Applications\Chapter11\TripsByMode_11_3.MAT", MO=21-22,13 DEC=3*9 NAME=CAR_TRIPS, PT_TRIPS COMPCOST

FILEI MATI[3] = "C:\Modelling Transport_CG\Output\Chapter11\PTInitCosts_11_3.MAT" FILEI MATI[2] = "C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3LOO01A.MAT" MW[10]=MI.1.1 MW[11]=MI.2.1 MW[12]=MI.3.1 jloop if (MW[11]=0) MW[11]=99999 if (MW[12]=0) MW[12]=99999 endjloop XCHOICE,

ALTERNATIVES = CAR, PT, ; List choices

DEMANDMW = 10, ; Input total demand

COSTSMW = 11, 12, ; Input costs

ODEMANDMW = 21,22, ; Forecast demand

SPLIT = TOTAL 0.05 CAR, PT, ; Model structure

SPLITCOMP = 13, ; Forecast composite cost

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

RUN PGM=HIGHWAY PRNFILE="C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3HWY01B.PRN“, MSG='Example 11.3 - Current HW Assignment'

FILEI MATI[1] = "C:\Modelling Transport_CG\Applications\Chapter11\TripsByMode_11_3.MAT" FILEO NETO = "C:\Modelling Transport_CG\Output\Chapter11\Loaded_11_3.NET"

FILEI NETI = "C:\Modelling Transport_CG\Input\Chapter11\Input.mdb\NET_11_3" PAR COMBINE=EQU MAXITERS=100

PROCESS PHASE=LINKREAD C=LI.CAPACITY LINKCLASS=LI.CLASS IF (LI.CLASS=10) ADDTOGROUP=1 ENDPROCESS PROCESS PHASE=ILOOP

PATHLOAD PATH=TIME VOL[1]=MI.1.1 EXCLUDEGROUP=1 MW[1]=PATHCOST NOACCESS=0 ENDPROCESS PROCESS PHASE=ADJUST FUNCTION { TC[1]=T0 TC[2]=T0 + 0.02*V TC[3]=T0 + 0.005*V } ENDPROCESS PROCESS PHASE=CONVERGE IF (RGAP=0) BALANCE=1 ENDPROCESS ENDRUN

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

RUN PGM=HIGHWAY PRNFILE="C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3HWY01C.PRN“, MSG='Example 11.3 - Current HW Costs'

FILEO MATO[1] = "C:\Modelling Transport_CG\Applications\Chapter11\HWCosts_11_3.MAT", MO=1 DEC=9 NAME=HW_COST FILEI NETI = "C:\Modelling Transport_CG\Output\Chapter11\Loaded_11_3.NET"

PARAMETERS MAXITERS=1 PROCESS PHASE=LINKREAD C=LI.CAPACITY LINKCLASS=LI.CLASS IF (LI.CLASS=10) ADDTOGROUP=1 ENDPROCESS PROCESS PHASE=ILOOP

PATHLOAD PATH=LI.TIME_1 EXCLUDEGROUP=1 MW[1]=PATHTRACE(LI.TIME_1) NOACCESS=0 ENDPROCESS

ENDRUN

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

RUN PGM=MATRIX PRNFILE="C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3MAT01B.PRN" MSG='Example 11.3 - Compare matrix at k and k-1 loop'

FILEO RECO[1] = "C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3MAT01A.DBF", FIELDS=DIFF P_DIFF(15.10)

FILEO MATO[1] = "C:\Modelling Transport_CG\Applications\Chapter11\PreviousIterTrips_11_3.MAT", MO=3-4, DEC=2*9 NAME=PREVITER_HW PREVITER_PT

FILEI MATI[2] = "C:\Modelling Transport_CG\Applications\Chapter11\TripsByMode_11_3.MAT" FILEI MATI[1] = "C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3LOO01C.MAT"

mw[1]=mi.1.2 ; previous transit trips mw[2]=mi.2.2 ; current transit trips

mw[3]=mi.2.1 ; current auto trips output to become previous for next feedback iteration mw[4]=mw[2] ; current transit trips output to become previous for next feedback iteration MW[5]=mw[2]+mw[3] TOT_1=TOT_1+ROWSUM(1) TOT_2=TOT_2+ROWSUM(2) TOTAL=TOTAL+ROWSUM(5) DIFF=TOT_2-TOT_1 P_DIFF=DIFF/TOTAL

LOG PREFIX=CONV VAR=P_DIFF LOG PREFIX=CONV VAR=DIFF IF(I=_ZONES)

WRITE RECO=1 ENDIF

ENDRUN

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

RUN PGM=MATRIX PRNFILE="C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3MAT01C.PRN“, MSG='Example 11.3 - Convergence report'

FILEI RECI = "C:\Modelling Transport_CG\APPLICATIONS\CHAPTER11\E3MAT01A.DBF"

FILEO PRINTO[1] = "C:\Modelling Transport_CG\Output\Chapter11\Convergence_11_3.dat", APPEND=T DIFF=RI.DIFF

P_DIFF=RI.P_DIFF IDLOOP=@AMLoop_1@ IF (@AMLoop_1@=1)

PRINT LIST='---' PRINTO=1

PRINT LIST='Loop'(10.0R) 'Difference'(25.0R) , 'Percentage Difference'(25.0R) PRINTO=1 PRINT LIST='---' PRINTO=1

ENDIF

PRINT LIST=IDLOOP(10.R) DIFF(25.10) P_DIFF(25.10) PRINTO=1 IF (ABS(P_DIFF)<=0 & @AMLoop_1@>1)

Converged=1 ELSE

Converged=0 ENDIF

LOG VAR=Converged

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

; PILOT STEP

IF (MATRIX.Converged=1) BREAK

Ch11-DA: Ex11.3 – Equilibrium and

Feedback

Ch11-DA: Ex11.4 – The Dynamic Nature of

In document Modelling Transport - Cube Guidebook (Page 116-127)

Related documents