📄 dictionary.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package ro.simplex;import java.util.ArrayList;import ro.utils.Fraction;/** * * @author Doan Chien Thang */public class Dictionary { private Objective objective; private ArrayList<VariableConstraint> varConstraints; public Dictionary() { this.objective = new Objective(); this.varConstraints = new ArrayList<VariableConstraint>(); } public Dictionary (Objective objective, ArrayList<VariableConstraint> varConstraints) { this.objective = objective; this.varConstraints = varConstraints; } @Override public String toString() { String result = "<p><b>Le dictionnaire du problème:</b></p><br />"; result += "<div style=\"background-color:#EDEDED;padding:10;" + "margin-right:15\">"; if (!this.objective.isAuxiliary()) result += "<b>L'objectif: z = " + objective.getObjectiveValue(); else result += "<b>L'objectif: v = " + objective.getObjectiveValue(); for (int i = 0; i < objective.getVars().size(); i++) { if (objective.getCoefs().get(i).isNegative()) { result += " - "; if (!objective.getCoefs().get(i).absolute().equals(new Fraction(1))) result += objective.getCoefs().get(i).absolute().toString(); result += objective.getVars().get(i).toString(); } else if (!objective.getCoefs().get(i).equals(new Fraction(0, 1))) { result += " + "; if (!objective.getCoefs().get(i).absolute().equals(new Fraction(1))) result += objective.getCoefs().get(i).absolute().toString(); result += objective.getVars().get(i).toString(); } } result += "</b><br />"; for (int i = 0; i < varConstraints.size(); i++) result += " " + varConstraints.get(i).toString() + "<br />"; return result + "</div>"; } private VariableConstraint getVarConstraint(Variable inVar) { for (int i = 0; i < this.varConstraints.size(); i++) if (this.varConstraints.get(i).getLeftVar().equals(inVar)) return this.varConstraints.get(i); return null; } public Dictionary getNewDictionaryByChangeVariableRoles(Variable inVar, Variable outVar) { Objective newObjective = new Objective(); ArrayList<VariableConstraint> newVarConstraints = new ArrayList<VariableConstraint>(); VariableConstraint inOutConstraint = this.getVarConstraint(inVar); for (int i = 0; i < varConstraints.size(); i++) newVarConstraints.add(varConstraints.get(i).getNewVarConstraint( inVar, outVar, inOutConstraint)); newObjective = this.objective.getNewObjective(inVar, outVar, inOutConstraint); return new Dictionary(newObjective, newVarConstraints); } public ArrayList<VariableConstraint> getVarConstraints() { return this.varConstraints; } public Objective getObjective() { return this.objective; } public void setObjective(Objective objective) { this.objective = objective; } public String drawTable() { String result = "<p><b>Le table: </b></p><br />"; result += "<div style=\"background-color:#EDEDED;padding:10;" + "margin-right:15;\"><table cellpadding=\"20\">"; result += "<tr><td>z</td>"; for (int i = 0; i < this.objective.getVars().size(); i++) result += "<td>" + this.objective.getVars().get(i).toString() + "</td>"; result += "<td>1</td><td> </td></tr>"; result += "<tr><td>1</td>"; for (int i = 0; i < this.objective.getVars().size(); i++) result += "<td>" + this.objective.getCoefs().get(i).getOpposite() + "</td>"; result += "<td>" + this.objective.getObjectiveValue() + "</td>"; result += "<td>z" + "</td></tr>"; for (int i = 0; i < this.varConstraints.size(); i++) { result += "<tr><td>0</td>"; VariableConstraint varConstraint = this.varConstraints.get(i); for (int j = 0; j < this.objective.getVars().size(); j++) { Variable var = this.objective.getVars().get(j); if (var.equals(varConstraint.getLeftVar())) { result += "<td>1</td>"; } else { Fraction coef = varConstraint.getCoef(var).getOpposite(); result += "<td>" + coef.toString() + "</td>"; } } result += "<td>" + varConstraint.getValue() + "</td>"; result += varConstraint.getLeftVar().toString() + "</td>"; result += "</tr>"; } return result + "</table></div>"; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -