巡回セールスマン問題(逐次改善法)

  添付したプログラムは,C/C++ のプログラム例を Java を使用して書いたものです.入力データ,結果は C/C++ のプログラム例とほとんど同じですが,このプログラムでは,計算結果を画面に図示することが可能になっています.そのため,データファイルが,たとえば,以下のように変わります.
都市の数 10 最大試行回数 3000 選択方法(0:最良,1:最初) 1 近傍(2or3) 3 整数 1 出力レベル(負はファイル) 0 出力方法(-1:なし,0:すべて,1:評価値) 1 出力ファイル名 result\data10 表示間隔 0 画面表示(0:しない,1:結果,2:初期状態と結果,3:ステップ) 1 都市番号 20 画面の大きさ(幅,高さ) 1000 750 -58 37 55 -19 6 -79 27 -30 44 -94 33 -58 -94 87 -9 3 33 69 43 -57
  最初の 3 行,および,都市の座標部分は C/C++ のプログラム例と同じです.4 行目,および,5 行目の意味は以下の通りです.なお,結果を図示しない場合においても,4,5 行目を削除しないでください.

画面表示(0:しない,1:結果,2:初期状態と結果,3:ステップ)

結果を図示するか否かを入力します.
=0 : 図示しない
=1 : 最終結果だけを図示
=2 : 初期状態と最終結果を図示
=3 : 初期状態,最終結果,および,改善の過程を表示.改善過程の表示は,マウスで図中の 「 next 」 ボタンをクリックすることによって実行されます.したがって,初期状態を図示した後,この状態に入ると,
    終了したらreturnキーを押してください
というメッセージが出力され,次に進まなくなりますので,マウスクリックによって最適解を達成した後,return キーを入力して継続してください.なお,マウスクリックによる表示の際,交換される前の枝が赤色で表示されますが,赤色の枝がなくなった時点が最適解となります.

都市番号

  都市番号を表示する際,その字の大きさを入力します.0 を入力すると都市番号を表示しません.

画面の大きさ(幅,高さ)
  画面の幅と高さの最大値を入力します.実際に表示される画面の大きさは,これらの値と都市座標の分布状況によって,上下,左右の縮尺が等しくなるように決められます.

  なお,図示する場合,対応する図が表示される毎に(マウスクリックによる場合を除く),MS-DOSの画面に

  図を確認したらreturnキーを押してください

のようなメッセージが出力されますので,メッセージに従い return を押して継続してください.

戻る