問題タブ [clpb]

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 に答える
113 参照

prolog - プロローグ: セットのサイズがわかっているアイテムが 2 つのセットのうちの 1 つに含まれる場合の控除

部屋に5人います。人々が幸せか悲しいかを判断するためのルールを書きます。しかし、それを始める前に、私は 5 人のうち正確に 3 人が幸せで 2 人が悲しいという基本的な知識を持っています。したがって、これに基づいて演繹を行うことは可能であるはずです: もし - とにかく - 幸せな 3 人が誰であるかを知っていれば、2 人の悲しい人を推測することができ、その逆も成り立ちます。

私がこれまでに得たものは次のとおりです。

尋ねられたときhappy(X)、プロローグはロイ、スティーブ、ジャックをくれます。問題: とsad/1の相互再帰のため、同じ方法でルールを定義できませんhappy/1。上記の例の結果が同じままであるようなルールを追加できるようにしたいのですが、次の初期化では Bob と Tim が悲しいものとしてリストされます。

これについて考えるべき良い方法はありますか?5 が 3 つの幸せと 2 つの悲しいに分割されるという知識に基づいて演繹が可能であるという事実を超えて、追加のロジックを追加して、後でsad/1andのルールをさらに記述できるようにすることが重要です。happy/1

0 投票する
3 に答える
754 参照

prolog - ブール式のブルートフォース Prolog SAT ソルバー

ブール式 (NNF、CNF ではない) のモデルを単純に検索するアルゴリズムを作成しようとしています。

私が持っているコードは既存のモデルをチェックできますが、モデルを見つけるように求められたときに失敗します (または終了しません) member(X, Y)[X|_], [_,X|_], [_,_,X|_]...

私がこれまでに持っているのはこれです:

のより良いデータ構造F、または部分的にインスタンス化されたリストを切り捨てることができる他の方法はありますか?

編集: 定義と例を追加しました。

0 投票する
3 に答える
298 参照

list - PROLOG 未定義のプロシージャ ERROR (2 つのパラメーターの再帰)

皆さん、こんにちは。助けが必要です。このコードは、2 つの個別の数値のカウントを再帰的に提供する必要があります。ただし、2 つのパラメーターで再帰を提供することはできません。私は推測MRecし、NRec決して有効ではありません。どんな助けでも大歓迎です。ありがとう...

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

prolog - プロローグを使った回路検証

2 ビット全加算器回路を検証するために使用する関数と述語が与えられました。これは私がこれまでに理解したことです:-

関数 signal(t) ここで、t は端末であり、signal は値 1 または 0 を取ります。

type が回路要素であり、type(x) が値 xor、および、またはを取ることができる関数 type(x)

関数 out(x) はゲート x での出力を表し、in(n, x) n は入力端子です。

ゲートの述語は次のように与えられます

これらについては、それらをプロローグ コードに変換する方法がわかりません。また、プロローグ関数が何かを返す方法もわかりません (結果もパラメーターとして提供する必要があると思います)。

どんなヘルプもとても役に立ちます!

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

prolog - プロローグを使用して無効な推論を判断できますか?

次のように2つの前提がある場合:

  1. a -> c (a は c を意味する)
  2. b -> c (b は c を意味する)

そして導き出された結論:

  1. a -> b (したがって、a は b を意味します)、

次に、結論が無効であることを示すことができます。理由は次のとおりです。

a -> c は、a が真で c が真の場合、ステートメント #1 で有効です。b -> c は、b が偽で c が真の場合、ステートメント #2 で有効です。これは、a が true で b が false の場合に a -> b につながり、ステートメント #3 と直接矛盾します。

または、前提が真であるが結論が偽である行を含む真理値表による証明ごとに:

真の前提と偽の結論を含む真理値表

私の質問は次のとおりです。「プロローグを使用して、ステートメント #1 と #2 の主張がステートメント #3 の結論と矛盾していることを示す方法はありますか? もしそうなら、そうするための明確で簡潔な方法は何ですか?」

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

prolog - プロローグを使用して結果をtxtファイルに出力します

ブール値の問題を解決するために、clpd で Prolog を使用しています。以下のようなルールがあります。

結果をファイルに出力することはできますか? どのようにできるのか?

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

prolog - CSP でソリューションを数える

私はプロローグを使用しており、次のコードがあります。

すべてのソリューションを数えたい場合、どうすればよいですか? clpb で使用される sat_count(+Expr, -Count) について読んだことがありますが、エラーなしで実装することはできません