$T , [$T] , $U 在 minizinc 教程中代表什么

What does $T , [$T] , $U stand for in minizinc tutorial

谁能帮助我理解迷你锌教程中的一些内容:

function set of $T: 'intersect'(set of $T: x, set of $T: y)

这 return 集合 x 和 y 的交集。显然 x 和 y 是集合 - 但是 $T 在这种情况下是什么意思?

function var set of int: 'union'(var set of int: x, var set of int: y)

Return 集合 x 和 y 的并集。据我了解,x 是一组整数,y 也是一组整数 - 但 'var set of int' 是什么意思? 'var' 是什么?

function set of $U: array_union(array [$T] of set of $U: x)

Return 数组 x 中集合的并集。你能解释一下吗:

function set of $U

和:

array_union(array [$T] of set of $U: x)

$T$U 表示任何类型。 $T 可以是 intfloat 等。如果显示 int,则必须提供 int,但如果显示 $T , 你可以提供任何类型。

在表达式 function set of $U: array_union(array [$T] of set of $U: x) 中,$U$T 可以是不同的类型,但在 function set of $T: 'intersect'(set of $T: x, set of $T: y) 中所有 $T 必须相同。 $ 的不同变量只是意味着它们可以是不同的类型。相同的变量 $ 名称并且都需要具有相同的类型。

示例:function set of float: array_union(array [int] of set of float: x)function set of int: 'intersect'(set of int: x, set of int: y)

array [$T]有点特殊,只是表示数组可以是任意维度的。即 array [int]array [int,int]array [int,int,int,int,int] 等。所以 array [$T] of set of $U 意味着我们有一个大小为 $T 的数组,例如 [int,int],两个维数组。这个数组充满了任何类型的集合。例如整数集,例如 {1,4,7,145}.

var intint 是不同的类型。 int 只是普通数字。 var int 是变量整数,即 MiniZinc 试图为其赋值并解决问题的变量。

例如var 1..150: agevar int: age 如果我们想解决一些年龄问题。