首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于循环索引的Minizinc

用于循环索引的Minizinc
EN

Stack Overflow用户
提问于 2020-01-14 00:58:08
回答 1查看 75关注 0票数 0

我正在尝试创建一个返回矩阵中当前访问行的索引值的MiniZinc函数,但是我不知道怎么做,因为我对MiniZinc非常陌生,所以代码可能包含一些错误。

代码将如下所示:

代码语言:javascript
复制
function int: to_Index(array[totVert][4] of int: matrix, int: pid, int: vert, set of int: TOT_VERT) = 
forall(int: i in TOT_VERT) 
   (if matrix[i][0] == pid /\ matrix[i][1] == vert then 
    % here I would return the current value of i);
EN

回答 1

Stack Overflow用户

发布于 2020-01-14 02:13:30

这是一个可能工作的版本,这取决于数据的结构。主要提示是使用exists而不是forall,因为您正在查找一个值。请注意,这是完全未经测试的,因为没有测试数据。

代码语言:javascript
复制
function var int: to_index(array[int,int] of int:matrix, int:pid, int:vert, set of int: TOT_VERT) =
  let {
      var TOT_VERT: ix;
      constraint
      exists(i in TOT_VERT) (
               if matrix[i,0] = pid /\ matrix[i,1] = vert  then
                  ix = i
               endif
            );
     } in ix
;

注意:我还更正了matrix的语法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59720894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档