問題タブ [prolog-tabling]

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

prolog - XSBPrologの半順序の表

XSBバージョン3.3.5マニュアル(「PartialOrder AnswerSubsumption」から)の例を試しています。

そして、私は得ています

何が問題なのですか?

また、エラーはありません

0 投票する
4 に答える
2252 参照

prolog - DCG での左再帰の削除 - Prolog

この文法の左再帰に小さな問題があります。Prologで書こうとしているのですが、左再帰を外す方法がわかりません。

みたいなことを書いたのですが、全然うまくいきません。このプログラムを機能させるために変更するにはどうすればよいですか?

0 投票する
0 に答える
933 参照

prolog - テーブリングはどのように効率を改善しますか?

Prolog プログラムの効率を向上させるためにテーブルがどのように機能するかについて興味があります。それはどのように実装されていますか?説明と参照の両方を歓迎します。

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

performance - BProlog 8.1 での不均一なテーブル パフォーマンス

バージョン 8.1のテーブル機能でいくつかの実験を行い、 観察したパフォーマンスに非常に驚きました。

これが私が使用したコードです。正の整数を に減らすために必要なコラッツステップの数をカウントします。NI1

から までのすべての整数に必要なリダクション ステップの最大数を決定するには、次のI0ようにしIます。

テーブルを使用しない場合と使用する場合のいくつかのクエリ?- time(i0_i_maxSteps0_maxSteps(1,1000000,0,MaxSteps)).を実行すると、次のランタイム (秒) が観察されました。

  • テーブルなし: 6.784
  • テーブル付き: 2.323、19.78、3.089、3.084、3.081 _ _ _ _

クエリを追加すること:- table posInt_CollatzSteps/2.で、2 倍速くなりました。それでも、私は困惑しています:

  • 2 回目の実行は、1 回目の実行よりも 5 倍以上遅くなります。どうやらほとんどの時間はGCに費やされています。3 回目以降、テーブル バリアントは再び高速になります。
  • ウォーム実行 (3 回目、4 回目、...) は、コールド (1 回目) 実行よりも著しく遅くなります。

私はこれを期待していませんでした!バージョン 3.6.0で観察したランタイムと比較してください。

  • テーブルなし: 14.287
  • テーブル付き: 1.829、0.31、0.308、0.31、0.333 _ _ _ _

私に何ができる?BProlog のパフォーマンスを向上させるためのディレクティブやフラグはありますか? Linux で BProlog バージョン 8.1 64 ビット版を使用しています。

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

prolog - Anytime strongly connected components via Prolog

Markus Triska has reported an algorithm to determine strongly connected components (SCC). Is there a solution which determines the SCC without making use of attributed variable and that can work anytime. So that some vertices can have infinitely many edges?

I am asking because I am wondering whether B-Prologs anytime tabling which they call eager can be replicated. B-Prolog determines clusters which is their name for SCC. But it has also a tabling mode where it returns tabled results eagerly.