1. 程式人生 > >運籌學(1)-最速下降法

運籌學(1)-最速下降法

運籌學(1)
多維無約束優化演算法——梯度法之最速下降法

最近學習運籌學開始學習一些優化的演算法,之後的一系列部落格我會分享一些我學到的運籌學方法。這次我總結了我學習的最速下降法。

1. 原理
最速下降法是一個優化演算法,用於求解多維無約束問題。最速下降法由於只考慮到當前下降最快而不是全域性,所以最速下降法又叫做瞎子爬山法。最速下降法屬於求解非線性規劃問題的迭代法。它的關鍵是得到每步迭代的方向 p(k) 和步長 t

(1)搜尋方向 p(k) 的確定
方向p為單位向量, ||p||=1 ,從 x(k) 按方向 p ,步長 t 進行搜尋得到下一點 x(k+1)=x(k)+tp 。在這裡我們用到泰勒展開式得:

f(x(k)+tp)=f(x(k))+tΔf(x(k))Tp+o(t)
可以得到在x(k)處的變化率:
limt0f(x(k)+tp)f(x(k))t=limt0tΔf(x(k))Tp+o(t)t=Δf(x(k))Tp
從上式可以得到要使在 x(k) 下降速度最快就要使在 x(k) 的變化率最小,所以就要使 Δf(x(k))Tp 最小。然而 Δf(x(k))Tp=||Δf(x(k))||||p||cosθ=||Δf(x(k))||cosθ . 要使其最小就要使 cosθ=1 .可以得到 p=f(x(k))||Δf(x(k))|| .
從上述就可以確定最速下降法的搜尋方向為 p
=f(x(k))
.

(2)求解搜尋步長 t
最速下降法所採取的搜尋步長的策略有兩種:
一種是最優步長搜尋法,即 f(x(k)+tp)=minf(x(k)+tp) .通過求最小值求得步長。

另一種是近似最佳步長

f(xktΔf(x(k)))f(x(k))tΔf(x(k))TΔf(x(k))+12tΔf(x(k))TH(x(k))

相關推薦

運籌學1-下降

運籌學(1) 多維無約束優化演算法——梯度法之最速下降法 最近學習運籌學開始學習一些優化的演算法,之後的一系列部落格我會分享一些我學到的運籌學方法。這次我總結了我學習的最速下降法。 1. 原理 最速下降法是一個優化演算法,用於求解多維無約束問題。最速下降

最優化學習筆記下降

tex track enter water pos 最優 content 分享 clas 最優化學習筆記(三)最速下降法

使用非精確線搜尋Armijo演算法確定步長的下降MATLAB

