プログラムソース内に,乱数を生成するための関数rnd()を定義している行について修正してください.#define rnd() ( (double)rand() / 0x7fffffff )上記の0x7fffffffをRAND_MAXに修正すると,正しく0〜1の整数を取るようになるはずです.これでもうまく行かない場合にはご連絡ください.
- OS:BSD/OS 4.1, 4.2
- コンパイラ:gcc version 2.7.2.1, 2.95.2
prompt> cc tsp.c -lmmathライブラリを読み込むようにオプションを指定してください.
実行時に, 1)パラメータA, 2)B, 3)D, 4)シード値,を引数として指定する. パラメータA〜Dは,エネルギー関数値の算出やニューラルネットワークの重み更新時に用いる変数である(教科書参照). また,シード値はニューラルネットワークの初期重みを設定するために用いる. なお,run.shが実行できない場合には,コマンドラインから「chmod u+x run.sh」
□例prompt> run.sh a.out 1.0 1.0 2.0 394
〜txt, 〜.energy.txt という2つのファイルが作成される. 「〜」は実行時に使用した引数によって異なり, 前述の実行例だと,「1.0-1.0-2.0-394」となる.
- 〜.txt:実験結果の全出力
- 〜.energy.txt:実験結果から,各ステップ毎のエネルギー値のみを切り出した結果
prompt> gnuplot gnuplot> plot "1.0-1.0-2.0-394.energy.txt" with line gnuplot> set terminal tgif gnuplot> set output "result.obj" gnuplot> replot上記の操作により result.obj というファイルへグラフ情報が出力されますので,後は tgif を使用して編集してください.
- Excelを起動.
- "1.0-1.0-2.0-394.energy.txt"というファイルを開く.
- グラフ表示したい要素(ここでは「列A」)を選択し,「グラフウィザード」ボタンをクリック.
もしくは,「挿入」メニューの「グラフ」を選択.- グラフ種類で「折れ線」を選択し,形式を好みのものを選択し,完了.