ALifeワークショップ|初心者だけどライフゲームできちゃった に参加させていただきました

スポンサーリンク

2019/05/29(水)にMDR株式会社で開催された、「ALifeワークショップ|初心者だけどライフゲームできちゃった」に参加させていただきました。そこで得られた知見を共有したいと思います。
https://aifashion.connpass.com/event/131912/

参加した理由

「人工生命(Artificial Life)の基本であるライフゲーム」に関する知識は皆無だったものの、おそらくPythonの短いコードだけで実現できそうなので興味が湧いたということ。
それと、Pythonのオンライン実行環境「Google Colaboratory」を使ったことがなかったので、どんなものなのか触って見たかったので。

事前準備

Google Colaboratoryの使い方まとめ
https://lecture.blackdesign.jp/88

Google Colaboratoryは、思っていたよりも優れものでした。それなりのお値段のGPUを(時間制限はありますが)自由に使用できることにびっくりしました。しかも無料。
Jupyter notebookベースなので、とっつきやすく、勉強コストも非常に低かったです。

ワークショップ内容

ライフゲームとは
ライフゲームでは初期状態のみでその後の状態が決定される。碁盤のような格子があり、一つの格子はセル(細胞)と呼ばれる。各セルには8つの近傍のセルがある (ムーア近傍) 。各セルには「生」と「死」の2つの状態があり、あるセルの次のステップ(世代)の状態は周囲の8つのセルの今の世代における状態により決定される。
セルの生死は次のルールに従う。
https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC%E3%83%A0

こちらのライフゲームの初期設定配置および、生死のルール、隣接するセルの重みなどを設定することで、あたかも有機物のように振る舞うセルの動きを観察することができる。

17-1. ライフゲーム(正方形、基本ルール)
https://vigne-cla.com/17-1/

17-2. ライフゲーム(正方形、HighLife)
https://vigne-cla.com/17-2/

17-3. ライフゲーム(正方形、重み付き)
https://vigne-cla.com/17-3/

17-4. ライフゲーム(六角形、基本ルール)
https://vigne-cla.com/17-4/

非常に丁寧な解説ページとコードを用意していただいたので、スピーディに理解を含めることができた。
またコード内にも親切なコメントが書かれており、ルールや重み等をカスタマイズする時に役立った。

最初は正方形の並んだセルからスタートし、途中から様々な高度なやり方を進め、最終的には六角形のセルが並んだ状態で雪の結晶のような振る舞いをするライフゲームまで解説していただいた。
六角形は非常に複雑になりそうに思えたが、計算上は正方形のセルが並んだ2次元配列の状態から、一つ下の段を、1/2セルずらすことで実現していた。

まとめ

全体的にとてもわかりやすく説明していただいたので、理解を深めることができた。
遠方の方に向けたYouTubeLive配信もあるので、興味のある方はそちらもご覧ください。

イベント概要

https://aifashion.connpass.com/event/131912/
人工生命(Artificial Life)の基本であるライフゲームを書いてみましょう。ソースコードを配布しますので、初心者におすすめです。また、Pythonにおける計算の高速化(for文の避け方)も学べちゃいます。

2019/05/29(水)19:00 〜 21:00
会場 MDR株式会社

スポンサーリンク

シェアする