mindquantum.algorithm.qaia.LQA
- class mindquantum.algorithm.qaia.LQA(J, h=None, x=None, n_iter=1000, batch_size=1, gamma=0.1, dt=1.0, momentum=0.99)[source]
- Local quantum annealing algorithm. - Reference: Quadratic Unconstrained Binary Optimization via Quantum-Inspired Annealing. - Note - For memory efficiency, the input array 'x' is not copied and will be modified in-place during optimization. If you need to preserve the original data, please pass a copy using x.copy(). - Parameters
- J (Union[numpy.array, scipy.sparse.spmatrix]) – The coupling matrix with shape (N x N). 
- h (numpy.array) – The external field with shape (N, ). 
- x (numpy.array) – The initialized spin value with shape (N x batch_size). Will be modified during optimization. If not provided ( - None), will be initialized as random values uniformly distributed in [-0.1, 0.1]. Default:- None.
- n_iter (int) – The number of iterations. Default: - 1000.
- batch_size (int) – The number of sampling. Default: - 1.
- dt (float) – The step size. Default: - 1.
- gamma (float) – The coupling strength. Default: - 0.1.
- momentum (float) – Momentum factor. Default: - 0.99.
 
 - Examples - >>> import numpy as np >>> from mindquantum.algorithm.qaia import LQA >>> J = np.array([[0, -1], [-1, 0]]) >>> solver = LQA(J, batch_size=5) >>> solver.update() >>> print(solver.calc_cut()) [1. 1. 1. 1. 1.] >>> print(solver.calc_energy()) [-1. -1. -1. -1. -1.]