最近傍ヒューリスティックを実装する学校向けのプロジェクト(私はすでに行っています)と、徹底的な検索を行う巡回セールスマン問題(アルゴリズム、時間計算量などを分析します)を実行します。私たちの先生は、最近傍部分のように全体をプログラミングするのではなく、全数検索部分に使用(または変更)するコードを探し回ると言いました。私は周りを見回して、私たちがプログラムを実行するように指示された方法に関係のないものだけを見つけました。整数を使用する一般的な問題とは対照的に、ポイント(x、y)を使用しています。私の目標は、最短の順列を計算し、その順列が何であるかを知ることができるようにすることです。だから私は配列の配列(順列を含む)を持つことを考えています。
誰かが徹底的な検索で私を手伝ってくれるなら、それは素晴らしいことです。
これが私のコードからの抜粋です(メンバー変数、2つのポイント間の距離を計算する関数、およびすべてのポイントが格納されている場所):
private int x;
private int y;
private boolean visited;
public double dist( point pt ){
int xdist = this.getX() - pt.getX();
int ydist = this.getY() - pt.getY();
double xsr = xdist*xdist;
double ysr = ydist*ydist;
return Math.sqrt( xsr + ysr );
}
point[] points = new point[n];
どんな助けでも大歓迎です。