24小时热门版块排行榜    

查看: 1025  |  回复: 1

cswfpp

新虫 (初入文坛)

[求助] c++调用cplex遇到的问题

大家好,
我用C++调用cplex对一个分段函数求解,不同区间段都是线性函数,分别求解。但是我的程序为什么运行结果是所有区间都木有可行解。不知道该怎么找错误。
希望了解相关情况的帮我看看,以下是部分代码:
CODE:
  for(m=0;m
   IloExpr expr2(env);
   for(t=1;t<=nTime;t++){
     n=0;
     for(i=1;i<=nPlant;i++){
      for(j=1;j<=nCustm;j++){
      expr2+=(Y[record[m][n]][i][j][1]+Y[record[m][n]][i][j][2]*Tran_qua[i][j][t]);     
       model.add(bound_point[record[m][n]-1][i][j]<=Tran_qua[i][j][t]<=bound_point[record[m][n]][i][j]);
//主要问题应该就是这个约束的添加,对于每个区间都要加入相应的约束,进行下一次计算前还要将这次的清空,后面有的remove
       cout<<"区间:("<        n++;    //这里是记录方案M时某个区间的具体取值
      }
     }
    }

    //目标函数
    IloObjective obj(env,expr1+expr2+expr5,IloObjective::Minimize);   //其他的几个表达式省略没有写
    model.add(obj);
    expr2.end();
   IloCplex cplex(model);
   
    //Calling cplex.solve returns a Boolean indicating whether or not a feasible solution has been found.

   if(cplex.solve()){
   
     cout<<"可行"<     total_cost[m+1]=cplex.getObjValue();
    env.out() << "total_cost[" <     //进行下一次方案之前要将运输量约束和目标函数去掉,下次重新建立
    model.remove(obj);
    for(t=1;t<=nTime;t++){
     n=0;
     for(i=1;i<=nPlant;i++){
      for(j=1;j<=nCustm;j++){
      model.remove(bound_point[record[m][n]-1][i][j]<=Tran_qua[i][j][t]<=bound_point[record[m][n]][i][j]);
      n++;
      }
     }
    }
    }

   else{
     cout<<"不可行"<      total_cost[m+1]=Infin;
     
   //进行下一次方案之前要将运输量约束和目标函数去掉,下次重新建立
    model.remove(obj);
    for(t=1;t<=nTime;t++){
     n=0;
     for(i=1;i<=nPlant;i++){
      for(j=1;j<=nCustm;j++){
      model.remove(bound_point[record[m][n]-1][i][j]<=Tran_qua[i][j][t]<=bound_point[record[m][n]][i][j]);
      n++;
      }
     }
    }
     continue;  //本次m取值不可行,接着进行下一次循环
    }

  }

现在运行结果是所有区间均不可行,但实际上部分区间是可行的,我实在不知道错哪里了,希望大家帮帮忙。
或者告诉我应该怎么找错误也可以。
本文来自: 人大经济论坛 爱问频道 版,详细出处参考: http://bbs.pinggu.org/forum.php? ... amp;fromuid=1009284

[ Last edited by jjdg on 2013-1-22 at 19:01 ]
回复此楼

» 收录本帖的淘帖专辑推荐

水水的站台

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cswfpp

新虫 (初入文坛)

谢谢哦,但是那个好像和我的不相关,还是谢谢你提供信息~~
2楼2013-01-23 10:28:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cswfpp 的主题更新
信息提示
请填处理意见