檜山正幸のキマイラ飼育記 このページをアンテナに追加 RSSフィード Twitter

キマイラ・サイトは http://www.chimaira.org/です。
トラックバック/コメントは日付を気にせずにどうぞ。
連絡は hiyama{at}chimaira{dot}org へ。
蒸し返し歓迎!
このブログの更新は、Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama
ところで、アーカイブってけっこう便利ですよ。

2008-01-21 (月)

マスロフ式算数がやたらに面白いんですけど

| 14:11 | マスロフ式算数がやたらに面白いんですけどを含むブックマーク

インド式算数って、速算処方箋の寄せ集めでしょ。ロシア発のマスロフ式算数は、本質的に新しい演算を扱う奧が深い算数ですよ。マスロフ式算数を学んでも速算の役には立たないけど、背後にある数理的構造/現象の神秘に触れられるかもよ。

内容:

  1. マスロフ式算数の由来
  2. maxとminの算数
  3. 足し算的演算
  4. 足し算的演算の実例
  5. マスロフ和
  6. マスロフ和の極限
  7. プランク定数と脱量子化

●マスロフ式算数の由来

1980年代に、ロシアの物理学者マソロフ(Victor P. Maslov)により始められた脱量子化(Maslov Dequantization)という手法があり、現在では、数学、物理学、工学の広い範囲に影響を与えてます。マソロフ脱量子化の入り口は、変形した足し算を含む計算です。この計算は、普通の算数と同じ簡単な法則に従いますが、エキゾチックな世界を記述する道具になります。

このエキゾチックな算数の構造は、高校生なら十分に理解できるだろうし、指数計算の良い練習問題にもなると思います。というわけで、脱量子化された足し算を紹介します。

●maxとminの算数

これから「数(すう、かず)」と言ったら、0より大きい実数の意味だとします。正の数だけで、ゼロも負の数も考えません。

2つの数a, bに対して、max(a, b)は「aとbの大きい方」だとします。正確に言うと、「小さくない方」です。a = b のとき、「大きい方」はありませんからね。同様に、max(a, b, c)は、「a, b, cのなかで一番大きい数」とします。これも、a = b や a = b = c のときを考えると、「一番大きい」は不適切ですが、細かいこと言わなくてもいいですよね。

maxに関して次が成立します。

  1. max(a, b) = max(b, a)
  2. max(max(a, b), c) = max(a, max(b, c))
  3. a×max(b, c) = max(a×b, a×c)

一番目は当たり前。2番目は、max(max(a, b), c) も max(a, max(b, c)) も、max(a, b, c) だからいいですね。3番目は、「aが正の数で、b≦c ならば、a×b≦a×c」が根拠になります。

max(a, b) を a∨b と二項演算記号で書いてみると、

  1. a∨b = b∨a
  2. (a∨b)∨c = a∨(b∨c)
  3. a×(b∨c) = (a×b)∨(a×c)

となるので、足し算に関する次の法則と同じ形になります。

  1. a + b = b + a (交換法則;可換律)
  2. (a + b) + c = a + (b + c) (結合法則;結合律)
  3. a×(b + c) = a×b + a×c (分配法則;分配律)

「aとbの小さい方」を min(a, b)、あるいは二項演算記号を使って a∧b と書くことにすると、やはり同じ法則が成立します。

  1. a∧b = b∧a
  2. (a∧b)∧c = a∧(b∧c)
  3. a×(b∧c) = (a×b)∧(a×c)

●足し算的演算

maxを表す∨と、minを表す∧を二項演算と考えると、ほぼ足し算と同じように扱えます。正確に言えば、交換法則、結合法則、(掛け算に対する)分配法則が成り立っている、ということです。

なにか二項演算○があったとき、次の法則が成り立てば、○は「ほぼ足し算」と言っていいでしょう。

  1. a○b = b○a
  2. (a○b)○c = a○(b○c)
  3. a×(b○c) = (a×b)○(a×c)

∨と∧は「ほぼ足し算」あるいは「足し算的演算」の例でした。本物の足し算は当然に「足し算的演算」です。さて、他に「足し算的演算」はあるでしょうか?

この問題は、2変数の関数fで、次を満たすものを探す問題になります。

  1. f(a, b) = f(b, a)
  2. f(f(a, b), c) = f(a, f(b, c))
  3. a×f(b, c) = f(a×b, a×c)

興味がある人は、次を読む前に、そのようなfを探してみてください。

●足し算的演算の実例

足し算的演算の例はけっこうあります。a×b をa*bと書き、スラッシュ「/」は割り算(分数)、sqrtは平方根だとして:

  1. sqrt(a2 + b2)
  2. a + b + 2*sqrt(a*b)
  3. a*b/(a + b)
  4. a*b/sqrt(a2 + b2)

などは足し算的演算になります。

興味がある人は、これらが実際に、交換法則、結合法則、(掛け算に対する)分配法則を満たすことを確認してみてください。

●マスロフ和

前節の実例は、直観や努力で見つけたものではありません。実はズルしてます。足し算的演算をたくさん作りだす一般的な方法があるんです。

