qp_cs.cs


/ * 2023年版权,Gurobi优狗万app足彩化,LLC * / / *本例制定和解决以下简单的QP模型:最小化x ^ 2 + x * y + y ^ 2 + y * z + z ^ 2 + 2 x, x + 2 + 3 z > = 4 x + y > = 1 x, y, z非负它解决它曾经作为一个连续的模式,一旦为整数模型。* /使用系统;使用Gurobi;类qp_cs{静态void Main(){尝试{GRBEnv env = new GRBEnv (“qp.log”);GRBModel模型= new GRBModel (env);/ /创建变量GRBVar x = model.AddVar(0.0, 1.0, 0.0,伽马线暴。连续的," x ");GRBVar y = model.AddVar(0.0, 1.0, 0.0,伽马线暴。连续的," y ");GRBVar z = model.AddVar(0.0, 1.0, 0.0,伽马线暴。连续的,“z”);/ /设置目标GRBQuadExpr obj y = x * x + x * + * y + y * z + z * z + 2 * x;model.SetObjective (obj); // Add constraint: x + 2 y + 3 z >= 4 model.AddConstr(x + 2 * y + 3 * z >= 4.0, "c0"); // Add constraint: x + y >= 1 model.AddConstr(x + y >= 1.0, "c1"); // Optimize model model.Optimize(); Console.WriteLine(x.VarName + " " + x.X); Console.WriteLine(y.VarName + " " + y.X); Console.WriteLine(z.VarName + " " + z.X); Console.WriteLine("Obj: " + model.ObjVal + " " + obj.Value); // Change variable types to integer x.VType = GRB.INTEGER; y.VType = GRB.INTEGER; z.VType = GRB.INTEGER; // Optimize model model.Optimize(); Console.WriteLine(x.VarName + " " + x.X); Console.WriteLine(y.VarName + " " + y.X); Console.WriteLine(z.VarName + " " + z.X); Console.WriteLine("Obj: " + model.ObjVal + " " + obj.Value); // Dispose of model and env model.Dispose(); env.Dispose(); } catch (GRBException e) { Console.WriteLine("Error code: " + e.ErrorCode + ". " + e.Message); } } }