計算情報学2 鈴木泰博

第1回

概要

複雑システム系とは,下図で示されるように,分野横断的なさまざまな数理モデルによる構成される(指定教科書のp5を参照).

Complex_systems_organizational_map

複雑システム系のほとんどは,本コースでは連続—決定論系(微分方程式),連続—確率系(確率過程),離散—決定論系(ハイブリッド系),離散—確率系(抽象化学系,マルチエージェントシステム)の4種類の数理モデルで記述できる.”ほとんどは”と断っているのは,本コースでは複雑システム系の数理モデル化で重要なゲーム理論とセルラーオートマトンを含んでいないからだ.だが,ゲーム理論の解析を行うためには決定論や確率モデルを用いることになるため,本コース内容とまったくかけ離れたものではない.

 セルラーオートマトンは決定論的であるのに,その世界は膨大で宇宙のような広さをもつ.大変魅力的な話題ではあるが,本コースからは離れてしまうので扱わない.ただ素通りしてしまうのは,あまりに惜しいので,すさまじい例,を紹介しておく.以下はただのシューティングゲームにみえるだろうが,じつはセルラーオートマトンでつくられている.セルラーオートマトン愛がとまりそうにないので,これ以上,この話題で驀進しないようにブレーキをかけるが...ひとことだけ

セルラーオートマトンのなかでもっとも有名なLife Gameの提案者John Conwayが新型コロナウィルスによる肺炎で2020年4月11日に逝去された.脱線がとまらなくなるのでConway先生については...Wikipediaでもみてください.

J. Conwayは指定教科書の著者でSUNYの教授である佐山さんが開催したALife 2014(人工生命の,由緒ある,国際会議)で招待講演を行なった. Conwayはといったらセルラーオートマトン,Life Gameである.どんな講演をするのかとおもって乏しい英語力で聞き耳を立てていたら「決定論系なんかしょうもない!」と喝破しているように聞こえる...「そんなバカな」と自分の英語力を嘆きつつ,さらに聞き耳をたてていると「すべては偶有性だ.決定論的モデルをつかうなんてどうかしている」と,お孫さんの話なぞを持ち出して,最初から最後まで「偶有性,偶有性..」(汗).「あれ?このConwayはLife GameのConwayデハナイのかな??」とか混乱しているうちに講演終了.あっけにとられての質疑応答になった.質疑応答では質問者が”何とかセルラーオートマトンの話をさせよう”と四苦八苦している.しかしConway先生はそれにたいして「セルラーオートマトンなんざやっていたのは,ワシはどうかしてた」と言い放つ始末.みんなタジタジになってしまった.なんとも衝撃的だった(そにくらべて Karl Smithの講演はノスタルジーと,共にあれから誰もK.Smithを超えていないという物凄さに圧倒された).

 あとで佐山さんに聞いてみたら「Conwayが偶有性と言い出していることを知って,それで招待講演してもらおうと思った」とおっしゃっていた.なんともはや,かつて計算機がおそろしく高価だった頃Life Gameによって世界中の計算機センターを席巻して社会問題化してしまったハッカーぶりの面目躍如.過去の栄光をあっさりと捨て去って,自ら信じるところに立つ仕方に感銘をうけました....Life Gameの動画や論文は数多あるが,そのうちからひとつを紹介しておく.

Conway先生のご冥福をお祈り申し上げます.

閑話休題.

本コースでは以下の項目を扱う予定である.

  1. 複雑システム入門(微分方程式, 確率過程による数理モデル化)
  2. 決定論系の数値解法(非線形方程式,逐次近似,補間)
  3. 微分方程式の数値解法(数値積分,オイラー法,ルンゲ-クッタ法)
  4. 確率過程系の数値解法(Gillespie法, 確率過程系からの微分方程式の導出)
  5. ハイブリッド系(微分方程式系+確率過程系)でのオイラー法,R-K法

教科書

教科書としてニューヨーク州立大学のOpen Textbook(英文)を用いる.以下より参照・ダウンロード可能.

Introduction to the Modeling and Analysis of Complex Systems, Open SUNY Textbook

評価

小テスト(出席に相当),課題により評価する予定.小テストや課題提出などはすべてNUCT上で行う.小テスト,課題は締め切りがあり,締め切りをすぎた提出は受け付けない (提出にカウントしない).状況により通常の試験が可能であれば試験を行う.小テストの提出が3割以下の場合は「欠席」と評価する.

受講のため望まれる基礎知識(受講の目安)

このコースでは,数値解析法の入門を含むため,プログラミング言語にあるていど習熟していることが望まれます.また,初等的な解析学,線形代数,力学(力学系を含む)についての知識を前提とします.また,コース資料には英語が含まれます.

複雑システム入門

複雑システム(複雑系)とはなんでしょうか?

方程式(1)は,高等学校で習う,単振り子の運動方程式です.柱時計などでみられるように,単振り子は単純は運動で一般的な解析解を得ることができます.

もし,単振り子の途中に屈曲点を追加して二重振り子になったらどうなるでしょう?以下の動画で示されているとおり,とても複雑な運動(カオス)になります.ですが,二重振り子についても一般的な解析解を求めることができます

この「一般解が求まる」というのは大変重要なポイントです.なぜ重要なポイントなのでしょう?このことを考えるためのヒントとして次のビデオをみてください.


チェックテスト1

