計算機を用いて数学の問題を解くということ
九州大学マス・フォア・インダストリ研究所
溝 口 佳 寛
http://www.slideshare.net/yoshihiromizoguchi/
2015年11月26日(火), 27日(水)
※ 本スライドは九州数学教育会第6回算数・数学教育研究会(2013/04/21)
のスライドを改訂したものです.
城西大学理学部数学科講演会

於. 東京紀尾井町キャンパス(26日), 坂戸キャンパス(27日).
1
マス・フォア・インダストリ研究所
2http://www.imi.kyushu-u.ac.jp/
JST CREST研究プロジェクト
デジタル映像数学の構築と表現技術の革新
3http://mcg.imi.kyushu-u.ac.jp/
MCG :
Mathematics
for
Computer
Graphics
アニメの作成に数学が必要?
• アバター

監督: ジェームズ・キャメロン (ターミネーター, タイタニックなど)

VFX制作: WETAディジタル (ニュージーランド)

https://www.wetafx.co.nz/
• スターウォーズ

VFX制作: Industrial Light & Magic (米カリフォルニア州, シンガポール, カナダ)

http://www.ilm.com/
• メリダとおそろしの森, トイストーリー, アナと雪の女王など

映像制作: Pixar Animation Studio (米カリフォルニア州)

http://www.pixar.com/

映像制作: Walt Disney Animation Studio (アナと雪の女王など)

http://www.disneyanimation.com/
• ポケモン, イナズマ・イレブン, 妖怪ウォッチなど

映像制作: OLMデジタル (東京都渋谷区)

http://www.olm.co.jp/olm/

4
映画の名前は知っていても, 映像制作会社の名前は知られていません.
映像制作に研究開発部門があり, 数学とコンピュータを活用します.
映像制作会社のホームページを映像の素晴らしさだけでなく, その奥にある技術も含めて眺めてみましょう.
さて本題です. (講演概要)
 計算機は数の計算だけでなく,	 図形の接続関係等も取り扱う
ことが可能です.	 数以外の計算機で取り扱うデータも含めて,	 
その構造をデータ構造と言います.	 本講義では,	 数の計算だけ
でない,	 データ構造とその上のアルゴリズムを紹介し,	 現実の
問題を数学の問題に翻訳し,	 計算機を用いて解決する方法を例
を用いて紹介します.	 また,	 数学の定理を証明することと,	 与
えられた問題を解決するプログラムを書くことが同じ概念であ
ることを紹介し,	 プログラミングの練習は数学の問題解決能力
の育成にも重要であることを紹介します.
5
はじめに
世の中の問題を計算機を用いて解きたい
数理モデルによる問題の定式化が必要
計算機で扱えるデータ構造の知識も必要
数理モデルで定式化された問題は, 

数学の問題としても面白いかも
6
グラフ(データ構造)を使って問題解決
7
九州地図の色分け
● 各県に色を塗りたい
● 隣接県は異なる色にする
● 少ない色数で配色したい
プログラム(計算機)を⽤用いて配⾊色したい!
8
複雑な交差点での信号機の設計
● CとEは一方通行である.
● AB,AC,AD,...,EDと全部で13通りの進み方
がある.
● ADとEBは同時に進めない(同時に信号を
青に出来ない)
● ABとECは同時に進める. A B
C
D
E
同時に進めない進み⽅方を⾏行わずに, かつ,
効率の良い交差点を設計したい! 9
プログラミング以前の問題
● 九州地図の何をどのように計算機にどう覚えさせるか?
● 隣り合った県を異なる色に塗るとは?
● 交差点の何をどのように計算機に覚えさせるか?
● 同時に進めないことを計算機にどう覚えさせるか?
解くべき問題がはっきりすれば,
それは殆ど解決されている.
10
グラフ・データ構造
グラフGの頂点と辺の接続関係を0,1の数字を保存した⾏行列で実現する.
1 5
3
4
2
G
( )
( ) 	
 
