Package minfx :: Module log_barrier_function
[hide private]
[frames] | no frames]

Module log_barrier_function

source code

Logarithmic barrier function optimization constraint algorithm.

This file is part of the minfx optimisation library.

Classes [hide private]
  Log_barrier_function
Functions [hide private]
 
log_barrier_function(func=None, dfunc=None, d2func=None, args=(), x0=None, min_options=(), A=None, b=None, epsilon0=0.01, scale_epsilon=0.01, func_tol=1e-25, grad_tol=None, maxiter=1000000.0, inner_maxiter=500, full_output=0, print_flag=0)
The logarithmic barrier augmented function.
source code
Variables [hide private]
  __package__ = 'minfx'

Imports: log, dot, float64, inf, outer, sqrt, zeros, match, print_iter, Min, Constraint_linear


Function Details [hide private]

log_barrier_function(func=None, dfunc=None, d2func=None, args=(), x0=None, min_options=(), A=None, b=None, epsilon0=0.01, scale_epsilon=0.01, func_tol=1e-25, grad_tol=None, maxiter=1000000.0, inner_maxiter=500, full_output=0, print_flag=0)

source code 

The logarithmic barrier augmented function.

From http://en.wikipedia.org/wiki/Barrier_function and http://bayen.eecs.berkeley.edu/bayen/?q=webfm_send/247. This is an augmented function, the algorithm is:

  • Given starting points x0s.
  • while 1:
    • Find an approximate minimiser xk of the target function value plus the logarithmic barrier function value.
    • Final convergence test.
    • Scale the penalty function scaling factor epsilon.
    • k = k + 1.

Linear constraints

These are defined as:

   A.x >= b

where:

  • A is an m*n matrix where the rows are the transposed vectors, ai, of length n. The elements of ai are the coefficients of the model parameters.
  • x is the vector of model parameters of dimension n.
  • b is the vector of scalars of dimension m.
  • m is the number of constraints.
  • n is the number of model parameters.

E.g. if 0 <= q <= 1, q >= 1 - 2r, and 0 <= r, then:

   | 1  0 |            |  0 |
   |      |            |    |
   |-1  0 |   | q |    | -1 |
   |      | . |   | >= |    |
   | 1  2 |   | r |    |  1 |
   |      |            |    |
   | 0  1 |            |  2 |

To use linear constraints both the matrix A and vector b need to be supplied.

Initial values

These are the default initial values:

   epsilon0 = 1e-2
   scale_epsilon = 1e-2