| 查看: 1358 | 回复: 0 | ||
ysp24铁杆木虫 (小有名气)
|
[求助]
C# 调用CPlex 关于冲突检测RefineConflict的问题?急死了!
|
|
如题,在网上查到的代码如下(用户手册中内容与此差不多): if (cplex.RefineConflict(constraints,prefs)) { Cplex.ConflictStatus[] conflicts = cplex.GetConflict(constraints); for (int i = 0; i < conflicts.Length;i++ ) { if (conflicts==Cplex.ConflictStatus.Member) System.Console.WriteLine(" Proved : " + constraints); else if (conflicts==Cplex.ConflictStatus.PossibleMember) System.Console.WriteLine(" Possible : " + constraints); } } 上述代码中的constraints,prefs怎么定义,以及其值是什么,我没弄明白。参考上述代码,我自己写的冲突检测代码一直有误,输出结果全部是Possible的类型。具体代码如下,请大家帮忙: INumVar[][] var = new INumVar[1][];//用于求解后调用或查看结果 IRange[][] rng = new IRange[1][];//用于求解后调用或查看松弛程度 private string[] xt; INumVar[] x; 建立优化目标: xt = new string[i_Dvar]; var[0] = new INumVar[i_Dvar]; for (int i = 0; i < xt.Length; i++) { xt = NumVarType.Float.ToString(); } x = cplex.NumVarArray(i_Dvar, intArr_Object_Lower, intArr_Object_Upper, xt);//添加决策变量 var[0] = x;//加引用(指针变化),两个可以等同 cplex.AddMinimize(cplex.ScalProd(x, intArr_Object));//添加优化目标 建立约束: rng[0] = new IRange[i_Num_le_eq];//i_Num_le_eq为约束总数 for (int j = 0; j < A1_le.Length; j++)//不等式约束 { rng[0][j] = (cplex.AddLe(cplex.ScalProd(x, A1_le[j]), b1_le[j])); } ...... 冲突检测: IConstraint[] constraints = new IConstraint[rng[0].Length]; double[] prefs = new double[constraints.Length]; //一直不清楚prefs 做什么用的 constraints = rng[0]; if (cplex.RefineConflict(constraints,prefs)) { Cplex.ConflictStatus[] conflicts = cplex.GetConflict(constraints); for (int i = 0; i < conflicts.Length; i++) { if (conflicts == Cplex.ConflictStatus.Member) { System.Console.WriteLine(" Proved : " + constraints); } else if (conflicts == Cplex.ConflictStatus.PossibleMember) { System.Console.WriteLine(" Possible : " + constraints); } } } 检测输出的结果是所有的约束全部输出,且都属于Possible 。肯定是不对了。但自己调好久一直没成功,很着急,请大家帮忙呀!!!!!谢谢!! |
» 猜你喜欢
全日制(定向)博士
已经有5人回复
假如你的研究生提出不合理要求
已经有10人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
实验室接单子
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复












回复此楼