NS3 Dimension RangeDimension Range
Overview
A dimension range provides a soft constraint on the target flow for a particular node. This is useful when modelling production nodes which can manufacture a maximum amount of a given product (specified by the dimensions associated with that product). The dimension range is also used to model the consumption requirements of nodes (i.e. to satisfy the customer demand in a network). It may occur that certain demands have no feasible way of being satisfied in a particular network (due to flow or design constraints). In such instances, if the demand is not satisfied, a penalty cost is incurred per unit not within the specified range.
Having dimension range penalties on both production and consumption nodes allows the user to model situations where demand cannot be satisfied by the available production nodes, allowing one to then manipulate the penalties on consumption ranges (or, conversely, production ranges) to model where additional capacity should be created to satisfy the larger consumption.
Applicable models
- NS3
ns3-tbfvuwtge2iq
Dimension Range
The dimension range specifies a target range for a node in the network. The constraint is soft in that, if the value in the solution lies outside the specified range, a penalty cost will be applied per unit exceeded. It is typical to apply large penalty values to consumption and production nodes to ensure that demand is satisfied and that production capacities at certain nodes is not exceeded.
Schema definition
message DimensionRange {
required string dimensionId = 1;
required float minRange = 2 [default = 0.0];
required float maxRange = 3;
required float flowPenalty = 4 [default = 0.0]; // penalty applied if the final value is not within the range.
}Fields
- dimensionId
- The dimension identifier.
- minRange
- The minimum value that may be assigned to this dimension.
- maxRange
- The maximum value that may be assigned to this dimension.
- flowPenalty
- The penalty cost that should be applied should the assigned value fall outside of the specified min/max range.
Examples
This example specifies a limit for a production node on the weight dimension where a maximum of 400 units may be produced in this dimension at this node. Any amount assigned to this production node between 0 and 400 will not incur any penalty costs.
dimensionId: "weight"
minRange: 0
maxRange: 400
flowPenalty: 10000By contrast, this next example specifies an exact range (minRange = maxRange). This is typical when specifying the flow requirements at consumption nodes where a specific quantity is required by the demand node. The flowPenalty is very large in this particular instance indicating that if any reasonable path is taken by the product to service the demand node, it will incur less cost than that specified by the penalty. This ensures that if the node can be serviced in the model (i.e. a feasible path does exist), then it will be serviced. This is a particularly useful technique used to identify structural problems in a network where no feasible path in the network may exist to service a particular node.
dimensionId: "weight"
minRange: 74
maxRange: 74
flowPenalty: 1e+06