問題タブ [constraint-handling-rules]
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.
prolog - Prolog SWI または CHR Prolog SWI のバックトラックの量をどのように数えることができますか?
Prolog SWI で CHR (Constraint Handling Rules) を使用していくつかのパズル ソルバーを作成しています。
すべてがうまく機能しますが、どのソルバーが最適かをテストするのが好きです。したがって、どのソルバーがバックトラックの使用量が最も少ないかを調べるのが好きです。
特定のパズルを解くためにソルバーが必要としたバックトラックの量を見つける (または印刷する) 賢い方法はありますか?
論理的には、カウントは役に立ちますが、そうではありません --> バックトラック ! <-- . また、SWI の GUI が原因で、画面に新しい行を出力することは効果的ではありません。+/- 50 行を超えて印刷できず、適切に選択できない
prolog - 制約処理規則による無限再帰の回避
Constraint Handling Rulesを使用して、SWI-Prolog で簡単な一連の制約を作成しました。2 つの比較的単純な推論規則を使用します。
になると思っていmeans([3,is,equal,to,4],[3,equals,4])
ましたがtrue
、代わりに無限再帰が発生するようです:
このプログラムにシンパゲーション ルールを追加しましたが、それでもOut of local stack
エラーが発生します。
無限再帰を生成しないように推論規則を書き直すことは可能ですか?
prolog - Eclipse CLP のコードを CHR にトランスパイルする一般的な方法
私の質問は少し一般的ですが、私の特定の質問への回答は非常に役立つ可能性があります. 一般的な質問は、「Eclipse CLP プロローグのコードを制約処理規則 (CHR) コードに転送する一般的な方法はありますか?」です。いずれにせよ、CHR コードがプロローグ コードにコンパイルされることはわかっています。
具体的な質問は、「Eclipse CLP の N-Queens のこのサンプル コードを CHR コードに転送するためのアルゴリズムまたは正式な規則はありますか?」です。