Ads By Google
巡回セールスマン問題(初心者)
研究室の教授に、「巡回セールスマン問題をC言語で書いてこい」と言われました。まったく何もわかりません。巡回セールスマン問題とは何か、と言うことは大体ネットなど使ってわかりました。C言語は基本的なことは書けます。初心者の僕は何から始めればいいでしょうか??また、オススメの書籍などありましたら教えていただけませんか?よろしくお願いします。
2006-03-27 15:11の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
回答(5)
1.
2006-03-27 15:22:13

ここで質問するより、図書館で探した方が、役に立つかと思います。
*丸写しすると、教授も同じ本を読んでいるから不味いです。
教授は実際の”巡回セールスマン問題プログラム”が欲しいのでなく、あなたにアルゴリズム(解法;問題を電算機等で解く方法含む)を勉強して欲しいのだと思います。
検索結果 ”巡回セールスマン問題 program C言語”
*丸写しすると、教授も同じ本を読んでいるから不味いです。
教授は実際の”巡回セールスマン問題プログラム”が欲しいのでなく、あなたにアルゴリズム(解法;問題を電算機等で解く方法含む)を勉強して欲しいのだと思います。
検索結果 ”巡回セールスマン問題 program C言語”
自信度 : 自信なし
2.
2006-03-27 15:45:07

>C言語は基本的なことは書けます
1000行程度のプログラムはかいたことがある?
なければ、書籍で調べてもまず無理。
何回生??
うちの研究室の学生も何人かはTSP問題に取り組んでいるけど
ハッキリ言って、シロートにいきなり書いて来い、というレベルの問題ではない。
ゼミなどで勉強しなかった??
習っていないのなら、あきらめた方が良い。
もしくは先輩に聞くか。
まじめにやったら時間の無駄。
ちなみに、TSP問題を取り扱ったよい書籍はほとんど洋書。
というか、情報系の良書といわれているのはほぼ洋書だな。
1000行程度のプログラムはかいたことがある?
なければ、書籍で調べてもまず無理。
何回生??
うちの研究室の学生も何人かはTSP問題に取り組んでいるけど
ハッキリ言って、シロートにいきなり書いて来い、というレベルの問題ではない。
ゼミなどで勉強しなかった??
習っていないのなら、あきらめた方が良い。
もしくは先輩に聞くか。
まじめにやったら時間の無駄。
ちなみに、TSP問題を取り扱ったよい書籍はほとんど洋書。
というか、情報系の良書といわれているのはほぼ洋書だな。
3.
2006-03-27 18:56:33

まじめに「巡回セールスマン問題」の一般的解法を求めているわけではないですw
ノードの数を小さくして,総当りでサーチすれば,宿題としてはOKでしょう.逆に言うと,どういう風にモデルを限定すれば解きやすくて,何が難しいのか,それをはっきりさせることが重要かと思います.それがわかってからでないと,書籍を読んでもポイントがわからないでしょう.
ということで,4ノードくらいで,どういう風にプログラム上でリンクを表現すればよいか,考えて書いてみましょう.動かなければ,書いたプログラムを添えて,ナレッジで再質問だ!w(ぷ
ノードの数を小さくして,総当りでサーチすれば,宿題としてはOKでしょう.逆に言うと,どういう風にモデルを限定すれば解きやすくて,何が難しいのか,それをはっきりさせることが重要かと思います.それがわかってからでないと,書籍を読んでもポイントがわからないでしょう.
ということで,4ノードくらいで,どういう風にプログラム上でリンクを表現すればよいか,考えて書いてみましょう.動かなければ,書いたプログラムを添えて,ナレッジで再質問だ!w(ぷ
回答レベル : 回答
4.
2006-04-06 13:25:00

追記;
アルゴリズム入門 : 第 5 章 知識情報処理入門
また、本章の後半では、Visual C# のオブジェクト指向プログラミング技術を用いて巡回 セールスマン問題のプログラムを解説しました。
アルゴリズム入門 : 第 5 章 知識情報処理入門
また、本章の後半では、Visual C# のオブジェクト指向プログラミング技術を用いて巡回 セールスマン問題のプログラムを解説しました。
5.
2006-04-06 16:12:51

>C言語は基本的なことは書けます。初心者の僕は何から始めればいいでしょうか??
基本的なことが書ければ初心者じゃないような気がしますが、それはさておき。
最初に何をするか…スタート兼ゴール地点と巡回先(オニキスさんのいう「ノード」)のデータを作るところからですかね。単純な2次元配列でいいでしょう。
基本的なことは書けるそうですので、2点間の距離は計算できると思います。
とりあえず総当りで計算して見ましょう。
総当りの段階で教授に提出すると多分怒られると思うので、総当りしなくて済む方法を考え、改良しましょう。
基本的なことが書ければ初心者じゃないような気がしますが、それはさておき。
最初に何をするか…スタート兼ゴール地点と巡回先(オニキスさんのいう「ノード」)のデータを作るところからですかね。単純な2次元配列でいいでしょう。
基本的なことは書けるそうですので、2点間の距離は計算できると思います。
とりあえず総当りで計算して見ましょう。
総当りの段階で教授に提出すると多分怒られると思うので、総当りしなくて済む方法を考え、改良しましょう。
回答レベル : 回答
Ads By Google
コメント(2)
#1. オニキス
2006-03-28 03:19:23
Cよりはオブジェクト指向的な書き方できる言語の方が楽かもですよ.C++のテンプレートが使えるなら,それが後々一番幸せでしょうか.卒研に発展させるなら,ですがw
#2. オニキス
2006-04-07 01:17:39