Armijo演算法實現: function mk = armijo( fun, xk, rho, sigma, gk ) assert( rho > 0 && rho < 1 ); assert( sigma > 0 &&

短路算 -- Floyd算

無法 著名 jks href cat mda floyd算法 第七章 blank 轉自:http://blog.51cto.com/ahalei/1383613 暑假,小哼準備去一些城市旅遊。有些城市之間有公路,有些城市之間則沒有,如下圖。為了節省經費以

1——Java冒泡算

info 算法 一個 stat bubble 比較 接下來 mage body Java冒泡算法算是最常見的算法之一了。那麽什麽是冒泡算法呢?如下圖所示(圖片來自網絡): 其實可以看到,第一遍的遍歷過程中,首先比較第一對數字,比較交換完成後第二個數字一定是比較大的,接下來比

快看Sample代碼,學Swift語言2-基礎介紹 快看Sample代碼,學Swift語言1-語法

ora ati 自動 一起 系統 welcome 布爾類型 效率 八進制 快看Sample代碼,速學Swift語言(2)-基礎介紹 Swift語言是一個新的編程語言,用於iOS, macOS, watchOS, 和 tvOS的開發,不過Swift很多部分內容,我們可以從

出海糗事1響應篇

需要 bec 我們 -o ces 多多支持 col 租用 系列 相信大家出海購買服務器時碰上很多壁(沒有) 好不容易用英語租用了服務器 隔天發現服務器崩了!? 咋辦?×××商唄 餵!不對,Hello,我的服務器好像崩了 對不起,這個你要提交Ticket給我們IT部門哦

Linux驅動開發1——簡Linux驅動

#include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); MODULE_AUTHOR("TOPEET"); static int hello_init(v

網際網路出海糗事1響應篇

出海糗事(1)極速響應篇   相信大家出海購買伺服器時碰上很多壁(沒有)   好不容易用英語租用了伺服器   隔天發現伺服器崩了!? 咋辦?找服務商唄 喂!不對,Hello,我的伺服器好像崩了   對不

C++ Linux伺服器開發1——極入門必備命令

1.shell簡介 shell是運維和系統管理員操作Linux系統的首選,是一個命令直譯器 命令列---------------->解釋執行 命令列相關:        行首“$”或"#“---------------

吳恩達深度學習筆記8-重點-梯度下降Gradient Descent

梯度下降法(Gradient Descent)(重點) 梯度下降法可以做什麼? 在你測試集上,通過最小化代價函式(成本函式) J(w,b) 來訓練的引數w和b , 如圖,在第二行給出和之前一樣的邏輯迴歸演算法的代價函式(成本函式)(上一篇文章已講過) 梯度下降法的形象化

網路流1-------大流

一.網路流最大流問題和基本概念 1.網路流基本概念 (1)名詞解釋 源點:流量的源頭,只有流出去的點 匯點:流量的匯聚點,只有流進來的點 流量:一條邊上流過的實際流量 容量:一條邊上可供流過的最大流量 殘量:一條邊上的容量-當前流量,剩下可流的最大流 (2)網路流概念

steepest descent for Euclidean norm 下降中二次範數的下降方向

在無約束優化中,設f(x)f(x)f(x)是凸函式。可以通過∂f(x)=0\partial f(x)=0∂f(x)=0求解,如果不能直接得到解析解,可以通過構造一個序列,x0,x1,...,xkx_0,x_1,...,x_kx0​,x1​,...,xk​,使得f

機器學習練習記錄1:偽逆、勢函式、基於二次準則的H-K函式、感知器

勢函式的構造是人工勢場方法中的關鍵問題,典型的勢函式構造方法:P(θ)=f{d(θ,θ0),[dR(θ),O],dT}(1),式中 θ,θ0——機器人當前位姿與目標位姿向量;d(θ,θ0)——θ與θ0間的某種廣義距離函式;dR(θ),O——當前位姿下機器人與障礙物間的最小距離;dT——給定的門限值;P(θ)

[最優化演算法]下降求解無約束最優化問題

1. 問題描述 最優化問題的一般形式如下所示: 對於f:D⊆Rn→R1,求解 minx∈Ωf(x)s.t.{s(x)⩾0h(x)=0 其中f(x)稱為優化目標函式,s.t.稱為約束條件。對於無約束最優化,沒有約束條件要求,即在全部定義域內尋找目標函式最優

梯度下降下降的細微差別

1. 前言: 細微之處,彰顯本質;不求甚解,難以理解。 一直以來,我都認為,梯度下降法就是最速下降法,反之亦然,老師是這麼叫的,百度百科上是這麼寫的,wiki百科也是這麼說的,這麼說,必然會導致大家認為,梯度的反方向就是下降最快的方向,然而最近在讀Steph

三個角度看SVM1——大間隔分類器

“橫看成嶺側成峰,遠近高低各不同。” 支援向量機(Support Vector Machine, SVM)作為一個被廣泛應用的有監督機器學習演算法,網路上對它的介紹數不勝數,其中更有不少好文佳作。本文與它們的區別在於:並不著重於“教程式”地對SVM進行系統性介

動態規劃練習題1小通行費

【題目描述】一個商人穿過一個N×N的正方形的網格,去參加一個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在(2N-1)個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。這個商人期望在規定時間內用最

下降 and 共軛梯度

註明:程式中呼叫的函式jintuifa.m golddiv.m我在之前的筆記中已貼出 最速下降法 %最速下降法求解f = 1/2*x1*x1+9/2*x2*x2的最小值,起始點為x0=[9 1] %演算法根據最優化方法(天津大學出版社)97頁演算法3.2.1編寫 %v1.0

機器學習與高數:梯度Gradient與梯度下降Gradient Descent

一篇經典部落格: http://blog.csdn.net/walilk/article/details/50978864 1.導數定義:導數代表了在自變數變化趨於無窮小的時候,函式值的變化與自變數的變化的比值。幾何意義是這個點的切線。物理意義是該時刻的(瞬時)變化率。