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

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

?? problem.java

?? This is my implementation 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 "<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一区二区三区免费野_久草精品视频
中文字幕的久久| 天堂影院一区二区| 性做久久久久久| 国产一区二区影院| 欧美日韩中文字幕一区| 国产欧美一区二区精品婷婷| 亚洲高清在线精品| eeuss鲁片一区二区三区在线观看| 日韩一区二区中文字幕| 亚洲三级视频在线观看| 国产二区国产一区在线观看 | 亚洲欧美另类在线| 激情欧美一区二区三区在线观看| 在线视频国产一区| 国产精品美女久久久久高潮| 韩国精品久久久| 欧美精品免费视频| 亚洲综合视频在线观看| 不卡av免费在线观看| 久久久久国产精品麻豆ai换脸| 婷婷丁香久久五月婷婷| 欧洲国内综合视频| 亚洲女爱视频在线| 99精品欧美一区二区蜜桃免费| 久久久亚洲高清| 韩国一区二区三区| 精品乱人伦小说| 九色综合国产一区二区三区| 欧美一区二区三区免费| 无码av免费一区二区三区试看 | 91精品国产乱| 欧洲亚洲精品在线| jlzzjlzz亚洲女人18| 91精品久久久久久久99蜜桃| 激情六月婷婷久久| 亚洲精品成人悠悠色影视| 日韩精品中文字幕在线一区| 国产成人日日夜夜| 日韩电影在线一区二区三区| 国产精品久久久久久久第一福利| 91 com成人网| 色综合色综合色综合色综合色综合 | 欧美精彩视频一区二区三区| 欧美日韩国产另类不卡| 欧美亚男人的天堂| 国产精品一区在线观看乱码 | 成人动漫精品一区二区| 亚洲国产精品久久一线不卡| 中文字幕欧美三区| 日韩一区二区三区视频| 色伊人久久综合中文字幕| 国产久卡久卡久卡久卡视频精品| 亚洲国产精品影院| 亚洲欧洲国产专区| 久久久久久久性| 欧美大肚乱孕交hd孕妇| 欧美性感一区二区三区| 91免费国产在线| 白白色 亚洲乱淫| 国产精品66部| 国产中文一区二区三区| 青椒成人免费视频| 视频在线观看91| 亚洲电影激情视频网站| 欧美亚洲综合另类| 一个色妞综合视频在线观看| 欧美成人一级视频| 91麻豆免费看片| 狠狠色丁香婷婷综合久久片| 亚洲狠狠丁香婷婷综合久久久| 日韩一区二区三区四区五区六区 | 久久综合99re88久久爱| 色综合夜色一区| 蜜桃传媒麻豆第一区在线观看| 国产香蕉久久精品综合网| 欧美亚洲国产一区在线观看网站 | 一区二区三区成人在线视频| 日韩一区二区中文字幕| 一道本成人在线| 精品一区二区三区日韩| 亚洲国产日日夜夜| 欧美国产日本韩| 日韩欧美一区二区在线视频| 91美女福利视频| 国产精品亚洲综合一区在线观看| 亚洲动漫第一页| 中文字幕中文字幕在线一区 | 一区二区三区视频在线看| 久久综合丝袜日本网| 欧美日韩高清一区二区三区| 99麻豆久久久国产精品免费优播| 日本欧美韩国一区三区| 亚洲免费大片在线观看| 中文在线免费一区三区高中清不卡| 欧美另类一区二区三区| 在线一区二区视频| k8久久久一区二区三区| 国产乱码精品一区二区三区忘忧草| 日韩成人午夜电影| 一区二区三区国产豹纹内裤在线| 国产精品第一页第二页第三页| 久久亚洲精品国产精品紫薇| 日韩欧美国产一二三区| 国产91对白在线观看九色| 精品亚洲成a人在线观看| 成人av网在线| 欧美午夜一区二区三区| 精品欧美一区二区在线观看| 国产精品对白交换视频 | 国产在线不卡视频| av午夜精品一区二区三区| 欧美亚洲国产一区二区三区va | 欧美一级理论性理论a| 欧美一区二区三区日韩视频| xfplay精品久久| 亚洲视频每日更新| 91美女福利视频| 欧美一区二区三区在线电影| 国产午夜亚洲精品不卡| 一区二区三区视频在线观看| 精品在线一区二区| 91欧美激情一区二区三区成人| 日韩欧美国产一区在线观看| 国产精品久99| 美女任你摸久久| 色悠久久久久综合欧美99| 欧美成人女星排行榜| 亚洲精品视频在线观看网站| 精品无码三级在线观看视频| 色素色在线综合| 久久精品夜夜夜夜久久| 石原莉奈在线亚洲三区| 成人avav在线| 精品99999| 天天综合色天天综合色h| 99久久精品免费看国产免费软件| 日韩久久免费av| 亚洲午夜免费电影| 成人综合日日夜夜| 欧美成人激情免费网| 亚洲亚洲精品在线观看| 成人动漫一区二区三区| 久久伊99综合婷婷久久伊| 日韩亚洲欧美综合| 欧美一区二区三区啪啪| 国产欧美一区二区精品仙草咪| 亚洲色图在线视频| 香蕉av福利精品导航| 国产精品综合在线视频| 国产精品综合一区二区三区| 色又黄又爽网站www久久| 国产精品视频在线看| 国产美女久久久久| 日韩美女视频在线| 爽好久久久欧美精品| 欧美日韩日日摸| 一区二区三区四区激情| 色诱视频网站一区| 亚洲乱码日产精品bd| 99九九99九九九视频精品| 国产无人区一区二区三区| 国产一区91精品张津瑜| 精品国产伦一区二区三区观看方式| 秋霞电影网一区二区| 7777女厕盗摄久久久| 婷婷国产在线综合| 欧美日韩国产精品成人| 亚洲国产另类av| 欧美精品一二三区| 首页国产欧美日韩丝袜| 欧美一区二区在线观看| 日本va欧美va瓶| 日韩精品一区二区三区视频播放| 男女男精品视频网| 欧美成人aa大片| 制服丝袜中文字幕一区| 亚洲蜜臀av乱码久久精品| 91色九色蝌蚪| 亚洲自拍偷拍图区| 91麻豆精品国产无毒不卡在线观看| 日韩精品成人一区二区三区| 日韩三级在线观看| 国产麻豆精品在线观看| 中文字幕av一区二区三区免费看 | 欧美美女喷水视频| 久久精品国产亚洲5555| 久久久www免费人成精品| 成人av网站在线观看| 亚洲精品免费电影| 欧美精品第1页| 国产在线精品一区二区不卡了 | 色伊人久久综合中文字幕| 一区二区不卡在线播放| 欧美一区在线视频| 国产91清纯白嫩初高中在线观看| 亚洲日本va在线观看| 3d动漫精品啪啪一区二区竹菊 | 日日嗨av一区二区三区四区| 精品国产一区二区在线观看| 亚洲国产成人高清精品|