コンピュータだって間違える!? じゃあ、どうすればいいの?
コンピュータは誤差を生むもの
あなたは、コンピュータはいつも正確な計算をするものだと思っていませんか? 残念ながらそれは間違いです。
なぜでしょうか。私たちの世界は十進法ですが、コンピュータの世界は二進法です。十進数を二進数のコンピュータで扱うと、せいぜい64けたぐらいまでしか使えません。つまり、けたが有限なのです。すると、私たちがコンピュータに、十進数の任意の小数を与えると、二進数の有限けたの世界では原理的には考えられない小数が出てきてしまうことがあるのです。こうして誤差が生じます。さらに、加減乗除算ごとに誤差が生じます。
これらの誤差の影響によるシステムの誤作動などによって、予定していない時間にダムが放水したり、線路のポイントが突然切り替わったりという不具合が起きてしまいます。
白黒はっきりつける計算
そのために考えられたのが「精度保証付き計算」です。少し難しいのですが、この計算には「区間解析」という方法を使います。ある区間に限り、「この値とこの値の間は必ず真の値が得られる」ということを証明できる計算方法です。うまくすれば、「このプログラムはこの区間で必ずおかしな振る舞いをする」ということもわかります。
従来は、いくつかの数値を入力し、その結果が想定された答えと合っていれば、おそらく大丈夫だろうと判断していました。しかし、その方法ではそれ以外の数値ではどうかということはわかりません。一方、精度保証付き計算は、ある範囲については白黒をはっきりつけられるのです。
言語を数式に変換する
しかし、普通のプログラムはコンピュータ用の言語で書かれています。そこで、精度保証付き計算の枠組みでチェックするために、数式に変換する基礎的な方法:国内特許(第4958574号)を開発しました。研究を進めている量子計算のプログラムは数式で構築する感じなので、量子計算のプログラム構造を3DCG化できそうです。将来は、仮想現実の世界で人間が量子プログラムを触って不具合を直すといったことが実現するかもしれません。
参考資料
※夢ナビ講義は各講師の見解にもとづく講義内容としてご理解ください。
※夢ナビ講義の内容に関するお問い合わせには対応しておりません。