求:关于序列二次规划的详细描述
大家有关于序列二次规划的详细描述的资料吗?或者在什么书上有?
Re:求:关于序列二次规划的详细描述
在isight的user reference里有描述,大致的算法介绍和流程都有的。优化算法书上也大都有对二次规划的讲解。
SQP Method - Short summary
Notation: vectors are written in bold, e.g. x represents the vector of design variables.
Optimization problem:
Min f(x)
Subject to:
h(x) = 0 (equality constraints)
g(x) £ 0 (inequality constraints)
Necessary condition for point x* to be a minimizer = KKT condition (Karush-Kuhn-Tucker condition):
Ñf* + lTÑh* + mTÑg = 0T
with
l ¹ 0
mTg = 0, m ³ 0
l and m are the Lagrange multipliers.
An inequality constraint can be inactive, in that case gj < 0, mj = 0.
If the inequality constraint is active, gj = 0, mj ¹ 0, and it can be handled as an equality constraint.
Sufficiency condition for point x* to be a minimizer: Hessian matrix (second derivative) should be positive definite: H > 0
SQP algorithm:
- Select starting point x0, initialize l0, initialize H, let k (iteration counter) = 0
- First gradient calculation
- Iterate while convergence criteria not met:
-if k ¹ 0, update Hessian matrix using the BFGS method
-Solve quadratic subproblem with linearized constraints following Newton’s method. This results in:
sk, the search direction
lk+1, the lagrange multipliers
-Minimize a merit function along sk, to determine a step length ?k
-Set xk+1 = xk + aksk
-Calculate gradient for xk+1 and check convergence (KKT condition)
-Let k = k+1
The merit function is the one proposed by Powell:
F(x,l,µ) = f(x) + Swi|hi| + Swj|min{0,-gj}|
wi and wj are the weights that are used to balance the infeasibilities. The values for the weights are taken as follows:
wi = |li| for k = 0 (first iteration)
wi,k = max{|li,k|,0.5(wi,k-1-1+|li,k|)} for k > 0
Similar formulas using mj are used for the weights for the inequalities.
Design variables are always normalized to the interval [-1,1] to give equal weight to different dynamic ranges.
Constraint values are always normalized by dividing by a range, which is |H-L| with H the high constraint value and L the low constraint value. If only one of both (L or H) is specified, the other is taken such that H = 1.2L if H > 0 and H = L/1.2 if H < 0.
The merit function is always a compromise between minimizing f(x) and satisfying the constraints, hence it is possible that a better point is found while constraints are not satisfied, because the total merit function is better. The merit function can be influenced by multiplying the objective function with a factor, which results in a bigger or smaller weight in the merit function.
Re:求:关于序列二次规划的详细描述
怎么贴出来这么多的鬼脸呢!Re:求:关于序列二次规划的详细描述
是不是( )是表情符?
页:
[1]