長さのネックレスとは,合計個の何種類かの玉を円形に配置した組合せ論的オブジェクトである [8,4,2,3].
二つのネックレスは,一方が他方を円に沿って回転して得られるならば,同値であるという.
いわゆる数珠ではないので反転は考えない.すべての玉を区別するネックレスは円順列 [1]という名で有名だが,ここでは区別できない玉もある場合を扱う.
ネックレスとカタラン数
以下が成り立つ [5,6,7].
玉0を個,玉1を個使って作る同値でないネックレスの数は,番目のカタラン数つまり通りである.
例えば,3個の0と4個の1でネックレスを作る方法は下図のとおり5通りあり,これは3番目のカタラン数である.
3個の0と4個の1でできるネックレス
定理1の代数的証明はBurnsideの補題やPólyaの計数定理 [8,9]を使ってできる.
我々が興味を持つのは,定理1自体よりもむしろ定理1から提起される「全単射を作れ」タイプの問題である.カタラン数はDyck路の数なので,以下の問題が提起される.
「玉0を個,玉1を個使って作るネックレス」と,「サイズのDyck路」の一対一対応を作れ.
問題1の全単射はcycle lemmaと呼ばれる定理を使うとできる.
これについて,例えば[6]や[7]にも書いてあるが,あとで軽く述べる.
三色ネックレスとSchröder路
本記事で述べたいのは,玉を三種類に拡張した場合である.
同じくPólyaの計数定理を使って,以下の主張は簡単に示せる.
玉0を個,玉1を個,玉2を個使って作れる同値でないネックレスの数は通りである.
ここに現れる数は,オンライン数列大百科 [10]を見ると
「ピークを個持つサイズのSchröder路の数」(oeis: A319578)
として載っているから,以下の問題が提起される.
「玉0を個,玉1を個,玉2を個使って作るネックレス」と,「ピークを個持つサイズのSchröder路」の一対一対応を作れ.
本記事ではこの全単射を構成してみた.
用語の準備
ネックレスの形式的な定義とかもここで述べておく.
ネックレスの形式的な定義
「円形に並べる」というのを巡回群の作用を使って以下のように定義する.
有限集合上の長さの語と,位数の巡回群の元に対して
と定義する.
語に対して,によって得られる語たちを,の巡回シフトという.
語の集合
に対する,巡回群の作用が上記によって定義される.
「個の0と個の1を使って作るネックレス」とは,この作用による軌道である.(軌道とは作用によってうつり合う語を同値と定義したときの同値類である.)
また,語の集合
には,同様に巡回群の作用が定義される.
「個の0と個の1と個の2を使って作るネックレス」とは,この作用による軌道である.
格子路に関する用語の定義
Dyck路やSchröder路といった格子路に関する用語を定義する.
Dyck路
サイズのDyck路とは,二つのベクトルとからなる長さの列
であって,二条件
を満たすものである.
Schröder路
サイズのSchröder路とは,三つのベクトルからなる列
であって,二条件
を満たすものである.
Schröder路の中で,ベクトルとがこの順番で連続する部分をピークという.
cycle lemmaと問題1の全単射
cycle lemmaを述べるために,dominating [6]という概念が必要になる.
dominating
語がdominatingであるとは,任意のに対して,語に含まれる文字の数が,それに含まれる文字の数より多いことである.
dominatingを説明する例
dominatingな列の例:
dominatingでない列の例:
以下の定理はcycle lemma [6]と呼ばれる.
cycle lemma
任意の語に対して,その巡回シフト
でdominatingなものが唯一つ存在する.
cycle lemmaを説明する例
語の巡回シフトは以下のつあり,そのうちだけがdominatingである.
cycle lemmaの証明.
列に含まれる文字0,1をそれぞれベクトルに置き換えることにより,の元を,点から出発して点へ行く格子路とみなす.
格子路の節点のなかで「最も下にある点のうち,最も右にあるもの」が唯一つ存在する.その点をとする.
するとはdominatingであり,はdominatingではない.
問題1の解答.[6,7]
cycle lemmaより各同値類の代表元として,dominatingな語を一意的にとれる.よって,「玉0を個,玉1を個使って作るネックレス」はのdominatingな語と一対一対応する.のdominatingな語の先頭にあるを取り除き,文字0,1をそれぞれ文字に変えるとDyck路を得る.この対応は一対一である.
全単射の例
問題1の全単射の例
(1) ネックレス(=軌道).
(2) その軌道に含まれる唯一のdominatingな元 .
(3) 先頭の1を取り去って作ったDyck路.
(1)と(2)は一対一対応していて,(2)と(3)も一対一対応する.
問題2の全単射
まず,玉が三種類の場合のdominatingを定義する.
玉が三種類の場合のdominating
語がdominatingであるとは,任意のに対して,語に含まれる文字の数が,それに含まれる文字1の数より多いことである.
玉が三種類の場合のdominatingを説明する例
dominatingな列の例:
dominatingでない列の例:
dominatingな列は必ずから始まる.下の例は先頭がなので,語に含まれる文字の数 (0個)が,それに含まれる文字の数 (0個)より多くないため,dominatingではない.
玉が三種類のときもcycle lemmaと似た主張が成り立つ.
玉が三種類のときのcycle lemma
任意の語に対して,その巡回シフト
で (定義4の意味で)dominatingなものが唯一つ存在する.
玉が三種類のときのcycle lemmaの証明.
語の巡回シフトたちを,文字を無視すると同じになるものを同値とする同値関係により類別する.これらの同値類の代表元として,先頭がでないものを一意的に取ることができる.これら代表元たちのうちdominatingであるものが,定理3より唯一つ存在する.
問題2の解答.
「各節点に重さを付けたDyck路」というオブジェクトを定義する.
サイズで重さの「各節点に重さを付けたDyck路」とは,サイズのDyck路と,長さの非負整数列の組で,
後者の和が,つまりなるものである.
後者の非負整数列のことを重さの列ということにする.
定義4の意味でdominatingな列は,サイズで重さの「各節点に重さを付けたDyck路」と一対一対応する.
なぜならば,文字0を無視すると,問題1よりdominatingな列はサイズのDyck路と一対一対応し,その後合計個の0がどこに何個あったのかを重さの列として表せばよいからである.
例えば,dominatingな列は,を無視するとだから,Dyck路と重さの列の組に対応する.
絵で書くと以下のようなのを考えている.
各節点に重さを付けたDyck路.サイズはで重さはである.
次に,「サイズで重さの各節点に重さを付けたDyck路」から「ピークを個持つサイズのSchröder路」への一対一対応を作る.
サイズで重さの各節点に重さを付けたDyck路
が与えられたとき,各について,列のの直後にを挿入する.但し,は列の先頭に挿入する.こうして作られた新しい列をとする.
例えば,が与えられたら,
である.
次に,に含まれる連続するをすべてに置き換える.こうしてできる列をとする.
例えば,上記の例では
である.
最後に,に含まれるをに置き換え,これをとする.
例えば,上記の例では
である.
こうして作られる列は,ピークを個持つサイズのSchröder路である.この対応は一対一である.
全単射の例
以下は問題2の全単射の例を絵で描いたものである.
(1) ネックレス (2) 軌道のdominatingな代表元 (3) 各節点に重さを付けたDyck路 (4) Schröder路
(1)と(2),(2)と(3),(3)と(4)はそれぞれ上で述べたように一対一対応しており,結果的に(1)と(4)は一対一対応する,