SlideShare a Scribd company logo
1 of 153
Download to read offline
現実世界に活かす数学
- グラフ, 漸化式から動的計画法へ -
NTT データ数理システム
大槻 兼資
(ペンネーム: けんちょん)
2021/5/15
@麻布学園
1
今日の話
2
グラフ 漸化式
動的計画法
現実世界への応用
an+1 = 2an + 3
/ 153
• 2014年:東京大学大学院情報理工学系研究科
数理情報学専攻修士課程修了
自己紹介 (本業編)
• 2015年~:NTT データ数理システム
• 専門は数理工学全般
• アルゴリズム
• 探索, ネットワークなど
• 数理最適化
• シフトスケジューリングなど
• 機械学習
• チャットボットなど
http://www.dis.uniroma1.it/challenge9/download.shtml 3
4
自己紹介 (趣味編)
(5月15日) (7 の形) (1234567890 で「コ」)
• 虫食算作り
• コミケなどにも出店
• 競技プログラミング
1
5
5
×
自己紹介 (趣味編)
(全部虫食い) (たのしい) (将棋: 美濃囲い)
• 虫食算作り
• コミケなどにも出店
• 競技プログラミング
6
アルゴリズム本を出版
• 2021 年 IT エンジニア本大賞特別賞
• 「問題の解き方」を重視したアルゴリズムの入門書
7
アルゴリズム本の章構成
第 1 章
アルゴリズムとは
第 2 章
計算量とオーダー記法
第 3 章
全探索
第 4 章
再帰と分割統治法
第 5 章
動的計画法
第 6 章
二分探索法
第 7 章
貪欲法
第 8 章
配列、連結リスト
ハッシュテーブル
第 9 章
スタックとキュー
第 10 章
グラフと木
第 11 章
Union-Find
第 12 章
ソート
第 13 章
グラフ探索
第 14 章
最短路問題
第 15 章
最小全域木問題
第 16 章
ネットワークフロー
第 17 章
P と NP
第 18 章
難問対策
8
アルゴリズム本の章構成
第 1 章
アルゴリズムとは
第 2 章
計算量とオーダー記法
第 3 章
全探索
第 4 章
再帰と分割統治法
第 5 章
動的計画法
第 6 章
二分探索法
第 7 章
貪欲法
第 8 章
配列、連結リスト
ハッシュテーブル
第 9 章
スタックとキュー
第 10 章
グラフと木
第 11 章
Union-Find
第 12 章
ソート
第 13 章
グラフ探索
第 14 章
最短路問題
第 15 章
最小全域木問題
第 16 章
ネットワークフロー
第 17 章
P と NP
第 18 章
難問対策
アルゴリズムとは
• ある問題を解くための方法、手順のこと
• それを実装したものがプログラム
• 「入力」を入れると「出力」を返す装置
9
アルゴリズム
入力 出力
10
アルゴリズムの例
カーナビ
地図
現在地
目的地
目的地へ
至る経路
単語検索
文書 文書に単語
が含まれるか
単語
数独
ソルバー
11
数学で現実の問題を解くとは
数理モデル化
数学パズル
な問題
解
解釈・意思決定
アルゴリズム
数理最適化
機械学習
12
現実の問題への数学の力
• AI や量子コンピュータなどの、分野の流行に依らない
一生モノのスキル
• むしろ AI を学ぶための強力な下地となる
グラフ
動的計画法
○○手法
電気 機械 化学 生物 経済 ○○
• さまざまな分野の問題が、数理モデル化によって
本質的に同じ問題になったりなる!
今日の話
13
グラフ
現実世界への応用
an+1 = 2an + 3
14
グラフ
• 物事の関係性を「丸」と「線」を用いて表したもの
• コンピュータサイエンスのあらゆる領域で使われる
頂点 辺
15
• 辺に「向き」があることもある (有向グラフ)
グラフ
• あれもこれも実はグラフ!
• さまざまな分野の問題をグラフに関する問題として
見通よく汎用的に扱える!
16
数理モデル化の精神
グラフ
例(1):友人関係
• 頂点:人間
17
• 辺:友人関係
タスク例
A さんの友達の友達が
何人いるか求める
例(2):鉄道路線図
• 頂点:駅
18
• 辺:線路
タスク例
A 駅から B 駅への
最短経路を求める
(Dijkstra 法)
例(3):数独ソルバー
• 頂点:局面
19
• 辺:局面遷移
タスク例
数独の解を求める
(深さ優先探索)
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3
2
3
2
2
1
1
3 2
3
2
2
1
1
3
1 2 3
例(4):8パズルの最小手数
• 頂点:局面
20
• 辺:局面遷移
タスク例
8パズルの
最小手数を求める
(幅優先探索)
2
7
3
4
1
5
8 6
2
7
3
4
1
5
8 6
2
7
3
4
1
5
8 6
2
7
3
4
1
5
8 6
2
7
3
4 1
5
8 6
2
7
3
4
1
5
8
6
2
7
3
4
1
5
8 6
2
7
3
4
1
5
8 6
2
7
3
4
1 5
8 6
2
7
3
4
1
5
8
6
2
7
3
4
1
5
8 6
2
7
3
4
1
5
8
6
2
7
3
4
1
5
8
6
1
8
3
2
4
5
7 6
1
8
3
7
4
5
2
6
3
8
5
4
1
2
7 6
3
7
5
4
1
6
2
8
目標配置
初期配置
例(5):タスクの依存関係
• 頂点:タスク
21
• 辺:依存関係
タスク例
タスクの適切な順序
を決定する
(トポロジカルソート)
皿洗い
食事
帰宅 歯磨き
風呂
就寝
例(6):電気回路
• 頂点:素子
22
• 辺:導線
タスク例
有向グラフ (電流の向き考慮)
の有向閉路を検出
例(7):家系図
• 頂点:家族
23
• 辺:血縁関係
タスク例
A さんと B さんの
最近の共通祖先を求める
例(8):化学式
• 頂点:原子
24
• 辺:原子の結合
タスク例
CnH2n+2 の
異性体の個数を数え上げる
O
OH
例(9):しりとり
• 頂点:文字
25
• 辺:単語
タスク例
すべての単語を用いた
しりとりを見つける
(Euler 路)
d
DNA の部分系列の集まり
から全体を復元する問題
などに応用あり
g
dog
m
gram
good
dim
a
and
arm t
tea
team
例(10):マッチング
• 頂点:「男」と「女」
26
• 辺:恋愛対象
タスク例
最大で何組のペアを
作れるかを求める
(二部マッチング)
極めて多彩な応用あり
• あれもこれも実はグラフ!
• さまざまな分野の問題をグラフに関する問題として
見通よく汎用的に扱える!
27
数理モデル化の精神
グラフのすごさ (再掲)
• 数独ソルバー (by 深さ優先探索)
28
グラフを使って問題を解く例
• 迷路の最短路 (by 幅優先探索)
29
深さ優先探索
• 数独ソルバーを作ることを考える
https://ja.wikipedia.org/wiki/%E6%95%B0%E7%8B%AC
30
深さ優先探索
• 数独を解く過程もグラフで表せる!
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3
2
3
2
2
1
1
3 2
3
2
2
1
1
3
1 2 3
https://ja.wikipedia.org/wiki/%E6%95%B0%E7%8B%AC
31
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
32
深さ優先探索の動き
2
3
2
2
1
1
1
2
3
2
2
1
1
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
33
深さ優先探索の動き
2
3
2
2
1
1
1
2
3
2
2
1
1
1 1
2
3
2
2
1
1
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
34
深さ優先探索の動き
2
3
2
2
1
1
1
2
3
2
2
1
1
1 1
2
3
2
2
1
1
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
35
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 1 2
2
3
2
2
1
1
36
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 1 2
2
3
2
2
1
1
37
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
38
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1 2
1
2
3
2
2
1
1
39
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1 2
1
2
3
2
2
1
1
40
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2 2
1 2
2
3
2
2
1
1
41
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2 2
1 2
2
3
2
2
1
1
42
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
43
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
44
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
45
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
46
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
47
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3 1
48
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3 1
49
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3
2
3
2
2
1
1
3 1 2
50
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3
2
3
2
2
1
1
3 1 2
51
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3
2
3
2
2
1
1
3 2
3
2
2
1
1
3
1 2 3
52
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3
2
3
2
2
1
1
3 2
3
2
2
1
1
3
1 2 3
53
深さ優先探索の動き
• 矛盾するまで猛突猛進に突き進む / 矛盾したら戻る
2
3
2
2
1
1
1 2
3
2
2
1
1
2
3
2
2
1
1
3
2
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
1 2 3
2
3
2
2
1
1
1
2
3
2
2
1
1
1 2
3
2
2
1
1
1
2 2 3
1 2 3
2
3
2
2
1
1
2
3
2
2
1
1
3
2
3
2
2
1
1
3 2
3
2
2
1
1
3
1 2 3
終了!
54
深さ優先探索の実応用
• 数独ソルバー
• https://github.com/drken1215/sudoku
• 虫食算ソルバーも同様に作れる
• コンピュータ将棋 AI の探索ルーチン
• makefile などのビルドシステム
• 動的計画法にもつながる
• ネットワークの輸送経路の確保
http://www.dis.uniroma1.it/challenge9/download.shtml
深さ優先探索のポイント
• 「目の付け所」がとても大事!
• 探索順序を工夫したり…探索不要なところを見出したり
• 数独なら、選択肢が少なそう
なマスから順に考えるなど
加藤徹作、大駒誠一, 武純也, 丸尾学著 『虫食算パズル700選』 問 698
56
幅優先探索
• 迷路の最短路を求めよう!
• スタート (S) からゴール (G) への最短経路は?
57
幅優先探索
• 迷路の最短路を求めよう!
• スタート (S) からゴール (G) への最短経路は?
これもグラフ!
・マス目が頂点
・マス目の隣接が辺
58
幅優先探索
• まず S から 1 手で行けるマスに「1」と書く
59
幅優先探索
• 次に「1」から 1 手で行けるマスに「2」と書く
60
幅優先探索
• 「2」から 1 手で行けるマスに「3」と書く
61
幅優先探索
• 「3」から 1 手で行けるマスに「4」と書く
62
幅優先探索
• 「4」から 1 手で行けるマスに「5」と書く
63
幅優先探索
• 「5」から 1 手で行けるマスに「6」と書く
64
幅優先探索
• 「6」から 1 手で行けるマスに「7」と書く
65
幅優先探索
• 「7」から 1 手で行けるマスに「8」と書く
66
幅優先探索
• 「8」から 1 手で行けるマスに「9」と書く
67
幅優先探索
• 「9」から 1 手で行けるマスに「10」と書く
68
幅優先探索
• 「10」から 1 手で行けるマスに「11」と書く
69
幅優先探索
• 「11」から 1 手で行けるマスに「12」と書く
70
幅優先探索
• 「12」から 1 手で行けるマスに「13」と書く
71
幅優先探索
• 「13」から 1 手で行けるマスに「14」と書く
72
幅優先探索
• 「14」から 1 手で行けるマスに「15」と書く
73
幅優先探索
• 「15」から 1 手で行けるマスに「16」と書く
• これでゴール!!!
74
幅優先探索
• ゴールから、「数値が 1 ずつ下がっていくように」
遡っていくと、最短経路が得られる
75
幅優先探索の応用
• カーナビ
• 電車の乗り換え案内
• パズル (15-パズルなど) の最小手数
76
最短経路問題 - 実応用に向けて
• 道路の長さも考慮
• ダイクストラ法などより高度なアルゴリズムへ
• 道路の交通状況も考慮
• 「ここを通ると嬉しい」というボーナスも
• ベルマンフォード法などより高度なアルゴリズムへ
• 街の構造なども利用して高速化したり
今日の話
77
漸化式
現実世界への応用
an+1 = 2an + 3
漸化式とは
前の数値から、次の数値を作る規則
• 数列には大きく分けて 2 つの見方がある
• 一般項 (一般的な規則性)
• 漸化式 (前の数値から次の数値への規則)
3, 6, 9, 12, 15, 18, 21, 24, …
78
一般項
3, 6, 9, 12, 15, 18, 21, 24, …
例:
この数列を一般項としてみると…
n 番目は 3 × n 3, 6, 9, 12, 15, 18, 21, 24, …
3×1
an = 3n
79
一般項
3, 6, 9, 12, 15, 18, 21, 24, …
例:
n 番目は 3 × n 3, 6, 9, 12, 15, 18, 21, 24, …
3×2
an = 3n
この数列を一般項としてみると…
80
一般項
3, 6, 9, 12, 15, 18, 21, 24, …
例:
n 番目は 3 × n 3, 6, 9, 12, 15, 18, 21, 24, …
3×3
an = 3n
この数列を一般項としてみると…
81
一般項
3, 6, 9, 12, 15, 18, 21, 24, …
例:
n 番目は 3 × n 3, 6, 9, 12, 15, 18, 21, 24, …
3×4
an = 3n
この数列を一般項としてみると…
82
漸化式
前の数値から、次の数値を作る規則
3, 6, 9, 12, 15, 18, 21, 24, …
例:
漸化式としてみると…
a1 = 3
,
初項が 3
前の数に
3 を足していく
83
an = an−1 + 3
漸化式
前の数値から、次の数値を作る規則
3, 6, 9, 12, 15, 18, 21, 24, …
例:
a1 = 3
,
初項が 3
3,
漸化式としてみると…
84
前の数に
3 を足していく
an = an−1 + 3
漸化式
前の数値から、次の数値を作る規則
3, 6, 9, 12, 15, 18, 21, 24, …
例:
a1 = 3
,
初項が 3
3, 6,
+3
漸化式としてみると…
85
前の数に
3 を足していく
an = an−1 + 3
漸化式
前の数値から、次の数値を作る規則
3, 6, 9, 12, 15, 18, 21, 24, …
例:
a1 = 3
,
初項が 3
3, 6, 9,
+3 +3
漸化式としてみると…
86
前の数に
3 を足していく
an = an−1 + 3
漸化式
前の数値から、次の数値を作る規則
3, 6, 9, 12, 15, 18, 21, 24, …
例:
a1 = 3
,
初項が 3
3, 6, 9, 12,
+3 +3 +3
漸化式としてみると…
87
前の数に
3 を足していく
an = an−1 + 3
漸化式
前の数値から、次の数値を作る規則
3, 6, 9, 12, 15, 18, 21, 24, …
例:
a1 = 3
,
初項が 3
3, 6, 9, 12, 15, …
+3 +3 +3 +3
漸化式としてみると…
88
前の数に
3 を足していく
an = an−1 + 3
三項間漸化式も
前の数値から、次の数値を作る規則
フィボナッチ数列
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
89
an = an−1 + an−2
a1 = 1
a2 = 1
三項間漸化式も
前の数値から、次の数値を作る規則
フィボナッチ数列
例:
1, 1, 2
90
an = an−1 + an−2
a1 = 1
a2 = 1
三項間漸化式も
前の数値から、次の数値を作る規則
フィボナッチ数列
例:
1, 1, 2, 3
91
an = an−1 + an−2
a1 = 1
a2 = 1
三項間漸化式も
前の数値から、次の数値を作る規則
フィボナッチ数列
例:
1, 1, 2, 3, 5
92
an = an−1 + an−2
a1 = 1
a2 = 1
三項間漸化式も
前の数値から、次の数値を作る規則
フィボナッチ数列
例:
1, 1, 2, 3, 5, 8
93
an = an−1 + an−2
a1 = 1
a2 = 1
三項間漸化式も
前の数値から、次の数値を作る規則
フィボナッチ数列
例:
1, 1, 2, 3, 5, 8, 13, …
94
an = an−1 + an−2
a1 = 1
a2 = 1
漸化式をグラフで表す
例:
95
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
漸化式をグラフで表す
例:
96
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
6
漸化式をグラフで表す
例:
97
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
6 9
漸化式をグラフで表す
例:
98
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
6 9 12
漸化式をグラフで表す
例:
99
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
6 9 12 15
漸化式をグラフで表す
例:
100
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
…
1
6 9 12 15
1
漸化式をグラフで表す
例:
101
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
…
1 1
6 9 12 15
2
漸化式をグラフで表す
例:
102
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
…
1 1
6 9 12 15
2 3
漸化式をグラフで表す
例:
103
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
…
1 1
6 9 12 15
2 3 5
漸化式をグラフで表す
例:
104
3, 6, 9, 12, 15, 18, 21, 24, …
例:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …
+3 +3 +3 +3 +3
3
an = an−1 + 3
an = an−1 + an−2
…
…
1 1
6 9 12 15
2 3 5 8
道順を求めるやつも漸化式
105
1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15 21
1 4 10 20 35 56
1 5 15 35 70 126
道順を求めるやつも漸化式
106
1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15 21
1 4 10 20 35 56
1 5 15 35 70 126
今日の話
107
動的計画法
現実世界への応用
an+1 = 2an + 3
動的計画法とは
108
問題を一連の部分問題に分割し、
各部分問題の解をメモ化しながら順に求めていく手法
• とても抽象的で汎用的でわかりにくい
• 適用範囲が広い
• 実はさっきの漸化式をグラフで解釈する方法に近い
動的計画法の例題
109
足場を「ジャンプ」しながら左端から右端へ行きたい
AtCoder Educational DP Contest A - Frog
ただし「隣の足場」か「1 個飛ばしの足場」にのみ進める
ジャンプの所要時間は「足場の高さの差」
左端から右端までの最短所要時間を求めよ
4m 7m
7 - 4 = 3 秒!
3m
グラフの問題と考える
110
例:
0 1 2 3 4 5 6
7
2
5 1 4 5 4
4
3
1 9
足場を「ジャンプ」しながら左端から右端へ行きたい
AtCoder Educational DP Contest A - Frog
ただし「隣の足場」か「1 個飛ばしの足場」にのみ進める
ジャンプの所要時間は「足場の高さの差」
左端から右端までの最短所要時間を求めよ
・足場が 7 個
・(2, 9, 4, 5, 1, 6, 10)
111
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
• ノード 0 からノード 6 への最短経路を求める!
グラフの問題と考える
112
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
• ノード 0 からノード 6 への最短経路を求める!
• 答えは、2 + 1 + 1 + 4 = 8
グラフの問題と考える
頂点 0 から順に求めていく
113
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
メモ
頂点 0 への最小コスト (初期条件)
114
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
0
メモ
頂点 1 への最小コスト
115
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
0
7
7
メモ
0 + 7 = 7
頂点 2 への最小コスト
116
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
0 7
2
5
2
12 と 2 の小さい方
メモ
頂点 3 への最小コスト
117
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
0 7
4
1
2 3
メモ
3 と 11 の小さい方
頂点 4 への最小コスト
118
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
メモ
0 7
3
4
2 3 5
7 と 5 の小さい方
頂点 5 への最小コスト
119
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
0 7
1
5
2
10 と 4
3 5 4
メモ
頂点 6 への最小コスト
120
0
7
2
5 1 4 5 4
4
3
1 9
1 2 3 4 5 6
0 7
9
4
2
8 と 14
3 5 4 8
メモ
動的計画法とは
121
• 問題を一連の部分問題に分割
• 頂点 0 へ至る最小コストを求める問題
• 頂点 1 へ至る最小コストを求める問題
• …
• 頂点 N-1 へ至る最小コストを求める問題
• メモ化しながら、各部分問題の解を順に求めた
問題を一連の部分問題に分割し、
各部分問題の解をメモ化しながら順に求めていく手法
やったことは漸化式の一種
122
an = min(an−1 + f(n − 1, n), an−2 + f(n − 2, n))
f(n-1, n)
f(n-2, n)
n-2 n-1 n
• いろんなグラフを考えると、いろんな問題が解ける!
記号
123
• これからは次の記号を使う
• 動的計画法 (dynamic programming) を実際に
プログラミングするときは配列を使うことを意識
an dp[n]
an,m dp[n][m]
1 1 1 1
1 2 3 4
1 3 6 10
動的計画法は汎用的
• 動的計画法で解決できる問題は数多くある
• ナップサック問題
• スケジューリング問題
• 発電計画問題
• 編集距離
• 音声認識パターンマッチング問題
• 文章の分かち書き
• 隠れマルコフモデル
124
• ここでは代表的なパターンを 3 つ紹介!
拙著の動的計画法の章
• 5 章 - 設計技法 (3):動的計画法
125
• 5.1 動的計画法とは
• 5.2 動的計画法の例題
• 5.3 動的計画法に関連する諸概念
• 5.4 動的計画法の例 (1):ナップサック問題
• 5.5 動的計画法の例 (2):編集距離
• 5.6 動的計画法の例 (3):区間分割の仕方を最適化
• 5.7 まとめ
パターン(1):ナップサック問題
126
0 1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0 0
0 0 0 6 6 6 6 6 6 6 6
0 3 3 6 9 9 9 9 9 9 9
0 3 3 6 9 9 10
0 3 3 6 85
10 10 10 10
88 88 91 94 94 95
• こんなイメージの遷移
dp[0]
dp[1]
dp[2]
dp[3]
dp[4]
パターン(2):編集距離
127
0
1
2
3
4
5
6
7
8
1
1
2
3
4
5
6
7
8
2
1
2
3
4
5
6
7
8
3
2
2
2
3
4
5
6
7
4
3
2
3
3
4
5
6
7
5
4
3
3
4
4
5
6
7
6
5
4
4
3
4
5
5
6
7
6
5
5
4
4
4
5
6
8
7
6
6
5
5
5
5
6
l
o
g
9
8
7
7
6
6
6
6
6
i
s
t
i
c
a l g o r i t h m
長さ 1
長さ 0
• こんなイメージの遷移
パターン(3):区間分割
128
i 個
j 個
• こんなイメージの遷移
3 つの代表的な遷移パターン
129
• ナップサック問題
• 編集距離
• 区間分割
ナップサック問題
130
N 個の品物があって、いくつか選びたい
各品物には「重さ」と「価値」の属性がある
選んだ品物の重さの合計が W を超えないようにしつつ
価値の総和を最大化せよ
https://www.msi.co.jp/nuopt/introduction/index.html
ナップサック問題
131
N 個の品物があって、いくつか選びたい
各品物には「重さ」と「価値」の属性がある
選んだ品物の重さの合計が W を超えないようにしつつ
価値の総和を最大化せよ
dp[i][w] ← N 個の品物のうち、最初の i 個のみ考える
その中から重さの合計が w を超えないようにしつつ
選んだときの価値の総和の最大値
最初の i 個についての問題 (部分問題)
ナップサック問題
132
dp[i+1][w] = max(dp[i][w],
dp[i][w-wei[i]] + val[i])
新たな品物を選ばない場合
新たな品物を選ぶ場合
重さ 価値
dp[i][w] ← N 個の品物のうち、最初の i 個のみ考える
その中から重さの合計が w を超えないようにしつつ
選んだときの価値の総和の最大値
• dp[i][0], dp[i][1], … を用いて、       
dp[i+1][0], dp[i+1][1], … を表す
ナップサック DP の遷移
133
ナップサックに入れた重さ
0 1 2 3 4 5 6 7 8 9 10
0 個
1 個
2 個
3 個
4 個
0 0 0 0 0 0 0 0 0 0 0
0 0 0 6 6 6 6 6 6 6 6
0 3 3 6 9 9 9 9 9 9 9
0 3 3 6 9 9 10
0 3 3 6 85
10 10 10 10
88 88 91 94 94 95
• (重さ, 価値) = (3, 6), (1, 3), (2, 1), (5, 85) の場合
ナップサック DP の遷移のポイント
134
• N 個の要素をシーケンシャルに処理していくもの
• そのために必要な添字を適宜追加していく
dp[i][w]
部分問題のサイズ 遷移に必要な追加の添字
2 個
3 個
4 個
0 3 3 6 9 9 9 9 9 9 9
0 3 3 6 9 9 10
0 3 3 6 85
10 10 10 10
88 88 91 94 94 95
例(1): サイゼリヤ問題
135
• 予算 1000 円で、最高何 kcal とれるか?
https://qiita.com/marusho_summers/items/a2d3681fac863734ec8a
• ナップサック問題そのもの
• ナップサックの容量が予算に対応:1000 円
• 品物の価値が、カロリーに対応
・ポテトのグリル
(199 円, 366 kcal)
・アーリオ•オーリオ
(574 円, 1120 kcal)
・ラージライス
(219 円, 454 kcal)
合計:992 円, 1940 kcal
例(2): 隠れマルコフモデル
136
• 系列データを「潜在変数」のマルコフ連鎖で表すもの
追加の添字 i+1 番目の状態が i 番目のみに依る
• 前回の状態によって、次回の各状態の起こりやすさが
変化する
https://mathwords.net/hiddenmarkov
風邪 or 元気
からなる系列データ
例(2): 隠れマルコフモデル
137
• 系列データを「潜在変数」のマルコフ連鎖で表すもの
追加の添字 i+1 番目の状態が i 番目のみに依る
• 潜在変数の最も確からしい経路を求める Viterbi のアル
ゴリズムは、ナップサック DP とほとんど同じもの
• 音声認識
• 品詞分析
• 株価の変動予測
さまざまな応用
例(3): パネルの長さを揃える
138
さまざまな長さのパネルがたくさん並んでいる
それをいくつかのグループに分ける
各グループのパネルの長さの総和をなるべく揃えたい
実際にはパネルの幅も考慮
139
• どのグループの長さも「許される上限」以下とする
• 最短のグループの長さを、最大化する
dp[i][j] ← 最初の i 枚のパネルについて考える
現在形成中のグループの長さが j であるとした場合の
現在までに形成されたグループの長さの最小値
この長さが j
…
例(3): パネルの長さを揃える
3 つの代表的な遷移パターン
140
• 編集距離
編集距離
141
2 つの文字列 S, T がある
S に以下の 3 通りの操作を繰り返すことで T に変換したい
・変更: S の文字を 1 つ選んで変更
・削除: S の文字を 1 つ選んで削除
・挿入: S の好きな箇所に好きな文字を 1 文字挿入
最小回数を求めよ
例:
S = logistic
T = algorithm
→ 6 回
二系列の DP
142
例:
S = logistic
T = algorithm
→ 6 回
dp[i][j] ← S の最初の i 文字と、T の最初の j 文字との
間についての操作回数の最小値
編集距離を求める DP の遷移
143
dp[i][j] ← S の最初の i 文字と、T の最初の j 文字との
間についての操作回数の最小値
応用が広く、分野横断的!
144
• diff コマンド
• 音声認識、画像認識、空間認識
• DP マッチング
• 二系列データの類似度を考える問題全般に適用
• スペルチェッカー
• バイオインフォマティクス
• 系列アラインメント (2 つの DNA の類似度を測るなど)
• 手書き文字認識
3 つの代表的な遷移パターン
145
• 区間分割
区間分割
146
0 1 2 3 4 5 6 7 8 9
• 系列データをいくつかの区間に分ける
• 区間分割の仕方を最適化したい
区間分割を扱う DP
147
i 個
dp[i] ← 最初の i 個をいくつかの区間に区切る方法の
「良さ」の最大値 (i 個目のところで一旦区切るとする)
区間分割を扱う DP
148
i 個
j 個
計算量は大きくなりがち
さまざまな高速化手法あり
dp[i] = min_{j = 0, 1, …, i-1}(dp[j] + f(j, i))
dp[j] dp[i]
例(4): 分かち書き
149
http://chasen.naist.jp/chaki/t/2009-09-30/doc/mecab-cabocha-nlp-seminar-2009.pdf
僕は君を愛している
僕 は 君 を 愛し て いる
単語ごとに区切る
例(5): 発電計画問題
150
• 発電の on と off のタイミングを最適化する
on off on off
• 需要供給バランスの考慮などもあって、各区間のコス
ト関数 f(i, j) はとても複雑なものになる
• 「~時間以上連続稼働」といった制約も考慮
例(6): タイムスケジューリング
151
• お客さまを順に回る配送 (配送順序は固定)
• 「何時から何時の間に届けてほしい」
• 「~分間に 1 回は休憩が必要」という制約もある
→ どこで休憩をとるかを最適化
休憩場所ごとに区切る
152
数学で現実の問題を解く (再掲)
数理モデル化
数学パズル
な問題
解
解釈・意思決定
アルゴリズム
数理最適化
機械学習
全体のまとめ
153
• さまざまな分野の問題が、
数理モデル化によって本質
的に同じ問題に!
• 数学は分野の流行によら
ない、一生モノのスキル
グラフ
動的計画法
○○手法
電気 機械 化学 生物 経済 ○○

