主要内容

变量不允许重复名称

如果你使用两个不同的变量有相同的名称,然后优化表达式,约束,或者问题可以抛出一个错误。这个错误是麻烦当你创建一个变量,然后使用该变量创建一个表达式,然后重新创建变量。假设您创建以下变量和约束表达式:

x = optimvar (“x”10、2);缺点=总和(x, 2) = = 1;

在这一点上,你认识到你打算创建整数变量。所以你重新创建变量,改变其类型。

x = optimvar (“x”10 2“类型”,“整数”);

创建一个目标和问题。

obj =总和(x * [2、3]);概率= optimproblem (“目标”、obj);

现在试着把约束问题。

概率。约束=缺点

在这一点上,说明你得到一个错误消息OptimizationVariables出现在相同的问题必须有明显的“的名字”的特性。问题是,当你重新创建x无关的变量,这是一个新的变量,约束表达式。

你可以纠正这个问题在两个方面。

  • 创建一个新的使用当前约束表达式x

    缺点=总和(x, 2) = = 1;概率。约束=缺点;
  • 检索原始x变量通过创建一个使用旧的表达问题。更新检索正确的变量类型财产。使用检索到的变量和客观的问题。

    oprob = optimproblem (“约束”、缺点);x = oprob.Variables.x;x。类型=“整数”;oprob。目标=总和(x * [2、3]);

    这种方法可能是有用的,如果您已经创建了表达式使用旧变量比表达式使用新的变量。

相关的话题