Temperley-Lieb Algebraの行列表現と対消滅と対生成が閉じ込められた素過程について。 - hiroki_fの日記:
hiro> Temperley-Lieb algebraが行列で表現できない
檜山> いや、できるでしょ、がんばれば。僕はできないけど。
hiro> やはり無理だと考える。
あきらめちゃうの? ジョニー。
点の数は次元じゃないってば
どうも暗黙に、点の数をベクトル空間の次元と仮定してるみたいですが、そんな条件は付けてませんよ。そんなこともあるので、「3点」を「3次元」なんて呼ぶのはやめよう、って言ってるわけ。いらぬ誤解やつまらない先入観が生じますからね。
n = 3 のケースで、ベクトル空間の次元は8、行列は8×8の64成分なら、割と自然(?)な表現が構成できますよ。もとの図がたいして情報を持たないので、64成分もあってもスカスカ(大部分は0)だけど。
こんな行列をみつければいい
テンパリー/リーブ代数の行列表現がみつかったとして、それをRepと書きましょう。UとWは前の記事と同じく、3点テンパリー/リーブ代数の生成元とします。
- R = Rep(U)
- S = Rep(V)
と置いて、Repがちゃんと行列表現になっていることを確認するには、次を示せばいいですね。
- RR = 2R
- SS = 2S
- RSR = R
- SRS = S
要するに、上の4つの等式を満たすような行列RとSをみつけろ、ってハナシ。
使い捨て行列計算プログラム
手計算するよりは、プログラムを作っておいたほうが少しは楽だろう。なんでもいいや、こんなんでもいいや。
/* mat.js */var _N = 8;
function _col(m, i) {
var c = new Array();
for (var j = 0; j < _N; j++) {
c[j] = m[j][i];
}
return c;
}function _prod(x, y) {
var p = 0;
for (var i = 0; i < _N; i++) {
p += x[i]*y[i];
}
return p;
}function mult(a, b) {
var m = new Array();
for (var j = 0; j < _N; j++) {
m[j] = new Array();
for (var i = 0; i < _N; i++) {
m[j][i] = _prod(a[j], _col(b, i))
}
}
return m;
}function smult(s, a) {
var m = new Array();
for (var j = 0; j < _N; j++) {
m[j] = new Array();
for (var i = 0; i < _N; i++) {
m[j][i] = s * a[j][i];
}
}
return m;
}function matEq(a, b) {
for (var j = 0; j < _N; j++) {
for (var i = 0; i < _N; i++) {
if (a[j][i] != b[j][i]) {
return false;
}
}
}
return true;
}function printMat(m) {
for (var i = 0; i < _N; i++) {
print(m[i]); // for Rhino!
}
}
みつかった
これだ。
var R = [
[1, 0, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 0, 1]
];var S = [
[1, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 1]
];
ウソじゃないよ
js> printMat(mult(R, R))
2,0,0,0,0,0,2,0
0,2,0,0,0,0,0,2
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
2,0,0,0,0,0,2,0
0,2,0,0,0,0,0,2
js> printMat(mult(S, S))
2,0,0,2,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
2,0,0,2,0,0,0,0
0,0,0,0,2,0,0,2
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,2,0,0,2
js> printMat(mult(mult(R, S), R))
1,0,0,0,0,0,1,0
0,1,0,0,0,0,0,1
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
1,0,0,0,0,0,1,0
0,1,0,0,0,0,0,1
js> printMat(mult(mult(S, R), S))
1,0,0,1,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
1,0,0,1,0,0,0,0
0,0,0,0,1,0,0,1
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,1,0,0,1
js>
js> matEq(mult(R, R), smult(2, R))
true
js> matEq(mult(S, S), smult(2, S))
true
js> matEq(mult(mult(R, S), R), R)
true
js> matEq(mult(mult(S, R), S), S)
true
js>
どうやってみつけたか
ゴミ箱から裏紙を拾い出して、イッパイ計算した。オジチャン、疲れたよ、もう。
[追記 date="2008-06-18"]
えっ、昭和48年(1973年)だってえーーー、ダメダコリャ! わけーもんに伝わらねー。不粋にも参照を示す。
- 当時の映像 高橋真梨子が若い。
- Wikipedia「ペドロ&カプリシャス」 正しくは「ジョニィ」だそうで。
[/追記]