2

大きな LGL ファイル (~2GB) をインポートしようとしていますが、これを igraph にインポートしようとしています。

graph = Graph.Read_Lgl("Biggraph.lgl")

それが投げているエラーは

Traceback (most recent call last):
  File "graph.py", line8, in <module>
    graph = Graph.Read_Lgl("Biggraph.lgl")
igraph.core.InternalError: Error at foreign.c:359: Parse error in LGL file, line 9997 (memory exhausted), Parse Error

ここで何が起こっているのか正確にはわかりません。メモリが使い果たされたというエラーは、ファイルを読み込もうとすると、python (または基礎となる C) に割り当てられたメモリが使い果たされていると私に思わせますが、それはほとんど即座に起こります。おそらくファイルサイズを見て、「うわー、それはできない」と言っているのかもしれません。

真剣に、私は何が起こっているのか分かりません。私が iGraph から推測したのは、非常に大きなグラフを処理できるということです。私のグラフが大きすぎるとは思いません。

自分で lgl ファイルを生成しましたが、構文は正しいと思います。このエラーは、私の lgl ファイルに問題があるようには見えませんが、私が間違っている可能性があります (「解析エラー」のようなものは私を怖がらせます)。

ここで試してみて、iGraph の動作にもっと熱心な人がこの問題をすばやく解決する方法 (またはメモリを拡張する方法) を知っているかどうかを確認してみようと思いました。ありがとう。

4

1 に答える 1

3

記録として、投稿者は igraph ライブラリにバグを発見しており、現在修正に取り組んでいます。bisonこの問題は、LGL 形式のパーサー仕様の右再帰規則が原因で発生します。プロジェクトのトランクに公式パッチができたら、他の人が同じ問題に遭遇した場合に備えて、ここにパッチの URL を投稿します。


更新: パッチへの URL は次のとおりです。

于 2011-09-16T17:56:06.230 に答える