問題タブ [clp]

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 投票する
1 に答える
405 参照

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

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

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

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

prolog - Prolog CLP FD を使用して経路制限を行う方法は?

Prolog CLP FD を介して制限プログラミングを使用して、提案されたパズルを解こうとしています。このパズルは、次の簡単なルールで構成されています。

陰陽パズルの説明

さて、私のコードでは、すでに 2x2 グリッドの制限をカバーしており、1 つのピースを少なくとも同じ色の 1 つに接続する必要があります。

問題は、反対の色のピースを通過せずに、1 つのピースが同じ色の他のすべてのピースへのパスを持っている (接続されている) 必要があるという制限を構築する方法を見つけることができないことです。この種の出力:

1 がすべて互いに接続されているわけではありません。

この種のグラフ制限を CLP FD に記述するにはどうすればよいですか?

編集: SICStus Prolog を使用しています。

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

recursion - Prolog を使用した CLP(R) での再帰関数の正しい書き方

Prolog で CLP がどのように機能するかについて、私は非常に混乱しています。利点を理解するのが難しいだけでなく (特定のケースではそれを理解できますが、それらを一般化するのは難しいと思います)、さらに重要なことに、再帰述語を正しく記述する方法をほとんど理解できません。次のうち、CLP(R) の方法で正しい形式はどれですか?

また

言い換えれば、いつ制約外にコードを書くべきかわかりません。PrevN私には、最初のケースの方がより論理的に見えるでしょうNewFしかし、それが本当なら、再帰関数の制約の外側で述語を使用することがどのような場合に役立つかを知りたいです。