NUCTのチェックテスト1を行なってください.このテストには提出期限があります.提出期限を過ぎた場合には提出できません.その場合は「欠席」となりますので注意してください.


解けない複雑システム〜数理モデル化とシミュレーション

これまでの例は解析的にせよ近似的にせよ一般解がもとまる複雑システムでした.しかし,複雑システムは一般解が求められない場合がほとんどです.

たとえば,株価の変動は一般解がありません.株や為替の取引はティックとよばれる,為替や株式市場独自の価格変化の最小単位で示されます.たとえば株価100円の企業の1ティックは1円,株価1000円ならば1ティックは10円になります.これまでに,株式市場ではどの時間スケールにも線型性,もしくは低次元カオスがない(つまり予測できない)ことが知られています.為替市場では一種の”慣性力”のようなものがあり,予測は可能ですが,とても短い時間なので数ティック程度にしかなりません.

また,解けない複雑系の代表格が生命・人体です.その代わりに用いる手段が「数理モデル化とシミュレーション」なのです.複雑システム系を理解するためには

の両方が必要です.このコースでは主に数値計算・シミュレーションに重点をおきます.数理モデル化の詳細についてはSUNYの教科書のChapter1, 2を参照してください.ここでは,ごく簡単に数理モデル化について解説します.

数理モデルとは?

数理モデルとは“おもちゃ”です.おもちゃにもいろいろありますが,プラモデルや鉄道模型のような”模型”のことです.プラモデル,ラジコンや鉄道模型が好きな人にはおなじみなのですが,模型の中には スケールモデルといわれるものがあって,これは実際の飛行機,自動車,鉄道車両などの 縮尺だけを変えたものです .スケールモデル模型はおもちゃにもなりますが,空気抵抗などを調べる場合にはスケールモデルを使って 風洞実験を行います.

風洞実験を行うぐらいなので適当に作っているわけではもちろんありません.現物と同じような 特性を持つように,スケールモデルを作らなければ風洞実験することはできないわけなので, かなり厳密に スケールモデルを作るわけです. このコースで扱うモデルは.実際のモデルではなく,数値モデルです.

数値モデルには,微分方程式に代表されるような 決定論的なモデルと マルコフ過程のような 確率モデルがあります.本コースではこの両方を扱います.さらに,決定論モデルと確率モデルを 合わせた「ハイブリッド」と呼ばれるモデルがありますが これについても扱います .

微分方程式, 確率過程による数理モデル化

ではさっそく,数理モデル化を行なってみよう.このテーマをみると「なんか難しそうだな...」と気後れしそうになるかもしれないが,とても直感的で簡便な方法である population modelを紹介する,このモデルは人口動態や生態系,化学反応系など幅広い複雑システム系のモデル化に用いることができる.populationモデルの基本表現は以下の表にある増加,減少そして変化である.

表現記述の例
増加
減少
変化

以上の表現を組み合わせると,より複雑な表現をつくっていくことができる.具体的にはたとえば「aの増加とbの増加」は「」と記述することができる.これを参考にNUCTのチェックテスト2を行なってください.


チェックテスト2 NUCTの「小テスト」にあるチェックテスト2を行なってください.このテストは出欠に関わりますので必ず行なってください.


以上のpopulation modelによって,かなり複雑な現象までモデル化を行うことができるようになります.Population modelはのようなルールの集まりとなる.このようなルールによるモデルは「ルールダイナミクス」とよばれる.ルールダイナミクスを日本語に強引にすると「規則力学系」となる.実は,規則力学系という言い方はあまりされず,多くの場合はルールダイナミクスとかルール力学系とよばれる.ここでは「力学系」という”言葉”を抽出したかったので,日本語にしてみたのだ.

さて,力学系とはなにか?古典力学で学んだ内容だが,もういちど復習すると,力学系とは「状態が時間とともに変化する系」をさす.ルール力学系では,ルールの適用とともに系の状態が変化するため,ルールの適用がいわば”時間”となって,系の状態が時間変化していく.なんとなく「わかったような,よくわからないような」もやっとした状態であろうから,以下の演習を行なってみてくれたまえ.これは自分のために行うので,提出の必要はない.とても簡単な演習問題だけど,後で使うので必ず手を動かして演習を行うこと!

演習:以下のルール力学系の状態変化を示せ

1) ルール{}, 初期状態 a,a

2) ルール{}, 初期状態 a,a

確率過程モデル

さて,これで確率過程モデルはほぼ完成した(えーっ!).さっそくシミュレーションを行なってみよう.とはいってもプログラミングを行う必要はない,必要なのはコインが1枚だ.演習 1)のルール力学系をもちいた,確率過程のシミュレーションを第1回の課題とする.NUCTを介して提出しなさい.以下に課題を示す.

提出課題

1) 演習 1)のルール力学系について,コイントス(10円玉など)をして表ならば最初の規則,裏ならばもう一方の規則を適用させ,シミュレーションを行い,結果をまとめたものをNUCTに添付ファイルとして提出しなさい.

2) 自分でルール力学系をつくり,サイコロなどをもちいて,シミュレーションを行い結果をまとめて報告しなさい.その際に分析・考察などがあるものは高く評価する.

厳格なきまり:守っていない場合は提出と認めない

今回は以上です.次回は今回作成した確率過程モデルを微分方程式に変換する仕方を紹介して,第2回の内容にはいります.

おつかれさまでした