Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hiro H.
PDF, PPTX
5,168 views
コンピュータに「最長しりとり」「最短距離でのJR線全線乗り尽くし」を解いてもらった方法
FuraIT # 3(2014.8.23) http://furait.connpass.com/event/7851/ での発表
Technology
◦
Related topics:
Graph Theory Overview
•
Read more
2
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 82
2
/ 82
3
/ 82
4
/ 82
5
/ 82
6
/ 82
7
/ 82
8
/ 82
9
/ 82
10
/ 82
11
/ 82
12
/ 82
13
/ 82
14
/ 82
15
/ 82
16
/ 82
17
/ 82
18
/ 82
19
/ 82
20
/ 82
21
/ 82
22
/ 82
23
/ 82
24
/ 82
25
/ 82
26
/ 82
27
/ 82
28
/ 82
29
/ 82
30
/ 82
31
/ 82
32
/ 82
33
/ 82
34
/ 82
35
/ 82
36
/ 82
37
/ 82
38
/ 82
39
/ 82
40
/ 82
41
/ 82
42
/ 82
43
/ 82
44
/ 82
45
/ 82
46
/ 82
47
/ 82
48
/ 82
49
/ 82
50
/ 82
51
/ 82
52
/ 82
53
/ 82
54
/ 82
55
/ 82
56
/ 82
57
/ 82
58
/ 82
59
/ 82
60
/ 82
61
/ 82
62
/ 82
63
/ 82
64
/ 82
65
/ 82
66
/ 82
67
/ 82
68
/ 82
69
/ 82
70
/ 82
71
/ 82
72
/ 82
73
/ 82
74
/ 82
75
/ 82
76
/ 82
77
/ 82
78
/ 82
79
/ 82
80
/ 82
81
/ 82
82
/ 82
More Related Content
PDF
競技プログラミングにおけるコードの書き方とその利便性
by
Hibiki Yamashiro
PDF
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
by
Yahoo!デベロッパーネットワーク
PDF
明日使えないすごいビット演算
by
京大 マイコンクラブ
PPT
大学3年生の僕に伝えたいことをつらつらと
by
Toshinori Sato
PDF
TensorFlowで逆強化学習
by
Mitsuhisa Ohta
PDF
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
PDF
プログラムを高速化する話
by
京大 マイコンクラブ
PPTX
Curriculum Learning (関東CV勉強会)
by
Yoshitaka Ushiku
競技プログラミングにおけるコードの書き方とその利便性
by
Hibiki Yamashiro
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
by
Yahoo!デベロッパーネットワーク
明日使えないすごいビット演算
by
京大 マイコンクラブ
大学3年生の僕に伝えたいことをつらつらと
by
Toshinori Sato
TensorFlowで逆強化学習
by
Mitsuhisa Ohta
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
プログラムを高速化する話
by
京大 マイコンクラブ
Curriculum Learning (関東CV勉強会)
by
Yoshitaka Ushiku
What's hot
PPTX
強化学習アルゴリズムPPOの解説と実験
by
克海 納谷
PPTX
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
by
Preferred Networks
PDF
きつねさんでもわかるLlvm読書会 第2回
by
Tomoya Kawanishi
PDF
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
by
Preferred Networks
PDF
最適輸送の解き方
by
joisino
PPTX
C# 8.0 非同期ストリーム
by
信之 岩永
PDF
最適化超入門
by
Takami Sato
PDF
はじめようARCore:自己位置推定・平面検出・FaceTracking
by
Takashi Yoshinaga
PDF
SAT/SMTソルバの仕組み
by
Masahiro Sakai
PPTX
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
by
Yusuke Uchida
PDF
プログラミングコンテストでの乱択アルゴリズム
by
Takuya Akiba
PDF
プログラミングコンテストでの動的計画法
by
Takuya Akiba
PPTX
Slurmのジョブスケジューリングと実装
by
Ryuichi Sakamoto
PDF
線形計画法入門
by
Shunji Umetani
PDF
Quine・難解プログラミングについて
by
mametter
PDF
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
by
Ken'ichi Matsui
PDF
【DL輪読会】“PanopticDepth: A Unified Framework for Depth-aware Panoptic Segmenta...
by
Deep Learning JP
PDF
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
by
Deep Learning JP
PDF
高速な倍精度指数関数expの実装
by
MITSUNARI Shigeo
PPTX
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
by
Preferred Networks
強化学習アルゴリズムPPOの解説と実験
by
克海 納谷
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
by
Preferred Networks
きつねさんでもわかるLlvm読書会 第2回
by
Tomoya Kawanishi
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
by
Preferred Networks
最適輸送の解き方
by
joisino
C# 8.0 非同期ストリーム
by
信之 岩永
最適化超入門
by
Takami Sato
はじめようARCore:自己位置推定・平面検出・FaceTracking
by
Takashi Yoshinaga
SAT/SMTソルバの仕組み
by
Masahiro Sakai
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
by
Yusuke Uchida
プログラミングコンテストでの乱択アルゴリズム
by
Takuya Akiba
プログラミングコンテストでの動的計画法
by
Takuya Akiba
Slurmのジョブスケジューリングと実装
by
Ryuichi Sakamoto
線形計画法入門
by
Shunji Umetani
Quine・難解プログラミングについて
by
mametter
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
by
Ken'ichi Matsui
【DL輪読会】“PanopticDepth: A Unified Framework for Depth-aware Panoptic Segmenta...
by
Deep Learning JP
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
by
Deep Learning JP
高速な倍精度指数関数expの実装
by
MITSUNARI Shigeo
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
by
Preferred Networks
Similar to コンピュータに「最長しりとり」「最短距離でのJR線全線乗り尽くし」を解いてもらった方法
PDF
Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)
by
Hiro H.
PDF
Sort
by
oupc
PDF
BurningCTF write-up
by
kazkiti
PDF
Square869120 contest #2
by
AtCoder Inc.
PDF
2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説
by
Hiroshi Yamashita
PDF
WUPC2012
by
Dai Hamada
Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)
by
Hiro H.
Sort
by
oupc
BurningCTF write-up
by
kazkiti
Square869120 contest #2
by
AtCoder Inc.
2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説
by
Hiroshi Yamashita
WUPC2012
by
Dai Hamada
More from Hiro H.
PDF
シンデレラガールズの「シンプルな」カードゲームを作りたい(アイマスハッカソン2024)
by
Hiro H.
PDF
pandas便利だけどデフォルトパラメータでファイルを読み込むな!
by
Hiro H.
PDF
式を書くだけで最適化計算してほしい!~CVXPY編~
by
Hiro H.
PDF
旅行「#重複乗車禁止で名鉄完乗」とその数学的な解説
by
Hiro H.
PDF
シンデレラガール総選挙の「50位圏内の難しさ」はいかほどか?(23:20更新)
by
Hiro H.
PDF
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
by
Hiro H.
PDF
配列の要素挿入・削除もランダムアクセスも両方高速にできる?
by
Hiro H.
PDF
PCSじゃないよ、PCAだよ
by
Hiro H.
PDF
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
by
Hiro H.
PDF
スマホ音楽ゲームの動画から譜面をデータ化したかった
by
Hiro H.
PDF
シンデレラガールズ声優の増え方まとめ
by
Hiro H.
PDF
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
by
Hiro H.
PDF
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
by
Hiro H.
PDF
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
by
Hiro H.
PDF
最近デレステ創作譜面作ってるので技術的な見地から話します
by
Hiro H.
PDF
C++のライブラリを簡単に眺めてみよう
by
Hiro H.
PDF
デレステの劇場で登場したアイドルの回数の統計取ってます
by
Hiro H.
PDF
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
by
Hiro H.
PDF
名古屋市営地下鉄最小距離完乗
by
Hiro H.
PDF
MSYS2使いはじめました
by
Hiro H.
シンデレラガールズの「シンプルな」カードゲームを作りたい(アイマスハッカソン2024)
by
Hiro H.
pandas便利だけどデフォルトパラメータでファイルを読み込むな!
by
Hiro H.
式を書くだけで最適化計算してほしい!~CVXPY編~
by
Hiro H.
旅行「#重複乗車禁止で名鉄完乗」とその数学的な解説
by
Hiro H.
シンデレラガール総選挙の「50位圏内の難しさ」はいかほどか?(23:20更新)
by
Hiro H.
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
by
Hiro H.
配列の要素挿入・削除もランダムアクセスも両方高速にできる?
by
Hiro H.
PCSじゃないよ、PCAだよ
by
Hiro H.
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
by
Hiro H.
スマホ音楽ゲームの動画から譜面をデータ化したかった
by
Hiro H.
シンデレラガールズ声優の増え方まとめ
by
Hiro H.
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
by
Hiro H.
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
by
Hiro H.
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
by
Hiro H.
最近デレステ創作譜面作ってるので技術的な見地から話します
by
Hiro H.
C++のライブラリを簡単に眺めてみよう
by
Hiro H.
デレステの劇場で登場したアイドルの回数の統計取ってます
by
Hiro H.
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
by
Hiro H.
名古屋市営地下鉄最小距離完乗
by
Hiro H.
MSYS2使いはじめました
by
Hiro H.
Recently uploaded
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
コンピュータに「最長しりとり」「最短距離でのJR線全線乗り尽くし」を解いてもらった方法
1.
FuraIT #3(2014.8.23) コンピュータに 「最長しりとり」「最短距離での JR線全線乗り尽くし」を 解いてもらった方法 H.Hiro @h_hiro_ /
http://hhiro.net/about/
2.
自己紹介
3.
H.Hiro (@h_hiro_) ● 情報系の研究員 ※2014年3月まで大学院生でした ● 中学生のときに部活で プログラミングに触れてから 好きになり、大学の専門も そちらに進みました
4.
【告知】 Sapporo.cpp(札幌C++勉強会) ● 札幌で勉強会やってます ● 不定期開催 (今年は開催頻度多め) ● 次の活動:8月30日(土) Ohotech(北見)で4人発表します
5.
よろしく お願いします
6.
今回の内容 (1)
7.
最長しりとり
8.
与えられた単語リストでしりとりを するとき、最大の単語数のものを 求める(1単語につき1回まで) 単語リスト → 最大の単語数の しりとり いた いちご こっぷ たこ たいこ ふた (6単語) いた→たこ→ こっぷ→ふた→ たいこ (5単語)
9.
今回の内容 (2)
10.
最短距離での JR線全線 乗り尽くし
11.
JR線全線を乗り尽くして、出発駅 まで戻るための最短ルートを求める ※JR線以外の交通機関は使わず 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
12.
これらを コンピュータに 解かせた話
13.
【補足1】 ● 以後で説明する解き方は 私が考案したというわけではありません。 ● ただ、すぐに使えるような プログラムの実装が見当たらず、 欲しくなったので自分で作ったという ものです。
14.
【補足2】 ● 今回の説明だけで、聴講される皆様が 具体的にプログラムまで書けるように なるところまでは想定していません。 ● 「こうやればコンピュータにとって 解きやすくなるんだ」という感覚をつかんで いただければ幸いです。 ● プログラムのソースコードや参考資料は 適宜示しております。
15.
【参考文献・資料】 ● 最長しりとり ● ポケモンでしりとりしたら最長何匹まで続く? 数学の卒論がネットで話題に http://nlab.itmedia.co.jp/nl/articles/1107/19/news080.html ● JR線全線乗り尽くし(中国人郵便配達問題) ● Saul I. Gass,
Carl M. Harris, 森村英典(監訳), 刀根薫(監訳), 伊理正夫 (監訳)(1999), 経営科学OR用語大事典, 朝倉書店, ISBN 4254121318 ● Bernhard Korte, Jens Vygen, 浅野孝夫(訳), 浅野泰仁(訳), 小野孝男 (訳), 平田富夫(訳) (2005), 組合せ最適化―理論とアルゴリズム, シュプリ ンガー・フェアラーク東京, ISBN 9784431711834 ※Wikipediaに掲載がありますが、それを書いたのは私です
16.
今回用いた 考え方
17.
グラフ理論 いくつかの点と、それらを結ぶ 辺からなるデータ構造を扱う 数学の一分野
18.
「理論」って言うと 難しそうに見えるけど
19.
パズルに近い 分野です
20.
グラフ理論
21.
いくつかの点(「頂点」ともいう)と それらを結ぶ辺からなる データ構造を「グラフ」という。 ※辺はちょうど2つの点を結ぶとする 例:点が5つ、辺が7つのグラフ
22.
JR線などの鉄道網は、 駅を点、路線を辺とする グラフ構造とみなせる 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
23.
実は、しりとりも グラフ構造とみなせる
24.
こうすればよい 単語リスト いた いちご こっぷ たこ たいこ ふた (6単語) い た こ ふ いちご ふた たいこ たこ こっぷいた
25.
しりとりを グラフ構造にして 何が嬉しいのか?
26.
どんな条件で 「最長しりとり」に なるのかが 見た目で はっきりする い た こ ふ いちご ふた たいこ たこ こっぷいた
27.
辺を1か所 辿ること が 単語を1回 使うこと を 意味する い た こ ふ いちご ふた たいこ たこ こっぷいた
28.
● どこかの点から スタートして ● 辺をなるべく多く 辿り ● 辿れた辺の本数が 最大になるような ものを見つければ よい い た こ ふ いちご ふた たいこ たこ こっぷいた
29.
ちなみに、 いまの問題の 答えは 右図の通り い た こ ふ いちご ふた たいこ たこ こっぷいた
30.
ちなみに、 いまの問題の 答えは 右図の通り (単語数:5) い た こ ふ いちご ふた たいこ たこ こっぷいた
31.
ただ、これを手計算で解くのは 問題が小さくないとまず無理 → だから 「コンピュータに解いてもらう」
32.
ただ、全部の通り方を 試しつくそうとすると 流石にコンピュータでも 時間がかかりすぎる
33.
ということで、 「一本の経路で ある」ことを コンピュータが 扱いやすい形で 表現する い た こ ふ いちご ふた たいこ たこ こっぷいた
34.
● しりとりの先頭文字: 出る線の数は 入る線の数より1多い ● しりとりの末尾文字: 出る線の数は 入る線の数より1少ない ● それ以外: 出る線の数は 入る線の数と同じ い た こ ふ いちご ふた たいこ たこ こっぷいた
35.
● しりとりの先頭文字: 出る線の数は 入る線の数より1多い ● しりとりの末尾文字: 出る線の数は 入る線の数より1少ない ● それ以外: 出る線の数は 入る線の数と同じ い た こ ふ いちご ふた たいこ たこ こっぷいた
36.
● しりとりの先頭文字: 出る線の数は 入る線の数より1多い ● しりとりの末尾文字: 出る線の数は 入る線の数より1少ない ● それ以外: 出る線の数は 入る線の数と同じ い た こ ふ いちご ふた たいこ たこ こっぷいた
37.
まとめると
38.
最長しりとりの要件 ● このグラフを一筆書きで辿れる 経路のうち、 最長(辺の数が最大)のもの そのために必要な条件 ● しりとりの先頭・末尾を除き、ある文字で 始まる単語と終わる単語の数は等しい =ある点に入る辺の数と、出る辺の数が等しい ● 先頭・末尾については数の差が 1
39.
さあ、 コンピュータに 解いてもらおう
40.
世の中には 便利なものが ある
41.
整数計画 ソルバー
42.
整数変数について、最適化したい式と 条件式を与え最適化するツール 例:Excelのソルバー、GLPK (https://www.gnu.org/software/glpk/) [最大化したい式] 2x +
y [条件式] x + y ≦ 10 3x + y ≦ 17 x, yは整数
43.
【補足】 ● ツールによって、使える条件式に制限が あります。 例えば「1次式しか使えない」など。 (= x +
3yなどは可、 x2 + yやx2 yなど変数同士の積は不可) ● 今回はGLPKを使ってます。 無料で使え、プログラムの中から呼び出して 使う方法も充実しています(基本はC言語だが 別の言語用ラッパーも多数ある)。
44.
今回の場合 [最大化したい式] Σe∈すべての単語 I(e) I(e)は、単語eを使ったときに1、そうでないときに0を返す [条件式] 始点の文字(頂点)sは Σe∈(sで始まる単語) I(e) - Σe∈(sで終わる単語) I(e)
= 1 始点の文字(頂点)gは Σe∈(gで始まる単語) I(e) - Σe∈(gで終わる単語) I(e) = -1 それ以外の文字(頂点)vは Σe∈(vで始まる単語) I(e) - Σe∈(vで終わる単語) I(e) = 0
45.
※注: 実際にはこれ以外に 「二つ以上の独立した(分断された) しりとりになっていない」ことの チェックが必要なのですが 割愛します
46.
実際に 作ったので これを使って 解いてみます http://chiraura.hhiro.net/shiritori/
47.
http://chiraura.hhiro.net/shiritori/ 単語リスト いた いちご こっぷ たこ たいこ ふた (6単語)
48.
700単語 くらいあっても 結構すぐに 解けます http://chiraura.hhiro.net/shiritori/
49.
ここまでの まとめ
50.
グラフ理論
51.
図にすることで 注目すべき点が 見えやすくなる
52.
● 辺を使う回数がなるべく多い 経路を考えればよい ● 単語は「先頭文字・ 末尾文字」の 組だけで分類 すればよい い た こ ふ いちご ふた たいこ たこ こっぷいた
53.
ということを 踏まえつつ 次の問題へ
54.
もう一つの問題
55.
最短距離での JR線全線 乗り尽くし
56.
地図:国土数値情報 鉄道データ N02-08 (2008年現在;JR以外の鉄道も入ってます)
57.
ルール
58.
● 家に帰るまでが乗り尽くしです ※全線を乗り尽くして出発駅に 戻るまでの距離で考える ● JR以外の交通機関は使わない 詳しくは、7月12日の私の 勉強会発表資料を http://www.slideshare.net/maraigue/chinese-postman http://blog.livedoor.jp/maraigue/archives/1747895.html
59.
解き方
60.
簡単のために JR北海道だけで 考えます
61.
JR北海道の路線図 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
62.
実は「出発駅に 戻らないとならない」と いう制約が 問題を簡単にしている
63.
(それでも結構 大変ではあるのだが)
64.
例えば、乗り尽くしにおいて 「岩見沢~滝川を1回」かつ 「新夕張~新得を2回」 という乗り方は可能か? 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
65.
→答えはNO。 出発駅に戻れなくなる。 「岩見沢~滝川を1回」かつ「新夕張~新得を2回」 では、例えば富良野から札幌に行くと 最後は戻って来られなくなる。 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
66.
例えば、乗り尽くしにおいて 「岩見沢~滝川を1回」 かつ「岩見沢~白石を2回」 かつ「岩見沢~追分を2回」 という乗り方は可能か? 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
67.
→答えはNO。同様の理由で、 岩見沢駅に帰れなくなる。 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
68.
結論: 1.路線網を分断するような辺は 合計で偶数回通る必要がある 2.各駅に入る回数と出る回数は 必ず同じである必要がある ※なお逆に、「各駅に出入りする辺数が 偶数になっていれば、乗り尽くしが 可能である」ことも数学的に示せます。 ぐぐる用キーワード:「オイラーグラフ」
69.
最短乗車距離の見つけ方(1): まず、行き止まりの路線は 絶対に2回通らないとならないので そこは落としてしまう。 (計算時間を減らす意味もある) 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
70.
最短乗車距離の見つけ方(1): まず、行き止まりの路線は 絶対に2回通らないとならないので そこは落としてしまう。 (計算時間を減らす意味もある) 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢
71.
最短乗車距離の見つけ方(1): まず、行き止まりの路線は 絶対に2回通らないとならないので そこは落としてしまう。 (計算時間を減らす意味もある) 沼ノ端 追分 新得南千歳 白石 滝川 旭川 富良野 岩見沢
72.
最短乗車距離の見つけ方(2): 路線図のうち、奇数本しか路線が入って こない駅を集め、そこを2つずつの組にし 距離が最小になるものを求める。 沼ノ端 追分 新得南千歳 白石 滝川 旭川 富良野 岩見沢
73.
最短乗車距離の見つけ方(2): 路線図のうち、奇数本しか路線が入って こない駅を集め、そこを2つずつの組にし 距離が最小になるものを求める。 赤丸の駅に繋がる辺数が全部偶数になった! 沼ノ端 追分 新得南千歳 白石 滝川 旭川 富良野 岩見沢
74.
最終結果:JR北海道全線 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢 ━━━━:2回通る ━━━━:1回通る JR北海道の総距離 2457.7km(営業キロ) 左図の総乗車距離 3565.0km(同) 総距離の145%
75.
最終結果:JR北海道全線 函館 五稜郭 中小国 大沼 森 長万部 室蘭 東室蘭 苫小牧 沼ノ端 追分 新得 夕張 新夕張 東釧路 根室 南千歳 新千歳空港 桑園 白石 新十津川 増毛 滝川 深川 旭川 新旭川 稚内 富良野 様似 岩見沢 一筆書き経路の例 白石→桑園→新十津川→桑園 →長万部→森→大沼→五稜郭 →函館→五稜郭→中小国→五稜郭 →大沼→森→長万部→東室蘭 →室蘭→東室蘭→苫小牧→様似 →苫小牧→沼ノ端→追分→岩見沢 →白石→南千歳→沼ノ端→南千歳 →新千歳空港→南千歳→追分 →新夕張→夕張→新夕張→新得 →東釧路→根室→東釧路→新旭川 →稚内→新旭川→旭川→深川 →増毛→深川→滝川→富良野 →新得→富良野→旭川→深川 →滝川→岩見沢→白石
76.
最短乗車距離の見つけ方(3): 「JR全線」のようにあまりに駅数が多いときは 路線を分断してから解くと 大幅に高速化される(組み合わせ爆発回避) ※詳細は省略 詳細: http://blog.livedoor.jp/maraigue/archives/1747895.html
77.
ソルバーに与えてあげる式 [最小化したい式] Σe∈A d(e)×I(e) Aは、入ってくる路線数が奇数本である駅を 2つ選んで取り出したものの集合 I(e)は、単語eを使ったときに1、そうでないときに0を返す d(e)は駅間距離(定数なので、I(e)と積を取ってよい) [条件式] 入ってくる路線数が奇数本である駅sについて Σe∈A,eの一方はs駅 I(e) = 1
78.
解いてみる ソースコード: https://github.com/maraigue/cpp-chinese-postman
79.
おわりに
80.
(1) グラフ理論という ツールを駆使して 「コンピュータに解ける パズル」にする
81.
(2) グラフ上の最適化は 条件が1次式で 書けるなら GLPKとかで楽できる
82.
ありがとう ございました
Download