변수가 V
이고 V
의 값이 0..5
범위의 숫자 일 수 있습니다. 그러나 일부 값은 다른 값보다 더 선호되므로 V
의 도메인을 순서 지정 순서로 지정하는 데 도움이됩니다.변수 도메인에서 값의 사용자 지정 순서를 지정하는 방법은 무엇입니까?
SICStus Prolog에서 수행 할 수 있습니까?
예 :
% PSEUDOCODE
%
% 3 is more preferred than 4; 4 is more preferred than 2; and so on..
% So I would write something like this:
V in {3,4,2,5,1,0},
getDomainAsList(V, List), % the predicate do not exist
% and the List would be: [3,4,2,5,1,0] and not [1,2,3,4,5]
내가 설명서를 읽고 난 도움이 될 아무것도 찾지 못했습니다. 맞춤 라벨링 (즉, V의 도메인을 목록으로 변환하고이를 정렬하고 V
에 값을 할당하여 문제를 해결할 수는 있지만 성능이 저하 될 것으로 예상됩니다.)
당신은 태그 "clpfd"를 놓칠 수 있습니다
는 라벨/2, here에 값 (열거 형) 옵션을 참조하십시오. 그렇다면 변수를 선언하는 방법을 알려주십시오. –목록이 Prolog에서 작동하는 방법을 알고 있습니다. CLPFD 변수에 대한 자체 라벨이 있고 다음을 수행합니다. 1) 변수 X 가져 오기 2) 도메인 확인 3) X에 값 지정 X. 명백히 첫 번째 값을 지정하는 것이 훨씬 빠릅니다 (예제에서 3) V의 도메인을 가져 와서 정렬하는 것보다. –