Pages

Sunday, February 27, 2022

量子コンピューターのプログラムはどうやって書く? - ITpro

mungkinbelum.blogspot.com

全863文字

 量子コンピューターの動作は下の図のような回路で指定します。量子コンピューターにおけるアルゴリズムの設計とは、この回路図を書くことに相当します。普通のコンピューターになじんだ人にとっては、アルゴリズムというとプログラミング言語で記述するイメージが強いと思いますが、現状の量子コンピューターでは、論理ゲートやそれを組み合わせた機能部品をどうつなげて問題を解くかが、アルゴリズムの開発に当たるのです。

量子コンピューターの回路図の例

量子コンピューターの回路図の例

量子コンピューターでは、解きたい問題ごとにこのような回路図(アルゴリズム)を作る。あらかじめ計算に必要な数の量子ビットを用意して、それぞれの入力を重ね合わせ状態にした上で、左から右に向かって順番にさまざまな処理を加えていく。図中のUがそれぞれの量子ビットに加える処理の内容を表し、さまざまなゲートを組み合わせて作る。最終的に量子ビットの状態がどうなったかを測定すると、計算結果が得られる。(出所:筆者)

[画像のクリックで拡大表示]

 この回路図で、横方向に最初から最後まで続く線が何本も伸びています。それぞれが、一つひとつの量子ビットを表しており、縦方向に数えた本数が、この回路が用いる量子ビットの総数です。量子コンピューターでは、回路で使う量子ビットは、あらかじめ全て用意しておく必要があります。

 この回路の計算は、左から右に向けて進みます。一番左に並んだ「0」は、それぞれの量子ビットの最初の状態を0にセットしていることを示します。次に並んだ「H」と書かれた四角は「アダマールゲート」と呼ばれ、0だった量子ビットの状態を、確率半々で0と1が重なり合った状態に変換する論理ゲートです(アルゴリズムによっては最初にアダマールゲートを置かない場合もあります)。

 その後に続く「U」と書かれたいくつもの四角が、個別の処理に相当します。その中身は計算によってさまざまですが、足し算回路のように各種の論理ゲートを組み合わせて作ります。これこそが、アルゴリズム開発の焦点であり醍醐味(だいごみ)です。

 それぞれの横線の最後にはメーターの絵が描かれています。これは、量子ビットの状態の測定を表す記号です。この測定で、量子ビットの状態は最終的に0か1かのどちらかに決まります。

 測定結果が正しい答えになるためには、量子ビットに操作を加えて正解が現れる確率をあらかじめ高めておく必要があります。なお、アルゴリズムによっては、重ね合わせ状態の0や1の確率が、答えに当たる場合があります。その際には、何度も測定を繰り返して、0や1が得られる頻度として確率を推定します。

次回の一問一答

Adblock test (Why?)


からの記事と詳細 ( 量子コンピューターのプログラムはどうやって書く? - ITpro )
https://ift.tt/hueK1MD

No comments:

Post a Comment