JP2002041496A - コンピュータ実施される方法、計算装置およびコンピュータ・プログラム製品 - Google Patents

コンピュータ実施される方法、計算装置およびコンピュータ・プログラム製品

Info

Publication number
JP2002041496A
JP2002041496A JP2001185339A JP2001185339A JP2002041496A JP 2002041496 A JP2002041496 A JP 2002041496A JP 2001185339 A JP2001185339 A JP 2001185339A JP 2001185339 A JP2001185339 A JP 2001185339A JP 2002041496 A JP2002041496 A JP 2002041496A
Authority
JP
Japan
Prior art keywords
equations
simultaneous linear
unknowns
sets
computer
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.)
Granted
Application number
JP2001185339A
Other languages
English (en)
Other versions
JP3928921B2 (ja
Inventor
Kumar Bela Rajendra
ラジェンドラ・クマール・ベラ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002041496A publication Critical patent/JP2002041496A/ja
Application granted granted Critical
Publication of JP3928921B2 publication Critical patent/JP3928921B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 2組の連立一次代数方程式の同値を判定す
る、コンピュータ実施される方法(200)を提供する
こと。 【解決手段】 前記方程式のそれぞれは、ei11+e
i22+ei33+…+eiin=biという形であり、こ
こで、xjは未知数、eijは係数、biは量であり、この
係数および量によって組内の未知数の間の関係が定義さ
れる。係数および量は、既知の代数式である。liiおよ
びriが代数式であり、k={1;2}が、その方程式
がそこから導出された組の1つを示すものとして、前記
方程式のそれぞれが、(liiki=(rikの形にな
るまで、連立一次代数方程式の組のそれぞれから未知数
を繰り返して消去する(250ないし280)。未知数
のそれぞれについて、積(lii1*(ri2および
(lii2*(ri1を比較する(300)。すべての
未知数について積が一致する(310)場合に限って、
2組の連立一次代数方程式が同値である(312)。上
の方法(200)を実行する装置(100)も提供す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ実施
可能な方法に関し、具体的には、2組の連立一次代数方
程式が同値であるかどうかを判定する方法および装置に
関する。
【0002】
【従来の技術】多くの応用分野で、係数行列に数値要素
だけが含まれる連立一次代数方程式(SLAE、Simult
aneous Linear Algebraic Equations)の1つまたは複
数の系を解く必要が生じる。そのような応用分野には、
工学およびシミュレーションのコンピュータ・コードが
含まれる。SLAEの解は、通常は、周知のガウスの消
去法を使用して得られる。したがって、以前の方法で
は、通常は、2つのそのようなSLAE系S1およびS2
が解かれ、その解が比較される。しかし、そのような方
法は、SLAEの一方または両方の条件が不良である
か、計算に使用される数値精度が十分に高くない場合
に、必ずしも機能しない。
【0003】さらに、そのような方法は、一般に、係数
行列要素が代数式であるSLAEの組、および、解が一
般に代数形式であるSLAEの組を解くことに適合され
ていない。
【0004】
【発明が解決しようとする課題】本発明の目的は、2組
の連立一次代数方程式が同値であるかどうかを判定する
方法、装置およびコンピュータ・プログラム製品を提供
することである。
【0005】
【課題を解決するための手段】本発明は、組のそれぞれ
に複数の代数方程式が含まれる、2組の連立一次代数方
程式(SLEA)の同値を判定する、コンピュータ実施
される方法を提供する。この方法には、各SLAEを標
準的な形に約すステップと、同値が存在するかどうかを
判定するためにSLAEを比較するステップとが含まれ
る。
【0006】本発明は、さらに、連立一次代数方程式
(SLEA)の第1組と第2組の同値を判定する、コン
ピュータ実施される方法であって、各SLAEを2部分
の標準的な形にするために、SLAEの組のそれぞれか
ら未知数を繰り返して消去するステップと、一方の標準
的な形の方程式の一部ともう1つの標準的な形の方程式
の別の部分の一部との積を形成するステップと、標準的
な形の方程式の他の部分ともう1つの標準的な形の方程
式の他の部分との積を形成するステップと、数学的同値
についてめいめいの積を比較するステップとを含む方法
を提供する。
【0007】さらに、連立一次代数方程式の第1組およ
び第2組の同値を判定する、コンピュータ実施される方
法であって、xjが未知数、eijが係数、biが量である
ものとして、方程式のそれぞれが、 ei11+ei22+ei33+…+einn=bi の形である、コンピュータ実施される方法が提供され
る。係数および量は、既知の代数式である。この方法に
は、liiおよびriが代数式であり、k={1;2}
が、その方程式がそこから導出された組の1つを示すも
のとして、方程式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の組のそれぞれか
ら未知数を繰り返して消去するステップと、未知数のそ
れぞれについて、積(lii1*(ri2と(lii2
(ri1とを比較するステップであって、これらの積が
すべての未知数について一致する場合に、連立一次代数
方程式の第1組および第2組が同値である、比較するス
テップとが含まれる。
【0008】本発明は、さらに、連立一次代数方程式の
第1組と第2組との同値を判定する計算装置であって、
jが未知数、eijが係数、biが量であり、係数および
量が既知の代数方程式であるものとして、方程式のそれ
ぞれが、 ei11+ei22+ei33+…+einn=bi の形である、計算装置を開示する。この装置には、lii
およびriが代数式であり、k={1;2}が、その方
程式がそこから導出された組の1つを示すものとして、
方程式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の組のそれぞれか
ら未知数を繰り返して消去する手段と、未知数のそれぞ
れについて、積(lii1*(ri2と(lii2*(r
i1とを比較する手段であって、これらの積がすべての
未知数について一致する場合に、連立一次代数方程式の
第1組および第2組が同値である、比較する手段とが含
まれる。
【0009】本発明は、さらに、連立一次代数方程式の
第1組および第2組の同値を判定する、記憶媒体によっ
て担持されるコンピュータ・プログラム製品であって、
jが未知数、eijが係数、biが量であり、係数および
量が、既知の代数式であるものとして、方程式のそれぞ
れが、 ei11+ei22+ei33+…+einn=bi の形である、コンピュータ・プログラム製品を開示す
る。このコンピュータ・プログラム製品には、liiおよ
びriが代数式であり、k={1;2}が、その方程式
がそこから導出された組の1つを示すものとして、方程
式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の組のそれぞれか
ら未知数を繰り返して消去するプログラム要素と、未知
数のそれぞれについて、積(lii1*(ri2と(l
ii2*(ri1とを比較するプログラム要素であっ
て、これらの積がすべての未知数について一致する場合
に、連立一次代数方程式の第1組および第2組が同値で
ある、比較するプログラム要素とが含まれる。
【0010】この方法には、さらに、代数式を、文字列
内で順次配置された1つまたは複数のトークン対の形に
再計算するステップであって、トークン対のそれぞれ
に、演算子とそれに続くオペランドが含まれる、再計算
するステップと、既約式を得るために、所定の簡約化規
則の組に従って文字列を約するステップとが含まれるこ
とが好ましい。連立一次代数方程式の組のそれぞれから
の未知数の消去は、所定の動作の組に従って約された文
字列に対して実行される。
【0011】さらに、簡約化規則に、トークン対をサブ
グループに配置するステップと、配置されたサブグルー
プのオペランド・トークンを順番に配置するステップ
と、約されたサブグループを形成するために、1つまた
は複数の定数を整理し、反対の効果の変数を消去するこ
とによって、順序付けられたオペランドを約するステッ
プと、約された文字列を作るために、類似するサブグル
ープの1つまたは複数の倍数インスタンスを整理するス
テップとを含めることができる。
【0012】
【発明の実施の形態】本発明の好ましい実施形態を実践
することができる汎用のコンピュータ・システム100
を、図1に示す。まずコンピュータ・システム100を
説明し、その後、より具体的に、2組の連立一次代数方
程式が同値であるかどうかを判定する方法を説明する。
【0013】この方法は、コンピュータ・システム10
0内で実行されるアプリケーション・プログラムなどの
ソフトウェアとして実施することができる。具体的に言
うと、2組の連立一次代数方程式が同値であるかどうか
を判定する方法のステップは、コンピュータ・システム
100によって実行されるソフトウェア内の命令によっ
て実施される。このソフトウェアは、たとえば下で説明
する記憶装置を含む、コンピュータ可読媒体に保管する
ことができる。ソフトウェアは、コンピュータ可読媒体
からコンピュータ・システム100にロードされ、その
後、コンピュータ・システム100によって実行され
る。そのようなソフトウェアまたはコンピュータ・プロ
グラムをその上に記録されたコンピュータ可読媒体が、
コンピュータ・プログラム製品である。コンピュータで
のコンピュータ・プログラム製品の使用によって、本発
明の実施形態による2組の連立一次代数方程式が同値で
あるかどうかを判定する有利な装置がもたらされること
が好ましい。
【0014】コンピュータ・システム100には、コン
ピュータ・モジュール101と、キーボード102およ
びマウス103などの入力装置と、プリンタ115およ
びディスプレイ装置114を含む出力装置が含まれる。
コンピュータ・モジュール101には、通常は、少なく
とも1つのプロセッサ105と、たとえば半導体のラン
ダム・アクセス・メモリ(RAM)および読取専用メモ
リ(ROM)から形成されるメモリ106と、ビデオ・
インターフェース107、プリンタ115用の入出力イ
ンターフェース、およびキーボード102およびマウス
103用の入出力インターフェース113を含む入出力
(I/O)インターフェースとが含まれる。記憶装置1
09が設けられ、これには、通常は、ハード・ディスク
110およびフロッピ・ディスク・ドライブ111が含
まれる。CD−ROMドライブ(図示せず)を、データ
の不揮発性の供給源として設けることができる。コンピ
ュータ・モジュール101のプロセッサ105、メモリ
106、ビデオ・インターフェース107、記憶装置1
09、ハード・ディスク110、フロッピ・ディスク・
ドライブ111、および入出力インターフェース113
は、通常は、相互接続されたバス104を介して、当業
者に既知のコンピュータ・システム100の動作の従来
のモードをもたらす形で通信する。
【0015】通常、好ましい実施形他のアプリケーショ
ン・プログラムは、ハード・ディスク110に常駐し、
プロセッサ105によって読み取られ、その実行の際に
制御される。プログラムの中間記憶を、おそらくはハー
ド・ディスク110と共同して、半導体メモリ106を
使用して達成することができる。いくつかの場合に、ア
プリケーション・プログラムを、CD−ROMまたはフ
ロッピ・ディスクにエンコードしてユーザに供給し、C
D−ROMドライブ(図示せず)またはフロッピ・ディ
スク・ドライブ111を介して読み取ることができ、そ
の代わりに、モデム装置(図示せず)を介してネットワ
ーク(図示せず)からユーザが読み取ることができる。
さらに、ソフトウェアは、磁気テープ、ROMまたは集
積回路、光磁気ディスク、コンピュータ・モジュール1
01と別の装置の間の無線伝送チャネルまたは赤外線伝
送チャネル、PCMCIAカードなどのコンピュータ可
読カード、電子メール送信およびウェブサイトなどに記
録された情報を含むインターネットおよびイントラネッ
トを含む他のコンピュータ可読媒体からコンピュータ・
システム100にロードすることもできる。前述は、関
連するコンピュータ可読媒体の例示にすぎない。他のコ
ンピュータ可読媒体を、本発明の範囲および趣旨から逸
脱せずに実践することができる。
【0016】本発明のハードウェア環境を説明したの
で、2組の連立一次代数方程式が同値であるかどうかを
判定する方法を説明する。
【0017】方法の広義の概要 Sが、次式によって与えられる連立一次代数方程式(S
LAE)の系を表すものとする。 e111+e122+e133+…+e1nn=b1211+e222+e233+…+e2nn=b2 … … … … en11+en22+en33+…+ennn=bn ここで、n個の未知数{x1、x2、x3、…、xn}が、
n個の方程式によって関連し、係数eij(i=1、2、
…、nおよびj=1、2、…、n)が、既知の代数式で
あり、右辺の量bi、i=1、2、…、nも代数式であ
る。
【0018】そのような2つの系S1およびS2が同値す
なわち、めいめいの解が互いに同一であるかどうかを判
定する方法は、おおまかに次の2つの部分を有する。 (1)下記の型の標準的な形へのSLAEの各系Sの既
約化。 l111=r1222=r2333=r3 … … lnnn=rn ここで、liiおよびriは代数式である。 (2)2組のSLAEの標準的な形での比較。
【0019】SLAE S1およびS2の係数eijおよび
量biが、除算演算子を有しないと仮定する。望ましく
ない除算演算子は、影響される量に適当な係数を掛ける
ことによって、SLAE S1およびS2から消去するこ
とができる。これは、交換可能な演算子でない除算演算
子に関連するオペランドの処理の複雑さを減らすために
行われる。
【0020】既約式 係数および量を式として記述することができ、係数およ
び量の項には定数および変数を含めることができる。好
ましい実施形態では、2つの式の間の比較を容易にする
ために、下で説明するように、式の既約形という概念を
使用した。既約式は、式がそれに変換される標準形であ
る。
【0021】変換される式が、構文的に正しく、空白を
含まないことが、先験的に仮定される。好ましい実施形
態では、変数が、その構成において、小文字の英字、下
線文字、および数字に制限され、変数が、数字から始ま
ってはならず、下線で終わってはならない。これらの構
成規則が満たされない場合には、影響を受ける変数を、
構成規則に従う代替であるが別個の変数にマッピングす
る(別名を割り当てる)ことができ、これらの新しい変
数が、その代わりに使用される。
【0022】この実施形態で採用された規則は、正整数
のべきである係数eijおよび量biの変数を、変数の掛
け算として書き出すことである。したがって、たとえば
nは、a*a*…*aになる。ここで、aはこの積に
n回現れる。
【0023】所与の式を既約式に変換するために、式
を、まず次の形にする。 <単項演算子><オペランド><演算子><オペランド
>…<演算子><オペランド> ここで、単項演算子は、+(プラス)または−(マイナ
ス)のいずれかであり、各演算子は、+(加算)、−
(減算)、または*(乗算)の1つである。式が単項演
算子から始まらない場合には、単項演算子+(プラス)
を式の先頭に挿入する。たとえば a+b*c−dは、+a+b*c−dになる。
【0024】特に、括弧がないことに留意されたい。括
弧が式中に存在する場合には、2つの括弧で囲まれた係
数を掛ける、余分な括弧を無視するなど、括弧を除去す
るのに必要な演算を実行することによって括弧を除去し
て、所与の式を上の形にしなければならない。
【0025】次に、すべての+(加算)演算子は、文字
列+1*によって置換され、その結果、+が+1*にな
る。同様に、すべての−(減算)演算子は、文字列−1
*によって置換され、その結果、−が−1*になる。し
たがって、たとえば+aは、+1*aになり−a*b
は、−1*a*bになる。
【0026】最後に、定数(前のステップで導入される
1を含む)であるオペランドは、次のe形式に変換され
る。 ”.[符号なし数]e[e符号][符号なし指数]” ここで、[符号なし数]は、数字だけを含むn桁の数で
あり、nは、0より大きいプレフィックスト整数であ
る。[e符号]は、指数の符号であり、プラスの場合は
>、マイナスの場合は<になる。[符号なし指数]は、
数字だけを含むm桁の数であり、mは、0より大きいプ
レフィックスト整数である。
【0027】したがって、たとえば、25=0.25*
102は、.250000e>02になり、0.025
=0.25*10-1は、.250000e<01にな
る。ここでは、n=6、m=2であると仮定する。すべ
ての定数が、e形式では一定の長さm+n+3文字の文
字列によって表されることに留意されたい。ここで、e
[e符号][符号なし指数]は、10の[e符号][符
号なし指数]乗を表し、実際の定数を得るためには.
[符号なし数]によって表される数をかけなければなら
ない。
【0028】式には、定数である少なくとも1つのオペ
ランドが含まれることになる。各式は、1つまたは複数
の項を有し、各項は、次の形を有する。 <単項演算子><オペランド><*><オペランド>…
<*><オペランド> ここで、単項演算子は、+(プラス)または−(マイナ
ス)であり、2つの連続するオペランドの間に、乗算演
算子*がある。項を識別した後に、各定数の[e符号]
を、<または>から−または+に復元する。
【0029】各項では、オペランドが、そのASCII
(情報交換用米国標準コード)値に従って、昇順でソー
ト(再配置)される。乗算演算子が交換可能な演算子で
あり、したがって、オペランドの交換が完全に許容可能
であるから、これは項に影響しない。定数であるオペラ
ンドは、すべてが項の先頭に集められ、その位置で、オ
ペランドを簡単に識別でき、単一の定数によって置換す
ることができる。したがって、たとえば、 +.100000e+01*a*b*.500000e
+00 は、オペランドを昇順で配置した後に、 +.100000e+01*.500000e+00*
a*b になり、定数を整理した後に、 +.500000e+00*a*b になる。
【0030】この段階で、項は、次の形を有する。 <単項演算子><定数><*><オペランド>…<*>
<オペランド> ここで、各オペランドは、変数であり、そのASCII
値は、後続のオペランドがある場合に、それより小さく
ない。これが、項の既約形である。既約形では、項の非
定数部分を変数グループと呼ぶ。たとえば、既約形の項
が「+.250000e+01*a*a*b」である場
合には、その変数グループは「*a*a*b」である。
【0031】式では、変数グループが一致するすべての
項が、項の1つの定数を変更し、同一の変数グループを
有する他のすべての項を消去することによって組み合わ
される。
【0032】最後に、式の既約項を、そのめいめいの変
数グループのASCII値に従って、昇順で再配置す
る。この最終形では、式が、その既約形であるという。
特に、既約式のどの2つの項も、同一の変数グループを
有しないことに留意されたい。
【0033】同値を判定する方法 図2を参照すると、2つのそのような系S1およびS2
同値であるかどうかを判定する方法200が示されてい
る。ステップ240から開始して、すべての係数eij
よび量biを、そのめいめいの既約形(上で説明した)
に変換する。
【0034】ステップ250ないし280では、ガウス
消去法および後退代入法(除算をなくすように適合され
た)を使用して、SLAE S1およびS2を標準的な形
にする。
【0035】ステップ250では、カウンタkに1をセ
ットする。次のステップ252では、変数xkを、第j
方程式(j=(k+1)、…、n)から消去して、第k
導出系を得る。具体的に言うと、カウンタkが1に等し
い状態で、変数x1を、第j方程式(j=2、3、…、
n)から消去して、次のように定義される第1導出系を
得る。 e111+e122+e133+…+e1nn=b1 12221233+…+12nn12 … … … … …1n221n33+…+1nnn1n ここで、第1導出系の新しい係数1jkは、次式によっ
て与えられる。1jk=ejk111kj1 および1j
=bj11−b1j1 ただし、(j、k)=2、…、n
【0036】係数e11=0の場合には、系Sの第1方程
式を、係数e1mが非ゼロの系Sの他の方程式mと交換す
る。そのような方程式mが見つからない場合には、SL
AEが特異であり、方法200、具体的にはステップ2
52が、その下のステップ270への線262に従うこ
とよって割り込まれ、ステップ270で、方法200
が、適当なエラー・メッセージと共に終了する。
【0037】ステップ260では、カウンタkがn−1
と等しいかどうかを判定する。ここで、nは未知数の数
である。そうではない場合には、ステップ255で、第
k導出系から副系を定義する。たとえば、カウンタkが
1に等しい場合に、第1導出系から導出される副系は、
次の通りである。12221233+…+12nn12 … … … … …1n221n33+…+1nnn1n
【0038】この副系は、(n−1)個のSLAEの組
であり、(n−1)個の未知数{x 2、x3、…、xn
を有する。ステップ258でカウンタkを増分した後
に、系Sが次のように第(n−1)導出系に約されるま
で、既約化のステップ252ないし260を副系に対し
て繰り返す。 e111+e122+e133+…+e1nn=b1 12221233+…+12nn12 … … … … …n-1nnnn-1n ここで、対角係数j-1jj (j=1、…、n)は、す
べてが非ゼロであり、1jkl-1jk l-1lll-1lk l-1jl 1jl-1j l-1ll l-1l l-1jl ただしl=1、
…、n−1; (j、k)=l+1、…、n および0jk=ejk である。
【0039】これで、この処理のガウス消去段階が完了
する。この処理全体に除算がないことに留意されたい。
カウンタkは、現在、n−1に等しく、したがって、こ
の方法は、ステップ280に継続し、そこで、やはり除
算なしで後退代入を実行する。したがって、未知数xi
を計算するのではなく、積liiiを計算する。ここ
で、n個の未知数xiのそれぞれが、riが分子、lii
分母である比x1=ri/l iiの形で表される。i=nの
場合に、次式が得られる。n-1nnnn-1n その結果、 lnnn-1nn および rnn-1n になる。
【0040】i=n−1について、第(n−1)方程式
に分母lnnを掛けて、 lnn n-2n-1,n-1n-1+lnn n-2n-1,nnn-2n-1
nn または lnn n-2n-1,n-1n-1n-2n-1nnn-2n-1,nn を得る。その結果、 ln-1,n-1=lnn n-2n-1,n-1 および rn-1n-2
n-1nnn-2n-1,n n になる。
【0041】i=n−2について、第(n−2)方程式
に分母ln-1,n-1を掛け、 ln-1,n-1 n-3n-2n-2+ln-1,n-1 n-3n-2,n-1n-1
+ln-1,n-1 n-3n-2, nnn-3n-2n-1,n-1 または ln-1,n-1 n-3n-2,n-2n-2n-3n-2n-1,n-1n-2
n-1,n-1 n-3n-2,nnn-3n-2,n-1n-1 を得る。その結果、 ln-2,n-2=ln-1,n-1 n-3n-2,n-2 および rn-2
n-3n-2n-1,n-1n- 2n-1,n-1 n-3n-2,nnn-3
n-2,n-1n-1 になる。
【0042】すべてのi=1、2、…、n−1につい
て、結果が lii=li+1,i+1 i-1ii および rii-1i
i+1,1+1−Rinn−Ri,n-1n-1−…−Ri,i+1i+1 になり、 lnnn-1nn および rnn-1n であることを示すことができる。ここで Rij=(li+1,i+1/ljji-1ij ただし、j=
n、…、(i+1)、i=1、2、…、n−1 である。
【0043】ljjが、li+1,i+1の因数なので、Rij
除算と無関係になることに留意されたい。しかし、後退
代入のステップ280に、liiとriに共通する因数を
消去するステップがないことに留意されたい。
【0044】2つのSLAE系S1およびS2のそれぞれ
についてステップ240ないし280を完了した後に、
系S1の文字列配列(lii1および(ri1と系S2
(li i2および(ri2が作られている。原則とし
て、2つの系S1およびS2が同値であることを示すため
には、それらのめいめいの文字列配列liiおよびri
一致することが示されるならば十分である。しかし、一
般に、現在既知の方法によってそれらに共通する因数を
完全に消去することが不可能なので、これは必ずしも可
能ではない。したがって、消去されない共通の因数が存
在する可能性があることを前提にしなければならない。
しかし、数学的に、 (lii/ri1=(lii/ri2 または、これと同等であるが、 (lii1*(ri2=(lii2*(ri1 であることが明らかであり、この形で比較を実行するこ
とができる。したがって、ステップ290で、i=1、
…、nのそれぞれについて、式(lii1*(ri2
よび(lii2*(ri1を計算する。すべての式(l
ii1*(ri2および(lii2*(ri1が、一貫性
のある形でその既約形に約された場合には、ステップ3
00で、(lii1*(ri2と(lii2*(ri1
単純な文字列比較を実行する。判断ステップ310で、
すべてのi=1、…、nについて一致が見つかったかど
うかを判定する。回答が肯定の場合には、系S1および
2の同値を、ステップ312で報告する。そうでない
場合には、ステップ315で非同値を報告する。
【0045】例 方法200を実行して2つの系S1およびS2が同値であ
るかどうかを判定する例を、これから説明する。Cおよ
びC++プログラミング言語の表記を使用する。この表
記では、係数および量を、それぞれe[i−1][j−
1]およびb[i−1]と表記する。
【0046】下に示す例を理解するために、以下の擬似
コード片の参照が役に立つであろう。変数e[][]お
よびb[]は、なかんずくそのような式に対する演算子
+(加算)、−(減算)、および*(乗算)演算子を実
施する代数式データ型(datatype algebraic expressio
n)を有する。クラスexpressionは、代数式を既約形に
変換できるメソッドも有する。 // ガウス消去 // e[][]およびb[]はExpression型である。 for (i = 0; i < n-1; i++) { // 導出系のインデックス。 // --- コメント1 --- // e[i][i] = 0ならば、この行を、それより下にある、 // e[i][k] != 0である別の行(たとえばk > iのk行目) // と交換する。そのようなkが見つからない場合には、 // 行列eが特異であるというメッセージで終了する。 // これを行うコードはここでは示さない。 for (j = i+1; j < n; j++) { for (k = i+1; k < n; k++) { // i行目にe[j][i]を掛ける。 // j行目にe[i][i]を掛ける。 // i行目をj行目から引く。 e[j][k] = e[j][k]*e[i][i] - e[i][k]*e[j][i]; } b[j] = b[j]*e[i][i] - b[i]*e[j][i]; } // 下三角係数を0にする。 for (k = 0; k < i; k++) e[i][k] = 0; } // 後退代入。 i = n; // 下のwhileループの最後に、e[i-1][i-1]にliiが // 含まれ、b[i-1]にriが含まれる。解は、 // xi = lii/riになる。 while (i--) { j = n; while (j--) b[j] = b[j]*e[i][i] - b[i]*e[j][i]; for(k = 0; k < n; k++) { for (j = k; j < n; j++) { e[k][j] *= e[i][i]; } } }
【0047】ここで、系S1が、次の方程式の組である
ものとする。 ax1+x2+x3=a+2 x1+x2+x3=3 x1+x2−x3=1 また、系S2が、次の方程式の組であるものとする。 ax1+2x2=a+2 2x1+2x2=4 x2−x3=0 すなわち、各組が3つの方程式からなる。
【0048】まず系S1を検討すると、係数および量を
次のように記述することができる。 e[0][0]=a e[0][1]=1 e[0][2]=1 b[0]=a+2 e[1][0]=1 e[1][1]=1 e[1][2]=1 b[1]=3 e[2][0]=1 e[2][1]=1 e[2][2]=−1 b[2]=1
【0049】系S1でステップ240を実行することに
よって、下記のように、係数および量のすべての項が、
方法200を実行するコンピュータ・プログラムによっ
て既約形に変換される。計算の異なる段階で擬似コード
変数によって参照されるテキスト変数を、右側に示す。 既約形 変数 e[0][0]=+.10000e+01*a 011=e11 e[0][1]=+.10000e+01 012=e12 e[0][2]=+.10000e+01 013=e13 b[0]=+.10000e+01*a+.20000e+01 01=b1 e[1][0]=+.10000e+01 021=e21 e[1][1]=+.10000e+01 022=e22 e[1][2]=+.10000e+01 023=e23 b[1]=+.30000e+01 02=b2 e[2][0]=+.10000e+01 031=e31 e[2][1]=+.10000e+01 032=e32 e[2][2]=−.10000e+01 033=e33 b[2]=+.10000e+01 03=b3
【0050】ステップ250でカウンタkに1をセット
し、ステップ252を実行することによって第1導出系
を見つけ、これによって、式2および3から変数x1
消去する。第1導出系の係数1ijおよび量1iは、次
のようになる。 既約形 変数 e[0][0]=+.10000e+01*a 011 e[0][1]=+.10000e+01 012 e[0][2]=+.10000e+01 013 b[0]=+.10000e+01*a+.20000e+01 01 e[1][0]=+.00000e+00 12l e[1][1]=-.10000e+01+.10000e+01*a 122 e[1][2]=-.10000e+01+.10000e+01*a 123 b[1]=-.20000e+01+.20000e+01*a 12 e[2][0]=+.00000e+00 131 e[2][1]=-.10000e+01+.10000e+01*a 132 e[2][2]=-.10000e+01-.10000e+01*a 133 b[2]=-.20000e+01 13
【0051】系S1の上の第1導出系は、通常の代数形
で記述した時に、次のようになる。 ax1+x2+x3=a+2 (a−1)x2+(a−1)x3=2(a−1) (a−1)x2−(a+1)x3=−2
【0052】ステップ250ないし260を繰り返すこ
とによって、方法200によって、次のように系S1
第2導出系が計算される。 既約形 変数 e[0][0]=+.10000e+01*a 011 e[0][1]=+.10000e+01 012 e[0][2]=+.10000e+01 013 b[0]=+.10000e+01*a+.20000e+01 01 e[1][0]=+.00000e+00 12l e[1][1]=-.10000e+01+.10000e+01*a 122 e[1][2]=-.10000e+01+.10000e+01*a 123 b[1]=-.20000e+01+.20000e+01*a 12 e[2][0]=+.00000e+00 23l e[2][1]=+.00000e+00 232 e[2][2]=+.20000e+01*a-.20000e+01*a*a 233=l33 b[2]=+2.0000e+00*a-2.0000e+00*a*a 23=r3 または、 ax1+x2+x3=a+2 (a−1)x2+(a−1)x3=2(a−1) −2a(a−1)x3=−2a(a−1)
【0053】後退代入のステップ280を実行すること
によって、分子riおよび分母liiを見つけることがで
きる。具体的に言うと、第2導出系の最後の方程式か
ら、分子r3および分母l33が、 l33=−2a(a−1) および r3=−2a(a−
1) になる。
【0054】分子r3および分母l33を第2方程式に代
入することによって、下記が得られる。 既約形 変数 e[1][1]=-.20000e+01*a+.40000e+01*a*a-.20000e+01*a*a*a l22 b[1]=-.20000e+01*a+.40000e+01*a*a-.20000e+01*a*a*a r2 または l22=−2a(1−2a+a2) および r2=−2a
(1−2a+a2
【0055】最後の後退代入で、 既約形 変数 e[0][0]=-.40000e+01*a*a*a+.12000e+02*a*a*a*a-.12000e+02*a*a*a*a*a+.400 00e+01*a*a*a*a*a*a l11 b[0]=-.40000e+01*a*a*a+.12000e+02*a*a*a*a-.12000e+02*a*a*a*a*a+.40000e +01*a*a*a*a*a*a r1 が得られ、これによって l11=−4a3(1−3a+3a2−a3) および n
=−4a3(1−3a+3a2−a3) が得られる。
【0056】同様の形で、系S2の第1導出系を、次の
ように記述することができる。 既約形 変数 e[0][0]=+.10000e+01*a 011 e[0][1]=+.20000e+01 012 e[0][2]=+.00000e+00 013 b[0]=+.10000e+01*a+.20000e+01 01 e[1][0]=+.00000e+00 12l e[1][1]=-.40000e+01+.20000e+01*a 122 e[1][2]=+.00000e+00 123 b[1]=-.40000e+01+.20000e+01*a 12 e[2][0]=+.00000e+00 131 e[2][1]=+.10000e+01*a 132 e[2][2]=-.10000e+01*a 133 b[2]=+.00000e+00 13 または ax1+2x2=a+2 2(a−2)x2=2(a−2) ax2−ax3=0
【0057】系S2の第2導出系は次の通りである。 既約形 変数 e[0][0]=+.10000e+01*a 011 e[0][1]=+.20000e+01 012 e[0][2]=+.00000e+00 013 b[0]=+.10000e+01*a+.20000e+01 01 e[1][0]=+.00000e+00 12l e[1][1]=-.40000e+01+.20000e+01*a 122 e[1][2]=+.00000e+00 123 b[1]=-.40000e+01+.20000e+01*a 12 e[2][0]=+.00000e+00 23l e[2][1]=+.10000e+01*a 232 e[2][2]=+.40000e+01*a-.20000e+01*a*a 233=l33 b[2]=+.40000e+01*a-.20000e+01*a*a 23=r3 または ax1+2x2=a+2 2(a−2)x2=2(a−2) 2a(2−a)x3=2a(2−a)
【0058】系S2についてやはり後退代入のステップ
280を実行することによって、分子riおよび分母l
iiを見つけることができる。分子r3および分母l33
次の通りである。 l33=2a(2−a) および r3=2a(2−a)
【0059】分子r3および分母l33を第2方程式に代
入することによって、下記が得られる。 既約形 変数 e[1][1]=-.16000e+02*a+.16000e+02*a*a-.40000e+01*a*a*a l22 b[1]=-.16000e+02*a+.16000e+02*a*a-.40000e+01*a*a*a r2 または l22=−4a(4−4a+a2) および r2=−4a
(4−4a+a2
【0060】最後の後退代入で、下記が得られる 既約形 変数 e[0][0]=-.64000e+02*a*a*a+.96000e+02*a*a*a*a-.48000e+02*a*a*a*a*a+.800 00e+01*a*a*a*a*a*a l11 b[0]=-.64000e+02*a*a*a+.96000e+02*a*a*a*a-.48000e+02*a*a*a*a*a+.80000e +01*a*a*a*a*a*a r1 またはl11=−8a3(8−12a+6a2−a3) お
よび r1=−8a3(8−12a+6a2−a3
【0061】ステップ290を実行することによって、
式(lii1*(ri2および(li i2*(ri1が、
計算され、その既約形に約される。たとえば、(l22
1*(r22を計算することによって、下記が得られ
る。 (l221*(r22 =(-.20000e+01*a+.40000e+01*a*a-.20000e+01*a*a*a)* (-.16000e+02*a+.16000e+02*a*a-.40000e+01*a*a*a) =+.32000e+02*a*a-.32000e+02*a*a*a+.80000e+01*a*a*a*a -.64000e+02*a*a*a+.64000e+02*a*a*a*a-.16000e+02*a*a*a*a*a +.32000e+02*a*a*a*a-.32000e+02*a*a*a*a*a+.80000e+01*a*a*a*a*a*a =+.32000e+02*a*a-.96000e+02*a*a*a+.10400e+03*a*a*a*a -.48000e+02*a*a*a*a*a+.80000e+01*a*a*a*a*a*a
【0062】同様に、(l222*(r21を計算する
ことによって、下記が得られる。 (l222*(r21 =(-.16000e+02*a+.16000e+02*a*a-.40000e+01*a*a*a)* (-.20000e+01*a+.40000e+01*a*a-.20000e+01*a*a*a) =+.32000e+02*a*a-.64000e+02*a*a*a+.32000e+02*a*a*a*a -.32000e+02*a*a*a+.64000e+02*a*a*a*a-.32000e+02*a*a*a*a*a +.80000e+01*a*a*a*a-.16000e+02*a*a*a*a*a+.80000e+01*a*a*a*a*a*a =+.32000e+02*a*a-.96000e+02*a*a*a+.10400e+03*a*a*a*a -.48000e+02*a*a*a*a*a+.80000e+01*a*a*a*a*a*a
【0063】ステップ290で、同様に、i=1および
i=3について式(lii1*(ri2および(lii2
*(ri1を計算する。ステップ300で実行される、
(l 221*(r22と(l222*(r21の単純な文
字列比較によって、これらの式が一致することが示され
る。i=1およびi=3について(lii1*(ri 2
と(lii2*(ri1の比較を繰り返し、i=1、
2、および3のそれぞれについて式が一致することを見
つけることによって、系S1が系S2と同値であることを
示すことができる。
【0064】本発明の実施形態は、たとえばコンパイラ
内で実施することができる。周知の通り、コンパイラ
は、C++などの言語で記述された高水準ソース・コー
ドから計算機実行可能オブジェクト・コードを生成す
る。
【0065】前述は、本発明の一部の実施形態だけを説
明したものであり、本発明の範囲および趣旨から逸脱せ
ずに修正または変更を加えることができ、上記の実施形
態は、例示的であって制限的ではない。たとえば、3組
以上の連立一次代数方程式の同値を、同値に関する組の
対ごとの比較によって判定することができる。
【0066】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0067】(1)連立一次代数方程式の第1組および
第2組の同値を判定する、コンピュータ実施される方法
であって、xjが未知数、eijが係数、biが量であり、
前記係数および量が既知の数式であるものとして、前記
方程式のそれぞれが、 ei11+ei22+ei33+…+einn=bi の形であり、liiおよびriが代数式であり、k=
{1;2}が、前記方程式がそこから導出された前記組
の1つを示すものとして、前記方程式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の前記組のそれぞ
れから前記未知数を繰り返して消去するステップと、前
記未知数のそれぞれについて、積(lii1*(ri2
と(lii2*(ri1とを比較するステップであっ
て、前記積がすべての前記未知数について一致する場合
に、連立一次代数方程式の前記第1組および前記第2組
が同値である、比較するステップとを含む、コンピュー
タ実施される方法。 (2)前記方法がさらに、前記代数式を、文字列内で順
次配置された1つまたは複数のトークン対の形に再計算
する初期ステップであって、各前記トークン対が、オペ
ランドが続く演算子を含む、再計算する初期ステップ
と、既約式を得るために、所定の簡約化規則の組に従っ
て前記文字列を約する初期ステップとを含み、前記消去
するステップが、所定の動作の組に従って、前記約され
た文字列に対して実行される上記(1)に記載のコンピ
ュータ実施される方法。 (3)前記簡約化規則が、トークン対をサブグループに
配置するステップと、配置されたサブグループのオペラ
ンド・トークンを順番に配置するステップと、約された
サブグループを形成するために、1つまたは複数の定数
を整理し、反対の効果の変数を消去することによって、
順序付けられたオペランドを約するステップと、約され
た文字列を作るために、類似するサブグループの1つま
たは複数の倍数インスタンスを整理するステップとを実
行することを含む、上記(2)に記載のコンピュータ実
施される方法。 (4)連立一次代数方程式の第1組および第2組の同値
を判定する計算装置であって、xjが未知数、eijが係
数、biが量であり、前記係数および量が既知の数式で
あるものとして、前記方程式のそれぞれが、 ei11+ei22+ei33+…+einn=bi の形であり、liiおよびriが代数式であり、k=
{1;2}が、前記方程式がそこから導出された前記組
の1つを示すものとして、前記方程式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の前記組のそれぞ
れから前記未知数を繰り返して消去する手段と、前記未
知数のそれぞれについて、積(lii1*(ri2
(lii2*(ri1とを比較する手段であって、前記
積がすべての前記未知数について一致する場合に、連立
一次代数方程式の前記第1組および前記第2組が同値で
ある、比較する手段とを含む、計算装置。 (5)前記計算装置がさらに、前記代数式を、文字列内
で順次配置された1つまたは複数のトークン対の形に再
計算する手段であって、各前記トークン対が、オペラン
ドが続く演算子を含む、再計算する手段と、既約式を得
るために、所定の簡約化規則の組に従って前記文字列を
約する手段とを含み、前記消去する手段が、所定の動作
の組に従って、前記約された文字列に対して動作する上
記(4)に記載の計算装置。 (6)前記消去する手段が、トークン対をサブグループ
に配置する所定の動作と、配置されたサブグループのオ
ペランド・トークンを順番に配置する所定の動作と、約
されたサブグループを形成するために、1つまたは複数
の定数を整理し、反対の効果の変数を消去することによ
って、順序付けられたオペランドを約する所定の動作
と、約された文字列を作るために、類似するサブグルー
プの1つまたは複数の倍数インスタンスを整理する所定
の動作とを実行する、上記(5)に記載の計算装置。 (7)連立一次代数方程式の第1組および第2組の同値
を判定する、記憶媒体によって担持されるコンピュータ
・プログラム製品であって、xjが未知数、eijが係
数、biが量であり、前記係数および量が既知の数式で
あるものとして、前記方程式のそれぞれが、 ei11+ei22+ei33+…+einn=bi の形であり、liiおよびriが代数式であり、k=
{1;2}が、前記方程式がそこから導出された前記組
の1つを示すものとして、前記方程式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の前記組のそれぞ
れから前記未知数を繰り返して消去するプログラム要素
と、前記未知数のそれぞれについて、積(lii1
(ri2と(lii2*(ri1とを比較するプログラ
ム要素であって、前記積がすべての前記未知数について
一致する場合に、連立一次代数方程式の前記第1組およ
び前記第2組が同値である、比較するプログラム要素と
を含む、コンピュータ・プログラム製品。 (8)前記代数式を、文字列内で順次配置された1つま
たは複数のトークン対の形に再計算するプログラム要素
であって、各前記トークン対が、オペランドが続く演算
子を含む、再計算するプログラム要素と、既約式を得る
ために、所定の簡約化規則の組に従って前記文字列を約
するプログラム要素とをさらに含み、前記消去するプロ
グラム要素が、所定の動作の組に従って、前記約された
文字列に対して動作する上記(7)に記載のコンピュー
タ・プログラム製品。 (9)前記消去するプログラム要素が、トークン対をサ
ブグループに配置する所定の動作と、配置されたサブグ
ループのオペランド・トークンを順番に配置する所定の
動作と、約されたサブグループを形成するために、1つ
または複数の定数を整理し、反対の効果の変数を消去す
ることによって、順序付けられたオペランドを約する所
定の動作と、約された文字列を作るために、類似するサ
ブグループの1つまたは複数の倍数インスタンスを整理
する所定の動作とを実行する、上記(8)に記載のコン
ピュータ・プログラム製品。 (10)連立一次代数方程式(SLEA)の組の同値を
判定する、コンピュータ実施される方法であって、各前
記組が、複数の代数方程式を含み、各SLAEを標準的
な形に約すステップと、同値が存在するかどうかを判定
するためにSLAEを比較するステップとを含む方法。 (11)前記約するステップが、各SLAEを既約形に
変換するステップと、消去処理を実行するステップと、
各SLAEの2部文字列配列形を生成する後退代入処理
を実行するステップとを含む、上記(10)に記載の方
法。 (12)前記比較するステップが、文字列配列の一部と
もう1つの前記文字列配列の一部との積を形成するステ
ップと、文字列配列の他の部分と前記もう1つの文字列
配列の他の部分との積を形成するステップと、数学的同
値について前記めいめいの積を比較するステップとを含
む、上記(10)に記載の方法。 (13)3組以上の場合に、前記比較ステップが、組の
総数の対の組合せについて繰り返される、上記(12)
に記載の方法。 (14)連立一次代数方程式(SLAE)の第1組およ
び第2組の同値を判定する、コンピュータ実施される方
法であって、各SLAEを2部分の標準的な形にするた
めに、SLAEの前記組のそれぞれから未知数を繰り返
して消去するステップと、一方の前記標準的な形の方程
式の一部ともう1つの前記標準的な形の方程式のもう1
つの部分の一部との積を形成するステップと、前記標準
的な形の方程式の他の部分と前記もう1つの標準的な形
の方程式の他の部分との積を形成するステップと、数学
的同値について前記めいめいの積を比較するステップと
を含む方法。
【図面の簡単な説明】
【図1】本発明の実施形態を実践することができる、従
来の汎用コンピュータ・システムの概略ブロック図であ
る。
【図2】2組の連立一次代数方程式が同値であるかどう
かを判定する方法の流れ図である。
【符号の説明】
200 方法 240 すべての係数eijおよび量biを既約形に変換
するステップ 250 k=1をセットするステップ 252 第k導出系を得るステップ 255 副系を定義するステップ 258 kを増分するステップ 260 k=n−1かどうかを判定するステップ 262 線 270 エラー・メッセージのステップ 280 後退代入のステップ 290 式(lii1*(ri2および(lii2*(r
i1を計算するステップ 300 文字列比較のステップ 310 すべてのiについて一致するかどうかを判定す
るステップ 312 同値を報告するステップ 315 非同値を報告するステップ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラジェンドラ・クマール・ベラ インド 560071 バンガロール ドムル ア・レイアウト フォーティーンス・クロ ス・ロード 640 Fターム(参考) 5B056 BB02

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】連立一次代数方程式の第1組および第2組
    の同値を判定する、コンピュータ実施される方法であっ
    て、xjが未知数、eijが係数、biが量であり、前記係
    数および量が既知の数式であるものとして、前記方程式
    のそれぞれが、 ei11+ei22+ei33+…+einn=bi の形であり、 liiおよびriが代数式であり、k={1;2}が、前
    記方程式がそこから導出された前記組の1つを示すもの
    として、前記方程式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の前記組のそれぞ
    れから前記未知数を繰り返して消去するステップと、 前記未知数のそれぞれについて、積(lii1*(ri
    2と(lii2*(ri1とを比較するステップであっ
    て、前記積がすべての前記未知数について一致する場合
    に、連立一次代数方程式の前記第1組および前記第2組
    が同値である、比較するステップとを含む、コンピュー
    タ実施される方法。
  2. 【請求項2】前記方法がさらに、 前記代数式を、文字列内で順次配置された1つまたは複
    数のトークン対の形に再計算する初期ステップであっ
    て、各前記トークン対が、オペランドが続く演算子を含
    む、再計算する初期ステップと、 既約式を得るために、所定の簡約化規則の組に従って前
    記文字列を約する初期ステップと を含み、 前記消去するステップが、所定の動作の組に従って、前
    記約された文字列に対して実行される請求項1に記載の
    コンピュータ実施される方法。
  3. 【請求項3】前記簡約化規則が、 トークン対をサブグループに配置するステップと、 配置されたサブグループのオペランド・トークンを順番
    に配置するステップと、 約されたサブグループを形成するために、1つまたは複
    数の定数を整理し、反対の効果の変数を消去することに
    よって、順序付けられたオペランドを約するステップ
    と、 約された文字列を作るために、類似するサブグループの
    1つまたは複数の倍数インスタンスを整理するステップ
    とを実行することを含む、請求項2に記載のコンピュー
    タ実施される方法。
  4. 【請求項4】連立一次代数方程式の第1組および第2組
    の同値を判定する計算装置であって、xjが未知数、e
    ijが係数、biが量であり、前記係数および量が既知の
    数式であるものとして、前記方程式のそれぞれが、 ei11+ei22+ei33+…+einn=bi の形であり、 liiおよびriが代数式であり、k={1;2}が、前
    記方程式がそこから導出された前記組の1つを示すもの
    として、前記方程式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の前記組のそれぞ
    れから前記未知数を繰り返して消去する手段と、 前記未知数のそれぞれについて、積(lii1*(ri
    2と(lii2*(ri1とを比較する手段であって、前
    記積がすべての前記未知数について一致する場合に、連
    立一次代数方程式の前記第1組および前記第2組が同値
    である、比較する手段とを含む、計算装置。
  5. 【請求項5】前記計算装置がさらに、 前記代数式を、文字列内で順次配置された1つまたは複
    数のトークン対の形に再計算する手段であって、各前記
    トークン対が、オペランドが続く演算子を含む、再計算
    する手段と、 既約式を得るために、所定の簡約化規則の組に従って前
    記文字列を約する手段とを含み、 前記消去する手段が、所定の動作の組に従って、前記約
    された文字列に対して動作する請求項4に記載の計算装
    置。
  6. 【請求項6】前記消去する手段が、 トークン対をサブグループに配置する所定の動作と、 配置されたサブグループのオペランド・トークンを順番
    に配置する所定の動作と、 約されたサブグループを形成するために、1つまたは複
    数の定数を整理し、反対の効果の変数を消去することに
    よって、順序付けられたオペランドを約する所定の動作
    と、 約された文字列を作るために、類似するサブグループの
    1つまたは複数の倍数インスタンスを整理する所定の動
    作とを実行する、請求項5に記載の計算装置。
  7. 【請求項7】連立一次代数方程式の第1組および第2組
    の同値を判定する、記憶媒体によって担持されるコンピ
    ュータ・プログラム製品であって、xjが未知数、eij
    が係数、biが量であり、前記係数および量が既知の数
    式であるものとして、前記方程式のそれぞれが、 ei11+ei22+ei33+…+einn=bi の形であり、 liiおよびriが代数式であり、k={1;2}が、前
    記方程式がそこから導出された前記組の1つを示すもの
    として、前記方程式のそれぞれが、 (liiki=(rik の形になるまで、連立一次代数方程式の前記組のそれぞ
    れから前記未知数を繰り返して消去するプログラム要素
    と、 前記未知数のそれぞれについて、積(lii1*(ri
    2と(lii2*(ri1とを比較するプログラム要素で
    あって、前記積がすべての前記未知数について一致する
    場合に、連立一次代数方程式の前記第1組および前記第
    2組が同値である、比較するプログラム要素とを含む、
    コンピュータ・プログラム製品。
  8. 【請求項8】前記代数式を、文字列内で順次配置された
    1つまたは複数のトークン対の形に再計算するプログラ
    ム要素であって、各前記トークン対が、オペランドが続
    く演算子を含む、再計算するプログラム要素と、 既約式を得るために、所定の簡約化規則の組に従って前
    記文字列を約するプログラム要素とをさらに含み、 前記消去するプログラム要素が、所定の動作の組に従っ
    て、前記約された文字列に対して動作する請求項7に記
    載のコンピュータ・プログラム製品。
  9. 【請求項9】前記消去するプログラム要素が、 トークン対をサブグループに配置する所定の動作と、 配置されたサブグループのオペランド・トークンを順番
    に配置する所定の動作と、 約されたサブグループを形成するために、1つまたは複
    数の定数を整理し、反対の効果の変数を消去することに
    よって、順序付けられたオペランドを約する所定の動作
    と、 約された文字列を作るために、類似するサブグループの
    1つまたは複数の倍数インスタンスを整理する所定の動
    作とを実行する、請求項8に記載のコンピュータ・プロ
    グラム製品。
  10. 【請求項10】連立一次代数方程式(SLEA)の組の
    同値を判定する、コンピュータ実施される方法であっ
    て、各前記組が、複数の代数方程式を含み、 各SLAEを標準的な形に約すステップと、 同値が存在するかどうかを判定するためにSLAEを比
    較するステップとを含む方法。
  11. 【請求項11】前記約するステップが、 各SLAEを既約形に変換するステップと、 消去処理を実行するステップと、 各SLAEの2部文字列配列形を生成する後退代入処理
    を実行するステップとを含む、請求項10に記載の方
    法。
  12. 【請求項12】前記比較するステップが、 文字列配列の一部ともう1つの前記文字列配列の一部と
    の積を形成するステップと、 文字列配列の他の部分と前記もう1つの文字列配列の他
    の部分との積を形成するステップと、 数学的同値について前記めいめいの積を比較するステッ
    プとを含む、請求項10に記載の方法。
  13. 【請求項13】3組以上の場合に、前記比較ステップ
    が、組の総数の対の組合せについて繰り返される、請求
    項12に記載の方法。
  14. 【請求項14】連立一次代数方程式(SLAE)の第1
    組および第2組の同値を判定する、コンピュータ実施さ
    れる方法であって、 各SLAEを2部分の標準的な形にするために、SLA
    Eの前記組のそれぞれから未知数を繰り返して消去する
    ステップと、 一方の前記標準的な形の方程式の一部ともう1つの前記
    標準的な形の方程式のもう1つの部分の一部との積を形
    成するステップと、 前記標準的な形の方程式の他の部分と前記もう1つの標
    準的な形の方程式の他の部分との積を形成するステップ
    と、 数学的同値について前記めいめいの積を比較するステッ
    プとを含む方法。
JP2001185339A 2000-06-20 2001-06-19 コンピュータ実施される方法、コンピュータ・システムおよびコンピュータ・プログラム Expired - Fee Related JP3928921B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/597478 2000-06-20
US09/597,478 US7043510B1 (en) 2000-06-20 2000-06-20 Determining the equivalence of two sets of simultaneous linear algebraic equations

Publications (2)

Publication Number Publication Date
JP2002041496A true JP2002041496A (ja) 2002-02-08
JP3928921B2 JP3928921B2 (ja) 2007-06-13

Family

ID=24391676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001185339A Expired - Fee Related JP3928921B2 (ja) 2000-06-20 2001-06-19 コンピュータ実施される方法、コンピュータ・システムおよびコンピュータ・プログラム

Country Status (2)

Country Link
US (2) US7043510B1 (ja)
JP (1) JP3928921B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337437B2 (en) * 1999-12-01 2008-02-26 International Business Machines Corporation Compiler optimisation of source code by determination and utilization of the equivalence of algebraic expressions in the source code
US8176108B2 (en) * 2000-06-20 2012-05-08 International Business Machines Corporation Method, apparatus and computer program product for network design and analysis
US7386582B2 (en) * 2003-09-29 2008-06-10 International Business Machines Corporation Method and structure for producing high performance linear algebra routines using a hybrid full-packed storage format
US7171544B2 (en) * 2003-12-15 2007-01-30 International Business Machines Corporation Run-time parallelization of loops in computer programs by access patterns
US20070255778A1 (en) * 2006-04-27 2007-11-01 Jean-Paul Theis Software method for solving systems of linear equations having integer variables
US20080120357A1 (en) * 2006-11-22 2008-05-22 Jean-Paul Theis Software method for solving systems of linear equations having integer variables

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3621209A (en) * 1969-12-15 1971-11-16 Bell Telephone Labor Inc Machine-implemented process for insuring the numerical stability of gaussian elimination
US5343554A (en) * 1988-05-20 1994-08-30 John R. Koza Non-linear genetic process for data encoding and for solving problems using automatically defined functions
JPH0444165A (ja) * 1990-06-12 1992-02-13 Nec Corp 対称連立一次方程式の求解方式
CA2076293A1 (en) * 1991-10-11 1993-04-12 Prathima Agrawal Multiprocessor computer for solving sets of equations
US5442569A (en) * 1993-06-23 1995-08-15 Oceanautes Inc. Method and apparatus for system characterization and analysis using finite element methods
JP2959525B2 (ja) * 1997-06-02 1999-10-06 日本電気株式会社 データ処理装置および方法、情報記憶媒体
JP3234552B2 (ja) 1997-09-30 2001-12-04 松下電器産業株式会社 最適化装置及びコンピュータ読取可能な記録媒体
US6601080B1 (en) * 2000-02-23 2003-07-29 Sun Microsystems, Inc. Hybrid representation scheme for factor L in sparse direct matrix factorization
US6829626B2 (en) * 2000-07-11 2004-12-07 Texas Instruments Incorporated Computer algebra system and method

Also Published As

Publication number Publication date
JP3928921B2 (ja) 2007-06-13
US7836112B2 (en) 2010-11-16
US7043510B1 (en) 2006-05-09
US20060015550A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
Hidding DiffExp, a Mathematica package for computing Feynman integrals in terms of one-dimensional series expansions
Bostan et al. The complete generating function for Gessel walks is algebraic
Jonsson et al. Recursive blocked algorithms for solving triangular systems—Part II: Two-sided and generalized Sylvester and Lyapunov matrix equations
US10713022B2 (en) Systems and methods for stencil amplification
WO2023130918A1 (zh) 用于管理量子系统的状态的方法、设备、装置和介质
CN111914378B (zh) 一种单振幅量子计算模拟方法及装置
US8423979B2 (en) Code generation for complex arithmetic reduction for architectures lacking cross data-path support
Abed et al. High‐performance low‐power approximate Wallace tree multiplier
CN115759269B (zh) 特征信息的确定方法、装置、设备以及存储介质
US7836112B2 (en) Determining the equivalence of two sets of simultaneous linear algebraic equations
Fortin et al. High‐performance SIMD modular arithmetic for polynomial evaluation
US8176108B2 (en) Method, apparatus and computer program product for network design and analysis
Armaos et al. Efficient parabolic optimisation algorithm for adaptive VQE implementations
JPS6314378B2 (ja)
US6922830B1 (en) Skip list data storage during compilation
JP7020555B2 (ja) 情報処理装置、情報処理方法、及びプログラム
Gawrychowski et al. Universal reconstruction of a string
Winkler et al. Certificates for probabilistic pushdown automata via optimistic value iteration
KR101359764B1 (ko) Dna 서열 분석을 위한 거리합 기반 문자열의 근사주기 계산 방법
US6578196B1 (en) Checking of units and dimensional homogeneity of expressions in computer programs
US7136891B2 (en) Arithmetic and relational operations
Berkling Computer architecture for correct programming
Dasgupta et al. Alpha Elimination: Using Deep Reinforcement Learning to Reduce Fill-In During Sparse Matrix Decomposition
US20220308837A1 (en) Optimization method, information processing apparatus, and system using the same
Arai et al. Option pricing for Barndorff-Nielsen and Shephard model by supervised deep learning

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050623

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060616

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060616

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070227

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070302

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees