📄 backordertwovariable.java
字号:
package com.power.pipeengine.Variable;
import java.util.*;
import com.power.pipeengine.Entity.*;
import com.power.pipeengine.*;
/**
*
* <p>Title: PIPE Engine</p>
* <p>Description: Global Planning Optimization Engine</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Paraster, Inc.</p>
* @author Wei Tan
* @version 1.0
*/
/**
* BackorderTwoVariable defines the portion of the demand that is fulfilled two
* buckets later.
*/
public class BackorderTwoVariable
extends Variable {
private static final BackorderTwoVariable INSTANCE =
new BackorderTwoVariable();
// Private constructor supresses
// default public constructor
private BackorderTwoVariable() {
}
public static BackorderTwoVariable getInstance() {
return INSTANCE;
}
private Hashtable _definedVars = new Hashtable();
private String getDefinedVar(Facility f, Product p, Bucket b) {
Hashtable prodHash = (Hashtable) _definedVars.get(f.getFacilityIDString());
if (prodHash == null)
return null;
Hashtable bucketHash = (Hashtable) prodHash.get(p.getProductID());
if (bucketHash == null)
return null;
return (String) bucketHash.get(b.getBucketIDString());
}
private void addDefinedVar(Facility f, Product p, Bucket b, String varName) {
Hashtable prodHash = (Hashtable) _definedVars.get(f.getFacilityIDString());
if (prodHash == null) {
prodHash = new Hashtable();
_definedVars.put(f.getFacilityIDString(), prodHash);
}
Hashtable bucketHash = (Hashtable) prodHash.get(p.getProductID());
if (bucketHash == null) {
bucketHash = new Hashtable();
prodHash.put(p.getProductID(), bucketHash);
}
bucketHash.put(b.getBucketIDString(), varName);
}
public String getVariable(Facility f, Product p, Bucket b) {
String varName = getDefinedVar(f, p, b);
if (null != varName) {
return varName;
}
String separator = "";
varName = new String("B2" +
"F" + f.getVariableCode() +
"P" + p.getVariableCode() +
"T" + b.getVariableCode());
/*varName = new String( "B2" +
f.getFacilityID() + separator +
p.getProductID() + separator +
b.getBucketID() );*/
addDefinedVar(f, p, b, varName);
return varName;
}
public void setObjElement(String varName, Product p, Bucket b) {
int dmdPriority = p.getDemandPriority(b) + 1;
double asp = p.getASP(b.getBucketID());
if (EngineConfig.getInstance().isMaxOnTimeDelivery()) {
setObjElement(varName,
3000.0 / dmdPriority + p.getASP(b.getBucketID()) +
Math.random() * 0.0000001);
}
else if (EngineConfig.getInstance().isMaxProfit()) {
setObjElement(varName,
3000.0 / dmdPriority + p.getASP(b.getBucketID()) +
Math.random() * 0.0000001);
}
}
public void reset() {
_definedVars = new Hashtable();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -