問題タブ [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.

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

list - グラフをトラバースし(ループの可能性がある)、Prologでパスを返す

アークのリストが表示されます。

Xノードからノードへのパスがあるかどうかを教えてくれる一連の句を書きましたY。ループが発生する可能性があり、私はそれを説明しました。

成功すると、トラバースされたノードのリストを返すようにこれを変更する必要があります。これをどのように行うかはわかりません。

私のベースケースは次のようなものになると思いますpath2(X,Y,[X,Y]) :- arc(X,Y).が、それは私のプログラムでは機能しません。前の部分のソリューションに何か問題がありますか、それとも小さな変更がありませんか?どんな助けでもいただければ幸いです。ありがとう!

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

scala - タプルのセットの推移閉包を生成する方法は?

タプルのセットの推移閉包を生成するための最良の方法は何ですか?

例:

  • 入力Set((1, 2), (2, 3), (3, 4), (5, 0))
  • 出力Set((1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4), (5, 0))
0 投票する
1 に答える
1994 参照

java - グラフ内のすべての推移閉包ループを見つけるための適切なアルゴリズム?

次の条件を持つグラフ内のすべての推移閉包ループを見つけたいと思います。

  1. 識別されたループに存在するすべてのノードが別の識別されたループのサブセットである場合、スーパーセットのみを考慮します。
  2. すべての異なるループを見つけます。

注:「ループ」を次のように読みます->推移閉包ループ(つまり、推移閉包セット内のノード)

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

c++ - boost ::transitive_closure()および "エラー:'vertices(const std ::vectorの呼び出しに一致する関数がありません...」

Linuxマシンでブースト1.48.0のGCC4.5.0を使用しています。

boost ::graphからboost::transitive_closure()関数を使用するソースファイルをコンパイルしているときに、http://boost.2283326.n4.nabble.com/Problem-in-using-Transitiveと同じ問題が発生しています。 -closure-on-Linux-td2573042.html。ただし、私の場合、他のBoostヘッダーファイルの前にboost /graph / vector_as_graph.hppをインクルードしても、状況は変わりません。

誰かが以前にこれに遭遇し、それを回避する方法を知っていますか?

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

recursion - Prolog再帰-両方向を満たす(単純)

私はPrologを初めて使用し、この割り当てを与えられました。

私のコードは次のとおりです。

十分に単純です。これは、次の場合を示しています。

Prologはtrueを返します。今、私はそれを真に戻す方法に固執しています:

isRelated(Z、Y)がfalseを返し、XとYを切り替えて、isRelatedを再度実行するなどのアイデアを考え出そうとしてきました。しかし、Prologがそのようなアイデアを許可するかどうかはわかりません。ヒントやアドバイスをいただければ幸いです。ありがとう!

更新:* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **

だから私は追加しました:

それは「直接的な」関係を満足させるでしょう、しかし単に私はそれが間接的な関係を満たさないことを知りました。

最初のクエリの場合、私は本当に次のようなことをしたいと思います。

失敗した場合は、XとYを切り替えて、その逆が当てはまるかどうかを確認してください。

それは間違いなく真になります。Prologでこれを構文的に行う方法がわかりません。

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

c# - クラス階層定義VS(自動的に)生成されたナビゲーションプロパティ

次の場合の設計上の考慮事項は何ですか?

あなたが見積もりを持っているとしましょう。

見積もりは特定の契約に関連しています。

次の方法でクラスを定義できます

それでも、ナビゲートするときは、モデルに存在していなくても、できるようにしたいと思います。

通常、これらのプロパティは、EntityFrameworkまたはその他のORMを使用するときに生成されます。

しかし、純粋なメモリのみのクラスを使用する場合でも、定義ナビゲーションから分離するという問題は、完全に一般的に存在します。

(定義で指定されたリンクのサブセットから、ナビゲーショングラフの推移閉包を生成するためにフレームインできると思います)

私の質問は、FSharpでこれらのナビゲーションプロパティを自動的に継承するための可能な実用的なアプローチは何ですか?私は単なるユーザーであり、フレームワーク開発者ではありません。これは非常に低レベルのものです。

[明らかに、より複雑なクラス階層に一般化することができます

  • 見積もりはブローカーからのものであり、ビッドまたはアスクの性質があり、レベルがあり、特定の契約に対して有効です。
  • 契約は、特定の満期、たとえば2013年のものであり、特定の会社を参照する場合があります。
  • 会社にはティッカーなどがあります...]
0 投票する
1 に答える
3428 参照

transitive-closure-table - グラフの推移閉包を見つける

グラフの推移閉包を計算しようとしています。このグラフを例として考えてみましょう(写真はグラフ、その隣接行列、および接続性マトリックスを示しています)。 ここに画像の説明を入力してください

このページで見つけたWarshallのアルゴリズムを使用して、この接続マトリックス(=推移閉包?)を生成します。これは、図のものとは異なります。

また、このアプレットを使用してみましたが、これも別の結果になります。

ですから、どの行列が正しいかわからないので、今は少し混乱しています。誰かが私の問題に光を当てることができますか?

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

algorithm - 機械語を利用して DAG の推移閉包を計算するアルゴリズム?

G を、隣接行列によって与えられる n 個の頂点と m 個の辺を持つ DAG とします。クロージャーも行列の形で計算する必要があります。各単語が b ビットであるコンピューターがあります。そして、推移閉包を計算するアルゴリズムを見つける必要があります(n^2+nm/b)

bits意味と使い方がよくわからない

dag の推移閉包を見つけるためのアルゴリズムを追加します。

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

awk - 推移閉包を計算する

次の方法で類似性を示すペアワイズ DNA シーケンスのデータがあります。

上記はサンプルの入力ファイルで、元のファイルは数百万行です。以下のように、出力を行間の共通要素に基づいて重複する ID をクラスター化し、クラスターごとに 1 行に出力するようにします。

現在、 mclsilixを使用してそれらをクラスター化しようとしていますが、silix の実行に成功しませんでした。しかし、mcl は現在進行中です。awk または perl でこれを行うスマートな方法が他にあるかどうかを知りたいです。いくつかの解決策に感謝します、ありがとう。(初投稿なので間違っていたらごめんなさい)

簡単にするために..私の入力は、

そして、私は出力が欲しい、