zoukankan      html  css  js  c++  java
  • 最优化算法确定迭代步长【线搜索技术】

    无约束问题最优化算法框架

    (step0:)

    输入优化函数,确定迭代起始点x0,容许误差 epsilon;

    (step1:)

    if 容许误差条件满足,终止迭代;输出当前x值;
    else 计算迭代方向dk;迭代步长 alpha_k; // dk必须满足收敛条件;关于迭代步长的计算,就是线搜索技术解决问题
        to step 2;
    

    (step2:)

    计算x_{k+1}=x_k+alpha_k*dk;
    to step 1;
    

    一、精确线搜索技术

    之前介绍的黄金分割法就是一种精确线搜索技术
    线搜索-黄金分割法

    二、非精确线搜索技术

    Armijo准则
    算法:
    (step0:)

    给定beta属于(0,1),sigma 属于(0,0.5),m=0;

    (step1:)

    对于不等式 f(x_k+betam*dk)<=f(x_k)+sigma*betamg_k^Tdk
    成立,alpha_k=beta^mk; stop;
    不成立,to step 2;

    (step2:)

    m=m+1;to step 1;

    精确搜索和非精确搜索比较

    1. 精确搜索所求(alpha) 使得(f(x_{k+1}))在搜索区间取得最小值,
      非精确搜索仅仅使得所求(alpha)满足收敛条件
    2. 非精确搜索计算量小的多

    参考资料

    《最优化方法及其Matlab程序设计》

    坚持
  • 相关阅读:
    HDU_2203_KMP入门
    HDU_1711_初识KMP算法
    过滤器基础
    HDU_1907_基础博弈nim游戏
    nim游戏解法(转)
    HDU_1517_博弈(巧妙规律)
    HDU_1850_nim游戏
    HDU_1847_基础博弈sg函数
    < 转>Java 反射机制浅析
    <转>单机版搭建Hadoop环境
  • 原文地址:https://www.cnblogs.com/liudianfengmang/p/13441207.html
Copyright © 2011-2022 走看看