0
私はGurobiで複数の目的関数をどのように使用できるか混乱しています。私はthisを見つけましたが、実際にどのように私はこれで複数の目的関数を実装することができない理解していない。Gurobiマルチターゲット
通常、私はObjectiveとしてGRBLinExprのようなものを設定します。しかし、例のようにObjNを設定することはできません。もう一つのことは、いくつかの目標を最小化し最大化したいということです。したがって、このコードのための溶液は、x = 0であるべきで、yは例えば
どのようにすることができ、0、Z = 10 =
GRBEnv env = new GRBEnv();
GRBModel model = new GRBModel(env);
var x = model.AddVar(0, 10, 0, GRB.INTEGER, "");
var y = model.AddVar(0, 10, 0, GRB.INTEGER, "");
var z = model.AddVar(0, 10, 0, GRB.INTEGER, "");
var expr1 = new GRBLinExpr();
expr1.AddTerm(1, x);
expr1.AddTerm(1, y);
expr1.AddTerm(1, z);
model.AddConstr(expr1 >= 5, "");
var expr2 = new GRBLinExpr();
expr2.AddTerm(1,z);
model.NumObj = 3; // there are 3 Objectives
model.Parameters.ObjNumber = 1;
model.ObjNWeight = 1;
model.ObjNPriority = 2;
model.ObjNName = "MinSum";
// i need to set this somehow ...
model.SetObjective(expr2, GRB.MAXIMIZE);
model.Parameters.ObjNumber = 2;
model.ObjNWeight = 1;
model.ObjNPriority = 1;
model.ObjNName = "MaxZ";
// i need to set this somehow ...
model.SetObjective(expr1, GRB.MINIMIZE); // overwrites first objective
model.Optimize();
Console.WriteLine($"x={x.X} y={y.X} z={z.X}");
:ここ
簡単な例(用量動作しない)でありますこのようなものを達成する?
私はバージョン7.0を持っていますので、私のバージョンをアップグレードする必要があります – MrWoffle