% % Voyageur de commerce % array[1 .. N] of var 1..N: chemin; int: min_val = min([distances[i,j] | i,j in 1..N where distances[i,j] > 0]); int: max_val = max([distances[i,j] | i,j in 1..N]); array[1..N] of var min_val .. max_val : d; constraint alldifferent(chemin); constraint circuit(chemin); constraint forall(i in 1..N) ( distances[i,chemin[i]] = d[i] );