アカウント名:
パスワード:
量子コンピュータの処理能力がすごいのは分かります。最近ぽつぽつ何々の技術が開発されました、というニュースも見かけます。しかし実現するまでの距離感がまったく掴めません。
従来のシリコンコンピュータの知識は役に立たないかもしれませんが、詳しい方がいましたら最低限の骨組み完成までにあと何が足りないのか教えて頂きたい。
>あと何が足りないのか
何もかもが足りません。
まず決定的に足りていないのが、多ビット化の方法。量子演算を有効に使おうと思うと、基本的に全ビットに対し同時に操作を行う必要があります。つまり、100bitの数を扱おうと思うと100bitの演算器が要るようなものです。そして現在実現しているのはおよそ10bit。素因数分解だ何だという話に対しては絶望的に足りません。実際、実証として素因数分解したのなんて15を3*5と分解したとかそんな程度で、まさに理論の実証レベルです。特に、多くの多ビット系量子コンピュータは分子内の原子核のスピンを使っていますが、これでは多ビット化に限界があります(距離が遠くなるほど、分子内での核同士の相関が無くなって一体として扱えなくなる)。実用的なものを作ろうと思うなら、もっと超伝導リングなり何なりの固体素子であるとかそういうものを使う必要がありますが、そういったもので有効にビット間に量子的な相関(entanglement)を作る手法は誰も見つけていません。つまり、多ビット化は必要だけれども、技術的な問題どころかどうやればそれが出来るのか、というところから謎です。#ただし、どこかの誰かが想像も出来ないクレバーな手法を開発すればいきなり解決する可能性はありますが。
次に、外界などからのノイズによるビット間の相関の消失(デコヒーレンス)を何とかする必要があります。こちらも量子誤り訂正だとか、まさに今回のタレコミの手法など開発が進められてはいますが、結局それらの手法を使おうとすれば必要なビット数も増加しますし難しいところ。#外乱につよいトポロジカルな量をビットとして使うことがうまくいけば、多少ましになります。
そして、アルゴリズムが不足しています。量子コンピュータは、(1)解きたい問題を量子力学的な過程の組み合わせで解けるように問題を作り直して、(2)その過程を実際の測定手段の組みへとデコードして、それを系に施すことで結果が得られます。(1)に関しては、有名なShorのアルゴリズム(素因数分解がやたらと速い)だとか、データ検索が速いGroverのアルゴリズムなどごく少数の問題に関しては速く解けるアルゴリズムが存在しますが、一般的な計算を速くするアルゴリズムは(少なくとも今のところ)存在しません。(2)に関しては、コンパイラ的なものを作ろうという話はあります。ただ、あくまで(1)が終了した問題に関して、それを現実の系に適用できる測定の組みに分解するだけですので、そもそも(1)が汎用ではない段階で限定的です。たとえて言うのは難しいのですが、アナログコンピュータのようなものでしょうか。抵抗とかコンデンサとかの部品がたくさんある状況で、「y=x^2をx=0から100まで積分した答えが知りたいなあ」と考えたとき、積分回路作って電流を流し、たまった電荷として計算結果がすぐ求まります。しかし、「じゃあ今度はある微分方程式を解いてみよう」と思ったら、その微分方程式を解くと言うことはどういうアナログ回路として実現できるのか?というところからまず考えて、次にそれを実際の回路としてくみ上げて、そこで初めて計算が出来る、という。現状では、任意の数式を量子コンピュータで解ける形に変換するコンパイラがないんですよ。また、どんな問題が量子コンピュータで速くなるのかも謎です。ごく少数の限られた系に関しては速くなることが示されていますが、一般的な問題に対してそういえるわけではありません。#もしかしたら、量子コンピュータが速い問題はほとんど無いかもしれない。
そんなわけで、十分なビット数を持つ量子コンピュータはすぐには実現しそうもありませんし、そもそももしかしたら未来永劫実現しないかもしれません。
全くの素人の勘でしかないですが、この、大きなビットのコヒーレンスを成立できる確率かなにかが、指数的に小さくなっていく、というオチが待っていそうな気がしています。例えばショアのアルゴリズムで、コヒーレンスが成立すれば n のオーダで因数分解できるが、コヒーレンスを成立させるためには、2^nのオーダの試行が必要とか。で、結局NPはNP。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
あと何が必要? (スコア:0)
量子コンピュータの処理能力がすごいのは分かります。
最近ぽつぽつ何々の技術が開発されました、というニュースも見かけます。
しかし実現するまでの距離感がまったく掴めません。
従来のシリコンコンピュータの知識は役に立たないかもしれませんが、
詳しい方がいましたら最低限の骨組み完成までにあと何が足りないのか教えて頂きたい。
Re:あと何が必要? (スコア:1, 参考になる)
>あと何が足りないのか
何もかもが足りません。
まず決定的に足りていないのが、多ビット化の方法。量子演算を有効に使おうと思うと、基本的に全ビットに対し同時に操作を行う必要があります。つまり、100bitの数を扱おうと思うと100bitの演算器が要るようなものです。そして現在実現しているのはおよそ10bit。素因数分解だ何だという話に対しては絶望的に足りません。実際、実証として素因数分解したのなんて15を3*5と分解したとかそんな程度で、まさに理論の実証レベルです。
特に、多くの多ビット系量子コンピュータは分子内の原子核のスピンを使っていますが、これでは多ビット化に限界があります(距離が遠くなるほど、分子内での核同士の相関が無くなって一体として扱えなくなる)。実用的なものを作ろうと思うなら、もっと超伝導リングなり何なりの固体素子であるとかそういうものを使う必要がありますが、そういったもので有効にビット間に量子的な相関(entanglement)を作る手法は誰も見つけていません。
つまり、多ビット化は必要だけれども、技術的な問題どころかどうやればそれが出来るのか、というところから謎です。
#ただし、どこかの誰かが想像も出来ないクレバーな手法を開発すればいきなり解決する可能性はありますが。
次に、外界などからのノイズによるビット間の相関の消失(デコヒーレンス)を何とかする必要があります。こちらも量子誤り訂正だとか、まさに今回のタレコミの手法など開発が進められてはいますが、結局それらの手法を使おうとすれば必要なビット数も増加しますし難しいところ。
#外乱につよいトポロジカルな量をビットとして使うことがうまくいけば、多少ましになります。
そして、アルゴリズムが不足しています。
量子コンピュータは、(1)解きたい問題を量子力学的な過程の組み合わせで解けるように問題を作り直して、(2)その過程を実際の測定手段の組みへとデコードして、それを系に施すことで結果が得られます。
(1)に関しては、有名なShorのアルゴリズム(素因数分解がやたらと速い)だとか、データ検索が速いGroverのアルゴリズムなどごく少数の問題に関しては速く解けるアルゴリズムが存在しますが、一般的な計算を速くするアルゴリズムは(少なくとも今のところ)存在しません。
(2)に関しては、コンパイラ的なものを作ろうという話はあります。ただ、あくまで(1)が終了した問題に関して、それを現実の系に適用できる測定の組みに分解するだけですので、そもそも(1)が汎用ではない段階で限定的です。
たとえて言うのは難しいのですが、アナログコンピュータのようなものでしょうか。
抵抗とかコンデンサとかの部品がたくさんある状況で、「y=x^2をx=0から100まで積分した答えが知りたいなあ」と考えたとき、積分回路作って電流を流し、たまった電荷として計算結果がすぐ求まります。しかし、「じゃあ今度はある微分方程式を解いてみよう」と思ったら、その微分方程式を解くと言うことはどういうアナログ回路として実現できるのか?というところからまず考えて、次にそれを実際の回路としてくみ上げて、そこで初めて計算が出来る、という。
現状では、任意の数式を量子コンピュータで解ける形に変換するコンパイラがないんですよ。また、どんな問題が量子コンピュータで速くなるのかも謎です。ごく少数の限られた系に関しては速くなることが示されていますが、一般的な問題に対してそういえるわけではありません。
#もしかしたら、量子コンピュータが速い問題はほとんど無いかもしれない。
そんなわけで、十分なビット数を持つ量子コンピュータはすぐには実現しそうもありませんし、そもそももしかしたら未来永劫実現しないかもしれません。
Re:あと何が必要? (スコア:1)
全くの素人の勘でしかないですが、この、大きなビットのコヒーレンスを成立できる確率かなにかが、指数的に小さくなっていく、というオチが待っていそうな気がしています。
例えばショアのアルゴリズムで、コヒーレンスが成立すれば n のオーダで因数分解できるが、コヒーレンスを成立させるためには、2^nのオーダの試行が必要とか。で、結局NPはNP。
Re: (スコア:0)
階差エンジンからざっくり100年後にENIACが誕生していることを考えると、量子コンピュータは今世紀中には出来そう?