Quantum Device Result#

このセクションでは量子コンピュータ(シミュレーター)による計算結果を出力します。

  1. Quantum Device

  2. VQE Log

  3. Evaluated Properties

以下各項目について説明します。

Quantum Device#

入力で指定したQuantumDeviceの情報を出力します。

出力例#

"quantum_device": {
  "type": "SAMPLING_SIMULATOR"
}

VQE Log#

VQEのログは以下の項目として出力されます。

  • opt_params: 最適化されたVQEのパラメーター (注3)

  • cost_hist: 各状態のコスト関数の履歴

    • history: VQEの各サイクルにおけるコスト関数の履歴

    • state: 電子状態(VQDの場合のみ出力されます)

  • nfev: コスト関数の評価回数

  • nit: VQEのサイクル回数

  • elapsed_time: VQEの計算時間(秒)

  • energy_hist: (注1, 4)

    • history: VQEの各サイクルにおけるエネルギー履歴(a.u.)

    • state: 電子状態

  • success: 最適化の収束情報

  • message: 最適化ルーチンが返すメッセージ。内容は最適化手法により様々です。

  • optimized_orbital: OOVQEで最適化された軌道

  • quantum_resources: 量子計算実行に必要な計算資源に関する情報

    • circuit: 量子回路(Ansatz部)の情報

      • num_qubit: Qubit数

      • num_parameter: パラメータの数

      • num_gate: ゲートの総数

      • num_1qubit_gate: 1qubitゲートの数

      • num_2qubit_gate: 2qubitゲートの数

    • sampling: サンプリングに関する情報 (注2)

      • num_observable_groups: コスト関数の同時測定グループの数 (同時測定グループについては 1.8.2. を参照)

      • total_shots: 総ショット数

    • estimated_execution_time: 推定される実行時間 (注2)

      • superconductor: 超伝導方式量子コンピューターを用いた場合の推定実行時間(秒)

      • trapped_ion: イオントラップ方式量子コンピューターを用いた場合の推定実行時間(秒)

  • (注1) ansatz のtypeが FERMIONIC_ADAPTIVE の場合は出力されません。

  • (注2) quantum_device のtypeに SAMPLING_SIMULATOR を指定した場合にのみ出力されます。

  • (注3) orbital_optimization の type が NONE 以外の場合は出力されません。

  • (注4) solver の type が MCVQE かつ orbital_optimization の type が NONE 以外の場合は出力されません。

出力例#

"vqe_log": {
  "opt_params": [
    -0.9416036864094274,
    1.5079628003756818,
    ...
  ],
  "cost_hist": [
    {
      "history": [
        -2.288522129847763,
        -2.5728929940924505,
        ...
      ]
    }
  ],
  "nfev": 280,
  "nit": 15,
  "elapsed_time": 0.2707430289999999,
  "energy_hist": [
    {
      "history": [
        -0.9417947301166705,
        -1.0902403282499935,
        ...
      ],
      "state": 0
    },
    {
      "state": 1,
      "history": [
        -0.4049326696144223,
        -0.3924123375924636,
        ...
      ]
    }
  ],
  "success": true,
  "message": "",
  "quantum_resources": {
    "circuit": {
      "num_qubit": 4,
      "num_parameter": 1,
      "num_gate": 112,
      "num_1qubit_gate": 16,
      "num_2qubit_gate": 96
    },
    "sampling": {
      "num_observable_groups": 5,
      "total_shots": 220000
    },
    "estimated_execution_time": {
      "superconductor": 121.31250955205853,
      "trapped_ion": 104866.66666666666
    }
  },
  "optimized_orbital": [
    {
      "mo_energy": [
         -0.5954972513211284,
         0.7144441932583552
       ],
      "mo_coeff": [
         [
           0.5445586947820809,
           1.2620659398031695
         ],
         [
           0.5445586947820809,
           -1.2620659398031695
         ]
      ],
      "molecular_orbital_data":{
        "data": "[Molden Format]..."
        "format": "MOLDEN",
       }
       state: 0
    },
    ...
  ]
}

Evaluated Properties#

以下の物理量をリストとして出力します。

  • energy: 電子状態のエネルギー(a.u.)

  • num_electrons: 全電子数

  • multiplicity: スピン多重度

  • sz_number: 全スピンの z-軸成分

  • dipole_moment: 永久双極子モーメント(a.u.)

  • transition_dipole_moment: 遷移双極子モーメント(a.u.)

  • oscillator_strength: 振動子強度(a.u.)

  • gradient: 原子核座標による一次微分(a.u.)

  • hessian: 原子核座標による二次微分(a.u.)

  • vibrational_analysis: 振動解析の各固有振動数(1/cm)と振動モード

  • band_structure: 周期系のk点と、対応する価電子帯・伝導帯のエネルギー(a.u.)

