popt.cost_functions.quadratic
1import numpy as np 2from popt.cost_functions.epf import epf 3 4 5def quadratic(state, *args, **kwargs): 6 r""" 7 Quadratic objective function 8 .. math:: 9 f(x) = ||x - b||^2_A 10 """ 11 12 r = kwargs.get('r', -1) 13 14 x = state[0]['vector'] 15 dim, ne = x.shape 16 A = 0.5*np.diag(np.ones(dim)) 17 b = 1.0*np.ones(dim) 18 f = np.zeros(ne) 19 for i in range(ne): 20 u = x[:, i] - b 21 f[i] = u.T@A@u 22 23 # check for contraints 24 if r >= 0: 25 c_eq = g(x[:, i]) 26 c_iq = h(x[:, i]) 27 f[i] += epf(r, c_eq=c_eq, c_iq=c_iq) 28 29 return f 30 31# Equality constraint saying that sum of x should be equal to dimention + 1 32def g(x): 33 return sum(x) - (x.size + 1) 34 35# Inequality constrint saying that x_1 should be equal or less than 0 36def h(x): 37 return -x[0]
def
quadratic(state, *args, **kwargs):
6def quadratic(state, *args, **kwargs): 7 r""" 8 Quadratic objective function 9 .. math:: 10 f(x) = ||x - b||^2_A 11 """ 12 13 r = kwargs.get('r', -1) 14 15 x = state[0]['vector'] 16 dim, ne = x.shape 17 A = 0.5*np.diag(np.ones(dim)) 18 b = 1.0*np.ones(dim) 19 f = np.zeros(ne) 20 for i in range(ne): 21 u = x[:, i] - b 22 f[i] = u.T@A@u 23 24 # check for contraints 25 if r >= 0: 26 c_eq = g(x[:, i]) 27 c_iq = h(x[:, i]) 28 f[i] += epf(r, c_eq=c_eq, c_iq=c_iq) 29 30 return f
Quadratic objective function $$f(x) = ||x - b||^2_A$$
def
g(x):
def
h(x):