class QPanda::QAOA¶
Overview¶
Quantum Approximate Optimization Algorithm. More…
#include <QAOA.h> class QAOA { public: // construction QAOA(OptimizerType optimizer = OptimizerType::NELDER_MEAD); QAOA(const std::string& optimizer); QAOA(QAOA&); // methods QAOA& operator = (QAOA&); void setHamiltonian(const PauliOperator& pauli); void setDeltaT(double delta_t); void setStep(size_t step); size_t step(); void setShots(size_t shots); void regiestUserDefinedFunc(const QUserDefinedFunc& func); void setDefaultOptimizePara(const vector_d& para); void enableLog(bool enabled, std::string filename = ""); AbstractOptimizer* getOptimizer(); bool exec(); QOptimizationResult getOptimizerResult(); bool scan2Para(const QScanPara& data); };
Detailed Documentation¶
Quantum Approximate Optimization Algorithm.
Methods¶
void setHamiltonian(const PauliOperator& pauli)
set Hamiltonian
Parameters:
QPauliMap& |
pauli map |
void setDeltaT(double delta_t)
set val of Delta T
Parameters:
double |
the val of Delta T |
void setStep(size_t step)
set step
Parameters:
size_t |
the val of step |
size_t step()
get step
Returns:
return the val of step
void setShots(size_t shots)
set Shots val
Parameters:
size_t |
the val of Shots |
void regiestUserDefinedFunc(const QUserDefinedFunc& func)
regiest user defined functional
Parameters:
QUserDefinedFunc& |
the user defined functional |
void setDefaultOptimizePara(const vector_d& para)
set default optimize parameter
Parameters:
vector_d& |
the default optimize parameters |
void enableLog(bool enabled, std::string filename = "")
whether or not enable the log file
Parameters:
bool |
whether or not |
string |
filename log file name |
AbstractOptimizer* getOptimizer()
get optimizer object
Returns:
AbstractOptimizer* the optimizer object ptr
bool exec()
execute optimizer
Returns:
return true on success, or else return false
QOptimizationResult getOptimizerResult()
get optimizer result
Returns:
return QOptimizationResult
bool scan2Para(const QScanPara& data)
scan Para to file
Returns:
return true on success, or else return false