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):
33def g(x):
34	return sum(x) - (x.size + 1)
def h(x):
37def h(x):
38	return -x[0]