2つの数aとbに対して次の式を考えます。

  • (ak + bk)1/k

ここでkは定数です。kを決めるごとに、ひとつの足し算的演算が生み出されます。例えば、k = 2, k = 1/2, k = -1, k = -2 とすると、上の式は次のようになります。

  1. (a2 + b2)1/2
  2. (a1/2 + b1/2)2
  3. (a-1 + b-1)-1
  4. (a-2 + b-2)-1/2

これが、前節の4つの実例なのです(少し計算すれば、同一なのがわかります)。

(ak + bk)1/k を二項演算の形に書いてみましょう。

  • a [+]k b = (ak + bk)1/k

二項演算 [+]kk-マスロフ和と呼びましょう*1。1-マスロフ和は普通の足し算; a [+]1 b = a + b です;2-マスロフ和は平方和の平方根;a [+]2 b = sqrt(a2 + b2) ですね。

k = 0 のときはk-マスロフ和が定義できません(1/0が定義できないので)。そうでなければ、kが負のときも含めて、任意のkに対してk-マスロフ和が定義できます。そして、kの値が何であっても次が成立します。

  1. a [+]k b = b [+]k a
  2. (a [+]k b) [+]k c = a [+]k (b [+]k c)
  3. a×(b [+]k c) = (a×b) [+]k (a×c)

このことを示すのに必要なのは、指数法則「xα×xβ = xα+β xα×yα = (x×y)α、(xα)β = xα×β」だけです。3番目の分配法則を示すときは、aを(ak)1/k に置き換えるのがミソです。

●マスロフ和の極限

マスロフ和 [+]k のkを決めるごとにひとつの足し算的演算が決まります。その足し算的演算と掛け算で普通に算数ができます。つまり、kの値をいろいろ変えれば、それに応じてたくさんのマスロフ算数が手に入ります。

ところで、冒頭で挙げたmaxとminはマスロフ和では表現できません。maxとminの算数はマスロフ算数とは全然別物なのでしょうか?

実はなんと、max算数とmin算数は、マスロフ算数からの極限移行で得られるのです。マスロフ和 [+]k に含まれるkをどんどどん大きくしていくと、[+]kはmax演算に近づきます。これは、k→+∞の極限で、マスロフ和はmax演算になってしまう、ということです。象徴的に [+]+∞ = ∨ と書いてもいいかもしれません。

だいたいの雰囲気を説明してみます。a > b > 1 としましょう。aとbの差はごくわずかでもかまいません。kを大きくすると、akもakもどんどん大きくなります。が、akのほうがより速く大きくなり、bkとの差は開くばかりです。kが十分大きくなると、ak + bk ≒ ak となります。つまり、bk は無視してもよくなります。

わずかの格差でもそれが拡大し、小さい方の存在は無視されてしまう … イヤな世の中ですね。実際、kが大きいときのマスロフ和は、小さいほうを無視する“イヤな演算”になります。ak + bk ≒ ak なので、

  • (ak + bk)1/k ≒ (ak)1/k = a

つまり、

  • a [+]k b ≒ a

となり、[+]kは大きい方を選ぶ演算になります。

a > b > 1 という条件をはずしても、格差が拡大して小さい方が無視される現象に変わりはなく、k→+∞ではa, bがなんであっても、a [+]k b → max(a, b) となります。

いくつかの数 a1, a2, ..., an に対して、マスロフ和による総和 a1 [+]k a2 [+]k ... [+]k an は、k→+∞で、max(a1, a2, ..., an)に移行します。つまり、ナンバーワンしか生き残れない状況になります。あー、せち辛い。

k→-∞だと、事情が逆転します。象徴的に書けば [+]-∞ = ∧ 。[+]-∞では小さい方が支配的となり、大きい方が消え去ります。大小のスケールが逆転してますが、格差拡大のメカニズムは同じです。スケールの逆転(逆数を取る)に関しては次の公式が成立します。

  • (a [+]k b)-1 = a-1 [+]-k b-1

我々がいつも使っている足し算は、実は公平な足し算だったのですね。マスロフ和では、パラメータkにより不公平さを持ち込むことになります。k = +∞、k = -∞ では、究極的に不公平な足し算になります。それがmaxとminです。

●プランク定数と脱量子化

k = 1/h と置けば、マスロフ和は次の形になります。

  • (a1/h + b1/h)h

kでもhでも本質的には同じですが、kの逆数であるhはプランク定数と呼ばれています。

プランク定数は物理で出てきますよね。僕は、物理のプランク定数が何であるか分からないのですが、マスロフは物理とのアナロジーで、マスロフ算数とその発展である脱量子化を構想したようです。

