これはどう:
#minimize {batteryFlat(mycar); batteryFlat(yourcar); hasNoFuel(mycar);
hasNoFuel(yourcar); brokenIndicator(mycar); brokenIndicator(yourcar)}.
セットは ; で区切られるようになりました。そして、 を使用して条件を結合できます。各要素の優先度は同じですが、異なる優先度が必要な場合は、次のようにすることができます。
#minimize {1@1: batteryFlat(mycar); 1@2: batteryFlat(yourcar); hasNoFuel(mycar);
hasNoFuel(yourcar); brokenIndicator(mycar); brokenIndicator(yourcar)}.
これで、最初のアトムの優先度が 1 になり (少なくとも 1 回は発生すると思います)、2 番目のアトムの優先度が高くなります。
または、変数がある場合は、次のようにさまざまな根拠の数を優先します。
#minimize {X@1: batteryFlat(X); 1@2: batteryFlat(yourcar); hasNoFuel(mycar);
hasNoFuel(yourcar); brokenIndicator(mycar); brokenIndicator(yourcar)}.
比較はここに示されています: http://sourceforge.net/projects/potassco/files/clingo/4.2.0/