# Solver#

This section is about setting up a variational optimization algorithm for finding the quantum state.

## Type#

You can choose from the following algorithms.

*VQE*[Per14][Details] (default)*SSVQE*[Nak19][Details]*MCVQE*[Par19][Details]*VQD*[Hig19, Jon19][Details]*PROPERTY_EVAL*

*PROPERTY_EVAL* does not perform variational calculations with VQE, but
only evaluates molecular properties. These eigensolver algorithms
support orbital optimization method [Miz20].

## Skip Parameter Optimization#

You can use this boolean option to skip parameter optimization.

## Orbital Optimization#

`type`

: Two types of orbital optimization methods, namely*STATE_AVERAGED*and*STATE_SPECIFIC*, can be selected. If*NONE*is chosen, eigensolver without orbital optimization is run.`weights`

: The weight of state-average can be specified as a list. If not given, equal weighting is applied.`conv_tol`

: Convergence energy threshold of OO-VQE calculation, used after every cycle of VQE parameter optimization and orbital optimization. Default is 1e-7.`conv_tol_grad`

: Convergence gradient threshold of OO-VQE calculation, used after every cycle of VQE parameter optimization and orbital optimization. Default is squared root of`conv_tol`

.`max_cycle_macro`

: Max number of macro iterations (cycles of a set of VQE parameter optimization and orbital optimization) in OO-VQE calculation. Default is 50.`max_cycle_micro`

: Max number of micro iterations (cycles for orbital optimization) in each macro iteration. Depending on systems, increasing this value might reduce the total macro iterations. Generally, 2 - 5 steps should be enough. Default is 3.`initial_oovqe_molecular_orbital`

: Initial guess of molecular orbital for orbital optimization.`mo_coeff`

: coefficients of the basis function for each molecular orbital (inner list: coefficients of the basis function for each molecular orbital, outer list: molecular orbitals).

## Notes#

You cannot use

*VQE*when excited states are to be solved.You cannot use

*MCVQE*for a system with a periodic boundary condition.You cannot use

`skip_parameter_optimization`

with*MCVQE*,`orbital_optimization`

.`orbital_optimization`

is avaliable only with molecules.The following types of chemical property are not available when

`type`

of`orbital_optimization`

is other than*NONE*:`dipole_moment`

`transition_dipole_moment`

`oscillator_strength`

`hessian`

`vibrational_analysis`

*HAMILTONIAN_NUMERICAL*`gradient`

is not available when`type`

of`orbital_optimization`

is other than*NONE*.

## References#

[Per14] “A variational eigenvalue solver on a quantum processor”, A. Peruzzo et. al., Nature Communications, 5:4213, (2014)

[Nak19] “Subspace-search variational quantum eigensolver for excited states”, K. M. Nakanishi, K. Mitarai, and K. Fujii, Phys. Rev. Research 1, 033062 (2019).

[Par19] “Quantum Computation of Electronic Transitions Using a Variational Quantum Eigensolver”, R. M. Parrish et al. “Quantum Computation of Electronic Transitions Using a Variational Quantum Eigensolver”, Phys. Rev. Lett. 122, 230401 (2019).

[Hig19] “Variational Quantum Computation of Excited States”, O. Higgott, D. Wang, and S. Brierley, Quantum 3, 156 (2019).

[Jon19] “Variational quantum algorithms for discovering Hamiltonian spectra”, T. Jones et al., Phys. Rev. A 99, 062304 (2019). .

[Miz20] “Orbital optimized unitary coupled cluster theory for quantum computer”, W. Mizukami et al., Phys. Rev. Research 2, 033421 (2020).

## Input example#

```
"solver": {
"type": "VQE"
}
```

```
"solver": {
"type": "VQD",
"skip_parameter_optimization": false,
"orbital_optimization": {
"type": "STATE_SPECIFIC",
"conv_tol": 1e-6,
"conv_tol_grad": 1e-3,
"max_cycle_macro": 50,
"max_cycle_micro": 3
},
"initial_oovqe_molecular_orbital":
"mo_coeff": [
[
0.5445586947820809,
1.2620659398031695
],
[
0.5445586947820809,
-1.2620659398031695
]
]
}
```