• 02(e)多元无约束优化问题- 梯度的两种求解方法以及有约束转化为无约束问题


    2.1 求解梯度的两种方法

    以$f(x,y)={{x}^{2}}+{{y}^{3}}$为例,很容易得到:

    $ abla f=left[ egin{aligned}& frac{partial f}{partial x} \& frac{partial f}{partial y} \end{aligned} ight]=left[ egin{aligned}& 2x \& 3{{y}^{2}} \end{aligned} ight]$

    这样就很容易求得某一点的梯度。

    但是如果梯度的表达式很难写出来,或者根本就写不出来的时候,尤其定义去求梯度可是可以的:

    $ abla f=left[ egin{aligned}& frac{partial f}{partial x} \& frac{partial f}{partial y} \end{aligned} ight]=left[ egin{aligned}& frac{f(x+Delta x,y)-f(x,y)}{Delta x} \& frac{f(x,y+Delta y)-f(x,y)}{Delta y} \end{aligned} ight]$

    在实际算的过程中这里的$Delta x$,$Delta y$也不用取太小一般$1 imes {{10}^{-7}}$左右就可以了。

    2.2 某些有约束优化问题可以转化为无约束优化问题:

    [egin{aligned}& operatorname{minimize} ext{  }f({{x}_{1}},{{x}_{2}}) ext{         }operatorname{minimize} ext{  }f({{x}_{1}},{{x}_{2}}) \& ext{               }{{x}_{1}}>0 ext{      }Rightarrow ext{                   }{{x}_{1}}={{{hat{x}}}^{2}}_{1} \& ext{               }{{x}_{2}}le -30 ext{                         }- ext{30}-{{x}_{2}} ext{=}{{{hat{x}}}^{2}}_{2} ext{ }Rightarrow - ext{30}-{{{hat{x}}}^{2}}_{2} ext{=}{{x}_{2}} \end{aligned}]

    把上式中左边的不等式优化,转化为右边的等式优化,再把等式代入目标函数中,形成了式(24)这样的无约束优化问题:

    [operatorname{minimize} ext{  }f({{hat{x}}_{1}},{{hat{x}}_{2}})]

    通过优化求解得到满足上式的次优解$left( {{{{hat{x}}'}}_{1}},{{{{hat{x}}'}}_{2}} ight)$,则原优化问题的解可以写为:

    [egin{aligned}& ext{ }{{x}_{1}}={{left( {{{{hat{x}}'}}_{ ext{1}}} ight)}^{ ext{2}}} \& {{x}_{2}} ext{=}- ext{30}-{{left( {{{{hat{x}}'}}_{2}} ight)}^{ ext{2}}} \end{aligned}]

    这样的做法会增加目标函数的非线性度,但是很好的把有约束问题转变为无约束问题。下面这个带约束的优化问题同样可以用上述方式处理:

    [egin{aligned}& operatorname{minimize} ext{  }f({{x}_{1}},{{x}_{2}}) ext{         }operatorname{minimize} ext{  }f({{x}_{1}},{{x}_{2}}) \ & ext{               3}le {{x}_{1}}le 12 ext{      }Rightarrow ext{                   } \end{aligned}]             

    这里的转化,我想着用Sigmoid函数(logistic函数):

    $fleft( x ight)=frac{1}{1+{{e}^{-x}}}$                         

    它的图像如下:

    这样就可以用下面这个式子代替上述对${{x}_{1}}$的约束:

    ${{x}_{1}}=frac{9}{1+{{e}^{-hat{x}}}}+3$                    

    它的图像如下

     

     

  • 相关阅读:
    C# 压缩组件介绍与入门
    《Effective C#》快速笔记(六)-
    原生JS实现简单富文本编辑器
    oracle 给表字段把VARCHAR2 换成 CLOB
    java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
    Idea中Module is not specified解决办法
    JS用正则替换特殊字符
    对List<Map>里的map的某个属性重复的值进行处理的方法
    ……
    使用原生js 实现点击消失效果
  • 原文地址:https://www.cnblogs.com/duyiExplorer/p/11177340.html
Copyright © 2020-2023  润新知