問題タブ [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.
answer-set-programming - ASPで否定を失敗として理解する方法は?
次のプログラムがあるとします。
プログラムの回答セットを取得するために clingo を実行すると、次のようになります。
グラウンダーは最初にすべての変数を定数にインスタンス化することがわかっているので、グラウンディング後のプログラムは次のようになります。
私はGelfondの本を読んで、回答セットを取得するための3つのルールを提供しています:
Π の規則を満たします。言い換えれば、ルールの本体を信じるなら、ルールの頭を信じてください。
矛盾を信じないでください。
「強制されていないものは信じない」という「合理性の原則」を遵守してください。</p>
ここにルールがあります:
失敗として否定を得たnot holiday(tomorrow)
この本に示されているように:
シンボル
not
は、デフォルトの否定 (または失敗としての否定) と呼ばれる新しい論理接続詞です。not l は、「l が真実であるとは信じられない」と読まれることがよくあります。これは、l が偽であると信じられていることを意味するものではないことに注意してください。合理的な推論者が陳述p
もその否定も信じないということは、実際にはごく普通のことであると考えられ¬p
ます。
次に、ルール 1 に基づいて、 、どちらも信じてはならないのでbelieve in the head of a rule if you believe in its body
、体を信じるべきですか?not holiday(tomorrow).
holiday(tomorrow).
¬holiday(tomorrow).
答えによると、私は信じるべきです¬holiday(tomorrow).
- では、なぜこの否定を失敗として必要とするのでしょうか?
- 古典的な否定をそのまま使えますか?
constraints - クリンゴのカーディナリティ制約を理解できません
私はClingoで次のように定義されたグラフの色分け問題を持っています:
そして、私は次のように特徴付けられるソリューションを持っています:
= 1
コードの生成部分の が何を意味するのか理解できません。「カーディナリティの設定」であることは知っていますが、コードは各回答で7つのノードを生成する必要があるため、その方法がわかりません。さらに、次のジェネレーター (長さ 7 のセットで選択するノードと色のすべての組み合わせを生成する) には が必要= 7
です。
これは、私が解決しているグラフの彩色問題の写真です: https://imgur.com/a/tX7qtkJ
およびクリンゴ: https://potassco.org/clingo/run/