ブログ

H2Oの基底状態の発見とClassiqによる他のハミルトニアンシミュレーションの問題解決

26
7月
,
2022

このノートでは、Classiqプラットフォームを使って、最近のコーディング・コンペティションの一部であったハミルトニアン・シミュレーション問題を解く方法を紹介します。さらに複雑な例としてH2O分子のシミュレーションを紹介します。

はじめに

化学シミュレーションは、量子コンピュータにとって最もエキサイティングなアプリケーションのひとつである。電子と電子の相互作用の精密なシミュレーションが必要な場合、古典的なコンピューターでも可能な場合もあるが、古典的なコンピューターでは、より複雑な分子間相互作用のシミュレーションには苦労する。このような粒子間相互作用は量子レベルでシミュレートするのが最善であり、そのための優れた方法が量子コンピューターなのである。 

分子間の相互作用を正確にシミュレートする能力は、広範囲に応用できるだろう。創薬に使えば、ワクチンや新しい治療法の迅速な開発が可能になる。材料研究においては、より高い強度重量比を持つ材料や、環境に優しい建築材料の発見が期待できる。

リチウム水素化物のハミルトニアンシミュレーション問題

最近のコーディング・コンペティションでは、ユニタリーe-iH (HはLiH(水素化リチウム)分子の量子ビット・ハミルトニアン)を近似する回路を、10個以下の量子ビットを使って生成することを出場者に求めました。LiHのハミルトニアンは276個のパウリ文字列で構成されており、以下のサイトで見ることができる。 ここで.近似誤差は0.1以下とし、回路はCXゲートと単一量子ビットゲートのみで構成する。

Classiqを使ったコーディング

Classiqでこの問題を解決するために、ハミルトニアンのシミュレーションと量子シミュレーション回路の生成に最も効率的な方法の一つであるスズキ・トロッター法を使う。この回路の作成は簡単である。回路の機能を指定すると、プラットフォームが効率的な量子回路を生成する。以下にコードを示す: 


