グループリーダーの最適化アルゴリズムについて


8

環境:

私は、量子回路を見つけるためのユニタリ行列の分解:分子ハミルトニアンへの応用(Daskin&Kais、2011)(PDFはこちら)およびGroup Leaders Optimization Algorithm(Daskin&Kais、2010)で説明されている遺伝的アルゴリズムを理解しようとしています。これまでに理解したことを要約してから、クエリについて説明します。

最初の論文のセクションIII-AのToffoliゲートの例を考えてみましょう。このような他のソースから、Toffoliゲートをシミュレートするには約5つの2キュービット量子ゲートが必要であることを知っています。したがって{V,Z,S,V}ようなゲートのセットを任意に選択します。ゲートは最大5制限し、ゲートセット{V,Z,S,V}のゲートのみを使用できるようにします。次のように、15個のランダムな文字列からなる25グループを生成します。15

1 3 2 0.0; 2 3 1 0.0; 3 2 1 0.0; 4 3 2 0.0; 2 1 3 0.0

上記の数字列で、太字の最初の数字はゲートのインデックス番号(つまり、V=1,Z=2,S=3,Z=4)で、最後の数字は[0,2π]および中間の整数は、それぞれのターゲットキュービットおよび制御キュービットです。そのような他のランダムに生成された文字列は374あります。

ここに画像の説明を入力してください

これで、グループは次のようになり(上の画像)、n=25およびp=15ます。各文字列の適合度は、トレースの忠実度に比例しますF=1N|Tr(UaUt)|ここで、Uaは、生成する任意の文字列に対応するユニタリ行列表現であり、Utは、3キュービットToffoliゲートのユニタリ行列表現です。任意のグループのグループリーダーは、F最大値を持つグループリーダーです。

グループを取得したら、アルゴリズムに従います。

ここに画像の説明を入力してください

式 (4)画像に記載されているのは、基本的には次のとおりです。

new string[i]=r1×old string[i]+r2×leader string[i]+r3×random string[i]
1i20)STr1+r2+r3=1[i]表すiに例えば文字列で番目数を、1 3 2 0.0; 2 3 1 0.0; 3 2 1 0.0; 4 3 2 0.0; 2 1 3 0.06番目の要素は3です。このコンテキストでは、r1=0.8およびr2,r3=0.2ます。つまり、各反復で、375文字列すべてがルールに従って変更されます。各グループの各文字列について、文字列内の個々の要素(数値)は式に従って変更されます。(4)。

また、

突然変異に加えて、母集団の各グループの反復ごとに、グループから選択されたランダムメンバーと別のランダムグループからランダムメンバーの間で一方向交差(パラメーター転送とも呼ばれます)が行われます。この操作は主に、メンバーのランダムな部分を別のグループのランダムなメンバーの同等の部分で置き換えることです。各グループの転送操作の量は、転送レートと呼ばれるパラメータによって定義されます。ここでは、4 × 最大ゲートとして定義されています。

4×maxgates21
ここで、分子は最適化で数値文字列を形成する変数の数です。

質問:

  1. {V,Z,S,V}{X,Z,Rx,Rzz,V}520

  2. ゲートセットの選択とゲートの数について(「コンテキスト」で)議論している部分の後に、アルゴリズムの説明/理解(段落3以降)は正しいですか?

  3. 4×maxgates2maxgates520

  4. 0.99


私は同じアルゴリズムをPythonに実装しています。完全に実装しましたか?私の投稿で説明したある時点で行き詰まっています。
サンタ

@サンタいいえ、でもここの誰かが持っているかもしれません。そのStack Overflow質問をQuantum Computingに移行できます。問題について言及しているモデレーターにフラグを立てます。
Sanchayan Dutta

1
@Santa GLOAアルゴリズムの修正バージョンの実装は、ここで見つけることができます。注意してください:1.これは元のアルゴリズムの修正バージョンです(私はそれをより柔軟にするために試みました)、2.コードは非常に汎用的で、他のアルゴリズムと共有されるデータ構造を多く使用します。3.ライセンスGPLではありません。コードの(変更された可能性のある)バージョンを共有する場合は、GPLを参照してください。
Nelimee

回答:


2

遺伝的アルゴリズムが離散変数のコンテキストでどのように機能するかを見て、それを理解することをお勧めします。それらは方法論を提供しますが、他のミューテーション/クロスオーバー技術を適用できます。


簡単に言うと、変数が離散的である単純な最適化問題では、(クラス進化アルゴリズムに属する)遺伝的アルゴリズムで発見的に解決できます。候補の母集団を(ランダムに)生成し、各反復で候補を変更して、目的関数(フィットネスと呼ばれる)を最小化/最大化する適切なソリューションを見つけようとします。値の文字列(一般に染色体と呼ばれます)で候補を表すことができます。この値の文字列を目的関数に入力すると、候補が評価されるか、適合度が割り当てられます。クロスオーバー/突然変異操作は、候補者を変更することを意図しており、遺伝子で起こることに関連した方法で私たちの目的を達成することを望んでいます。

GLOAは単なる別の遺伝的アルゴリズムですが、それぞれ異なるローカルグループ最適化(必要に応じて最適な候補としてのリーダー)があり、突然変異/クロスオーバーの戦略が少し異なります。通常、候補には1つのグループがあり、各反復で1つの最適な候補があります。

今あなたの質問のために:

1.(セットの例のように)必要なゲートのセットを選択できます。これは、分解を制限するゲート操作の最大数にも当てはまります。これらは、アルゴリズムの単なるパラメーターです。これは完全に恣意的であると思います(必ずしもそれほどヒューリスティックなロジックではありません)。しかし、おそらく彼らが選択したものは、彼らの例や作業のセットアップにより適応したものでした。実際には、多くのパラメータを試す必要があります。

2.元の説明、特に図を少々読み直しているので、要約していると思います。

ここに画像の説明を入力してください

3.この部分の疑似コードを示す図2を見て理解してください。これは、遺伝的アルゴリズムにおける一方向の交差に似ています。元のアルゴリズム(GLOA、2010)を見ると、彼らは数t14×maxgates52080

あなたの視覚化のために、あなたが与えるサンプル文字列を見てください:

1 3 2 0.0; 2 3 1 0.0; 3 2 1 0.0; 4 3 2 0.0; 2 1 3 0.0

ここで、文字列は回路を形成する一連の操作を表します。私たちはそれに忠実度に関連するフィットネスを関連付けます。これは、最適化問題の候補ソリューションのようなものです。その場合、maxgates55245×4=20

1 3 2 0.0V320.0V

4.これも、必要に応じて任意です。これは、固定された反復回数、またはしきい値/収束基準に到達するまで可能です。


1
答えてくれてありがとう!わかりやすくするために、図2に疑似コードのスナップショットを追加しました。ただし、必要に応じて削除してください。:)
Sanchayan Dutta 2018

1
HH
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.