Combinatorial Spiecies
- Combinatorial Spieciesという考え方がある
- 離散データ構造の定義が与えらえた時に、それを特定の要素数で構成するとして、その構成インスタンスの個数を数え上げることを考える
- 数え上げるにあたって、母関数を使う
- 圏論的に考えることができる
- ある集合AとBとがあって、全単射になっているとする
- あるspieciesがあると、Aに対応してF[A]というデータ構造インスタンスのの集合ができる。Bに対応してF[B]なるデータ構造インスタンスの集合ができる。AとBとが全単射だったが、F[A]とF[B]も全単射
- 今、データ構造を決めるspieciesが2つあって、FとGであるとする
- 母関数をそれぞれf(x),g(x)とする
- 母関数の演算をいくつか定めることにする
- f(x)+g(x),f(x)*g(x),g(f(x))など
- これらも母関数であるとして、対応集合の要素数から構成できるデータ構造のインスタンス数の母関数とする
- そんなとき、それぞれの母関数式f(x)+g(x),f(x)*g(x),g(f(x))に対応させて、どういうspieciesを考えればよいかを考えると便利である
- そんな話