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

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

Info

Publication number
JPH09134342A
JPH09134342A JP29154595A JP29154595A JPH09134342A JP H09134342 A JPH09134342 A JP H09134342A JP 29154595 A JP29154595 A JP 29154595A JP 29154595 A JP29154595 A JP 29154595A JP H09134342 A JPH09134342 A JP H09134342A
Authority
JP
Japan
Prior art keywords
basis
term
gröbner
coefficient
groebner
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
JP29154595A
Other languages
English (en)
Inventor
Masayuki Noro
正行 野呂
Kazuhiro Yokoyama
和弘 横山
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 JP29154595A priority Critical patent/JPH09134342A/ja
Publication of JPH09134342A publication Critical patent/JPH09134342A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 (修正有) 【課題】連立代数方程式などの解法に有効なグレブナ基
底の生成方法及び装置のメモリ資源を節約する。 【解決手段】 パラメータ間の制約が整数係数連立代数
方程式で与えられるモデルについて、該連立方程式を表
すとともにメモリ中に記述されている整数係数多項式集
合Fから、項順序Oに関するグレブナ基底を生成するブ
ッフバーガー演算を行う計算機において、1.グレブナ
基底を容易に計算できる項順序O1 を選び、2.O1
関するFのグレブナ基底G1 を計算し、3.G1 の各要
素の全ての頭係数を割らない素数pを選び、係数をpに
関する剰余に置き換える操作をφpとし、4.φp
(G1)のOに関するグレブナ基底G2 を計算し、5.
2の各元hに対し、整数係数多項式fhで、頭係数がp
で割り切れず、かつfh の頭数がhの領域と一致するも
のを求め、6.もしG2 の全ての元hに対しfh が求ま
ったならばfh の全体を項順序Oに関するFのグレブナ
基底として出力し、7.もしいずれかのhに対し、fh
が求まらなければ前記3のpを取り直し前記4以下を繰
り返すようディジタルプロセッサを制御する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、連立代数方程式な
どの解法に有効なグレブナ基底の生成方法及び装置に係
り、高速演算可能でメモリ資源を節約できるグレブナ基
底生成法に関する。
【0002】
【従来の技術】工学における諸問題において、連立代数
方程式に定式化される問題は数多い。例えば、システム
の最適化問題、機械設計問題、ロボットの逆運動学計
算、偏微分方程式の求解など、多岐にわたっている。し
かしこれらを代数的に厳密に解く一般的な方法は知られ
ておらず、数値的解法に頼ることがほとんどであった。
【0003】近年、イデアル理論に基づく解法がいくつ
か知られるようになってきた。その一つの方法にグレブ
ナ基底を使う方法がある。この方法は、与えられた方程
式の解を、過不足なく、数値解を求め易い形で求めるこ
とができるという点で優れているが、グレブナ基底の計
算自体の計算量が、時間的、空間的にかなり大きくなる
場合があるという欠点をもつ。この欠点は、モジュラ計
算の応用、斉次化といった手法によりある程度改良され
ているが、実用化のためにはさらなる改良が必要であ
る。
【0004】グレブナ基底生成算法は、ブッフバーガー
(Buchberger)算法と呼ばれ、Buchbergerにより考案さ
れ、数多くの人々により改良され、そのアルゴリズムは
計算機に組み込まれて多くの人に使用されてきた。その
アルゴリズムの骨子は以下の通りである。 アルゴリズム(1) 入力:多項式集合F 出力:Fで生成されるイデアルのグレブナ基底G (1) D←{{f,g}|f,g∈G;f≠g} do{ (2) Dから規準により0に正規化されることがわかっている対を取り除く (3) ifD=0 then return G else{ C←Dから規準により一つ選んだ元 D←D−{C} } (4) P←CのS多項式 (5) t=NF(P,G) if t≠0 then{ D←D∪{{f,t}|f∈G} G←G∪{t} } } 以上を簡単に説明すると、 1.入力多項式集合Gから構成される全ての多項式対か
らなる集合Dを作り、次項以下を繰り返す。 2.Dから、ある規準により、計算することなしに、0
に正規化されることがわかっている元を取り除く。 3.Dが空集合ならば、Gを出力する。Dが空集合でな
ければ、Dから元Cを、ある規準により一つ取り出し、
残りを改めてDとする。 4.多項式対CからS多項式Pを作り、Gにより正規化
する。Pの正規化をNF(P,G)と書く。 5.NF(P,G)が0でないならば、Gの各元と、N
F(P,G)からなる多項式対を全て、Dに加える。さ
らに、GにNF(P,G)を加える。
【0005】ここで、用語の説明を行う。ここでは、多
項式を、単項式の和とみなす。単項式とは、項と係数の
積であり、項とは変数の幕積である。項の集合には、あ
る一つの全順序が定められていて、多項式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に正規化されることと同値である。
【0006】以上の計算法において、考えられる主な改
良は、以下の通りである。 (1)不必要な正規化計算を省く手法 ここでは、 ・第2項における、0に正規化される対すなわち不必要
対の検出のための規準 ・第3項における、正規化の対象となる対の選び方の規
準 の改良の2種類に分けられる。
【0007】これは、第4項における正規化が、算法全
体の計算量の主要な部分を占めることと、第3項で取り
出す対の選び方により、計算結果は常に一意的であるに
も係わらず、その後の計算経過が大きく異なるためであ
る。
【0008】前者では、現在Gebauer-Moellerによる規
準が、後者では、Giovini、Moraらによるphantom degre
eによる規準が最良とされ、実際に、有効性が確かめら
れている。
【0009】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項における不必要対を完全に排
除することはできず、残った対は実際に正規化を計算し
てはじめて、ある対が不必要対か否かを判定することが
できた。特に、問題によっては、規準によって不必要対
が除かれていても、なお、残った不必要対の正規化にか
かる時間が全体の計算時間の大部分を占めることも少な
くない。
【0010】Gebauer-Moeller による規準は、極めて鋭
敏であり、これ以上不必要対を除こうとすることは、か
えって計算コストを増大させる結果となる場合がある。
このため、0に正規化される計算にかかるコストをいか
に少なくするかが、この算法の実用化の大きなポイント
の一つとなる。
【0011】正規化の計算コストが大きくなるのは、一
つの多項式の正規化において、結果が0であるにも係わ
らず、任意多倍長整数である係数が、計算途上におい
て、しばしば極めて大きな数となってしまうことによる
場合が多い。この計算において、計算機はそのような中
間式を格納するためのメモリを用意しなければならず、
大容量メモリを必要とする。
【0012】(2)正規化計算による係数膨張を押える
手法 一般に、前記したような中間式膨張を避けるため、モジ
ュラ演算と呼ばれる手法が用いられる場合がある。これ
は、途中の整数計算において、結果を、ある整数すなわ
ち法で割った剰余で置き換える方法で、当然、中間式膨
張は抑制される。ただし、真の結果に現れる整数の大き
さが、法として選んだ整数の大きさを越える場合、モジ
ュラ演算により得られた結果は真の結果とは一般に異な
り、真の結果を得るためには何らかの操作が必要にな
る。また、得られた結果が、真の結果の係数を剰余演算
して得られるものになっている場合、その法は妥当であ
る、と言われるが、常に法が妥当であるという保証はな
い。
【0013】グレブナ基底の計算法においても、全ての
ステップでモジュラ計算を適用し、その結果から真のグ
レブナ基底を復元するという試みがいくつかなされてい
るが、真の結果の係数の大きさが不明であり、また選ん
だ法が妥当なもとであることの確認が困難であることな
どから、算法の停止性が保証されないか、あるいは結果
の正当性の確認が困難となり、実用化されていなかっ
た。
【0014】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.には、モジュラ演算によ
るグレブナ基底計算をまず行い、その際の正規化計算の
履歴を保存し,その履歴を元に、グレブナ規定を計算す
る例が記載されている。
【0015】具体的には次のようになる。 1.法pでのグレブナ基底をまず計算する。 2.この過程で、φ(P)を正規化する際、どの要素
で、どの項で消去したか、また、どのペアが0に正規化
したか、という履歴を保存しておく。 3.前項の履歴を元に、有理数上でのグレブナ基底を計
算する。その際、 ・法pで0に正規化されたペアに関しては、有理数上の
正規化は行わない。 ・法pで0でない多項式に正規化されたペアに関して
は、履歴を元に有理数上で正規化する。 その際、有理数上での正規化が、法pでの正規化に対応
しない場合、pの選び方が妥当でなかったとして、p
をとり直して1.からやり直す。(実際には、やり直し
の前に復活のための操作が適用される。) 4.有理数上でのグレナブ基底候補が求まったら、チェ
ックを行う。もし失敗したら、pをとり直して1.に戻
る。
【0016】この方法では、pに妥当な場合、有理数上
での正規化の際、消去すべき項を探す必要がないため、
有理数上での正規化が迅速に行われる可能性がある。一
方で、妥当でないpを選んだ場合、それが判明するの
は、法pでのグレブナ基底計算を最後まで行ない、それ
を基に有理数上でのグレブナ基底計算をしている段階と
いうことになる。その判明する段階が早ければ早いほ
ど、法pで無駄な計算を多くしてしまい、メモリ使用量
を増大させる。
【0017】(3)より最良に近い計算手順での計算 これは斉次化を利用した計算手法である。すなわち、対
象となる多項式集合Fを予め斉次化してグレブナ基底演
算を行い、最終的に得られた多項式集合F1 を非斉次化
するのである。
【0018】斉次化自体は既知である(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の全次数に
等しい斉次多項式となる。
【0019】斉次多項式g(x1,・・・,xn,t)に対し、
tに関する非斉次化(dehomogenization)g*を、 g*(x1,・・・,xn)=g(x1,・・・,xn,1) で定義する。明らかに (f**=f が成り立つ。
【0020】簡単に言えば、斉次化とは、方程式の各項
の次数を同一にすることである。例えば、f(x、y)
=2x2y+xy+x+1という方程式があるとする。
この各項の次数をみると、2x2yにおいて、2の次数
は0、x2の次数は2、yの次数は1であるから2x2
の次数は2+1=3である。同様に、xyの次数は2、
xの次数は1、1の次数は0である。
【0021】この方程式の項の各次数を同一にするた
め、新しい変数tを導入する。f(x、y、t)=2x
2y+xyt+xt2+1t3 とすれば、各項の次数はす
べて3となる。
【0022】このように次数を同一にした後に本発明に
おけるグレブナ基底を求め、得られた解においてt=1
を代入すれば、次数は元に戻る。斉次化後のグレブナ基
底と、元の多項式集合のグレブナ基底の関係について
は、 命題:(H)HT(g)*=HT(g*) が成り立つ。
【0023】斉次化は最良の計算手順を与えるが、斉次
化により不必要対が急速に増えるという問題がある。特
に斉次化によって、現れる不必要対の正規化は、後にな
って残っているものほど長大な整数の演算が必要とされ
るものが多く、斉次化によって得られた効果を打ち消し
てしまう場合も少なくない。
【0024】そこで、本発明者は、斉次化を利用しつ
つ、斉次化の欠点を解消し、メモリの利用効率を高めた
グレブナ基底の生成方法を特願平6−255759号で
提案した(未公開)。これは斉次化手法とモジュラ演算
法(以下trace-liftingということがある)を組み合わ
せたものである。
【0025】斉次化を用いたグレブナ基底の計算は通常
の場合、次のように行われる。まず、入力多項式集合F
の各多項式を前記のように斉次化した多項式集合Fh
作る。次に、Fh のグレブナ基底Gh を計算する。そし
て、このGh を非斉次化し、必要があれば相互正規化を
行ったものをGとする。このGがFのグレブナ基底とな
る。
【0026】ここで、Fh のグレブナ基底の計算に用い
られる項順序は、Fに対する項順序から決定することが
できる。先に述べたようにグレブナ基底計算において発
生する不必要対が全体の計算効率、ひいてはメモリ使用
効率に悪影響を及ぼすが、このグレブナ基底計算に本発
明のモジュラ演算を適用することにより、不必要対の増
加による計算時間の増大すなわちメモリの使用量が押さ
えられる。しかし、上記でFh のグレブナ基底そのもの
を計算しようとした場合、Fh の斉次化により、一般に
冗長性の除去操作を行ってもGh の基底の個数は非常に
大きいものとなり、また「不必要対の選択基準」に従っ
た不必要対の除去を行ってもあまり効果がないため、モ
ジュラ演算法の後半部分のグレブナ基底チェックの際、
モジュラ演算により省略した不必要対の正規化を殆どす
べて行わなければならない。
【0027】しかし、以下の方法によれば、このような
問題を回避して斉次化とモジュラ演算の効果を最大限に
生かし、メモリの使用を最小限として、資源の有効活用
を図ることができる。
【0028】斉次化+モジュラ演算法 1.入力多項式集合Fの各多項式を斉次化した多項式集
合集合Fh を作る。 2.新たに素数pを選び、Fh のグレブナ基底候補G'h
をモジュラ演算法により計算する。
【0029】すなわち、入力多項式集合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を選
ぶ操作をし、その後前記の操作を繰り返す。
【0030】ここでは、モジュラ演算法によるグレブナ
基底候補生成と、グレブナ基底チェックとの間に非斉次
化を行ったことに特徴を有する。斉次化Fh のグレブナ
基底候補であるG'hは基底の個数も大きく、またG'h
対するグレブナ基底チェックは、数多くの正規化計算を
行わなければならない。しかし、最終的に求めたいもの
はFのグレブナ基底であり、Fh のグレブナ基底を求め
る必要はないため、G'h のグレブナ基底チェックを省
き、G'hの非斉次化から直接Fのグレブナ基底候補を求
めるのである。G'hの非斉次化は次の効果をもたらす。 1.G'hを非斉次化した段階で多くの基底が冗長とな
り、それらの冗長基底は除かれ、G' はG'hに比べてか
なり要素の個数が減る。 2.G' は非斉次化されているため、グレブナ基底チェ
ックにおいて必要となる不必要対の正規化は、G'hにお
ける場合に比べて大きく減少することが期待される。以
上により、<斉次化+モジュラ演算>は正規化対の不適
当な選択により計算できなくなるような例に対しても、
安定して高速にグレブナ基底を生成することを可能にす
る。
【0031】(4)ある順序によるグレブナ基底から他
の順序によるグレブナ基底に直接変換する手法 前記した(1)から(3)は、ブッフバーガー算法の改
良であるが、(4)は、ある項順序でのグレブナ基底か
ら、ブッフバーガー算法を経ずに、直接他の項順序での
グレブナ基底を求める方法(基底変換)で、第一の項順
序のグレブナ基底が容易に求まり、かつ基底変換が、ブ
ッフバーガー算法より容易であれば、効率のよいグレブ
ナ基底計算法となる。
【0032】この方法は、具体的には次のように述べら
れる。O1,O2を項順序とする。求めるのはO2 に関す
るグレブナ基底である。 1.FのO1(項順序)に関するグレブナ基底G1を求め
る。 2.t←1,R←空集合,G2←空集合とする。 3.もし、NF(t,G1)=ΣsRsNF(s,
1)(asは有理数)と書けたならば、G2にt−Σs
Rssを付け加える。 4.そうでなければtをRに付け加える。 5.O2に関してs>tかつG2の全ての元のO2に関す
る頭項で割り切れない単項式sのうち、O2に関して最
低順序のものがもしあれば、それをtとして第3項に戻
る。 6.もしなければG2を出力する。
【0033】
【発明が解決しようとする課題】以上の種々の改良によ
り、より広い範囲の問題が解けるようになったが、辞書
式順序のグレブナ基底を求める場合、 (1)trace-liftingにおいて必要なグレブナ基底チェ
ックのコストが大きい場合がある。 (2)trace-liftingによってもなお、不必要な計算
(0に正規化される計算)にかかるコストが大きい場合
がある。 (3)基底変換は通常、線形代数的手法により行われる
が、その際、係数膨張が生じ、変換が困難になる場合が
ある。などにより、なお解くのが困難な問題が存在す
る。以下で、これらが生じる理由を述べる。
【0034】前記(1)は、最終結果の係数が巨大にな
る場合にグレブナ基底チェックを行うことは、多数の多
倍長演算を行うことになり、メモリ使用量、計算時間が
増大するためである。
【0035】前記(2)は、係数だけでなく、項の数自
体が増大する場合、trace-liftingで係数膨張は押さえ
られても、項の数の増大による正規化計算のコスト増に
より計算時間が増大するためである。
【0036】前記(3)は、基底変換が、順序の低い単
項式から順に、それより順序の低い単項式の線形集合で
書けるか否かをチェックしていく、という方法であるた
め、実際に線形集合で書けるまでに、多くの無駄な時間
が生じる場合があり、また、その途中の計算自体が係数
膨張を引き起こし、メモリ使用量、計算時間が増大する
場合があるためである。
【0037】本発明は、計算機において、使用メモリ量
を削減でき、高速演算が可能な、グレブナ基底生成方法
及び装置を提供することを課題とする。
【0038】
【課題を解決するための手段】本発明は、数学的な性質
により、前記課題における(1)のグレブナ基底のチェ
ックを省き、trace-liftingと基底変換を併用すること
により、(2),(3)の困難を避けながら、使用メモ
リ量を削減し、高速にグレブナ基底を生成する方法及び
装置である。
【0039】本発明において基本となるのは次の定理で
ある。以下、多項式集合Fで生成されるイデアルをId
(F)と書く。 定理 Fを整数係数多項式集合とし、O1,O2を項順序とす
る。G1をFのO1に関するグレブナ基底とする。また、
pを素数とする。このとき、 条件1:G1の各元gに対しgのO1に関する頭項はpで
割り切れず、φp(g)はId(F)に属するならば
(ただし、φp は、G1 の各要素の全ての頭係数を割ら
ない素数pを選び、係数をこの素数pに関する剰余に置
き換える操作である)、 i)φp(G1)はφp(F)のO1に関するグレブナ基底で
ある。
【0040】さらに 条件2:G’2をφp(F)のO2 に関するグレブナ基底
とするとき、G’2 の各元hに対し、Id(F)に属す
る整数係数多項式fh が存在してfh のO2 に関する頭
項はpで割り切れず、fh とhとのO2 に関する頭項が
一致するならば、 ii)G2={fh|h∈(G)’2}はFのO2 に関するグ
レブナ基底である。
【0041】この定理において、条件2は、trace-lift
ing によるグレブナ基底候補生成が成功した時点で満た
されている。trace-lifting においては、この後、G2
が実際にグレブナ基底になっているか否かをチェックす
る必要があり、それが前節の1番目の困難の原因であっ
た。しかし、この定理によれば、既に他の項順序でグレ
ブナ基底が計算してあり、それに対する条件1が満たさ
れるよう素数pが選ばれていれば、チェックなしにG2
がグレブナ基底であると分かるのである。
【0042】よって、もし、他の順序に関するグレブナ
基底を求める時間が、チェックに要する時間よりも小さ
いならば、前節の1番目の困難を回避することができ
る。この定理において、条件2は、trace-lifting によ
るグレブナ基底候補生成が成功した時点で満たされてい
る。trace-lifting においては、この後、G2 が実際に
グレブナ基底になっているか否かをチェックする必要が
あり、それが前節の1番目の困難の原因であった。しか
し、この定理によれば、既に他の項順序でグレブナ基底
が計算してあり、それに対する条件1が満たされるよう
素数pが選ばれていれば、チェックなしにG2 がグレブ
ナ基底であると分かる。
【0043】以上の定理を行う本発明では、以下のグレ
ブナ基底生成方法を提供する。 (1) パラメータ間の制約が整数係数連立代数方程式
で与えられるモデルについて、該連立方程式を表すとと
もにメモリ中に記述されている整数係数多項式集合Fか
ら、項順序Oに関するグレブナ基底を生成するブッフバ
ーガー演算を行う計算機において、 1.グレブナ基底を容易に計算できる項順序O1 を選
び、 2.O1 に関するFのグレブナ基底G1 を計算し、 3.G1 の各要素の全ての頭係数を割らない素数pを選
び、係数をpに関する剰余に置き換える操作をφpと
し、 4.φp(G1)のOに関するグレブナ基底G2 を計算
し、 5.G2の各元hに対し、整数係数多項式fhで、頭係数
がpで割り切れず、かつfh の頭数がhの領域と一致す
るものを求め、 6.もしG2 の全ての元hに対しfh が求まったならば
h の全体を項順序Oに関するFのグレブナ基底として
出力し、 7.もしいずれかのhに対し、fh が求まらなければ前
記3のpを取り直して前記4以下を繰り返すようディジ
タルプロセッサを制御するグレブナ基底生成方法。
【0044】(2) この(1)において、項順序Oに
対し、中間的な項順序を複数個(O1,O2,・・・On
=Oとする)用意し、O1→O2,O2→O3,・・・O
n-1→Onなる基底変換を、前記(1)の方法により行
い、項順序Oに関するグレブナ基底生成方法。
【0045】(3) 前記(2)において、5項におけ
るfh を 1.法pでのグレブナ基底をまず計算する。 2.この過程で、φ(P)を正規化する際、どの要素
で、どの項で消去したか、また、どのペアが0に正規化
したか、という履歴を保存しておく。 3.前項の履歴を元に、有理数上でのグレブナ基底を計
算する。その際、 ・法pで0に正規化されたペアに関しては、有理数上の
正規化は行わない。 ・法pで0でない多項式に正規化されたペアに関して
は、履歴を元に有理数上で正規化する。 4.前項の有理数上での正規化が、法pでの正規化に対
応しない場合、pの選び方が妥当でなかったとして、n
ilを返す。 という手順で定義されるtrace-liftingによる候補生成
法で求めるグレブナ基底生成方法。
【0046】また、本発明では、Fを整数係数多項式集
合、O1,O2を項順序、多項式集合Fで生成されるイデ
アルをId(F)、G1をFのO1に関するグレブナ基
底、pを素数としたとき、G1の各元gに対しgのO1
関する頭項がpで割り切れるか否かと、φp(g)がI
d(F)に属するか否かとを判定し、前記頭項がpで割
り切れず、かつ、φp(g)がId(F)に属すると判
定したとき(φp は、G1 の各要素の全ての頭係数を割
らない素数pを選び、係数をこの素数pに関する剰余に
置き換える操作である)、φp(G1)はφp(F)のO1
に関するグレブナ基底であると判定する、第1のグレブ
ナ基底判定手段と、G’2をφp(F)のO2 に関するグ
レブナ基底とするとき、G’2 の各元hに対し、Id
(F)に属する整数係数多項式fh が存在してfh のO
2 に関する頭項がpで割り切れるか否かと、fh とhと
のO2 に関する頭項が一致するか否かとを判定し、頭項
がpで割り切れず、かつ、fh とhとのO2 に関する頭
項が一致すると判定したとき、G2={fh|h∈
(G’)2}はFのO2 に関するグレブナ基底であると
判定する第2のグレブナ基底判定手段と、前記第1のグ
レブナ基底判定手段と、第2のグレブナ判定手段の出力
が、いずれも、グレブナ基底であるとの判定出力である
とき、G2 がφp(F)のO2 に関する正当なグレブナ
基底として出力する出力手段と、を備えるグレブナ基底
生成装置を提供する。
【0047】さて、前節の2番目の困難の回避は、現在
のところ、基底変換による方法が最も有効的であると考
えられている。しかし、通常の基底変換では、3番目の
困難の為に有効性が低下する。
【0048】そこで、(4) 前記(2)において、5
項におけるfh をG2 の各元の係数を未定係数に置き換
えて、G1 による正規形を計算し、係数を取り出して未
定係数に対する線形方程式を解くことにより求める方法
を提供する。
【0049】すなわち、基底変換を、 1.φp(G1)のO2 に関するグレブナ基底G2 を求
め、 2.G2 の各元h=Σatt に対し、係数at を未定係
数ut で、tをG1 による 正規形NF(t,G1) で
置き換え、 3.hに現れる各項の係数を取り出し、utに関する線
形方程式として解き、解けない場合はpを取り直し、 4.全てのhについて解けたら、その解全体をグレブナ
基底として出力する。という方法により行う。
【0050】失敗するpは有限個のため、大きな素数を
選べば、十分大きい確立で成功する、このとき、通常の
方法と比較して、解に現れる項を予め指定してあるた
め、線形方程式の求解は1回ですみ、無駄な計算がな
い。また、通常の方法では、解に最終的に現れない項も
含めて未定係数法を実行しなければならないが、本発明
の方法では、この点における無駄も生じない。
【0051】さらに、各hに対する計算は互いに全く関
連がないため、完全に並列に実行できる。これは、並列
計算あるいは通信を利用した分散計算方法に対し極めて
有利である。
【0052】すなわち、本発明においては、φp(G1
のO2 に関するグレブナ基底G2 を求めるグレブナ基底
演算手段と、G2 の各元h=Σatt に対し、係数at
を未定係数ut で、tをG1 による正規形NF(t,G1)
で置き換える置換手段と、hに現れる各項の係数を取
り出し、utに関する線形方程式として解き、解けない
場合はpを取り直し、全てのhについてutに関する線
形方程式として解き全てのhについて解けたら、その解
全体をグレブナ基底として出力する演算手段とを備え
る。
【0053】以下、本発明の作用について述べる。本発
明の計算機は、グレブナ基底の計算の為の以下のアルゴ
リズムを実行する。
【0054】アルゴリズム 入力:多項式集合F,項順序O1,O2 出力:FのO2に関するグレブナ基底G (1):p←Fの各元の頭項の係数を割らず、かつ未使
用の素数 G1←candidate(F,p,O1) G1がId(F)のグレブナ基底でなければ(1)に戻
る。 G2←candidate(G1,p,O2) G2が多項式集合でなければ(1)に戻る。 returnG2
【0055】すなわち、前記した第1のグレブナ基底判
定手段と、第2のグレブナ基底判定手段と、を実行し、
前記第1のグレブナ基底判定手段の出力がグレブナ基底
であり、第2のグレブナ判定手段でG2が多項式集合で
あると判定されたとき、G2が正当なグレブナ基底Gで
あるとして前記出力手段により出力する。
【0056】ここで、candidate(F,p,O)は、素
数pに対し、前節の定理の条件2.を満たすような多項
式集合を求める函数で、もし失敗した場合、nilを返
す。このような函数を構成する方法として、trace-lift
ingによるグレブナ基底候補生成や、前節で述べた線形
方程式による方法がある。
【0057】方程式を解いて数値的な解を求めるために
グレブナ基底を計算する場合、項順序としては、辞書式
順序を用いるのが適当であるが、一般に辞書式順序のグ
レブナ基底を直接計算することは困難である。一方で、
全次数逆辞書式順序によるグレブナ基底計算は、得られ
た結果から直接数値解を求めるのは困難であるが、一般
に計算時間、使用メモリ量は小さい。また、辞書式順序
のグレブナ基底の係数、項数が大きい場合、グレブナ基
底チェックにかかるコストが、時間、メモリ共に非常に
大きくなる場合があり、そのような場合には、ここで述
べた方法による方が、時間、メモリ量共に少なくて済
む。
【0058】また、前節の定理により、任意個の項順序
1,O2・・,Oiが与えられている時、素数pを使っ
て生成されたO1に関するグレブナ基底候補G1に対して
グレブナ基底チェックが行われていれば、G1=candida
te(Gi-1,p,Oi)が多項式集合である限り、Gi
iに関するグレブナ基底となることがチェックなしに
成立する。全次数逆辞書式順序のグレブナ基底から、辞
書式順序のグレブナ基底を求める際、中間的な項順序と
して適当な項順序を選んで、その順序に関するグレブナ
基底を計算し、そのグレブナ基底から、辞書式順序のグ
レブナ基底を計算する方が高速である場合がしばしばあ
るが、その場合にも、最初の順序に対してのみ、グレブ
ナ基底チェックを行っておけば、後の二つの順序に対し
ては、候補生成の成功のみで、グレブナ基底となってい
ることがわかるため、問題によっては極めて高速に辞書
式順序のグレブナ基底を生成できる。
【0059】O2 に関するグレブナ基底候補を求める
際、trace-lifting と線形方程式の求解という二つの方
法があることを述べたが、最終的な結果の係数が比較的
小さい場合には、線形方程式による方法が有利である場
合がある。この方法は、問題を、最終的な結果に含まれ
る基底の個数に等しい部分問題に分割可能であり、それ
らの部分問題間には相互関係がないため、容易に並列化
できる。
【0060】更に、本発明の利点として、0次元でない
問題、すなわち解が有限個に限らない問題に対して適用
できることが挙げられる。従来の基底変換方法は、0次
元の場合にのみ適用可能であり、trace-lifting は、一
般の場合に適用が可能なものの、0次元でない場合に
は、グレブナ基底チェックが、他の順序でのグレブナ基
底計算に置き変わるため、trace-liftingが高速に実行
できる場合がある。
【0061】本発明は、システムの最適化問題、機械設
計問題、ロボットの逆運動学計算、偏微分方程式の求解
など、代数方程式の求解をその一部として含む問題に対
応でき、更に、並列計算を行うことにより、実時間での
計算時間を短縮できる。
【0062】
【発明の実施の形態】以下、本発明の好適実施例を図面
を参照して説明する。本発明の実施の形態にかかる計算
機は、前記アルゴリズムからなるプログラムをコンピュ
ータの中央演算装置において実行することで、以下の手
段を実現する。
【0063】すなわち、本実施の形態に係る計算機は、
図1に示したように、以下の手段を有する。 (1)多項式集合F,項順序O1,O2 を入力する入力
手段1と、(2)Fの各元の頭項の係数を割らず、かつ
未使用の素数pを設定する素数設定手段2と、(3)ca
ndidate(F,p,O1)を計算してG1 を求めるG1
出手段3と、(4)G1がId(F)のグレブナ基底で
あるか否かを判定する第1判定手段4と、(5)第1判
定手段でG1 がグレブナ基底でないとされたとき、素数
設定手段2に素数pの再設定を指示する第1指示手段5
と、(6)第1判定手段4でG1 がグレブナ基底である
とされたとき、candidate(G1,p,O2)を計算して
2 を求めるG2算出手段6と、(7)G2が多項式集合
であるか否かを判定する第2判定手段7と、(8)第2
判定手段7でG2が多項式集合であると判定されたと
き、このG2 をFのO2に関するグレブナ基底Gとして
出力する出力手段8と、(9)第2判定手段7でG2
多項式集合でない判定されたとき、当初から計算のやり
直しを命ずる第2指示手段9とを備える。
【0064】以上の手段により、図に示したフローチャ
ートに従ったグレブナ基底生成が行われる。まず、入力
手段1、例えば、キーボードから多項式集合F,項順序
1,O2が入力される(ステップ101)。
【0065】次に、素数設定手段2によって、Fの各元
の頭項の係数を割らず、かつ未使用の素数pが設定され
る(ステップ102)。この素数pは、図示しないサブ
ルーチンによりFの頭項の係数を参照して自動的に設定
するようにすることができる。そして、G1算出手段3
により、candidate(F,p,O1)が計算され、O1
関するFのグレブナ基底G1 が求められる(ステップ1
03)。
【0066】第1判定手段4により、G1算出手段3に
よって算出されたG1がId(F)のグレブナ基底であ
るか否かが判定される(ステップ104)。すなわち、
1の各元gに対しgのO1に関する頭項がpで割り切れ
るか否かと、φp(g)がId(F)に属するか否かと
が判定され、前記頭項がpで割り切れず、かつ、φ
p(g)がId(F)に属すると判定されたとき(φp
は、G1 の各要素の全ての頭係数を割らない素数pを選
び、係数をこの素数pに関する剰余に置き換える操作で
ある)、φp(G1)はφp(F)のO1に関するグレブナ
基底であると判定される。
【0067】次に、第1判定手段4によって、G1 がグ
レブナ基底でないと判定されたとき、第1指示手段5に
より前記素数設定手段2に対して素数pの再設定が指示
される(ステップ105)。
【0068】第1判定手段4により、G1 がグレブナ基
底であると判定された場合には、G2算出手段6によ
り、candidate(G1,p,O2)が計算され、G2 が求
められる(ステップ106)。
【0069】そして、第2判定手段7により、求められ
たG2が多項式集合であるか否かが判定される(ステッ
プ107)。すなわち、G’2をφp(F)のO2 に関す
るグレブナ基底とするとき、G’2 の各元hに対し、I
d(F)に属する整数係数多項式fh が存在してfh
2 に関する頭項がpで割り切れるか否かと、fh とh
とのO2 に関する頭項が一致するか否かとが判定され、
頭項がpで割り切れず、かつ、fh とhとのO2 に関す
る頭項が一致すると判定されたとき、G2={fh|h∈
(G’)2}はFのO2 に関するグレブナ基底であると
判定される。
【0070】そして、第2判定手段7によってG2が多
項式集合であると判定されたとき、このG2をFのO2
関するグレブナ基底Gとして出力手段8から出力する
(ステップ108)。
【0071】第2判定手段7によってG2が多項式集合
でないと判定されたとき、当初から計算のやり直しを第
2指示手段9により命ずる。
【0072】この実施例で、プログラムは、発明者らが
開発中の数式処理システムRisa/Asir上にイン
プリメントされた。計算機は、Sony NEWS50
00(R4000CPU,50MHz、主記憶64M
B)を用いた。
【0073】以下の式は、グレブナ基底計算における著
名なテスト問題をいくつか示したものである。いずれの
例も、計算途中に中間式の大きな係数膨張が生じるた
め、通常の算法では計算不可能、あるいは極めて長大な
計算時間を必要とする例である。 K(5)=[u0+2u1+2u2+2u3+2u4+2u5−1, 2u40+(2u3+2u5)u1+u2 2−u4, 2u30+(2u2+2u4)u1+2u62−u3, 2u20+u1 2+2u31+(2u4−1)u2+2u53, 2u10+(2u2−1)u1+2u32+2u43+2u54, u0 2−u0+2u1 2+2u2 2+2u3 2+2u4 2+2u5 2] order:u5>u4>u3>u2>u1>u0 K(6)=[u0+2u1+2u2+2u3+2u4+2u5+2u6−1, 2u50−(2u4+2u6)u1+2u32−u5 2u40+(2u3+2u5)u1+u2 2+2u02−u4, 2u30+(2u2+2u4)u1+2u52+(2u6−1)u3, 2u20+u1 2+2u31+(2u4−1)u2+2u53+2u64, 2u10+(2u2−1)u1+2u32+2u43+2u54+2u05, u0 2−u0+2u1 2+2u2 2+2u3 2+2u4 2+2u5 2+2u6 2] order:u6>u5>u4>u3>u2>u1>u0 K(7)=[u0+2u1+2u2+2u3+2u4+2u5+2u6+2u7−1, 2u60+(2u5+2u7)u1+2u42+u3 2−u6, 2u50+(2u4+2u6)u1+(2u3+2u7)u2−u5 2u40+(2u3+2u5)u1+u2 2+2u62+2u73−u4, 2u30+(2u2+2u4)u1+2u52+(2u6−1)u3+2u74, 2u20+u1 2+2u31+(2u4−1)u2−2u53+2u64+2u75 , 2u10+(2u2−1)u1+2u32+2u43+2u54+2u65+2u 76, u0 2−u0+2u1 2+2u2 2+2u3 2+2u4 2+2u5 2+2u6 2+2u7 2] order:u7>u6>u5>u4>u3>u2>u1>u0 C(6)=[abcdef - 1, abcdef + bcdefg + cdefga + defgab + efgabc + fgabcd + gabcde, abcde + bcdef + cdefg + defga + efgab + fgabc + gabcd, abcd + bcde + cdef + defg + efga + fgab + gabc, abc + bcd + cde + def + efg + fga + gab, ab + bc + cd + de + ef + fg + ga, a + b + c + d + e + f + g] order:a>b>c>d>e>f>g Mod=[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 Rose1 =[u4 4 −20/7a46 2 , a46 23 4+7/10a463 4+7/48u3 4−50/27a46 2−35/27a 46 −49/216 a46 54 3 +7/5a46 44 3 +609/1000a46 34 3+49/1250 a46 24 3 −27391/800000a464 3−1029/160000u4 3+3/7a 46 534 2+3/5a46 634 2 +63/200a46 334 2+147/2000a46 334 2+4137/80 0000a4634 2 −7/20a46 43 24−77/125a46 33 24−23863/60000 a46 23 24 −1078/9375a46 43 24−24353/1920000u3 24−3 /20a46 43 3−21/100a46 33 3 −91/800a46 23 3−5887/200000a463 3−343/128 000u3 3] order:u3>u4>a46 Rose2 :Rose1 において、order:u3>a46>u4 としたもの Fate=[s3+2r3+2q3+2p3,s5+2r5+2q5+2p5, −s5+(r+q+p)s4+(r2+(2q+2p)r+q2) +2pq+p2)s3+(r3+q3+p3)s2 +(3r4+(2q+2p)r3+(4q3+4p3)r +3q4+2pq3+4p3q+3p4)s+(4q+4p)r4 +(2q2+4pq+2p2)r3+(4q3+4p3)r2+(6q4+4pq3 −8p3q+6p4)r+4pq4+2p23+4p32+6p4q] order:p>q>r>s Liu=[y(z−t)−x+a,z(t−x)−y+a,t(x−y)−z+a ,x(y−z)−t+a] order:x>y>z>t>u Ver=[(x−z)2+(y−t)2−1,t2−z3,2t(x−z)+3z2( y−t),(3uz2−1)(2tu−1)] order:x>u>z>t>u HC(6)=[abcdef - t6, abcde + bcdef + cdefa + defab + efabc + efabc + fabcd, abcd + bcde + cdef + defa + efab + fabc, abc + bcd + cde + def + efa + fab, ab + bc + cd + de + ef + fa, a + b + c + d + e + f ] order:a>b>c>d>e>f>t 上記各式で示した各問題について、通常の算法による計
算結果、trace-liftingと斉次化による計算結果、本発
明の改良を取り入れた算法による計算結果を対比した結
果を表1に示す。
【0074】これらの問題のうち、C(7)を除いて
は、trace-liftingと斉次化の組み合せにより既に解か
れているが、本発明により更に高速に解くことができる
ことがわかる。また、C(7)に関しては、trace-lift
ingと斉次化による解法は事実上適用不可能であるが、
線形方程式を解く方法により、解くことができた。
【0075】
【表1】 次に、表2、表3に、前記各問題に対する改良前、改良
後の算法による計算時間の比較を示す。計算時間は全
て、全次数逆辞書式順序のグレブナ基底を入力として、
辞書式順序のグレブナ基底を計算するのに必要な時間で
ある。計算機は前記Sony NEWS5000(CP
U:R4000/50MHz;主記憶64MB)であ
る。表1は0次元であるの対し、表2は1次元の問題で
ある。表3は計算に使用する実メモリ量を示す。
【0076】
【表2】
【0077】
【表3】 以上の各表において使用された記号について説明する。 T 全次数逆辞書式順序のグレブナ基底を入力として,trac
e-liftingにより辞書式順序のグレブナ基底を計算す
る。 B-DthL 特願平6−255759号で提案した斉次化手法とモジ
ュラ演算法(trace-lifting)の組み合わせ)および,
本発明によるチェックの省略を行ったものである。 即
ち,全次数逆辞書式順序のグレブナ基底を入力として,
斉次化した入力多項式集合のグレブナ基底候補を求め,
非斉次化,冗長性除去,相互正規化を行い,定理により
グレブナ基底チェックを省略する場合であり、項順序O
に対し、中間的な項順序を複数個(O1,O2,・・・O
n=Oとする)用意し、O1→O2,O2→O3,・・・O
n-1→Onなる基底変換を、 1.グレブナ基底を容易に計算できる項順序O1 を選
び、 2.O1 に関するFのグレブナ基底G1 を計算し、 3.G1 の各要素の全ての頭係数を割らない素数pを選
び、係数をpに関する剰余に置き換える操作をφpと
し、 4.φp(G1)のOに関するグレブナ基底G2 を計算
し、 5.G2の各元hに対し、整数係数多項式fhで、頭係数
がpで割り切れず、かつfh の頭数がhの領域と一致す
るものを求め、 6.もしG2 の全ての元hに対しfh が求まったならば
h の全体を項順序Oに関するFのグレブナ基底として
出力し、 7.もしいずれかのhに対し、fh が求まらなければ前
記3のpを取り直して前記4以下を繰り返すことで行う
にあたり、B-DthLでは、5項におけるfh を 1.法pでのグレブナ基底をまず計算する。 2.この過程で、φ(P)を正規化する際、どの要素
で、どの項で消去したか、また、どのペアが0に正規化
したか、という履歴を保存しておく。 3.前項の履歴を元に、有理数上でのグレブナ基底を計
算する。その際、 ・法pで0に正規化されたペアに関しては、有理数上の
正規化は行わない。 ・法pで0でない多項式に正規化されたペアに関して
は、履歴を元に有理数上で正規化する。 4.前項の有理数上での正規化が、法pでの正規化に対
応しない場合、pの選び方が妥当でなかったとして、n
ilを返す。という手順で定義されるtrace-liftingに
よる候補生成法で求めたのである。
【0078】B-DthEtL 特願平6−255759号で提案した斉次化手法とモジ
ュラ演算法(trace-lifting)の組み合わせ)および,
本発明によるチェックの省略であり、全次数逆辞書式順
序のグレブナ基底を入力として,ある消去順序(ELI
M)でtrace-liftingによりグレブナ基底候補を求め、
さらにそれを入力として辞書式順序のグレブナ基底候補
を求め,定理によりグレブナ基底チェックを省略する場
合である。
【0079】B-DIL 本発明による改良である。即
ち,全次数逆辞書式順序のグレブナ基底を入力として,
モジュラグレブナ基底を求め,それを雛型として線形方
程式を構成し,その求解により,有理数上の,辞書式順
序グレブナ基底を求める場合であり、項順序Oに対し、
中間的な項順序を複数個(O1,O2,・・・On=Oと
する)用意し、O1→O2,O2→O3,・・・On-1→On
なる基底変換を、 1.グレブナ基底を容易に計算できる項順序O1 を選
び、 2.O1 に関するFのグレブナ基底G1 を計算し、 3.G1 の各要素の全ての頭係数を割らない素数pを選
び、係数をpに関する剰余に置き換える操作をφpと
し、 4.φp(G1)のOに関するグレブナ基底G2 を計算
し、 5.G2の各元hに対し、整数係数多項式fhで、頭係数
がpで割り切れず、かつfh の頭数がhの領域と一致す
るものを求め、 6.もしG2 の全ての元hに対しfh が求まったならば
h の全体を項順序Oに関するFのグレブナ基底として
出力し、 7.もしいずれかのhに対し、fh が求まらなければ前
記3のpを取り直して前記4以下を繰り返すことで行う
にあたり、B-DIL では、5項におけるfh をG2
各元の係数を未定係数に置き換えて、G1 による正規形
を計算し、係数を取り出して未定係数に対する線形方程
式を解くことにより求める。
【0080】以上において、Tは,特願平6−2557
59号の改良も含まない,比較用のデータである。表
で,∞は,64MBの主記憶を全て使い切って計算不能
になったことを示す。+は,64MBの主記憶では計算
できず,実際には,問題をいくつかのステップに分け
て,データをディスク上に保存しながら計算を行ったこ
とを示す。(∞においては,一つの計算自体がメモリの
枯渇を招いて計算不能になったが,+では一つ一つの計
算は,実メモリの範囲内で収まっている。)
【0081】表1は,0次元,即ち解の個数が有限個の
問題に対する計算時間である。B-DthLは,前記出願
特願平6−255759号における改良(斉次化)と本
願による改良(チェックの省略)を含んでいる。一般
に,前者の効果が顕著であるが,K(n),Mod,Roseな
ど結果の係数が大きい問題においては,後者の効果も大
きい。
【0082】B-DthEtLは,さらに,本発明による改
良(中間の項順序の利用)を含む。表から明らかなよう
に,この改良により,顕著な計算時間の短縮が見られ
る。しかし,C(7)において,計算不能に陥った。
【0083】B-DILは,本発明による改良(線形方
程式の求解)による。表から分かるように,全ての問題
において,B-DthEtLと同程度の計算時間で辞書式順
序のグレブナ基底が計算でき,さらに,C(7)のよう
に,B-DthEtLで失敗した問題でも結果を得ている。
しかも,B-DthLと比較すれば,その効果は明らかで
ある。
【0084】表2は,解の個数が無限個ある問題に対す
る計算時間で,定理によりグレブナ基底チェックが省略
できることが,改良後の計算時間の短縮に効果的である
ことが分かる。
【0085】表3は,いくつかの問題について,実際に
必要とした実メモリ量を示している。−は,メモリ不足
により計算不能になったことを表している。即ち,少な
くとも64MB以上のメモリが必要とされることが分か
る。このことから,前特許,本特許の方法が,メモリ使
用量の節約に大きく効果があることが分かる。さらに,
C(7)における比較で分かるように,本発明における,
線形方程式の利用が,前特許より高いメモリ節約効果を
与える場合がある。
【0086】
【発明の効果】本発明では、大きな計算時間、メモリを
必要とするグレブナ基底チェックを、比較的容易に計算
できる他の項順序でのグレブナ基底計算に置き換えるこ
とにより、計算時間を短縮し、使用メモリ量を削減する
ことができる。
【0087】さらに、モジュラ演算により最終的な結果
の形を予想し、未定係数法により、グレブナ基底を、線
形方程式の求解により直接求めることにより、グレブナ
基底を直接計算する際に必要な計算および必要なメモリ
を省くことができる。
【0088】この線形方程式は、互いに独立に解くこと
ができ、並列計算機、あるいは、分散計算環境において
解くことにより、実時間において計算時間を短縮でき
る。
【図面の簡単な説明】
【図1】 本発明の概念ブロック図
【図2】 本発明のフローチャートを示す図
【符号の説明】
1・・入力手段 2・・素数設定手段 3・・G1算出手段 4・・第1判定手段 5・・第1指示手段 6・・G2算出手段 7・・第2判定手段 8・・出力手段 9・・第2指示手段

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 パラメータ間の制約が整数係数連立代数
    方程式で与えられるモデルについて、該連立方程式を表
    すとともにメモリ中に記述されている整数係数多項式集
    合Fから、項順序Oに関するグレブナ基底を生成するブ
    ッフバーガー演算を行う計算機において、 1.グレブナ基底を容易に計算できる項順序O1 を選
    び、 2.O1 に関するFのグレブナ基底G1 を計算し、 3.G1 の各要素の全ての頭係数を割らない素数pを選
    び、係数をpに関する剰余に置き換える操作をφpと
    し、 4.φp(G1)のOに関するグレブナ基底G2 を計算
    し、 5.G2の各元hに対し、整数係数多項式fhで、頭係数
    がpで割り切れず、かつfh の頭数がhの領域と一致す
    るものを求め、 6.もしG2 の全ての元hに対しfh が求まったならば
    h の全体を項順序Oに関するFのグレブナ基底として
    出力し、 7.もしいずれかのhに対し、fh が求まらなければ前
    記3のpを取り直して前記4以下を繰り返すようディジ
    タルプロセッサを制御するグレブナ基底生成方法。
  2. 【請求項2】 請求項1において、項順序Oに対し、中
    間的な項順序を複数個(O1,O2,・・・On=Oとす
    る)用意し、O1→O2,O2→O3,・・・On -1→On
    る基底変換を、請求項1の方法により行う、項順序Oに
    関するグレブナ基底生成方法。
  3. 【請求項3】 請求項2において、5項におけるf
    h を、 1.法pでのグレブナ基底をまず計算し、 2.この過程で、φ(P)を正規化する際、どの要素
    で、どの項で消去したか、また、どのペアが0に正規化
    したか、という履歴を保存し、 3.前項の履歴を元に、有理数上でのグレブナ基底を計
    算し、その際に、法pで0に正規化されたペアに関して
    は、有理数上の正規化を行わず、法pで0でない多項式
    に正規化されたペアに関しては、履歴を元に有理数上で
    正規化を行い、 4.前項の有理数上での正規化が、法pでの正規化に対
    応しない場合、pの選び方が妥当でなかったとして、n
    ilを返す、 という手順で定義されるtrace-liftingによる候補生成
    法で求めるグレブナ基底生成方法。
  4. 【請求項4】 請求項2において、5項におけるfh
    2 の各元の係数を未定係数に置き換えて、G1 による
    正規形を計算し、係数を取り出して未定係数に対する線
    形方程式を解くことにより求める方法。
  5. 【請求項5】 Fを整数係数多項式集合、O1,O2を項
    順序、多項式集合Fで生成されるイデアルをId
    (F)、G1をFのO1に関するグレブナ基底、pを素数
    としたとき、 G1の各元gに対しgのO1に関する頭項がpで割り切れ
    るか否かと、φp(g)がId(F)に属するか否かと
    を判定し、前記頭項がpで割り切れず、かつ、φ
    p(g)がId(F)に属すると判定したとき(φp
    は、G1 の各要素の全ての頭係数を割らない素数pを選
    び、係数をこの素数pに関する剰余に置き換える操作で
    ある)、φp(G1)はφp(F)のO1に関するグレブナ
    基底であると判定する、第1のグレブナ基底判定手段
    と、 G’2をφp(F)のO2 に関するグレブナ基底とすると
    き、G’2 の各元hに対し、Id(F)に属する整数係
    数多項式fh が存在してfh のO2 に関する頭項がpで
    割り切れるか否かと、fh とhとのO2 に関する頭項が
    一致するか否かとを判定し、頭項がpで割り切れず、か
    つ、fh とhとのO2 に関する頭項が一致すると判定し
    たとき、G2={fh|h∈(G)2}はFのO2 に関す
    るグレブナ基底であると判定する第2のグレブナ基底判
    定手段と、 前記第1のグレブナ基底判定手段と、第2のグレブナ判
    定手段の出力が、いずれも、グレブナ基底であるとの判
    定出力であるとき、G2 がφp(F)のO2 に関する正
    当なグレブナ基底として出力する出力手段と、 を備えるグレブナ基底生成装置。
  6. 【請求項6】 請求項5において、 求めた、φp(G1)のO2 に関するグレブナ基底G2
    各元h=Σatt に対し、係数at を未定係数ut で、
    tをG1 による正規形NF(t,G1) で置き換える置換
    手段と、 hに現れる各項の係数を取り出し、utに関する線形方
    程式として解き、解けない場合はpを取り直し、全ての
    hについてutに関する線形方程式として解き全てのh
    について解けたら、その解全体をグレブナ基底として出
    力する演算手段とを備えることを特徴とするグレブナ基
    底生成装置。