11
グラフに対する問題
1 5
3
4
2
G 各頂点に⾊色を塗る
辺で結ばれた両端の頂点は
異なる⾊色を塗る
出来るだけ少ない⾊色で配⾊色
したい
⾏行列表現されたグラフに対する上記の操作や条件は
厳密にプログラム化出来る.
12
九州地図の色分け(再び)
● 各県に色を塗りたい
(各頂点に色を塗りたい)
● 隣接県は異なる色にする
(辺の両端の頂点は異なる色にする)
● 少ない色数で配色したい
グラフの頂点の彩⾊色 == 地図の⾊色分け 13
交差点での信号機の設計(再)
● AB,AC,AD,...,EDと全部で13通りの進み方が
ある.
(1つの進み方をグラフの1つの頂点と考える)
● ADとEBは同時に進めない(同時に信号を青
に出来ない)
(同時に進めない頂点間を辺で結ぶ)
A B
C
D
E
AD EBBA
14
信号機の設計とグラフの色分け
A B
C
D
E AB AC AD
BA BC BD
DA DB DC
EA EB EC ED
15
まとめ(計算機で問題を解くとは?)
① 実際の問題(地図や交差点の...)
② モデル化(グラフなどを使って定式化)
③ 抽象データ型(グラフとその操作)を用いてアルゴ
リズムを考える.
④ データ型の実現方法を決め, プログラムとして記
述する.
③が出来た時点で殆ど完成している. 16
グラフ理論が問題解決をバックアップ
— 5色定理と彩色アルゴリズム —
17
本講演で説明するグラフ理論の定理たち
定理 1 (Euler Polyhedron Formula)
連結平面グラフ G(V, E) に対して |F| を面の総数とするとき,
|F| + |V | = |E| + 2
が成り立つ.
定理 2 (Minimum Degree Bound)
連結平面グラフ G(V, E) に対して
min{deg(v)|v ∈ V } ≤ 5
が成り立つ. ただし, deg(v) = |{e ∈ E|∃w ∈ V ; (v, w) ∈ E}| とする.
定理 3 (Five Color Theorem)
全ての連結平面グラフ G(V, E) は 5 彩色可能である.
18
頂点と辺と面の数の関係
次数5以下の頂点の存在
5色定理
平面グラフの頂点と辺と面の数の関係
1
2
3
4
5
6
|V|=8
|E|=12
|F|=6
|F|+|V|=|E|+2
19
Euler Polyhedron Formula
Euler Polyhedron Formula (証明)
|F|+|V|=|E|+ 2
1 + 2 = 1 + 2
辺の追加, 頂点は1つ増加
|F|+(|V|+1)=(|E|+1)+2
辺の追加, 頂点数は不変
|E|=1
(|F|+1)+|V|=(|E|+1)+2 20
連結平面グラフG(V,E)には, 次数5以下の頂点が存在する
1. 次数 (deg(v)) とは?
2. ¦E¦ 3¦V¦-6
3. Σdeg(vi)=2¦E¦
4. min{deg(v)¦v V} 5
21
(証明の方針)
頂点の次数とは
deg(v)=|{w∈V|(v,w)∈E}|
v
deg(v)= 8
22
連結平面グラフG(V,E)に対して, ¦E¦ 3¦V¦ - 6
● FiをGの面とし, |Fi|を構成する辺の数とする
と, |Fi|≧3 (i=1,…,|F|)より,Σ|Fi|≧3|F|
● 一方, 1つの辺は2つの面に対して構成辺とな
り得るのでΣ|Fi|=2|E|. よって,
2|E|≧3|F|=3(|E|+2-|V|).
● これを整理して,|E|≦3|V|-6 が導かれる.
23
連結平面グラフG(V,E)に対して, min{deg(v)¦v V} 5
● 全ての頂点viの次数deg(vi)が6以上とすると,
Σdeg(vi)≧6|V|
● 一方, 次数の和は辺の2倍なので, Σdeg(vi)=2|E|
● これらから, |E|≧3|V|が導かれるが, これは, 先の
命題 |E|≦3|V|-6に反する.
24
次数5以下の頂点の存在
連結平面グラフG(V,E)は5彩色可能 (5色定理)
25
(5彩色の手続き)
1. 次数5以下の頂点を除いて小さなグラフにする.
2. 小さなグラフを5彩色する.
3. 取り除いた頂点を戻して色を付ける.
注. 5彩色する手続き(プログラム)の存在が,
5彩色可能であるという数学の証明に対応する.
本州地図の色分け
26
本州(関東近辺)の県
の隣接関係をグラ
フにしてみました.
5色での塗り分けを
考えます.
小さい問題に分解するために, 群馬県, deg(群馬県)=5 を除去します.
本州地図の色分け
27
平面グラフには必
ず次数5以下頂点が
存在することが知
られています.
小さい問題に分解するために, 山梨県, deg(山梨県)=5 を除去します.
本州地図の色分け
28
埼玉県も次数が5以
下になったので除
去します.
本州地図の色分け
29
全ての頂点の次数
が4以下になると,
5色で色分けするの
は簡単です.
やってみましょう.
本州地図の色分け
30
小さな問題から大き
な問題へ戻っていき
ます.
埼玉県を戻します.
本州地図の色分け
31
周囲の色が4色以下
の場合は, 戻した点
へ5色目を使えば良
いので簡単です.
本州地図の色分け
32
小さな問題から大き
な問題へ戻っていき
ます.
山梨県を戻します.
本州地図の色分け
33
周囲の色が4色以下
の場合は, 戻した点
へ5色目を使えば良
いので簡単です.
本州地図の色分け
34
小さな問題から大き
な問題へ戻っていき
ます.
群馬県を戻します.
本州地図の色分け
35
群馬県の周囲で5色
使っているので, 色
が足りません!
どうしましょう?
本州地図の色分け
36
福島県を埼玉県と同
じ色にして, 元福島
県に使っていた色を
群馬県で使うことに
します.
色の付け替えが, いつでも出来るのか? 証明が必要です.
完成!
5色定理の証明(1) 次数5以下の頂点の色の決定
v
G - v
deg(v) 4 deg(v) = 5 で 周囲の色が4色以下
G - v
v
37vに塗る色が残っている!
v
v1
v2v3
v4 v5
時計廻りに番号をつける ケンプ鎖 H(i,j)
i
j
38
deg(v) = 5 で 周囲の色が5色
5色定理の証明(2) 次数5以下の頂点の色の決定
Case (1) H1(1,3) H3(1,3)
v v1
v2v3
v4 v5
H1(1,3)
H3(1,3)
H1(1,3) ≠ H3(1,3)
39
H1(1,3) H3(1,3) (解決法)
v v1
v2v3
v4 v5
H1(1,3)
H3(1,3)
H1(1,3) ≠ H3(1,3)
40
Case (2) H1
(1,3) = H3
(1,3)
v v1
v2v3
v4 v5
H1(1,3)
H3(1,3)
H1(1,3) = H3(1,3)
41
H1(1,3) = H3(1,3) (解決法)
v v1
v2v3
v4 v5
H4(2,4)
H2(2,4)
42H1(1,3) = H3(1,3) ならば, 必ず H2(2,4) H4(2,4) です.
H1(1,3) = H3(1,3) (解決)
v v1
v2v3
v4 v5
H1(1,3) = H3(1,3) ならば, 必ず H2(2,4) H4(2,4) です.
H4(2,4)
H2(2,4)
43
本州地図の色分け (再び)
44
H福島
(●,●)≠H埼玉
(●,●)
H栃木
(●,●) = H長野
(●,●)
ケンプ鎖が繋がっていないので, 福島県に埼玉県と同じ色を塗ることが可能です.
栃木と長野は同じ色
に出来ないときには
必ず福島と埼玉を同
じ色に出来ます.
ちゃんと証明して安心・安全
— 帰納的考え方が証明の基本 —
45
René Descartes

