グラフとアルゴリズムを示すためのツールを作成しようとしています。そのために、GraphStream ライブラリを見つけました。そのドキュメントとチュートリアルをすべて読みましたが、これを機能させることはできません。グラフをカスタム GUI (ボタン付きの左側のメニューと右側のグラフ スペース) に配置しようとしていますが、なんとかそれを行うことができました。2 つのボタンを有効にすると、生成 - ランダム ジェネレーターでグラフを作成し、クリア - グラフをクリアすると、すべて正常に動作しますが、生成を押してクリアした後、次のエラーが発生します。
スレッド "Thread-2" org.miv.pherd.IdAlreadyInUseException の例外: 同じ識別子を持つ粒子が既に存在します (0)
GUIを使用しない単純なテストプログラムで、メインで同じことを行う単純なコードを作成し、それが機能するため、これが問題である理由がわかりません。
public class Test {
public static void main(String[] args){
Graph graph = new SingleGraph("test");
graph.display();
Generator generator = new BarabasiAlbertGenerator();
generator.addSink(graph);
generator.begin();
for (int i = 0; i < 100; i++) {
generator.nextEvents();
}
generator.end();
graph.clear();
generator = new BarabasiAlbertGenerator();
generator.addSink(graph);
generator.begin();
for (int i = 0; i < 100; i++) {
generator.nextEvents();
}
generator.end();
}
このコードは機能しますが、GUI 内でボタンを使用して実行すると、上記のエラーがスローされます。また、プログラムで実行されているスレッドの数も確認しましたが、そのうちの 3 つが実行されているようです。私の問題がかなり明確で、誰かが私を助けてくれることを願っています。皆さん、ありがとうございました!