⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shipmentconstraint.java

📁 简介: 今天为网友提供的是JAVA源码
💻 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 + -