philosopher 

(1596-1650, France)
46
「方法序説」 (1637年)
Discours de la méthode pour bien conduire sa raison et chercher la vérité dans les sciences
(1) 自己の精神に照らして疑う余地のないまでに明晰であることのみを真として受け取ること.
(2) 大問題を小さな問題に分割すること.
(3) 単純な問題から複雑な問題へと考察を進めること. そして
(4) 一つ問題を解決するごとに再検査すること
[*] http://www-history.mcs.st-andrews.ac.uk/history/Mathematicians/Descartes.html
[13] P.J.Davis, R.Hersh, 椋田直子訳, デカルトの夢, (株)アスキー, 1998, 320pages.
「数学的帰納法」
帰納的な考え方 (1)
47
帰納的な考え方 (2)
48
49
帰納的な考え方 (3)
50
帰納的な考え方 (4)
51
帰納的な考え方 (5)
Euler Polyhedron Formula (証明)(再)
|F|+|V|=|E|+ 2
1 + 2 = 1 + 2
辺の追加, 頂点は1つ増加
|F|+(|V|+1)=(|E|+1)+2
辺の追加, 頂点数は不変
|E|=1
(|F|+1)+|V|=(|E|+1)+2 52
グラフ理論の多くの定理たちは帰納法で証明されます.
定理 1 (Euler Polyhedron Formula)
連結平面グラフ G(V, E) に対して |F| を面の総数とするとき,
|F| + |V | = |E| + 2
が成り立つ.
定理 2 (Minimum Degree Bound)
連結平面グラフ G(V, E) に対して
min{deg(v)|v ∈ V } ≤ 5
が成り立つ. ただし, deg(v) = |{e ∈ E|∃w ∈ V ; (v, w) ∈ E}| とする.
定理 3 (Five Color Theorem)
全ての連結平面グラフ G(V, E) は 5 彩色可能である.
53
頂点と辺と面の数の関係
次数5以下の頂点の存在
5色定理
54
55
機械検証でもっと安心・安全
— プログラムの正しさや証明の正しさを検証する —
56
5色定理から4色定理へ
Wikipedia (←リンク)
1879年 ケンプが部分的に証明
1976年 アッペルとハーケンが1405個の不可避集合に対してコンピュータによ
る演算を利用して証明
1996年 ロバートソンがアルゴリズムとプログラムを改良(不可避集合を633個へ)
2004年 ゴンティエが定理証明支援系Coqを用いた検証可能な証明を与えた