LiH = [("IIIYYIIIYY",0.00303465683020485),
("IIIXXIIIYY",0.00303465683020485),
("IIIYYIIIXX",0.00303465683020485),
("IIIXXIIIXX",0.00303465683020485),
("YZZZYIIIYY",-0.00837336142426481),
("XZZZXIIIYY",-0.00837336142426481),
("YZZZYIIIXX",-0.00837336142426481),
("XZZZXIIIXX",-0.00837336142426481),
("YZZYIIIIYY",0.00211113766859809),
("XZZXIIIIYY",0.00211113766859809),
("YZZYIIIIXX",0.00211113766859809),
("XZZXIIIIXX",0.00211113766859809),
("IIIIIIIIYY",-0.00491756976241806),
("IIIIIIIIXX",-0.00491756976241806),
("ZIIIIIIIYY",0.0105401874090264),
("ZIIIIIIIXX",0.0105401874090264),
("IZIIIIIIYY",-0.00118228323247258),
("IZIIIIIIXX",-0.00118228323247258),
("IIZIIIIIYY",-0.00118228323247258),
("IIZIIIIIXX",-0.00118228323247258),
("IIIZIIIIYY",-0.00154067008970742),
("IIIZIIIIXX",-0.00154067008970742),
("IIIIZIIIYY",0.0117336239120741),
("IIIIZIIIXX",0.0117336239120741),
("IIIIIZIIYY",0.00277574622690495),
("IIIIIZIIXX",0.00277574622690495),
("IIIIIIZIYY",0.00362024875588371),
("IIIIIIZIXX",0.00362024875588371),
("IIIIIIIZYY",0.00362024875588371),
("IIIIIIIZXX",0.00362024875588371),
("IIYZYIIYZY",0.00599676084973456),
("IIXZXIIYZY",0.00599676084973456),
("IIYZYIIXZX",0.00599676084973456),
("IIXZXIIXZX",0.00599676084973456),
("IIYYIIIYZY",0.00480253198835629),
("IIXXIIIYZY",0.00480253198835629),
("IIYYIIIXZX",0.00480253198835629),
("IIXXIIIXZX",0.00480253198835629),
("YZYIIIIYZY",-0.00487974048419149),
("XZXIIIIYZY",-0.00487974048419149),
("YZYIIIIXZX",-0.00487974048419149),
("XZXIIIIXZX",-0.00487974048419149),
("IYZZYIYZZY",0.00599676084973456),
("IXZZXIYZZY",0.00599676084973456),
("IYZZYIXZZX",0.00599676084973456),
("IXZZXIXZZX",0.00599676084973456),
("IYZYIIYZZY",0.00480253198835629),
("IXZXIIYZZY",0.00480253198835629),
("IYZYIIXZZX",0.00480253198835629),
("IXZXIIXZZX",0.00480253198835629),
("YYIIIIYZZY",-0.00487974048419149),
("XXIIIIYZZY",-0.00487974048419149),
("YYIIIIXZZX",-0.00487974048419149),
("XXIIIIXZZX",-0.00487974048419149),
("IIIYYYZZZY",-0.00837336142426481),
("IIIXXYZZZY",-0.00837336142426481),
("IIIYYXZZZX",-0.00837336142426481),
("IIIXXXZZZX",-0.00837336142426481),
("YZZZYYZZZY",0.0307383271773138),
("XZZZXYZZZY",0.0307383271773138),
("YZZZYXZZZX",0.0307383271773138),
("XZZZXXZZZX",0.0307383271773138),
("YZZYIYZZZY",-0.00776444118212153),
("XZZXIYZZZY",-0.00776444118212153),
("YZZYIXZZZX",-0.00776444118212153),
("XZZXIXZZZX",-0.00776444118212153),
("IIIIIYZZZY",-0.00594901997573424),
("IIIIIXZZZX",-0.00594901997573424),
("ZIIIIYZZZY",-0.0351167704024114),
("ZIIIIXZZZX",-0.0351167704024114),
("IZIIIYZZZY",0.00272988283532641),
("IZIIIXZZZX",0.00272988283532641),
("IIZIIYZZZY",0.00272988283532641),
("IIZIIXZZZX",0.00272988283532641),
("IIIZIYZZZY",0.00236793689958447),
("IIIZIXZZZX",0.00236793689958447),
("IIIIZYZZZY",-0.0330587285877558),
("IIIIZXZZZX",-0.0330587285877558),
("IIIIIYIZZY",-0.00214985764886508),
("IIIIIXIZZX",-0.00214985764886508),
("IIIIIYZIZY",-0.00214985764886508),
("IIIIIXZIZX",-0.00214985764886508),
("IIIIIYZZIY",0.00447907456818256),
("IIIIIXZZIX",0.00447907456818256),
("IIYZYIIYYI",0.00480253198835629),
("IIXZXIIYYI",0.00480253198835629),
("IIYZYIIXXI",0.00480253198835629),
("IIXZXIIXXI",0.00480253198835629),
("IIYYIIIYYI",0.0103288193223016),
("IIXXIIIYYI",0.0103288193223016),
("IIYYIIIXXI",0.0103288193223016),
("IIXXIIIXXI",0.0103288193223016),
("YZYIIIIYYI",-0.00346639184847533),
("XZXIIIIYYI",-0.00346639184847533),
("YZYIIIIXXI",-0.00346639184847533),
("XZXIIIIXXI",-0.00346639184847533),
("IYZZYIYZYI",0.00480253198835629),
("IXZZXIYZYI",0.00480253198835629),
("IYZZYIXZXI",0.00480253198835629),
("IXZZXIXZXI",0.00480253198835629),
("IYZYIIYZYI",0.0103288193223016),
("IXZXIIYZYI",0.0103288193223016),
("IYZYIIXZXI",0.0103288193223016),
("IXZXIIXZXI",0.0103288193223016),
("YYIIIIYZYI",-0.00346639184847533),
("XXIIIIYZYI",-0.00346639184847533),
("YYIIIIXZXI",-0.00346639184847533),
("XXIIIIXZXI",-0.00346639184847533),
("IIIYYYZZYI",0.00211113766859809),
("IIIXXYZZYI",0.00211113766859809),
("IIIYYXZZXI",0.00211113766859809),
("IIIXXXZZXI",0.00211113766859809),
("YZZZYYZZYI",-0.00776444118212153),
("XZZZXYZZYI",-0.00776444118212153),
("YZZZYXZZXI",-0.00776444118212153),
("XZZZXXZZXI",-0.00776444118212153),
("YZZYIYZZYI",0.00657574489918254),
("XZZXIYZZYI",0.00657574489918254),
("YZZYIXZZXI",0.00657574489918254),
("XZZXIXZZXI",0.00657574489918254),
("IIIIIYZZYI",0.0235574423958372),
("IIIIIXZZXI",0.0235574423958372),
("ZIIIIYZZYI",0.0108894077160944),
("ZIIIIXZZXI",0.0108894077160944),
("IZIIIYZZYI",-0.00035188935283895),
("IZIIIXZZXI",-0.00035188935283895),
("IIZIIYZZYI",-0.00035188935283895),
("IIZIIXZZXI",-0.00035188935283895),
("IIIZIYZZYI",-0.00901204279263803),
("IIIZIXZZXI",-0.00901204279263803),
("IIIIZYZZYI",0.0127339139792953),
("IIIIZXZZXI",0.0127339139792953),
("IIIIIYIZYI",-0.00381828120131428),
("IIIIIXIZXI",-0.00381828120131428),
("IIIIIYZIYI",-0.00381828120131428),
("IIIIIXZIXI",-0.00381828120131428),
("IYYIIIYYII",0.00421728487842275),
("IXXIIIYYII",0.00421728487842275),
("IYYIIIXXII",0.00421728487842275),
("IXXIIIXXII",0.00421728487842275),
("IIYZYYZYII",-0.00487974048419149),
("IIXZXYZYII",-0.00487974048419149),
("IIYZYXZXII",-0.00487974048419149),
("IIXZXXZXII",-0.00487974048419149),
("IIYYIYZYII",-0.00346639184847533),
("IIXXIYZYII",-0.00346639184847533),
("IIYYIXZXII",-0.00346639184847533),
("IIXXIXZXII",-0.00346639184847533),
("YZYIIYZYII",0.00486830254508752),
("XZXIIYZYII",0.00486830254508752),
("YZYIIXZXII",0.00486830254508752),
("XZXIIXZXII",0.00486830254508752),
("IYZZYYYIII",-0.00487974048419149),
("IXZZXYYIII",-0.00487974048419149),
("IYZZYXXIII",-0.00487974048419149),
("IXZZXXXIII",-0.00487974048419149),
("IYZYIYYIII",-0.00346639184847533),
("IXZXIYYIII",-0.00346639184847533),
("IYZYIXXIII",-0.00346639184847533),
("IXZXIXXIII",-0.00346639184847533),
("YYIIIYYIII",0.00486830254508752),
("XXIIIYYIII",0.00486830254508752),
("YYIIIXXIII",0.00486830254508752),
("XXIIIXXIII",0.00486830254508752),
("IIIYYIIIII",-0.00491756976241806),
("IIIXXIIIII",-0.00491756976241806),
("ZIIYYIIIII",0.00277574622690495),
("ZIIXXIIIII",0.00277574622690495),
("IZIYYIIIII",0.00362024875588371),
("IZIXXIIIII",0.00362024875588371),
("IIZYYIIIII",0.00362024875588371),
("IIZXXIIIII",0.00362024875588371),
("YZZZYIIIII",-0.00594901997573428),
("XZZZXIIIII",-0.00594901997573428),
("YIZZYIIIII",-0.00214985764886508),
("XIZZXIIIII",-0.00214985764886508),
("YZIZYIIIII",-0.00214985764886508),
("XZIZXIIIII",-0.00214985764886508),
("YZZIYIIIII",0.00447907456818256),
("XZZIXIIIII",0.00447907456818256),
("YZZYIIIIII",0.0235574423958372),
("XZZXIIIIII",0.0235574423958372),
("YIZYIIIIII",-0.00381828120131428),
("XIZXIIIIII",-0.00381828120131428),
("YZIYIIIIII",-0.00381828120131428),
("XZIXIIIIII",-0.00381828120131428),
("IIIIIIIIII",1.07092746636567),
("ZIIIIIIIII",-0.577292099065437),
("IZIIIIIIII",-0.424481753172713),
("ZZIIIIIIII",0.0624551252313693),
("IIZIIIIIII",-0.424481753172713),
("ZIZIIIIIII",0.0624551252313693),
("IZZIIIIIII",0.065584523154584),
("IIIZIIIIII",-0.389917764741521),
("ZIIZIIIIII",0.0539298607735884),
("IZIZIIIIII",0.0602255013995459),
("IIZZIIIIII",0.0602255013995459),
("YZZYZIIIII",0.00436055255503048),
("XZZXZIIIII",0.00436055255503048),
("IIIIZIIIII",-0.301015321589479),
("ZIIIZIIIII",0.0836012196724618),
("IZIIZIIIII",0.062788763434712),
("IIZIZIIIII",0.062788763434712),
("IIIZZIIIII",0.0536214107226148),
("IIIYYZIIII",0.0105401874090264),
("IIIXXZIIII",0.0105401874090264),
("YZZZYZIIII",-0.0351167704024114),
("XZZZXZIIII",-0.0351167704024114),
("YZZYIZIIII",0.0108894077160944),
("XZZXIZIIII",0.0108894077160944),
("IIIIIZIIII",-0.577292099065437),
("ZIIIIZIIII",0.114091635010207),
("IZIIIZIIII",0.0673234277764568),
("IIZIIZIIII",0.0673234277764568),
("IIIZIZIIII",0.0605056056727709),
("IIIIZZIIII",0.114339546849775),
("IIIYYIZIII",-0.00118228323247258),
("IIIXXIZIII",-0.00118228323247258),
("YZZZYIZIII",0.00272988283532641),
("XZZZXIZIII",0.00272988283532641),
("YZZYIIZIII",-0.00035188935283895),
("XZZXIIZIII",-0.00035188935283895),
("IIIIIIZIII",-0.424481753172713),
("ZIIIIIZIII",0.0673234277764568),
("IZIIIIZIII",0.0782363777898523),
("IIZIIIZIII",0.0698018080330068),
("IIIZIIZIII",0.0705543207218475),
("IIIIZIZIII",0.0687855242844466),
("IIIIIZZIII",0.0624551252313693),
("IIIYYIIZII",-0.00118228323247258),
("IIIXXIIZII",-0.00118228323247258),
("YZZZYIIZII",0.00272988283532641),
("XZZZXIIZII",0.00272988283532641),
("YZZYIIIZII",-0.00035188935283895),
("XZZXIIIZII",-0.00035188935283895),
("IIIIIIIZII",-0.424481753172713),
("ZIIIIIIZII",0.0673234277764568),
("IZIIIIIZII",0.0698018080330068),
("IIZIIIIZII",0.0782363777898523),
("IIIZIIIZII",0.0705543207218475),
("IIIIZIIZII",0.0687855242844466),
("IIIIIZIZII",0.0624551252313693),
("IIIIIIZZII",0.065584523154584),
("IIIYYIIIZI",-0.00154067008970742),
("IIIXXIIIZI",-0.00154067008970742),
("YZZZYIIIZI",0.00236793689958447),
("XZZZXIIIZI",0.00236793689958447),
("YZZYIIIIZI",-0.00901204279263803),
("XZZXIIIIZI",-0.00901204279263803),
("IIIIIIIIZI",-0.389917764741521),
("ZIIIIIIIZI",0.0605056056727709),
("IZIIIIIIZI",0.0705543207218475),
("IIZIIIIIZI",0.0705543207218475),
("IIIZIIIIZI",0.0847039180223953),
("IIIIZIIIZI",0.0566560675528197),
("IIIIIZIIZI",0.0539298607735884),
("IIIIIIZIZI",0.0602255013995459),
("IIIIIIIZZI",0.0602255013995459),
("IIIIIYZZYZ",0.00436055255503048),
("IIIIIXZZXZ",0.00436055255503048),
("IIIYYIIIIZ",0.0117336239120741),
("IIIXXIIIIZ",0.0117336239120741),
("YZZZYIIIIZ",-0.0330587285877558),
("XZZZXIIIIZ",-0.0330587285877558),
("YZZYIIIIIZ",0.0127339139792953),
("XZZXIIIIIZ",0.0127339139792953),
("IIIIIIIIIZ",-0.301015321589479),
("ZIIIIIIIIZ",0.114339546849775),
("IZIIIIIIIZ",0.0687855242844466),
("IIZIIIIIIZ",0.0687855242844466),
("IIIZIIIIIZ",0.0566560675528197),
("IIIIZIIIIZ",0.123570872248984),
("IIIIIZIIIZ",0.0836012196724618),
("IIIIIIZIIZ",0.062788763434712),
("IIIIIIIZIZ",0.062788763434712),
("IIIIIIIIZZ",0.0536214107226148)]

