Graphs.jlモジュールを使用してジュリアのグラフからサブグラフを取得しようとしています。 私はグラフを作成して頂点と辺をリストに格納しておき、アルゴリズムはこのリストをトラバースし、新しいサブグラフの一部ではないノードと辺を削除します。 Graphs.ExVertex []はアレイsub_edgesタイプ:Graphs.ExEdge {Graphs.ExVertex} []すべてが正常に動作し、この部分には、全体アルゴリズムの後に残っているすべてのアレイsub_verticesタイプです。私は私が使用して部分グラフを作成するためにwanto関数全体の終わりにJulia/Graphs.jl:graph()と引数を使用してグラフを作成する
:
sub_g = graph(sub_vertices, sub_edges, is_directed=false)
しかし、私は境界()エラーを取得します。 すべて私は問題が端にあることを知っている。
私が実行しようとした:
sub_g = graph(sub_vertices, Graphs.ExEdge{Graphs.ExVertex}[], is_directed=false)
そして、それは大丈夫実行します。配列sub_verticesによって与えられた頂点を持つグラフを作成します。問題は、sub_edgesでエッジを追加するときに発生します。
追加情報: 頂点とエッジは元のグラフから正確にコピーされています。つまり、index、label、...などの属性は元のグラフと同じです。それはOK走る
sub_g = graph(sub_vertices, Graphs.ExEdge{Graphs.ExVertex}[], is_directed=false)
、私は多分、頂点のインデックスが問題になると思ったが、私が実行したときので、それはないです。そして頂点を印刷した後、それらは例えば1,3,5のようなインデックスを持ちますが、それは大丈夫です。だから私はなぜエッジが境界エラーを与えるのか分からない。
を保持したい場合は、 'グラフを使用することが理由です.jl'、または 'LightGraphs.jl'ソリューションを利用することができますか? –
はい、ありますが、別の解決策が見つかりました。これは問題であり、インデックスによるものであり、解決策が存在しないと私は考える。 –
Gotcha。将来同じ問題が発生する場合に備えて、ソリューションを回答として投稿できますか? –