A computer-checked proof of the Four Color Theorem
場合分けの多い証明は, その正しさの検証には, 定理証明支援系を使うと便利で確実である.
機械検証可能な証明の基本は, 帰納的定義, 帰納的証明である.
57
定理証明支援系 Coq
58
Coq はフランス INRIA で開発された証明支援系です.
誤りがあると大きな損害や危険が生じる実社会で利用されるプログ
ラムの正当性を限られたデータに対する試験実行による確認ではな
く, 論理的に完全に証明し検証するために利用されます. この定理証
明支援系は, 数学定理の証明検証にも利用することが出来ます.
Coq を用いて構成された数学定理の形式証明:
•Gonthier らによる平面グラフの四色定理 (2004),
•Gonthier らによる群論の奇数位数定理 (2012),
•Affeld らによるシャノンの定理 (2012),
•Mahboubi らによるアペリーの定理 (2014).
ケプラー予想
59
ケプラー予想は「3次元空間に球を最も密度高く詰める配置は六方充填配置である」という予想
• 1998年, Halesにより計算機を使って5128個の馴グラフに対応する充填密度をJava言語で
書かれたプログラムで調べ尽くして証明されたと言われているが, それが正しいのかは人手では
検証出来なかった.
• 2006年, Nipkowらが定理証明支援系Isabell/HOLを用いて場合分けは, 2771個の馴グラフ
で十分であることを示す.
• 2014年8月, HalesらのFlyspecプロジェクトは定理証明支援系HOL Lightによるケプラー
予想の機械検証可能なすべての証明を発表した.
cf. 数学セミナー2014年12月号「ケプラー予想の計算機による証明と検証について」
まとめ
• 計算機は数の計算だけでなく, 図形の接続関係(グラフ)も取り
扱うことが可能です. [グラフデータ構造とグラフ理論]
• 現実の問題を数学の問題に翻訳し, 計算機を用いてプログラム
で解決します. (後半を意識した前半が重要です!)
• 数学の定理を証明することと, 与えられた問題を解決するプロ
グラムを書くことが同じ概念(帰納法など)に基づいています. 

(cf. デカルトの方法序説)
• すなわち, (その概念に基づく)プログラミングの練習は数学の
問題解決能力の育成にも重要です.
• 近年は、プログラムの正しさの検証だけでなく, 数学の定理の
証明の正しさの検証にも定理証明支援系が利用されます. 60

計算機を用いて数学の問題を解くということ