c++ - 对如何在 c++ 中编写 for 循环(包括 for all 加法)感到困惑

标签 c++ loops optimization sum constraints

<分区>

我正在用 C++ 开发公交时刻表问题的优化,需要对每个约束进行编码,但是我很难知道如何对特定类型的约束进行编码。

Constraints

集合 i、j、k 和 h 的范围分别从 1 到 I、J、K 和 H。我的困惑在于如何对约束的左侧进行编码。我正在尝试使用 for 循环,但是我对如何实现 for all i,h 部分感到困惑。 我的问题是假设 X 是一个四维数组,如何对等式的左侧进行编码。到目前为止,我有两个 for 循环,从 j,k = 0 循环到 j,k < J,K。我将如何包括所有 i,h 任何帮助将不胜感激 =)

最佳答案

在伪代码中会是

for all i
    for all h
        sum = 0
        for all j
           for all k
               sum += X[i,h,j,k]
        if (sum != 1) -> condition not satisfied

对于 ih 的每个组合,您基本上都有一个必须满足的单独条件。对于这些条件中的每一个,您都必须对 jk 求和。

关于c++ - 对如何在 c++ 中编写 for 循环(包括 for all 加法)感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57558972/

相关文章:

c++ - 在 C++ 命名空间中使用内置类型(double、int 等)?

java - 如何在 java 中从 List<String> 中删除和设置?

最终赋值的 C 循环优化帮助(禁用编译器优化)

c++ - 为什么不能将互斥量传递给线程?

c++ - 重新解释将 IDXGISwapChain** 指针转换为 IUKnown** 指针

C++字符串混淆

javascript - 遍历复杂的嵌套 json 数组 javascript

javascript - 获取: RangeError: Maximum call stack size exceeded

Python quicksort - 列表理解与递归(分区例程)

Python linprog最小化错误——单纯形法