問題タブ [answer-set-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
205 参照

prolog - Answer Set Prolog でファクトのリストを確認するにはどうすればよいですか?

私は次のような事実のリストを持っています

など、また

など、そして

学生が卒業できるかどうかを言わなければなりません。

学生を卒業するには、すべてのコースを受講する必要があります。しかし、ルールにすべての用語を書かずに、どうすればこれを言うことができますか?

私が思っていたのは

しかし、すべてのコースを書かずにすべてのコースを受講したルールを説明する方法がわかりません。誰かが私を助けることができますか?

ありがとう。

0 投票する
1 に答える
732 参照

prolog - 論理パズルの述語計算と prolog/dlv への変換

問題は:塩が盗まれた!さて、犯人はキャタピラー、トカゲのビル、またはチェシャ猫のいずれかであることがわかりました。3 人は裁判にかけられ、法廷で次のような声明を出しました。

たまたま、そのうちの少なくとも 1 人は嘘をつき、少なくとも 1 人は本当のことを言いました。誰が塩を食べましたか?

請求書が真かどうか、すべてのステートメントが真であることは確かです。チェシャが真の場合、すべてが偽であるため、キャタピラーに違いありません。

述語計算で見てプログラミングすると、次のようになります。

しかし、これを述語論理でさらに説明すると、彼らが行った説明や嘆願をどのように説明するかわかりません。そして、あるステートメントが真である場合、他のステートメントが偽である可能性があることをどのように意味することができます.

0 投票する
1 に答える
3126 参照

aggregate - クリンゴで集計をカウントする

テストデータ

仕事の種類と特定の仕事の従業員数に従って、従業員ごとにグループ化したいと考えています。例えば:

以下は私が実行しようとしているクエリです

アドバイスしてください、私は Clingo の初心者レベルです

0 投票する
1 に答える
248 参照

answer-set-programming - 解答セット プログラミング: 互いに嫌いな 2 人の生徒が同じグループにならないように生徒をグループに割り当てる方法

私はアンサーセットプログラミングの初心者です。次のように、すべての生徒を異なるグループにグループ化したいと考えています。 1. 各グループには 3 ~ 4 人の生徒がいます。3. また、同じ学生を別のグループに割り当てることはできません。

私は次のように書いています:

各グループに含めることができる生徒数の制約を追加しましたが、他の 2 つの条件をどのように満たすかについての手がかりがありません。

どうぞよろしくお願いいたします。ありがとう。

0 投票する
1 に答える
96 参照

answer-set-programming - グリッド内のセルの連続グループ

私はパズル ソルバー (ノノグラム、グリドラー、ピクロスなど) に取り組んでいます。楽しみのためだけに、ASP についてもう少し学びたいと思っています。(ウィキペディアでこれらのパズルの詳細を読むことができますhttps://en.wikipedia.org/wiki/Nonogram )

グループの左側と右側に 1 つずつ、cell(I,J,o)2 つの白いセル ( ) に囲まれた、水平方向に連続した黒色のセル ( ) のグループがあるかどうかを確認したいと考えています。cell(I,J,x)

ご覧のとおりcell(I,J1..J2,o)、定義でとhblock/3の間のすべてのセルが黒 (o 記号でマーク) であることを確認するために使用していますが、次の入力が与えられた場合:col(J1)col(J2)

を出力hblock(2,3,1) hblock(2,1,3) hblock(2,1,1)します。これは、単一の黒セルの 2 つのブロック ((2,1) と (2,3)) と、(2,1) と (2,3) の間の 3 つの黒セルの大きなブロックを検出していることを意味します。しかし、中央に x でマークされたセルがあるため、検出されるべきではありません...

私は何を間違っていますか?

0 投票する
1 に答える
281 参照

answer-set-programming - 制約を使用して四角形を四角形に詰め込む (CLINGO)

CLINGO を使用して、指定された一連の正方形を指定された長方形領域にオーバーラップなしでパックします。たとえば、正方形をパックします。

Aサイズ4、Bサイズ3、C&Dサイズ2、Eサイズ1

5 x 8 の領域に。

重なり合った正方形を捨てることへの制約が何であるか、またはこれを正しく行っているかどうかはわかりません。