ただのメモ

他の人に見せても良い方のメモ

ヤング図形に入門する

こちら

  • ヤング図形をまとめる。
  • 定義
    • 数nの分割を表現する方法。
      • 10=5+4+1
      • 合計が10で、大きい順に並ぶ数の列。
    • 行にある箱の数と、行数に意味がある。
    • 共役な分割
      • 複素数の共役は、実部が同じで、虚部が正負逆。
        • 情報量は同じ
      • 似た感じで、ヤング図形の行と列を入れ替えたもの
        • さっきの例
        • 10=3+2+2+2+1
    • ヤング盤
      • n個の箱に、1~nの数を埋める
      • 制約
        • 各行は、単調増加数列
        • 各列は、単調増加数列
      • 1回ずつ数が出てくるなら、標準盤という
      • 出てくる数もあれば、出てこない数もあるのが、半標準盤
        • この場合、各行が、非減少数列
    • ここまでで、ヤング図形についてざっくり理解は出来た。
      • 数の分割、箱の配置としての情報
      • 組み合わせ論との関わり。
      • 一般化してみる。
        • 物の列を考える。
        • 列の中の物に序列を持たせる(関係)
        • 列がいくつも並んでいるので、隣の列の物に序列を持たせる
        • 別に数じゃなくてもいい。
      • 分割について。こちら
    • 表現論における応用
      • 既約表現
        • Irreducible representation
        • 一般線形群
          • 正則行列全体からなる群
          • 有限一般線形群の位数
            • q元体の位数
          • Bruhat分解
            • Borel部分群
              • 上(下)三角行列からなる部分群
            • Weyl群
              • 置換行列からなる部分群
            •  G = BWB
        •  \rho : G \rightarrow GL(V)
        • 体上のベクトル空間
          • 体の要素をとるベクトルからなる空間(集合)を考える
        • 群Gを、そのベクトル空間に写す写像
        • 群の要素を、行列で、「表現」する。
        • 任意の群の要素を掛けても、部分空間の中で閉じている場合、G不変という
        • 表現で、G不変部分空間へ制限したものを、部分表現という(部分空間の中での表現)
        • 既約
          • 表現が、非自明な部分表現を持たないこと
            • 自明な部分表現は、全体空間と、{0} 
          • 複素内積ベクトル空間上の有限次元ユニタリ表現は既約表現の直和
          • 逆は、可約
          • 気持ち
            • 素数にしろ、何かを持たない(それより小さい素数など、)ことが、嬉しい性質であることがある。
      • ヤング盤の数
        • フック長
          • 同一行の右にある箱の数と、同一列の下のある箱の数と、自身の箱の数の、和
      • 既約表現の次元は、n!を、その表現のヤング図形の全箱のフック長の積で割った数
        •  dim \pi_\lambda = \frac{n!}{\prod_{x \in \lambda} hook(x)}
      • 表現の誘導、制限など
        • 群を行列で表現する
        • その表現とヤング図形が対応する。
        • ヤング図形の操作と、行列の操作を対応させると面白いらしい。
  • お絵かきしてみる。
  • ヤング図形で、既約表現の次元を求める。
lam = [5,4,1]
def fact(n):
  ans = 1
  for i in range(1,n+1):
    ans *= i
  return ans

def young(x):
  tableau = [[0]*max(x) for _ in range(len(x)+1)]
  for i in range(len(x)-1,-1,-1):
    for j in range(x[i]):
      tableau[i][j] = 1+tableau[i+1][j]
  return tableau[:-1]

semiyt = young(lam)
yt = semiyt.copy()
mot = fact(sum(lam))
div = 1
for i in range(len(lam)):
  for j in range(lam[i]):
    div*= (lam[i]-j-1+semiyt[i][j])
    yt[i][j] += lam[i]-j-1

print(yt)
ans = mot//div 
print(ans)

Bye-bye‼