![]()
Wired News に、「分散コンピューティングで超難問が解けた」という記事が出た。「高速コン
ピューターを使えば、可能な割り当てパターンを照合して、最適のものを選べばいいと思われ るかもしれない。
だが、割り当てパターンの数が膨大すぎるため、1秒当たり1兆回の照合を行なったとしても、
この処理には宇宙の年齢の100倍以上の時間がかかる」というNUG30。
「難問」というより、単純な解法は分かっているのだが、その解法では計算量が多すぎて手に
負えなかった。が、解法を工夫したら、けっこうあっさり解けたという話。
さて、「数値的解法」は、星占いソフトの未来におけるひとつの論点でもある。わたしが前から
言っている「動的数値積分」のことだ。
太陽系の初期条件があって、例えば1兆分の1秒でその1日前(刻み幅)の太陽系の配置を
逆算できるとすると、千年前のホロスコープだって瞬時に出せる。パソコンの性能も、近い将 来、そのくらいになるだろう。
問題は、誤差の評価がすごく難しいこと。主計算より、その計算の検証(誤差保証)のほうに
時間がかかるだろう。で、常時接続が当然になり、通信速度が速くなるとすると、太陽系の配 置は毎秒ごと精密計算したテラバイトなテーブルをデータベースにしておいて、必要に応じてそ こにアクセスする……というほうが実際的なような気もする。
アストロロギア以前の星占いソフトでは、たいてい、おおざっぱなデータベースをローカルで利
用していた。
なぜおおざっぱかというと、従来のパソコンでは、せいぜいメガバイト単位でしかハードディス
クを占有することが許されなかったら。その程度のファイルサイズで例えば千年分の星の位置 を記録しようとすると、どうしても、ごく荒いテーブルになってしまう。
せいぜい角度の0.01度程度の精度。星空で0.01度オーダといったら、概略位置だ。そんな精
度なら、テーブルを用意しとかなくてもその場で動的に生成できるのでは? という発想でやっ てみたら、実際、動的にできて、しかも精度が一気に二桁あがった。0.0001度のオーダに到達 した。それが、今のアストロロギア。
本質的には、摂動論による解析的な近似計算をして、二次以上の摂動項も考慮することで
精度を出している(よく書物に出ている解析近似では、摂動項は一次形式になっている)。
だが、理論上、本当の最高精度を出すには、解析解より数値積分が良い。これはぜんぜん
違う発想で、簡単にいうと、「公式から計算する」のではなく、「何が起こるのか実際にやってみ よう」という感じ。
実際に太陽系のイメージをコンピュータのなかに作ってシミュレートする。天気予報と同じで
短期だと有効だが、長期に渡ると解が不安定になる(三日後くらいの天気は分かるが、10000 日後の天気図は、現状では描けない……というようなイメージ)。
数値積分のアルゴリズム自体は単純なのだが、ややこしいのは誤差保証。正攻法でいくと、
全体として多項式時間で抑えられないから、きのうのホロスコープならぱっと出せても、百年前 のホロスコープとかいうと、ソフトが考え込んでしまう。
だから、百年ごととか十年ごととかで、すごく精度の高い初期条件を持っていて、計算時点の
指定によって、出発位置を変えるといい。なんて、たんたんと書いているが、どういう幅でどう出 発点を用意すると「最適」になるか、という実際のアルゴリズムをずばり言えたら、国によって は特許になるかも、という問題だ。
西暦2000年の標準的なパソコンでスタンドアローンで走らせるとしたら、アストロロギアのやり
方(解析解)が結局、コンパクトネスと速度のかねあいで最適だと思うが、将来、だれかに数値 積分をやってほしいということは、開発者に会うごとに言っているし、ずっと思っている。
自分自身、ちょろっとアルゴリズムを書いてみたことがある。なぜ自分で開発を進めないかと
いうと、いくつかの理由がある。
第一に、複雑ではあるが、やればできると分かりきっている、ということ。まあ、やればでき
る、というのと、それを実際にやる、というのとでは意味が違うのだが。
第二に、やればできることは分かっているが、現状のやり方だと、すごくめんどくさいことも分
かっている、ということ。人類は、現時点では、誤差保証つき数値積分のクールなアルゴリズム を持っていないから、泥臭いことをしないといけない。
しかも、第三点として、実用性の問題がある。そんな無理やりコンパクトに数値計算するくら
いなら、初めに言ったように、一回スパコンで計算して巨大データベースを作り、そこにアクセ スするほうが(つまりデータベースとインターフェイスとを分散するほうが)実用的っぽくなってき た。おまけに、太陽系自体が、どうにもカオティックなのだ。
考え出すと気が変になりそうな問題だ。つまり、数値積分ってことは、例えば12体の問題とし
て連立積分方程式を数値的に解いてゆくわけだが、そのモデルで無視されている小惑星や衛 星等からの摂動が、長期的には致命的な影響を持つんじゃないかという、バタフライな疑惑。
そもそも、いま天文学で公式に採用されている定数からだと、計算期間制限つきで誤差保証
のある数値積分を実行しても、不安定な嘘の答が出てくる――これは、とくに月位置(や冥王 星位置)についていえることで、海上保安庁が二年前おきに「予言」している精密暦の月位置 は、実際、観測結果と矛盾している。
矛盾の一部は、月の形状中心と重心の差だと考えられるが、それだけでは説明のつかない
部分が残る。経験的に補正することはできるが、それでは理論的根拠がない。もっとざっくばら んに言えば、月や惑星の質量がまだよく分かっていない。だから、精密なモデルをくめない。
天文定数が信じられないし、FK5という座標系が信じられない。位置天文学をつきつめてゆ
けば、ぜったい感じることだ。
さらに、将来が未知だというのは、例えば、運動量の大きい未知の小天体がどこかの惑星
(地球かもしれないが)に衝突するかもしれないからだ。すると、その惑星の運動は、突発的か つ致命的な影響を受けてしまう。
不用意な数値積分がすぐに暴走するのと同じくらいに、太陽系そのものが潜在的にカオティ
ックなのだ。これもわたしがよく言うことだが「宇宙は生もので汚い」のだ。
それと、このレベルで実用上の重大な障壁になるのが、出生時刻の精度。多くのクライアント
は、だいたい何時何分ごろに生まれた、という漠然とした情報しか持っていない。時間の分ま できっちり分かる人もいるが、秒まで分かる人はまれだ(それに秒の話になると、どの瞬間が 出生なのだろう、という問題も生じる)。
出生時刻が分単位とした場合、なるほど従来のソフトでは精度に不満が残ったが、アストロ
ロギアによってその不満は、ほとんど解消されてしまった。出生時刻が秒まで分からないなら、 それ以上追求することが実用的な意味を持つのは、かなり限定的なシチュエーションだけだ。
決して無意味ではないのだが、あまり意味がない。ただ、できるとしたらアルゴリズムとしてお
もしろい。それは確かだ。
だから、これは、実用的な意味など無視しきれるような、エネルギッシュな若い人にチャレン
ジしてほしい問題ともいえる。つまり、だれが一番初めに動的数値積分をパソコン上でやる か、だ。
そのとき注意してほしいのは、いわゆる4大小惑星は、質量順に4大とは限らないというこ
と。番号順に4つだけ小惑星を入れると、理論上、最適なモデルにならないと思う。
ほかの可能性として、スパコンで数値積分したデータベースを適当に区切って自動的にチェ
ビシェフ近似多項式に「圧縮」するような、「アルゴリズムを作るアルゴリズム」もほしい。
多項式になっていれば、事実上、パソコンで解けるから、実用上も理論上も興味がある問題
だ。
また、計算エンジンはどうあれ、そこから「占い」の文章を生成するアルゴリズムにも、もっと
発展がほしい。
たぶん、最終的な「新しい解」は、現状のコンピュータの発展のなかからではなく、バイオテク
ノロジーの研究とのかねあい(ニューロコンピュータ)によって生じるだろう。
占いそのものがいかに「非科学的」であろうと、「柔軟」なアルゴリズムに対する理論上の興
味は尽きない。
![]() |