
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
「巡回セールスマン問題をC言語で書いてこい」では教授の真意がよくわかりませんね。
巡回セールスマン問題が何なのかは勉強するとして、
・6都市ぐらいをしらみつぶしで調べるものを書くことが課題? → これなら単なるC言語のプログラミングの課題ですね。
・もっと大型の問題を解くための近似解算出アルゴリズムを調べることが課題? → こっちだったら、数多くの解法がありますから、プログラミング以前に調査してまとめなきゃいけないことがいろいろとありそうです。
講義での課題ならまだしも、研究室に配属になった方の、指導教官から与えられた課題から発せられた質問としてはどうかなあと思いますが。
巡回セールスマン問題を知りたいのなら、もっとも詳しいのは参考URLの書籍でしょう。
参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4254126 …
No.2
- 回答日時:
No. 1 のものですが補足します。
No. 1 の回答では、二つの都市A、Bを結ぶ経路について、A→BとB→Aを結ぶコストが同じであることを前提にしていました。そうすると、No. 1 で書いたアルゴリズムはムダをしています(逆周りでも同じコストなのに計算している)。もっとも、この計算量は2倍程度ですから大したことはありません。
コストが非対称のとき(A→BとB→Aのコストが違うとき)に、No. 1 のアルゴリズムが成立しますが、(1) で読み込むコストの個数はN(N-1)になります。
問題集に掲載されている問題が対称か非対称かはわかりません。
なお、ホップフィールド型ニューラルネットワークで解く(近似)手法はコスト対称を前提にしていると思います。
また、このカテゴリで「巡回セールスマン」をキーにして検索すると以前の質問・回答が出てきます。中にはC言語のプログラムを示した質問もあります(間違っているという指摘もあるようですが)。
No.1
- 回答日時:
近似解でなく、厳密解を求められているのでしょうか。
厳密解は恐らく、全ての都市の順列についてコストを計算し最小値を求めるものでしょう。
どこから始めても同じですから、どこかの都市(A)を固定し、Aから始まる全ての都市の順列を作って、最後にAに戻る経路を追加します。
(0) 都市数Nを入力する
(1) 二つの都市を結ぶコスト(N(N-1)/2個あります)をファイルから読み込む
(2) Aから始まる都市の順列を一つづつ生成し、最後にAを追加する
(3) (2) で生成した順列で、隣り合う都市のコストを加算し、メモリに格納する
(4) (2), (3) を全ての順列について計算し、最小値を求める
(5) 最小値と、それを与える順路を出力する
以上で完了です。
なお、この方法だとN!のオーダーの計算時間がかかります。N=20程度になったら、1週間近くかかるのではないでしょうか。
また、巡回セールスマン問題については、標準的な問題集(都市数ごとに都市間のコストを書いたテーブル)があり、正解も掲載されているそうです。バグの検出のためには問題集をダウンロードすると良いでしょう。
なお、厳密解ではなくニューラルネットワークで近似解を求めよという問題だったらまた違うアルゴリズムになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 哲学 日本語は 言語類型として あたかも始原のごとくである 3 2022/05/29 04:41
- 大学受験 数学の研究者たちは大学入試問題の数学の問題をすらすらと解けるんですか?数学の研究者とは日本人以外以外 7 2022/06/27 02:14
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- 哲学 日本語は論理表現にふさわしくないか の問題です 4 2022/06/25 03:56
- 大学・短大 ゼミの志望理由書の添削をお願いしたいです、汗 1 2023/01/22 18:36
- 工学 非言語分野が全くできない人にオススメの参考書を教えてください 1 2023/06/01 16:15
- 哲学 セールスマンの物の見方(決めつけ) 8 2022/06/27 15:29
- 大学受験 東北大学 英語 参考書ルートについて 2 2023/05/26 17:31
- 転職 現在転職活動中です。先日会社見学いった会社で面接してみたいと言われました。今まで製造業で今回も製造業 2 2023/04/02 21:44
- IT・エンジニアリング c言語とjavaの需要について 3 2022/06/23 22:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正しい五十音順について
-
期間重複チェックがわかりません
-
アルゴリズムとプロトコールの違い
-
Officeのラスタ画像の拡大縮小...
-
CRC-CCITT16の算出法
-
確率論的な麻雀の勝ち方を教え...
-
diffのアルゴリズムについて詳...
-
BCDについて
-
OpenCVのライセンスについて
-
六曜の自動計算について
-
複数の点を最短距離で全て繋ぐ...
-
プログラムの作り方、アルゴリ...
-
ハッシュアルゴリズム
-
巡回セールスマン問題
-
三次元形状曲面の導出法
-
ランダム関数を作りたい。
-
VBAで仕様書は書きますか?
-
あるプログラムのコマンドライ...
-
0除算して、落ちるプログラムと...
-
Excelで4096点以上のFFTの方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しい五十音順について
-
アルゴリズムとプロトコールの違い
-
[ EXCEL VBA ] 図形を読み込む...
-
BCDについて
-
ハノイの塔のさいきアルゴリズ...
-
グループを均等に分けるには?...
-
ドロネー三角形のプログラム
-
一番近い組み合わせを見つけるには
-
Officeのラスタ画像の拡大縮小...
-
あいまい検索(文字列一致率)
-
VB2010にて分数表示(約...
-
ルービックキューブの解法プロ...
-
ハッシュアルゴリズム
-
乱数って・・・
-
偏りのある乱数のアルゴリズム
-
深さ優先探索(再帰なし&あり)
-
アルゴリズム フェルナンデス...
-
シードを考慮したトーナメント...
-
JPEG圧縮で8×8に分割する理由に...
-
多変数関数の最小値を求めるプ...
おすすめ情報