📄 shipmentconstraint.java
字号:
package com.power.pipeengine.Constraint;
import java.util.*;
import com.power.pipeengine.Entity.*;
import com.power.pipeengine.InputData.*;
import com.power.pipeengine.LPModel.*;
import com.power.pipeengine.Variable.*;
import com.power.pipeengine.*;
import com.power.lpsolver.LPSolve.*;
public class ShipmentConstraint
extends Constraint {
static ResourceBundle res = ResourceBundle.getBundle(
"com.power.pipeengine.Res",
EngineConfig.getInstance().getLocale());
private Vector _constraints = new Vector();
private static final ShipmentConstraint INSTANCE =
new ShipmentConstraint();
// Private constructor supresses
// default public constructor
private ShipmentConstraint() {
setConstraintType(res.getString("INTER_SHIPMENT"));
}
public static ShipmentConstraint getInstance() {
return INSTANCE;
}
public Vector getConstraints() {
return _constraints;
}
public void buildConstraints() {
super.publishMessage();
DataModel dataModel = DataModel.getInstance();
Enumeration allShipments = dataModel.getInterShipment().getShipments().
elements();
PIPECalendar cal = dataModel.getCalendar();
ShipOutVariable shipOutVar = ShipOutVariable.getInstance();
ReceivingVariable rcvVar = ReceivingVariable.getInstance();
Model mdl = Model.getInstance();
MemoryManager memMgr = MemoryManager.getInstance();
String varName = null;
while (allShipments.hasMoreElements()) {
Shipment s = (Shipment) allShipments.nextElement();
Vector buckets = cal.getBuckets();
for (int i = 0; i < buckets.size(); i++) {
Bucket b = (Bucket) buckets.elementAt(i);
Bucket startBucket = shipOutVar.getShippingStartBucket(s, b);
if (startBucket == null)
continue;
//add a new constraint to LP Solver
int rowNumber = mdl.getNumberOfRows();
com.power.lpsolver.LPSolve.Constraint con =
new com.power.lpsolver.LPSolve.Constraint("SP" + rowNumber,
rowNumber);
varName = shipOutVar.getVariable(s.getFromFacility(),
s.getToFacility(),
s.getFromProduct(),
startBucket);
int colIdx = mdl.getModelVariables().addVariable(varName);
Element elem = memMgr.getElement();
elem.setProperties(colIdx, 1.0);
con.addElement(elem);
this.addMPSElem(con, colIdx, elem);
varName = rcvVar.getVariable(s.getFromFacility(),
s.getToFacility(),
s.getToProduct(),
b);
colIdx = mdl.getModelVariables().addVariable(varName);
elem = memMgr.getElement();
elem.setProperties(colIdx, -1.0);
con.addElement(elem);
this.addMPSElem(con, colIdx, elem);
con.setSign("=");
con.setRHS(0.0);
mdl.addConstraint(con);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -