研究概要 |
前年度に開発した任意精度グレイコード演算アルゴリズムを、連立非線形方程式のすべての解を求めるアルゴリズムに適用し、その有効性を確認した。与えられた領域に存在するすべての解を求めるアルゴリズムとしては、Krawczyk, Moore, Jonesによって開発されたKMJアルゴリズムがよく知られている。これは区間演算を用いる方法で、Krawczyk関数を用いることにより、区間領域において解の存否を確認することができる。この方法の問題点は区間演算に要する計算コストと、解の存否が確定するまで領域を繰り返し分割するための、多大な計算量であった。このアルゴリズムの問題点を解決するために、新たにグレイコード型区間を提案し、この区間を用いると、区間演算の演算量を大幅に削減することができ、さらに区間分割による計算量も大幅に削減できることを明らかにした。 これまで区間を表現するためには区間の下限と上限をそれぞれ浮動小数点型で表現していたが、区間幅が小さい場合はグレイコード表現を用いると、下限と上限の上位桁は等しくなり、差異は下位桁の部分だけとなる。このことを利用すると、下限と上限の共通部とそれ以外の部分を分けて計算することにより、大幅に計算が省略できる。この方法はすべての区間演算に適用できる方法であり、グレイコード演算が区間演算の表現として極めて適切であること示すものであることを明らかにした。 一方、区間分割は区間を座標方向に2分することによって行われる。このとき、分割前の区間と分割後の区間は、グレイコードにより区間を表現しておけば、分割による影響を最小限に抑えられること提案した。つまり、グレイコード表現された区間を分割しても、変化するのは下位桁のみとなり、上位桁は影響をうけないため、大幅に計算量を削減できる。この方法は、一般に領域分割する場合に適用できる方法であり、領域分割に対してもクレイコードが極めて適切な表現であることを明らかにしたことになる。 このようなグレイコードの新たな応用を提案するとともに、実際に全解探索ソフトウェアを開発し、これまでの固定桁浮動小数点演算に比較して半分以下の計算量ですべての解が求められることを検証した。また、この方法は上位桁から行われるために、任意に精度を上げていくことが可能なため、重根に近いような状態で、通常のdouble型では求められないような場合にも今回の方法が有効であることを示した。
|