Young

Contents

Summary

Young は名前の通り Young 図形を目的とした Python 用の数学ライブラリです。Young 図形や分割数のちょっとした計算に威力を発揮するかもしれません(して欲しいです)。

Download

archive

You can download Young from the following page.

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>      # When prompted for a password, simply press the Enter key
$ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/young co young
You can browse the CVS repository.
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/young/

To get the latest CVS snapshot, click HERE.

Installation

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

Installation from Binary

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

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

Installation from Source

ソースからインストールするには、アーカイブをダウンロード後、圧縮されたファイルを解凍して、python setup.py install で完了です。

$ tar zxfv young-$VER.tar.gz  ($VER is the version number)
$ cd young-$VER
$ python setup.py install

使い方[Usage]

See USAGE page.

MEMO

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

Young の特徴

pros

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

cons

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

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

50 の分割(partition(50).size()) は 204226, 100 の分割は 190569292 あります。 自分がこのプログラムでテストした範囲では、partition(50) くらいまでは 正しく(我慢できる時間内に)計算出来ています。

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

jeu de taquin

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

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

jeu de taquin

TODO

  • 用語を厳密に使い分ける(Robinson|Robinson-Schensted|Robinson-Schensted-Knuth など...)
  • Fulton の本の第 1 部に書かれている具体的な計算が出来るようにする。(word, matrix ball 構成, Littlewood-Richardson rule などが残っています)
  • GUI フロントエンドも用意する。(0.3 ブランチ?)
  • 統一された命名規則(Style Guide for Python Code) に従ってプログラムを書く。

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

API

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

API Documentation

Bibliography

下に挙げる書籍以外にも、ヤング図形や分割数に関する本は多数あります。最初の3つがオススメです。

[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.