from classiq import ModelDesigner
from classiq.interface.chemistry.operator import PauliOperator
from classiq.interface.generator.suzuki_trotter import SuzukiTrotter, SuzukiParameters

model_designer = ModelDesigner()
trotter_params = SuzukiTrotter(
    pauli_operator=PauliOperator(pauli_list=LiH)、
    evolution_coefficient=1、
    suzuki_parameters=SuzukiParameters(order=1, repetitions=1)、
)

model_designer.SuzukiTrotter(params=trotter_params)
result = model_designer.synthesize()
result.show_interactive()

ClassiqのPython SDKを使い、Visual Studio CodeのClassiqエクステンションを使って同等の回路を設計することができます。水素化リチウム分子のPauli文字列をインポートし、Suzuki Trotter関数のいくつかの指定でコードを終了します。進化係数1と、スズキトロッター関数に必要な次数と繰り返しを指定します。繰り返しは1回としました。繰り返しを多くすると、より正確な量子シミュレーション回路ができますが、回路規模が大きくなるからです。

以上である!Classiqのバージョン0.14.2を用いて生成されたインタラクティブな回路を以下に部分的に示します。この回路は10個の量子ビットを使い、 深さは1057です。

1ヵ月にわたるコンペティションで競合他社が提供したソリューションとの比較については、こちらをご覧いただきたい。

