Prologで述部を最小化する必要があります。現在、私は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 prolog java実装はKeysortメソッドを提供せず、私はPrologのnoobですので、このコードを書きました: 'place_army(Player、Territory): - findall(X、army(_、X)、ソート(値、[Army | _])、 軍隊(Territory、Army)、 所有者(Player、Territory)、!。 – Otacon
@Otacon:軍隊/ 2直後にカットを置いて維持する必要があります他の2つの試みと同等である。とにかく、noobには悪くない! – false
あなたのヒントのために多くのThx:D(そして、 "noobのために悪くない"のためにたくさんありがとう):D 私はSWI-PROLOGに切り替えることにしました。それは少し重いですが、それは私の小さな開発に必要なものすべてを持っています:D しかし、まだ、あなたのサポートのためにたくさんの! – Otacon