manbet体育手机客户端


params_c.c.


/ *版权所有2019,Gurobi优狗万app足彩化,LLC * // *使用与模型关联的参数。使用不同的参数,解决了MIP几秒钟。选择具有最小MIP间隙的距离,并且恢复优化直到找到最佳解决方案。* / #include  #include  #include  #include“gurobi_c.h”int main(int argc,char * argv []){grbenv * env = null,*modelenv = null,* bestenv = null;grbmodel * model = null,* bestmodel = null;int ERROR = 0;int ismip,我,mipfocus;双倍最佳,差距;if(argc <2){fprintf(stderr,“用法:params_c filename \ n”);出口(1); } error = GRBloadenv(&env, "params.log"); if (error) goto QUIT; /* Read model and verify that it is a MIP */ error = GRBreadmodel(env, argv[1], &model); if (error) goto QUIT; error = GRBgetintattr(model, "IsMIP", &ismip); if (error) goto QUIT; if (ismip == 0) { printf("The model is not an integer program\n"); exit(1); } /* Set a 2 second time limit */ modelenv = GRBgetenv(model); if (!modelenv) { printf("Cannot retrieve model environment\n"); exit(1); } error = GRBsetdblparam(modelenv, "TimeLimit", 2); if (error) goto QUIT; /* Now solve the model with different values of MIPFocus */ bestmodel = GRBcopymodel(model); if (!bestmodel) { printf("Cannot copy model\n"); exit(1); } error = GRBoptimize(bestmodel); if (error) goto QUIT; error = GRBgetdblattr(bestmodel, "MIPGap", &bestgap); if (error) goto QUIT; for (i = 1; i <= 3; ++i) { error = GRBreset(model, 0); if (error) goto QUIT; modelenv = GRBgetenv(model); if (!modelenv) { printf("Cannot retrieve model environment\n"); exit(1); } error = GRBsetintparam(modelenv, "MIPFocus", i); if (error) goto QUIT; error = GRBoptimize(model); if (error) goto QUIT; error = GRBgetdblattr(model, "MIPGap", &gap); if (error) goto QUIT; if (bestgap > gap) { GRBmodel *tmp = bestmodel; bestmodel = model; model = tmp; bestgap = gap; } } /* Finally, free the extra model, reset the time limit and continue to solve the best model to optimality */ GRBfreemodel(model); bestenv = GRBgetenv(bestmodel); if (!bestenv) { printf("Cannot retrieve best model environment\n"); exit(1); } error = GRBsetdblparam(bestenv, "TimeLimit", GRB_INFINITY); if (error) goto QUIT; error = GRBoptimize(bestmodel); if (error) goto QUIT; error = GRBgetintparam(bestenv, "MIPFocus", &mipfocus); if (error) goto QUIT; printf("Solved with MIPFocus: %i\n", mipfocus); QUIT: /* Error reporting */ if (error) { printf("ERROR: %s\n", GRBgeterrormsg(env)); exit(1); } /* Free best model */ GRBfreemodel(bestmodel); /* Free environment */ GRBfreeenv(env); return 0; }