算法函数_算法优化之内点法(障碍函数法)

内点法主要思想

1. 内点法在迭代中总是从内点出发,并保持在可行域内部搜索

2. 通过引入效用函数的方法将约束优化问题转换成无约束问题,再利用优化迭代过程不断地更新效用函数,以使得算法收敛。

内点法适用范围

只能处理不等式约束

内点法实现思路

例如:

  • 上连续的函数,
  • 将可行域记作
    = {
    }
  • 保持迭代点含于可行域内部的方法是定义障碍函数
  • 其中
    是连续函数,当点
    趋向可行域边界时,
    无穷大
  • 函数的两个重要的形式:
  • 是很小的正数,这样,当
    趋向边界时,函数
    无穷大;否则,由于
    很小,则函数
    的取值近似
    。因此,可通过求解下列问题得到
    的近似解:

由于

的存在,在可行域形成“围墙”,因此
的解
比含于可行域的内部
  • 仍是约束问题,但由于
    的阻挡作用是自动实现的,因此从计算的观点看,
    可当作无约束问题来处理

内点法计算步骤

  • 显然,
    取值越小,
    的最优解越接近
    的最优解。但是,如果
    太小,则将给
    的计算带来很大的困难
  • 因此,仍采取序列无约束极小化方法
    ,取一个严格单调递减且趋于零的罚因子(也叫障碍因子)数列{
    },对于每一个
    ,从内部出发,求解问题:

  1. 给定初始内点
    ,允许误差
    ,初始参数
    ,缩小系数
    ,令
  2. 为初始点,求解无约束问题

设其极小点为

3. 若

,则停止计算,得到点
;否则,令
,令
,返回步2

具体案例

例:

用解析法求解:(其实就是高数中的求偏导并令其等于零)

式可得,
; 由
式可得,
,故:

时,
,
就是原问题的最优解。

你可能感兴趣的:(算法函数)