More Related Content

What's hot

勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとはTakuya Akiba
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
ZDD基礎
ZDD基礎ZDD基礎
ZDD基礎reew2n
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解くshindannin
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)Shota Imai
 
コンピュータビジョン分野メジャー国際会議 Award までの道のり
コンピュータビジョン分野メジャー国際会議 Award までの道のりコンピュータビジョン分野メジャー国際会議 Award までの道のり
コンピュータビジョン分野メジャー国際会議 Award までの道のりcvpaper. challenge
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するsleepy_yoshi
 
ユークリッド最小全域木
ユークリッド最小全域木ユークリッド最小全域木
ユークリッド最小全域木理玖 川崎
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドMasaki Hara
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題tmaehara
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会Kenyu Uehara
 
2章グラフ理論スピード入門
2章グラフ理論スピード入門2章グラフ理論スピード入門
2章グラフ理論スピード入門Teruo Kawasaki
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)AtCoder Inc.
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative ModelsDeep Learning JP
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツShuyo Nakatani
 
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzzConstexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz京大 マイコンクラブ
 

What's hot (20)

勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
ZDD基礎
ZDD基礎ZDD基礎
ZDD基礎
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
Chokudai search
Chokudai searchChokudai search
Chokudai search
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
コンピュータビジョン分野メジャー国際会議 Award までの道のり
コンピュータビジョン分野メジャー国際会議 Award までの道のりコンピュータビジョン分野メジャー国際会議 Award までの道のり
コンピュータビジョン分野メジャー国際会議 Award までの道のり
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
ユークリッド最小全域木
ユークリッド最小全域木ユークリッド最小全域木
ユークリッド最小全域木
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
2章グラフ理論スピード入門
2章グラフ理論スピード入門2章グラフ理論スピード入門
2章グラフ理論スピード入門
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
 
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzzConstexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz
 
一般向けのDeep Learning
一般向けのDeep Learning一般向けのDeep Learning
一般向けのDeep Learning
 

Similar to 「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目)

楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながりMITSUNARI Shigeo
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へZansa
 
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうかわんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうかMasami Yabushita
 
T82 aoitan あおいたんのパズルを数学しましょうか_修正版
T82 aoitan あおいたんのパズルを数学しましょうか_修正版T82 aoitan あおいたんのパズルを数学しましょうか_修正版
T82 aoitan あおいたんのパズルを数学しましょうか_修正版Masami Yabushita
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
整数クイズへの誘い
整数クイズへの誘い整数クイズへの誘い
整数クイズへの誘い俊介 後藤
 
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)TakaakiYonekura
 
130323 slide all
130323 slide all130323 slide all
130323 slide allikea0064
 
【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながりMathCafe
 
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013Shuyo Nakatani
 
Probabilistic Graphical Models 輪読会 #1
Probabilistic Graphical Models 輪読会 #1Probabilistic Graphical Models 輪読会 #1
Probabilistic Graphical Models 輪読会 #1Takuma Yagi
 
AtCoder Regular Contest 017
AtCoder Regular Contest 017AtCoder Regular Contest 017
AtCoder Regular Contest 017AtCoder Inc.
 
『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演
『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演
『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演Kensuke Otsuki
 
虫食算を作るアルゴリズム 公表Ver
虫食算を作るアルゴリズム 公表Ver虫食算を作るアルゴリズム 公表Ver
虫食算を作るアルゴリズム 公表VerKensuke Otsuki
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端Yoichi Iwata
 

Similar to 「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目) (20)

楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
 
WUPC2012
WUPC2012WUPC2012
WUPC2012
 
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうかわんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
 
T82 aoitan あおいたんのパズルを数学しましょうか_修正版
T82 aoitan あおいたんのパズルを数学しましょうか_修正版T82 aoitan あおいたんのパズルを数学しましょうか_修正版
T82 aoitan あおいたんのパズルを数学しましょうか_修正版
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
整数クイズへの誘い
整数クイズへの誘い整数クイズへの誘い
整数クイズへの誘い
 
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
 
130323 slide all
130323 slide all130323 slide all
130323 slide all
 
【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり
 
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
 
Probabilistic Graphical Models 輪読会 #1
Probabilistic Graphical Models 輪読会 #1Probabilistic Graphical Models 輪読会 #1
Probabilistic Graphical Models 輪読会 #1
 
AtCoder Regular Contest 017
AtCoder Regular Contest 017AtCoder Regular Contest 017
AtCoder Regular Contest 017
 
