IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特許7176127量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム
<>
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図1
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図2
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図3
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図4
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図5
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図6
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図7
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図8
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図9
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図10
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図11
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図12
  • 特許-量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-11
(45)【発行日】2022-11-21
(54)【発明の名称】量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20221114BHJP
   G06N 10/00 20220101ALI20221114BHJP
【FI】
G06N99/00 180
G06N10/00
【請求項の数】 15
(21)【出願番号】P 2021549943
(86)(22)【出願日】2021-03-19
(65)【公表番号】
(43)【公表日】2022-07-26
(86)【国際出願番号】 CN2021081810
(87)【国際公開番号】W WO2021218480
(87)【国際公開日】2021-11-04
【審査請求日】2021-08-26
(31)【優先権主張番号】202010337586.6
(32)【優先日】2020-04-26
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェン,ユィ
(72)【発明者】
【氏名】シェ,チャンユィ
(72)【発明者】
【氏名】チェン,ユィチン
(72)【発明者】
【氏名】ジャン,ションユィ
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2019-96334(JP,A)
【文献】特表2010-525431(JP,A)
【文献】国際公開第2019/105873(WO,A1)
【文献】米国特許出願公開第2019/0205790(US,A1)
【文献】米国特許出願公開第2017/0351974(US,A1)
【文献】SUBASI, Yigit, et al.,Quantum algorithms for systems of linear equations inspired by adiabatic quantum computing,arXiv,2018年,https://doi.org/10.48550/arXiv.1805.10549
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
G06N 10/00
(57)【特許請求の範囲】
【請求項1】
コンピュータ装置が実行する、量子シミュレーションアルゴリズムに基づくデータサーチ方法であって、
サーチ待ちの複数のオルタナティブデータに基づいて、第一状態データ及び第二状態データを生成するステップであって、前記第一状態データに対応する第一状態は、前記複数のオルタナティブデータの選択確率が同じである状態であり、前記第二状態データに対応する第二状態は、サーチ条件が満足されたターゲットデータがサーチされた状態である、ステップ;
前記第一状態データ及び前記第二状態データに基づいて第一サーチ経路を生成するステップであって、前記第一サーチ経路の開始点は前記第一状態を表し、前記第一サーチ経路の終了点は前記第二状態を表し、前記第一サーチ経路は値が未決定の複数の係数を含む、ステップ;
前記第一サーチ経路に対応する第一処理関数を取得するステップであって、前記第一処理関数は前記複数の係数を含み、前記第一処理関数の出力値は前記第一サーチ経路により決定され、前記第一処理関数の出力値が収束することは、前記複数の係数の値がターゲットを満足していることを指示する、ステップ;
前記第一サーチ経路の少なくとも2組の数値集合をトラバーサルするステップであって、各組の数値集合は前記複数の係数に対応する複数の数値を含み、異なる数値集合における複数の数値は完全に同じでない、ステップ;
前記複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、量子シミュレーションアルゴリズムに基づいて前記第一処理関数の出力値を取得するステップ;
前記第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ前記複数の係数の値とし、第二サーチ経路を取得するステップ;及び
前記第二サーチ経路を用いて、前記複数のオルタナティブデータのうちから前記ターゲットデータをサーチするステップを含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記の、前記複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、量子シミュレーションアルゴリズムに基づいて前記第一処理関数の出力値を取得するステップの後に、前記方法は、さらに、
前記第一処理関数の出力値が収束しない場合、トラバーサルされた少なくとも2組の数値集合と、前記少なくとも2組の数値集合に対応する前記第一処理関数の出力値とを得るステップ;
前記少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、第二処理関数を得るステップであって、前記第二処理関数は前記少なくとも2組の数値集合に対応する出力値の分布を記述するために用いられ、前記第二処理関数は前記複数の係数を含む、ステップ;及び
更新後の数値集合を、前記更新後の数値集合における複数の数値に対して期待関数を用いて処理を行った後に得られた出力値が前記期待関数の最大出力値であるように取得するステップであって、前記期待関数は前記第二処理関数の期待収益を記述するために用いられる、ステップを含む、方法。
【請求項3】
請求項2に記載の方法であって、
前記の、前記少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、第二処理関数を得るステップは、
前記少なくとも2組の数値集合がガウス分布を満足した場合、前記少なくとも2組の数値集合に対応する条件付き確率を得るステップであって、前記条件付き確率は、前記少なくとも2組の数値集合に対応する出力値の分布が前記ガウス分布を満足した条件の下で、前記少なくとも2組の数値集合及び対応する出力値に基づいて前記第二処理関数を得る確率を表す、ステップ;及び
前記少なくとも2組の数値集合及び対応する出力値並びに前記条件付き確率に基づいて、取得済みの第二処理関数に対して調整を行い、調整後の前記第二処理関数を得るステップを含む、方法。
【請求項4】
請求項2に記載の方法であって、
前記の、更新後の数値集合を、前記更新後の数値集合における複数の数値に対して期待関数を用いて処理を行った後に得られた出力値が前記期待関数の最大出力値であるように取得するステップは、
前記少なくとも2組の数値集合に対応する前記第一処理関数の出力値のうちの最大出力値を取得するステップ;
前記第二処理関数と前記最大出力値との差に基づいて、前記第二処理関数に対応する前記期待関数を決定するステップであって、前記期待関数は、前記差及び0の最大値の平均値を求める関数である、ステップ;及び
勾配アルゴリズムを用いて、前記期待関数の最大出力値に対応する1組の数値集合を前記更新後の数値集合として決定するステップを含む、方法。
【請求項5】
請求項3に記載の方法であって、
前記の、前記少なくとも2組の数値集合がガウス分布を満足した場合、前記少なくとも2組の数値集合に対応する条件付き確率を得るステップは、
前記少なくとも2組の数値集合が前記ガウス分布を満足した場合、前記少なくとも2組の数値集合に対応する平均値及び分散を取得するステップ;及び
前記平均値及び前記分散に基づいて、前記少なくとも2組の数値集合に対応する条件付き確率を得るステップを含む、方法。
【請求項6】
請求項1乃至5のうちの何れか1項に記載の方法であって、
前記量子シミュレーションアルゴリズムは、複数のサブ関数と、前記複数のサブ関数に基づいて決定される前記第一処理関数の演算法とを含み、
前記の、前記複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、量子シミュレーションアルゴリズムに基づいて前記第一処理関数の出力値を取得するステップは、
前記量子シミュレーションアルゴリズムに基づいて、トラバーサルされた前記数値集合における複数の数値に対して処理を行い、それぞれ、前記複数のサブ関数が出力する第一数値を得るステップ;及び
前記演算法に従って、前記複数のサブ関数が出力する第一数値に対して演算を行い、前記第一処理関数の出力値を得るステップを含む、方法。
【請求項7】
請求項1乃至6のうちの何れか1項に記載の方法であって、
前記の、前記第一状態データ及び前記第二状態データに基づいて第一サーチ経路を生成するステップは、
前記第一状態データ、前記第二状態データ及びターゲットサーチ時間長に基づいて、前記第一サーチ経路を生成するステップであって、前記第一サーチ経路は前記ターゲットサーチ時間長をさらに含み、前記ターゲットサーチ時間長は、前記第一状態を前記第二状態に変換するに必要な時間長を示す、ステップを含む、方法。
【請求項8】
請求項1乃至7のうちの何れか1項に記載の方法であって、
前記複数のオルタナティブデータの類型は異なり、前記サーチ条件はターゲット類型を含み、
前記の、前記第二サーチ経路を用いて、前記複数のオルタナティブデータのうちから前記ターゲットデータをサーチするステップは、
前記第二サーチ経路を用いて、前記複数のオルタナティブデータのうちから、前記ターゲット類型が満足されたターゲットデータをサーチするステップを含む、方法。
【請求項9】
データサーチ装置であって、
サーチ待ちの複数のオルタナティブデータに基づいて、第一状態データ及び第二状態データを生成するための状態データ生成モジュールであって、前記第一状態データに対応する第一状態は、前記複数のオルタナティブデータの選択確率が同じである状態であり、前記第二状態データに対応する第二状態は、サーチ条件が満足されたターゲットデータがサーチされた状態である、状態データ生成モジュール;
前記第一状態データ及び前記第二状態データに基づいて第一サーチ経路を生成するための第一経路生成モジュールであって、前記第一サーチ経路の開始点は前記第一状態を表し、前記第一サーチ経路の終了点は前記第二状態を表し、前記第一サーチ経路は、値が未決定の複数の係数を含む、第一経路生成モジュール;
前記第一サーチ経路に対応する第一処理関数を取得するための第一関数取得モジュールであって、前記第一処理関数は前記複数の係数を含み、前記第一処理関数の出力値は前記第一サーチ経路により決定され、前記第一処理関数の出力値が収束することは、前記複数の係数の値がターゲットを満足していることを指示する、第一関数取得モジュール;
前記第一サーチ経路の少なくとも2組の数値集合をトラバーサルするための集合取得モジュールであって、各組の数値集合は前記複数の係数に対応する複数の数値を含み、異なる数値集合における複数の数値は完全に同じでない、集合取得モジュール;
前記複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、量子シミュレーションアルゴリズムに基づいて前記第一処理関数の出力値を取得するための出力値取得モジュール;
前記第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ前記複数の係数の値とし、第二サーチ経路を取得するための第二経路取得モジュール;及び
前記第二サーチ経路を用いて、前記複数のオルタナティブデータのうちから前記ターゲットデータをサーチするためのデータサーチモジュールを含む、装置。
【請求項10】
請求項9に記載の装置であって、さらに、
前記第一処理関数の出力値が収束しない場合、トラバーサルされた少なくとも2組の数値集合と、前記少なくとも2組の数値集合に対応する前記第一処理関数の出力値とを得るための情報取得モジュール;
前記少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、第二処理関数を得るための第二関数取得モジュールであって、前記第二処理関数は前記少なくとも2組の数値集合に対応する出力値の分布を記述するために用いられ、前記第二処理関数は前記複数の係数を含む、第二関数取得モジュール;及び
更新後の数値集合を、前記更新後の数値集合における複数の数値に対して期待関数を用いて処理を行った後に得られた出力値が前記期待関数の最大出力値であるように取得するための集合更新モジュールであって、前記期待関数は前記第二処理関数の期待収益を記述するために用いられる、集合更新モジュールを含む、装置。
【請求項11】
請求項10に記載の装置であって、
前記第二関数取得モジュールは、
前記少なくとも2組の数値集合がガウス分布を満足した場合、前記少なくとも2組の数値集合に対応する条件付き確率を得るための確率取得ユニットであって、前記条件付き確率は、前記少なくとも2組の数値集合に対応する出力値の分布が前記ガウス分布を満足した条件の下で、前記少なくとも2組の数値集合及び対応する出力値に基づいて前記第二処理関数を得る確率を表す、確率取得ユニット;及び
前記少なくとも2組の数値集合及び対応する出力値並びに前記条件付き確率に基づいて、取得済みの第二処理関数に対して調整を行い、調整後の前記第二処理関数を得るための関数調整ユニットを含む、装置。
【請求項12】
請求項10に記載の装置であって、
前記集合更新モジュールは、さらに、
前記少なくとも2組の数値集合に対応する前記第一処理関数の出力値のうちの最大出力値を取得し;
前記第二処理関数と前記最大出力値との差に基づいて、前記第二処理関数に対応する前記期待関数を決定し、前記期待関数は、前記差及び0の最大値の平均値を求める関数であり;及び
勾配アルゴリズムを用いて、前記期待関数の最大出力値に対応する1組の数値集合を前記更新後の数値集合として決定するために用いられる、装置。
【請求項13】
請求項9乃至12のうちの何れか1項に記載の装置であって、
前記量子シミュレーションアルゴリズムは、複数のサブ関数と、前記複数のサブ関数に基づいて決定される前記第一処理関数の演算法とを含み、
前記出力値取得モジュールは、
前記量子シミュレーションアルゴリズムに基づいて、トラバーサルされた前記数値集合における複数の数値に対して処理を行い、それぞれ、前記複数のサブ関数が出力する第一数値を得るための第一数値取得ユニット;及び
前記演算法に従って、前記複数のサブ関数が出力する第一数値に対して演算を行い、前記第一処理関数の出力値を得るための出力値取得ユニットを含む、装置。
【請求項14】
コンピュータ装置であって、
処理器;及び
前記処理器に接続される記憶器を含み、
前記記憶器には、コンピュータプログラムが記憶されており、
前記コンピュータプログラムは、前記処理器によって実行されることで、請求項1乃至8のうちの何れか1項に記載のデータサーチ方法を実現する、コンピュータ装置。
【請求項15】
コンピュータに、請求項1乃至8のうちの何れか1項に記載のデータサーチ方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年04月26日に中国専利局に出願した、出願番号が202010337586.6、発明の名称が「量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器」である中国特許出願に基づく優先権を主張するものであり、その全内容を参照によりここに援用する。
【0002】
本出願の実施例は、コンピュータ技術分野に関し、特に、量子シミュレーションアルゴリズムに基づくデータサーチ(探索)方法、装置及び機器に関する。
【背景技術】
【0003】
量子計算技術の発展に伴い、量子計算の応用がますます多くなっており、古典的な計算に比べて、量子計算はデータ処理効率を大幅に向上させることができる。量子計算における断熱量子計算は、サーチ経路を用いてデータに対して処理を行い、また、正確なサーチ経路は、断熱量子計算の効率を向上させることができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本出願の実施例は、少なくとも、量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器を提供することを課題とする。
【課題を解決するための手段】
【0005】
一側面によれば、量子シミュレーションアルゴリズムに基づくデータサーチ方法が提供され、前記方法は、
サーチ待ちの複数のオルタナティブデータ(Alternative data)に基づいて、第一状態データ及び第二状態データを生成するステップであって、前記第一状態データに対応する第一状態は、前記複数のオルタナティブデータの選択確率が同じである状態であり、前記第二状態データに対応する第二状態は、サーチ条件が満足されたターゲットデータがサーチされた状態である、ステップ;
前記第一状態データ及び前記第二状態データに基づいて第一サーチ経路を生成するステップであって、前記第一サーチ経路の開始点は前記第一状態を表し、かつ終了点は前記第二状態を表し、前記第一サーチ経路は、値が未決定の複数の係数を含む、ステップ;
前記第一サーチ経路に対応する第一処理関数を取得するステップであって、前記第一処理関数は前記複数の係数を含み、かつ前記第一処理関数の出力値は前記第一サーチ経路により決定され、前記第一処理関数の出力値が収束することは、前記複数の係数の値がターゲットを満足していることを指示する、ステップ;
前記第一サーチ経路の少なくとも2組の数値集合をトラバーサルするステップであって、各組の数値集合は前記複数の係数に対応する複数の数値を含み、かつ異なる数値集合における複数の数値は完全に同じでない、ステップ;
量子シミュレーションアルゴリズムに基づいて、前記複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、前記第一処理関数の出力値を取得するステップ;
前記第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ前記複数の係数の値とし、第二サーチ経路を取得するステップ;及び
前記第二サーチ経路を用いて、前記複数のオルタナティブデータのうちから前記ターゲットデータをサーチするステップを含む。
【0006】
もう1つの側面によれば、データサーチ装置が提供され、前記装置は、
サーチ待ちの複数のオルタナティブデータに基づいて、第一状態データ及び第二状態データを生成するための状態データ生成モジュールであって、前記第一状態データに対応する第一状態は、前記複数のオルタナティブデータの選択確率が同じである状態であり、前記第二状態データに対応する第二状態は、サーチ条件が満足されたターゲットデータがサーチされた状態である、状態データ生成モジュール;
前記第一状態データ及び前記第二状態データに基づいて第一サーチ経路を生成するための第一経路生成モジュールであって、前記第一サーチ経路の開始点は前記第一状態を表し、かつ終了点は前記第二状態を表し、前記第一サーチ経路は、値が未決定の複数の係数を含む、第一経路生成モジュール;
前記第一サーチ経路に対応する第一処理関数を取得するための第一関数取得モジュールであって、前記第一処理関数は前記複数の係数を含み、かつ前記第一処理関数の出力値は前記第一サーチ経路により決定され、前記第一処理関数の出力値が収束することは、前記複数の係数の値がターゲットを満足していることを指示する、第一関数取得モジュール;
前記第一サーチ経路の少なくとも2組の数値集合をトラバーサルするための集合取得モジュールであって、各組の数値集合は前記複数の係数に対応する複数の数値を含み、かつ異なる数値集合における複数の数値は完全に同じでない、集合取得モジュール;
量子シミュレーションアルゴリズムに基づいて、前記複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、前記第一処理関数の出力値を取得するための出力値取得モジュール;
前記第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ前記複数の係数の値とし、第二サーチ経路を取得するための第二経路取得モジュール;及び
前記第二サーチ経路を用いて、前記複数のオルタナティブデータのうちから前記ターゲットデータをサーチするためのデータサーチモジュールを含む。
【0007】
1つの可能な実現方式において、確率取得ユニットは、さらに、
前記少なくとも2組の数値集合が前記ガウス分布を満足した場合、前記少なくとも2組の数値集合に対応する平均値及び分散を取得し;及び
前記平均値及び前記分散に基づいて、前記少なくとも2組の数値集合に対応する条件付き確率(conditional probability)を得るために用いられる。
【0008】
もう1つの可能な実現方式において、前記第一経路生成モジュールは、さらに、
前記第一状態データ、前記第二状態データ及びターゲットサーチ時間長に基づいて、前記第一サーチ経路を生成するために用いられ、
前記第一サーチ経路は前記ターゲットサーチ時間長をさらに含み、前記ターゲットサーチ時間長は、前記第一状態を前記第二状態に変換するに必要な時間長を示す。
【0009】
もう1つの可能な実現方式において、前記複数のオルタナティブデータの類型は異なり、前記サーチ条件はターゲット類型を含み、前記データサーチモジュールは、さらに、
前記第二サーチ経路を用いて、前記複数のオルタナティブデータのうちから、前記ターゲット類型が満足されたターゲットデータをサーチするために用いられる。
【0010】
もう1つの側面によれば、コンピュータ装置が提供され、前記コンピュータ装置は処理器及び記憶器を含み、前記記憶器には少なくとも1つのプログラムコードが記憶されており、前記少なくとも1つのプログラムコードは前記処理器によりロード及び実行されることで、前述のような量子シミュレーションアルゴリズムに基づくデータサーチ方法において実行される操作を実現する。
【0011】
もう1つの側面によれば、コンピュータ可読記憶媒体が提供され、前記コンピュータ可読記憶媒体には少なくとも1つのプログラムコードが記憶されており、前記少なくとも1つのプログラムコードは処理器によりロード及び実行されることで、前述のような量子シミュレーションアルゴリズムに基づくデータサーチ方法において実行される操作を実現する。
【図面の簡単な説明】
【0012】
本出願の実施例における技術案をより明確に説明するために、以下、実施例を説明するに用いる必要のある図面について簡単に紹介する。明らかのように、以下の説明における図面は本出願の幾つかの実施例のみであり、当業者は、創造の労働をせずに、これらの図面に基づいて他の図面を得ることもできる。
図1】本出願の実施例により提供される、量子シミュレーションアルゴリズムに基づくサーチ経路取得方法のフローチャートである。
図2】本出願の実施例により提供される、ガウス過程回帰アルゴリズムによるフィッティングを採用して推定関数を得ることを示す図である。
図3】本出願の実施例により提供される数値集合取得方法のフローチャートである。
図4】本出願の実施例により提供される数値集合取得方法を示す図である。
図5】本出願の実施例により提供される、線形経路、非線形経路及び第二サーチ経路に基づくサーチ効果を示す図である。
図6】本出願の実施例により提供される、線形経路、非線形経路及び第二サーチ経路に基づくもう1つのサーチ効果を示す図である。
図7】本出願の実施例により提供される、第二サーチ経路に基づくサーチ効果を示す図である。
図8】本出願の実施例により提供される、量子シミュレーションアルゴリズムに基づくもう1つのサーチ経路取得方法のフローチャートである。
図9】本出願の実施例により提供される、量子シミュレーションアルゴリズムに基づくデータサーチ方法のフローチャートである。
図10】本出願の実施例により提供されるデータサーチ装置の構成を示す図である。
図11】本出願の実施例により提供されるもう1つのデータサーチ装置の構成を示す図である。
図12】本出願の実施例により提供される端末の構成を示す図である。
図13】本出願の実施例により提供されるサーバーの構成を示す図である。
【発明を実施するための形態】
【0013】
本出願の目的、技術案及び利点をより明らかにするために、以下、図面と併せて本出願の実施形態についてさらに詳細に説明する。
【0014】
理解すべきは、本出願に使用される用語「第一」、「第二」、「第三」などは本文で各種の概念」説明するために用いられ、特段の説明がない限り、これらの概念はこれらの用語により限定されないということである。これらの用語は1つの概念ともう1つの概念を区別するために用いられるだけである。例を挙げて言えば、本出願の範囲を離脱しない限り、第一処理関数を第二処理関数と称し、第二処理関数を第一処理関数と称しても良い。
【0015】
本出願に使用される用語「各」、「複数」などについて、「複数」は2つ又は2つ以上を含み、「各」とは、対応する「複数」のうちの各々を指す。例を挙げて言えば、複数の係数は20個の係数を含み、各係数とはこの20個の係数のうちの各々の係数を指す。
【0016】
本出願の実施例により提供される、量子シミュレーションアルゴリズムに基づくデータサーチ方法を容易に理解するために、以下、関連するキーワードを説明する。
【0017】
量子計算:量子論理に基づいて計算を行う計算方式であり、量子計算ではデータを記憶する基本単位が量子ビット(Qubit)である。
【0018】
量子ビット:量子ビットは量子計算の基本単位である。古典的な計算では、0及び1がバイナリの基本単位として採用されており、この場合、古典的な計算を採用してデータに対して計算を行う過程では、データが0及び1のうちの何れか1つの状態にある。これに対して、量子計算では、データが同時に0又は1である可能性があり、言い換えれば、量子計算では0及び1が同時に存在することができ、即ち、0及び1の線形重ね合わせ状態が存在する。そうすると、量子計算は古典的な計算に比較して、量子計算において線形重ね合わせ状態があるので、計算速度及び可能性を向上させることができる。ここで、線形重ね合わせ状態は以下の公式(1)により示すことができる。
【0019】
【数1】
ここで、
【0020】
【数2】
は線形重ね合わせ状態を表し、αはデータの状態が0にあるときの確率振幅を示し、βはデータの状態が1にあるときの確率振幅を示し、α及びβは何れも複素数である。よって、αのモジュラー二乗|α|2を用いてデータが0である確率を表し、βのモジュラー二乗|β|2を用いてデータが1である確率を表す。
【0021】
固有状態:1つのエルミート共役の行列Hについて、方程式
【0022】
【数3】
を満足した解は、Hの固有状態
【0023】
【数4】
と称され、
【0024】
【数5】
は固有エネルギーEを有する。
【0025】
基底状態:エネルギーが最も低い固有状態である。
【0026】
分離可能状態及びエンタングル状態:1つの純粋状態
【0027】
【数6】
について、
【0028】
【数7】
【0029】
【数8】
に分解することができれば、該純粋状態を分離可能状態と称し、
【0030】
【数9】
【0031】
【数10】
に分解することができなければ、該純粋状態をエンタングル状態と称する。
【0032】
断熱量子計算:1種の量子計算方式である。その数学的定義は次のとおりであり、即ち、n個の粒子に作用し、かつ各粒子がp個の状態及びk局所領域を有する2つの初期状態ハミルトニアンH0及び最終状態ハミルトニアンH1について、ここで、初期状態ハミルトニアンH0の基底状態は唯一の分離可能状態であり、初期状態ハミルトニアンの出力状態がL2ノルムの作用下で最終状態ハミルトニアンH1の基底状態に接近する過程は断熱量子計算と称される。ここで、ハミルトニアンは量子システムにおける総エネルギーを記述するために用いられ、初期状態ハミルトニアンは量子システムにおける最初の総エネルギーであり、最終状態ハミルトニアンは量子システムにおける最終の総エネルギーである。ここで、L2ノルムとは、各要素の2乗の合計の後に平方根を求めることを指す。
【0033】
サーチ経路に対応する関数s(t)=1-t/Tを定義し、tの数値範囲は[0,T]であり、Tは量子システムの発展(evolution)時間であり、量子システムが時間を含むハミルトニアンH(s)に従って初期状態ハミルトニアンH0の基底状態から発展し、最後の初期状態ハミルトニアンH0の出力状態がL2ノルムの作用下で最終状態ハミルトニアンH1の基底状態に接近する過程は、断熱量子計算である。ここで、時間を含むハミルトニアンはH(s)=sH0+(1-s)H1であり、sは定義された関数s(t)である。
【0034】
忠実度:断熱量子計算過程の出力状態と、最終状態ハミルトニアンH1の基底状態との間の類似度を表すために用いられ、出力状態が最終状態ハミルトニアンH1の基底状態に近いほど、忠実度が高くなり、忠実度の数値範囲は0から1である。
【0035】
最適のサーチ経路:固定の発展時間Tについて、関数s(t)を取得し、発展時間Tを公式(2)に代入して1つの最小値を出力することができるようにさせ、公式(3)がシュレディンガー方程式の1つの表現形式であり、シュレディンガー方程式は量子計算における基本方程式の1つであり、量子システムにおける量子動力学を記述するために用いられる。
【0036】
本出願の実施例では、最適のサーチ経路を得る問題を、公式(2)及び公式(3)の解を求める問題に変換し、この場合、最適のサーチ経路は以下の公式(2)及び公式(3)の解である。
【0037】
【数11】
ここで、
【0038】
【数12】
は1つの列ベクトルであり、
【0039】
【数13】
は列ベクトルに対応する1つのエルミート共役の行ベクトルであり、この2つベクトルは量子システムにおける量子純粋状態を表すために用いられ、
【0040】
【数14】
は、
【0041】
【数15】
の1階偏導関数を求めることを表し、H1及びH0は2つの既知のパラメータであり、iは虚数単位であり、t=0のときに、
【0042】
【数16】
であり、
【0043】
【数17】
は最初ハミルトニアンH0の基底状態を表す。
【0044】
図1は、本出願の実施例により提供される、量子シミュレーションアルゴリズムに基づくサーチ経路取得方法のフローチャートである。本出願の実施例の実行主体はコンピュータ装置である。1つの可能な実現方式において、該コンピュータ装置は古典コンピュータ装置である。オプションとして、コンピュータ装置は端末であり、該端末はポータブル、ポケットサイズ、ハンドヘルドなどの複数の類型の端末、例えば、携帯電話、コンピュータ、タブレットコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、スマートスピーカー、スマートウォッチなどであるが、これに限定されない。オプションとして、コンピュータ装置はサーバーであり、該サーバーは、独立した物理サーバー、又は、複数の物理サーバーからなるサーバークラスター又は分散システム、又は、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメインネームサービス、セキュリティサービス、CDN(Content Delivery Network、コンテントデリバリネットワーク)、ビッグデータ、人工知能プラットフォームなどの基本的なクラウドコンピューティングサービスを提供するクラウドサーバーである。もう1つの可能な実現方式において、該コンピュータ装置は量子コンピュータ装置であり、量子コンピュータ装置は、量子力学の法則従って高速数学演算及び論理演算を行い、量子情報を記憶及び処理する物理装置である。量子コンピュータ装置の特徴は主に、実行速度が比較的速く、情報処理能力が比較的強く、応用範囲が比較的広いなどにある。量子コンピュータ装置によって処理される情報が多ければ多いほど、量子コンピュータ装置が計算を実行することが有利になり、正確な計算を保証することができる。図1に示すうように、該方法は以下のステップを含む。
【0045】
101:コンピュータ装置が第一サーチ経路を取得し、該第一サーチ経路は、値が未決定の複数の係数を含む。
【0046】
本出願の実施例では、第一サーチ経路の表現形式が決定されており、複数の係数の間の関係が決定されており、独立変数が決定されており、かつ独立変数と複数の係数との間の関係が決定されているが、該複数の係数の値は未決定である。オプションとして、該複数の係数の値は任意の値であり、該複数の係数のために異なる値を設定することにより、第一サーチ経路に対応する異なるサーチ経路を得ることができる。
【0047】
1つの可能な実現方式において、第一サーチ経路をs(t)=1-t/Tと定義し、該第一サーチ経路に対してフーリエ変換を行い、以下の公式(4)に示すサーチ経路を得ることができる。
【0048】
【数18】
ここで、Tは発展時間であり、tは独立変数であり、bjは、値が未決定の係数であり、jの数値範囲は1から正の無限大であり、かつjは正の整数である。
【0049】
上述の公式(4)は、第一サーチ経路の周波数領域における表現形式であり、断熱量子計算過程において、高周波発振が量子の状態に干渉を与え、量子状態をエネルギーのより高い励起状態に変えやすいが、断熱量子計算では量子状態をエネルギーの比較的低い基底状態に変える必要があるので、周波数Mを以って高周波カットを行う必要があり、言い換えれば、上述の公式(4)では、jの数値範囲は1から正の無限大ではなく、1からMになる。オプションとして、Mは、任意の1つの低周波数であり、例えば、基準低周波数よりも小さい任意の1つの値であり、かつMは正の整数である。
【0050】
よって、以下の公式(5)は最終的に取得される第一サーチ経路であり、該第一サーチ経路ではM個の係数の値を決定する必要がある。
【0051】
【数19】
なお、本出願の実施例では、上述の公式(5)に示す第一サーチ経路を例にとって説明を行ったが、もう1つの実施例において第一サーチ経路は他の表現形式であっても良く、本出願の実施例は第一サーチ経路の表現形式について限定しない。
【0052】
102:コンピュータ装置が第一サーチ経路に対応する第一処理関数を取得する。
【0053】
本出願の実施例では、第一処理関数と第一サーチ経路との間に関連付けが存在し、オプションとして、該第一処理関数は、第一サーチ経路及び他の関数による演算を行うことで得られ、即ち、第一処理関数の出力値は第一サーチ経路によって決定される。該第一処理関数の表現形式は決定されており、かつ第一処理関数における、第一サーチ経路に含まれる値が未決定の該複数の係数以外の他の係数の値はすべて決定されており、複数の係数の間の関係は決定されており、独立変数は決定されており、かつ独立変数と複数の係数との間の関係は決定されている。
【0054】
第一処理関数には上述の値が未決定の複数の係数も含まれる。そのため、データを第一処理関数に入力する場合に、第一処理関数の出力値を決定する前に、複数の係数の値を決定する必要がある。
【0055】
また、複数の係数の値が異なり、第一処理関数の出力値も異なるので、複数の係数のために異なる値を取り、該第一処理関数の出力値が基準値に収束するときに、複数の係数の値がターゲットを満足していることを意味する。よって、該第一処理関数は該第一サーチ経路のターゲット関数である。
【0056】
1つの可能な実現方式において、第一サーチ経路及び第一処理関数は以下の関係を満たす。
【0057】
【数20】
ここで、公式(2)における
【0058】
【数21】
は第一処理関数であり、公式(3)におけるs(t)は第一サーチ経路である。毎回第一サーチ経路s(t)における複数の係数の値を決定し、これにより、第一サーチ経路s(t)を第一処理関数に代入した後に、第一処理関数における変量tの値がTであるときに、第一処理関数の出力値は最小値であり、また、決定した第一サーチ経路s(t)を第一処理関数に複数回代入し、かつ第一処理関数の出力値がすべて収束し得る場合、最後に(最後の1回)決定した第一サーチ経路s(t)における複数の係数の値がターゲットを満足していると決定することができる。
【0059】
なお、本出願の実施例では公式(2)及び公式(3)に基づいて決定される第一処理関数を例にとって説明を行ったが、もう1つの実施例において該第一処理関数は他の表現形式であっても良く、本出願の実施例は第一処理関数の表現形式について限定しない。
【0060】
103:コンピュータ装置が量子シミュレーションアルゴリズムに基づいて、複数の係数の値が数値集合における複数の数値である場合、第一処理関数の出力値を取得する。
【0061】
本出願の実施例では、コンピュータ装置は第一サーチ経路の少なくとも2組の数値集合をトラバーサルし、量子シミュレーションアルゴリズムに基づいて、複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、第一処理関数の出力値を取得する。そのため、1組の数値集合に基づいて第一処理関数の1つの出力値を得ることができ、この場合、該出力値は該数値集合に対応する出力値である。コンピュータ装置は、第一処理関数の出力値を得る過程において、複数組の数値集合を、第一処理関数の出力値が収束するまでトラバーサルする必要があり、第一処理関数の出力値が収束しない場合、ステップ104を実行し、第一処理関数の出力値が収束した場合、ステップ106を実行する。
【0062】
ここで、第一処理関数の出力値が収束しないこととは、トラバーサルされた少なくとも2組の数値集合に対応する第一処理関数の出力値がすべて或る値に収束しないこと指し、第一処理関数の出力値が収束することとは、トラバーサルされた少なくとも2組の数値集合のうち、最近トラバーサルされた少なくとも2組の数値集合に対応する第一処理関数の出力値が同じ値に収束することを指す。ここで、第一処理関数が収束する数値は第一処理関数に基づいて決定される。
【0063】
1つの可能な実現方式において、量子シミュレーションアルゴリズムは、複数のサブ関数、及び複数のサブ関数に基づいて第一処理関数を決定する演算法(演算方式)を含み、コンピュータ装置は、量子シミュレーションアルゴリズムに基づいて、数値集合における複数の数値に対して処理を行い、それぞれ、複数のサブ関数が出力する第一数値を取得し、そして、演算法に従って、複数のサブ関数が出力する第一数値に対して演算処理を行い、第一処理関数の出力値を取得する。
【0064】
オプションとして、第一処理関数は1つのかなり複雑な関数であり、そのため、直接、数値集合における複数の数値を該複数の係数の値として第一処理関数に代入することで出力値を得ることができない。これに対して、量子シミュレーションアルゴリズムは、複数のサブ関数に対して演算法に従って演算を行い、第一処理関数を得ることができ、該複数のサブ関数は比較的簡単な関数であり、そのため、数値集合における複数の数値を該複数の係数の値としてサブ関数に代入することで、各サブ関数が出力する第一数値を得ることができ、そして、複数の第一数値に対して演算法に従って演算を行うことにより、第一処理関数の出力値を取得することができる。
【0065】
104:コンピュータ装置が、第一処理関数の出力値が収束しない場合、取得済みの少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、少なくとも2組の数値集合に対応する出力値の分布を記述するための第二処理関数を取得する。
【0066】
本出願の実施例では、コンピュータ装置が第一サーチ経路の少なくとも2組の数値集合をトラバーサルし、量子シミュレーションアルゴリズムに基づいて少なくとも2組の数値集合に対応する出力値を得た場合、コンピュータ装置は、ガウス過程回帰アルゴリズムを用いて、取得済みの少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、少なくとも2組の数値集合に対応する出力値の分布を記述する第二処理関数を取得し、即ち、第二処理関数に基づいて、少なくとも2組の数値集合に対応する第一処理関数の出力値の分布状況を決定することができる。ここで、ガウス過程回帰アルゴリズムは、ガウス過程を利用してデータに対して回帰分析を行う機械学習アルゴリズムの1つであり、オリジナルターゲット関数に対応する既知の複数のデータ点を用いてフィッティングを行うことによって該オリジナルターゲット関数に対応するフィッティング関数を得ることができる。
【0067】
1つの可能な実現方式において、本出願の実施例における第一処理関数はオリジナルターゲット関数であり、取得済みの少なくとも2つ数値集合及び対応する出力値は第一処理関数に対応する既知の少なくとも2つデータ点である。この場合、以下のステップを用いて取得済みのデータ点に対してフィッティングを行うことで第二処理関数を取得することができる。
【0068】
(1)コンピュータ装置が少なくとも2組の数値集合及び対応する第一処理関数の出力値を取得する。
【0069】
オプションとして、第一処理関数f(x)について言えば、該第一処理関数は未決定の関数であり、かつ該第一処理関数は1つの高次元関数であり、即ち、該第一処理関数の実行可能領域の次元は高次元であり、例えば、x∈Rd(d≦20)により、実行可能領域が20次元であることを表す。
【0070】
本出願の実施例では、k個の数値集合が取得されていることを例にとって説明を行い、k個の数値集合はx1,x2,…,xkであり、かつ該k個の数値集合はすべて第一処理関数の、係数の数値範囲への要求を満足する。この場合、該k個の数値集合における複数の数値をそれぞれ第一処理関数に代入し、該k個の数値集合に対応する第一処理関数の出力値、即ち、[f(x1),f(x2),…,f(xk)]を取得する。言い換えれば、量子シミュレーションアルゴリズムに基づいて、k個の数値集合に対して処理を行い、第一処理関数の出力値を取得する。ここで、kは正の整数であり、xは1つの数値集合を表す。
【0071】
1つの可能な実現方式において、該k個の数値集合に対応する第一処理関数の出力値がガウス分布を満足した場合、該k個の数値集合に対応する第一処理関数の出力値のガウス分布は、以下の公式(6)により表すことができる。
【0072】
【数22】
ここで、x1:kは1番目の数値集合からk番目の数値集合を示し、f(x1:k)はk個の数値集合に対応する第一処理関数の出力値を示し、即ち、f(x1:k)=[f(x1),f(x2),…,f(xk)]であり、μ0は数値集合に対応する期待値を示し、μ0(x1:k)はk個の数値集合に対応する期待値を示し、即ち、μ0(x1:k)=[μ0(x1),μ0(x2),…,μ0(xk)]であり、Σ0は共分散行列を表し、Σ0(x1,x1)は数値集合x1に基づいて決定された共分散行列を表し、Σ0(x1:k,x1:k)はk個の数値集合に対応する共分散行列を表し、即ち、
【0073】
【数23】
である。
【0074】
(2)コンピュータ装置が取得済みの少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、少なくとも2組の数値集合に対応する出力値の分布を記述するための第二処理関数を取得する。
【0075】
1つの可能な実現方式において、コンピュータ装置は、少なくとも2組の数値集合がガウス分布を満足した場合、少なくとも2組の数値集合に対応する条件付き確率を取得し、少なくとも2組の数値集合及び対応する出力値並びに条件付き確率に基づいて、第二処理関数を調整し、調整後の第二処理関数を得る。ここで、条件付き確率は、少なくとも2組の数値集合に対応する出力値の分布がガウス分布を満足した条件の下で、少なくとも2組の数値集合及び対応する出力値に基づいて第二処理関数の確率を取得する。オプションとして、ガウス分布は多次元ガウス分布である。
【0076】
第一処理関数の任意の出力値のジョイント分布がガウス分布を満足した場合、かつ取得済みの少なくとも2組の数値集合に対応する出力値に基づいて、第二処理関数についての事後確率を取得したときに、該事後確率を少なくとも2組の数値集合に対応する条件付き確率とする。
【0077】
オプションとして、少なくとも2組の数値集合がガウス分布を満たした場合、少なくとも2組の数値集合に対応する平均値及び分散を取得し、そして、平均値及び分散に基づいて、少なくとも2組の数値集合に対応する条件付き確率を取得する。
【0078】
例えば、上述のk個の数値集合及び対応する第一処理関数の出力値を既知のk個のデータ点とし、既知のk個のデータ点に基づいて、数値集合がxであるときの第一処理関数の出力値f(x)を判断し、この場合、ガウス回帰過程の仮定によれば、[f(x1:k),f(x)]がガウス分布を満足するため、ベイズの定理に基づいて、条件付き確率は以下の公式(7)に示すように決定することができる。
【0079】
【数24】
ここで、μk(x)は第二処理関数の平均値を示し、
【0080】
【数25】
は第一処理関数の分散を示し、平均値μk(x)は以下の公式(8)により示され得る。
【0081】
【数26】
ここで、x1:kは1番目の数値集合からk番目の数値集合を表し、f(x1:k)はk個の数値集合に対応する第一処理関数の出力値を表し、即ち、f(x1:k)=[f(x1),f(x2),…,f(xk)]であり、μ0(x)は数値集合xに対応する期待値を示し、μ0(x1:k)はk個の数値集合に対応する期待値を示し、即ち、μ0(x1:k)=[μ0(x1),μ0(x2),…,μ0(xk)]であり、Σ0は共分散行列を示し、Σ0(x1,x1)はデータx1に基づいて決定される共分散行列を示し、Σ0(x1:k,x1:k)はk個の数値集合に対応する共分散行列を表す。
【0082】
分散
【0083】
【数27】
は以下の公式(9)に示すとおりである。
【0084】
【数28】
ここで、Σ0は共分散行列を示し、Σ0(x1,x1)は数値集合x1に基づいて決定される共分散行列を表し、Σ0(x1:k,x1:k)はk個の数値集合に対応する共分散行列を示す。
【0085】
上述の条件付き確率の決定過程では、ベイズの定理に基づいて、条件付き確率を決定し、ここで、ベイズの定理は、イベント1が成立した場合にイベント2が成立した確率と、イベント2が成立した場合にイベント1が成立した確率との間の関係を記述するために用いられる。よって、ベイズの定理に基づいて、f(x1:k)がガウス分布を満足していると決定した場合、[f(x1:k),f(x)]もガウス分布の確率を満足している。
【0086】
例を挙げて言えば、ガウス過程回帰アルゴリズムを採用して、既知の複数のデータ点に基づいて、該複数のデータ点に対応する関数を決定し、図2に示すように、1つの第一処理関数f(x)=x*sin(x)-2x*cos(x)が存在するとし、該第一処理関数のうちから複数のデータ点を取得し、そして、該複数のデータ点に基づいて第一処理関数を復元する。図2における実線は、第一処理関数に対応する曲線であり、黒色の点は、取得したデータ点を示し、点線は、ガウス過程回帰アルゴリズムに基づいて得られた推定関数(第二処理関数)に対応する曲線であり、陰影は、95%の信頼区間、即ち、推定関数の曲線が存在し得る範囲に対応する。図2の中の曲線概略図201は、8つのデータ点を得たときに、該8つのデータ点に基づいて予測することによって得られた推定関数に対応する曲線であり、曲線概略図201には比較的大きい陰影部分があり、それは、予測された曲線が十分な正確さを有しないことを意味する。図2における曲線概略図202は、17個のデータ点を得たときに、該17個のデータ点に基づいて予測することによって得られた第二処理関数に対応する曲線であり、これで分かるように、ガウス過程回帰アルゴリズムを用いて、17個のデータ点に基づいてこれらのデータ点に対応する第一処理関数の曲線を比較的正確に描くことができ、言い換えれば、ガウス過程回帰アルゴリズムは関数に対して推定処理を迅速かつ正確に行うことができる。
【0087】
なお、本出願の実施例では上述の少なくとも2組の数値集合に基づいて第二処理関数を得る過程を例にとって説明を行ったが、オプションとして、複数組の数値集合について、先に第二処理関数を初期化し、毎回少なくとも2組の数値集合に基づいて、上述のステップを採用して取得済みの第二処理関数に対して調整を行い、調整後の第二処理関数を取得し、その後、引き続き、他の少なくとも2組の数値集合に基づいて、再び上述のステップを採用して調整後の第二処理関数に対して再調整を行うことができ、これに基づいて類推することで、より正確な第二処理関数を得ることができる。
【0088】
105:コンピュータ装置が更新後の数値集合を、該更新後の数値集合における複数の数値に対して期待関数を用いて処理を行った後に得られた出力値が該期待関数の最大出力値であるように取得する。
【0089】
上述のステップ104では、既知のk個の数値集合及び対応する出力値に基づいて、ガウス過程回帰アルゴリズムを用いて、第一処理関数に対応する第二処理関数を比較的正確に得ることができるが、より正確な第二処理関数を得る必要がある場合、新しい数値集合及び対応する出力値を継続して取得し、そして、より多くの数値集合及び対応する出力値に基づいてより正確な第二処理関数を取得する必要がある。そうすると、如何に新しい数値集合を取得するかは重要なことである。よって、第二処理関数の期待収益を記述するための期待関数を取得し、該期待関数を採用して、更新後の数値集合の取得を指示する。ここで、期待関数の最も良い選択は第一処理関数であり、即ち、第一処理関数を期待関数とする。しかし、第一処理関数は依然として1つの未知の関数であるので、期待改善量(EI、Expected Improvement)に対応する期待関数を取得する。
【0090】
1つの可能な実現方式において、図3に示すように、以下のようなステップを採用して、更新された数値集合を取得する。
【0091】
1051:コンピュータ装置が少なくとも2組の数値集合に対応する第一処理関数の出力値のうちの最大出力値を取得する。
【0092】
期待関数に関して、第一処理関数について言えば、n個の数値集合に対応する出力値f(x1:n)を得た場合、現在の最大出力値を
【0093】
【数29】
と定義することができる。即ち、
【0094】
【数30】
である。
【0095】
ここで、nは正の整数であり、
【0096】
【数31】
はn個の出力値のうちの最大出力値を示すために用いられる。再び1つの新しい数値集合及び対応する出力値(x,f(x))を得たときに、現在の最大出力値は、
【0097】
【数32】
であり、即ち、
【0098】
【数33】
であり、又は、f(x)であり、即ち、
【0099】
【数34】
であり、この場合、新しい数値集合に基づいて、現在の最大値を
【0100】
【数35】
だけ増やす。ここで、記号“+”はa+=max(a,0)として定義される。
【0101】
1052:コンピュータ装置が第二処理関数と最大出力値との差に基づいて、第二処理関数に対応する期待関数を決定する。
【0102】
ここで、期待関数は、該差及び0の最大値の平均値を求める関数である。
【0103】
1つの可能な実現方式において、期待関数は以下の公式(10)に示すように定義され得る。
【0104】
【数36】
ここで、nは現在決定されたn個の出力値を示し、EInは、n個の出力値が決定されたときの期待関数を示し、
【0105】
【数37】
は、現在の最大値に対しての新しい数値集合に対応する出力値の増加を表し、該最大値は0又は、
【0106】
【数38】
であり、Eは平均値を求めることを示し、Enは、n個の出力値が決定されたときに平均値を求めることを表す。
【0107】
上述の公式(7)を公式(10)に代入して、簡素化後の期待関数を以下の公式(11)に示すように得ることができる。
【0108】
【数39】
ここで、
【0109】
【数40】
であり、μn(x)はn個の出力値に対応する平均値を示し、σn(x)はn個の出力値に対応する標準偏差を表し、φは密度関数であり、Φは累積関数である。
【0110】
1053:コンピュータ装置が勾配アルゴリズムを採用して、期待関数の最大出力値に対応する1組の数値集合を更新済みの数値集合として決定する。
【0111】
1つの可能な実現方式において、決定された第二処理関数に対応する期待関数に基づいて、数値集合の更新ルールを以下の公式(12)に示すように定義する。
【0112】
【数41】
言い換えれば、上述の期待関数の出力値が最大出力値であるときに、対応する数値集合xは新たに取得された数値集合である。また、期待関数の出力値が0に収束したときに、既知の複数の数値集合に対応する出力値に最大値がすでに存在することを示し、即ち、該最大値に収束しており、このときは、第一処理関数の出力値も収束し得る。
【0113】
また、図4は、数値集合を更新するフローを示す図である。具体的には、1組の数値集合を取得し、量子シミュレーションアルゴリズムに基づいて1組の数値集合における複数の数値を処理し、複数のサブ関数に対応する第一数値を取得し、複数のサブ関数に対応する第一数値、及び複数のサブ関数に基づいて決定された第一処理関数の演算法に基づいて、第一処理関数の出力値を決定し、現在の数値集合及び対応する出力値並びに前の数値集合及び対応する出力値に基づいて、ガウス過程回帰アルゴリズムを用いて、データ集合及び対応の出力値に対してフィッティングを行い、第二処理関数を取得し、そして、第二処理関数に対応する期待関数を処理し、期待関数の最大出力値に対応する数値集合を1組の更新後の数値集合とする。
【0114】
オプションとして、本出願の実施例では、第1組の数値集合における複数の数値は事前設定されており、該複数の数値はランダム設定され、又は、経験に基づいて設定されても良い。第1組の数値集合以外に、他の数値集合はすべてステップ105を用いて取得され得る。
【0115】
106:コンピュータ装置が、第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とし、第二サーチ経路を取得する。
【0116】
本出願の実施例では、第一処理関数の出力値が収束することとは、複数の数値集合に対応する出力値が同じ値に収束することを指し、上述の第二処理関数の出力値の取得過程が1つの循環過程であるため、複数の数値集合に対応する出力値が収束したときに、最後に取得された1組の数値集合における複数の数値をそれぞれ複数の係数の値とし、該複数の数値を第一サーチ経路に代入することで、第二サーチ経路を得ることができる。その後、該第二サーチ経路に基づいてデータに対して処理を行うことができる。
【0117】
本出願の実施例における第二サーチ経路は量子計算に基づくサーチ経路であり、量子計算に線形重ね合わせ状態が存在するため、古典的な計算に比較して、量子計算に第二サーチ経路を採用することにより、データ処理速度がより速くなり、データ処理効率を向上させることができる。
【0118】
1つの可能な実現方式において、取得された第二サーチ経路を量子コンピュータに適用し、取得された第二サーチ経路に基づいて、量子計算におけるGroverサーチ(1種の量子サーチアルゴリズム)問題を解決する。量子計算におけるGroverサーチについて、n個のビットがあり、各ビットが0及び1の2つの状態に対応するとすれば、該n個のビットに対して符号化を行うことで、2n個の物体を符号化することができ、古典アルゴリズムは、最悪の場合、ターゲット物体(オブジェクト)をサーチすることができるようにするために2n回試行する必要がある。これに対して、量子コンピュータは、2次加速を実現することができるため、ターゲットオブジェクトをサーチし得るに必要な試行回数は最大でも2n/2回である。
【0119】
断熱量子計算に基づくGroverサーチは、以下に与えられている2つのハミルトニアンH0、H1について、最適のサーチ経路を設計することである。
【0120】
【数42】
ここで、
【0121】
【数43】
であり、Iは単位行列であり、
【0122】
【数44】
はターゲットバイナリストリングである。
【0123】
それぞれ、従来の線形経路、Roland-Cerf経路(1種の非線形経路)、及び上述のステップを用いて得られた第二サーチ経路を採用して、初期状態ハミルトニアンH0の基底状態を最終状態ハミルトニアンH1の基底状態に発展し、この場合、発展過程の概略図は図5に示すとおりであり、横座標は発展時間であり、縦座標は忠実度であり、曲線1は線形経路に対応する曲線であり、曲線2はRoland-Cerf経路に対応する曲線であり、曲線3は最適のサーチ経路に対応する曲線であり、図5における概略図501は6つの量子ビットに対応する発展概略図であり、図5の中の概略図502は8つの量子ビットに対応する発展概略図であり、図5に示す概略図503は10個の量子ビットに対応する発展概略図であり、図5における概略図504は12個の量子ビットに対応する発展概略図である。
【0124】
図5から分かるように、従来の線形経路を採用した場合、発展終了後、忠実度は1に達することができず、Roland-Cerf経路及び第二サーチ経路を採用した場合、発展終了後、忠実度は1に達することができ、かつ第二サーチ経路を採用した場合、忠実度1に達し得るに必要な時間がRoland-Cerf経路を採用した場合に比べて短く、速度がより速く、断熱量子計算の効率を向上させることができる。
【0125】
また、図5からさらに分かるように、量子ビットの数が多くなるにつれて、線形経路を採用して発展を行う効果が次第に悪くなり、何故ならば、線形経路の任意の時刻におけるレートがすべて同じであるため、エネルギーギャップがとても小さいときに、同じレートにより、量子のエネルギーを高エネルギーレベルの状態に励起しやすく、基底状態に戻ることができなくなるからである。
【0126】
上述の図5に示す発展過程についてもう1つの形式を採用して表現し、図6に示すように、図6における横座標はt/Tであり、縦座標は経路であり、曲線1は線形経路に対応する曲線であり、曲線2はRoland-Cerf経路に対応する曲線であり、曲線3は第二サーチ経路に対応する曲線であり、図6の中の概略図601は6つの量子ビットに対応する発展概略図であり、図6における概略図602は8つの量子ビットに対応する発展概略図であり、図6に示す概略図603は10個の量子ビットに対応する発展概略図であり、図6における概略図604は12個の量子ビットに対応する発展概略図である。図7は、第二サーチ経路を採用してそれぞれ6つの量子ビット、8つの量子ビット、10個の量子ビット及び12個の量子ビットに対して発展を行った概略図を示しており、6つの量子ビットは曲線11に対応し、8つの量子ビットは曲線12に対応し、10個の量子ビットは曲線13に対応し、12個の量子ビットは曲線14に対応する。
【0127】
図6及び図7から分かるように、第二サーチ経路は、s(t)=1/2のときに比較的平坦になり、何故ならば、s=1/2におけるエネルギーギャップが最も小さく、量子力学の物理法則に準拠しているからである。
【0128】
関連技術では、第一サーチ経路には値が未決定の複数の係数が含まれ、強化学習モデルによりそれぞれ複数の係数の値を決定し、第二サーチ経路を取得する。しかし、強化学習モデルは、各係数の複数の選択可能な値を試すことで、最終的に1つの選択可能な値を決定するのであり、第二サーチ経路を得る過程では、値が未決定の各係数に対応する大量の選択可能な値がある場合、強化学習モデルは複数回トライする必要があるため、値を決定する効率が比較的低くなり、第二サーチ経路の取得効率も比較的低くなる。
【0129】
本出願の実施例により提供される方法では、第一サーチ経路の数値集合をトラバーサルする過程において、1回トラバーサルすることでそれぞれ複数の係数の異なる値に対して処理を行うことができ、第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とすることで第二サーチ経路を取得することがでるので、比較的少ない回数のトラバーサルを行うだけで、第一処理関数の出力値が収束するようにさせることができるため、複数の係数の正確な値を迅速に取得し、第二サーチ経路の取得効率を向上させることができる。
【0130】
また、第一処理関数の出力値が収束しないときに、数値集合を更新し、更新後の数値集合に基づいて新しい第一処理関数の出力値を得ることができ、数値集合の更新過程では、ガウス過程回帰アルゴリズムが採用されており、該ガウス過程回帰アルゴリズムは、特定の対称構造や幾何学的構造がなく、かつ勾配情報を取得し難い、連続した関数について、比較的短い時間でこのような複雑な関数の処理を完了することができ、処理効率が高い。さらに、ガウス過程回帰アルゴリズムは、ノイズが含まれる関数に対して処理を行うことができ、複数種類の関数に対して処理を行うこともでき、応用範囲が広いため、第二サーチ経路を取得するときに、該第二サーチ経路に対応する処理関数が比較的複雑な関数であっても、ガウス過程回帰アルゴリズムを採用して迅速に処理することができる。
【0131】
また、古典的な計算において複雑な関数を処理するときに、時間コスト及び経済的コストが比較的高い。量子システムについて言えば、量子システムにおいて量子相転移が起こるときに、量子システムはより複雑になり、これは、該量子システムに対応する関数がより複雑な関数になり得ることを意味する。このようなときに、本出願における方法を採用することにより、複雑な関数を迅速に処理し、時間コスト及び経済的コストを削減することができる。
【0132】
また、強化学習モデルを採用することにより、離散的データのみを処理することができるが、連続した関数を直接処理することができない。その結果、強化学習モデルを用いて得られたサーチ経路は、ローカル最適サーチ経路だけである。これに対して、本出願におけるサーチ経路取得方法は、連続した関数に対して処理を行うことができるため、得られた第二サーチ経路はグローバル最適サーチ経路である。
【0133】
また、本出願の実施例により提供される方法は、第一サーチ経路の複数の係数の値を決定することで、第二サーチ経路を取得することができ、該複数の係数に他の値を採用することにより得られたサーチ経路に比較して、該第二サーチ経路を採用してデータに対して処理を行うときに、データ処理速度が最も速い。
【0134】
図8は、本出願の実施例により提供される、量子シミュレーションアルゴリズムに基づくサーチ経路取得方法のフローチャートである。本出願の実施例の実行主体はコンピュータ装置であり、図8に示すように、該方法は以下のステップを含む。
【0135】
801:コンピュータ装置が第一サーチ経路及び第一サーチ経路に対応する第一処理関数を得る。
【0136】
ステップ801で第一サーチ経路及び対応する第一処理関数を得る実施方式は上述の図1に示す実施例におけるステップ101及びステップ102の実施方式と同様であるため、ここではその詳しい説明を省略する。
【0137】
802:コンピュータ装置が量子シミュレーションアルゴリズムに基づいて、取得した数値集合における複数の数値を処理し、複数のサブ関数が出力する第一数値を得る。
【0138】
ここで、量子シミュレーションアルゴリズムは複数のサブ関数及び複数のサブ関数に基づいて決定された第一処理関数の演算法を含む。該複数のサブ関数には値が未決定の複数の係数が含まれ、オプションとして、該複数の係数は第一処理関数に含まれる値が未決定の複数の係数と同じであり、又は、該複数の係数は第一処理関数に含まれる値が未決定の複数の係数に対して演算を行うことにより得られたものである。オプションとして、各サブ関数は何れも値が未決定の係数を含み、又は、複数のサブ関数のうち、基準数量のサブ関数は、値が未決定の係数を含み、基準数量のサブ関数の以外の他のサブ関数は、値が未決定の係数を含まない。
【0139】
また、本出願の実施例では、量子シミュレーションアルゴリズムに基づいて、取得された数値集合における複数の数値に対して処理を行い、複数のサブ関数が出力する第一数値を取得する。そのため、量子シミュレーションアルゴリズムに含まれる各サブ関数が出力する第一数値は何れも対応する物理的意味を有し、例えば、サブ関数が出力する第一数値は量子速度、量子質量などを表し、この場合、量子シミュレーションアルゴリズムは第一処理関数を複数の物理量に対応するサブ関数として表す。
【0140】
803:コンピュータ装置が演算法に従って、複数のサブ関数が出力する第一数値に対して演算を行い、第一処理関数の出力値を取得する。
【0141】
コンピュータ装置は、第一処理関数の出力値を得た後に、トラバーサルされた少なくとも2組の数値集合に対応する第一処理関数の出力値を取得し、第一処理関数の出力値が収束するかを判断し、第一処理関数の出力値が収束した場合、ステップ807を実行し、第一処理関数の出力値が収束しない場合、ステップ804を実行する。
【0142】
804:コンピュータ装置が、第一処理関数の出力値が収束しない場合、取得済みの少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、少なくとも2組の数値集合に対応する出力値の分布を記述するための第二処理関数を取得する。
【0143】
ステップ804で第二処理関数を得る実施方式は上述の図1に示す実施例におけるステップ104の実施方式と同様であるため、ここではその詳しい説明を省略する。
【0144】
805:コンピュータ装置が、少なくとも2組の数値集合に対応する出力値のうちの最大出力値を取得し、第二処理関数と該最大出力値の差に基づいて、第二処理関数に対応する期待関数を決定する。
【0145】
806:コンピュータ装置が勾配アルゴリズムを採用して、期待関数の最大出力値に対応する1組の数値集合を更新された1組の数値集合として決定し、ステップ802を繰り返して実行する。
【0146】
ステップ805で期待関数を得る実施方式及びステップ806で更新後の数値集合を得る実施方式は上述の図1に示す実施例におけるステップ105の実施方式と同様であるため、ここではその詳しい説明を省略する。
【0147】
807:コンピュータ装置が、第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とし、第二サーチ経路を取得する。
【0148】
本出願の実施例により提供されるサーチ経路取得方法では、第一サーチ経路の数値集合に対してトラバーサルを行う過程において、1回トラバーサルすることによってそれぞれ複数の係数の異なる値に対して処理を行うことができ、第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とすることで第二サーチ経路を得ることができ、比較的少ないの回数のトラバーサルを行うだけで、第一処理関数の出力値が収束するようにさせることができるため、複数の係数の正確な値を迅速に取得し、第二サーチ経路の取得効率を向上させることができる。
【0149】
上述の図1又は図8に示す量子シミュレーションアルゴリズムに基づくサーチ経路取得方法は、サーチシナリオに適用し、サーチ経路を採用することで、複数のオルタナティブデータからターゲットデータをサーチすることができる。以下、サーチシナリオに応用されることを例にとって、量子シミュレーションアルゴリズムに基づくデータサーチ方法について説明する。
【0150】
図9は、本出願の実施例により提供される、量子シミュレーションアルゴリズムに基づくデータサーチ方法のフローチャートである。図9に示すように、本出願の実施例の実行主体はコンピュータ装置であり、該方法は以下のステップを含む。
【0151】
901:コンピュータ装置が、サーチ待ちの複数のオルタナティブデータに基づいて、第一状態データ及び第二状態データを生成する。
【0152】
オプションとしてオ、ルタナティブデータは品物、画像又は他のデータであり、実際のサーチシナリオが異なることにより、該オルタナティブデータは異なる形式のデータであり、本出願の実施例ではこれについて限定しない。第一状態データは、複数のオルタナティブデータに対してのサーチを開始していないときの複数のオルタナティブデータの状態を記述するために用いられ、第二状態データは、ターゲットデータをすでにサーチしたときの複数のオルタナティブデータの状態を記述するために用いられる。
【0153】
ここで、第一状態データに対応する第一状態は、複数のオルタナティブデータの選択確率が同じである状態であり、第二状態データに対応する第二状態は、サーチ条件が満足されたターゲットデータがすでにサーチされた状態である。
【0154】
言い換えれば、複数のオルタナティブデータが第一状態にあるときに、複数のオルタナティブデータに対するサーチがまだ開始されておらず、複数のオルタナティブデータの選択確率がすべて同じであり、即ち、コンピュータ装置が第一回、複数のオルタナティブデータに対してサーチを行うときに、複数のオルタナティブデータのうちの任意の1つのオルタナティブデータを選択する可能性は同じである。複数のオルタナティブデータが第二状態にあるときに、ターゲットデータがすでにサーチされており、ターゲットデータの選択確率が1であり、即ち、コンピュータ装置が最後に(最後の1回)複数のオルタナティブデータに対してサーチを行うときに選択したのは必然的にターゲットデータである。
【0155】
例えば、n個のオルタナティブデータがあり、コンピュータ装置が第一回、n個のオルタナティブデータに対してサーチを行うときに、n個のオルタナティブデータから任意の1つのオルタナティブデータを選び、該任意の1つのオルタナティブデータの選択確率は1/nである。
【0156】
1つの可能な実現方式において、第一状態データには複数のオルタナティブデータの選択確率が含まれ、第二状態データには基準確率が含まれ、該複数の選択確率はオルタナティブデータの数に基づいて決定され、基準確率は1である。例えば、20個のオルタナティブデータがあり、この20個のオルタナティブデータのうちから1つのターゲットデータを選択する場合、第一状態データに含まれる選択確率が1/20であると決定することができる。
【0157】
1つの可能な実現方式において、該複数のオルタナティブデータが異なる位置にあり、この場合、複数のオルタナティブデータからターゲットデータをサーチするときに、任意の1つの最初位置からサーチを行う必要があり、終止位置がターゲットデータの所在する位置である。そうすると、第一状態データには開始点位置情報が含まれ、第二状態データには終了点位置情報が含まれる。後続のサーチ過程において、サーチした位置情報が終止位置情報と同じである場合、ターゲットデータをサーチしたことを意味する。
【0158】
902:コンピュータ装置が第一状態データ及び第二状態データに基づいて第一サーチ経路を生成する。
【0159】
ステップ902で第一サーチ経路を生成する実施方式は上述のステップ101で第一サーチ経路を得る実施方式と同様であるが、異なる点は、第一サーチ経路に値が未決定の複数の係数が含まれる以外に、第一サーチ経路の開始点が第一状態を表し、かつ終了点が第二状態を表すことにある。
【0160】
1つの可能な実現方式において、コンピュータ装置は第一状態データ、第二状態データ及びターゲットサーチ時間長に基づいて、第一サーチ経路を生成する。ここで、第一サーチ経路にはターゲットサーチ時間長がさらに含まれ、該ターゲットサーチ時間長は第一状態が第二状態に変換されるに必要な時間長を表す。オプションとして、ターゲットサーチ時間長は任意の時間長、例えば、1分間、2分間又は他の時間長であって良い。
【0161】
ターゲットサーチ時間長がT、第一状態データが(0,1)、第二状態データが(T,0)であることを例にとり、生成される第一サーチ経路はs(t)=1-t/Tであり、該第一サーチ経路はターゲットサーチ時間長、第一状態データ及び第二状態データの要求を満する。
【0162】
該第一サーチ経路s(t)=1-t/Tの形式に対して変換を行い、以下の公式(4)に示す第一サーチ経路を取得する。
(4)
ここで、Tはターゲットサーチ時間長であり、tは独立変数であり、bjは値が未決定の係数であり、jの数値範囲は1から正の無限大であり、かつjは正の整数である。
【0163】
なお、本出願の実施例では、第一状態データが(0,1)、第二状態データが(T,0)、生成される第一サーチ経路がs(t)=1-t/Tであるケースを例にとって説明を行ったが、もう1つの実施例において、第一状態データ及び第二状態データが満足される他のサーチ経路を生成することもできる。
【0164】
903:コンピュータ装置が第一サーチ経路に対応する第一処理関数を取得する。ここで、第一処理関数は複数の係数を含み、かつ第一処理関数の出力値は第一サーチ経路により決定され、第一処理関数の出力値が収束することは、複数の係数の値がターゲットを満足していることを指示する。
【0165】
904:コンピュータ装置が量子シミュレーションアルゴリズムに基づいて、複数の係数の値が数値集合における複数の数値である場合、第一処理関数の出力値を取得する。
【0166】
905:コンピュータ装置が、第一処理関数の出力値が収束しない場合、取得済みの少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、少なくとも2組の数値集合に対応する出力値の分布を記述するための第二処理関数を得る。
【0167】
906:コンピュータ装置が更新後の数値集合を、更新後の数値集合における複数の数値に対して期待関数を用いて処理を行った後に得られた出力値が期待関数の最大出力値であるように取得する。
【0168】
907:コンピュータ装置が、第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とすることで第二サーチ経路を取得する。
【0169】
ステップ903-ステップ907で第二サーチ経路を決定する実施方式は上述の図1に示す実施例におけるステップ102-ステップ106で第二サーチ経路を決定する実施方式と同様であるため、ここではその詳しい説明を省略する。
【0170】
908:コンピュータ装置が第二サーチ経路を採用して複数のオルタナティブデータからターゲットデータをサーチする。
【0171】
本出願の実施例では、コンピュータ装置は第二サーチ経路を採用して複数のオルタナティブデータのうちからターゲットデータをサーチし、サーチしたオルタナティブデータがサーチ条件を満足した場合、該オルタナティブデータがターゲットデータであることを意味する。
【0172】
1つの可能な実現方式において、複数のオルタナティブデータの類型は異なり、サーチ条件はターゲット類型を含み、コンピュータ装置は第二サーチ経路を採用して複数のオルタナティブデータから、ターゲット類型が満足されたターゲットデータをサーチする。
【0173】
例えば、オルタナティブデータが20個のオルタナティブ品物であり、20個のオルタナティブ品物から1つのターゲット品物を選択する必要があり、サーチ条件がターゲット品物類型であり、即ち、20個オルタナティブ品物のうちから、ターゲット品物類型のターゲット品物をサーチする必要があるとする。この場合、サーチ過程において、サーチ経路の開始点からサーチを開始し、このときに、第一回のサーチを行うことでターゲット品物を選択し得る確率は1/20であり、第一回のサーチによりターゲット品物を選択したら、確率は1になり、サーチは終了する。第一回のサーチによりターゲット品物をサーチすることができないときに、第二回のサーチを行うことでターゲット品物を選択し得る確率は1/19であり、第二回のサーチによりターゲット品物が選択されたら、確率は1になり、サーチは終了する。第二回のサーチによりターゲット品物を選択することができないときに、第三回のサーチを行うことでターゲット品物を選択し得る確率は1/18になり、引き続き、ターゲット品物をサーチし得るまで、残りのオルタナティブ品物に対してサーチを行う。
【0174】
オプションとして、複数のオルタナティブデータには類型が同じであるデータが含まれ、サーチ条件はデータ標識(ID)、又は該ターゲットデータを一意に表し得る他のデータ特徴を含む。
【0175】
なお、本出願の実施例では、オルタナティブデータの形式やサーチ条件について限定せず、実際の適用シナリオに基づいて、該オルタナティブデータは複数の形式のデータであり、サーチ条件はオルタナティブデータの形式に基づいて決定され得る。
【0176】
本出願の実施例により提供される方法では、第一サーチ経路の数値集合に対してトラバーサルを行う過程において、1回トラバーサルすることによってそれぞれ複数の係数の異なる値に対して処理を行うことができ、第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とすることで第二サーチ経路を取得することができるので、比較的少ない回数のトラバーサルを行うだけで、第一処理関数の出力値が収束するようにさせることができるため、複数の係数の正確な値を迅速に取得し、第二サーチ経路の取得効率を向上させることができる。また、第一サーチ経路が複数のオルタナティブデータに対応する第一状態データ及び第二状態データに基づいて生成され、取得された第二サーチ経路が該複数のオルタナティブデータに適用され得るので、第二サーチデータを採用して複数のオルタナティブデータのうちからターゲットデータを迅速にサーチすることができる。
【0177】
また、取得された第二サーチ経路が、サーチ時間が最も短く、かつサーチ速度が最も速いサーチ経路であるので、第二サーチ経路を採用してターゲットデータをサーチする過程において、サーチ条件に基づいて複数のオルタナティブデータからターゲットデータを迅速にサーチすることができるため、データのサーチ効率を向上させることができる。また、古典的な計算におけるデータのサーチ方法に比較して、第二サーチ経路が量子計算に基づくデータサーチ方式であり、第二サーチ経路を採用してターゲットデータをサーチする効率は、古典的な計算を用いてターゲットデータをサーチする効率よりも高い。
【0178】
図10は、本出願の実施例により提供されるデータサーチ装置の構成を示す図である。図10に示すように、該装置は以下のものを含む。
【0179】
状態データ生成モジュール1001:サーチ待ちの複数のオルタナティブデータに基づいて、第一状態データ及び第二状態データを生成し、第一状態データに対応する第一状態は、複数のオルタナティブデータの選択確率が同じである状態であり、第二状態データに対応する第二状態は、サーチ条件が満足されたターゲットデータがすでにサーチされた状態であり;
第一経路生成モジュール1002:第一状態データ及び第二状態データに基づいて第一サーチ経路を生成し、第一サーチ経路の開始点は第一状態を表し、かつ終了点は第二状態を表し、第一サーチ経路は、値が未決定の複数の係数を含み;
第一関数取得モジュール1003:第一サーチ経路に対応する第一処理関数を取得し、第一処理関数は複数の係数を含み、かつ第一処理関数の出力値は第一サーチ経路により決定され、第一処理関数の出力値が収束することは、複数の係数の値がターゲットを満足していることを指示し;
集合取得モジュール1004:第一サーチ経路の少なくとも2組の数値集合をトラバーサルし、各組の数値集合は複数の係数に対応する複数の数値を含み、かつ異なる数値集合における複数の数値は完全に同じでなく;
出力値取得モジュール1005:量子シミュレーションアルゴリズムに基づいて、複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、第一処理関数の出力値を取得し;
第二経路取得モジュール1006:第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とすることで、第二サーチ経路を取得し;
データサーチモジュール1007:第二サーチ経路を採用して、複数のオルタナティブデータのうちからターゲットデータをサーチする。
【0180】
本出願の実施例により提供される装置では、第一サーチ経路の数値集合に対してトラバーサルを行う過程において、1回トラバーサルすることによってそれぞれ複数の係数の異なる値に対して処理を行うことができ、第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とすることで第二サーチ経路を得ることができるので、比較的少ない回数のトラバーサルを行うだけで、第一処理関数の出力値が収束するようにさせることができるため、複数の係数の正確な値を迅速に取得し、第二サーチ経路の取得効率を向上させることができる。また、第一サーチ経路が複数のオルタナティブデータに対応する第一状態データ及び第二状態データに基づいて生成され、取得された第二サーチ経路が該複数のオルタナティブデータに適用され得るので、第二サーチ経路を採用して複数のオルタナティブデータのうちからターゲットデータを迅速にサーチすることができる。
【0181】
1つの可能な実現方式において、図11に示すように、装置はさらに以下のものを含む。
【0182】
情報取得モジュール1008:第一処理関数の出力値が収束しない場合、トラバーサルされた少なくとも2組の数値集合、及び少なくとも2組の数値集合に対応する第一処理関数の出力値を取得し;
第二関数取得モジュール1009:少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、第二処理関数を取得し、第二処理関数は、少なくとも2組の数値集合に対応する出力値の分布を記述するために用いられ、第二処理関数は複数の係数を含み;
集合更新モジュール1010:更新後の数値集合を、更新後の数値集合における複数の数値に対して期待関数を用いて処理を行った後に得られた出力値が期待関数の最大出力値であるように取得し、期待関数は第二処理関数の期待収益を記述するために用いられる。
【0183】
もう1つの可能な実現方式において、図11に示すように、第二関数取得モジュール1009は以下のものを含む。
【0184】
確率取得ユニット1019:少なくとも2組の数値集合がガウス分布を満足した場合、少なくとも2組の数値集合に対応する条件付き確率を取得し、条件付き確率は、少なくとも2組の数値集合に対応する出力値の分布がガウス分布を満足した条件の下で、少なくとも2組の数値集合及び対応する出力値に基づいて第二処理関数を得る確率を表し;
関数調整ユニット1029:少なくとも2組の数値集合及び対応する出力値並びに条件付き確率に基づいて、取得済みの第二処理関数に対して調整を行い、調整後の第二処理関数を得る。
【0185】
もう1つの可能な実現方式において、図11に示すように、集合更新モジュール1010は、さらに、
少なくとも2組の数値集合に対応する第一処理関数の出力値のうちの最大出力値を取得し;
第二処理関数と最大出力値との差に基づいて、第二処理関数に対応する期待関数を決定し、期待関数は、差及び0の最大値の平均値を求める関数であり;
勾配アルゴリズムを採用して、期待関数の最大出力値に対応する1組の数値集合を更新後の数値集合として決定するために用いられる。
【0186】
もう1つの可能な実現方式において、図11に示すように、確率取得ユニット1019は、さらに、
少なくとも2組の数値集合がガウス分布を満足した場合、少なくとも2組の数値集合に対応する平均値及び分散を取得し;
平均値及び分散に基づいて、少なくとも2組の数値集合に対応する条件付き確率を得るために用いられる。
【0187】
もう1つの可能な実現方式において、図11に示すように、量子シミュレーションアルゴリズムは、複数のサブ関数、及び複数のサブ関数に基づいて決定された第一処理関数の演算法を含み、出力値取得モジュール1005は以下のものを含む。
【0188】
第一数値取得ユニット1015:量子シミュレーションアルゴリズムに基づいて、トラバーサルされた数値集合における複数の数値に対して処理を行い、それぞれ、複数のサブ関数が出力する第一数値を取得し;
出力値取得ユニット1025:演算法に従って、複数のサブ関数が出力する第一数値に対して演算を行い、第一処理関数の出力値を取得する。
【0189】
もう1つの可能な実現方式において、第一経路生成モジュール1002は、さらに、
第一状態データ、第二状態データ及びターゲットサーチ時間長に基づいて第一サーチ経路を生成するために用いられ、第一サーチ経路はさらにターゲットサーチ時間長を含み、ターゲットサーチ時間長は第一状態を第二状態に変換するに必要な時間長を表す。
【0190】
もう1つの可能な実現方式において、複数のオルタナティブデータの類型は異なり、サーチ条件はターゲット類型を含み、データサーチモジュール1007は、さらに、
第二サーチ経路を採用して、複数のオルタナティブデータのうちからターゲット類型が満足されたターゲットデータをサーチするために用いられる。
【0191】
本出願の実施例はさらにコンピュータ装置を提供し、該コンピュータ装置は処理器及び記憶器を含み、記憶器には少なくとも1つのプログラムコードが記憶されており、該少なくとも1つのプログラムコードは、処理器によりロード及び実行されることで、以下の操作、即ち、
サーチ待ちの複数のオルタナティブデータに基づいて、第一状態データ及び第二状態データを生成し、第一状態データに対応する第一状態は、複数のオルタナティブデータの選択確率が同じである状態であり、第二状態データに対応する第二状態は、サーチ条件が満足されたターゲットデータがすでにサーチされた状態であり;
第一状態データ及び第二状態データに基づいて第一サーチ経路を生成し、第一サーチ経路の開始点は第一状態を表し、かつ終了点は第二状態を表し、第一サーチ経路は、値が未決定の複数の係数を含み;
第一サーチ経路に対応する第一処理関数を取得し、第一処理関数は複数の係数を含み、かつ第一処理関数の出力値は第一サーチ経路により決定され、第一処理関数の出力値が収束することは、複数の係数の値がターゲットを満足していることを指示し;
第一サーチ経路の少なくとも2組の数値集合をトラバーサルし、各組の数値集合は複数の係数に対応する複数の数値を含み、かつ異なる数値集合における複数の数値は完全に同じでなく;
量子シミュレーションアルゴリズムに基づいて、複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、前記第一処理関数の出力値を取得し;
第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とすることで第二サーチ経路を取得し;
第二サーチ経路を採用して複数のオルタナティブデータのうちからターゲットデータをサーチする操作を実現する。
【0192】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは該1つ又は複数の処理器によりロード及び実行されることで、以下の操作を実現するために用いられ、即ち、
第一処理関数の出力値が収束しない場合、トラバーサルされた少なくとも2組の数値集合、及び少なくとも2組の数値集合に対応する第一処理関数の出力値を取得し;
少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、第二処理関数を取得し、第二処理関数は、少なくとも2組の数値集合に対応する出力値の分布を記述するために用いられ、第二処理関数は複数の係数を含み;
更新後の数値集合を、更新後の数値集合における複数の数値に対して期待関数を用いて処理を行った後に得られた出力値が期待関数の最大出力値であるように取得し、期待関数は第二処理関数の期待収益を記述するために用いられるという操作である。
【0193】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは、該1つ又は複数の処理器によりロード及び実行されることで、以下の操作を実現するために用いられ、即ち、
少なくとも2組の数値集合がガウス分布を満足した場合、少なくとも2組の数値集合に対応する条件付き確率を取得し、条件付き確率は、少なくとも2組の数値集合に対応する出力値の分布がガウス分布を満足した条件の下で、少なくとも2組の数値集合及び対応する出力値に基づいて第二処理関数を得る確率を表し;
少なくとも2組の数値集合及び対応する出力値並びに条件付き確率に基づいて、取得済みの第二処理関数に対して調整を行い、調整後の第二処理関数を得るという操作である。
【0194】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは、該1つ又は複数の処理器によりロード及び実行されることで、以下の操作を実行するために用いられ、即ち、
少なくとも2組の数値集合に対応する第一処理関数の出力値のうちの最大出力値を取得し;
第二処理関数と最大出力値との差に基づいて、第二処理関数に対応する期待関数を決定し、期待関数は、差及び0の最大値の平均値を求める関数であり;
勾配アルゴリズムを採用して、期待関数の最大出力値に対応する1組の数値集合を更新後の数値集合として決定するという操作である。
【0195】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは、該1つ又は複数の処理器によりロード及び実行されることで、以下の操作を実現するために用いられ、即ち、
少なくとも2組の数値集合がガウス分布を満足した場合、少なくとも2組の数値集合に対応する平均値及び分散を取得し;
平均値及び分散に基づいて、少なくとも2組の数値集合に対応する条件付き確率を得るという操作である。
【0196】
1つの可能な実現方式において、量子シミュレーションアルゴリズムは複数のサブ関数及び複数のサブ関数に基づいて決定された第一処理関数の演算法を含み、該少なくとも1つのプログラムコードは、該1つ又は複数の処理器によりロード及び実行されることで、以下の操作を実現するために用いられ、即ち、
量子シミュレーションアルゴリズムに基づいて、トラバーサルされた数値集合における複数の数値に対して処理を行い、それぞれ、複数のサブ関数が出力する第一数値を取得し;
演算法に従って、複数のサブ関数が出力する第一数値に対して演算を行い、第一処理関数の出力値を得るという操作である。
【0197】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは、該1つ又は複数の処理器によりロード及び実行されることで、以下の操作を実現するために用いられ、即ち、
第一状態データ、第二状態データ及びターゲットサーチ時間長に基づいて、第一サーチ経路を生成し、第一サーチ経路はさらにターゲットサーチ時間長を含み、ターゲットサーチ時間長は第一状態を第二状態に変換するに必要な時間長を表すという操作である。
【0198】
1つの可能な実現方式において、複数のオルタナティブデータの類型は異なり、サーチ条件はターゲット類型を含み、該少なくとも1つのプログラムコードは、該1つ又は複数の処理器によりロード及び実行されることで、以下の操作を実現するために用いられ、即ち、
第二サーチ経路を採用して複数のオルタナティブデータから、ターゲット類型が満足されたターゲットデータをサーチするという操作である。
【0199】
以下、コンピュータ装置が端末であるケースを例にとって説明を行う。図12は、本出願の1つの例示的な実施例により提供される端末1200の構成を示す図である。該端末1200は、上述の量子シミュレーションアルゴリズムに基づくデータサーチ方法におけるステップを実行するために用いられる。
【0200】
端末1200は、通常、処理器1201及び記憶器1202を含む。
【0201】
処理器1201は1つ又は複数の処理コアを含んでも良く、例えば、4コア処理器、8コア処理器などである。処理器1201はDSP(Digital
Signal Processing、デジタル信号処理)、FPGA(Field-Programmable Gate Array、フィールド・プログラマブル・ゲート・アレイ)、及びPLA(Programmable Logic Array、プログラマブルロジックアレイ)のうちの少なくとも1つのハードウェアの形式で実現され得る。処理器1201はメインプロセッサ及びコプロセッサを含んでも良く、メインプロセッサは、アウェイク状態にあるデータに対して処理を行う処理器であり、CPU(Central Processing Unit、中央処理器)とも称され、コプロセッサは、待機状態にあるデータに対して処理を行う低電力処理器である。幾つかの実施例におおいて、処理器1201は、GPU(Graphics
Processing Unit、画像処理のインタラクティブデバイス)が集積されても良く、GPUは、表示スクリーンに表示される必要のあるコンテンツをレンダリング及び描画するために使用される。幾つかの実施例において、処理器1201はさらに、AI(Artificial
Intelligence、人工知能)処理器を含んでも良く、該AI処理器は機械学習に関する計算操作を処理するために使用される。
【0202】
記憶器1202は1つ又は複数のコンピュータ可読記憶媒体を含んでも良く、該コンピュータ可読記憶媒体は非一時的であり得る。記憶器1202はさらに高速ランダムアクセスメモリ、及び不揮発性メモリ、例えば、1つ又は複数の磁気ディスク記憶装置、フラッシュメモリ記憶装置を含んでも良い。幾つかの実施例において、記憶器1202における非一時的コンピュータ可読記憶媒体は少なくとも1つの指令を記憶するために用いられ、該少なくとも1つの指令は、処理器1201により実行されるときに、本出願の方法の実施例により提供される、量子シミュレーションアルゴリズムに基づくデータサーチ方法を実現するために用いられる。
【0203】
幾つかの実施例において、端末1200はさらに周辺機器インターフェース1203及び少なくとも1つの周辺機器を含み得る。処理器1201、記憶器1202及び周辺機器インターフェース1203の間はバス又は信号線によって接続され得る。各周辺機器はバス、信号線又は回路板によって周辺機器インターフェース1203に接続され得る。具体的には、周辺機器は表示スクリーン1204及び電源1205のうちの少なくとも1つを含む。
【0204】
周辺機器インターフェース1203はI/O(Input
/Output、入力/出力)に関する少なくとも1つの周辺機器を処理器1201及び記憶器1202に接続するために用いられる。幾つかの実施例において、処理器1201、記憶器1202及び周辺機器インターフェース1203は同じチップ又は回路板に集積され得る。他の幾つかの実施例において、処理器1201、記憶器1202及び周辺機器インターフェース1203のうちの何れか1つ又は2つは、個別のチップ又は回路板で実現されても良いが、本実施例はこれについて限定しない。
【0205】
表示スクリーン1204はUI(User
Interface、ユーザインターフェース)を表示するために用いられる。該UIはグラフィック、テキスト、アイコン、ビデオ及びそれらの任意の組み合わせを含んでも良い。表示スクリーン1204がタッチ表示スクリーンであるときに、表示スクリーン1204はさらに、表示スクリーン1204の表面又は表面の上のタッチ信号を収集する能力を持つ。該タッチ信号は制御信号として処理器1201に入力して処理してもらうことができる。このとき、表示スクリーン1204はさらに仮想ボタン及び/又は仮想キーボード(ソフトボタン及び/又はソフトキーボードとも称される)を提供するために用いられる。幾つかの実施例において、表示スクリーン1204は1つがあっても良く、端末1200のフロントパネルに設置され得る。他の幾つかの実施例において、表示スクリーン1204は少なくとも2つがあっても良く、それぞれ、端末1200の異なる表面に設定され、又は折り畳むように設計されても良い。また、他の幾つかの実施例において、表示スクリーン1204は可撓性表示スクリーンであり、端末1200の弯曲面又は折り畳み面に配置されても良い。さらに、表示スクリーン1204は、非矩形の不規則なパターン、即ち、特殊な形状の画面として設定することもできる。表示スクリーン1204は、LCD(Liquid Crystal Display、液晶表示スクリーン)、OLED(Organic Light-Emitting Diode、有機発光ダイオード)などの材料を採用して作ることができる。
【0206】
電源1205は、端末1200における各構成要素に給電するために用いられる。電源1205は交流、直流、使い捨て電池又は充電式電池であっても良い。電源1205が充電式電池を含むときに、該充電式電池は有線充電又は無線充電をサポートすることができる。該充電式電池はさらに急速充電技術をサポートすることもできる。
【0207】
当業者が理解すべきは、図12に示す構成は、端末1200を限定するものではなく、図示よりも多い又は少ない構成要素を含んでも良く、又は、幾つかの成要素を組み合わせても良く、又は、異なる構成要素の配置を採用しても良いということである。
【0208】
以下、コンピュータ装置がサーバーであるケースを例にとって説明を行う。図13は、本出願の実施例により提供されるサーバーの構成を示す図である。該サーバー1300は、設定や性能が異なることにより、比較的大きな違いを有することができ、1つ又は1つ以上の処理器(Central
Processing Units、CPU)1301及び1つ又は1つ以上の記憶器1302を含んでも良く、ここで、記憶器1302には少なくとも1つのプログラムコードが記憶されてより、該少なくとも1つのプログラムコードは、処理器1301によりロード及び実行されることで、上述の各方法の実施例により提供される方法を実現し得る。もちろん、該サーバーはさらに、有線又は無線ネットワークインターフェース、キーボード、入出力インターフェースなどの部品を、入出力を行うために含んでも良く、また、該サーバーはさらにデバイス機能を実装するための他のコンポーネントを含んでも良いが、ここではその詳しい説明を省略する。
【0209】
サーバー1300は、上述の量子シミュレーションアルゴリズムに基づくデータサーチ方法におけるステップを実行するために用いられる。
【0210】
なお、コンピュータ装置はさらに量子コンピュータ装置であって良く、量子コンピュータ装置も、上述の量子シミュレーションアルゴリズムに基づくデータサーチ方法におけるステップを実行するために用いられる。
【0211】
本出願の実施例はさらにコンピュータ可読記憶媒体を提供し、該コンピュータ可読記憶媒体には少なくとも1つのプログラムコードが記憶されており、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで以下の操作を実現することができ、即ち、
サーチ待ちの複数のオルタナティブデータに基づいて、第一状態データ及び第二状態データを生成し、第一状態データに対応する第一状態は、複数のオルタナティブデータの選択確率が同じである状態であり、第二状態データに対応する第二状態は、サーチ条件が満足されたターゲットデータがすでにサーチされた状態であり;
第一状態データ及び第二状態データに基づいて第一サーチ経路を生成し、第一サーチ経路の開始点は第一状態を表し、かつ終了点は第二状態を表し、第一サーチ経路は、値が未決定の複数の係数を含み;
第一サーチ経路に対応する第一処理関数を取得し、第一処理関数は複数の係数を含み、かつ第一処理関数の出力値は第一サーチ経路により決定され、第一処理関数の出力値が収束することは、複数の係数の値がターゲットを満足していることを指示し;
第一サーチ経路の少なくとも2組の数値集合をトラバーサルし、各組の数値集合は複数の係数に対応する複数の数値を含み、かつ異なる数値集合における複数の数値は完全に同じでなく;
量子シミュレーションアルゴリズムに基づいて、複数の係数の値がそれぞれ、トラバーサルされた数値集合における複数の数値である場合、前記第一処理関数の出力値を取得し;
第一処理関数の出力値が収束した場合、収束した出力値に対応する数値集合における複数の数値をそれぞれ複数の係数の値とすることで第二サーチ経路を取得し;
第二サーチ経路を採用して複数のオルタナティブデータのうちからターゲットデータをサーチするという操作である。
【0212】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで以下の操作を実現することができ、即ち、
第一処理関数の出力値が収束しない場合、トラバーサルされた少なくとも2組の数値集合、及び少なくとも2組の数値集合に対応する第一処理関数の出力値を取得し;
少なくとも2組の数値集合及び対応する出力値に対して関数フィッティングを行い、第二処理関数を取得し、第二処理関数は、少なくとも2組の数値集合に対応する出力値の分布を記述するために用いられ、第二処理関数は複数の係数を含み;
更新後の数値集合を、更新後の数値集合における複数の数値に対して期待関数を用いて処理を行った後に得られた出力値が期待関数の最大出力値であるように取得し、期待関数は第二処理関数の期待収益を記述するために用いられるという操作である。
【0213】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで以下の操作を実現することができ、即ち、
少なくとも2組の数値集合がガウス分布を満足した場合、少なくとも2組の数値集合に対応する条件付き確率を取得し、条件付き確率は、少なくとも2組の数値集合に対応する出力値の分布がガウス分布を満足した条件の下で、少なくとも2組の数値集合及び対応する出力値に基づいて第二処理関数を得る確率を表し;
少なくとも2組の数値集合及び対応する出力値並びに条件付き確率に基づいて、取得済みの第二処理関数に対して調整を行い、調整後の第二処理関数を得るという操作である。
【0214】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで以下の操作を実行することができ、即ち、
少なくとも2組の数値集合に対応する第一処理関数の出力値のうちの最大出力値を取得し;
第二処理関数と最大出力値との差に基づいて、第二処理関数に対応する期待関数を決定し、期待関数は、差及び0の最大値の平均値を求める関数であり;
勾配アルゴリズムを採用して、期待関数の最大出力値に対応する1組の数値集合を更新後の数値集合として決定するという操作である。
【0215】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで以下の操作を実現することができ、即ち、
少なくとも2組の数値集合がガウス分布を満足した場合、少なくとも2組の数値集合に対応する平均値及び分散を取得し;
平均値及び分散に基づいて、少なくとも2組の数値集合に対応する条件付き確率を得るという操作である。
【0216】
1つの可能な実現方式において、量子シミュレーションアルゴリズムは複数のサブ関数及び複数のサブ関数に基づいて決定された第一処理関数の演算法を含み、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで以下の操作を実現することができ、即ち、
量子シミュレーションアルゴリズムに基づいて、トラバーサルされた数値集合における複数の数値に対して処理を行い、それぞれ、複数のサブ関数が出力する第一数値を取得し;
演算法に従って、複数のサブ関数が出力する第一数値に対して演算を行い、第一処理関数の出力値を得るという操作である。
【0217】
1つの可能な実現方式において、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで以下の操作を実現ことができ、即ち、
第一状態データ、第二状態データ及びターゲットサーチ時間長に基づいて、第一サーチ経路を生成し、第一サーチ経路はさらにターゲットサーチ時間長を含み、ターゲットサーチ時間長は第一状態を第二状態に変換するに必要な時間長を表すという操作である。
【0218】
1つの可能な実現方式において、複数のオルタナティブデータの類型は異なり、サーチ条件はターゲット類型を含み、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで以下の操作を実現することができ、即ち、
第二サーチ経路を採用して複数のオルタナティブデータから、ターゲット類型が満足されたターゲットデータをサーチするという操作である。
【0219】
本出願の実施例はさらにコンピュータプログラムを提供し、該コンピュータプログラムには少なくとも1つのプログラムコードが含まれており、該少なくとも1つのプログラムコードは処理器によりロード及び実行されることで、上述の実施例の量子シミュレーションアルゴリズムに基づくデータサーチ方法における操作を実現することができる。
【0220】
当業者が理解すべきは、上述の実施例の全部又は一部のステップはハードウェアにより実現されても良く、プログラムにより関連ハードウェアに指令することで実現されても良いということである。該プログラムは、コンピュータ可読記憶媒体に記憶することができ、また、上述の記憶媒体は読み取り専用メモリ、磁気ディスク、光ディスクなどであっても良い。
【0221】
以上、本発明の好ましい実施形態を説明したが、本発明はこの実施形態に限定されず、本発明の趣旨を離脱しない限り、本発明に対するあらゆる変更は本発明の技術的範囲に属する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13