2017-09-21 29 views
0

복잡한 변수가 제약 조건을 충족시키는 지 Choco를 확인하는 방법은 무엇입니까? 예를 들어, I는 구성 다음 목록 경우 :초코의 복잡한 변수

int[][] configurations = new int[][] { 
     {20, 24, 10, 3, 4}, 
     {20, 13, 1, 3, 4}}; 

CONFIG1 = {20, 24, 10, 3, 4} 및 config2 = {20, 13, 1, 3, 4}

int[] constraints = new int[]{21, 15, 2, 10, 10}; 

은 주어진 구성에 대해 구성의 각 요소가 응집 된 제약 조건보다 높거나 낮아야 할 제약 조건 목록입니다. 예를 들어 CONFIG1는 {20, 24, 10, 3, 4} 제약 = {21, 15, 2, 10, 10}의 모든 제약 조건이 성립하는 경우

check if config1[0] < constraints[0] AND config1[1] < constraints[1] AND ... 

다음 단으로 표시 = 해결책. 이것은 내가 가지고있는 것입니다.

// c = number of configurations 
// q = number of elements in each configuration 
// p = configurations matrix 

for (int i = 0; i < c; i++) { 
     for (int j = 0; j < q; j++) { 
      model.arithm(model.intVar(p[i][j]), "<", model.intVar(k[j])).post(); 
     } 
} 

답변

1

CP는 변수와 제약 조건에 의존합니다. 먼저 변수를 작성한 후 변수를 게시해야합니다. 제발 당신의 문제의 일부 입력됩니다 int의 배열 "제약"전화하지 마십시오.

간단한 초코 예제는 여기에서 찾을 수 있습니다. - https://www.cosling.com/choco-solver/hello-world 나는이 hello 단어로 충분하다고 생각합니다. 더 깊은 곳으로 가려면 다음을 읽어보십시오. http://choco-tuto.readthedocs.io/en/latest/

+0

제 질문은 제약 조건과 변수를 정의하여 전체 구성을 구성하는 방법입니다. 예를 들어, 내 구성에 3 개의 요소 (a, b, c)와 제약 조건 배열 (x, y, z)이 있고 제약 조건을 만족시키는 것 외에도 일부를 최소화 (최대화)하려면 어떻게해야합니까? Andrei