loops - 循环 JuMP 约束中的变量子集

标签 loops constraints julia julia-jump network-flow

我正在尝试实现一个弧流问题,其中数组中有一组弧。每个弧都是由起始/终止节点组成的自定义数据结构。我想添加一个约束,其中仅包含来自特定节点 (1) 的弧,例如:

@constraint(m, sum(x[a] for a in arcs; a.from==1) == 1)

这不起作用。处理这个问题的最佳方法是什么?有没有一种方法可以做到这一点,而无需首先预先计算每个节点的所有传出弧?如果是这样,有没有办法添加额外的条件? 提前致谢

伯纳多

最佳答案

我猜您正在寻找的语法是

@constraint(m, sum(x[a] for a in arcs if a.from==1) == 1)

这遵循 generator expressions 的标准 Julia 语法。 .

但是,该表达式与普通 Julia 中的表达式一样低效,因为它循环遍历所有弧。如果此循环成为瓶颈,您将需要以另一种方式重新构造表达式,例如,通过预先计算每个节点的传出弧。

关于loops - 循环 JuMP 约束中的变量子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64448184/

相关文章:

javascript - 动态 Javascript 树结构

performance - 在 Haxe 中循环的最有效方法是什么?

javascript - .each() 循环在开始之前等待另一个循环完成

ios - 如何在不删除 iOS 约束的情况下调整具有不同内容的 tableView 单元格的大小

prolog - channel 约束示例ECLiPSe

Java 扫描器循环?

python - Julia 符号和数字性能对比 Python

types - 在 Julia 中使用 @code_warntype

julia - 访问 AST 以获取 Julia 中的泛型函数

ios - 无法使用自动布局将简单的自调整大小 Collection View 单元格调整为标签大小