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.

Construction

QAOA(OptimizerType optimizer = OptimizerType::NELDER_MEAD)

Constructor of ChemiQ.

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