亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? problem.java

?? Create a problem solver for linear programming
?? 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 Problem {    public static final int HAS_ONE_SOLUTION = 1;    public static final int HAS_INFINITVE_SOLUTIONS = 2;    public static final int IS_UNBOUND = 3;    public static final int NO_SOLUTION = 4;    protected ArrayList<Variable> vars;    protected ArrayList<Constraint> constraints;    protected Objective objective;    protected int answer;    public Problem(ArrayList<Variable> vars, ArrayList<Constraint> constraints,            Objective objective) {        this.vars = vars;        this.constraints = constraints;        this.objective = objective;    }    @Override    public String toString() {        String result = "<div style=\"background-color:#EDEDED;padding:10;" +                "margin-right:15\">";        result += objective.toString();        for (int i = 0; i < constraints.size(); i++)            result += constraints.get(i).toString();        result += "<b>Conditions: ";        for (int i = 0; i < vars.size(); i++) {            if (i < vars.size() - 1)                result += vars.get(i).getConstraintString() + ", ";            else                result += vars.get(i).getConstraintString() + "<br />";        }        return result + "</b></div>";    }    public ArrayList<Variable> getVars() {        return this.vars;    }    public void refinePositiveConstraints(            ArrayList<Constraint> newConstraints,            Variable currentVar) {        for (int i = 0; i < constraints.size(); i++) {            for (int j = 0; j < constraints.get(i).getCoefs().size(); j++) {                if (vars.get(j).equals(currentVar)) {                    newConstraints.get(i).getCoefs().add(                            constraints.get(i).getCoefs().get(j));                }            }        }    }    public void refineNegativeConstraints (            ArrayList<Constraint> newConstraints,            Variable currentVar) {        for (int i = 0; i < constraints.size(); i++) {            for (int j = 0; j < constraints.get(i).getCoefs().size(); j++)                if (vars.get(j).equals(currentVar))                    newConstraints.get(i).getCoefs().add(                            constraints.get(i).getCoefs().get(j).getOpposite());        }    }    public void refineBelongsRConstraints (            ArrayList<Constraint> newConstraints,            Variable currentVar) {        for (int i = 0; i < constraints.size(); i++) {            for (int j = 0; j < constraints.get(i).getCoefs().size(); j++)                if (vars.get(j).equals(currentVar)) {                    newConstraints.get(i).getCoefs().add(                            constraints.get(i).getCoefs().get(j));                    newConstraints.get(i).getCoefs().add(                            constraints.get(i).getCoefs().get(j).getOpposite());                }        }    }    public void refineObjective(Objective newObjective,             Variable currentVar) {        for (int i = 0; i < objective.getCoefs().size(); i++)            if (vars.get(i).equals(currentVar)) {                if (currentVar.getConstraint() == ConstraintTypes.GREATER_THAN)                    newObjective.getCoefs().add(objective.getCoefs().get(i));                else if (currentVar.getConstraint() == ConstraintTypes.LESS_THAN)                    newObjective.getCoefs().add(                            objective.getCoefs().get(i).getOpposite());                else                    newObjective.getCoefs().add(objective.getCoefs().get(i));                if (currentVar.getConstraint() == ConstraintTypes.BELONG_R)                    newObjective.getCoefs().add(                            objective.getCoefs().get(i).getOpposite());            }    }    public void setObjective(Objective newObjective) {        if (objective.getType() == Objective.MINIMIZE)            for (int i = 0; i < newObjective.getCoefs().size(); i++)                newObjective.getCoefs().set(i,                        newObjective.getCoefs().get(i).getOpposite());        newObjective.setType(Objective.MAXIMIZE);    }    public void addNewVariablesToGetEquations(            ArrayList<Variable> newVars, ArrayList<Constraint> newConstraints) {        String newPrefix = "u";        int index = 0;        for (int i = 0; i < newConstraints.size(); i++) {            Variable var;            newConstraints.get(i).setValue(constraints.get(i).getValue());            switch (constraints.get(i).getType()) {                case ConstraintTypes.GREATER_THAN:                    var = new Variable(null, ++index, newPrefix,                            ConstraintTypes.GREATER_THAN);                    var.setValue(constraints.get(i).getValue().getOpposite());                    newVars.add(var);                    for (int j = 0; j < index - 1; j++)                        newConstraints.get(i).getCoefs().add(new Fraction(0));                    newConstraints.get(i).getCoefs().add(new Fraction(-1));                    break;                case ConstraintTypes.LESS_THAN:                    var = new Variable(null, ++index, newPrefix,                            ConstraintTypes.GREATER_THAN);                    var.setValue(constraints.get(i).getValue());                    newVars.add(var);                    for (int j = 0; j < index - 1; j++)                        newConstraints.get(i).getCoefs().add(new Fraction(0));                    newConstraints.get(i).getCoefs().add(new Fraction(1));                    break;                case ConstraintTypes.EQUAL_TO:                    for (int j = 0; j < index; j++)                        newConstraints.get(i).getCoefs().add(new Fraction(0));                    break;                default:                    break;            }        }        for (int i = 0; i < newConstraints.size(); i++) {            for (int j = newConstraints.get(i).getCoefs().size();                j < newVars.size(); j++)                newConstraints.get(i).getCoefs().add(new Fraction(0));        }    }    public Problem refinedProblem() {        ArrayList<Variable> newVars = this.vars;        ArrayList<Constraint> newConstraints = new ArrayList<Constraint>();        Objective newObjective = this.objective;        for (int i = 0; i < this.constraints.size(); i++) {            Constraint constraint1, constraint2;            if (this.constraints.get(i).getType() == ConstraintTypes.EQUAL_TO) {                constraint1 = new Constraint(ConstraintTypes.GREATER_THAN,                        this.constraints.get(i).getCoefs(),                        this.constraints.get(i).getVars(),                        this.constraints.get(i).getValue());                constraint2 = new Constraint(ConstraintTypes.LESS_THAN,                        this.constraints.get(i).getCoefs(),                        this.constraints.get(i).getVars(),                        this.constraints.get(i).getValue());                newConstraints.add(constraint1);                newConstraints.add(constraint2);            } else                newConstraints.add(this.constraints.get(i));        }        return new Problem(newVars, newConstraints, newObjective);    }    public ProblemInStandardForm getStandardForm() {        ArrayList<Variable> newVars = new ArrayList<Variable>();        ArrayList<Constraint> newConstraints = new ArrayList<Constraint>();        ArrayList<String> transitions = new ArrayList<String>();        ArrayList<Fraction> newObjCoeffs = new ArrayList<Fraction>();        ArrayList<Fraction> newConsCoeffs = new ArrayList<Fraction>();        Objective newObjective = new Objective();        String newPrefix = "y";        int currentIdx = 0;        for (int i = 0; i < constraints.size(); i++)            newConstraints.add(new Constraint());        for (int i = 0; i < vars.size(); i++) {            Variable var, var1;            switch(vars.get(i).getConstraint()) {                case (ConstraintTypes.GREATER_THAN):                    var = new Variable(vars.get(i).getValue(), ++currentIdx,                            newPrefix, ConstraintTypes.GREATER_THAN);                    newVars.add(var);                    transitions.add("G " + vars.get(i).getIndex() + " "                           + currentIdx);                    refinePositiveConstraints(newConstraints, vars.get(i));                    refineObjective(newObjective, vars.get(i));                    break;                case (ConstraintTypes.LESS_THAN):                    var = new Variable(vars.get(i).getValue(), ++currentIdx,                            newPrefix, ConstraintTypes.GREATER_THAN);                    newVars.add(var);                    transitions.add("L " + vars.get(i).getIndex() + " "                           + currentIdx);                    refineNegativeConstraints(newConstraints, vars.get(i));                    refineObjective(newObjective, vars.get(i));                    break;                case (ConstraintTypes.BELONG_R):                    var = new Variable(vars.get(i).getValue(), ++currentIdx,                            newPrefix, ConstraintTypes.GREATER_THAN);                    newVars.add(var);                    var1 = new Variable(vars.get(i).getValue(), ++currentIdx,                            newPrefix, ConstraintTypes.GREATER_THAN);                    newVars.add(var1);                    transitions.add("B " + vars.get(i).getIndex() + " " +                            (currentIdx - 1) + " " + currentIdx);                    refineBelongsRConstraints(newConstraints, vars.get(i));                    refineObjective(newObjective, vars.get(i));                    break;                default:                    break;            }        }        for (int i = 0; i < newConstraints.size(); i++)            newConstraints.get(i).setVars(newVars);        newObjective.setVars(newVars);        int numOfVarsBefore = newVars.size();        setObjective(newObjective);        newObjective.setValue(new Fraction(0));        addNewVariablesToGetEquations(newVars, newConstraints);        for (int i = numOfVarsBefore; i < newVars.size(); i++)            newObjective.getCoefs().add(new Fraction(0));        ProblemInStandardForm stdFormProblem =                new ProblemInStandardForm(newVars, newConstraints,                newObjective);        stdFormProblem.setTransitions(transitions);//        stdFormProblem.dict = stdFormProblem.getDictionary();        return stdFormProblem;    }    public String getSolution() {        String result = "(";        for (int i = 0; i < vars.size(); i++) {            if (i < vars.size() - 1)                result += vars.get(i).toString() + ", ";            else                result += vars.get(i).toString() + ") = (";        }        for (int i = 0; i < vars.size(); i++) {            if (i < vars.size() - 1)                result += vars.get(i).getValue() + ", ";            else                result += vars.get(i).getValue() + ")";        }        return result;    }    public Objective getObjective() {        return this.objective;    }    public String solution() {        String text = "";        Problem refinedProblem = this.refinedProblem();        ProblemInStandardForm stdFormProblem = refinedProblem.getStandardForm();        //System.out.println(constraint.toString());        text = "<body style=\"padding:0px 0px 0px 10px;" +                "font-family:cambria Math;font-size:16\"><h1>Problème en forme générale</h1>";        text += "Voici le problème en forme générale: <br /><br />";        text += this.toString();        text += "<p>On peut changer les variables comme ?a " +                "pour gagner le problème sous forme standarde:</p><br />";        text += stdFormProblem.toString();        stdFormProblem.preprocess();        stdFormProblem.setDict();        text += stdFormProblem.getAuxiliaryMessage();        if (!stdFormProblem.isSolutionAdmissible()) {            stdFormProblem.getAuxiliaryProblem();            ProblemInStandardForm auxiliaryProblem =                    stdFormProblem.auxiliaryProb();            text += auxiliaryProblem.toString();            text += auxiliaryProblem.getSolution();            text += auxiliaryProblem.simplexMethod();//            text += stdFormProblem.getSolution();//            text += auxiliaryProblem.getDict();            text += "<h1>Retour au problème original: </h1>";            stdFormProblem.updateDict(auxiliaryProblem);            if (!auxiliaryProblem.objective.getObjectiveValue().equals(0)) {                return text + "<p><b><font color=\"red\">Le problème ne possède " +                            "pas une solution réalisable.</font></b></p></body>";            }/*            text += stdFormProblem.getSolution();            text += "<p><b>Valeur de l'objective = " +                    stdFormProblem.getObjective().getObjectiveValue() + "</b></p>";*/        }        //text += stdFormProblem.displayDict();        Dictionary dict = stdFormProblem.getDict();        text += dict.toString();        Variable inVar = null;        Variable outVar = null;        text += stdFormProblem.getSolution();        text += stdFormProblem.simplexMethod();        text += "</body>";        return text;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲成av人在线观看导航| 亚洲一区影音先锋| 国产精品乱人伦| 亚洲大尺度视频在线观看| 精品一区二区免费视频| 欧美亚一区二区| 国产精品色哟哟| 午夜精品国产更新| 91麻豆福利精品推荐| 久久免费美女视频| 奇米精品一区二区三区在线观看| 樱花草国产18久久久久| 国产一区久久久| 91精品国产高清一区二区三区蜜臀| 99精品在线观看视频| 欧美二区在线观看| 亚洲精品午夜久久久| 国内精品免费在线观看| 日韩网站在线看片你懂的| 一卡二卡三卡日韩欧美| 96av麻豆蜜桃一区二区| 欧美国产一区二区| 国产精品亚洲午夜一区二区三区| 国产一区91精品张津瑜| 欧美一区二区三区啪啪| 亚洲成a人片在线不卡一二三区| 亚洲综合色噜噜狠狠| 国产mv日韩mv欧美| 久久综合久久综合九色| 九九九精品视频| 欧美成人精品二区三区99精品| 国产日本一区二区| 国产在线播放一区二区三区| 欧美精品v日韩精品v韩国精品v| 在线不卡的av| 日本欧洲一区二区| 91精品午夜视频| 蜜桃av一区二区在线观看| 在线不卡中文字幕| 美女脱光内衣内裤视频久久网站 | 99久久精品99国产精品| 精品国一区二区三区| 国产在线精品一区二区夜色| 精品国产亚洲在线| 床上的激情91.| 国产精品黄色在线观看| 色www精品视频在线观看| 亚洲黄色性网站| 欧美一区日本一区韩国一区| 日本女优在线视频一区二区 | 日韩激情av在线| 国产欧美日韩精品在线| 国产裸体歌舞团一区二区| 久久精品水蜜桃av综合天堂| 成人小视频在线| 一区二区三区自拍| 91精品国产一区二区三区香蕉| 国产欧美日韩中文久久| 国产乱淫av一区二区三区 | 麻豆91免费观看| 久久久久国产精品麻豆ai换脸 | 久久国产视频网| 久久综合色天天久久综合图片| 亚洲免费观看在线观看| 欧美日韩精品专区| 久久97超碰色| 国产精品国产三级国产普通话三级| 亚洲风情在线资源站| 欧美一区二区国产| 成人中文字幕在线| 亚洲婷婷综合色高清在线| 欧美精品xxxxbbbb| 国产精品1区2区3区在线观看| 欧美综合视频在线观看| 久久99精品国产.久久久久久| 色婷婷激情一区二区三区| 人妖欧美一区二区| 国产精品久久久久永久免费观看 | 日本国产一区二区| 毛片av一区二区| 欧美经典三级视频一区二区三区| 日韩av一区二区在线影视| 国产偷国产偷精品高清尤物 | 色偷偷88欧美精品久久久| 另类小说一区二区三区| 18欧美亚洲精品| 91精品国产色综合久久久蜜香臀| 中文字幕佐山爱一区二区免费| 国产剧情在线观看一区二区| 亚洲国产视频直播| 中文字幕中文字幕中文字幕亚洲无线 | 日韩一区二区三区视频在线观看| 国产精品色眯眯| 日韩精品一区二区三区三区免费 | 在线一区二区三区四区五区| 国产原创一区二区三区| 三级亚洲高清视频| 亚洲欧美国产高清| 中文字幕免费不卡| 久久久久久免费网| 欧美tk—视频vk| 91精品欧美一区二区三区综合在 | 精品污污网站免费看| 成人av午夜电影| 国产精品 日产精品 欧美精品| 久久亚洲精品国产精品紫薇| 欧美疯狂性受xxxxx喷水图片| 日韩影视精彩在线| 亚洲18影院在线观看| 亚洲精品国产无套在线观| 久久久久久久电影| 精品国产凹凸成av人导航| 日韩一区二区在线看| 欧美理论电影在线| 欧美肥妇bbw| 91精品在线麻豆| 日韩欧美国产精品一区| 欧美一区日本一区韩国一区| 欧美日韩国产在线观看| 欧美日韩国产一区二区三区地区| 久久爱www久久做| 久久精品国产免费| 青青草伊人久久| 久久国产精品色婷婷| 美女视频黄 久久| 韩国三级电影一区二区| 国产盗摄精品一区二区三区在线| 亚洲色图20p| 亚洲综合免费观看高清在线观看| 日韩午夜激情视频| 国产亚洲综合色| 国产精品护士白丝一区av| 亚洲婷婷在线视频| 亚洲国产va精品久久久不卡综合| 欧美videofree性高清杂交| 2021国产精品久久精品| 久久久久久一级片| 亚洲精品亚洲人成人网在线播放| 欧美精品自拍偷拍| wwwwww.欧美系列| 久久嫩草精品久久久久| 国产精品日韩成人| 亚洲成年人影院| 久久精品72免费观看| 成人深夜福利app| 国产亚洲精品aa午夜观看| 欧美高清在线视频| 亚洲国产综合视频在线观看| 久久99在线观看| 91免费观看视频| 欧美一级日韩一级| 国产精品福利一区| 首页综合国产亚洲丝袜| 国产成人在线影院| 欧美写真视频网站| 国产欧美一区二区在线观看| 一区二区三区欧美日| 韩国三级在线一区| 欧美三级日韩三级国产三级| 亚洲精品一区在线观看| 伊人开心综合网| 国产精品资源在线观看| 欧美乱熟臀69xxxxxx| 国产精品色眯眯| 麻豆国产精品官网| 欧美色大人视频| 国产精品另类一区| 美女视频第一区二区三区免费观看网站| 18成人在线视频| 麻豆免费看一区二区三区| 色噜噜狠狠一区二区三区果冻| 懂色av一区二区夜夜嗨| 欧美日本国产视频| 欧美韩国日本一区| 久久99这里只有精品| 欧美日韩一区三区四区| ㊣最新国产の精品bt伙计久久| 国产精品不卡在线观看| 国产一区二区女| 欧美在线观看你懂的| 国产欧美一区二区精品婷婷| 美女在线一区二区| 欧美手机在线视频| 亚洲品质自拍视频| 成人激情动漫在线观看| 久久色在线观看| 久久99久久久久久久久久久| 欧洲国产伦久久久久久久| 国产精品久久免费看| 国产99久久久国产精品潘金网站| 国产69精品久久久久毛片| 91精品啪在线观看国产60岁| 亚洲成人久久影院| 91精品办公室少妇高潮对白| 国产精品网站在线| 国产一区二区剧情av在线| 久久久久久夜精品精品免费| 国模大尺度一区二区三区| 日韩免费福利电影在线观看| 日本不卡不码高清免费观看|