GroverのアルゴリズムでOracleに何を入力するかについて混乱しています。
重ね合わせた量子状態に加えて、探しているものと探しているものを見つける場所をOracleに入力する必要はありませんか?
たとえば、人の名前のリスト{"Alice"、 "Bob"、 "Corey"、 "Dio"}があり、 "Dio"がリストにあるかどうかを確認するとします。次に、Oracleは入力としてを入力および出力。私はそれを理解しています。1 / 2 (| 00 ⟩ + | 01 ⟩ + | 10 ⟩ - | 11 ⟩ )
しかし、「Dio」という単語と{「Alice」、「Bob」、「Corey」、「Dio」}というリストもOracleに入力する必要はありませんか。それ以外の場合、Oracleはどのように出力を返すことができますか?Oracleはブラックボックスであり、実装方法を考える必要がないため、明示的に言及されていませんか?
オラクルについての私の理解は、
- Oracleには、「Dio」という単語がリストに含まれているかどうかを認識する機能があります。
- そのために、Oracleは重ね合わせた量子状態を入力として受け取り、各量子状態はリストのインデックスを表します。
- したがって、Oracleにを入力し、単語「Dio」がリストのインデックス0にあるかどうかを確認し、はいの場合はを返し、そうでない場合はを返します。- | 00 ⟩ | 00 ⟩
- この場合、Oracleは返します。
- しかし、リストと単語はどうですか?