이것은 내 모델입니다 ... N = 16 POTITIONS의 사이 클릭 테이블에서 다른 친구를 옆에 두려고합니다. 친구들은 관심사가 있습니다. 서로 옆에 하나씩 은 최소한 하나의 공통 관심사가 있어야합니다.. 자신의 이익의minizinc 친구가 테이블에 앉아 공통 관심사를 공유
int :N;
set of int: FRIENDS = 1..N;
set of int: POSITIONS = 1..N;
array[FRIENDS] of set of int: interests;
array[POSITIONS] of var FRIENDS : friends_at;
include "alldifferent.mzn";
constraint alldifferent(friend_at);
constraint forall(i in 2..N-1)(
(interests[friend_at[i+1]]<=interests[friend_at[i]] \/ interests[friend_at[i+1]]>=interests[friend_at[i]])
/\
(interests[friend_at[i-1]]<=interests[friend_at[i]] \/ interests[friend_at[i-1]]>=interests[friend_at[i]])
/\
(interests[friend_at[N]]<=interests[friend_at[1]] \/ interests[friend_at[N]]>=interests[friend_at[1]])
);
solve satisfy;
N = 16 배열 : 여기
interests=[{1},{2,3},{3,2},{2},{2,3},{2,1},{1,3},{3},{2,1},{3,1},{1,2},{2},{2,3},{2,3},{3},{2}];
어떤 오류가 발생합니까? 또한이 모델은 완전하지 않습니다. '이익'의 선언이 부족하다. "관심사"매트릭스도 추가해 주시겠습니까? 그러면 모델을 더 쉽게 이해할 수 있습니다. – hakank
관심 분야 = [{2,1,3}, {2,1,3}, {3,2}, {3,2,1}, {2,1,3}, {2,3,1} {1,2,3}, {3,1}, {2,3,1}, {3,2,1}, {1,3,2}, {3,1,2}, {2,3 }, {1,2}, {2,3,1}, {2,3}]; 내 오류 : C : /Users/ /Documents/ / /Gala/gala.mzn : 36 : MiniZinc : 병합 오류 : 'set_le'이 구체화 된 컨텍스트에서 사용되지만 구체화 된 버전을 사용할 수 없습니다. 이전 메모에서 – Kotsos
... 모든 세트에서 공통된 차이점이 있습니다 ... 실례합니다. 관심사 = [\t {1 } \t {2,3}, {3,2 \t} \t {2} \t {2,3}, {2,1 \t}, {1 \t 3} \t {3} \t {2,1}, {3,1 \t} \t {1,2} \t {2} \t {2,3} \t {2,3}, \t {3}, \t {2} \t]; – Kotsos