File simulated_annealing.hpp

Defines

CONSTANT_1

A magic number! when estimating the diameter of the spectrahedron, sample 20 + sqrt(dimension) points to estimate it

Functions

template<typename _Spectrahedron, typename Point, typename _Settings>
double solve_sdp(_Spectrahedron &spectrahedron, Point const &objectiveFunction, _Settings const &settings, Point const &interiorPoint, Point &solution, bool verbose = false)

Simulated Annealing algorithm for a semidefinite program Minimize [ c^T x ], s.t. LMI(x) <= 0

Parameters:
  • spectrahedron[in] A spectrahedron described by a linear matrix inequality

  • objectiveFunction[in] The function we minimize

  • settings[in] Parameters of the algorithm

  • interiorPoint[in] An initial feasible solution to start the algorithm

  • solution[out] The vector minimizing the objective function

  • verbose[in] True to print messages. Default is false

Returns:

The best approximation to the optimal solution

template<class Point>
struct SimulatedAnnealingSettings
#include <simulated_annealing.hpp>

Holds parameters of the algorithm

Template Parameters:

Point – Point Type

Public Types

typedef Point::FT NT

The numeric type.

Public Functions

inline SimulatedAnnealingSettings(NT const error, int const walkLength = 1, int const maxNumSteps = -1, NT const k = 0.5)

Public Members

NT error

Desired accuracy (relative error)

int walkLength

The walk length of the HMC random walk.

int maxNumSteps

A bound to the number of steps; if negative it is unbounded.

NT k

Starting from an initial temperature, at each step it will decrease by a factor of [ 1 - 1 / (dimension^k) ]. Default is 0.5