今回のテーマは「GAのPythonプログラミング」です。実際にCliffordというGAを扱えるライブラリを触ってみます。Google Colaboratoryを使うことでブラウザだけで始めることができます。
勉強会の内容
-
- Cliffordを題材に進めた。
- Cliffordの特徴
- GAが扱える。
- 一般次元を対象にしているように見える。
- 可視化する際には clifford.tools.g3c.GAOnline を使って描画用のスクリプトを出力して、GAOnlineに食わせる必要がある。GAViewerのようにインタラクティブに結果を可視化できないのでGAViewerである程度固まってから、プログラムをPythonで書くという使い方がよいかもしれない。
- 活発に開発されており、ドキュメントは十分に整備されているとは言えない。
- Numbaで高速化できるらしい。GPUの使用も視野に入っている様子だがよくわからない。
- Cliffordの基本的な演算子
- * 幾何学積
- ^ 外積、ウェッジ積
- | 内積(inner productと表現されているため、おそらく縮約ではない)
- Cliffordで注意が必要な箇所
- Clifford – Defects in Precidence に記載あり。
- 外積よりもプラス演算子が優先されるため、e1^e2+e2^e3はe1^(e2+e2)^e3の意味になる。正しくは、 (e1^e2) + (e2^e3)とするべき。
- Google Colaboratory
- JupyterをGoogleドライブ上で扱えるようにしたもの。実行もGoogleのサーバ上で可能。
- GPUも使える。Pythonのバージョンは2,3で選択できる。
- CliffordのドキュメントをGoogle Colaboratoryに一部コピペしたものも私が公開していて、気軽に試せるようになっている。勉強会中にはこれとCliffordのドキュメントを並べて参照していた。
- 参加者のctylimさんが前回のインバースキネマティクスの例をコード化して公開。
- AGACSE2018というGA界の大御所が集まるカンファレンスがつい2週間ほど前にあったらしい。
- 朝から夕方まで5日間の長いカンファレンス。
- Cliffordの中でAGACSE2018で発表された成果がすでに実装されている。
- CliffordのIssueの中でGA関連のソフトウェアのコミュニティを作ることが話題に上がっていて、カンファレンスで話題に上がる予定だったらしい。今後の動向を要チェック。
動画
次回
円のクラスタリングの際に円同士の距離をどのように計算するかが話題に挙がったため、これを調査することが次回のテーマです。
これまで10回にわたって実施してきた幾何学的代数勉強会ですが、定期開催はこれで終わりとなります。またなにか面白いトピックがあれば共有していこうと思いますのでこれからもよろしくお願いします。
また、先日、オフ会を実施しました。それぞれ違うバックグラウンドを持つ何もしなければ会うことができなかったであろうメンバーが、同じことに興味を持って出会うことで化学反応が起こっている感じがとても強く楽しかったです。