『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演
『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演
『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演
 
虫食算を作るアルゴリズム 公表Ver
虫食算を作るアルゴリズム 公表Ver虫食算を作るアルゴリズム 公表Ver
虫食算を作るアルゴリズム 公表Ver
 
Trianguler
TriangulerTrianguler
Trianguler
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
 
数理解析道場
数理解析道場数理解析道場
数理解析道場
 
Tokyo r27
Tokyo r27Tokyo r27
Tokyo r27
 

More from Kensuke Otsuki

ものづくりに活かす数学 (2024 年 1 月 26 日 N/S 高等学校での数学の授業)
ものづくりに活かす数学 (2024 年 1 月 26 日 N/S 高等学校での数学の授業)ものづくりに活かす数学 (2024 年 1 月 26 日 N/S 高等学校での数学の授業)
ものづくりに活かす数学 (2024 年 1 月 26 日 N/S 高等学校での数学の授業)Kensuke Otsuki
 
競プロは人生の役に立つ!
競プロは人生の役に立つ!競プロは人生の役に立つ!
競プロは人生の役に立つ!Kensuke Otsuki
 
人それぞれの競プロとの向き合い方
人それぞれの競プロとの向き合い方人それぞれの競プロとの向き合い方
人それぞれの競プロとの向き合い方Kensuke Otsuki
 
