このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

あわてて両モナドやメイヤー代数を復習する

「理屈としては面白いけど、はたして実務的に使うことがあるのかな?」と思う概念がありますよね。モナドなんかも、かつてはそのようなモノだったかもしれません。しかし、モナドが実務上も大変に有用なことは、もはや説明しなくてもいいでしょう。で、僕はモナドじゃ不足だなーと思って、両モナドとかメイヤー代数とかを考えていたのですが、お手軽で卑近な応用を想定していたわけじゃありません。ところがどうも、これは身近でしかもある程度の適用範囲を持つ応用があるようです。

それであわててザザッと復習したり、問題点を思い出したりしよう、と。

Cは対称とは限らないモノイド圏だとして、モノイド積は単に併置で表すことにします。Iはモノイド単位。モノイド圏Cのなかのモノイドとは、対象Aと射 η:I→A、μ:AA→A の組み合わせ (A, η, μ) で、結合律と左右の単位律を満たすものでした。同様に、C内の余モノイド(コモノイド)は、対象Bと射 ε:B→I、δ:B→BB の組み合わせ (B, ε, δ) で、余結合律と左右の余単位律を満たすものです。

Cが、別な圏Dの自己関手の圏 C = End(D) = [D, D] のとき、関手結合をモノイド積とする非対称モノイド圏C内のモノイドD上のモナドで、C内の余モノイドはD上の余モナド(コモナド)です。A = (A, η, μ) がD上のモナド(=C内のモノイド)のとき、そのクライスリ圏 Kl(D, A) が決まります。同様に、B = (B, ε, δ) がD上の余モナド(=C内の余モノイド)のとき、その余クライスリ圏 CoKl(D, B) が決まります。

同一の台対象Aの上に、モノイドと余モノイドの構造が同時に乗っかった代数系双モノイドです。双モノイドは、そのままではクライスリ構成とあまり相性がよくないようです。そこで、双モノイドと類似の概念でクライスリ構成(クライスリ拡張)が可能な代数系として、両モノイドとメイヤー代数を考えました。

両モノイドは、モノイド A = (A, η, μ) と余モノイド B = (B, ε, δ) があって、さらに射 β:AB→BA が備わった体系 (A, B, β) で、βがη, μ, ε, δのそれぞれに対して「ベックの分配法則」になっているものです。「分配法則」を満たすではなくて、「なっている」でして、βが分配法則の公理を満たす、ということです。分配法則の公理を書き下すと面倒くさいですが、適当な条件下で交差した紐がスルリと抜けるハナシです。

C = End(D) のとき、C内の両モノイドとしてD上の両モナドが定義できて、少し頑張って紐の計算をすると両クラスリ圏が構成できます。両モナドの両クライスリ圏は、モナドのクライスリ圏と余モナドの余クライスリ圏のストレートな拡張になっています。このへんは、なかなかにうまくいった話です。

モナドはスンナリとクライスリ拡張(両クライスリ圏)に結び付くのですが、残念ながら実用上はあまり面白い構造とは言えません。その理由は、モナドAと余モナドBの関係が薄いからです。β:AB→BA という順序交換の射はありますが、AとBは「ほとんど無関係」と言ってもいいくらいです。両モナドは、登山のベースキャンプのような役割として重要ですが、それ自体は構造が弱すぎて応用に直結はしないようです。

そこで、圏C内のモノイドと余モノイドが強く結び付いた構造としてメイヤー代数を考えました。メイヤー代数は、余モノイドの圏のなかの加群とでもいうべき構造です。A = (A, ε, δ) は余モノイド、M = (M, ε, δ, η, μ, β) は双モノイドです。(M, η, μ) はモノイド構造で、β:MM→MM は、2つのMの順序交換を与える射です。AM→MA という順序交換を与える射(これもβで表します)と、MのAへの作用(スカラー乗法)α:AM→A が、結合律と単位律、順序交換を使った双モノイドの法則(と類似の法則)を満たすとき、それがメイヤー代数です。

メイヤー代数は、AとMが緊密に関係した構造です。この結び付きがどうも強すぎるときがあります。小規模で局所的(非分散的)なデータ操作を記述するときはいいのですが、情報が部分的だったり、時間的な遅れがあったり、完全な制御が無理だったり、分散して大規模だったり、という状況の記述には向きません。

メイヤー代数をメイヤー加群にまで拡張すると、幾分か応用範囲が拡がります。しかし、メイヤー加群も係数域としてメイヤー代数を使っているので、メイヤー代数の制限を引きずっています。全然道具が足りてない感じです。

それでも、冒頭に書いたように、ある範囲の事例においては、両モナドとメイヤー代数がうまく働くことは分かってきたので、これらの実験と利用のなかでまた考えることにします。