- 积分
- 29
- 注册时间
- 2004-5-29
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2005-7-22 15:50:29
|
显示全部楼层
来自 北京
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.
复制代码 |
|