リチウム水素を越えて

Classiqのお客様は、より複雑な分子のシミュレーションにも同じアプローチを用いることができます。例えば、H2O分子のPauli文字列を生成し、シミュレーションするコードを以下に示します。


from classiq import ModelDesigner
from classiq.interface.generator.model.constraints import OptimizationParameter
from classiq.interface.chemistry.ground_state_problem import GroundStateProblem (基底状態問題)
from classiq.interface.chemistry.molecule import 分子
from classiq.interface.chemistry.operator import PauliOperator
from classiq.interface.generator.suzuki_trotter import SuzukiTrotter, SuzukiParameters

molecule_H2O = Molecule(
    atoms=[("O", (0.0, 0.0, 0.0)), ("H", (0, 0.586, 0.757)), ("H", (0, 0.586, -0.757))].
)

gs_problem = GroundStateProblem(
        molecule=molecule_H2O、
        basis="sto3g"、
        mapping="jordan_wigner"、
        z2_symmetries=True、
        freeze_core=True、
    )

ハミルトニアン = gs_problem.generate_hamiltonian()

model_designer = ModelDesigner()
trotter_params = SuzukiTrotter(
    pauli_operator=PauliOperator(pauli_list=hamiltonian.pauli_list)、
    evolution_coefficient=1、
    suzuki_parameters=SuzukiParameters(order=1, repetitions=1)、
    use_naive_evolution=False、
)

model_designer.SuzukiTrotter(params=trotter_params)
result = model_designer.synthesize()
result.show_interactive()

そしてこちら( )は、9量子ビットだけを使った深さ2120の対話型回路である。

Classiqは、数十人の科学者と量子ソフトウェアエンジニアの専門知識をソフトウェアプラットフォームにパッケージ化しました。その結果、複雑な問題に対して効率的な量子回路を自動的に生成することができるようになり、量子コンピューティングで現実の問題を解決することがこれまで以上に迅速かつ容易になりました。Classiqは、管理可能なサイズの回路であれば、手作業で作成した最高の回路と同等の解を作成する。人間が合理的に作成できる回路よりも大きな回路であれば、Classiqの強力な機能により、より遠くまで進むことができます。

Classiqではゲートレベルでの作業は必要ありません。Classiqでは、ゲート・レベルでの作業は必要なく、より高いレベルで、回路に要求される機能と適用される制約条件を指定するだけで、Classiqプラットフォームが膨大な設計空間の中から最適化された実装を見つけ出すことができます。 

Classiqプラットフォームのライブデモをご予約いただき、実際にご覧いただくか、または弊社までお問い合わせください。