アルゴリズムを楽しく!@PiyogrammerConference
アルゴリズムを楽しく!@PiyogrammerConferenceアルゴリズムを楽しく!@PiyogrammerConference
アルゴリズムを楽しく!@PiyogrammerConferenceKensuke Otsuki
 
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)Kensuke Otsuki
 
JOI春季ステップアップセミナー 2021 講義スライド
JOI春季ステップアップセミナー 2021 講義スライドJOI春季ステップアップセミナー 2021 講義スライド
JOI春季ステップアップセミナー 2021 講義スライドKensuke Otsuki
 
IT エンジニア本大賞 2021 講演資料
IT エンジニア本大賞 2021 講演資料IT エンジニア本大賞 2021 講演資料
IT エンジニア本大賞 2021 講演資料Kensuke Otsuki
 
Optimization night 4_dp
Optimization night 4_dpOptimization night 4_dp
Optimization night 4_dpKensuke Otsuki
 
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)Kensuke Otsuki
 
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~Kensuke Otsuki
 
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方Kensuke Otsuki
 
2部グラフの最小点被覆の求め方
2部グラフの最小点被覆の求め方2部グラフの最小点被覆の求め方
2部グラフの最小点被覆の求め方Kensuke Otsuki
 

More from Kensuke Otsuki (13)

