そろそろ始めなくては
量子コンピューティングの勉強をしよう。
- これまでの流れ 昔(電卓時代):それ昔は、手で計算してたって、何時間かかってやってたんですか?!
- ↓
- 今:それ、電卓で計算してたって、何日かかってやってたんですか?!
- ↓
- これから 10年後:それ、ノイマン型コンピュータで計算してたって、何年かかってやってたんですか?!
これは、今のうちからやっておかねば。おじさん置いて行かれる。こわい。
加えて、量子コンピューティングを勉強しようと思う動機の一つは、量子コンピューティングを理解することで、新しい思考回路を手に入れらるかも、と期待しているからです。
CやPythonなどのコンピュータ言語は、それぞれ特徴があるもののの、書く前に頭で考えるアルゴリズムには、あまり大きな違いがないと思います。(オブジェクト指向か、関数型かとかで違うところもあるが、私が利用する範囲では、同じような頭の使い方をしちゃってます。)
一方、SQLの集合論的発想は、他のコンピュータ言語と大きく異なり、通常のプログラミング言語的発想では解くことが大変なものが、SQL的発想だと瞬殺ということがあります。
同様に、古典的コンピュータでは大変な問題が、量子コンピュータでは瞬殺という場合があるとのことですので、量子コンピュータ的思考回路を身につけることは、今後、大きく役立つのでは、と考えました。
ただ、どこから手をつけて良いかよく分からない。少なくとも、今使われている古典的コンピュータを普通に活用するため、半導体素子の知識は必要ないが、量子コンピュータを活用するため、量子物理学の知識が必要なのかすらよく分からず。。
ひとまずは、おそらく活用寄りのQ#を試すのと、理論寄りの大学の授業を受ける所から始めてみる。
Q#は、Microsoftが作った量子アルゴリズムを書くための言語。
大学の授業については、edXにある"Quantum Information Science I"を受講してみよう。こちら、量子コンピューティング界の金字塔、ショアのアルゴリズムで有名な、 Peter Shor先生自ら授業しています。「量子コンピュータがあれば、このアルゴリズムで因数分解が効率的に解ける」なんてことを、量子コンピュータができる前に考えてる人の思考回路がまず理解できないが。。