问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingILOG.Concert;usingILOG.CPLEX;namespaceTemp_cplex{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){intK=2;intI=5;intM=2;intJ=5;double[]c=newdouble[K];c[0]=35;c[1]=55;int[]u=newint[K];u[0]=5;u[1]=7;int[][]d=newint[I][];for(inti=0;i<I;i++)d[i]=newint[M];for(inti=0;i<I;i++){for(intm=0;m<M;m++){d[i][m]=0;}}d[0][0]=3;d[1][0]=5;d[2][0]=7;d[3][0]=2;d[4][0]=6;d[0][1]=2;d[1][1]=4;d[2][1]=3;d[3][1]=7;d[4][1]=5;int[][][]a=newint[I][][];for(inti=0;i<I;i++){a[i]=newint[J][];for(intj=0;j<J;j++)a[i][j]=newint[K];}for(inti=0;i<I;i++){for(intj=0;j<J;j++){for(intk=0;k<K;k++)a[i][j][k]=0;}}for(intk=0;k<K;k++){a[0][0][k]=4;a[1][1][k]=3;a[2][2][k]=2;a[3][3][k]=2;a[4][4][k]=2;}Cplexcplex=newCplex();/************************************************************************//*defineandinitializevariables*//************************************************************************/IIntVar[][]x=newIIntVar[J][];IIntVar[][]y=newIIntVar[M][];for(intj=0;j<J;j++)x[j]=cplex.IntVarArray(K,0,System.Int16.MaxValue);for(intm=0;m<M;m++)y[m]=cplex.BoolVarArray(K);/************************************************************************//*definetheobjectives*//************************************************************************/INumExpr[]items={cplex.NumExpr()};for(intj=0;j<J;j++)for(intk=0;k<K;k++)items[0]=cplex.Sum(items[0],cplex.Prod(c[k],x[j][k]));cplex.AddMinimize(items[0]);/************************************************************************//*defineconstraints*//************************************************************************////*1st:///for(intk=0;k<K;k++){INumExprexp=cplex.NumExpr();for(intj=0;j<J;j++)exp=cplex.Sum(exp,x[j][k]);exp=cplex.Diff(exp,u[k]);cplex.AddLe(exp,0);}///*2st///for(inti=0;i<I;i++){for(intk=0;k<K;k++){INumExprexp=cplex.NumExpr();for(intj=0;j<J;j++)exp=cplex.Sum(exp,cplex.Prod(a[i][j][k],x[j][k]));for(intm=0;m<M;m++)exp=cplex.Diff(exp,cplex.Prod(d[i][m],y[m][k]));cplex.AddGe(exp,0);}}///*3st///for(intm=0;m<M;m++){INumExprexp=cplex.NumExpr();for(intk=0;k<K;k++)exp=cplex.Sum(exp,y[m][k]);cplex.AddEq(exp,1);}if(cplex.Solve()){System.Console.WriteLine("Obj"+cplex.ObjValue);for(intk=0;k<K;k++)for(intj=0;j<J;j++)System.Console.WriteLine(cplex.GetValue(x[j][k]));System.Console.WriteLine();System.Console.WriteLine("----------------------------------------");}cplex.End();}}}
解决方案
解决方案二:
我就是路过下,感觉好高深
解决方案三:
楼主最好把问题写清楚,具体介绍一下你的模型