各物理量の出力はそれぞれ以下の構造を取っています(※band_structureを除く)。

  • values

    • state または state_pair: 出力している電子状態またはそのペア

    • value: 算出された物理量。

    • sample_std: 算出された標本標準偏差 (energydipole_moment のみ。solverの typeMCVQE の場合には出力されません。)。

  • metadata

    • elapsed_time: 物理量の評価にかかった時間

band_structureの出力は以下の構造を取っています。

  • values

    • kpt: k点の座標

    • band: 出力しているバンド(“conduction band” または “valence band”)

    • value: エネルギー

  • metadata

    • elapsed_time: 物理量の評価にかかった時間

  • algorithm: バンド計算に用いたアルゴリズム(QSEまたはQEOM

観測量をパウリ演算子 \(P_i\) とその係数 \(c_i\) の総和

\[O = \sum_i c_i P_i\]

で表すとき、標本標準偏差 \(\sigma\) は以下のように算出されます。 パウリ演算子の標本分散を \(Var(P_i)\)、ショット数を \(n\) の時、

\[\sigma = \sqrt{\frac{\sum_i c^2_i Var(P_i)}{n}}\]

ただし、これはパウリ演算子のグルーピングを行わない (NO_GROUPING が選択された) 場合の算出方法です。グルーピングが行われる場合は、同グループ内のパウリ演算子の期待値の共分散も含めて計算しています。

Dipole Moment#

dipole_momentvalueでは永久双極子モーメントの\(x, y, z\)方向の値をリストとして出力します。

Transition Dipole Moment#

transition_dipole_momentvalueでは遷移双極子モーメントの\(x, y, z\)方向の値を実部、虚部に分けてリストとして出力します。 量子コンピューターによる計算では遷移双極子モーメントの要素に虚部が出現する可能性があります。 VQDでは絶対値のみを返します。

Oscillator Strength#

oscillator_strengthvalueでは振動子強度の値を出力します。

Gradient#

gradientvalueでは入力した原子核座標

\[R^1_x, R^1_y, R^1_z, R^2_x, R^2_y, R^2_z, ...\]

に対して、エネルギー\(E\)の一階微分値を下記のリストとして出力します。

\[\frac{\partial E}{\partial R^1_x}, \frac{\partial E}{\partial R^1_y}, \frac{\partial E}{\partial R^1_z}, \frac{\partial E}{\partial R^2_x}, \frac{\partial E}{\partial R^2_y}, \frac{\partial E}{\partial R^2_z}, ...\]

Hessian#

heissianvalueでは入力した原子核座標

\[R^1_x, R^1_y, R^1_z, R^2_x, R^2_y, R^2_z, ...\]

に対して、エネルギーの二階微分値を下記の行列に対応する二重リストとして出力します。

\[\begin{split}\begin{pmatrix} \frac{\partial^2 E}{\partial R^1_x \partial R^1_x} & \frac{\partial^2 E}{\partial R^1_x \partial R^1_y} & \frac{\partial^2 E}{\partial R^1_x \partial R^1_z} & \frac{\partial^2 E}{\partial R^1_x \partial R^2_x} & \frac{\partial^2 E}{\partial R^1_x \partial R^2_y} & \frac{\partial^2 E}{\partial R^1_x \partial R^2_z} & \ldots \\ \frac{\partial^2 E}{\partial R^1_y \partial R^1_x} & \frac{\partial^2 E}{\partial R^1_y \partial R^1_y} & \frac{\partial^2 E}{\partial R^1_y \partial R^1_z} & \frac{\partial^2 E}{\partial R^1_y \partial R^2_x} & \frac{\partial^2 E}{\partial R^1_y \partial R^2_y} & \frac{\partial^2 E}{\partial R^1_y \partial R^2_z} & \ldots \\ \frac{\partial^2 E}{\partial R^1_z \partial R^1_x} & \frac{\partial^2 E}{\partial R^1_z \partial R^1_y} & \frac{\partial^2 E}{\partial R^1_z \partial R^1_z} & \frac{\partial^2 E}{\partial R^1_z \partial R^2_x} & \frac{\partial^2 E}{\partial R^1_z \partial R^2_y} & \frac{\partial^2 E}{\partial R^1_z \partial R^2_z} & \ldots \\ \frac{\partial^2 E}{\partial R^2_x \partial R^1_x} & \frac{\partial^2 E}{\partial R^2_x \partial R^1_y} & \frac{\partial^2 E}{\partial R^2_x \partial R^1_z} & \frac{\partial^2 E}{\partial R^2_x \partial R^2_x} & \frac{\partial^2 E}{\partial R^2_x \partial R^2_y} & \frac{\partial^2 E}{\partial R^2_x \partial R^2_z} & \ldots \\ \frac{\partial^2 E}{\partial R^2_y \partial R^1_x} & \frac{\partial^2 E}{\partial R^2_y \partial R^1_y} & \frac{\partial^2 E}{\partial R^2_y \partial R^1_z} & \frac{\partial^2 E}{\partial R^2_y \partial R^2_x} & \frac{\partial^2 E}{\partial R^2_y \partial R^2_y} & \frac{\partial^2 E}{\partial R^2_y \partial R^2_z} & \ldots \\ \frac{\partial^2 E}{\partial R^2_z \partial R^1_x} & \frac{\partial^2 E}{\partial R^2_z \partial R^1_y} & \frac{\partial^2 E}{\partial R^2_z \partial R^1_z} & \frac{\partial^2 E}{\partial R^2_z \partial R^2_x} & \frac{\partial^2 E}{\partial R^2_z \partial R^2_y} & \frac{\partial^2 E}{\partial R^2_z \partial R^2_z} & \ldots \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots \\ \end{pmatrix}\end{split}\]

Vibrational Analysis#

vibrational_analysisvalue では振動モードの各固有振動数 frequency (1/cm)と、それに対応する振動モード normal_mode を出力します。振動モードのベクトル成分は

\[R^1_x, R^1_y, R^1_z, R^2_x, R^2_y, R^2_z, ...\]

に対応しています。

出力例#

"evaluated_properties": [
{
  "energy": {
    "values": [
      {"state": 0, "value": -1.1362360604901143},
      {"state": 1, "value": -0.47828919430555683}
    ],
    "metadata": {
      "elapsed_time": 0.000997585000000134
    }
  },
},
{
  "num_electrons": {
    "values": [
      {"state": 0, "value": 2.0},
      {"state": 1, "value": 2.0},
    ],
    "metadata": {
      "elapsed_time": 0.000009585000000134
    }
  },
},
{
  "multiplicity": {
    "values": [
      {"state": 0, "value": 1.0},
      {"state": 1, "value": 3.0},
    ],
    "metadata": {
      "elapsed_time": 0.000007585000000134
    }
  },
},
{
  "sz_number": {"values": [
      {"state": 0, "value": 0.0},
      {"state": 1, "value": 0.0},
    ],
    "metadata": {
      "elapsed_time": 0.000005578000000134
    }
  },
},
{
  "dipole_moment": {
    "values": [{"state": 0, "value": [0.0, 0.0, -1.1143463019003264e-07]}],
    "metadata": {
      "elapsed_time": 0.0004000680000000312
    }
  }
},
{
  "transition_dipole_moment": {
    "values": [
      {
        "state_pair": [0, 1],
        "value": [
            {"real": 0.0, "imag": 0.0},
            {"real": 0.0, "imag": 0.0},
            {"real": 1.683007710279183e-07, "imag": 0.0}
        ]
      }
    ],
    "metadata": {
      "elapsed_time": 0.0022338280000000488
    }
  }
},
{
  "gradient": {
    "values": [
      {
        "state": 0,
        "value": [0.0, 0.0, 0.03522682150310957, 0.0, 0.0, -0.035226821562505006],
        "type": "HAMILTONIAN_NUMERICAL"
      }
    ],
    "metadata": {
      "elapsed_time": 0.673054386
    }
  }
},
{
  "hessian": {
    "values": [
      {
        "value": [
          [-0.02609510201324114, 0.0, 0.0, 0.02671120741221516, 0.0, 0.0],
          [0.0, -0.02609510201324114, 0.0, 0.0, 0.026711207412215148, 0.0],
          [0.0, 0.0, 0.5951536730703917, 0.0, 0.0, -0.5952415631144654],
          [0.02671120741221516, 0.0, 0.0, -0.02609510201324114, 0.0, 0.0],
          [0.0, 0.026711207412215148, 0.0, 0.0, -0.02609510201324114,0.0],
          [0.0, 0.0, -0.5952415631470315, 0.0, 0.0, 0.5950908117050806]
        ],
        "state": 0
      }
    ],
    "metadata": {
      "elapsed_time": 5.235920265000001
    }
   }
  },
  {
    "vibrational_analysis": {
      "values": {
        "state": 0,
        "value": [
          {
            "frequency": {
            "imag": 8.323188334444037,
            "real": 0.0
            },
            "normal_mode": [
              0.37024605639968616,
              -0.5991240303578433,
              0.0,
              0.37024605639968616,
              -0.5991240303578433,
              0.0,
            ]
          },{
            ...
          },
        ],
        "metadata": {
          "elapsed_time": 4.942824509999998
        }
      },
      ...
    },
}