The Optimization Analysis window is where all optimizations are performed. In this window you can define and run multiple optimizations, each having different settings, budgets, and analysis periods. The results from each optimization are stored separately and can be reviewed in this and other windows throughout the system.
Out of the box, the Optimization Analysis window which can be navigated to by following the steps below:
- Click Analysis in the top banner menu
- Click Network Analysis
- Select Optimization Analysis
The window provides the following tabs that allow you to switch between different components of project optimization:
- Setup: This tab is where all parameters for an optimization are established.
- Results: This tab shows the optimal recommended work plan.
- Constr. Results: This tab shows the predicted values of each constraint compared to the input constraint value. This allows you to identify the constraints that have controlled the analysis results.
- Report: This tab shows the constraints selected in the Reporting Functions pane of the Setup tab and the value of each constraint after optimization.
- Summary Reports: When an optimization analysis has results, this tab becomes available. It provides a less data-intensive way to view graphs using data from the selected optimization analysis. It also allows you to compare two different optimization analyses.
The Setup tab is where all parameters for an analysis scenario are established. This tab contains the Scenarios pane in the upper portion of the window, the Constraints pane on the lower left, a Reporting Functions pane on the lower right and a Yearly Financial Parameters pane on the extreme lower left. Therefore, this chapter will explain in detail about the Setup tab.
Scenarios Pane
This pane displays all the analysis scenarios and their parameters. It allows the user to edit the following system configuration-related fields. Note that not all fields may show up in a specific implementation.
Out of the box, these parameters are displayed:
- Analysis Type: This field shows the type of the selected analysis scenario, as explained in Analysis Types.
- Has Results: This read-only check box indicates if the optimization has already been run. When a check mark is not displayed, then the results information shown in the other tabs is irrelevant.
- Scenario Number: This read-only field displays the Scenario ID in the system. It allows the user to quickly locate a scenario using the “Find Scenario” button.
- Scenario Name: This field displays the name of the selected scenario.
- Year of Condition Data: This field is used as baseline year to convert between scenario year in the analysis period (1, 2, 3, etc.) and Master Work Plan Year (2019, 2020, etc.). In addition, if Network Master has EFF_YEAR field, then this field acts as a filter for Network Master when selecting sections into optimization.
- Analysis Length: This field defines the length of analysis scenario.
- Save Details: This check box determines whether the system saves the details of the optimization. When it is checked, the details from the analysis are saved and may be viewed in the Detailed Optimization Results window. When it is not checked, the details are not saved, although the overall results of the analysis will still be available in the Results tab.
- Segmentation Type: This field defines which "set" of segmentation from Network Master will be used in running analysis. Similar to Year of Condition Data field, this field acts a filter for Network Master using Segmentation Type when selecting sections into optimization engine.
- Analysis Scope: This read-only field shows the data elements that are included in the optimization. The scope is set with the Edit Scope command (right-click and select “Edit Analysis Scope”).
- Administrative Unit: Analysis scenarios can be restricted by administrative unit. This field is included in the Setup tab and shows which unit "owns" the displayed analysis. For example, if the field shows Headquarters, then only users who select the Headquarters administrative unit when logging on may see and run the analysis.
- Decision Tree Set: This field determines what decision tree set will be used in the analysis.
- Work Plan Type: This field provides a drop-down list of all available work plans (which are defined in the Setup Work Plan Type window). When you select a work plan from the drop-down list, the projects and costs from this work plan are first included in the optimization and then remaining rehabilitation recommendations are taken from decision tree results. If you do not select a work plan, then the optimization is run without consideration of a pre-defined work plan; it gets its rehabilitation recommendations entirely from decision tree results. To remove a work plan from the Work Plan Type field so no plan is selected, highlight the displayed work plan and then press the Delete key.
- MWP Scope: This read-only field shows what work plans are included in the optimization. The plans are included by using the Edit MWP Scope command (right-click and select “Edit MWP Scope”).
- Scheduled: When this check box is selected, the system job Run All Scheduled Optimization Scenarios will execute this scenario. This system job allows all scheduled scenarios to run during off-hours to reduce the impact of the optimization analysis on the performance of the system. When several scenarios are scheduled, the system job will execute them sequentially.
- Round Cost: This field causes the system to round the cost of projects to the selected rounding value before submitting the project to the solver engine. The greater the rounding, the faster the solver will converge on a solution. Note the rounded cost will only show up in the Constr. Results tab. The Results tab and Report tab will still display the real unrounded treatment cost.
- General Strategy Type: The entries that appear in this list are created and maintained in the Setup General Strategy Types window. This column determines what general strategies will be used in Strategy analysis.
Disable GEOM Calculation: This parameter can disable the geometry calculation in the analysis results (i.e., Scenario Work Plan and Detailed Analysis Result) for any location records when they are not needed, to improve performance and reduce disk usage. Later, if needed, user can use the right-click command “Calculate Geometry” to re-calculate them.
Note: This option is only applicable to standard version of Pavement Analyst.- Comments: User can include information in this field to describe the optimization.
Out of the box, these following parameters are hidden and can be displayed if needed:
- Analysis Weight Groovy Script: This field shows the name of the Groovy script that determines the weighting used to calculate Benefit. If a Groovy script is not utilized and this field is null, the value is taken from the Calculated Expression window where the drop-down list at the top of the window is set to Analysis Index Weight Factor.
- Priority Groovy Script: This field shows the name of the Groovy script that determines how analysis factors are prioritized against one another when the analysis type is Prioritization. Different from Analysis Weight Groovy Script, if a Groovy script is not utilized and this field is null, no value will be used for priority.
- Send Email Notifications: When this check box is selected, the system will send an email when the scenario finishes. The system sends the email to the email address of the logged-on user as configured in the User Names and Access window.
- Is Trade-off Scenario: When this check box is selected, the results of the reporting functions are available in the Trade-off module. AgileAssets recommends that all state-wide scenarios be marked as Trade-off Scenarios. Scope and Existing Work plans
- Is Template: If this check box is selected, then no modifications may be made to the settings for the scenario. The scenario is in effect a template for creating a new scenario. To create a new scenario from the template, right-click in the Scenarios pane and then click Copy Scenario. The system then creates a copy of the template and you may modify it as needed.
- Budget Relaxation (%): This value is used for multi-year optimization analysis only when 'minimize budget' is used as the objective. In this case, a value in this field sets a boundary for how much the budget may vary in a particular year will be compared with the total budget specified for the scenario. For example, if you are running a ten-year analysis scenario with a budget of $1,000,000 per year, then entering 0.1 (meaning 10%) for budget relaxation would allow the total budget in any year to vary between $900,000 and $1,100,000 (10% above or below the yearly amount specified).
- Percent Gap: When a percentage is entered in this field (as a decimal value), the solver will stop when the integer solution is within the defined percentage of the linear solution (that is, the "perfect solution"). The bigger this number, the faster the solver will find a solution; however, this selected solution can be very rough and is not guaranteed to be the “best” solution. When left null or defined as 0, the solver will find the best integer solution (as close to the linear solution as possible).
- Decompose: When this check box is selected, the analysis engine will attempt to break the analysis into simpler, more quickly solved sub-analyses. A sub-analysis is performed for each independent constraint. (If the constraints are not independent of each other, then the analysis will not be broken down.)
- Make LP File: When this check box is selected, an LP optimization definition file is generated and will be available for inspection after the analysis is run. This file format is somewhat easier to read than the standard MPS file format. Note: The LP-format file is only generated for user inspection; the MPS-format file is always passed to the solver. This check box must be selected if you want to use the Download LP File command.
- Max Sec for Solver: This field sets the maximum amount of time (in seconds) that the optimization analysis will be allowed to run before settling on a solution. (In some optimization analyses, many optimal solutions are available, and the routine will "hunt" between each solution without settling on one and ending. Since these solutions are only marginally different than one another, forcing the routine to finish by setting the maximum amount of time that it can "hunt" is necessary and appropriate.)
- Number of Nodes in Solution: This field sets the maximum number of decision nodes passed into the Integer Solver. This is accomplished by running a heuristic search algorithm prior to running the solver that eliminates decision nodes that are unlikely to change during the actual Integer Programming optimization. A value of 0 passes all nodes to the solver. This field affects the analysis as follows:
- The system runs a linear programming solution (LPS) iteratively. It uses this type of solution because it is fast.
- For defect elements in the LPS result whose “portion to include [remedy]” into the optimal result is close to 0 or 1, the system rejects or includes these defect elements entirely in the solution.
- The system repeats steps 1 and 2 on the reduced set of defect elements until there are only N nodes (defect elements) left in the undetermined state (that is neither accepted [remedied] or rejected [not remedied]).
For these remaining nodes (defect elements), run the integer program (where the 0/1 solutions from LPS are hard-wired as inputs into the integer program).
Note: Performance of an optimization analysis can be improved by experimenting with the values entered in the Number of Nodes in Solution and/or Max Sec for Solver fields. In general, increasing the number of nodes improves the quality of the optimization, but at the cost of increasing the amount of time that the analysis runs. Similarly, increasing the amount of time that the Solver runs will improve the quality of the optimization, but at the cost of lengthier run times.
Project Cost Threshold: This field determines the amount of the project cost (expressed as a decimal percentage) that must be within the budget constraint to be included in the Priority and Ranking types of analysis. When performing these two types of analysis with a budget constraint, this field determines the amount of a project's cost that must be within budget to be included. The value may range from 0.0 to 1.0 (corresponding to 0% to 100% of the budget), with 0.5 (50%) being the default value. A setting of 0.0 will always result in the budget constraint being reached or exceeded; a setting of 1.0 will result in the budget constraint never being exceeded.
The following example shows how Project Cost Threshold work. An agency has the following five projects with the assigned priorities and costs:
Project Name | Project Cost | Project Priority |
---|---|---|
Project 1 | $2,000 | 190 |
Project 2 | $3,000 | 90 |
Project 3 | $1,000 | 150 |
Project 4 | $500 | 20 |
Project 5 | $1,800 | 70 |
The agency wants to prioritize these projects by their priority value with a budget constraint of $4,400. The first part of the analysis is to simply rank the projects by priority. This results in the projects being sorted into the order shown in the following table.
Project Name | Project Cost | Project Priority |
---|---|---|
Project 1 | $2,000 | 190 |
Project 3 | $1,000 | 150 |
Project 2 | $3,000 | 90 |
Project 5 | $1,800 | 70 |
Project 4 | $500 | 20 |
If the budget was unlimited, the analysis could stop here, and all the projects would be in the ranking. However, since the budget is constrained to $4,400, the analysis engine must consider whether a project can be included in the ranking based upon the cost of the project. The criterion for whether a project can be included in the ranking is the setting of the Project Cost Threshold field, which determines the percentage of the project cost that must be within the budget constraint to be included in the ranking.
In essence, the analysis engine takes each project in priority order, adds the cost of the project to the running total, and compares the new running total to the budget constraint. If the new running total exceeds the budget constraint, the analysis engine multiplies the project's cost by the setting of the Project Cost Threshold field, adds the resulting value to the running total cost of all projects, and evaluates whether the new running total exceeds the budget constraint. If it does not exceed the budget constraint, analysis continues; if it equals or exceeds the budget constraint, analysis stops.
The following table shows three settings for the Project Cost Threshold field and notes which projects will be included in the project because of the value of this field.
Project Cost Threshold (PCT) | Projects Included in the Prioritization |
---|---|
0.0 (This value results in the budget always being exceeded unless the list of projects is exhausted.) | Project 1 is included ($2,000 ≤ $4,400). Project 3 is included ($1,000 ≤ $2,400 [remaining budget after including Project 1]). Project 2 is included (while $3,000 > $1,400, the [PCT value * $3,000] ≤ $1,400). Ranking stops because running total ($6,000) exceeds budget constraint ($4,400). |
0.5 (This is the default value.) | Project 1 is included ($2,000 ≤ $4,400). Project 3 is included ($1,000 ≤ $2,400). Project 2 is not included (the [PCT value * $3,000] > $1,400). Project 5 is included (the [PCT value * $1,800] ≤ $900). Ranking stops because running total ($4,800) exceeds budget constraint ($4,400). |
1.0 (This value results in the budget never being exceeded.) | Project 1 is included ($2,000 ≤ $4,400). Project 3 is included ($1,000 ≤ $2,400). Project 2 is not included (the [PCT value * $3,000] > $1,400). Project 5 is not included (the [PCT value * $1,800] > $900). Project 4 is included ($500 ≤ $900). Ranking stops because list of projects is exhausted; budget constraint not reached. |
Constraints Pane
For any analysis type other than “Estimate MWP Influence”, the scenario must have one (or more) objective(s) and constraints.
The system supports three types of constraint/objectives:
- Total: The analysis engine will stop when the constraint reaches the total amount shown in the Constraint Limit Value column. Typically, this type is only used on Treatment Cost to constraint on budget.
- Weighted Average: The analysis engine will constraint the weighted average value of a column using the Index Weight of each segment defined through Calculated Expression window (see Index Weight) or if the scenario has an Analysis Weight Groovy Script defined.
- Percent above Threshold: The analysis engine will stop when the constraint value exceeds a threshold value by a certain percentage. The value for the threshold is entered in the Condition Threshold column and the percentage value is entered in the Constraint Limit Value column.
This Constraints pane of Optimization Analysis window contains the following fields:
- Is Objective: A check mark in this column indicates that the selected constraint is the objective of the analysis. You may select more than one objective, but if so the Constr. Type column should be set to Weighted Average, with the objective weights entered in the Objective Coefficients column.
- Objective Coefficient: This column is left blank unless you select multiple objectives. In this case, this column indicates the relative weight of each objective against the others.
- Constraint Column: This column contains a drop-down list. The list contains those columns with a check mark in the Is Constraint check box in the Setup Analysis Columns window. The constraint you select for this column is either the objective of the analysis or acts to limit what is considered for inclusion in the work plan by the analysis engine.
- Constr. Type: This column contains a drop-down list of the allowed constraint types: Percent above Threshold, Total, and Weighted Average. These three types are described in previous sections.
- Constraint Limit Value: This column is left blank except when the “Is Objective” column is checked for the “Constraint Column”. This column sets the limit value that must be satisfied during analysis. For “Total” constraint type, this column sets a cumulative value that will cause the analysis engine to stop. For “Weighted Average” constraint type, this column sets the lowest or highest value of weighted average of the constraint. For “Percent above Threshold” constraint type, this column sets the threshold value that the constraint value must exceed (by a certain percentage) for the analysis engine to stop. For this type, this column supplies the percentage value that will cause the analysis engine to stop. The percentage value is entered as a decimal value (for example, 10% is entered as 0.1).
- Condition Threshold: This column is left blank except when the Constr. Type column is set to “Percent above Threshold”. This column sets the threshold value for the section condition above which the sections will be counted. For example, if the constraint is “more than 70% of the lane-miles have IRI lower than 2 m/km,” this column will be set to “2”, and Constraint Limit Value column will be set to 0.7.
- Scenario Year: This column is left blank for a constraint if the constraint will apply across all years of the analysis period. If the constraint will vary by year, then fill this field by right-clicking the pane to display the shortcut menu and then click Propagate Years. The system will then create multiple records for the selected constraint, one for each year of the analysis period, and insert the analysis year in this column for each constraint record.
- Add Constr.: and Constraint Subdivision: These two columns will display the sub-divisions information if this function is activated. When the Activate Constraint subdivision command is executed, the system inserts records for each sub-constraint in the selected constraint subdivision. It enters the name of the constraint subdivision in the Add Constr. column and the name of the sub-constraint in the Constraint Subdivision column.
When right-clicking this pane, the following special commands are available along with the common commands:
- Activate Constraint Subdivisions: This command inserts records for each of the constraint subdivisions into which the selected constraint is subdivided as configured in the Setup Constraint Subdivisions window.
- Propagate Years: This command inserts a record for each of the years in the analysis period that is the same as the record you right-clicked (other than year).
- Set to Included MWP Budget: This command identifies the MWP projects that match the year and constraint partition of the record (and are within the analysis scope and MWP scope). It then calculates a total cost for these identified projects and inserts the cost in the MWP Budget field of the Treatment Cost constraint. For example, say the constraint is on treatment costs for the year 2012 with an "Interstate" functional class partition. The system finds all of the interstate sections included in the analysis scope and then finds all MWP projects within the year 2012 that intersect those sections. It then places the total project costs for the overlapping portions of those projects in the MWP Budget field of these constraint records and leave the field 0 for other constraint records.
- Copy MWP Budget to RHS: RHS (Right Hand Side) here means the constraint limit value for Treatment Cost constraint. This command copies the value in “MWP Budget” field to the “Constraint Limit Value” for the selected Treatment Cost constraint (the selected Treatment cost in a specific year or subdivision).
- Copy All MWP Budget to RHS: This command is similar to “Copy MWP Budget to RHS” except it copies all MWP budget value to the “Constraint Limit Value” for the selected Treatment Cost constraint.
- Copy Greater MWP Budget to RHS: This command compares the current MWP Budget field and Constraint Limit Value field for Treatment Cost constraint, and put the greater value in the Constraint Limit Value field for Treatment Cost constraint.
Constraint Subdivision
The system allows to configure constraint subdivisions under a general constraint. This allow the user to further subdivide the assets within the problem scope in order to specify more detailed constraints. For example, the user might want to specify different desired condition levels for each the functional class or pavement type. The following steps provide a general process of adding a sub-division constraint:
- Go to Setup Constraint Subdivisions window and define a constraint subdivision tree
- In Constraint pane of the Optimization Analysis window, right click the constraint record
- Click Activate Constraint Subdivisions, and select the desired sub-divisions (created in the last step)
The application will then insert a record for each child node shown in the Setup Constraint Subdivisions window with the name of the node shown in the Node Name column - Edit each newly inserted record to reflect the appropriate constraint limit
Add Objectives
To add objectives, follow the steps below:
- In the right pane, right-click and then select Insert
A new record is added to the pane - Click the Is Objective check box
- Click the drop-down arrow in the Constraint Column and then select the desired objective
- Depending on the objective selected, only a certain value may be permitted for the Constr. Type column and so the application automatically sets this column
If this does not occur, click the drop-down arrow in the Constr. Type column and then click the appropriate constraint type
Note: It is possible to configure multiple objectives for PMS optimization analysis. In this case, the Constr. Type column should be set to Weighted Average for each objective, with each objective's "weight" entered in the Objective Coefficient column. (If the units of the objectives are different, the software will normalize the weight coefficients.)
Enter Constraint Records
After configuring the objective(s) for the analysis, one or more constraints may be configured. A constraint record may apply to all years in the optimization period or multiple constraint records may be created for each year in the optimization period.
To enter constraint records, follow the steps below:
- In the Constraint pane, right-click and then select Insert
A new record is added to the pane. - Click the drop-down arrow in the Constraint Column and then select the desired constraint
- Click the drop-down arrow in the Constr. Type column and then select the desired constraint type
In the Constraint Limit column, enter the value for the constraint
Note: Percentages are entered as a decimal value between 0 and 1 (for example, 5% is entered as 0.05 not 5).- If the constraint type is Percentage above Threshold, enter the threshold value in the Condition Threshold column
- If the constraint will apply to all years in the optimization period, leave the Scenario Year field blank
Otherwise, right-click the constraint record and then click Propagate Years in the shortcut menu
The application enters a constraint record for each year in the optimization period (which was set in step 5) as a copy of the record you right-clicked. It also enters the year in the Scenario Year field. You will now need to edit each newly inserted record to reflect the appropriate constraint limit.
Yearly Financial Parameters Pane
The Yearly Financial Parameters pane allows the user to enter values for discount rate and inflation for each year in the analysis period. These values must be entered as decimals (for example, 3% is entered as 0.03, not 3).
- The inflation rate is the rate of increase of a price index (the percentage rate of change in price level over time). The inflation rate affects the budgeted dollar amount by the following formula: Value in Next Year = Value in Current Year x (1 + Entered Inflation Value).
- The discount rate is the value of money over time. A positive value decreases the value of money over time. The discount rate affects the budgeted dollar amount by the following formula: Actual Dollar Value = Budgeted Dollar Value - (Discount Rate x Budgeted Dollar Value).
Reporting Functions Pane
This pane configures what constraints will be shown in the Report tab. It has no bearing on the optimization routine itself. This pane allows you to see the value of a constraint after optimization without using the constraint to affect the outcome of the optimization routine.
When you right-click this pane, the following special commands are available along with the common command:
- Activate Constraint Subdivisions: This command inserts records for each of the constraint subdivisions into which the selected constraint is subdivided as configured in the Setup Constraint Subdivisions window.