ヤング図形と競技プログラミング
数学の様々な分野に登場するヤング図形について解説します。競技プログラミングと関係のありそうなトピックを多めに選びましたが、競技プログラミングのことを知らなくても楽しめると思います。
ヤング図形とは
ヤング図形とは、自然数の分割を箱を用いて可視化したものです。例えば 5 の分割
このヤング図形を
厳密にはヤング図形は上から下に向かって箱の個数が広義単調減少となるものです。
ヤング図形をテーマにした競技プログラミングの問題を 1 つ紹介します。
Codeforces Round #609 (Div. 2) D. Domino for Young
ヤング図形が与えられます。最大で何枚のドミノを敷くことができますか。
ヤング図形の定義はとてもシンプルですが、奥深い理論が展開されます。その一部を見ていきましょう。
分割数
競技プログラミングにおいては
分割数
個の互いに区別できない荷物があります。これらを互いに区別できない N 個の容器に入れる方法は何通りありますか。 M
これはプログラミングコンテストチャレンジブック (蟻本) の p. 66 の問題で、写像 12 相の 1 つです。解説は蟻本を見てください。この問題は動的計画法を用いて時間計算量
実は分割数は
共役図形
ヤング図形
例えば
共役の共役が元の図形であることは明らかです。
共役を使うことで次の定理が簡単にわかります。
このように、条件 A をみたす分割の個数と条件 B をみたす分割の個数が等しいという定理は多くあります。もう 1 つ紹介するので、証明は考えてみてください。
yukicoder No.2092 Conjugation
ヤング図形の共役を求めてください。
この問題は累積和と呼ばれるテクニックを用いると解くことができます。
カタラン数
競技プログラミングでは組合せの問題も出題されますが、その中でもカタラン数は重要です。カタラン数は
- 括弧列の個数
- 二分木の個数
- 対角線を跨がない経路の個数
など、様々な場面で現れます。カタラン数の詳しい解説はここではしないので、他の記事をご覧ください。
ここでは簡単な解説にとどめます。
ヤング図形との関連を述べましょう。
また、次のような関連もあります。
-
文字目がi (
であるとき、1 行目の最も左にある空箱に を書く。i -
文字目がi )
であるとき、2 行目の最も左にある空箱に を書く。i
括弧列が (()())
のときは次のようになります。
構成から明らかなように、ヤング図形に数字を書き込んだものは次の性質を満たします。
-
から1 までの正の整数が 1 回ずつ書かれている。2n - 1 行目について単調増加
- 2 行目について単調増加
- 各列について 1 行目にある数よりも 2 行目にある数の方が大きい
次の節ではこれを一般化します。
標準タブローとフック長公式
- 各行について書かれている数字は単調増加
- 各列について書かれている数字は単調増加
与えられたヤング図形
すなわち、すべてのフック長をかけあわせて
であることから、標準タブローの個数は
フック長公式の証明は表現論を用いるもの、全単射を構成するもの、確率論的なものなど、さまざまな手法があります。
Judge System Update Test Contest 202004 C - Numbering Blocks
(問題文省略)
まさに標準タブローの個数を求める問題なので、フック長公式で解くことができます。なお制約が小さいので全探索でも解けます。
正しい括弧列の一般化
個の文字 A a
と個の文字 B b
からなる文字列であって、どの接頭辞においてもa
の個数がb
の個数以上となるものは何通りありますか。
解法
マヤゲーム
マヤゲーム (あるいは佐藤・ウェルターのゲーム) と呼ばれる、次のようなゲームがあります。
直線状に並ぶマスの上に
個の石が置かれています。石 N の位置は左から i 番目のマスです。Georgia と Bob は交互にこれらの石のうち 1 つを選び、左に動かします。1 マス以上であれば何マスでも左に動かすことができます。1 つのマスに 2 つ以上の石を置くことはできません。動かすことができなくなった人の負けです。Georgia の番から始まるとし、お互いが最善を尽くすとしたとき、どちらが勝つでしょうか。 A_i
ゲームは次のように進行します。
このゲームは、実はヤング図形と関連します。空きマスを→、石のあるマスを↑と置き換えてみましょう。
経路が得られました。これをヤング図形の境界と見なすことで、ゲームの盤面からヤング図形を得ることができます。では、石を動かすというルールはヤング図形ではどのようになるでしょうか。
実は、マヤゲームにおける操作は、フックを 1 つ選んで抜くことと対応します。
この問題はマヤゲームと同じです。この問題を解くにはマヤゲームの解析をする必要がありますが、ここでは省略します。
また、蟻本から以下の類題を紹介します。
Georgia and Bob
直線状に並ぶマスの上に個の石が置かれています。石 N の位置は左から i 番目のマスです。Georgia と Bob は交互にこれらの石のうち 1 つを選び、左に動かします。1 マス以上であれば何マスでも左に動かすことができますが、他の石を追い越してはいけません。 また 1 つのマスに 2 つ以上の石を置くこともできません。動かすことができなくなった人の負けです。Georgia の番から始まるとし、お互いが最善を尽くすとしたとき、どちらが勝つでしょうか。 A_i
解説は蟻本に委ねます。
対称群の表現論
ヤング図形は対称群の表現論において中心的な役割を果たします。対称群については以下の記事も参考にしてください。
有限群の表現論については以下の記事も参考にしてください。
対称群
対称群の共役類は、サイクル型と一対一に対応します。サイクル型とは、
のサイクル型は
この定理は単に個数が等しいことしか言っていませんが、実際に
以降の節でこの式が意味するものを考えていきます。
ムルナガン・中山の規則
まずは
一般化して
このリムフックを
例として、
となります。次に
となります。あとは同様に計算することで
よって
となります。
ここで冒頭の
自作問題
が \lambda 個の 2 と a 個の 1、 n-2a が \mu 個の 2 と b 個の 1 からなる場合に n-2b の値を求めてください。 \chi_{\lambda}(C_{\mu})
解法
まずは長さ 2 のリムフックを除いていきます。これは次の 3 通りです。
- 1 列目から 2 個除く
- 2 列目から 2 個除く
- 1,2 列目から 1 個ずつ除く
長さ 2 のリムフックを除けるだけ除いたら残りはすべて長さ 1 のリムフックになります。この場合の指標値はフック長公式から求められます。よってメモ化再帰または逆から見て DP で求められます。DP で求める場合
if (i >= j) {
dp[i + 2][j] -= dp[i][j]
if (i >= j + 2) {
dp[i][j + 2] -= dp[i][j]
}
if (i == j) {
dp[i + 1][j + 1] += dp[i][j]
}
}
のような遷移で求められます。計算量は
自作問題
が与えられるので、 \lambda となるような \chi_{\lambda}(C_{\mu})=0 が存在すれば 1 つ求めてください。 \mu
解法
ロビンソン・シェンステッド対応と最長増加部分列
続いて
ロビンソン・シェンステッド対応はこの問いに答えを与えます。
ロビンソン・シェンステッド対応は、順列
まず
-
の 1 行目の数字がすべてP_{k-1} 以下ならば、1 行目の末尾にx_0 を追加して終了。x_0 - そうでなければ 1 行目にある
より大きい数字の中で最も左にある数をx_0 とおく。1 行目のx_1 をx_1 で置き換える。x_0 -
の 2 行目にある数字がすべてP_{k-1} 以下ならば、2 行目の末尾にx_1 を追加して終了。x_1 - そうでなければ 2 行目にある
より大きい数字の中で最も左にある数をx_1 とおく。2 行目のx_2 をx_2 で置き換える。x_1 -
の 3 行目にある数字がすべてP_{k-1} 以下ならば、3 行目の末尾にx_2 を追加して終了。x_2 - そうでなければ 3 行目にある
より大きい数字の中で最も左にある数をx_2 とおく。3 行目のx_3 をx_3 で置き換える。x_2 - 以下これを繰り返す。
このようにして得られるタブローを
このようにして
ロビンソン・シェンステッド対応はこのサイトで遊べるので遊んでみましょう。
全単射が存在するので集合の要素数は等しくなります。長さ
- 要素数
の集合a を作る。A - 要素数
の集合b を作る。B -
の間に全単射を作る。A,B
という手法が用いられることがあります。
ロビンソン・シェンステッド対応は順列から同じ形の標準タブローの組
RSK 対応には次の性質があります。
ということで、最長増加部分列に関する問題を RSK 対応の観点から紹介します。
Chokudai SpeedRun 001 H - LIS
数列から好きな整数を好きなだけ取り除き、単調増加な数列を作るとき、その数列の長さの最大値を求めなさい。 a
解法
競技プログラミングの典型問題です。RSK 対応の観点から見ると、
自作問題
長さの数列 N が与えられます。次の条件を満たすように各数を赤・緑・青のいずれかで塗ります。 A_1,A_2,\ldots,A_N
- 赤く塗られた数からなる部分列を取り出すと広義単調増加になっている。
- 青く塗られた数からなる部分列を取り出すと広義単調増加になっている。
緑色で塗られた数の個数の最小値を求めてください。
ヤング図形の 1 行目の箱の個数が最長増加部分列の長さなら、2 行目の箱の個数は何を表すか気になった方もいるかもしれません。実は次の性質があります。
AtCoder Regular Contest 091 E - LISDL
の順列であって次を満たすものがあれば構築してください。 1,2,\ldots,N
- 最長増加部分列の長さが
A - 最長減少部分列の長さが
B
解法
上で述べた定理から、1 行目の箱の個数が
Codeforces Round #502 C. The Phone Number
長さの順列のうち最長増加部分列の長さと最長減少部分列の長さの和が最小となるようなものを構築してください。 n
上の問題に帰着できます。考えてみてください。
yukicoder No.2048 L(I+D)S
の順列であって、最長増加部分列の長さと最長減少部分列の長さの和が 1,2,\ldots,N となるものの個数を求めてください。 N
ここまでに登場した定理を使って解くことができます。
ロビンソン・シェンステッド・クヌース対応とコストカ数
ロビンソン・シェンステッド対応を一般化した、ロビンソン・シェンステッド・クヌース対応 (RSK 対応) を考えます。
順列
とも表記されます。上に並ぶ
非負整数成分の行列
のとき対応する 2 行配列は
となります (並べる順番に注意)。
このようにして作った 2 行配列について、上側の数列を
半標準タブローにおいて
形が分割
AtCoder Beginner Contest 256 C - Filling 3x3 array
のマス目があり、各マスに正の整数を書き込みます。 3\times 3 行目の和が i 、 h_i 列目の和が j となる書き込み方は何通りありますか。 w_j
まさに
ただし、コストカ数の計算は #P-complete と呼ばれるクラスに属していて、効率的にはできないようです。
3 次元ヤング図形
この記事の締めくくりとして 3 次元ヤング図形を紹介します。まず次の問題を考えてみましょう。
yukicoder No.2023 Tiling is Fun
六角形 ABCDEF に三種類の図形を敷き詰める方法は何通りありますか。
図が立体的に見えると思った人もいるかもしれません。実際、この問題は 3 次元ヤング図形の特別なものとなっています。ヤング図形は平面上に正方形を並べたものでしたが、3 次元ヤング図形は空間内に立方体を並べたものです。
平面分割とは平面上に並べられた非負整数列
a_{i,j}\ge a_{i,j+1} a_{i,j}\ge a_{i+1,j} - 総和は有限
をみたすものです。座標
上の図は平面分割
これを平面的に見ることで、上記の問題のように 3 次元ヤング図形と敷き詰めが対応します。
問題では一本の経路と対応していましたが、一般には複数本の経路の組と対応します。
どの 2 つの経路も交わりません。よって 3 次元ヤング図形の数え上げは非交差経路の数え上げに帰着され、LGV 公式と呼ばれる式により計算することができます。結果だけ述べると、箱
となります。
マクマホンの公式によれば、この式は
に等しくなります。
参考文献
基礎編
- W. Fulton (池田岳・井上玲・岩尾慎介 訳), ヤング・タブロー ―表現論と幾何への応用―, 丸善出版, 2019.
- ヤング図形の入門書と言えばやはりこれです。第 1 部は予備知識を特に必要としません。最長増加部分列と RSK 対応についても述べられています。続く第 2 部は表現論、第 3 部は幾何学への応用で、それなりに予備知識が要ります。
- 雪江明彦, 代数学 1 群論入門, 日本評論社, 2010.
- 基礎的な群論の教科書です。対称群の共役類がヤング図形により記述されることが載っています。
- 池田岳, テンソル代数と表現論, 東京大学出版会, 2022.
- 基本的な線型代数を学んだ人がその先にある奥深い数学を学び始めるのに最適な本です。第 1 章~第 3 章がジョルダン標準形と線型常微分方程式への応用で、ジョルダン標準形の記述にヤング図形が現れます。第 4 章はテンソル代数で、この先で大いに用いられます。第 5 章から本格的な有限群の表現論が展開され、対称群と一般線形群の既約指標を求めるという問題に向かって進んでいきます。後半部においてもヤング図形が活躍します。
- 高崎金久, 線形代数と数え上げ (増補版), 日本評論社, 2021.
- 3 次元ヤング図形の話から始まります。他には完全マッチングの数え上げや行列木定理など、競プロ er にとって興味深そうな話題が豊富です。
- Richard Stanley, Enumerative Combinatorics.
- 競プロ er のファンも多い数え上げ組合せ論の本です。7 章では対称群との関係も述べられています。
- Amritanshu Prasad, Representation Theory: A Combinatorial Viewpoint (Cambridge Studies in Advanced Mathematics)
- 組合せ論的な表現論の本です。
- Bruce E. Sagan, The Symmetric Group: Representations, Combinatorial Algorithms, and Symmetric Functions.
- 対称群の本です。
発展編
- 洞彰人, 対称群の表現とヤング図形集団の解析学 ―漸近的表現論への序説, 数学書房, 2017.
- ヤング図形の極限形状など、この記事では触れられなかった話題を含みます。この本で扱われる対称群の表現論は Okounkov-Vershik approach という比較的新しい手法に基づいています。確率論の手法を用いて、ヤング図形の箱の個数や対称群の次数が無限に大きくなったときのふるまいを紐解いていきます。この分野における初期の重要な結果が、Vershik-Kerov によるヤング図形の極限形状です。この定理の系としてランダムな順列の最長増加部分列の長さがおよそ
になることも従います。2\sqrt{n}
- ヤング図形の極限形状など、この記事では触れられなかった話題を含みます。この本で扱われる対称群の表現論は Okounkov-Vershik approach という比較的新しい手法に基づいています。確率論の手法を用いて、ヤング図形の箱の個数や対称群の次数が無限に大きくなったときのふるまいを紐解いていきます。この分野における初期の重要な結果が、Vershik-Kerov によるヤング図形の極限形状です。この定理の系としてランダムな順列の最長増加部分列の長さがおよそ
- 中島俊樹, 結晶基底と幾何結晶 量子群からトロピカルな世界へ, サイエンス社, 2019.
- ざっくり説明すると、半単純リー代数
があったとき、普遍包絡代数\mathfrak{g} が定まります。量子群はパラメータU(\mathfrak{g}) を用いてq と表されるもので、U_q(\mathfrak{g}) のときq=1 になると考えられます。結晶基底はU(\mathfrak{g}) としたものです (以上ざっくりした説明)。特に A 型の結晶基底がヤング図形を用いて記述できます。このように結晶基底は組合せ論とも関わる重要な対象ですが、その存在を証明するのは簡単ではありません。14 個の互いに関連しあう命題からなる帰納法を用いて示すという"grand loop"と呼ばれる方法で存在証明がされています。(すごそう)q=0
- ざっくり説明すると、半単純リー代数
Web 記事
Discussion