带有Double(,)数组的BindingUtilities.SetBinding的问题 [英] Question for BindingUtilities.SetBinding with Array of Double(,)
问题描述
大家好,
目前我正在使用Microsoft Solver Foundation 3.1制作程序。
Currently I'm makeing a program using Microsoft Solver Foundation 3.1.
我正在遭受message"只有在带有0个索引的参数上调用时,此方法才有效。"。
I'm suffering from the message "This method is only valid when called on parameters with 0 indexes.".
代码如下:
          Dim tmpDbl(,)As Double = {{1.0,1.1,1.2},{2.1,2.2,2.3}}
  ;   Dim iSet As [Set] = New [Set](Domain.Any,"I")
  ; Dim jSet As [Set] = New [Set](Domain.Any," J")
  ; Dim cov As Parameter = New Parameter(Domain.Real,"Cov",iSet,jSet)
  ; model.AddParameter(cov)
Dim tmpDbl(,) As Double = {{1.0, 1.1, 1.2}, {2.1, 2.2, 2.3}}
Dim iSet As [Set] = New [Set](Domain.Any, "I")
Dim jSet As [Set] = New [Set](Domain.Any, "J")
Dim cov As Parameter = New Parameter(Domain.Real, "Cov", iSet, jSet)
model.AddParameter(cov)
有谁知道如何为参数制作一个二维数组?
Does anyone know how to make a 2-dimension array to a parameter?
谢谢。
推荐答案
我面临同样的问题,这是我的代码:
Im facing the same problem, here is my code:
string strModel = @"Model[Parameters[Sets,I,J],
Parameters[Reals,p[I,J]],
Decisions[Integers[0,1],Foreach[{i,1,4},{j,5},x[i,j]]],
Constraints[Sum[{i,1,4},{j,5},x[i,j]]==1,
Sum[{i,1,4},{j,5}, j*x[i,j]]<=4],
Goals[Maximize[Sum[{i,1,4},{j,5},Log[p[i,j]]*x[i,j]]]]
]";
var pp = new double[3,5] {
{0.2, 0.3, 0.35, 0.38, 0.4},
{0.25, 0.3, 0.33, 0.35, 0.38},
{0.1, 0.3, 0.4, 0.45, 0.5},
};
SolverContext context = SolverContext.GetContext();
context.LoadModel(FileFormat.OML, new StringReader(strModel));
参数p = context.CurrentModel.Parameters.First(q => q.Name ==" p" );
Parameter p = context.CurrentModel.Parameters.First(q => q.Name == "p");
//我的错误来自:
p.SetBinding(pp);
p.SetBinding(pp);
错误与JSLee_CDS相同。
The error is the same as JSLee_CDS.
感谢您的帮助!
这篇关于带有Double(,)数组的BindingUtilities.SetBinding的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!