質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

566閲覧

python : 最短経路問題

tomo79

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/01 16:15

python

1data = [ 2 [1,3,1], 3 [1,5,1], 4 [4,2,1] 5]

 上記のようなデータに対して,data[0][0]を出発点,data[-1][-1]を目的地,data内の各要素をコストとして,最短経路を求める問題に取り組んでいますが,具体的な解決案が思いつきません.
この問題を解く上で重要な考え方などがありましたら教えていただけると幸いです.よろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

経路の候補が少なければ全探査でも問題ないでしょう。まずはそれで実装してみましょう。

経路の候補が多くなってきたら考えるべきことは「枝刈り」です。例えば

B / \ A D-E \ / C

というグラフがあってそれぞれコストが

A -> B = 1 A -> C = 3 B -> D = 2 C -> D = 1 D -> E = 3

だとしましょう。この場合 A -> B -> D = 3 に対して A -> C -> D = 4 なので C 周りのルートを通ったら絶対コストが多くかかります。このような経路は数え上げないほうが計算が速くなるでしょう。

具体的な実装については全探査を実装してみた後に「枝刈り」を考えてみてください(ちゃんと名前もついた方法です)。

投稿2021/01/01 16:34

A_kirisaki

総合スコア2853

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomo79

2021/01/02 02:50

ありがとうございます.まずは全探査から取り組んでみます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問