필자는 작업 목록을 가지고 있으며 이들 사이에는 몇 가지 상호 의존성이 있습니다. 9 개의 작업. 각 cpu 그룹에서 6 cpu 2. 세 개의 그룹 p1, p2, p3이 있습니다.Minizinc의 ReifiedConstraint
cost p1=4
COST p2=5
COST P3=2
다른 CPU의 다른 작업에 대한 실행 시간이 주어집니다. 작업간에 데이터를 전송해야합니다. 우리는 점대 점 링크를 사용할 것입니다. 우리는 두 개의 CPU 사이의 지점 간 링크를 구매해야하며, 비용은 1이 될 것입니다. 나중에이 링크를 다시 사용할 수 있습니다.
문제 : 이러한 제약 조건을 지정하고 싶습니다. r1!=r4 <=> b14=1; b14
은 작업 1과 4 사이의 통신을위한 통신 시간입니다. 또한 링크 비용이 필요합니다. r1 : CPU 작업 1이 (가)에 할당되었습니다.
if r1!=r4 then cost[r1][r4]=1;
Minizinc에서 이러한 두 가지 제약 조건을 어떻게 지정할 수 있습니까? Reified 모든 것을 사용할 수 있다면 if then constraint를 사용하고 싶지 않습니다.