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