このノートでは、Classiqプラットフォームを使って、最近のコーディング・コンペティションの一部であったハミルトニアン・シミュレーション問題を解く方法を紹介します。さらに複雑な例としてH2O分子のシミュレーションを紹介します。

はじめに

化学シミュレーションは、量子コンピュータにとって最もエキサイティングなアプリケーションのひとつである。電子と電子の相互作用の精密なシミュレーションが必要な場合、古典的なコンピューターでも可能な場合もあるが、古典的なコンピューターでは、より複雑な分子間相互作用のシミュレーションには苦労する。このような粒子間相互作用は量子レベルでシミュレートするのが最善であり、そのための優れた方法が量子コンピューターなのである。 

分子間の相互作用を正確にシミュレートする能力は、広範囲に応用できるだろう。創薬に使えば、ワクチンや新しい治療法の迅速な開発が可能になる。材料研究においては、より高い強度重量比を持つ材料や、環境に優しい建築材料の発見が期待できる。

リチウム水素化物のハミルトニアンシミュレーション問題

最近のコーディング・コンペティションでは、ユニタリーe-iH (HはLiH(水素化リチウム)分子の量子ビット・ハミルトニアン)を近似する回路を、10個以下の量子ビットを使って生成することを出場者に求めました。LiHのハミルトニアンは276個のパウリ文字列で構成されており、以下のサイトで見ることができる。 ここで.近似誤差は0.1以下とし、回路はCXゲートと単一量子ビットゲートのみで構成する。

Classiqを使ったコーディング

Classiqでこの問題を解決するために、ハミルトニアンのシミュレーションと量子シミュレーション回路の生成に最も効率的な方法の一つであるスズキ・トロッター法を使う。この回路の作成は簡単である。回路の機能を指定すると、プラットフォームが効率的な量子回路を生成する。以下にコードを示す: 