マソロフ脱量子化とその広大な応用分野を、要領よくまとめた報告である"MASLOV DEQUANTIZATION, IDEMPOTENT AND TROPICAL MATHEMATICS: A BRIEF INTRODUCTION"(http://glitvinov.googlepages.com/2007_JMS_426.pdf)に次の図が載っています。

予断から勘違いしやすのですが、この図では、普通の算数や数学(左上のTRADITIONAL MATHEMATICS)が物理の量子力学に対応しています。普通の計算は、既に量子化されているのです。普通の計算を脱量子化(古典化)することにより、「量子力学:古典力学 = 普通の計算:?」の疑問符のところを埋めよう、という魂胆です。

脱量子化するために、パラメータh(プランク定数;kの逆数)を導入し、hが0に近づく極限(古典極限)を見よう、というわけです。h = 1 での計算が量子的計算であり、h = 0 での計算が脱量子的計算となります。既に見たように、「量子的足し算=普通の足し算=公平な足し算」であり、「脱量子的足し算=max演算=格差が究極的に拡大する足し算」です。

いい忘れてましたが、脱量子化した計算では、マスロフ和の対数バージョンである a □t b = logt(ta + tb) を足し算に使い、普通の足し算を掛け算とするのが普通です。なにやらヤヤコシそうですが、対数パージョンのマスロフ算数は、今までに述べたマソロフ算数と、指数/対数で互いに移りあうように定義しているだけで、新しいものが出現したわけではありません。

上に挙げた"MASLOV DEQUANTIZATION, IDEMPOTENT AND TROPICAL MATHEMATICS: A BRIEF INTRODUCTION"には、ものすごく色んなことが書いてあって、僕は1%くらいしか理解できなかったんですが、その1%の20%くらいをこのエントリーに書いてみました。パラメータhが、量子現象と古典現象を結ぶらしいことは、行列計算を考えると割と分かりやすいので、気が向いたらそのことを書くかも知れません(気が向いたら)。

*1:この演算にこれといって呼び名がないようなので、僕が命名しました。

hubrishubris 2008/01/21 15:55 なんで私が Cobb-Douglas 生産関数やら演算子法やらが気になっているのか、理由の一端がわかった気が。toropical algebra それ自体は意味がよくわからなかったのですが、アナログ回路からデジタル回路を作るという話だったのですね‥
ロシア人すげぇ‥とりあえず brief introduction は読んでみます。
(冪等半環については勘違いしてました)

m0h1canm0h1can 2008/01/21 18:49 この本の中ではある種の可積分な系を離散化した場合、min-max代数で扱える事などが書かれていたと思います。参考までに。
http://www.kyoritsu-pub.co.jp/shinkan/shin0302_06.html

m-hiyamam-hiyama 2008/01/22 10:03 hubrisさん、
> アナログ回路からデジタル回路を作るという話
脱量子化は超デジタル化(超離散化)ですね。
> 冪等半環については勘違いしてました
勘違いの内容がわかんないのだけど、ひょっとして掛け算と足し算を間違えた?
以前の記事で、掛け算がべき等である環を使ってブール代数を再現したことがあるけれど、今回は足し算がベキ等です。

m0h1canさん、
情報ありがとうございます。
> 可積分な系
ウーン、わからんにゃー、保存量がイッパイある力学とか?
> min-max代数で
min-maxより、min-plusかmax-plusのような。

m0h1canm0h1can 2008/01/22 15:37 > 可積分な系
ただ可積分ってだけだとめちゃくちゃ広いですね、
何かしら保存量がある力学系で間違い無いです。
記事にある量子化/脱量子化でt→∞とすることで、
そのような系の連続版(微分方程式)と離散版(オートマトン)が繋がるという話だったと思います。
> max-plus
まったきその通りで。

jaggingjagging 2008/05/18 18:00 一通り読んだけど、

要するにマルコフ和って、
a[+]b = f(g(a)▼g(b))(ただし、fとgは逆関数(逆演算)、▼は交換法則の成り立つ演算)
ってことだよね。


一応いくらか作ってみた。
a[+]b = ∫(da/dt + db/dt)dt
=a + b ....まんまじゃねぇかよ。

a[+]b = ∫(da/dt × db/dt)dt (ただし、a,bはxの関数)
=∫(dadb/d^2t)dt
= dadb/dt
...およっ、結局見慣れたのが出てきたでないか・・。

なかなかおもしろかったです。
スケール云々の話もなんか良いよね。

m-hiyamam-hiyama 2008/05/19 18:43 jaggingさん、
> 要するにマルコフ和って
マルコフさんとマスロフさんは別人です :-)

具体的な計算ができるのは楽しいですね。ですが、マスロフ脱量子化の一般的枠組みは、変わった足し算を備えた「エキゾチック代数」と呼ばれる代数系の一族です。変わった足し算と普通の足し算とのあいだを結ぶところ(対応原理)がキモで、具体的な表式にこだわり過ぎないほうがいいかとは思います。

syaminosyamino 2012/02/18 13:50 ⊥⇒⊥ ⇔ ⊤ であることから,べき乗的演算の極限では,0の0乗は1になるんじゃないかな?と思いました。

m-hiyamam-hiyama 2012/02/18 15:37 syaminoさん、
「0の0乗」は、どんな枠組みのなかで考えるかによりけりですね。
ある枠内で合理的ならそれはそこで正しく、別な枠組みなら違うかもしれません。