東京大学教員の著作を著者自らが語る広場

水色の表紙に数字のデザイン

書籍名

プログラムで愉しむ数理パズル 未解決の難問やAIの課題に挑戦

著者名

伊庭 斉志

判型など

224ページ、A5判

言語

日本語

発行年月日

2016年8月15日

ISBN コード

978-4-339-02859-1

出版社

コロナ社

出版社URL

書籍紹介ページ

学内図書館貸出状況(OPAC)

プログラムで愉しむ数理パズル

英語版ページ指定

英語ページを見る

本書は、プログラミングを通して数理パズルを楽しみ、その背後にある考えや応用につながるアイディアを理解し、シミュレーション実験と思考実験の習熟を目指しています。
 
学生時代にはプログラミングが好きでも得意でもなかった筆者は、自分のためにプログラムを書き始めて、その面白さに魅入られました。博士課程で人工知能の一分野 (「幾何定理の自動証明」) を研究テーマとしてコンピュータを利用するうちに、コンピュータは道具でありながら、かつ創造的な手段であることに気が付いたのです。実験したり計算したりすることは、偉大な数学者においても重要な研究のよすがであったようです。ガウスやオイラーが現代に蘇ったとすれば、きっと彼らもコンピュータを駆使していたと思います。
 
そのため本書では、さまざまな数理的なトピックをプログラミングの実行を通して理解するように解説しています。その内容は、数学の未解決問題、確率パズル、数理パラドクス、中立進化のメカニズム、数理最適化など多岐にわたります。人工知能や人工生命の最新のトピックへの関連も紹介しています。これらの話題はそれぞれ独立なので、読者は興味を持った問題から読み進めていくことをおすすめします。
 
特に後半では、人が解くには難しいため、プログラムの力を借りてステップ・バイ・ステップで解 (最適解や近似解) に近づけていく方法をとります。それによって問題の背後にある数学的意味をより容易に読み解けるようになります。例えば確率の部分では、実際にコンピュータで実験を繰り返して状況を再現することで、(理解することがやや難しい) ベイズ的な考え方をわかりやすく説明をします。組み合わせや最適化では、人が考える手法や既存の方法の長所・短所を順序立てて説明し、どのように効率が違うのかをシミュレーションで検証したのち、よりAI的な手法での解法を解説します。
 
本書のもとになったのは、筆者の大学でのプログラミングや人工知能などの講義ノートです。これらの講義では、毎回優れたプログラムや感心させられるレポートを目にすることが少なくありません。また、まったく講義と関係ない一般の方々 (社会人や他大学の学生など) から解答を送られてくることもありました。ホームページをみて課題内容に興味を持たれたそうです。
 
本書で説明するデモやプログラムは筆者の研究室のホームページからダウンロード可能になっています。読者は是非自ら実験して、プログラミングで愉しみながら学んでください。ただしこれらのプログラムは解答の一例かもしれません。そのためダウンロードして実行するだけではなく、自分でプログラムを修正 (できれば作成) することを推奨します。それによりプログラムを通して考えること、さらには人工知能や人工生命につながるようなプログラムを実現することの楽しさや奥深さを実感できると期待しています。

 

(紹介文執筆者: 情報理工学系研究科 教授 伊庭 斉志 / 2020)

本の目次

1. 数で遊ぼう
1.1 素数を生成する式
1.2 素数を判定するアルゴリズム
1.3 素数の不思議
1.4 繰返しを極めよう
1.5 未解決問題の予想に挑戦しよう
1.6 整数になる不思議
1.7 三角形を考える
 
2. 確率の不思議を見てみよう
2.1 パスカルの問題:確率論の誕生
2.2 ランダムな3点が鋭角三角形になる確率は?:答えが一つとは限らない
2.3 入れ替わっても元の位置にない確率は?
2.4 コペルニクスの原理と未来の予測
 
3. 確率の難問に挑もう
3.1 ベイジアンになろう
3.2 3囚人の問題:私は幸せになったのか?
3.3 モンティ・ホール問題:一攫千金を狙え
3.4 Kruskalカウント:マジックは好きですか?
 
4. 論理パズルを読み解く
4.1 100囚人の問題:プログラミングに群論を
4.2 truel:3人で決闘をしてみたら…
4.3 13日の金曜日は本当に多いのか?
4.4 三段論法推論:ソクラテスは死ぬか?
 
5. 進化の不思議を見てみよう
5.1 モラン過程
5.2 遺伝子の固定確率
5.3 進化速度
5.4 中立仮説
5.5 中立進化を実験してみよう
5.6 中立仮説と進化速度
5.7 系統樹の作成
5.8 最尤法による推定方法
 
6. 最適化の難問に挑戦しよう
6.1 秘書問題:一番よい秘書さんを選ぶには?
6.2 分割問題:公平に分割するのは難しい
6.3 荷物をどう詰めるか?
 
付録:プログラム
引用・参考文献
練習問題のヒントと解答例
 

関連情報

本書で紹介したデモ・ソフトウェアの紹介ページ:
http://www.iba.t.u-tokyo.ac.jp/support/index.html

このページを読んだ人は、こんなページも見ています