Young

Summary

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

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

Download

archive

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

http://sourceforge.jp/projects/young/files/

CVS

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 の最新のレポジトリを固めたものがダウンロードできます。

Install

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

binary

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

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

source

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

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

使い方[Usage]

usage をご覧ください。

MEMO

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

Young の特徴

pros

  • 一部の数学ソフトにしか実装されていないマニアックな計算を手軽に出来てしまう。
  • 対象をかなり絞っているので、非常にコンパクト(light weight)
  • スクリプト言語で書かれているので、インタープリターで直接実験できる。(当然、コンパイルの必要もない)
  • Python が動くプラットフォームなら、どこでも実行できる

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

TODO

  • Fulton の本の第一部に書かれている具体的な計算が出来るようにする。(word, matrix ball 構成, RSK 対応などが残っています)(0.2 ブランチ)
  • GUI フロントエンドも用意する。(0.3 ブランチ?)
  • 統一された命名規則(Style Guide for Python Code)

開発ペースは非常にのんびりとしています。

API

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

API

Bibliography

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

[1]寺田至, ヤング図形のはなし, 日本評論社, 2002.(in Japanese)
[2]堀田良之, 加群十話, 朝倉書店, 1988.(in Japanese)
[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.