Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 使用CPLEX可调用库时如何将lp更改为mip_Optimization_Linear Programming_Cplex_Integer Programming - Fatal编程技术网

Optimization 使用CPLEX可调用库时如何将lp更改为mip

Optimization 使用CPLEX可调用库时如何将lp更改为mip,optimization,linear-programming,cplex,integer-programming,Optimization,Linear Programming,Cplex,Integer Programming,我已经使用CPLEX可调用库(在VS2010中)解决了一个lp问题。lp如下所示: Maximize obj: x1 + 2 x2 + 3 x3 Subject To c1: - x1 + x2 + x3 <= 20 c2: x1 - 3 x2 + x3 <= 30 Bounds 0 <= x1 <= 40 End 在代码中,没有将任何决策变量声明为整数。这就是为什么当你试图使用MIP解算器解决问题时,cplex会抱怨。您正在进行

我已经使用CPLEX可调用库(在VS2010中)解决了一个lp问题。lp如下所示:

  Maximize
   obj: x1 + 2 x2 + 3 x3
  Subject To
   c1: - x1 + x2 + x3 <= 20
   c2: x1 - 3 x2 + x3 <= 30
  Bounds
   0 <= x1 <= 40
  End

在代码中,没有将任何决策变量声明为整数。这就是为什么当你试图使用MIP解算器解决问题时,cplex会抱怨。您正在进行逐列建模,并且CPXaddcols没有变量类型的参数,但是您可以使用或。因为您的决策变量的边界都大于1,所以您要查找的是“I”变量类型,而不是二进制的“B”

   char     *ctype;
   ctype = (char *) malloc(cur_numcols * sizeof(char);

   for (j = 0; j < cur_numcols; j++) {
        ctype[j] = 'I';
   }

   status = CPXcopyctype(env, lp, ctype);
   /* verify status */

   status = CPXmipopt (env, lp);
   /* verify status */
char*ctype;
ctype=(char*)malloc(cur_numcols*sizeof(char);
对于(j=0;j
   char     *ctype;
   ctype = (char *) malloc(cur_numcols * sizeof(char);

   for (j = 0; j < cur_numcols; j++) {
        ctype[j] = 'I';
   }

   status = CPXcopyctype(env, lp, ctype);
   /* verify status */

   status = CPXmipopt (env, lp);
   /* verify status */