Loading [MathJax]/extensions/TeX/AMSsymbols.js
amino  1.0-beta2
Lightweight Robot Utility Library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
opt.h File Reference

General optimization routines. More...

Go to the source code of this file.

Typedefs

typedef struct aa_opt_cx * aa_opt_gmcreate_fun(size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
 Optimization context constructor from general matrix format.
 

Enumerations

enum  aa_opt_rel_type { AA_OPT_REL_EQ , AA_OPT_REL_LEQ , AA_OPT_REL_GEQ }
 Optimization constraint type. More...
 
enum  aa_opt_lp_solver { AA_OPT_LP_SOLVER_DEFAULT , AA_OPT_LP_SOLVER_LPSOLVE , AA_OPT_LP_SOLVER_GLPK , AA_OPT_LP_SOLVER_CLP }
 Available lp solver backends. More...
 
enum  aa_opt_direction { AA_OPT_MAXIMIZE , AA_OPT_MINIMIZE }
 Optimization direction. More...
 
enum  aa_opt_type { AA_OPT_CONTINUOUS , AA_OPT_BINARY , AA_OPT_INTEGER }
 Type of optiziation variable. More...
 

Functions

AA_API int aa_opt_solve (struct aa_opt_cx *cx, size_t n, double *x)
 Solve the optimization problem.
 
AA_API int aa_opt_destroy (struct aa_opt_cx *cx)
 Destroy the optimization context.
 
AA_API int aa_opt_set_direction (struct aa_opt_cx *cx, enum aa_opt_direction)
 Set the optimization direction.
 
AA_API int aa_opt_set_obj (struct aa_opt_cx *cx, size_t n, const double *c)
 Set the linear objective function.
 
AA_API int aa_opt_set_bnd (struct aa_opt_cx *cx, size_t n, const double *x_min, const double *x_max)
 Set the bounds on the optimization variables.
 
AA_API int aa_opt_set_cstr_gm (struct aa_opt_cx *cx, size_t m, size_t n, const double *A, size_t lda, const double *b_min, const double *b_max)
 Set the constraint matrix.
 
AA_API int aa_opt_set_quad_obj_crs (struct aa_opt_cx *cx, size_t n, const double *Q_values, int *Q_cols, int *Q_row_ptr)
 Set the quadratic objective function via compressed-row-storage format.
 
AA_API int aa_opt_set_type (struct aa_opt_cx *cx, size_t i, enum aa_opt_type type)
 Set the optimization variable type.
 
AA_API struct aa_opt_cx * aa_opt_gmcreate (enum aa_opt_lp_solver solver, size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
 Create an optimization context using named plugin.
 
AA_API struct aa_opt_cx * aa_opt_lpsolve_gmcreate (size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
 Solver-specific functions. More...
 
AA_API struct aa_opt_cx * aa_opt_clp_gmcreate (size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
 Create an optimization context for CLP.
 
AA_API struct aa_opt_cx * aa_opt_glpk_gmcreate (size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
 Create an optimization context for GLPK.
 
AA_API struct aa_opt_cx * aa_opt_lpsolve_crscreate (size_t m, size_t n, const double *A_values, int *A_cols, int *A_row_ptr, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
 Create an optimization context for LP-Solve.
 
AA_API struct aa_opt_cx * aa_opt_clp_crscreate (size_t m, size_t n, const double *A_values, int *A_cols, int *A_row_ptr, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
 Create an optimization context for CLP.
 
AA_API struct aa_opt_cx * aa_opt_glpk_crscreate (size_t m, size_t n, const double *A_values, int *A_cols, int *A_row_ptr, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
 Create an optimization context for GLPK.
 

Detailed Description

General optimization routines.

Definition in file opt.h.

Enumeration Type Documentation

◆ aa_opt_direction

Optimization direction.

Enumerator
AA_OPT_MAXIMIZE 

maximize objective function

AA_OPT_MINIMIZE 

minimize objective function

Definition at line 78 of file opt.h.

◆ aa_opt_lp_solver

Available lp solver backends.

Enumerator
AA_OPT_LP_SOLVER_DEFAULT 

A sane default.

AA_OPT_LP_SOLVER_LPSOLVE 

LPSolve.

AA_OPT_LP_SOLVER_GLPK 

GNU Linear Programming Kit.

AA_OPT_LP_SOLVER_CLP 

COIN-OR LP Solver.

Definition at line 67 of file opt.h.

◆ aa_opt_rel_type

Optimization constraint type.

Enumerator
AA_OPT_REL_EQ 

equality constraint

AA_OPT_REL_LEQ 

Less-than or equal constraint.

AA_OPT_REL_GEQ 

Greater-than or equal constraint.

Definition at line 56 of file opt.h.

◆ aa_opt_type

Type of optiziation variable.

Enumerator
AA_OPT_CONTINUOUS 

continuous (float) variable

AA_OPT_BINARY 

binary variable

AA_OPT_INTEGER 

integer variable

Definition at line 86 of file opt.h.

Function Documentation

◆ aa_opt_lpsolve_gmcreate()

AA_API struct aa_opt_cx* aa_opt_lpsolve_gmcreate ( size_t  m,
size_t  n,
const double *  A,
size_t  ldA,
const double *  b_lower,
const double *  b_upper,
const double *  c,
const double *  x_lower,
const double *  x_upper 
)

Solver-specific functions.

Create an optimization context for LP-Solve.