人類は古代の占いに起源を持つ「ランダムさ」を追求し、蓋然性の概念を発展させ、確率論や統計学の発展を促しました。現在では機械学習の基礎概念としても不可欠です。ランダムさの一つである「乱数」は単純な数式で表せるものの、真の乱数列の生成は未解決の課題です。本実験では、その歴史を概観し、ランダムさの追求が情報科学や計算機科学とどのように関わっているのかを体感してもらうことを目標としています。また、研究発表方法(レポートの書き方、発表の仕方)に関しても対面で指導を行います。
開講学期: 春ABC 水3・4限, 金5・6限
担当教員:鹿野 豊 ( yshikano_at_cs.tsukuba.ac.jp )
受入人数:12 名
開講場所:対面 または オンライン (Teams) [対面実施日程は下記を参照]
成績評価:課題1, 2, 最終課題に関するレポートおよび発表
Teaching Assistant:清水 忠臣 (物理情報システム研究室D1)
「ランダムな世界」を探求してみたい人
様々なプログラミング言語でプログラムを実装してみたい人 (この際、マイナーなプログラミング言語を学んでみようとする人)
数理的能力(特に数理統計学 [仮説検定] )を駆使してみよう (または学んでみよう) と思っている人
詳細は 1回目 4/23 (水) [オンライン: Teams] で説明しますので、初回のオンライン授業は必ず出席してください。初回の授業はリアルタイムオンラインですが、復習のため、授業動画を残します。
授業に関する連絡は基本的に Teams 上で行います。
以下の対面実施回以外に関しては、分からないことがあったら、授業時間内に Teams 上にアクセスしてください。担当教員または Teaching Assistant が対応します。
9回目から17回目までで、個別に課題1のレポートを基にしたレポート指導をオンラインで行います。スケジュールは Teams 上でお知らせします。
[オプション] 課題を深堀し、最終的に研究成果としてまとめたい場合、夏休み中に指導します。
6回目 5/14 (水) @3F902
7回目 5/16 (金) @3F902
8回目 5/21 (水) @3F902
18回目 6/25 (水) @3F902
19回目 6/27 (金) @3F902
26回目 7/23 (水) @3Aアカデミックラウンジ [3A棟1階食堂横]
27回目 7/25 (金) @3Aアカデミックラウンジ [3A棟1階食堂横]
Donald E. Knuth, The Art of Computer Programming Volume 2 Seminumerical Algorithms Third Edition 日本語版 (アスキードワンゴ, 2015).
William H. Press, ニューメリカルレシピ・イン・シー 日本語版: C言語による数値計算のレシピ (技術評論社, 2013).
伏見正則, 乱数 (筑摩書房, 2023) ちくま学芸文庫
伊理正夫, 藤野和建, 数値計算の常識 (共立出版, 1985)
モンテカルロ法を用いている応用事例について調べ、その計算原理も含めてレポートにまとめ、発表せよ。
乱数検定・生成のアルゴリズムを選択し、様々なプログラミング言語で実装し、本実験用に用意された GitHub 上でそのプログラムを公開せよ。また、乱数生成・検定に対する能力に関する実装結果について発表せよ。また、あるプログラム言語で実装できない場合、その理由を検討し、発表せよ。
複数のプログラム言語で実装することを推奨する。
どんなプログラム言語で良いし、自分自身で実装したプログラム言語を用いても良い。
他のプログラム言語を呼び出す形のものでなく、なるべく選んだプログラム言語だけで実装してください。
以下のテーマから好きなものを選び、レポートし、最終課題発表会で発表せよ。
課題1 で調べたモンテカルロ法の応用事例を自分自身でなるべく多くのプログラム言語で実装し、その結果に対して考察を加えよ。
課題2 と同じ課題を5つ以上のプログラム言語で実装し、プログラム言語間の比較をせよ。
物理乱数生成器について調べ、その実装方法を検討し、可能であれば実装せよ。
量子乱数生成器について調べ、その実装方法を検討せよ。
乱数検定・生成・抽出のアルゴリズムについての数理的な観点から考察せよ。
「The Art of Computer Programming Volume 2 Seminumerical Algorithms Third Edition」第3章 乱数 の演習問題の中から問題番号の後ろが [30] 以上になっている問題を選び、それを解け。
Teams 上にある未解決問題リストに挑戦せよ。
担当教員に最終課題のテーマを提案し、それを実行せよ。