数式処理の最新事情^{∗}

佐々木建昭（筑波大学数学系）

1 1990 年代を特徴づける三つのキーワード

Mathematica や Maple に代表される数式処理ソフトは今や、研究者・技術者は言うに及ばず、大学生や高校教師にも普及し、一般化という点では数値計算を凌駕したといえる（これはあくまで一般化の観点からの話であって、重要性・有用性の観点からは数値計算にまだ遠く及ばない）。その華々しさに隠されるように、数式処理研究の方は部外者には見えにくいが、革新的な進歩を遂げつつある。その詳細に入る前に、 1960 年代から 1980 年代までの代表的な研究を列記して、数式処理の発展を振り返ってみよう。

• 1960 年代: 大学初年級の積分を計算するプログラムの開発（1961: Slagle）、最初の汎用数式処理システム FORMAC の開発（1965: Sammet 他）、多項式イデアルの Gröbner 基底構成法（1965: Buchberger）、多項式 GCD の部分終結式算法（1966: Collins）、 Z_{p}上の１変数多項式の因数分解算法（1967: Berlekamp）、量子電磁気学での大規模計算への応用（1968 年以降）、 (超越拡大) 初等関数の不定積分算法（1969: Risch）、 Z 上の１変数多項式の因数分解算法（1969: Zassenhaus）。

• 1970 年代: 世界的に普及した数式処理システム REDUCE の開発（1972: Hearn）、高機能数式処理システム MACSYMA の開発（1973: Moses 他）、多変数多項式の EZ-GCD 算法（1973: Moses and Yun）、多変数多項式の因数分解算法（1973: Wang and Rothschild）、群論用数式処理システム CAYLEY/Magma の開発（1974: Cannon）、抽象データ型数式処理システム SCRATCHPAD/Axiom の開発（1974: Jenks 他）、連立代数方程式の円筒的分解算法（1975: Collins）、可換環論への Gröbner 基底の応用（1975 年以降）、特性集合法に基づく初等幾何の定理証明法（1978: Wu）、パソコン上の数式処理システムμ-MATH/Derive の開発（1979: Stoutemyer and Rich）。

• 1980 年代: コンパクトな汎用数式処理システム Maple の開発（1980: Geddes 他）、連立代数方程式の解法と初等幾何の定理証明法の研究（1980 年以降）、代数演算の並列計算法の研究（1985 年以降）、 D-加群の Gröbner 基底論（1985 年以降）、記号・数値・グラフ統合型数式処理システム Mathematica の開発（1987: Wolfram 他）、近似代数の研究（1989 年以降）。

∗雑誌『数理科学 (サイエンス社)』特集 “数式処理とその周辺” の導入記事、 1998 年７月執筆

上記より、 1960 年代は（GCD、因数分解、不定積分などの）基本的演算の算法の勃興期で、 1970 年代は汎用の名システムの登場と連立代数方程式の解法進展の時代で（初等幾何の定理証明も連立代数方程式に帰着されるのである）、 1980 年代は数式処理の数学化と記号・数値・グラフ統合型のシステム登場の時代、と呼んでよいだろう。

1980 年代を延長すれば、 1990 年代は数式処理ソフトのさらなる普及と数学分野での発展の時代と予想されよう。実際、 1990 年代の計算代数のアルゴリズムは、一部はますます数学化しており、旧来の数式処理屋には手が届かなくなりつつある。しかしながら、全く新しい観点からの研究も始まっている。 10 年後には、 1990 年代の数式処理研究を特徴づけるキーワードとして、 1) 数式 HPC( High Performance Computing )、 2) 近似代数、 3) 数学教育への利用、の三つが挙げられると思う。以下では、これら三つの話題と純粋数学分野での数式処理の発展について簡単にふれて、専門家諸氏による解説の露払いとしたい。

2 純粋数学としての数式処理

数学における数式処理アルゴリズムの開発、あるいは純粋数学としての数式処理と言った方が適切だが、は手がつけやすく、 80 年代から一貫して研究が続いており、今後も続くだろう。この方面では、早い次期から群論のアルゴリズム研究が行なわれていたが、 Buchberger による多項式イデアルの Gröbner 基底算法が契機となって、一気に研究が多方面に広がった。 Buchberger の Gröbner 基底算法は極めて基礎的かつ効果的で、それが故に広く世に知られるようになるや、加群の Gröbner 基底へ、非可換環のイデアルの Gröbner 基底へ、…と次々に拡張されていった。一時期は、ヨーロッパの計算代数屋の過半数は Gröbner 基底の研究者とまで言われた。そして、環論や代数解析の多くの演算が Gröbner 基底に基づいて算法化・効率化されていった。これについては、多くの算法の開発をされてきた横浜市立大学の大阿久氏に解説をお願いした。

3 数式 HPC( High Performance Computing )

数値計算の近年のトピックスは HPC である。 HPC とは、応用分野で現れるような複雑な連立偏微分方程式などをスーパーコンピュータ (ベクトル型のみならず超並列型も含む) を用いて精度よく解くことを目的に、その数値解法を研究することである。同様なことが数式処理でも起こりつつある。ただし、数値 HPC は偏微分方程式の離散化とその結果得られる大規模線形方程式の反復解法を主ターゲットとするが、数式 HPC の現在の主ターゲットは連立代数方程式の解法である。連立代数方程式は応用面でそれだけの重要性を持つのである。もちろん、数式処理の並列化も重要なターゲットであるが、本稿では割愛する（情報処理 (情報処理学会発行), Vol.39, No.2 (1998) に簡潔な解説があるので参照されたい）。

連立代数方程式の解法は、初期には終結式に基づく消去法が主であったが、 Buchberger の Gröbner 基底法や Ritt-Wu の特性集合法 (characteristic set method)…これらも一種の消去法だが…が登場し、様相が一変した。と思ったら、実根だけを求める円筒的分解法が現れ、さらには数値行列の固有値問題に帰着する方法まで考案されて、研究面で大進展があった。しかも、個々の方法は細部で種々の改良が加えられ、その結果、かなり大きなサイズの問題も実時間で計算できるようになった。これらの解説は、算法とシステムの両面からこの方面の研究を遂行されてきた富士通の横山氏と野呂氏にお願いした。

4 日本発のトピックス…近似代数

最近、国際会議で Symbolic Numeric Algorithms( SNA ) という言葉が飛びかっている。 1996 年には SNAP( SNA on Polynomials ) という国際会議がフランスで開催され、計算代数のみならず数値解析のビッグネームが多数参加して注目を集めた。本年には、数式処理の専門誌である Journal of Symbolic Computation が SNAP に関する特集号を組み、代表的な国際会議である ISSAC ( Intern’l Symp. on Symbolic and Algebraic Computation ) では本年は 10 セッションのうち２個のセッションが SNAP に割かれた。

従来の数式処理は厳密に正しい数式を対象にしていたが、入力式に誤差あるいは微小な摂動項があったらどうなるであろうか？現在の算法がそのまま適用できて、計算結果にはほんの少しの誤差が含まれるだけ、と大抵の読者は考えるだろう。これは全く間違っている。たとえば、多項式の因数分解に対する現在の算法は、最終的には有限体 Z_{p} 上の演算に帰着されるから、係数が浮動小数に変わった途端にこの算法は全く使えなくなる。また、入力式は微小な誤差しか含まないのに計算結果は巨大な誤差を含む、ということも頻繁に生じる。すなわち、全く新しい立場からの研究が必要なのである。このように、入力式と出力式に摂動項を許容したままの代数的演算を近似代数 ( Approximate Algebra ) という。

実は、近似代数は日本で提唱され、現在の重要なアルゴリズム・方法論の多くが日本で開発されたのである。近似代数の必要性、始まりの様子、および現在までの代表的成果について筆者と奈良女子大・加古氏が記述する。

5 数式処理と数学教育

教育における国家的目標の一つは中学・高校での情報処理教育であるが、教育の本質に入る前に生徒たちに機械の操作法を教えねばならないこと、技能を持った先生の絶対数の不足、など多くの問題があるようである。しかし、グラフ電卓 (簡単な数式処理ができて、計算結果がグラフ表示できる電卓) を用いた授業は、欧米や東南アジア各国では既に国をあげて実施されつつあり、日本でも一部の研究者・高校教師が熱心に推進している。

さて、電子メイルやインターネット操作などのリテラシー教育を一歩進んで、数学教育におけるコンピュータ利用を考えてみよう。すぐ思いつくのは、コンピュータの持つグラフィック機能、数値計算機能、および数式処理機能の利用である。このうち、生徒に最も有効と思われるのはグラフィック機能で、次には教科書に載っている計算をそのまま実行する数式処理機能であろう。数値計算は、利用に先だって近似の概念を教える必要があり、生徒にとって分りにくいであろう。では、数式処理機能は具体的にはどう利用するのか？従来の数式処理研究は、大規模数式の高速処理には力を注いでも、中学・高校生むけの教育目的の数式処理には全く目が向いてなかった。しかし、 Mathematica や Maple などの数式処理システムを高校数学の教育に利用してみようとの試みも各所で行なわれている。この方面の最新事情について、多くの試行錯誤を重ねてこられた神戸大学の高橋氏に解説をお願いした。

6 今後 10 年間の数式処理…予想

1990 年代を延長すると、今後の 10 年間の数式処理として次のように予想される。第一に数学への浸透、あるいは数学におけるアルゴリズム研究の広がりと言った方が適切だが、が挙げられる。筆者は、数学者は数学的事物の存在や構造には興味を持つが、如何に効率的に計算するかには無関心である、と思っていた。しかし、数学系に移籍してから、一部ではあるが数学者が効率的計算法に関心を持つのに驚いた。 Gröbner 基底は数学者をも魅了しており、今後、計算代数に関心を持つ数学者がさらに増えると予想される。

第二は、数式処理の工業界への進出であろう。従来の数式処理は厳密に正しい数式のみを専ら扱っており、数学や理論物理学では重宝されても、工業界での評判は芳しくなかった。工業界では、誤差の入った複雑な数式を扱うことが不可欠だからである。しかしながら、 90 年代の数式 HPC や近似代数の研究の進展は、工業界での数式処理の活躍も可能にするであろうと期待させる。

そして第三は、中学・高校レベルの数学教育への進出である。このように、数式処理は中等教育や数学的研究への利用、さらには工業界の問題への適用まで含めて、幅広く利用されるだろう、というのが筆者の予想であるが、はたして 10 年後はどうなっているであろうか？