ブログ

今月のサーキット 12月21日:洗練されたオラクルの作成

18
12月
,
2021

オラクルは量子コンピューティング・アルゴリズムにおいて非常に重要な要素である。オラクルとは本質的に、他のアルゴリズムの入力として使用される「ブラックボックス」関数のことである。例えば、グローバー探索では、オラクルはどの値が探索に一致し、どの値が探索に一致しないかを特定する。

単純なオラクルを作るのは比較的簡単な問題である。例えば、Qiskitの教科書の一部である以下のGrover回路のオラクルを考えてみよう。

この特殊なオラクルの仕事は、状態|101>と |110>をマークして、回路の次の部分で増幅されるようにすることである。

しかし、もっと洗練されたオラクルを書きたい場合はどうなるだろうか?例えば、3つの量子変数があるとする、 a, b c. 各変数は単一の量子ビットではなく、複数の量子ビットで構成されるレジスタである。仮に aは2量子ビット幅であるとする、 bも2量子ビット幅で cは3量子ビット幅である。我々のオラクルは a, b および c Python記法を使って):

 a+ b+(c& 15) % 8 ^ 3 &a^ 10 == 4

このオラクルはもっと複雑で、ユーザーの好みによっては次のようになるかもしれない:

ハイレベルの機能性と、個々のブロックの詳細が確認できる。

そのような神託を作るには長い時間がかかるだろう。

Classiqプラットフォームを使っている場合は別です。これがClassiq上でこのオラクルを作成するコードだ:

{
  "qubit_count": 40,
  "max_depth": 1000,
  "logic_flow": [
    {
      "function": "Arithmetic",
      "function_params": {
        "expression": "(a + b + (c & 15)) % 8 ^ 3 & a ^ 10 == 4",
        "definitions": {"a": {"size": 2}, "b": {"size":2}, "c": {"size":3}},
        "method": "pebble",
        "qubit_count": 30
    },
    "add_as_single_gate": false
  ]
}

異なる算術式を書いたり、各変数の幅を変えたりといった明らかな自由度に加え、希望する量子ビットの数、オラクルの作成方法、その他多くのパラメーターを制御することができる。

回路全体はこんな感じです。下の色のついたブロックの上にカーソルを置いて、下のブロックの「+」マークをクリックすると、回路が拡張され、心ゆくまで拡張し続けることができます。

クラシックのロゴ


Classiq量子アルゴリズム設計プラットフォームを使って2021年12月17日に作成された複雑なオラクル

スクリプトにエラーがありました

オラクルは量子コンピューティング・アルゴリズムにおいて非常に重要な要素である。オラクルとは本質的に、他のアルゴリズムの入力として使用される「ブラックボックス」関数のことである。例えば、グローバー探索では、オラクルはどの値が探索に一致し、どの値が探索に一致しないかを特定する。

単純なオラクルを作るのは比較的簡単な問題である。例えば、Qiskitの教科書の一部である以下のGrover回路のオラクルを考えてみよう。

この特殊なオラクルの仕事は、状態|101>と |110>をマークして、回路の次の部分で増幅されるようにすることである。

しかし、もっと洗練されたオラクルを書きたい場合はどうなるだろうか?例えば、3つの量子変数があるとする、 a, b c. 各変数は単一の量子ビットではなく、複数の量子ビットで構成されるレジスタである。仮に aは2量子ビット幅であるとする、 bも2量子ビット幅で cは3量子ビット幅である。我々のオラクルは a, b および c Python記法を使って):

 a+ b+(c& 15) % 8 ^ 3 &a^ 10 == 4

このオラクルはもっと複雑で、ユーザーの好みによっては次のようになるかもしれない:

ハイレベルの機能性と、個々のブロックの詳細が確認できる。

そのような神託を作るには長い時間がかかるだろう。

Classiqプラットフォームを使っている場合は別です。これがClassiq上でこのオラクルを作成するコードだ:

{
  "qubit_count": 40,
  "max_depth": 1000,
  "logic_flow": [
    {
      "function": "Arithmetic",
      "function_params": {
        "expression": "(a + b + (c & 15)) % 8 ^ 3 & a ^ 10 == 4",
        "definitions": {"a": {"size": 2}, "b": {"size":2}, "c": {"size":3}},
        "method": "pebble",
        "qubit_count": 30
    },
    "add_as_single_gate": false
  ]
}

異なる算術式を書いたり、各変数の幅を変えたりといった明らかな自由度に加え、希望する量子ビットの数、オラクルの作成方法、その他多くのパラメーターを制御することができる。

回路全体はこんな感じです。下の色のついたブロックの上にカーソルを置いて、下のブロックの「+」マークをクリックすると、回路が拡張され、心ゆくまで拡張し続けることができます。

クラシックのロゴ


Classiq量子アルゴリズム設計プラットフォームを使って2021年12月17日に作成された複雑なオラクル

スクリプトにエラーがありました

"キュービット・ガイのポッドキャスト "について

The Qubit Guy(弊社最高マーケティング責任者ユヴァル・ボーガー)がホストを務めるこのポッドキャストは、量子コンピューティングのオピニオンリーダーをゲストに迎え、量子コンピューティングエコシステムに影響を与えるビジネスや技術的な疑問について議論します。ゲストは、量子コンピュータのソフトウェアやアルゴリズム、量子コンピュータのハードウェア、量子コンピューティングの主要なアプリケーション、量子産業の市場調査などについて興味深い見解を提供します。

ポッドキャストへのゲスト推薦をご希望の方は、こちらまでご連絡ください。

量子ソフトウェア開発を開始

お問い合わせ