問題タブ [transitive-closure]
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 無限ループ (巡回グラフ)
これは単純な問題かもしれませんが、別の方法で行う必要があります。問題は、プロローグで飛行機の可能なルートを見つけなければならないことです。私はこのナレッジベースを持っています
そして、X から Y に移動できるかどうかをチェックする述語 route(X,Y) を作成する必要があります。
しかし、グラフは循環的であるため、機能しません。私はインターネットで検索しましたが、誰もがリストを使用して訪問したパスを確認することだけを言いました。しかし、私はリストを使用することはできません! リストを使用せずに述語ルート (X,Y) を作成する必要があります。リストを使用せずにこれを行うにはどうすればよいですか? ありがとうございました
recursion - 2 つの場所の間に接続があるかどうかを調べ、コストを計算する
私は次のような都市間の接続を持っています
そのため、最初に他の都市を通過しても、2 つの都市間に可能なルートがあるかどうかを調べる述語を作成したいと考えています。
この時点まで、機能するこの再帰コードを作成しました。
しかし、2 つの都市間のコストが 100 で、通過する他の都市ごとに 50 以上の場合、ルートの総コストも計算したいと思います。
どんな助けでも感謝します。
path - 循環パスを使用したプロローグ グラフ パス検索
私はプロローグの完全な初心者です。パスがエッジ間に存在するかどうかを確認する必要がある問題を見つけようとしています。巡回用の非巡回グラフ コードが完成しました。私のコードは無限ループに陥ります。
新しい述語 new_path(Start,End,path) を定義して、このケースを処理する必要があります。これにより、無限ループが解消されます。続行する方法を教えてください。
prolog - Prolog : 間接関係から循環を排除する
次のように定義されたユーザーファクトのリストがあります。
等々。さらに、次のような一連の事実があります。
user1 が間接的に user2 をフォローしているかどうかを教えてくれる関係 indirect(user1,user1) を書き込もうとしています。しかし、循環関係をなくすことはできません。
与えられた例のように、マイケル -> アナ -> ボブ -> マイケルはサイクルを引き起こします。
indirect(user1,user2) の結果からこれらのサイクルを排除する最良の方法は何ですか?
prolog - Prolog Out of Local Stack エラー
本からいくつかの基本的な例を試してみましたが、「ローカル スタックが不足しています」というエラーが発生します (コードの後で詳しく説明します)。コードは次のとおりです。
たとえば、クエリ edge(a,b) を記述しようとすると、true が返され、「;」と入力しました。そしてそれはエラーを起こしました。ここで何が問題なのですか?
prolog - 推移的な関係を表現する方法
推移的な関係を表現したい。A が B を参照し、B が C を参照する場合、A は C を参照します。
を使用してクエリを実行すると、次のようになりますproj(A)
。
[46] ?-proj(A)。
A = _639
"_639" とはどういう意味ですか? はいまたはいいえを期待していたので、その奇妙さを得ました。次のルールを追加する必要があります。
ref(A,C).
はい。理想的には、可能であれば、この関係 (A => B => C) がどのように生じたかを示したいと思います。