sos_c + + . cpp


/ * 2023年版权,Gurobi优狗万app足彩化,LLC * / / *这个例子创建了一个非常简单的特殊命令集(SOS)模型。3的模型由连续变量,没有线性约束,和一双SOS约束1型。* / # include“gurobi_c + +。使用名称空间std h”;int主要(int命令行参数个数,char * argv []) {GRBEnv * env = 0;GRBVar * x = 0;尝试{env = new GRBEnv ();GRBModel模型= GRBModel (* env);/ /创建变量双乌兰巴托[]= {1 1 2};双obj [] = {2 1 1};字符串名称[]= {x0, x1, x2”}; x = model.addVars(NULL, ub, obj, NULL, names, 3); // Add first SOS1: x0=0 or x1=0 GRBVar sosv1[] = {x[0], x[1]}; double soswt1[] = {1, 2}; model.addSOS(sosv1, soswt1, 2, GRB_SOS_TYPE1); // Add second SOS1: x0=0 or x2=0 */ GRBVar sosv2[] = {x[0], x[2]}; double soswt2[] = {1, 2}; model.addSOS(sosv2, soswt2, 2, GRB_SOS_TYPE1); // Optimize model model.optimize(); for (int i = 0; i < 3; i++) cout << x[i].get(GRB_StringAttr_VarName) << " " << x[i].get(GRB_DoubleAttr_X) << endl; cout << "Obj: " << model.get(GRB_DoubleAttr_ObjVal) << endl; } catch(GRBException e) { cout << "Error code = " << e.getErrorCode() << endl; cout << e.getMessage() << endl; } catch(...) { cout << "Exception during optimization" << endl; } delete[] x; delete env; return 0; }