ものづくりに活かす数学 (2024 年 1 月 26 日 N/S 高等学校での数学の授業)
ものづくりに活かす数学 (2024 年 1 月 26 日 N/S 高等学校での数学の授業)ものづくりに活かす数学 (2024 年 1 月 26 日 N/S 高等学校での数学の授業)
ものづくりに活かす数学 (2024 年 1 月 26 日 N/S 高等学校での数学の授業)
 
競プロは人生の役に立つ!
競プロは人生の役に立つ!競プロは人生の役に立つ!
競プロは人生の役に立つ!
 
人それぞれの競プロとの向き合い方
人それぞれの競プロとの向き合い方人それぞれの競プロとの向き合い方
人それぞれの競プロとの向き合い方
 
アルゴリズムを楽しく!@PiyogrammerConference
アルゴリズムを楽しく!@PiyogrammerConferenceアルゴリズムを楽しく!@PiyogrammerConference
アルゴリズムを楽しく!@PiyogrammerConference
 
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
 
JOI春季ステップアップセミナー 2021 講義スライド
JOI春季ステップアップセミナー 2021 講義スライドJOI春季ステップアップセミナー 2021 講義スライド
JOI春季ステップアップセミナー 2021 講義スライド
 
IT エンジニア本大賞 2021 講演資料
IT エンジニア本大賞 2021 講演資料IT エンジニア本大賞 2021 講演資料
IT エンジニア本大賞 2021 講演資料
 
210122 msi dp
210122 msi dp210122 msi dp
210122 msi dp
 
Optimization night 4_dp
Optimization night 4_dpOptimization night 4_dp
Optimization night 4_dp
 
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)
 
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
 
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
 
2部グラフの最小点被覆の求め方
2部グラフの最小点被覆の求め方2部グラフの最小点被覆の求め方
2部グラフの最小点被覆の求め方
 

Recently uploaded

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 

Recently uploaded (7)

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 

「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目)