com.esri.arcgis.networkanalyst
Interface INAVRPSolver

All Superinterfaces:
Serializable
All Known Implementing Classes:
NAVRPSolver

public interface INAVRPSolver
extends Serializable

Provides access to the VRP solver.

Description

This interface is new at ArcGIS 9.3.

Remarks

INAVRPSolver is the interface provided on the NAVRPSolver object to access the properties of the VRP solver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 int getCapacityCount()
          The number of dimensions for object sizes.
 Date getDefaultDate()
          The date to use for time windows without dates.
 int getDistanceFieldUnits()
          The units for distance fields in the NA classes.
 double getExcessTransitTimePenaltyFactor()
          The penalty factor for excess transit time in the objective function.
 INAODCostMatrix getExternalODCostMatrix()
          The external OD cost matrix object.
 int getInternalODCostMatrixType()
          Indicates the type of internal matrix to be created.
 int getOutputLines()
          Indicates how route lines are generated.
 int getTimeFieldUnits()
          The units for time fields in the NA classes.
 double getTimeWindowViolationPenaltyFactor()
          The penalty factor for time window violation in the objective function.
 boolean isGenerateInternalRouteContext()
          Indicates if the internal route context should be generated.
 void setCapacityCount(int value)
          The number of dimensions for object sizes.
 void setDefaultDate(Date date)
          The date to use for time windows without dates.
 void setDistanceFieldUnits(int units)
          The units for distance fields in the NA classes.
 void setExcessTransitTimePenaltyFactor(double value)
          The penalty factor for excess transit time in the objective function.
 void setExternalODCostMatrixByRef(INAODCostMatrix matrix)
          The external OD cost matrix object.
 void setGenerateInternalRouteContext(boolean value)
          Indicates if the internal route context should be generated.
 void setInternalODCostMatrixType(int type)
          Indicates the type of internal matrix to be created.
 void setOutputLines(int value)
          Indicates how route lines are generated.
 void setTimeFieldUnits(int units)
          The units for time fields in the NA classes.
 void setTimeWindowViolationPenaltyFactor(double value)
          The penalty factor for time window violation in the objective function.
 

Method Detail

getInternalODCostMatrixType

int getInternalODCostMatrixType()
                                throws IOException,
                                       AutomationException
Indicates the type of internal matrix to be created.

Remarks

The InternalODCostMatrixType property specifies a value of type esriNAODCostMatrixType. This enumeration constrains how the VRP solver uses and manages an internal NAODCostMatrixResult object during a Solve.

A client using the internal OD cost matrix pattern should set this property to esriNAODCostMatrixFull whenever the set of barrier locations, restrictions, usage of hierarchy or attribute parameter values have changed since the last Solve operation. This ensures that the internal OD cost matrix is fully recalculated based on any new barrier locations or solver settings. Otherwise, setting this property to esriNAODCostMatrixUpdate will ensure that the internal cost matrix is updated with new OD cost entries for locations added since the last Solve operation.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
A com.esri.arcgis.networkanalyst.esriNAODCostMatrixType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setInternalODCostMatrixType

void setInternalODCostMatrixType(int type)
                                 throws IOException,
                                        AutomationException
Indicates the type of internal matrix to be created.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
type - A com.esri.arcgis.networkanalyst.esriNAODCostMatrixType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isGenerateInternalRouteContext

boolean isGenerateInternalRouteContext()
                                       throws IOException,
                                              AutomationException
Indicates if the internal route context should be generated.

Remarks

The GenerateInternalRouteContext property controls whether the VRP solver should create an internal Route NAContext upon Solve. This property can be set to True only when using the internal OD cost matrix pattern.

The internal Route NAContext can be used by the VRP solver to generate true route shapes and directions for the routes.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setGenerateInternalRouteContext

void setGenerateInternalRouteContext(boolean value)
                                     throws IOException,
                                            AutomationException
Indicates if the internal route context should be generated.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getExternalODCostMatrix

INAODCostMatrix getExternalODCostMatrix()
                                        throws IOException,
                                               AutomationException
The external OD cost matrix object.

Remarks

The ExternalODCostMatrix property can be used to specify an externally-created NAODCostMatrixResult object or custom object that implements the INAODCostMatrix interface for use within the VRP solver Solve operation. The impedance and accumulate attributes for this matrix object must agree with those of the VRP solver settings.

The ExternalODCostMatrix property value is NULL by default. This property should only be set when the INAVRPSolver.InternalODCostMatrixType is equal to esriNAODCostMatrixNone. This property is also not persisted. When a VRP solver instance is re-hydrated, the value for this property is NULL.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
A reference to a com.esri.arcgis.networkanalyst.INAODCostMatrix
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setExternalODCostMatrixByRef

void setExternalODCostMatrixByRef(INAODCostMatrix matrix)
                                  throws IOException,
                                         AutomationException
