簡體   English   中英

在 MiniZinc 中打印數組的一部分

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM