JPH07200538A - グレブナ基底生成方法及び装置 - Google Patents

グレブナ基底生成方法及び装置

Info

Publication number
JPH07200538A
JPH07200538A JP6255759A JP25575994A JPH07200538A JP H07200538 A JPH07200538 A JP H07200538A JP 6255759 A JP6255759 A JP 6255759A JP 25575994 A JP25575994 A JP 25575994A JP H07200538 A JPH07200538 A JP H07200538A
Authority
JP
Japan
Prior art keywords
polynomial
basis
normalized
calculation
gröbner
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP6255759A
Other languages
English (en)
Inventor
Masayuki Noro
正行 野呂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6255759A priority Critical patent/JPH07200538A/ja
Priority to US08/343,912 priority patent/US5678055A/en
Publication of JPH07200538A publication Critical patent/JPH07200538A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 連立代数方程式の解法に有効なグレブナ基底
生成方法及び装置 【構成】 素数pを選び、多項式対の正規化形式をpを
法として計算し、法pでの正規化形式が0でない場合有
理数上で正規化形式を計算し、0の場合は有理数上でも
0とみなして有理数上での正規化形式の計算を省略し、
この最終的に生成されたグレブナ基底とは限らない多項
式を含む多項式集合F1について、F1 から生成した多
項式対の正規化形式を計算することによるグレブナ基底
チェックと、Fの元全てがF1 により0に正規化される
ことを確かめることによるイデアルの同等性チェックを
行うことにより、F1 から生成したすべての多項式対の
S多項式及びFのすべてが元がF1 により0に正規化さ
れる”とき、F1 がFのグレブナ基底であることをチェ
ックし、多項式集合Fからグレブナ基底を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、連立代数方程式などの
解法に有効なグレブナ基底の生成方法及び装置に係り、
高速演算可能でメモリ資源を節約できるグレブナ基底生
成法に関する。
【0002】
【従来の技術】産業・技術分野、特に工学における諸問
題において、連立代数方程式に定式化される問題は数多
い。例えば、システムの最適化問題、機械設計問題、ロ
ボットの逆運動学計算、偏微分方程式の求解など、多岐
にわたっている。しかし、これらを代数的に厳密に解く
一般的な方法は知られておらず、数値的解法に頼ること
がほとんどであった。
【0003】近年、イデアル理論に基づく解法がいくつ
か知られるようになってきた。その一つの方法にグレブ
ナ基底を使う方法がある。この方法は、与えられた方程
式の解を、過不足なく、数値解を求めやすい形で求める
ことができるという点で優れているが、従来の方法で
は、グレブナ基底の計算自体の計算量が、時間的、空間
的にかなり大きくなる場合があるという理由で、連立方
程式の求解への実用的な応用までには至っていない。
【0004】グレブナ基底生成算法は、ブッフバーガー
(Buchberger)算法と呼ばれ、Buchbergerにより考案さ
れ、数多くの人々により改良され、そのアルゴリズムは
計算機に組み込まれて多くの人に使用されてきた。その
アルゴリズムの骨子は以下の通りである。
【0005】アルゴリズム(1) 入力:多項式集合F 出力:Fで生成されるイデアルのグレブナ基底G (1) D←{{f,g}|f,g∈G;f≠g} do{ (2) Dから規準により0に正規化されることがわか
っている対を取り除く (4) P←CのS多項式 以上を簡単に説明すると、1.入力多項式集合Gから構
成される全ての多項式対からなる集合Dを作り、次項以
下を繰り返す。
【0006】2.Dから、ある規準により、計算するこ
となしに、0に正規化されることがわかっている元を取
り除く。 3.Dが空集合ならば、Gを出力する。Dが空集合でな
ければ、Dから元Cを、ある規準により一つ取り出し、
残りを改めてDとする。
【0007】4.多項式対CからS多項式Pを作り、G
により正規化する。Pの正規化をNF(P,G)と書
く。 5.NF(P,G)が0でないならば、Gの各元と、N
F(P,G)からなる多項式対を全て、Dに加える。さ
らに、GにNF(P,G)を加える。
【0008】ここで、用語の説明を行う。ここでは、多
項式を、単項式の和とみなす。単項式とは、項と係数の
積であり、項とは変数の幕積である。項の集合には、あ
る一つの全順序が定められていて、多項式fにあらわれ
る項の内、この順序により最大のものを頭項と呼び、H
T(f)と書き、fにおけるHT(f)の係数をHC
(f)と書く。多項式対{f,g}のS多項式は、HT
(f)とHT(g)の最小公倍項をtとする解き、HC
(g)・t/HT(f)・f−HC(f)・t/HT
(g)・gで定義される。多項式fが多項式gでリダク
ション可能とは、HT(g)で割り切れるfの項tが存
在する場合を言う。この場合、fの項tを、gにより消
去するとは、fにおけるtの係数をcとする時、fをf
−c/HC(g)・t/HT(g)・gに置き換えるこ
とを言う。fの、多項式集合Gによる正規化とは、fの
各項がGの全ての元についてリダクション不可能になる
までGの元によるfの項の消去を繰り返すことを言う。
多項式集合Gがグレブナ基底であるとは、Gで生成され
るイデアルの元が全てGにより0に正規化される場合を
言う。これは、Gから構成される全ての多項式対のS多
項式がCにより0に正規化されることと同値である。
【0009】以上の計算法において、従来、行われてき
た主な改良は、 ・第2項における、0に正規化される対すなわち不必要
対の検出のための規準 ・第3項における、正規化の対象となる対の選び方の規
準 の改良の2種類に分けられる。これは、第4項における
正規化が、算法全体の計算量の主要な部分を占めること
と、第3項で取り出す対の選び方により、計算結果は常
に一意的であるにも係わらず、その後の計算経過が大き
く異なるためである。
【0010】前者では、現在Gebauer-Moellerによる規
準が、後者では、Giovini、Moraらによるphantom degre
eによる規準が最良とされ、実際に、有効性が確かめら
れている。
【0011】Gebauer,R.and Moeller,H.M.(1988). On a
n installation of Buchberger'saigorithm. J. Symb.
Comp.6/2/3,275-286.Giovini,A.et al(1991)."One suga
r cube,please," or Selection strategiesin the Buch
berger algorithm. Proc.ISSAC'91,49-54.しかし、以上
の改良によっても、第2項における不必要対を完全に排
除することはできず、残った対は実際に正規化を計算し
てはじめて、ある対が不必要対か否かを判定することが
できた。特に、問題によっては、規準によって不必要対
が除かれていても、なお、残った不必要対の正規化にか
かる時間が全体の計算時間の大部分を占めることも少な
くない。
【0012】Gebauer-Moeller による規準は、極めて鋭
敏であり、これ以上不必要対を除こうとすることは、か
えって計算コストを増大させる結果となる場合がある。
このため、0に正規化される計算にかかるコストをいか
に少なくするかが、この算法の実用化の大きなポイント
の一つとなる。
【0013】
【発明が解決しようとする課題】正規化の計算コストが
大きくなるのは、一つの多項式の正規化において、結果
が0であるにも係わらず、任意多倍長整数である係数
が、計算途上において、しばしば極めて大きな数となっ
てしまうことによる場合が多い。この計算において、計
算機はそのような中間式を格納するためのメモリを用意
しなければならず、大容量メモリを必要とする。
【0014】一般に、このような中間式膨張を避けるた
め、モジュラ演算と呼ばれる手法が用いられる場合があ
る。これは、途中の整数計算において、結果を、ある整
数すなわち法で割った剰余で置き換える方法で、当然、
中間式膨張は抑制される。ただし、真の結果に現れる整
数の大きさが、法として選んだ整数の大きさを越える場
合、モジュラ演算により得られた結果は真の結果とは一
般に異なり、真の結果を得るためには何らかの操作が必
要になる。また、得られた結果が、真の結果の係数を剰
余演算して得られるものになっている場合、その法は妥
当である、と言われるが、常に法が妥当であるという保
証はない。
【0015】グレブナ基底の計算法においても、全ての
ステップでモジュラ計算を適用し、その結果から真のグ
レブナ基底を復元するという試みがいくつかなされてい
るが、真の結果の係数の大きさが不明であり、また選ん
だ法が妥当なもとであることの確認が困難であることな
どから、算法の停止性が保証されないか、あるいは結果
の正当性の確認が困難となり、実用化されていなかっ
た。
【0016】Winkler,F.(1988).A p-adic Approach to
the Computation of Grobner Bases. J.Synb.Comp.6/2/
3,287-304.Sasaki,T. and Takeshima,T.(1989). A Modu
lar Method for Groebner-basisConstruction over Q a
nd Solving System of Algebraic Equation. J.ofInfor
mation Processing, Vol.12, No.4, 371-379.また、論
文:Carlo Traverso(Pisa Univ.),Groebner trace al
gorithms,Proc.ISSAC'88,Lesture Notes in Computer S
cience 358,Springer-Verlag.には、モジュラ演算によ
るグレブナ基底計算をまず行い、その際の正規化計算の
履歴を保存し,その履歴を元に、グレブナ規定を計算す
る例が記載されている。
【0017】具体的には次のようになる。 1.法pでのグレブナ基底をまず計算する。 2.この過程で、φ(P)を正規化する際、どの要素
で、どの項で消去したか、また、どのペアが0に正規化
したか、という履歴を保存しておく。 3.前項の履歴を元に、有理数上でのグレブナ基底を計
算する。その際、 ・法pで0に正規化されたペアに関しては、有理数上の
正規化は行わない。 ・法pで0でない多項式に正規化されたペアに関して
は、履歴を元に有理数上で正規化する。
【0018】その際、有理数上での正規化が、法pでの
正規化に対応しない場合、pの選び方が妥当でなかった
として、p をとり直して1.からやり直す。(実際に
は、やり直しの前に復活のための操作が適用される。) 4.有理数上でのグレナブ基底候補が求まったら、チェ
ックを行う。もし失敗したら、pをとり直して1.に戻
る。
【0019】この方法では、pに妥当な場合、有理数上
での正規化の際、消去すべき項を探す必要がないため、
有理数上での正規化が迅速に行われる可能性がある。一
方で、妥当でないpを選んだ場合、それが判明するの
は、法pでのグレブナ基底計算を最後まで行ない、それ
を基に有理数上でのグレブナ基底計算をしている段階と
いうことになる。その判明する段階が早ければ早いほ
ど、法pで無駄な計算を多くしてしまい、メモリ使用量
を増大させる。
【0020】本発明は、使用メモリ量を削減でき、高速
演算が可能な、グレブナ基底生成方法及び装置を提供す
ることを課題とする。
【0021】
【課題を解決するための手段】本発明は、前記課題を解
決するために、以下のような手段を採用した。 (1)本発明は、パラメータ間の制約が連立代数方程式
で与えられるモデルにつき、該連立方程式を表すととも
にメモリ中に記述されている多項式集合Fからグレブナ
基底を生成するブッフバーガー演算をする計算機であ
り、素数pを選ぶ素数選択手段と、多項式対の正規化形
式を、pを法として計算する第1の演算手段と、前記法
pでの正規化形式が0か否かを判定する判定手段と、こ
の判定手段により前記法pでの正規化形式が0でないと
判定されたとき有理数上で前記正規化形式を計算する第
2の演算手段と、前記判定手段により前記法pでの正規
化形式が0と判断されたとき有理数上でも0とみなし
て、有理数上での正規化形式の計算を省略する省略手段
と、を有するメモリ節約制御部を備え、最終的に生成さ
れた多項式集合F1 を、グレブナ基底候補として得るこ
とのできるグレブナ基底生成装置である。
【0022】(2)ここで、さらに得られた多項式集合
1 から生成した多項式対の正規化形式を計算すること
によるグレブナ基底チェック手段と、多項式集合Fの元
全てがF1 により0に正規化されることを確かめること
によるイデアルの同等性チェックにより、F1 がFのグ
レブナ基底であると判定するグレブナ基底判定手段と、
このグレブナ基底判定手段による判定に失敗した場合、
前記素数選択手段による素数pをとり直して再度多項式
集合F1 を得る再演算制御手段と、を備えることによ
り、グレブナ基底を求めることができる。
【0023】ここで、グレブナ基底判定手段は、”F1
から生成したすべての多項式対のS多項式及びFのすべ
てが元がF1により0に正規化される”とき、F1がFの
グレブナ基底であると判定するのである。
【0024】(3) 前記(1)において、第2の演算
手段(8)は、前記第1の演算手段6で得た、法pでの
正規化形式が0でないと判断されたとき、その都度直ち
に有理数上で前記正規化形式を計算するようにすること
が好ましい。このとき、グレブナ基底候補の頭係数を素
数pで割り切れるか否かを判定し、割り切れない場合の
みグレブナ基底候補の計算を続行するグレブナ基底候補
チェック手段を備えることがより好ましい。
【0025】(4)また、対象となる多項式集合Fを予
め斉次化する斉次化する斉次化手段と、最終的に得られ
た多項式集合F1 を非斉次化する非斉次化手段とを備え
ることが可能である。斉次化についての詳細は後述す
る。
【0026】(5)ところで、従来の方法では、入力多
項式集合Fから構成される全ての多項式対からなる集合
Dを作ったのち、 Dから、ある規準により、計算することなしに、0に
正規化されることがわかっている元を取り除き、 Dが空集合ならば、Fを出力する。Dが空集合でなけ
れば、Dから元Cを、ある規準により一つ取り出し、残
りを改めてDとし、 多項式対CからS多項式Pを作り、Fにより正規化
し、Pの正規化をNF(P,F)と書き、 NF(P,F)が0でないならば、Fの各元と、NF
(P,F)からなる多項式対を全て、Dに加え、さら
に、FにNF(P,F)を加え、これらからを繰り
返すことにより、グレブナ基底を演算していたが、本発
明では、さらに a)素数pを選び、 b)多項式対の正規化形式を、pを法として計算し、 c)法pでの正規化形式が0でない場合のみ有理数上で
正規化形式を計算し、 d)法pでの正規化形式が0の場合は有理数上でも0と
みなして、有理数上での正規化形式の計算を省略し、 e)グレブナ基底の候補である多項式集合F1を得るこ
とをができる。
【0027】さらに、このグレブナ基底とは限らない多
項式を含む多項式集合F1について、 e−1)F1 から生成した多項式対の正規化形式を計算
することによるグレブナ基底チェックと、 e−2)Fの元全てがF1 により0に正規化されること
を確かめることによるイデアルの同等性チェックを行う
ことにより、”F1 から生成したすべての多項式対のS
多項式及びFのすべてが元がF1 により0に正規化され
る”とき、F1 がFのグレブナ基底であることをチェッ
クし、 f)このチェックに失敗した場合、a)pをとり直して
b)からe)を繰り返すことでグレブナ基底を生成する
ことができる。この結果、中間式を格納するメモリの量
が少なく制御される。
【0028】ここで、前記(c)のステップは、多項式
対の正規化形式を、pを法として計算し、法pでの正規
化形式が0でないと判断したときは、その都度直ちに有
理数上で正規化形式を計算するようにすることが好まし
い。その後、有理数上で計算された正規化形式の頭係数
を素数pで割り切れるか否かを判定し、割り切れない場
合のみ正規のグレブナ基底候補の計算を続行することが
好ましい。
【0029】すなわち、本発明では「多項式対の正規化
形式を、pを法として計算する第1の演算」A1を行っ
た後、それに対応する「有理数上で前記正規化形式を計
算する第2の演算」B1を直ちに行い、A1、B1、A
2、B2、・・・An、Bnというように処理する。具
体的には、前記第1の演算、第2の演算により有理数上
で計算された正規化形式の頭係数を素数pで割り切れる
か否かを判定し、割り切れる場合は、素数を新たにとっ
て演算をやり直す。このようにすると、A1、A2、・
・・An、を全て演算した後にB1、B2、・・・Bn
を演算する処理に比較して、演算に無駄がなく、メモリ
使用量を軽減できる。
【0030】すなわち、前記した論文に対し、本発明の
方法でも、法pで0に正規化され、かつ有理数上では正
規化されない対が存在した場合、それが判明するのはチ
ェックの段階となるが、単に、正規化された多項式の頭
係数がpで割り切れるという場合には、tを計算した段
階で直ちに判明するため、残りの無駄な計算を省くこと
が出来る。
【0031】さらに、対象となる多項式集合Fを予め斉
次化するステップと、最終的に得られた多項式集合F1
を非斉次化するステップとを備えることが可能である。
すなわち、以上の手段にいわゆる斉次化という手法を加
えることで、事実上計算不可能とされていた例について
もメモリ使用量を節約して高速にグラブナ基底を求める
ことが可能となる。
【0032】斉次化自体は既知である(T.Becker and
V.Weispfenning,Groebner Bases, GTM Springer-Verla
g,1993)。斉次化は以下のように説明される。体 K
上のn変数多項式(x1,・・・,xn)∈R=K[x1,・・
・,xn]に対し、fの、斉次化変数tによる斉次化(hom
ogenization)f*∈Rh=K[x1,・・・,xn,t]を f*(x1,・・・,xn,t)=tdmaxf(x1/t,・・・,xn/t) (ただし、dmaxはfの全次数、すなわち、fの各項 x1
e1・・・xn en に対し、e1+・・・+enをその項の全次数
とするとき、それらの中で最大のもの) と定義する。この操作によりf*は、全ての項の全次数
がfの全次数に等しい斉次多項式となる。
【0033】斉次多項式g(x1,・・・,xn,t)に対し、
tに関する非斉次化(dehomogenization)g*を、 g*(x1,・・・,xn)=g(x1,・・・,xn,1) で定義する。明らかに (f**=f が成り立つ。
【0034】さて、斉次多項式のみからなる多項式集合
のグレブナ基底の計算は、ブッフバーガのnormal strat
egy(正規化を行う多項式対を選ぶ際、S多項式の頭項
の順序が最も小さいものを選ぶ、という選択基準)によ
り、スムーズに計算が進行することが知られている。よ
って、入力多項式集合の各要素を斉次化し、グレブナ基
底を計算し、それを非斉次化する、という操作が考えら
れる。
【0035】問題は、斉次化後のグレブナ基底と、元の
多項式集合のグレブナ基底の関係であるが、次の性質が
成り立つ。 命題 (H)HT(g)*=HT(g*) 任意の斉次多項式gに対し(H)が成り立つならば、斉
次化後のグレブナ基底の各要素を非斉次化して得られた
多項式集合は、もとの多項式集合のグレブナ基底とな
る。
【0036】すなわち、(H)が成り立つような項順序
を、R,Rhのペアに対して設定すれば良い。 1 一般の場合 b1=a1t1s,b2=a2t2s∈Rh(a1,a2∈R) に対し、 b1>b2←→a1>a2または(a1=a2かつs1>s2) と定義する。 2 Rの項順序が辞書式順序の時、Rhの順序を、tを
順序最低とする全次数辞書式順序とする。 3 Rの順序が全次数逆辞書式順序の時Rhの順序を、
tを順序最低とする全次数逆辞書式順序とする。
【0037】次に、本発明において利用される相互正規
化について説明する。相互正規化とは、多項式集合Sの
ある要素fを、S−{f}で正規化する、という操作を
Sの各元に対して行うことである。一般にこの操作は不
定性を伴うが、Sがグレブナ基底となっている場合、ど
のような順序で操作を行っても結果は一定で、もとの多
項式集合と同一のイデアルのグレブナ基底となる。通
常、相互正規化を行う前に、冗長性の除去という操作を
行う。既にグレブナ基底となっているものに対しこの操
作を行っても、入力多項式集合のグレブナ基底であると
いう性質は変わらないが、本発明の場合、あくまでグレ
ブナ基底の候補である多項式集合に対し、やはりこの操
作を行っている。この理由は以下の通りである。
【0038】・冗長性除去前の候補は、確かに入力と同
一のイデアルを生成するが、それに対しグレブナ基底チ
ェックを行うことは、モジュラ演算で省いた計算をその
まま繰り返すことになり、意味がない。
【0039】・グレブナ基底とは限らないものに対し、
冗長性除去、相互正規化を行うと、候補がグレブナ基底
でなかった場合、得られた結果の生成するイデアルが入
力イデアルと同等でなくなることも有り得るが、要素の
数が減り、しかも、順序の大きい項が減ることにより、
グレブナ基底チェックの手間が大幅に減ることが期待さ
れる。
【0040】
【作用】本発明の計算機は、グレブナ基底演算のための
以下のアルゴリズムを実行する。
【0041】<アルゴリズム(2)> 入力:多項式集合F 出力:Fで生成されるイデアルのグレブナ基底G again: (1) p←Fの各元の頭項の係数を割らず、かつ未使
用の素数 (2) φを、多項式fに対し、各係数をpで割った剰
余に置き換えた多項式を対応させる写像とする (3) Dから規準により0に正規化されることがわか
っている対を取り除く (5) tp=NF(φ(P),GP) (6) if tp≠0 then{ t=NF(P,G) (8) Gをグレブナ基底とみて、冗長な基底を取り除
く Gを相互正規化する (9)DO←{{f,g}|f,g∈G;f≠g} DOから規準により0に正規化されることがわかってい
る対を取り除くDOの各対からS多項式を作り、Gによ
り正規化し、0でないものが出た らagainへ (10)Fの各元をGにより正規化し、0でないものが
出たらagainへ (11)return G 本発明では、アルゴリズム(2)の第5項の如く、有理
数上の正規化形式の計算に先だって、素数pを法とした
正規化形式の計算を行っている。しかし、従来の方法と
異なり、この計算は、このpを法とした正規化形式が、
0か否かを判定するためのみに用いられ、0でない場合
にはその値そのものは捨てられ、改めて、有理数上での
正規化形式が計算される。
【0042】一方で、この値が0の場合、本来有理数上
で計算を行ってチェックすべき正規化形式の値を、0で
あるとみなして計算を省略している。原理的には、有理
数上での計算における全ての中間式に現れた係数の分
母、分子を割らない素数を選べば、必ず正しい結果が得
られることがわかっているため、停止性は保証される
が、実際にはpとして4桁程度の素数を選んでいるた
め、妥当でないpがどのくらいの頻度であらわれるかが
問題となる。
【0043】従って、本発明の有効性は、後述する終段
における結果の妥当性のチェック部分を除けば、 ・pを法とした正規化形式の計算を常に行うこと ・有理数上で0に正規化される計算を省略できること という二つの正負の要因の内どちらが主要な部分である
か、および、 ・有理数上の正規化形式が0でないにも係わらず、法p
の計算により0と判定してしまう場合がどれくらいある
か、ということにかかっている。前者の比較は、問題に
より様々であり、一般的な議論は不可能であるが、素数
pを、デジタルプロセッサの提供する整数演算の範囲内
の大きさの数から選ぶことで、法pでの正規化計算に現
れる、整数の加減乗除をを高速化でき、問題の規模が大
きくなるほど、法pでの正規化計算にかかる時間は相対
的に小さくなる。また、有理数上で0に正規化される演
算の途中で、中間式膨張がひどすぎて、計算機のメモリ
容量の限界を越えることもあり得るが、結果のグレブナ
基底はそれほど大きくならない場合も多く、そのような
場合には、法pによる0の判定は絶大な効果を発揮す
る。
【0044】また、後者、すなわち、有理数上の正規化
形式が0でないにも係わらず、法pの計算により0と判
定してしまう場合がどれくらいあるか、という点に関し
ては、あくまで実験による推測の域を出ないが、グレブ
ナ基底計算の著名なテスト問題を試してみた結果、4桁
程度の大きさの素数を用いればほとんど全ての問題にお
いて、一回の試行で正しい結果が得られることがわかっ
ている。
【0045】この根拠として、以下のことが考えられ
る。この算法では、有理数で計算された正規化形式の頭
係数が法pで0でないことが要請されている。このこと
が「有理数上の正規化形式が0でないにもかかわらず、
法pで0になるならば、有理数上の正規化形式の係数が
全てpで割り切れること」を保証する。よって、pが大
きければ、有理数上の正規化形式の係数が全てpで割り
切れる確立は極めて小さいものであると期待されるので
ある。
【0046】次に、終段における結果の妥当性のチェッ
クについて述べる。このチェックは 1.グレブナ基底であることのチェック(アルゴリズム
(1)の第10項) 2.入力イデアルと出力イデアルの同等性のチェック
(アルゴリズム(1)の第11項) の2段階からなる。前者は、得られた多項式集合Gを、
改めて、アルゴリズム(2)に示される通常のグレブナ
基底計算算法にかけることにより行われる。ここで、も
し、Gがグレブナ基底になっていれば、Gから構成され
た多項式対は全てGにより0に正規化される。
【0047】しかし、この計算は全て有理数上で行われ
るため、もし、前段で省略した有理数上での正規化をこ
こで行うことになれば、モジュラ計算による効果は解消
されることになる。しかし、実際には、第8項で、冗長
性を除いているため、実際に正規化すべき多項式対は、
前段における多項式対の数と比べて少なくなっており、
かつ相互正規化も行っているため、一つの多項式対を正
規化する手間も少なくてすむ。
【0048】さらに、後者のイデアルの同等性のチェッ
クであるが、この時点でGは、第9項により、グレブナ
基底であることは示されており、かつ構成法から入力多
項式集合Fで生成されるイデアルの部分イデアルになっ
ている。故に、入力多項式集合の各元が、Gにより0に
正規化されることが、イデアルの同等性の必要十分条件
となる。このチェックも、有理数上での正規化計算であ
るが、一般に、Fはそれほど大きくない場合である場合
が多く、このチェックにかかる時間も、それまで既に行
われた計算にかかる時間に比べて小さい割合である場合
が多い。
【0049】以上の結果、中間式を確保するメモリの大
きさを小さくできる。以上の手段にいわゆる斉次化とい
う手法を加える場合について説明する。斉次化とは、方
程式の各項の次数を同一にすることである。例えば、f
(x、y)=2x2y+xy+x+1という方程式があ
るとする。この各項の次数をみると、2x2yにおい
て、2の次数は0、x2の次数は2、yの次数は1であ
るから2x2yの次数は2+1=3である。同様に、x
yの次数は2、xの次数は1、1の次数は0である。
【0050】この方程式の項の各次数を同一にするた
め、新しい変数tを導入する。f(x、y、t)=2x
2y+xyt+xt2+1t3 とすれば、各項の次数はす
べて3となる。
【0051】このように次数を同一にした後に本発明に
おけるグレブナ基底を求め、得られた解においてt=1
を代入すれば、次数は元に戻る。一般に、グレブナ基底
計算は、計算途中で選んでくる多項式対の選び方によ
り、計算効率が大きく影響され、それだけメモリ使用量
が多くなる。多項式対の選び方が不適当な場合、0でな
い正規化の計算にかかる時間が増大し、最悪の場合には
メモリが満杯となって計算不能となる。そこで、斉次化
されたものをグレブナ基底計算の対象とすれば、標準的
な多項式対の選び方により、最大の計算効率を達成でき
る。
【0052】しかし、斉次化の欠点として、斉次化によ
り不必要対が急速に増えるという問題がある。特に斉次
化によって、現れる不必要対の正規化は、後になって残
っているものほど長大な整数の演算が必要とされるもの
が多く、斉次化によって得られた効果を打ち消してしま
う場合も少なくない。
【0053】そこで、本発明では、斉次化を利用しつ
つ、斉次化の欠点を解消し、メモリの利用効率を高めた
グレブナ基底の生成方法、装置を提供する。斉次化を用
いたグレブナ基底の計算は通常の場合、次のように行わ
れる。
【0054】まず、入力多項式集合Fの各多項式を前記
のように斉次化した多項式集合Fhを作る。次に、Fh
のグレブナ基底Gh を計算する。そして、このGh を非
斉次化し、必要があれば相互正規化を行ったものをGと
する。このGがFのグレブナ基底となる。
【0055】ここで、Fh のグレブナ基底の計算に用い
られる項順序は、Fに対する項順序から決定することが
できる。先に述べたようにグレブナ基底計算において発
生する不必要対が全体の計算効率、ひいてはメモリ使用
効率に悪影響を及ぼすが、このグレブナ基底計算に本発
明のモジュラ演算を適用することにより、不必要対の増
加による計算時間の増大すなわちメモリの使用量が押さ
えられる。しかし、上記でFh のグレブナ基底そのもの
を計算しようとした場合、Fh の斉次化により、一般に
冗長性の除去操作を行ってもGh の基底の個数は非常に
大きいものとなり、また「不必要対の選択基準」に従っ
た不必要対の除去を行ってももあまり効果がないため、
モジュラ演算法の後半部分のグレブナ基底チェックの
際、モジュラ演算により省略した不必要対の正規化を殆
どすべて行わなければならない。
【0056】しかし、以下の方法によれば、このような
問題を回避して斉次化とモジュラ演算の効果を最大限に
生かし、メモリの使用を最小限として、資源の有効活用
を図ることができる。
【0057】斉次化+モジュラ演算法1.入力多項式集
合Fの各多項式を斉次化した多項式集合集合Fh を作
る。2.新たに素数pを選び、Fh のグレブナ基底候補
G'hをモジュラ演算法により計算する。
【0058】すなわち、入力多項式集合Fから構成され
る全ての多項式対からなる集合Dを作ったのち、 Dから、ある規準により、計算することなしに、0に
正規化されることがわかっている元を取り除き、 Dが空集合ならば、Fを出力する。Dが空集合でなけ
れば、Dから元Cを、ある規準により一つ取り出し、残
りを改めてDとし、 多項式対CからS多項式Pを作り、Fにより正規化
し、Pの正規化をNF(P,F)と書き、 NF(P,F)が0でないならば、Fの各元と、NF
(P,F)からなる多項式対を全て、Dに加え、さら
に、FにNF(P,F)を加え、これらからを繰り
返すことにより、」パラメータ間の制約が連立代数方程
式で与えられるモデルについて、該連立方程式を表す、
メモリ中に記述されている多項式集合Fからグレブナ基
底を生成するブッフバーガー演算をする計算機におい
て、 a)素数pを選び、 b)多項式対の正規化形式を、pを法として計算し、 c)法pでの正規化形式が0でない場合のみ有理数上で
正規化形式を計算し、 d)法pでの正規化形式が0の場合は有理数上でも0と
みなして、有理数上での正規化形式の計算を省略し、 e)グレブナ基底の候補G'hである多項式集合F1 を得
る。 3.そして、G'hを非斉次化し、相互正規化を行ったも
のをG’とする。 4.G’に対しグレブナ基底チェックを行う。 5.もし、チェックを通れば、G’がFのグレブナ基
底、もし通らなければ、前記2に戻り、再度素数pを選
ぶ操作をし、その後前記の操作を繰り返す。
【0059】ここでは、モジュラ演算法によるグレブナ
基底候補生成と、グレブナ基底チェックとの間に非斉次
化を行ったことに特徴を有する。斉次化Fh のグレブナ
基底候補であるG'hは基底の個数も大きく、またG'h
対するグレブナ基底チェックは、数多くの正規化計算を
行わなければならない。しかし、最終的に求めたいもの
はFのグレブナ基底であり、Fh のグレブナ基底を求め
る必要はないため、G'h のグレブナ基底チェックを省
き、G'hの非斉次化から直接Fのグレブナ基底候補を求
めるのである。G'hの非斉次化は次の効果をもたらす。 1.G'hを非斉次化した段階で多くの基底が冗長とな
り、それらの冗長基底は除かれ、G' はG'hに比べてか
なり要素の個数が減る。 2.G' は非斉次化されているため、グレブナ基底チェ
ックにおいて必要となる不必要対の正規化は、G'hにお
ける場合に比べて大きく減少することが期待される。以
上により、<斉次化+モジュラ演算>は正規化対の不適
当な選択により計算できなくなるような例に対しても、
安定して高速にグレブナ基底を生成することを可能にす
る。
【0060】本発明は、システムの最適化問題、機械設
計問題、ロボットの逆運動学計算、偏微分方程式の求解
などの他、CADやコンピュータグラフィックスにおけ
る3次元モデル作成に際して、物体と物体とを滑らかに
つなぐ、いわゆるブレンディング面の生成に利用でき
る。
【0061】
【実施例】以下、本発明の実施例を説明する。
【0062】<実施例1>図1に示したように、本発明
に係る計算機は、多項式を入力する多項式入力部1と、
この入力された多項式について、演算をする演算部2
と、演算部による中間的演算結果や最終結果等を記憶す
るメモリ3と、メモリの容量を制御するメモリ節約部4
とを有する。なお、演算部とメモリ節約部とは、前記ア
ルゴリズム2を実行するプログラムによりコンピュータ
の中央演算装置上に実現される一体的なものであり、物
理的に存在するものではない。よって、この中央演算装
置上に、素数pを選ぶ素数選択手段5と、多項式対の正
規化形式を、pを法として計算する第1の演算手段6
と、前記法pでの正規化形式が0か否かを判定する判定
手段7と、この判定手段により前記法pでの正規化形式
が0でないと判定されたとき有理数上で前記正規化形式
を計算する第2の演算手段8と、グレブナ基底候補の頭
係数を素数pで割り切れるか否かを判定し、割り切れな
い場合のみグレブナ基底候補の計算を続行するグレブナ
基底候補チェック手段10と、前記判定手段により前記
法pでの正規化形式が0と判断されたとき有理数上でも
0とみなして、有理数上での正規化形式の計算を省略す
る省略手段9と、得られた多項式集合F1 から生成した
多項式対の正規化形式を計算することによるグレブナ基
底チェック手段20と、多項式集合Fの元全てがF1
より0に正規化されることを確かめることによるイデア
ルの同等性チェックにより、”F1から生成したすべて
の多項式対のS多項式及びFのすべてが元がF1により
0に正規化される”とき、F1がFのグレブナ基底であ
ると判定するグレブナ基底判定手段21と、このグレブ
ナ基底判定手段による判定に失敗した場合、前記素数選
択手段による素数pをとり直して再度多項式集合F1
得る再演算制御手段22とが実現されるのである。
【0063】なお、メモリには、図2から図7に示した
ように、各種データ構造が構築される。このメモリへの
格納量が少なくてすめば、メモリ自体のハード的な容量
が少なくてすみ、また、演算速度も速くなる。
【0064】図2から図7において、四角で示した構造
はメモリ上の連続領域、すなわち配列を表す。a1→R
はa1が領域Rの先頭を指すポインタであることを示
す。図2は自然数を表す。図3は有理数を表す。図4は
項を表す。図5は多項式を表す。図6、図7は集合S=
{a1、・・・am}のメモリ上での表現である。集合は
計算機上ではリスト、配列において順序を無視したもの
として表現できる。
【0065】メモリの容量は、この図2から図7におけ
る配列が長ければ長いほど、すなわち扱う数が大きけれ
ば大きいほど、容量を要する。本発明ではこのメモリ必
要量を節約できる。以下、これを証明する。
【0066】まず、本実施例のフローチャートを図8、
図9に従って説明する。最初に、図8に示したように、
入力多項式集合Fが多項式入力部から入力される(S
1)。次に、入力多項式集合Fの各元の頭項の係数を割
らず、かつ未使用の素数pを選ぶ(S2)。そして、写
像φを、多項式fに対し、fの各係数をpで割った剰余
に置き換えた多項式を対応させるものとして定義する
(S3)。
【0067】そして、GをFに初期化し、Gp を、Gの
各元のφによる像の集合とし、Gから構成される全ての
多項式対からなる集合Dを作り(S4)、その後、以下
のS5からS14までのループを繰り返す。
【0068】次いで、Dから、規準により、計算するこ
となしに、0に正規化されることがわかっている元を取
り除く(S5)。Dが空集合か否か判定し(S6)、D
が空集合ならば、ループを抜け、S21へ進む。Dが空
集合でなければ(S7)、Dから元Cを、規準により一
つ取り出し、残りを改めてDとし、次いで、多項式対C
からS多項式Pを作る(S8)。
【0069】そして、φ(P)のGpによる、pを法と
する正規化形式NF(φ(P),Gp)を計算して、N
F(φ(P),Gp)が0かどうか判定する(S1
0)。そして、F(φ(P),Gp)が0でない場合の
み、NF(P,G)を計算する(S11)。NF(φ
(P),Gp)が0の場合、S5に戻る。
【0070】もしHC(NF(P,G))がpで割り切
れるならば(S13)、S2に戻る。そうでなければ、
Gの各元と、NF(P,G)からなる多項式対を全て、
Dに加える。このS13では、グレブナ基底候補として
ふさわしいか否かのチェックが行うのである。さらに、
GにNF(P,G)を加え、Gpにφ(NF(P,
G))を加える(S14)。その後S5に戻る。
【0071】ここで、有理数上の正規化形式が0でない
にも係わらず、法pの計算により0と判定してしまう場
合、このフローチャートではチェックできず、グレブナ
基底候補として出力される可能性があるが、S13にお
いて、有理数上で計算された正規化形式の頭係数がpで
割り切れるか否かを判定し、割り切れない場合にはpを
取り直して計算し直しとなる。このことが、「有理数上
の正規化形式が0でないにもかかわらず、法pで0にな
るならば、有理数上の正規化形式の係数が全て法pで割
り切れる」ことを保証する。pが大きい場合、有理数上
の正規化形式の係数が全てpで割り切れる確率は実質的
に0となる。これは、前記の可能性が実質的に0である
ことを示している。
【0072】以上により、S6でD=空集合のとき、G
がグレブナ基底である蓋然性が高いものとして出力し、
メモリに蓄積する。これがグレブナ基底候補Gである。
図9では、図8の処理の結果得られたGをグレブナ基底
とみなし、冗長な基底を取り除き、かつ相互正規化を行
ったものを改めてGとする(S21)。
【0073】そして、Gから生成した多項式対の内、規
準により0に正規化されることがわかっているもの以外
の対からS多項式を作り、Gによる正規化形式を計算
し、0に正規化されないものが出た時点で、S2に戻る
(S22〜S25)。
【0074】また、Fの各元のGによる正規化形式を計
算し、0に正規化されないものがでた時点で、S2に戻
る(S26〜S29)。最後にGを出力する(S3
0)。
【0075】図8、図9中、S10が、モジュラ演算に
よる0への正規化のチェックであり、S22〜S25
が、グレブナ基底であることのチェック、S26からS
29が、入力イデアルと出力イデアルの同等性のチェッ
クである。
【0076】このフローチャート中、簡約の計算と、正
規形の計算について説明する。まず、簡約の計算につい
て説明する。
【0077】グレブナ基底計算に先だって、多項式の各
項の間には、次数に基づくある順序が定められる。そし
て、計算の途中に現れるすべての多項式の各項は、その
順序に従って、上→下の順で整列される。
【0078】f=c1・t1+…+c1・t11が先頭の項、すなわち頭項である。簡約とは、この
式を0と見なし、t1を−1/c1・(c2・t2+…+c
1・t1)で置き換える という操作を、ある多項式に対して行うことである。こ
こで、この置き換えは、t1が割り切る項に対してのみ
行うことができる。すなわち、 g=d1・s1+d2・s2+…dk・sk+…d1・s1 に対し、t1|skとなる場合に、gをfにより簡約で
きる。この場合、簡約後のgは、 g−(dk/c1)・(sk/t1)・f となる。ここで、係数の間の有利数演算が現れるが、実
際には、有理数演算は数多くの最大公約数の計算をする
必要があり、効率を著しく損なうため、 c1/g−dk・(sk/t1)・f なる簡約により、有理数演算が現れないようにする。こ
のようにすると、簡約結果は、先に定義したものの定数
倍となるが、実際には、得られた式を0とおいたものを
考えているので定数倍の差は影響ない。
【0079】次に、正規形の計算について説明する。
【0080】正規形の計算(NF(f,G))は、Gの
どの元の頭項によっても簡約できなくなるまで前節の簡
約を行うことによりえられる。この操作が、簡約を行な
う際のGの元の選びかたによらず有限回で止まることは
保証されている。ただし、結果は、簡約のしかたにより
一般には一意的でない。
【0081】係数として、通常の数値計算において用い
られる浮動小数を用いずに、任意桁の多倍長数(bignum)
を用いるのは、次のような理由による。・得られたグレ
ブナ基底は、数値解を求めやすい形をしており、しか
も、数値解の誤差も明確に評価できる。初めてから浮動
小数を用いて連立代数方程式の求解をすると、多くの場
合、得られた結果の精度が不明となる。・方程式の持つ
数学的な性質が保存されたまま式変形が行なわれる。数
値計算の場合、単なる数値が結果として得られるだけで
ある。・解が有限個でなく、いくつかのパラメタを含む
ような場合も扱える。このような場合は、数値計算はも
ともと無力である。
【0082】図8、図9のフローチャートに従った、グ
レブナ基底計算における著名なテスト問題を以下に示
す。
【0083】
【数1】Katsura5=[u0+2u1+2u2+2u3+2u4+2u5−1,
2u4u0+(2u3+2u5)u1+u2 2−u4,2u3u0+(2u2+2u4)u1
2u5u2−u3,2u2u0+u2 1+2u3u1+(2u4−1)u2+2u5u3,2u1
u0+(2u2−1)u1+2u3u2+2u4u3+2u5u4,u2 0−u0+2u2 1
+2u2 2+2u2 3+2u2 4+2u2 5] order:u5>u4>u3>u2>u1>u0
【0084】
【数2】Katsura6=[u0+2u1+2u2+2u3+2u4+2u5+2u
6−1,2u5u0+(2u4+2u6)u1+2u3u2−u5,2u4u0+(2u3+2
u5)u1+u2 2+2u6u2−u4,2u3u0+(2u2+2u4)u1+2u5u2
(2u6−1)u3,2u2u0+u2 1+2u3u1+(2u4−1)u2+2u5u3+2
u6u4,2u1u0+(2u2−1)u1+2u3u2+2u4u3+2u5u4+2u
6u5,u2 0−u0+2u2 1+2u2 2+2u2 3+2u2 4+2u2 5+2u2 6] order:u6>u5>u4>u3>u2>u1>u0
【0085】
【数3】Cyclic6=[c5c4c3c2c1c0−1,((((c4+c5)c3
c5c4)c2+c5c4c3)c1+c5c4c3c2)c0+c5c4c3c2c1,(((c3
+c5)c2+c5c4)c1+c5c4c3)c0+c4c3c2c1+c5c4c3c2,
((c2+c5)c1+c5c4)c0+c3c2c1+c4c3c2+c5c4c3,(c1
c5)c0+c2c1+c3c2+c4c3+c5c4,c0+c1+c2+c3+c4
c5] order:c0>c1>c2>c3>c4>c5
【0086】
【数4】Lazard=[cba2+(cb2+(c2+c+1)b+c)a+c
b,(cb2+cb)a2+(c2b2+cb+1)a+cb+c,(c2+c)b2a2
(cb2+cb+c)a+c+1] order:a>b>c
【0087】
【数5】Arnborg=[a+b+c+d+e,(b+e)a+cb+dc+
ed,((c+e)b+ed)a+dcb+edc,((ec+ed)b+edc)a+(e+
1)dcb,edcba−1] order:a>b>c>d>e 表1は、上記の各問題について、通常の算法による計算
結果と、本発明の改良を採り入れた算法による計算結果
を対比させたものである。
【0088】ここで、計算プログラムは、発明者らが開
発中の数式処理システムRisa/Asir上にインプリメント
された。計算機は、Sony NEWS5000(R4000 CPU、50MHz)を
用いた。いずれの例も、計算途中に中間式の大きな係数
膨張が生ずるため、既存の数式処理システムでは計算不
可能、あるいは極めて長大な計算時間を必要とする例で
ある。表1で明らかなように、ここで挙げた問題に対し
ては、本発明による改良は顕著な効果を表している。
【0089】
【表1】 ここで、No.1はKatsura5、No.2はKatsura6、N
o.3はCyclic6、No.4はCyclic6、No.5はLaza
rd、No.6はArnborgの実験例を示す。
【0090】Totalは全CPUtime 、NF/Qは有理数
上での正規化、NF/pは法pでの正規化、GBはグレ
ブナ基底チェック(アルゴリズムの(1)の第10
項)、Memberはイデアルの同等性チェック(アルゴリズ
ム(1)の第11項)に対するCPUtimeである。単位
は全て秒である。
【0091】比は<改良前のTotal>/<改良後のTotal
>で、改良によるスピードアップを示す。各計算におい
て、法pとして1009をとって計算を始めているが、
全ての例で、この法により正しいグレナブ基底が得られ
た。optionにおいて、lex は辞書式順序、revlexは全次
数逆辞書式順序を表し、homoは、homogenizationを経由
してグレブナ基底を求めたことを示す。また、数字の入
っていないものは、改良後の計算に比べて極端に時間が
かかることが計算中に推測されたため、中断したもので
ある。
【0092】また、この表1の結果を、1993年の1
月当時と比較すると、以下の表2のようになる。
【0093】
【表2】 *homogenization なしの値 このように、93年1月当時からすると、一段と速度が
向上している。これは本発明によりメモリ節約が効率よ
く行われた結果と推定される。
【0094】メモリ使用状況を見てみると、以下のよう
なことがいえる。
【0095】今回の改良により、時間だけでなく、必要
とされるメモリも減らすことができる。ガーベジコレク
タにより不必要になったメモリが回収されるため、実際
に必要なメモリの絶対量は必ずしも大幅に減少はしない
が、プログラムがシステムに要求するメモリの総和は、
以下の表3が示すように確かに減少する。
【0096】
【表3】 単位:MB 時間の比較と同様、katsura6 と Arnborg に関しては、
改良前の版での計算が実質上不可能のため、比較は行な
っていない。Arnborg に関しては、数時間後に計算を中
断した時点で、カウンタ(32bit)の許容範囲を越えてい
た。その時点で、最低でも一桁以上多いメモリが必要に
なっていたと考えられる。
【0097】メモリは図10に示したように、本発明で
は、経時的にも少ない使用量ですむ。従来では、結果の
表現に必要なメモリ量に比較して、計算途中に急激にメ
モリ使用量が増えるので、そのピークを予測しずらく、
メモリ資源の有効利用が計れない。
【0098】以上で説明したように、本発明によれば、
0に正規化されるS多項式を有理数上で正規化した場合
に大きな係数膨張が生ずるような問題に対しても、モジ
ュラ計算により係数膨張を回避でき、しかも、結果の正
当性の確認が容易であるため、既存の方法に比較して高
速にグレブナ基底を生成でき、代数方程式の高速な求解
に寄与するところが大きい。
【0099】そして、モジュラ演算を用いることにより
計算コストを大幅に下げ、かつ、従来困難であった結果
の正当性の確認を容易にした、正当かつ実用的なグレブ
ナ基底生成法を提供できる。
【0100】<実施例2>本実施例は、斉次化と本発明
におけるモジュラ演算を組み合わせた場合の例であり、
図11に示したように、対象となる多項式集合Fを予め
斉次化する斉次化手段30と、最終的に得られた多項式
集合F1 を非斉次化する非斉次化手段31とを備えてお
り、他は実施例1と同一である。
【0101】表4に、斉次化と本発明におけるモジュラ
演算を組み合わせた場合の例を、斉次化をしない場合、
モジュラ計算をしない場合と比較して示す。
【0102】
【表4】 計算機は、Sony NEWS5000(R4000
CPU,50MHz)を用いた。
【0103】表4で用いた方程式を以下に示す。以下に
おいて、An はn変数 Arnborg systemを示し、A5
らMA5までは、変数順序はアルファベット順である。 A5 {edcba-1,(((d+e)c+ed)b+edc)a+edcb,((c+e)b+ed)a+dcb+edc, (b+e)a+cb+dc+ed,a+b+c+d+e} A6 {fedcba-1,((((e+f)d+fe)c+fed)b+fedc)a+fedcb,(((d+f)c+fe)b+fed)a+ edcb+fedc,((c+f)b+fe)a+dcb+edc+fed,(b+f)a+cb+dc+ed+fe,a+b+c+d+e+f } A7 {gfedcba-1,(((((f+g)e+gf)d+gfe)c+gfed)b+gfedc)a+gfedcb,((((e+g)d+ gf)c+gfe)b+gfed)a+fedcb+gfedc,(((d+g)c+gf)b+gfe)a+edcb+fedc+gfed, ((c+d)b+gf)a+dcb+edc+fed+gfe,(b+g)a+cb+dc+ed+fe+gf,a+b+c+d+e+f+g } MA7 {a2bc+ab2c+abc2+abc+ab+ac+bc,a2b2c+ab2c2+a2bc+abc+bc+a+c,a2b2c2+ a2b2c+ab2c+abc+ac+c+1} MA5 {a+b+c+d+e,ab+bc+cd+de+ea,abc+bcd+cde+dea+eab,bcd+bcde+cdea+ deab+eabc,abcde-1} Knは n+1変数 Katsura system である。
【0104】条件 zp=z-p and zp=0(|p|>n)のもとで
次のように定義される。 {zpn i=-nzizp-i(p=0,・・・n-1),Σn p=-nzp-1} 変数順序:{zn,zn-1,・・・,z0} Rose は Rose system である。
【0105】 {u4 4-20/7a46 2, a46 2u3 4+7/10a46u3 4+7/48u3 4-50/27a46 2-35/27a46-49/216, a46 5u4 3+7/5a46 4u4 3+609/1000a46 3u4 3+49/1250a46 2u4 3 -27391/800000a46u4 3-1029/160000u4 3+3/7a46 5u3u4 2+3/5a46 6u3u4 2 +63/200a46 3u3u4 2+147/2000a46 2u3u4 2+4137/800000a46u3u4 2 -7/20a46 4u3 2u4-77/125a46 3u3 2u4-23863/60000a46 2u3 2u4 -1078/9375a46u3 2u4-24353/1920000u3 2u4-3/20a46 4u3 3-21/100a46 3u3 3 -91/800a46 2u3 3-5887/200000a46u3 3-343/128000u3 3} 変数順序:{u3,u4,a46} 表4のモジュラ演算、非モジュラ演算の項は、それぞれ
のアルゴリズムによる計算時間で、単位は秒、オプショ
ンの項において、Lは辞書式順序、Rは全次数逆辞書式
順序、Hは斉次化を示す。
【0106】比は<非モジュラの実行時間/モジュラの
実行時間>で、モジュラ演算による効果を示す。表4の
比の項で、>nは、いくつかの不必要対を実際に正規化
してみた結果から推測した値で、実際にはさらに大きな
値になると考えられる。
【0107】表4に挙げた例に対しては、K5をのぞ
き、斉次化を行わずにグレブナ基底を計算することはし
ていない。とくに、斉次化を行わない場合、使用メモリ
量が膨大になりついには計算不能になる場合が多い。K
5 に対する結果では、斉次化により10倍程度の高速化
が達成されているところからみて、K6,A7等のさらに
大きな問題では、より大きな比になると考えられる。
【0108】以上により、モジュラ演算と斉次化の組み
合わせは、モジュラ演算単独の場合に比較して、さらに
広い範囲の問題に対して高速なグレブナ基底生成法を与
えることができる。
【0109】なお、実施例2における演算のアルゴリズ
ムを以下に列挙する。これらによるグレブナ基底演算
は、斉次化を除き実施例1と同様である。 <モジュラ演算(斉次化なし)> modular grobner(F) Input:A polynomial set F⊂Z[x1,・・・,xn] Output:The redused Grobner basis G of Id(F) in Q[x1,・・・,xn] again: p←a new prime (素数pを選ぶ) G←modular grobner candidate(F,p) (グレブナ基底候補生成) if G=failure then goto again (グレブナ基底候補チェック、 候補でないとき再度演算) G←grobner test(F,G) (グレブナ基底チェック) if G=failure then goto again (グレブナ基底でないとき再度演 算) return G <モジュラ演算(斉次化伴う)> modular grobner with homogenization(F) Input:A polynomial set F Output:The redused Grobner basis G of Id(F) define the appropriate ordering in Rh according to the ordering in R again: p←a new prime G←modular mrobner candidate(F*,p) (斉次化) if G=failure then goto again G←grobner test(F,G*) (非斉次化) if G=failure then goto again return G ( F*:homogenization;G*:dehomogenization ) <グレブナー基底候補の生成> modular grobner candidate(F,p) Input:A polynomial set F;a prime p Output:A candidate of a Grobner basis G of Id(F) or failure if∃f∈Fs.t. ¬Valid(p,f)then return failure G←F;Gp←{φ(f)|f∈G} D←{{f,g}|f,g∈G;f≠g}(入力多項式集合Fから構成される 全ての多項式対からなる集合Dを 作る。) repeat{ D←D\Useless Pairs (D) (Dから、ある規準により、計算す ることなしに、0に正規化される ことがわかっている元を取り除く ) if D=Void Set then return G (Dが空集合ならば、Fを出 力する) else{C←Select Pair(D);D←D\{C}} P←Spoly(C) (多項式対CからS多項式Pを作 り、 Fにより正規化し、Pの正 規化を NF(P,F)と書く) (1) if NF(φ(P),Gp)≠0 then{ (多項式対の正規化形式を、pを 法として計算する) (2) t←NF(P,G) if ¬Valid(p,t)then return failure D←D∪{{f,t}|f∈G} G←G∪{t};Gp←Gp∪{φ(t)} (法pでの正規化形式が0でな い場合のみ有理数上で正規化 形式を計算する) } } なお、¬Valid=not Validの意味である。 <グレブナ基底チェック> grobner test(F,G) Input:Polynomial sets F,G s.t.Id(G)⊂Id(F) Output:The redused Grobner basis of F or failure (R1)G←G\{g∈G|∃h∈G\{g}s.t.HT(h)|HT(g)} (集合Gをグレブナ基底とみて、冗長な基底を取り除く) (R2)G←Inter Reduce(G)={NF(g,G)\{g}|g∈G} (Gから一つのgを取出し、g以外の元でgを正規化する) (C1)D←{{f,g}f,g∈G;f≠g} D←D\Useless Pairs (D) if∃{f,g}∈D s.t.NF(Spoly(f,g),G)≠0 then return failure (Dから規準により0に正規化されることがわかっている対を取り除く Dの各対からS多項式を作り、Gにより正規化し、0でないものが出た ら再度演算) (C2)if∃f∈F s.t.NF(f,G)≠0 then return failure return G (Fの各元をGにより正規化し、0でないものが出たら再度演算) 以上のアルゴリズムにおいて以下の事項が参照される。
【0110】
【数6】
【0111】
【発明の効果】本発明では、単に高速にグレブナ基底を
生成できるという計算上の特徴を有するだけではなく、
コンピュータにおけるハード資産であるメモリ容量を少
なくできる。従来の方法によれば、得るべきグレブナ基
底の最終結果が予想できないことと、通常中間式が巨大
な桁数となることから、予め大容量のメモリを設定して
おかなければならず、資源の無駄になる。これに対し、
本発明では、メモリ容量を節約でき、かつ、高速演算に
資することができる。
【図面の簡単な説明】
【図1】 本発明の概念ブロック図
【図2】 自然数のメモリ上の表現を示す図
【図3】 有理数のメモリ上の表現を示す図
【図4】 項のメモリ上の表現を示す図
【図5】 多項式のメモリ上の表現を示す図
【図6】 集合S={a1、・・・am}のリストによる
メモリ上での表現
【図7】 集合S={a1、・・・am}の配列によるメ
モリ上での表現
【図8】 本発明のフローチャート1を示す図
【図9】 本発明のフローチャート2を示す図
【図10】 新旧におけるメモリ使用量の経時変化を示
す図
【図11】 実施例2を示す概念ブロック図
【符号の説明】 1・・多項式入力部 2・・演算部 3・・メモリ 4・・メモリ節約部 5・・素数選択手段 6・・第1の演算手段 7・・判定手段 8・・第2の演算手段 9・・省略手段 10・・グレブナ基底候補チェック手段 20・・グレブナ基底チェック手段 21・・グレブナ基底判定手段 22・・再演算制御手段 30・・斉次化手段 31・・非斉次化手段

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 パラメータ間の制約が連立代数方程式で
    与えられるモデルにつき、該連立方程式を表すとともに
    メモリ中に記述されている多項式集合Fからグレブナ基
    底を生成するブッフバーガー演算をする計算機であり、 素数pを選ぶ素数選択手段(5)と、 多項式対の正規化形式を、pを法として計算する第1の
    演算手段(6)と、 前記法pでの正規化形式が0か否かを判定する判定手段
    (7)と、 この判定手段により前記法pでの正規化形式が0でない
    と判定されたとき有理数上で前記正規化形式を計算する
    第2の演算手段(8)と、 前記判定手段により前記法pでの正規化形式が0と判断
    されたとき有理数上でも0とみなして、有理数上での正
    規化形式の計算を省略する省略手段(9)と、を有する
    メモリ節約制御部(4)を備え、 最終的に生成された多項式集合F1 を、グレブナ基底候
    補として得ることを特徴とするグレブナ基底生成装置。
  2. 【請求項2】 請求項1において、得られた多項式集合
    1 から生成した多項式対の正規化形式を計算すること
    によるグレブナ基底チェック手段と、 多項式集合Fの元全てがF1 により0に正規化されるこ
    とを確かめることによるイデアルの同等性チェックによ
    り、”F1 から生成したすべての多項式対のS多項式及
    びFのすべてが元がF1により0に正規化される”と
    き、F1がFのグレブナ基底であると判定するグレブナ
    基底判定手段(21)と、 このグレブナ基底判定手段による判定に失敗した場合、
    前記素数選択手段による素数pをとり直して再度多項式
    集合F1を得る再演算制御手段(22)と、 を備えたグレブナ基底生成装置。
  3. 【請求項3】 請求項1において、第2の演算手段
    (8)は、前記第1の演算手段(6)で得た、法pでの
    正規化形式が0でないと判断されたとき、その都度直ち
    に有理数上で前記正規化形式を計算することを特徴とす
    るグレブナ基底生成装置。
  4. 【請求項4】 請求項3において、グレブナ基底候補の
    頭係数を素数pで割り切れるか否かを判定し、割り切れ
    ない場合のみグレブナ基底候補として出力するグレブナ
    基底候補チェック手段を有することを特徴とするグレブ
    ナ基底生成装置。
  5. 【請求項5】 請求項1から4において、対象となる多
    項式集合Fを予め斉次化する斉次化手段と、 最終的に得られた多項式集合F1 を非斉次化する非斉次
    化手段とを備えたことを特徴とするグレブナ基底生成装
    置。
  6. 【請求項6】 入力多項式集合Fから構成される全ての
    多項式対からなる集合Dを作ったのち、 Dから、ある規準により、計算することなしに、0に
    正規化されることがわかっている元を取り除き、 Dが空集合ならば、Fの計算を続行し、Dが空集合で
    なければ、Dから元Cを、ある規準により一つ取り出
    し、残りを改めてDとし、 多項式対CからS多項式Pを作り、Fにより正規化
    し、Pの正規化をNF(P,F)と書き、 NF(P,F)が0でないならば、Fの各元と、NF
    (P,F)からなる多項式対を全て、Dに加え、さら
    に、FにNF(P,F)を加え、 これらからを繰り返すことにより、」パラメータ間
    の制約が連立代数方程式で与えられるモデルについて、
    該連立方程式を表す、メモリ中に記述されている多項式
    集合Fからグレブナ基底を生成するブッフバーガー演算
    をする計算機において、 a)素数pを選び、 b)多項式対の正規化形式を、pを法として計算し、 c)法pでの正規化形式が0でない場合のみ有理数上で
    正規化形式を計算し、 d)法pでの正規化形式が0の場合は有理数上でも0と
    みなして、有理数上での正規化形式の計算を省略し、 e)グレブナ基底の候補である多項式集合F1 を得るこ
    とを特徴とするグレブナ基底生成方法。
  7. 【請求項7】 請求項6において、 e)最終的に生成された、グレブナ基底とは限らない多
    項式を含む多項式集合F1について、 e−1)F1 から生成した多項式対の正規化形式を計算
    することによるグレブナ基底チェックと、 e−2)Fの元全てがF1 により0に正規化されること
    を確かめることによるイデアルの同等性チェックを行う
    ことにより、 ”F1 から生成したすべての多項式対のS多項式及びF
    のすべてが元がF1 により0に正規化される”とき、F
    1 がFのグレブナ基底であることをチェックし、 f)このチェックに失敗した場合、a)pをとり直して
    b)からe)を繰り返すことを特徴とするグレブナ基底
    生成方法。
  8. 【請求項8】 請求項7において、前記(c)のステッ
    プは、多項式対の正規化形式を、pを法として計算し、
    法pでの正規化形式が0でないと判断したときは、その
    都度直ちに有理数上で正規化形式を計算することを特徴
    とするグレブナ基底生成方法。
  9. 【請求項9】 請求項8において、有理数上で計算され
    た正規化形式の頭係数を素数pで割り切れるか否かを判
    定し、割り切れない場合のみ正規のグレブナ基底候補の
    計算を続行するステップを有することを特徴とするグレ
    ブナ基底生成方法。
  10. 【請求項10】 請求項6から9において、対象となる
    多項式集合Fを予め斉次化するステップと、 最終的に得られた多項式集合F1 を非斉次化するステッ
    プとを備えたことを特徴とするグレブナ基底生成方法。
