프롤로그에서 조건자를 최소화해야합니다. 현재 GNU Prolog Java를 사용하고 있습니다. 나는이 사실 유한 도메인 해법 fd_minimize/2
army(Territory,X).
그것은 주어진 지역은 X 군대를 가지고 있다고 말한다을 가지고있다. 이제 주어진 플레이어가 소유 한 최소 수의 군대를 찾고 싶습니다. 그래서 내가 쓰고 :
는place_army(Player, Territory):-
fd_maximize(army(Territory, X), X),
owner(Player, Territory).
인터프리터는 말한다 :
java.lang.IllegalArgumentException가이 : 목표는 내가 문제를 발견 조금 후에
현재 활성화되지 않은 : http://www.gprolog.org/manual/gprolog.html#htoc313 문제는 인터프리터의 Java 구현에 FD 해석이 없다고 가정합니다. 어떤 힌트/해결 방법?
답장을 보내 주셔서 감사합니다. gnu 프롤로그 Java 구현은 Keysort 메소드를 제공하지 않으며 Prolog에서 멍청한 놈입니다. 그래서이 코드를 작성했습니다 : 'place_army (Player, Territory) : - findall (X, army (_, X), 값 : 정렬 (값, [Army | _]), 군대 (지역, 군대), 소유자 (플레이어, 지역),! – Otacon
@Otacon : 군대/2 직후 인하해야 유지됩니다. 다른 두 시도와 동등 함. 어쨌든 멍청한 녀석은 나쁘지 않아! – false
Thx : 힌트를 많이 주셨습니다. D (그리고 멍청한 놈에게는 나쁜 것이 아닙니다.) : D SWI-PROLOG로 전환하기로 결정했습니다. 조금 더 무거워지만 내 개발에 필요한 모든 것을 갖추고 있습니다. D 그래도 여전히 고맙습니다. – Otacon