Java Cplex中的目标编程

Java Cplex中的目标编程,java,optimization,linear-programming,cplex,Java,Optimization,Linear Programming,Cplex,假设我有两个目标。我想接近这个目标: i=1) profit goal: 12Yes, this is definitely possible using CPLEX. In fact, you have already done most of the formulation that is needed, by introducing a1, a2, b1 and b2. Now, you just need to create a Cplex model object, give it t

假设我有两个目标。我想接近这个目标:

i=1) profit goal: 12Yes, this is definitely possible using CPLEX. In fact, you have already done most of the formulation that is needed, by introducing a1, a2, b1 and b2. Now, you just need to create a Cplex model object, give it the objective and solve it. (You don't need 
IloCplex.Goal
) Just solve a straight LP.

Take a look at any of these Java examples and follow them as a template.

Just set your objective function. (pa0, pb1 etc. are constants)

 IloNumExpr obj = cplex.sum(cplex.prod(pa0, a[0]), 
                             cplex.prod(pa1, a[1]),
                             cplex.prod(pb0, b[0]),
                             cplex.prod(pb1, b[1])); 

    model.add(IloMinimize(env, obj));

i=1)利润目标:12是的,使用CPLEX绝对可以做到这一点。事实上,通过引入a1、a2、b1和b2,您已经完成了所需的大部分配方。现在,您只需要创建一个Cplex模型对象,给出目标并求解它。(你不需要
IloCplex.Goal
)只要解一个简单的LP

看看这些Java代码中的任何一个,并将它们作为模板进行跟踪

设定你的目标函数。(pa0、pb1等为常数)

然后,让CPLEX解出你的LP,你只需得到a[0]、a[1]、b[0]和b[1]的最佳值,就可以看到与目标的偏差。(请注意,只有a或b中的一个为正。)使用
cplex.getValues(x)
查询变量值

希望有帮助。

像这样: //决策变量 dvar-int-x; dvar-int-y

//obj函数
IloNumExpr obj=cplex.sum(cplex.prod(pa0,a[0]),
cplex.产品(pa1,a[1]),
cplex.prod(pb0,b[0]),
cplex.prod(pb1,b[1]);
模型添加(ILO最小化(env,obj));
//约束条件
服从{

12*x+9*y-a1+b1 Cplex目标用于控制分支,与目标编程无关。
//obj function 
IloNumExpr obj = cplex.sum(cplex.prod(pa0, a[0]), 
                             cplex.prod(pa1, a[1]),
                             cplex.prod(pb0, b[0]),
                             cplex.prod(pb1, b[1])); 
       model.add(IloMinimize(env, obj));

// constraints
subject to {

12* x + 9*y -a1 + b1 <= 125;
5* x + 7*y -a2 +b2 <= 50;

}