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