2023年04月11日 18:19:05
お客様各位
平素はQAZUCHI をご利用いただき、誠にありがとうございます。
お問い合わせいただきましたCHATGPT による課題のモデル化が完了しました。
下記の通り、ご報告させていただきます。
最適化したいもの:Yを最大化したい
ルール:Y=X*X*X ただし、Xは虚数
この問題は、量子アニーリングで解決可能なQUBO問題としてモデル化できます。
まず、制約条件であるY=X*X*Xを、虚数Xと実数Yを使って書き換えます。
Y=Re(X*X*X)
ここで、X=Xr+iXiと置くと、
Y=(Xr+iXi)*(Xr+iXi)*(Xr+iXi)
=(Xr*Xr*Xr-3*Xr*Xi*Xi)+i(3*Xr*Xr*Xi-Xi*Xi*Xi)
実数Yを最大化するために、制約条件になっている関数F(Xr, Xi)=Yと目的関数とし、最適化問題をQUBO問題に変換します。
まず、XrとXiを二進数で表し、それぞれ$n$桁のビット列$r_0, r_1, ..., r_{n-1}$と$i_0, i_1, ..., i_{n-1}$で表します。
例えば、$n=3$の場合、Xr=5.25-3.5iを二進数で表すと、
Xr=5.25=101.01
Xi=-3.5=-11.10
となります。
次に、$F(Xr, Xi)$を二進数で表すために、実数Yを$2^m$の倍数である整数に変換します。
例えば、$Y=12.125$の場合、$m=4$として、
$F(Xr, Xi)=Y*2^m=12.125*2^4=194$
このとき、$r_0, r_1, ..., r_{n-1}, i_0, i_1, ..., i_{n-1}$を使って、二次式$E(r_0, r_1, ..., r_{n-1}, i_0, i_1, ..., i_{n-1})$を以下のように定義します。
$
E(r_0, r_1, ..., r_{n-1}, i_0, i_1, ..., i_{n-1})\\
=(\sum\limits_{k=0}^{n-1}2^kr_k-5.25)^2*(\sum\limits_{k=0}^{n-1}2^{k}i_k+3.5)^2-194
$
これは、$r_0, r_1, ..., r_{n-1}, i_0, i_1, ..., i_{n-1}$を使って、$F(Xr, Xi)$と制約条件$Y=Xr*Xr*Xr$を表現しています。
制約条件を満たすためには、$Xr$を求める必要があるため、$E(r_0, r_1, ..., r_{n-1}, i_0, i_1, ..., i_{n-1})$は$r_0, r_1, ..., r_{n-1}$に関して二次の式となっており、$i_0, i_1, ..., i_{n-1}$は定数となっています。
この二次式$E(r_0, r_1, ..., r_{n-1}, i_0, i_1, ..., i_{n-1})$をQUBO形式に変換すると、$Q_{i,j}$という係数行列を以下のように定義します。
$
Q_{i,i}=-194\\
Q_{i, j}=64*(2^i-5.25)*(2^j-5.25)\ (r_i, r_jの場合)\\
Q_{i, j}=-18*(2^i-5.25)\ (r_i, i_jの場合)\\
Q_{i, j}=-18*(2^j-3.5)\ (i_i, r_jの場合)\\
$
$i,j$はそれぞれビット列$r_0, r_1, ..., r_{n-1}, i_0, i_1, ..., i_{n-1}$の添字です。$Q_{i,j}$は、QUBO問題の係数行列となります。
最後に、目的関数$F(Xr, Xi)$の最大値を求めるために、量子アニーリングによって$E(r_0, r_1, ..., r_{n-1}, i_0, i_1, ..., i_{n-1})$の最小値を求めます。最小値を求めることで、$F(Xr, Xi)$の最大値が得られます。
以上が、この問題を量子アニーリングで解くためのQUBO問題のモデル化方法です。
なお、モデリング結果はCHATGPTが抽出したもので、量子アニーリングで必ず正しい結果が得られるものではありません。
ご理解ご協力のほどよろしくお願い申し上げます。
詳しくは、QAZUCHI の「量子アニーリングなんでも相談」をご利用ください。
https://qazuchi.com
twitter ID: @QtmAnnealing
Discord QAZUCHI server
オンライン勉強会
以上