日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最优化-直接方法

發布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最优化-直接方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

坐標輪換法

  對于n維最優化問題

  有初始點x1? ?沿著n個方向(坐標軸的方向)不斷做一維搜索? 得到xn+1

  對于x1沿著 xn+1?- x1的方向做一維搜索得到 xn+2

  xi+1 = xi +?α*di

  當xin+1滿足某一終止準則時,停止算法,否則繼續迭代下去

?

正交程度和共軛程度

正交程度

  對于兩個方向向量u1,u2

  我們以這兩個方向向量單位向量的平行四邊形面積作為正交程度

  對于二維向量?δ = (x1 * y2 - y1*x2)??δ = || u1?× u2||

  對于n維向量其中的d需要是已經單位化的向量

  δ = | det(d1,d2,d3,,,,,dn) |

  det表示行列式的值

?

共軛程度

  q = G1/2?* d

  q的正交程度即為d關于G的共軛程度

?

正交程度和共軛程度都是越接近與1越好

?

Powell直接方法

對于n維函數f(x)?

取初始點x1和n個正交方向 di? 進行一維搜索

得到點列xi? ??xi+1?= xi?+?α*di

?

求出進行一維搜索時,函數值下降的最大的位置xm

f(xm) - f(xm+1)最大

記這個搜索方向為U

?

求解一維搜索問題

u = xn+1?- x1

xn+2?= x1 +?α*μ? 記步長為alaph

若 ||?xn+2?- x1 || <?ε 終止算法

若最后一次搜索的步長?alaph <(? (f(x1) - f(xn+2)) / u )?1/2

則用最后的搜索方向替換第m次的搜索方向

具體替換方式,用前移的方式去填充空格,然后將最后的方向放在末尾

?

單純形法

單純形法有幾個基本步驟

對于n維函數f(x),單純形有n+1個節點

記函數值最大的節點為xmax

函數值最小的節點為xmin

反射:

  對于已有的一個單純形

  找出單純形的節點中函數值最大的那一個(xmax,? f(xmax))

  剩下的節點求均值得到重心u

  xmax?+ xnew = 2*u

  xnew即為反射之后的點,將xnew代替xmax即可得到反射之后的單純形

  

  當然u也不是非要作為中點,xnew = u +?α*(u - xmax)

擴大:

  得到反射點之后,若f(xnew)?< f(xmin)

  則說明這個方向很有可能是下降方向,那就擴大看看

  xnew2= u +?γ*(xnew - u) 一般來說γ = 2

  其實就是將反射的方向擴大了一倍

  若f(xnew2) < f(xnew)

  那么用xnew2代替xnew就好

?

收縮:

  考慮次大值f(x2nd)

  若f(xnew) < f(x2nd)可以進行下一步

  若f(xnew) >= f(x2nd) 那么下一步反射時會出現循環(因為f(xnew)仍是最大值,再反射的話會變成xmax)

  這個時候就要用到收縮

  找到xnew和xmax的最小值X’

  xnew3?= u +?? * (X‘? - u)

  若f(xnew3) < f(X')

  然后用xnew3替換xnew

  一般來說?? = 1//2

  這就是一個取中點的操作嘛

  否則進行縮邊

?

縮邊:

  若f(xnew3) >= f(X')

  那么就進行縮邊將每個點往xmax的方向移動

  xi = xmax?+??*(xi - xmax)

?

當函數的離差平方和< e時終止算法

?

可以看到單純型法就是如下幾步

取初始點x0 步長alaph

獲取n個點 xi = x0 + ei?*alaph

?

先反射

  若反射點的值 < 最小值則進行擴大,取擴大點和反射點的最小值來替換最大值----->結束

?

  若反射點是反射之后單純形的最大值則進行收縮,就是取最大值和反射點的最小值,然后將其他點的均值和最小值作為端點,求他們的中點

  若這個中點不是替換之后單純形的最大值? ----->結束

  否則不對最大值進行替換,反而將單純形向最大值進行縮邊? ?----->結束

?

自己的一點理解:

  整個算法就是盡量讓單純形向值變小的方向移動

  先取試探最大值->均值方向是不是縮小方向

  然后看均值往兩端的方向是不是縮小方向

  若都不是,那么也就是說最大值點是一定程度上的最優點

  就將所有點往最大值點移動

?

  可以想象成一個多維空間中的超史萊姆,不斷地往最優點移動哈哈哈哈哈

  

?

轉載于:https://www.cnblogs.com/shensobaolibin/p/10201681.html

總結

以上是生活随笔為你收集整理的最优化-直接方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。