我如何知道 CheckSatisfied 的变量排序?

How do I know the variable ordering for CheckSatisfied?

我正在尝试使用 CheckSatisfied 函数为我的约束编写一些单元测试。我怎么知道输入向量的可变顺序x

例如

q = prog.NewContinuousVariables(1, 'q')
r = prog.NewContinuousVariables(2, 'r')
formula = le(q, r[0] + r[1])
constraint = prog.AddConstraint(formula)
assert(constraint.evaluator().CheckSatisfied([0.3, 0.5, 1]))

如何知道0.30.51对应哪个变量?

是否取决于如何添加约束,如果是,我如何知道在无数种方式中添加的约束的可变顺序?

变量的顺序存储在 AddConstraint 的 return 参数中。如果您检查 constraint.variables(),您会看到变量顺序。伪代码为

constraint = prog.AddConstraint(formula)
print(f"{constraint.variables()}")