LiH = [("IIIYYIIIYY",0.00303465683020485),
("IIIXXIIIYY",0.00303465683020485),
("IIIYYIIIXX",0.00303465683020485),
("IIIXXIIIXX",0.00303465683020485),
("YZZZYIIIYY",-0.00837336142426481),
("XZZZXIIIYY",-0.00837336142426481),
("YZZZYIIIXX",-0.00837336142426481),
("XZZZXIIIXX",-0.00837336142426481),
("YZZYIIIIYY",0.00211113766859809),
("XZZXIIIIYY",0.00211113766859809),
("YZZYIIIIXX",0.00211113766859809),
("XZZXIIIIXX",0.00211113766859809),
("IIIIIIIIYY",-0.00491756976241806),
("IIIIIIIIXX",-0.00491756976241806),
("ZIIIIIIIYY",0.0105401874090264),
("ZIIIIIIIXX",0.0105401874090264),
("IZIIIIIIYY",-0.00118228323247258),
("IZIIIIIIXX",-0.00118228323247258),
("IIZIIIIIYY",-0.00118228323247258),
("IIZIIIIIXX",-0.00118228323247258),
("IIIZIIIIYY",-0.00154067008970742),
("IIIZIIIIXX",-0.00154067008970742),
("IIIIZIIIYY",0.0117336239120741),
("IIIIZIIIXX",0.0117336239120741),
("IIIIIZIIYY",0.00277574622690495),
("IIIIIZIIXX",0.00277574622690495),
("IIIIIIZIYY",0.00362024875588371),
("IIIIIIZIXX",0.00362024875588371),
("IIIIIIIZYY",0.00362024875588371),
("IIIIIIIZXX",0.00362024875588371),
("IIYZYIIYZY",0.00599676084973456),
("IIXZXIIYZY",0.00599676084973456),
("IIYZYIIXZX",0.00599676084973456),
("IIXZXIIXZX",0.00599676084973456),
("IIYYIIIYZY",0.00480253198835629),
("IIXXIIIYZY",0.00480253198835629),
("IIYYIIIXZX",0.00480253198835629),
("IIXXIIIXZX",0.00480253198835629),
("YZYIIIIYZY",-0.00487974048419149),
("XZXIIIIYZY",-0.00487974048419149),
("YZYIIIIXZX",-0.00487974048419149),
("XZXIIIIXZX",-0.00487974048419149),
("IYZZYIYZZY",0.00599676084973456),
("IXZZXIYZZY",0.00599676084973456),
("IYZZYIXZZX",0.00599676084973456),
("IXZZXIXZZX",0.00599676084973456),
("IYZYIIYZZY",0.00480253198835629),
("IXZXIIYZZY",0.00480253198835629),
("IYZYIIXZZX",0.00480253198835629),
("IXZXIIXZZX",0.00480253198835629),
("YYIIIIYZZY",-0.00487974048419149),
("XXIIIIYZZY",-0.00487974048419149),
("YYIIIIXZZX",-0.00487974048419149),
("XXIIIIXZZX",-0.00487974048419149),
("IIIYYYZZZY",-0.00837336142426481),
("IIIXXYZZZY",-0.00837336142426481),
("IIIYYXZZZX",-0.00837336142426481),
("IIIXXXZZZX",-0.00837336142426481),
("YZZZYYZZZY",0.0307383271773138),
("XZZZXYZZZY",0.0307383271773138),
("YZZZYXZZZX",0.0307383271773138),
("XZZZXXZZZX",0.0307383271773138),
("YZZYIYZZZY",-0.00776444118212153),
("XZZXIYZZZY",-0.00776444118212153),
("YZZYIXZZZX",-0.00776444118212153),
("XZZXIXZZZX",-0.00776444118212153),
("IIIIIYZZZY",-0.00594901997573424),
("IIIIIXZZZX",-0.00594901997573424),
("ZIIIIYZZZY",-0.0351167704024114),
("ZIIIIXZZZX",-0.0351167704024114),
("IZIIIYZZZY",0.00272988283532641),
("IZIIIXZZZX",0.00272988283532641),
("IIZIIYZZZY",0.00272988283532641),
("IIZIIXZZZX",0.00272988283532641),
("IIIZIYZZZY",0.00236793689958447),
("IIIZIXZZZX",0.00236793689958447),
("IIIIZYZZZY",-0.0330587285877558),
("IIIIZXZZZX",-0.0330587285877558),
("IIIIIYIZZY",-0.00214985764886508),
("IIIIIXIZZX",-0.00214985764886508),
("IIIIIYZIZY",-0.00214985764886508),
("IIIIIXZIZX",-0.00214985764886508),
("IIIIIYZZIY",0.00447907456818256),
("IIIIIXZZIX",0.00447907456818256),
("IIYZYIIYYI",0.00480253198835629),
("IIXZXIIYYI",0.00480253198835629),
("IIYZYIIXXI",0.00480253198835629),
("IIXZXIIXXI",0.00480253198835629),
("IIYYIIIYYI",0.0103288193223016),
("IIXXIIIYYI",0.0103288193223016),
("IIYYIIIXXI",0.0103288193223016),
("IIXXIIIXXI",0.0103288193223016),
("YZYIIIIYYI",-0.00346639184847533),
("XZXIIIIYYI",-0.00346639184847533),
("YZYIIIIXXI",-0.00346639184847533),
("XZXIIIIXXI",-0.00346639184847533),
("IYZZYIYZYI",0.00480253198835629),
("IXZZXIYZYI",0.00480253198835629),
("IYZZYIXZXI",0.00480253198835629),
("IXZZXIXZXI",0.00480253198835629),
("IYZYIIYZYI",0.0103288193223016),
("IXZXIIYZYI",0.0103288193223016),
("IYZYIIXZXI",0.0103288193223016),
("IXZXIIXZXI",0.0103288193223016),
("YYIIIIYZYI",-0.00346639184847533),
("XXIIIIYZYI",-0.00346639184847533),
("YYIIIIXZXI",-0.00346639184847533),
("XXIIIIXZXI",-0.00346639184847533),
("IIIYYYZZYI",0.00211113766859809),
("IIIXXYZZYI",0.00211113766859809),
("IIIYYXZZXI",0.00211113766859809),
("IIIXXXZZXI",0.00211113766859809),
("YZZZYYZZYI",-0.00776444118212153),
("XZZZXYZZYI",-0.00776444118212153),
("YZZZYXZZXI",-0.00776444118212153),
("XZZZXXZZXI",-0.00776444118212153),
("YZZYIYZZYI",0.00657574489918254),
("XZZXIYZZYI",0.00657574489918254),
("YZZYIXZZXI",0.00657574489918254),
("XZZXIXZZXI",0.00657574489918254),
("IIIIIYZZYI",0.0235574423958372),
("IIIIIXZZXI",0.0235574423958372),
("ZIIIIYZZYI",0.0108894077160944),
("ZIIIIXZZXI",0.0108894077160944),
("IZIIIYZZYI",-0.00035188935283895),
("IZIIIXZZXI",-0.00035188935283895),
("IIZIIYZZYI",-0.00035188935283895),
("IIZIIXZZXI",-0.00035188935283895),
("IIIZIYZZYI",-0.00901204279263803),
("IIIZIXZZXI",-0.00901204279263803),
("IIIIZYZZYI",0.0127339139792953),
("IIIIZXZZXI",0.0127339139792953),
("IIIIIYIZYI",-0.00381828120131428),
("IIIIIXIZXI",-0.00381828120131428),
("IIIIIYZIYI",-0.00381828120131428),
("IIIIIXZIXI",-0.00381828120131428),
("IYYIIIYYII",0.00421728487842275),
("IXXIIIYYII",0.00421728487842275),
("IYYIIIXXII",0.00421728487842275),
("IXXIIIXXII",0.00421728487842275),
("IIYZYYZYII",-0.00487974048419149),
("IIXZXYZYII",-0.00487974048419149),
("IIYZYXZXII",-0.00487974048419149),
("IIXZXXZXII",-0.00487974048419149),
("IIYYIYZYII",-0.00346639184847533),
("IIXXIYZYII",-0.00346639184847533),
("IIYYIXZXII",-0.00346639184847533),
("IIXXIXZXII",-0.00346639184847533),
("YZYIIYZYII",0.00486830254508752),
("XZXIIYZYII",0.00486830254508752),
("YZYIIXZXII",0.00486830254508752),
("XZXIIXZXII",0.00486830254508752),
("IYZZYYYIII",-0.00487974048419149),
("IXZZXYYIII",-0.00487974048419149),
("IYZZYXXIII",-0.00487974048419149),
("IXZZXXXIII",-0.00487974048419149),
("IYZYIYYIII",-0.00346639184847533),
("IXZXIYYIII",-0.00346639184847533),
("IYZYIXXIII",-0.00346639184847533),
("IXZXIXXIII",-0.00346639184847533),
("YYIIIYYIII",0.00486830254508752),
("XXIIIYYIII",0.00486830254508752),
("YYIIIXXIII",0.00486830254508752),
("XXIIIXXIII",0.00486830254508752),
("IIIYYIIIII",-0.00491756976241806),
("IIIXXIIIII",-0.00491756976241806),
("ZIIYYIIIII",0.00277574622690495),
("ZIIXXIIIII",0.00277574622690495),
("IZIYYIIIII",0.00362024875588371),
("IZIXXIIIII",0.00362024875588371),
("IIZYYIIIII",0.00362024875588371),
("IIZXXIIIII",0.00362024875588371),
("YZZZYIIIII",-0.00594901997573428),
("XZZZXIIIII",-0.00594901997573428),
("YIZZYIIIII",-0.00214985764886508),
("XIZZXIIIII",-0.00214985764886508),
("YZIZYIIIII",-0.00214985764886508),
("XZIZXIIIII",-0.00214985764886508),
("YZZIYIIIII",0.00447907456818256),
("XZZIXIIIII",0.00447907456818256),
("YZZYIIIIII",0.0235574423958372),
("XZZXIIIIII",0.0235574423958372),
("YIZYIIIIII",-0.00381828120131428),
("XIZXIIIIII",-0.00381828120131428),
("YZIYIIIIII",-0.00381828120131428),
("XZIXIIIIII",-0.00381828120131428),
("IIIIIIIIII",1.07092746636567),
("ZIIIIIIIII",-0.577292099065437),
("IZIIIIIIII",-0.424481753172713),
("ZZIIIIIIII",0.0624551252313693),
("IIZIIIIIII",-0.424481753172713),
("ZIZIIIIIII",0.0624551252313693),
("IZZIIIIIII",0.065584523154584),
("IIIZIIIIII",-0.389917764741521),
("ZIIZIIIIII",0.0539298607735884),
("IZIZIIIIII",0.0602255013995459),
("IIZZIIIIII",0.0602255013995459),
("YZZYZIIIII",0.00436055255503048),
("XZZXZIIIII",0.00436055255503048),
("IIIIZIIIII",-0.301015321589479),
("ZIIIZIIIII",0.0836012196724618),
("IZIIZIIIII",0.062788763434712),
("IIZIZIIIII",0.062788763434712),
("IIIZZIIIII",0.0536214107226148),
("IIIYYZIIII",0.0105401874090264),
("IIIXXZIIII",0.0105401874090264),
("YZZZYZIIII",-0.0351167704024114),
("XZZZXZIIII",-0.0351167704024114),
("YZZYIZIIII",0.0108894077160944),
("XZZXIZIIII",0.0108894077160944),
("IIIIIZIIII",-0.577292099065437),
("ZIIIIZIIII",0.114091635010207),
("IZIIIZIIII",0.0673234277764568),
("IIZIIZIIII",0.0673234277764568),
("IIIZIZIIII",0.0605056056727709),
("IIIIZZIIII",0.114339546849775),
("IIIYYIZIII",-0.00118228323247258),
("IIIXXIZIII",-0.00118228323247258),
("YZZZYIZIII",0.00272988283532641),
("XZZZXIZIII",0.00272988283532641),
("YZZYIIZIII",-0.00035188935283895),
("XZZXIIZIII",-0.00035188935283895),
("IIIIIIZIII",-0.424481753172713),
("ZIIIIIZIII",0.0673234277764568),
("IZIIIIZIII",0.0782363777898523),
("IIZIIIZIII",0.0698018080330068),
("IIIZIIZIII",0.0705543207218475),
("IIIIZIZIII",0.0687855242844466),
("IIIIIZZIII",0.0624551252313693),
("IIIYYIIZII",-0.00118228323247258),
("IIIXXIIZII",-0.00118228323247258),
("YZZZYIIZII",0.00272988283532641),
("XZZZXIIZII",0.00272988283532641),
("YZZYIIIZII",-0.00035188935283895),
("XZZXIIIZII",-0.00035188935283895),
("IIIIIIIZII",-0.424481753172713),
("ZIIIIIIZII",0.0673234277764568),
("IZIIIIIZII",0.0698018080330068),
("IIZIIIIZII",0.0782363777898523),
("IIIZIIIZII",0.0705543207218475),
("IIIIZIIZII",0.0687855242844466),
("IIIIIZIZII",0.0624551252313693),
("IIIIIIZZII",0.065584523154584),
("IIIYYIIIZI",-0.00154067008970742),
("IIIXXIIIZI",-0.00154067008970742),
("YZZZYIIIZI",0.00236793689958447),
("XZZZXIIIZI",0.00236793689958447),
("YZZYIIIIZI",-0.00901204279263803),
("XZZXIIIIZI",-0.00901204279263803),
("IIIIIIIIZI",-0.389917764741521),
("ZIIIIIIIZI",0.0605056056727709),
("IZIIIIIIZI",0.0705543207218475),
("IIZIIIIIZI",0.0705543207218475),
("IIIZIIIIZI",0.0847039180223953),
("IIIIZIIIZI",0.0566560675528197),
("IIIIIZIIZI",0.0539298607735884),
("IIIIIIZIZI",0.0602255013995459),
("IIIIIIIZZI",0.0602255013995459),
("IIIIIYZZYZ",0.00436055255503048),
("IIIIIXZZXZ",0.00436055255503048),
("IIIYYIIIIZ",0.0117336239120741),
("IIIXXIIIIZ",0.0117336239120741),
("YZZZYIIIIZ",-0.0330587285877558),
("XZZZXIIIIZ",-0.0330587285877558),
("YZZYIIIIIZ",0.0127339139792953),
("XZZXIIIIIZ",0.0127339139792953),
("IIIIIIIIIZ",-0.301015321589479),
("ZIIIIIIIIZ",0.114339546849775),
("IZIIIIIIIZ",0.0687855242844466),
("IIZIIIIIIZ",0.0687855242844466),
("IIIZIIIIIZ",0.0566560675528197),
("IIIIZIIIIZ",0.123570872248984),
("IIIIIZIIIZ",0.0836012196724618),
("IIIIIIZIIZ",0.062788763434712),
("IIIIIIIZIZ",0.062788763434712),
("IIIIIIIIZZ",0.0536214107226148)]

