[英]Printing part of an array in MiniZinc
我有一個用於 wolf-goat-cabbage 的 MiniZinc model,其中我將每個實體的位置存儲在其自己的數組中,例如array[1..max] of Loc: wolf
其中Loc
定義為枚舉: enum Loc = {left, rght};
max
是可能需要的最大步數,例如 20..
為了找到一個最短的計划,我定義了一個變量var 1..max: len;
並約束結束 state 發生在步驟len
。
constraint farmer[len] == left /\ wolf[len] == left /\ goat[len] == left /\ cabbage[len] == left
然后我要求
solve minimize len
我得到了所有正確的答案。
我想從 1..len 顯示1..len,
但我找不到辦法。 例如,當我嘗試包含在 output 中時:
[ "\(wolf[n]), " | n in 1..max where n <= len ]
我收到一條錯誤消息,說我無法顯示opt string
數組。
有沒有辦法只顯示數組的初始部分,其中初始部分的長度由 model 確定?
謝謝。
您是否嘗試修復 output 語句中的 len 變量,例如n <= fix(len)
? 另請參閱minizinc 修復 function 的用途是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.