The external OD cost matrix object.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
matrix - A reference to a com.esri.arcgis.networkanalyst.INAODCostMatrix (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTimeFieldUnits

int getTimeFieldUnits()
                      throws IOException,
                             AutomationException
The units for time fields in the NA classes.

Remarks

The TimeFieldUnits property specifies the unit of time to associate with the time-based input and output field values of NAClasses within a VRP NAContext. Examples of such time-based fields include the ServiceTime field on the Orders NAClass and the CostPerUnitTime field on the Routes NAClass. This time unit need not agree with the time unit of the impedance cost attribute. For example, the client may use an impedance cost attribute based on minutes but use seconds for the time-based field values.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
A com.esri.arcgis.geodatabase.esriNetworkAttributeUnits constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTimeFieldUnits

void setTimeFieldUnits(int units)
                       throws IOException,
                              AutomationException
The units for time fields in the NA classes.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
units - A com.esri.arcgis.geodatabase.esriNetworkAttributeUnits constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDistanceFieldUnits

int getDistanceFieldUnits()
                          throws IOException,
                                 AutomationException
The units for distance fields in the NA classes.

Remarks

The DistanceFieldUnits property specifies the unit of distance to associate with the distance-based input and output field values of NAClasses within a VRP NAContext. Examples of such distance-based fields include the TotalDistance field and the CostPerUnitDistance field on the Routes NAClass. This distance unit need not agree with the distance unit of the accumulate cost attribute. For example, the client may use an accumulate cost attribute based on kilometers but use miles for the distance-based field values.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
A com.esri.arcgis.geodatabase.esriNetworkAttributeUnits constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDistanceFieldUnits

void setDistanceFieldUnits(int units)
                           throws IOException,
                                  AutomationException
The units for distance fields in the NA classes.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
units - A com.esri.arcgis.geodatabase.esriNetworkAttributeUnits constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDefaultDate

Date getDefaultDate()
                    throws IOException,
                           AutomationException
The date to use for time windows without dates.

Remarks

The DefaultDate property is used to specify the default date portion of date-based fields (where FieldType = esriFieldTypeDate) within the NAClasses of a VRP NAContext. Fields of type esriFieldTypeDate can actually be used to specify both date-time values (e.g., June 1, 2008, 8AM) and time-only values (e.g., 8AM). Time-only values will be interpreted by the VRP solver as having a date portion equal to the DefaultDate property value.

For example, if a date-based field value within a particular NAClass of a VRP NAContext is set as the time-only value 8AM and the DefaultDate property value is set as June 1, 2008, then the VRP solver will interpret this date-based field value as June 1, 2008, 8AM.

The DefaultDate property cannot be before January 1, 1900 or after December 31, 9999. By default, the DefaultDate property is set equal to the current date when the solver is created.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The date
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultDate

void setDefaultDate(Date date)
                    throws IOException,
                           AutomationException
The date to use for time windows without dates.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
date - The date (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCapacityCount

int getCapacityCount()
                     throws IOException,
                            AutomationException
The number of dimensions for object sizes.

Remarks

Capacities are used to model cumulative quantity constraints on the routes. These constraints typically arise from physical measurements and limit the total pickup and/or delivery quantities of orders associated with a route. The CapacityCount property specifies the number of different capacities that are being constrained. For example, if you are constraining weight and volume, the CapacityCount would be 2. Following this example, a route feature with its Capacities field value set to 2000 500 would indicate that it can transport a maxium weight of 2000 units (pounds) with a maximum volume of 500 units (cubic feet). An order feature might have its DeliveryQuantities field value set to 10 5 indicating that the weight of the order is 10 and its volume is 5.

The units for capacities are not specified in the VRP solver; furthermore, the ordering of the capacities in the string is arbitrary. This means that within a VRP analysis, capacities always need to be listed in the same sequence (in this example, weight and then volume) among all routes and orders. The number of tokens in these strings cannot exceed the CapacityCount property value.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCapacityCount

void setCapacityCount(int value)
                      throws IOException,
                             AutomationException
The number of dimensions for object sizes.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTimeWindowViolationPenaltyFactor

double getTimeWindowViolationPenaltyFactor()
                                           throws IOException,
                                                  AutomationException
The penalty factor for time window violation in the objective function.

Remarks

A time window violation occurs when a route arrives at an order, depot, or break after a time window has closed. The violation is the interval between the end of the time window and the arrival time. This property is used for calibrating time window violations within the solver objective function. For example, a penalty factor value of 5.0 means that a minute of time window violation increases the solver objective function value by the cost of five minutes of work time. The higher the penalty factor, the more the solver will favor solutions with smaller time window violations versus reducing overall route duration for the fleet. This penalty factor must be zero or positive, and cannot exceed one billion. The penalty influences the solver objective function during the optimization process, but is not included in the output route operating costs. The default value for this property is 1.0.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTimeWindowViolationPenaltyFactor

void setTimeWindowViolationPenaltyFactor(double value)
                                         throws IOException,
                                                AutomationException
The penalty factor for time window violation in the objective function.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getExcessTransitTimePenaltyFactor

double getExcessTransitTimePenaltyFactor()
                                         throws IOException,
                                                AutomationException
The penalty factor for excess transit time in the objective function.

Remarks

Excess transit time is the amount of time exceeding the time required to travel directly between the paired orders. The excess time results from breaks or travel to other intermediate orders or depots between visits to the paired orders. This property is used for calibrating excess transit time between order pairs within the solver objective function. For example, a penalty factor value of 5.0 means that one minute of excess transit time increases the solver objective function value by the cost of five minutes of work time. The higher the penalty factor, the more the solver will favor solutions with less excess transit time between paired orders versus reducing overall route duration for the fleet. The penalty influences the solver objective function during the optimization process, but is not included in the output route operating costs. The default value for this property is 1.0.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setExcessTransitTimePenaltyFactor

void setExcessTransitTimePenaltyFactor(double value)
                                       throws IOException,
                                              AutomationException
The penalty factor for excess transit time in the objective function.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOutputLines

int getOutputLines()
                   throws IOException,
                          AutomationException
Indicates how route lines are generated.

Remarks

OutputLines specifies the type of line geometries that are generated by the NAVRPSolver object in the Routes NAClass.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
A com.esri.arcgis.networkanalyst.esriNAOutputLineType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setOutputLines

void setOutputLines(int value)
                    throws IOException,
                           AutomationException
Indicates how route lines are generated.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
value - A com.esri.arcgis.networkanalyst.esriNAOutputLineType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.