巡回セールスマンの問題 (時間消費、状態の視覚的表現など) を解決する際に、さまざまなアルゴリズムがどのように機能するかを確認できる学生向けの教育プログラムを作成しています。問題は、良いアルゴリズムだけでなく、悪いアルゴリズムも示さなければならないことです。たとえば、TSP (恐ろしい選択) の幅優先探索アルゴリズムを実装します。
プログラム自体はJavaで書かれています。問題解決アルゴリズム用に別のスレッドがあり、すべてのアルゴリズムは特定のインターフェイスを実装しているため、各反復後に干渉できます。
N 個のノード (n = 都市の数) を持つツリー構造で実行されるすべてのブラインド サーチ アルゴリズムで、各ノードは N 個の要素の配列であり、その実装は約 50k ノードを生成した後に StackOverFlow Exception を生成します。限られた量の都市を使用できるように、ユーザー インターフェイスを制限したくありません。シミュレートされたアニールは、何千もの都市で機能します。
質問は次のとおりです。システムがクラッシュしようとしている時点を特定できるように、指定された論理ステートメントで使用できる信頼できる関数はありますか? 何かがスタイルです: if (System.memoryLeft() <= 100 / bytes / ) { // 作業を停止し、アクションを実行します
前もって感謝します。