Young

Summary

Young は名前の通り Young 図形を目的とした Python 用の数学ライブラリです。

Young 図形や分割数のちょっとした計算に威力を発揮するかもしれません(して欲しいです)。

INSTALL

Young は次の URL からダウンロードできます。

[Young project page]

CVS を使って最新のソースコードを入手するには次のようにします。

$ cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/young login  
Logging in to :pserver:anonymous@cvs.sourceforge.jp:2401/cvsroot/young
CVS password:<ENTER>      # パスワードを聞かれますが、何も入力せずに <ENTER> を入力
$ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/young co young
CVS のレポジトリをウェブから閲覧することも出来ます。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/young/

ここをクリック すれば、CVS のレポジトリを固めたものをダウンロードできます。

インストールするには大きく分けて2通りあります。

binary

Windows 用のバイナリファイルの場合、ファイルをダブルクリックして 画面に従って操作すれば無事インストールは終了です。

現在はバイナリからのインストールは Windows からしか対応していません。

source

ソースからインストールするには、アーカイブをダウンロード後、コマンドラインから次のようにします。($VER は Young のバージョンです)

$ tar zxfv young-$VER.tar.gz
$ cd young-$VER
$ python setup.py install

Document

epydoc で作成した API ドキュメントがあります。

API

Usage

usage をご覧ください。

MEMO

Young について書き残したことなど

Young の特徴

pros

  • 一部の数学ソフトにしか実装されていないような計算を手軽に出来てしまう。
  • 対象をかなり絞っているので、非常にコンパクト(light weight)
  • スクリプト言語で書かれているので、インタープリターで直接実験できる。(当然、コンパイルの必要もない)
  • Python が動くプラットフォームなら、どこでも実行できる
  • itertools など Python2.3 で追加された新機能をいち早く体験できる。
  • Python 2.4 の新機能が部分的に取り入れられている。

cons

  • 計算が遅い (young(100) などとすると、、、)
  • 手でやっていることをそのままコンピューターにやらせているので、計算量が多く、アルゴリズムなどにかなり改善の余地がある。
  • 波長が合わないと使い道がない。
  • 開発ペースが非常にのんびりとしている。
  • 開発者の数学力がソフトウェア開発の足を引きずっている。

分割はどのくらいあるのか

50 の分割(partition(50).size()) は 204226, 100 の分割は 190569292 あります。 自分がこのモジュールでテストした範囲では、partition(50) くらいまでは 正しく(時間内に)計算出来ています。

また、分割の近似値を与えるものとして、Hardy-Ramanujan(-Rademacher) による公式も知られています。

jeu de taquin

Young 図形の本を読んでいると、たまに "jeu de taquin" という言葉を目にすることがあります。 初めて目にすると一体どんなものなのか想像もつきませんが、taquin は 数字並べゲーム(のフランス名)のことです。英語圏では 15 puzzle という名前で親しまれているようです。 Python で書かれた taquin のスクリプトを見つけたので、興味のある方は一度遊んでみてください。

young/samples/taquin/ 以下のディレクトリにスクリプトはあります。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/young/young/samples/taquin/taquin.py

jeu de taquin

今後の方向

のんびりやっていきます。 次回のリリースは skew tableau, word, jeu de taquin, hook, matrix ball あたりの実装がメインになると思います。

0.2 ブランチの目標は、Fulton の本の第一部に書かれている具体的な計算が出来るようになることです。

Bibliography

下に挙げるもの以外にもヤング図形や分割数に関する本は多数あります。

[1]寺田至, ヤング図形のはなし, 日本評論社, 2002.
[2]堀田良之, 加群十話, 朝倉書店, 1988.
[3]William Fulton, Young Tableaux, Cambridge University Press, 1997.
[4]Richard P. Stanley, Enumerative Combinatorics volume I, Cambridge University Press, 2001.
[5]George E. Andrews, The Theory of Partitions, Cambridge University Press, 1998.