JP29154595A 1995-11-09 1995-11-09 グレブナ基底生成方法及び装置 Withdrawn JPH09134342A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29154595A JPH09134342A (ja) 1995-11-09 1995-11-09 グレブナ基底生成方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29154595A JPH09134342A (ja) 1995-11-09 1995-11-09 グレブナ基底生成方法及び装置

Publications (1)

Publication Number Publication Date
JPH09134342A true JPH09134342A (ja) 1997-05-20

Family

ID=17770304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29154595A Withdrawn JPH09134342A (ja) 1995-11-09 1995-11-09 グレブナ基底生成方法及び装置

Country Status (1)

Country Link
JP (1) JPH09134342A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2873875A1 (fr) * 2004-07-28 2006-02-03 Canon Kk Localisation d'erreurs pour codes de geometrie algebrique

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2873875A1 (fr) * 2004-07-28 2006-02-03 Canon Kk Localisation d'erreurs pour codes de geometrie algebrique

Similar Documents

Publication Publication Date Title
Waki et al. Sums of squares and semidefinite program relaxations for polynomial optimization problems with structured sparsity
CN107077641B (zh) 具有回退的概率性量子电路的有效综合
US7673263B2 (en) Method for verifying and representing hardware by decomposition and partitioning
JP7174243B2 (ja) 情報処理装置、ニューラルネットワークプログラム、ニューラルネットワークの処理方法
Brugnano et al. Blended implementation of block implicit methods for ODEs
JP3152279B2 (ja) 準最適割当決定方法
WO2023284770A1 (zh) 张量程序优化方法及装置
JP4386456B2 (ja) 工程の処理順序を決定するシステム、プログラムおよび方法
US20230306236A1 (en) Device and method for executing lstm neural network operation
JPH09134342A (ja) グレブナ基底生成方法及び装置
JP2000057123A (ja) 順序回路の状態探索方法および装置並びに状態探索プログラムを記録した記録媒体
Bilardi et al. The I/O complexity of Toom-Cook integer multiplication
Chevalier et al. A multilevel mesh partitioning algorithm driven by memory constraints
Hakata et al. Algorithms for the longest common subsequence problem for multiple strings based on geometric maxima
Raichev et al. Asymptotics of coefficients of multivariate generating functions: improvements for multiple points
WO2019138584A1 (ja) 分類木生成方法、分類木生成装置および分類木生成プログラム
Friedlander et al. Global and finite termination of a two-phase augmented Lagrangian filter method for general quadratic programs
De Stefani The I/O complexity of hybrid algorithms for square matrix multiplication
JPH07200538A (ja) グレブナ基底生成方法及び装置
Szyprowski et al. Estimating the quality of complexity measures in heuristics for reversible logic synthesis
Vadhyan et al. Design of low power & high speed approximate compressor based multiplier
Linton et al. A parallel algorithm for Gaussian elimination over finite fields
Banerjee et al. Squaring in reversible logic using zero garbage and reduced ancillary inputs
CN113555061B (zh) 一种无参考基因组的变异检测的数据工作流处理方法
CN113836386B (zh) 一种并行模式搜索空间构造系统和方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030204