世界のすべての家を通る最も効率的なルートを計算する方法は?


52

GISは初めてです。

世界のすべての家を通る、そりを使って、最良または最も効率的なルートを決定するのに助けが必要です。私の同僚の一人は、このサイトが質問するのに最適な場所だと言った。

使用するソフトウェア、データの入手先、処理方法についてのガイダンスが必要です。今月は追加の費用が発生したため、オープンソースのソリューションをお勧めします。

皆さん、ありがとうございました!

PS:明日のためにこれが必要なので、私は少し急いでいます!


20
これは基本的に巡回セールスマン問題であり、ヒューリスティックを使用する意思がない限りn!...宇宙が終了する前に、多くのnのいずれかの解決策を見つける幸運ので、複雑
Smalltown2k

7
ちょっと待って、クリスチャンの子供だけがいつサンタを訪問するのか
スティーブベネット

4
クラウス氏が訪問し、それを非宗派に保つ世帯のリストを持っていると仮定しましょう。ありがとう:)
blah238

9
このルートも北極で開始するように制限されていますか?北の地理的な極、または北の磁極?
スペースマン

3
そう。最初のステップは、世界のすべての居住場所のデータセットを収集することです。Dropboxリンクを投稿したい人はいますか?
サイモン

回答:


25

ルドルフがどこに行くべきかを確実に把握してください。彼は何年もやっています。


16

多くの場合、尋ねられた質問に答えるよりも、述べられている必要性に取り組む方が良いです。私は、すべての技術的なコンピューティングの問題をきちんと回避するよく知られた並列ソリューションがあることを指摘したいと思います。サンタにはヘルパーがいます。 これらのエージェントは非同期で独立して動作し、訪問を必要とする家を特定し、配達を実行します。サンタ側の特別なGIS計算は必要ありません。

この技術がスケーリングするのは素晴らしいことです。そのため、世界の(クリスチャン)人口が数千年にわたって数桁増加したので、サンタの職務を遂行する能力が真剣に疑いを持つことはありませんでした:利用可能なヘルパーの数は訪問が必要な家の数に直接比例します。


これらのヘルパーの存在の物理的なデモンストレーションがあります。逆に、1人の個人が1 暦日(タイムゾーンを考慮して48時間に及ぶ)の間に10億の住居に贈り物を届けようとした場合、1秒間に約6000の住居を訪問する必要があります。 。住宅間の平均距離の下限は、世界の大都市の密度によって与えられます。この都市では、人々はわずか10メートルしか離れていません。これは、必要となる平均遠いソニックブーム(音の障壁を超える作成、毎秒6000 * 10 =6万メートルの速度をしませんクリスマスに聞いた)そして、そりがその近くにあるすべてのものを破壊する燃える火の玉になるほどの大気摩擦を作り出します。これにより、ルドルフの鼻の赤い輝きの起源についての新たな理解が得られますが、QEDという並列的な解決策さえ可能であることを明確に示しています。


1
ヘルパーを信じない場合は、証拠があります:en.wikipedia.org/wiki/Prep_%26_Landing
トビアスキーンツラー

6

これは、おそらくWarshalまたはDijkstraのアルゴリズムを使用して解決できるものです。

世界の家の数はあまりにも多いですが、それを計算するには長い時間がかかりますが、これは最初の良い点だと思います。今私はそれらを説明する時間がありませんが、最初のポイントを与えます。今は家族と一緒に出かけますが、来年はこの質問に戻るかもしれません。


4
優しい言葉をありがとう。しかし:(1)これらのアルゴリズムのいずれかが、この巡回セールスマンの問題をどのように解決しますか?(2)ダイクストラのアルゴリズム(特定のネットワーク内の特定の2点間の最短経路を見つける)は高速です。それを世界のすべての住居のデータセットに適用すると、各住居のいくつかの最も近い隣人だけにエッジを含めるように適切に剪定された場合、実行できるだけでなく、合理的に迅速になります-おそらく数秒または数分の計算しか必要ありません。
whuber


0

すべての住居の緯度と経度を含むデータセット(国勢調査データ?)がある場合、あるプログラミング言語でHaversineの式を使用します。しかし、再び、私はエルフではありません。

ハーバーシンフォーミュラ


空中にいる場合は、地球の真円度と高度を考慮する必要があります。
Natrix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.