JOpt.SDK
Interface INode
- All Superinterfaces:
- IDistanceMatrixEntry, IViolation
- All Known Subinterfaces:
- IGeoNode, IScheduledNode, ITimeWindowNode
- All Known Implementing Classes:
- TimeWindowGeoNode
- public interface INode
- extends IViolation, IDistanceMatrixEntry
nodes are single work orders to be performed within a schedule. Each node has different properties like
skills, workload, time-window, loading restrictions. Together with resources nodes build
the input for the optimization run.
setNodeId
public void setNodeId(java.lang.String nodeId)
- Parameters:
nodeId - set the node's unique Id
getNodeId
public java.lang.String getNodeId()
- Returns:
- get the node's unique Id
setPriority
public void setPriority(int priority)
- Parameters:
priority - set the node's priority
getPriority
public int getPriority()
- Returns:
- get the node's priority
setType
public void setType(java.lang.String type)
- Parameters:
type - define the type of the node to be compared to the corresponding permitted types
for each resource. If this value is not set, any resource can service this node.
getType
public java.lang.String getType()
- Returns:
- node type
setLoad
public void setLoad(double[] load)
- Parameters:
load - define an arbitrary load vector for this node
to be compared to the corresponding capacity vector each resource
getLoad
public double[] getLoad()
- Returns:
- load vector for this node
setVisitationFrequency
public void setVisitationFrequency(int numVisits)
- Defines a visitation frequency for periodic visits. When visitation frequency is set, JOpt will automatically divide the given opening hours into
'numVisits' clusters where each cluster's upper and lower boundary is defined by equidistant points in time that in turn are calculated as follows:
leftboundary[clusterNo] = OpeningHours[0] + (OpeningHours[OpeningHours.Length]-OpeningHours[0])/numVisits * (clusterNo-1)
rightboundary[clusterNo] = OpeningHours[0] + (OpeningHours[OpeningHours.Length]-OpeningHours[0])/numVisits * clusterNo
- Parameters:
numVisits -
getVisitationFrequency
public int getVisitationFrequency()
- Returns:
- visitation frequency
setRelationships
public void setRelationships(IRelationship[] relationships)
- Parameters:
relationships - define relationships between nodes (e.g. fixed sequence for pickup and delivery stops,
pre-defined succession of stops, separation of goods)
getRelationships
public IRelationship[] getRelationships()
- Returns:
- relationships to other nodes
setPreferableResource
public void setPreferableResource(java.lang.String resourceId)
- Parameters:
resourceId - set a preferable resource to visit this node
getPreferableResource
public java.lang.String getPreferableResource()
- Returns:
- the preferable reource for that node or null if the resource is not set
setImportance
public void setImportance(int importance)
- Parameters:
importance - set the node's importance. Nodes that are less important may be left out in the STRICT_SINGLEDEPOT_MIXEDFLEET or the STRICT_MULTIDEPOT_MIXEDFLEET mode if they don't fit into the schedule.
getImportance
public int getImportance()
- Returns:
- get the node's importance
setUnassigned
public void setUnassigned(boolean unassigned)
- Returns:
- may be used by the strict mode to mark unassigned nodes
isUnassigned
public boolean isUnassigned()
- Returns:
- true if the node could not be assigned in stric mode
isBreakAttached
public boolean isBreakAttached()
- Returns:
- true if the node directly follows a daily break