from classiq import ModelDesigner
from classiq.interface.chemistry.operator import PauliOperator
from classiq.interface.generator.suzuki_trotter import SuzukiTrotter, SuzukiParameters

model_designer = ModelDesigner()
trotter_params = SuzukiTrotter(
    pauli_operator=PauliOperator(pauli_list=LiH)、
    evolution_coefficient=1、
    suzuki_parameters=SuzukiParameters(order=1, repetitions=1)、
)

model_designer.SuzukiTrotter(params=trotter_params)
result = model_designer.synthesize()
result.show_interactive()

ClassiqのPython SDKを使い、Visual Studio CodeのClassiqエクステンションを使って同等の回路を設計することができます。水素化リチウム分子のPauli文字列をインポートし、Suzuki Trotter関数のいくつかの指定でコードを終了します。進化係数1と、スズキトロッター関数に必要な次数と繰り返しを指定します。繰り返しは1回としました。繰り返しを多くすると、より正確な量子シミュレーション回路ができますが、回路規模が大きくなるからです。

以上である!Classiqのバージョン0.14.2を用いて生成されたインタラクティブな回路を以下に部分的に示します。この回路は10個の量子ビットを使い、 深さは1057です。

1ヵ月にわたるコンペティションで競合他社が提供したソリューションとの比較については、こちらをご覧いただきたい。

リチウム水素を越えて

Classiqのお客様は、より複雑な分子のシミュレーションにも同じアプローチを用いることができます。例えば、H2O分子のPauli文字列を生成し、シミュレーションするコードを以下に示します。


from classiq import ModelDesigner
from classiq.interface.generator.model.constraints import OptimizationParameter
from classiq.interface.chemistry.ground_state_problem import GroundStateProblem (基底状態問題)
from classiq.interface.chemistry.molecule import 分子
from classiq.interface.chemistry.operator import PauliOperator
from classiq.interface.generator.suzuki_trotter import SuzukiTrotter, SuzukiParameters

molecule_H2O = Molecule(
    atoms=[("O", (0.0, 0.0, 0.0)), ("H", (0, 0.586, 0.757)), ("H", (0, 0.586, -0.757))].
)

gs_problem = GroundStateProblem(
        molecule=molecule_H2O、
        basis="sto3g"、
        mapping="jordan_wigner"、
        z2_symmetries=True、
        freeze_core=True、
    )

ハミルトニアン = gs_problem.generate_hamiltonian()

model_designer = ModelDesigner()
trotter_params = SuzukiTrotter(
    pauli_operator=PauliOperator(pauli_list=hamiltonian.pauli_list)、
    evolution_coefficient=1、
    suzuki_parameters=SuzukiParameters(order=1, repetitions=1)、
    use_naive_evolution=False、
)

model_designer.SuzukiTrotter(params=trotter_params)
result = model_designer.synthesize()
result.show_interactive()

そしてこちら( )は、9量子ビットだけを使った深さ2120の対話型回路である。

Classiqは、数十人の科学者と量子ソフトウェアエンジニアの専門知識をソフトウェアプラットフォームにパッケージ化しました。その結果、複雑な問題に対して効率的な量子回路を自動的に生成することができるようになり、量子コンピューティングで現実の問題を解決することがこれまで以上に迅速かつ容易になりました。Classiqは、管理可能なサイズの回路であれば、手作業で作成した最高の回路と同等の解を作成する。人間が合理的に作成できる回路よりも大きな回路であれば、Classiqの強力な機能により、より遠くまで進むことができます。

Classiqではゲートレベルでの作業は必要ありません。Classiqでは、ゲート・レベルでの作業は必要なく、より高いレベルで、回路に要求される機能と適用される制約条件を指定するだけで、Classiqプラットフォームが膨大な設計空間の中から最適化された実装を見つけ出すことができます。 

Classiqプラットフォームのライブデモをご予約いただき、実際にご覧いただくか、または弊社までお問い合わせください。

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

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

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

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

お問い合わせ