JP6255759A 1993-11-22 1994-10-20 グレブナ基底生成方法及び装置 Withdrawn JPH07200538A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6255759A JPH07200538A (ja) 1993-11-22 1994-10-20 グレブナ基底生成方法及び装置
US08/343,912 US5678055A (en) 1993-11-22 1994-11-17 Method and device for generating Grobner bases to reduce memory usage and increase computing speed

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP29219493 1993-11-22
JP5-292194 1993-11-22
JP6255759A JPH07200538A (ja) 1993-11-22 1994-10-20 グレブナ基底生成方法及び装置

Publications (1)

Publication Number Publication Date
JPH07200538A true JPH07200538A (ja) 1995-08-04

Family

ID=26542400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6255759A Withdrawn JPH07200538A (ja) 1993-11-22 1994-10-20 グレブナ基底生成方法及び装置

Country Status (2)

Country Link
US (1) US5678055A (ja)
JP (1) JPH07200538A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035314A (en) * 1996-07-17 2000-03-07 Fujitsu Limited Information processing method
FR2873875B1 (fr) * 2004-07-28 2006-12-15 Canon Kk Localisation d'erreurs pour codes de geometrie algebrique

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3963905A (en) * 1974-09-11 1976-06-15 Bell Telephone Laboratories, Incorporated Periodic sequence generators using ordinary arithmetic
US3971998A (en) * 1975-05-02 1976-07-27 Bell Telephone Laboratories, Incorporated Recursive detector-oscillator circuit
US5142579A (en) * 1991-01-29 1992-08-25 Anderson Walter M Public key cryptographic system and method
US5377207A (en) * 1992-09-03 1994-12-27 The United States Of America As Represented By The United States National Aeronautics And Space Administration Mappings between codewords of two distinct (N,K) Reed-Solomon codes over GF (2J)
US5263085A (en) * 1992-11-13 1993-11-16 Yeda Research & Development Co. Ltd. Fast signature scheme based on sequentially linearized equations

Also Published As

Publication number Publication date
US5678055A (en) 1997-10-14

Similar Documents

Publication Publication Date Title
Waki et al. Sums of squares and semidefinite program relaxations for polynomial optimization problems with structured sparsity
Li et al. Local correlation calculations using standard and renormalized coupled-cluster approaches
JP7407291B2 (ja) 浮動小数点数の乗算計算方法及び機器、並びに算術論理演算装置
CN1271508C (zh) 产生具有可变精度的对数信号近似
Ikonen et al. Componentwise splitting methods for pricing American options under stochastic volatility
Estep et al. An a posteriori–a priori analysis of multiscale operator splitting
Gao et al. Algorithm 846: MixedVol: a software package for mixed-volume computation
Dou et al. ENAP: An efficient number-aware pruning framework for design space exploration of approximate configurations
US6631391B1 (en) Parallel computer system and parallel computing method
US10992314B2 (en) Residue number systems and methods for arithmetic error detection and correction
Mårtensson et al. The number of the beast: Reducing additions in fast matrix multiplication algorithms for dimensions up to 666
CN113836386A (zh) 一种并行模式搜索空间构造系统和方法
JPH07200538A (ja) グレブナ基底生成方法及び装置
US20220414462A1 (en) Computer-readable recording medium, information processing method, and information processing apparatus
Griggio et al. Efficient interpolant generation in satisfiability modulo linear integer arithmetic
JP4202701B2 (ja) 多項式剰余系演算装置、方法及びプログラム
US20060123074A1 (en) Representing Data Having Multi-dimensional Input Vectors and Corresponding Output Element by Piece-wise Polynomials
US12566918B2 (en) Document management system for adding appended information indicating changes made to the document to the revised document
Brent Further analysis of the Binary Euclidean algorithm
JPH09134342A (ja) グレブナ基底生成方法及び装置
Smith A multiple-precision division algorithm
Duff MA57-a new code for the solution of sparse symmetric definite systems
US6256656B1 (en) Apparatus and method for extending computational precision of a computer system having a modular arithmetic processing unit
JP4294000B2 (ja) クロック遅延解析装置、クロック遅延解析方法、クロック遅延解析プログラム、および記録媒体
JP3164055B2 (ja) 集積回路の遅延時間計算装置及び遅延時間計算プログラムを記録した記憶媒体

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020115