箱玉系について

授業で「箱玉系」というものを勉強して面白かったので、まとめておきます。
あと、初めてJavaScriptでプログラムを書きました。


「箱玉系」というのはある種のセル・オートマトンです。
無限の長さで一列に並んだ箱に、数字の書いてある玉を入れて、次の規則で時間発展をさせることを考えます。
ただし、玉に書いてある数字は2から9までの整数として、整数kの書いてある玉のことをk-玉と呼ぶことにします。

  1. k=9とおく。
  2. 一番左にあるk-玉を箱から取り出して、それより右にある空の箱のうちで一番左にある箱に取り出したk-玉を入れる。
  3. まだ移動していないk-玉のうち、一番左にあるものについて2.と同様の操作を行う。
  4. すべてのk-玉を一度ずつ移動したら、kを1減らして、2.と3.を行う。
  5. k=2になったら操作を終了し、時間を1つ進める。

具体例を下のプログラムで確認しましょう。

以下に挙げる数字の列は、箱玉の初期配置を表します。
ただし、2以上の整数kはk-玉が入っている箱を表し、1は空の箱を表すものとします。

  • 53
  • 443
  • 4431111111111153
  • 653211114431111111111153
  • 6532111111111111443111153

これらの数字の列を「箱玉の初期配置(正の整数の列を入れてください):」という入力欄にコピペして「input」を押すと、「箱玉の状態:」というウィンドウに数字の付いた箱玉が入ります。この状態で「時間発展」と書いてあるボタンを押してみましょう。




箱玉の初期配置(正の整数の列を入れてください):

箱玉の状態:



上の初期配置の例の他にも、自分で初期配置を考えていろいろと試してみると面白いと思います。

ここでは先ほどの3つ目の例「4431111111111153」について結果を見てみましょう。


443___________53_____________________________________________________
___443__________53___________________________________________________
______443_________53_________________________________________________
_________443________53_______________________________________________
____________443_______53_____________________________________________
_______________443______53___________________________________________
__________________443_____53_________________________________________
_____________________443____53_______________________________________
________________________443___53_____________________________________
___________________________443__53___________________________________
______________________________443_53_________________________________
_________________________________44_533______________________________
___________________________________44__533___________________________
_____________________________________44___533________________________
_______________________________________44____533_____________________
_________________________________________44_____533__________________
___________________________________________44______533_______________
_____________________________________________44_______533____________
_______________________________________________44________533_________
_________________________________________________44_________533______



他にもいくつかの例を確認すると、次のことがわかると思います:

  • 「玉の番号が非増加な連なり」は時間発展をしても崩れないかたまりになっていて、時間を1つ進めると、連なりの長さだけ右に進む。
  • 「玉の番号が非増加な連なり」同士で衝突が起きると、衝突しているときはかたまりが崩れるが、少し時間が経つと衝突前の連なりの大きさ(上の例だと、3つと2つ)が再び現れる。
  • 衝突前後で連なりの大きさは変わらないが、箱の数字は入れ替わっている。(上の例だと、衝突前は443と53だったが、衝突後は44と533になっている)


実は他にも様々な興味深い現象が起きているのですが、とりあえず今回はこれくらいを挙げるにとどめておきます。

ここでは、最後の現象に注目して、次の問題を考えることにします。

衝突後の数字の状態は、時間発展で確かめることなく、衝突前の数字の情報だけから直接計算できるでしょうか。

例えば上の例だと、「443と53」という情報から、「44と533」を導出したいということです。

上にある時間発展のプログラムを使って他にもいくつか計算すると、
「433と53」→「44と533」
「4432と63」→「42と6433」
「5332と44」→「33と5442」
「6322と442」→「632と4422」
などになっています。
(上のプログラムを使って他にも様々な例でどうなっているかを確認することが出来ます。)

これらの数字の変化を見てみると、一見規則性がないように見えて、「衝突前の数字」→「衝突後の数字」という写像は具体的にはよくわからなさそうに思えます。


ですが、実はこの数字の変化を数学的に捉えられるということがわかっています。
具体的には「クリスタル」と「組み合わせR行列」という組合せ論的な道具を使うことによって、衝突前の数字から衝突後の数字を計算することができます。([2]のTheorem 4.6)
この「クリスタル」というものは、アフィンLie 代数の量子群の有限次元表現を起源に持つ組み合わせ的な対象です。「組み合わせR行列」は通常のR行列の組合せバージョンと言えます。(もともとのR行列はヤン・バクスター方程式という方程式の解のことであり、これは統計力学や結び目理論などに現れることが知られています。)

単純な規則で時間発展を定義した箱玉系ですが、実はその背景には豊かな数学的な構造があって、非常に面白いなあと私は思いました。
少しでも興味を持った人がいれば、以下の文献をぜひ読んでみればと思います。
この記事は、私がとある講義のゼミで[1]の文献(のほんの一部)を読んだときの内容をまとめたものです。


[1]井上 玲, 箱玉系の可積分性 - クリスタルとトロピカル幾何, Summer School 数理物理 2011.
[2]Kaori Fukuda, Masato Okado, Yasuhiko Yamada, Energy Functions in Box Ball Systems, International Journal of Modern Physics A 15 no. 9, 1379-1392 (2000), (arxiv : [math/9908116] Energy Functions in Box Ball Systems).
[3]国場敦夫, ベーテ仮説と組合せ論, 開かれた数学 5, 朝倉書店(2011), (Amazon.co.jp: ベーテ仮説と組合せ論 (開かれた数学): 国場敦夫: 本).
[4]Atsushi Nakayashiki, Yasuhiko Yamada, Kostka Polynomials and Energy Functions in Solvable Lattice Models, Selecta Mathematica 3, no. 4 , 547-599, (1997), (arxiv[q-alg/9512027] Kostka Polynomials and Energy Functions in Solvable Lattice Models).