1. 程式人生 > >最優化第二講—一維搜尋演算法(二分法、等區間法)

最優化第二講—一維搜尋演算法(二分法、等區間法)

本講主要列一下單峰搜尋演算法

問題:f(x)在區間[a,b]內只有一個極小值點,要找到這個極小值點或者這個極小值點所在的區間[x1,x2],其中[x1, x2]要遠遠小於[a, b]

方法:

一個通用的結論

要縮小區間,必須計算兩個點,如果所示,必須計算x1和x2,然後對函式值進行比較。如果f(x1)小於f(x2),那麼就說明極小值點一定在a到x2之間,反之也是這個思路。途中後面的兩個式子將在以後的方法中反覆使用。注意這了僅僅指的是單峰函式

具體的方法基本都是基於以上的思路,不同的是怎麼確定x1和x2

具體的方法有

1. 二分搜尋法(dichotomous search)

步驟一:首先找到[a,b]的中間點c,c=(a+b)/2,這就是“二分”的意思

步驟二:事先確定一個值sigma,在c左右各找二分之sigma,產生x1、x2。這個就是通用結論中的x1、x2

步驟三:按照通用結論中的方法來做

步驟四:迴圈確定區間[x1, x2],直到滿足要求為止

查詢速度:新區間的長度L(n+1),上一個區間的長度L(n),他們的關係是:L(n+1) = L(n)/2 + sigma/2

這個方法其實只是確定了x1和x2怎麼找。

計算量:需要計算三個點

缺點:一是需要預先指定sigma,指定不好會有問題。二是得到x1、x2需要計算三個點

2. 等分割槽間搜尋(equal-interval search)

三點等分(也就是區間四等分)

演算法跟上面的基本一致,下面通過一個計算題描述一下

第一步:根據題目要求,區間在[0, 1]之間

第二步:將區間三等分,得到三個點,x1、x2、x3

第三步:計算x1、x2、x3對應的函式值,比較大小,這個題目比較特殊,x2、x3點的函式值是一樣的,所以如果認為x2是最小點,那麼確定的函式區間為[0.25, 0.75],如果認為x3是最小點,那麼選取的區間是[0.5, 1]。區間縮小為原先的1/2

查詢速度:L(n+1) = L(n)/2

計算量:第一輪需要計算三個點的值,以後只需要計算兩個點的值

相關推薦

最優化第二搜尋演算法二分區間

本講主要列一下單峰搜尋演算法 問題:f(x)在區間[a,b]內只有一個極小值點,要找到這個極小值點或者這個極小值點所在的區間[x1,x2],其中[x1, x2]要遠遠小於[a, b] 方法: 一個通用的結論 要縮小區間,必須計算兩個點,如果所示,必須計算x1和x2,然後對

把幾個降演算法FA PCA SVD ICA LPP LDA 歸納一下

因子分析(FA) 因子分析其實就是認為高維樣本點實際上是由低維樣本點經過高斯分佈、線性變換、誤差擾動生成的,因此高維資料可以使用低維來表示(本質上就是一種降維演算法)。 因子分析(factor analysis)是一種資料簡化的技術。它通過研究眾多變數之間的

《資料結構與演算法》之排序演算法插入排序希爾排序

3、插入排序 插入排序的基本操作就是將一個數據插入到已經排好序的有序資料中,從而得到一個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為O(n^2),是穩定的排序方法。插入演算法把要排序的陣列分成兩部分:第一部分包含了這個陣列的所有元素,但將最後一個元素除外(讓陣列多一個空間才

HDU 4614 Vases and Flowers 二分查詢+線段樹區間更新

  Alice is so popular that she can receive many flowers everyday. She has N vases numbered from 0 to N-1. When she receive some flowers

小白最優化學習 演算法學習 不精確搜尋方法

一、什麼是不精確一維搜尋方法 一維搜尋方法是 求函式的最小值,來得到最優步長,不精確一維搜尋方法,即保證目標函式在每次迭代有滿意的下降量的方法。到一次滿意的水平,就是可接受步長。 二、幾個不精確一維搜尋方法的準則  引用地址 line search(一維搜尋,或線搜尋)

搜尋方法/黃金分割附matlab程式碼

一維搜尋方法中的黃金分割法(附matlab程式碼) 一維搜尋方法:一維搜尋,又稱一維優化,是指求解一維目標函式 f(X) 最優解的過程,分為試探法和插值法。 黃金分割法:屬於一維搜尋方法中的試探法,適用於[a,b]區間上的任何單谷函式求極小值問題。 證明r=0.

最優化-精確搜尋

試探法 精確一維搜尋就是通過迭代取減少搜尋區間 對於搜尋區間[a, b] 在這個區間中找連個互不相同的試探點p1 p2獲取f(p1), f(p2), 設p1 < p2 若f(p1) < f(p2)   則丟棄區間 [p2, b] 若f(p1) >= f(p2)

分治演算法歸併排序點對HDU-1007

分治演算法的基本思想是將一個規模為N的問題分解為K個規模較小的子問題,這些子問題相互獨立且與原問題性質相同。求出子問題的解,就可得到原問題的解。 分治法解題的一般步驟: 分解,將要解決的問題劃分成若干規模較小的同類問題; 求解,當子問題劃分得足夠小時,

Machine Learning第二[多變數線性迴歸] --多變數線性迴歸

內容來自Andrew老師課程Machine Learning的第二章內容的Multivariate Linear Regression部分。 一、Multiple Features(多特徵) 1、名詞 (1)mm:樣本的數量,上例中m=4 (2)nn

『嗨威說』演算法設計與分析 - 演算法第二章上機實踐報告二分查詢 / 改寫二分搜尋演算法 / 兩個有序序列的中位數

本文索引目錄: 一、PTA實驗報告題1 : 二分查詢   1.1  實踐題目   1.2  問題描述   1.3  演算法描述   1.4  演算法時間及空間複雜度分析 二、PTA實驗報告題2 : 改寫二分搜尋演算法   2.1  實踐題目   2.2  問題描述  

第7章第1數組

min display %d mar image 技術分享 分享 lock images main() { int a[10],i,max,min; float ave=0; for(i=0;i<N;i++) sc

Python初學者第二天 函數4-內置函數

獲取幫助 整除 集合 進制 bubuko min exec oct color 21day 內置函數: 1、abs()絕對值函數 2、dict()創建一個字典 3、help()獲取幫助信息 4、min()從一個列表中取出最小的數 5、max()從一個列表中取出最大

繪制二障礙柵格地圖的種方法1局部地圖的繪制

tro 註意 應該 net 部分 size https 方便 領域 博客轉載自:https://blog.csdn.net/zhubaohua_bupt/article/details/72923373 局部地圖的繪制 二維占據柵格地圖(柵格地圖)廣泛應用於移動機器人導航領

python輸入數組輸入以空格為間隔的一行

pytho 輸入 strip() 返回 urn 大寫 print 作用 tuple 兩種方式(在python3中驗證ok,python2中語法錯誤) #方法1 num = [int(n) for n in input().split()] #方法二 num = list

實現將陣列A下標從1開始中的元素迴圈右移k位,要求只用一個元素大小的輔助空間

#include<stdio.h>main(){ int n,arrary[50],k,temp; printf("請輸入陣列元素個數:\n"); scanf("%d",&n); for(int i=1;i<=n;i++) scanf

斯坦福大學-自然語言處理入門 筆記 第二課 問答系統2

一、問答系統中的總結(summarization) 目標:產生一個摘要文字包含那些對使用者重要和相關的資訊 總結的應用領域:任何文件的摘要和大綱,郵件摘要等等 根據總結的內容,我們可以把總結分為兩類: 單文件總結:給出一個單一文件的摘要、大綱、標題

【轉載】黃金比例搜尋演算法Golden Section Search的實現

出處: https://www.codelast.com/%E5%8E%9F%E5%88%9B-%E9%BB%84%E9%87%91%E6%AF%94%E4%BE%8B%E6%90%9C%E7%B4%A2%E7%AE%97%E6%B3%95%EF%BC%88gold   黃金比

演算法導論 第十章:散列表 筆記直接定址表散列表通過連結解決碰撞雜湊函式開放定址完全雜湊

前面討論的各種資料結構中,記錄在各種結構中的相對位置是隨機的,和在記錄的關鍵字之間不存在有確定的關係,因此在查詢記錄是需要進行一系列和關鍵字的比較。而理想的情況是不希望進行任何的比較,一次存取便能得到所查記錄。那就必須在記錄的儲存位置和它的關鍵字之間建立一種確定的關係f,使每個關鍵字和結構中有一

資料結構——圖3——深度優先搜尋演算法DFS思想

圖的遍歷 圖由頂點及其邊組成,圖的遍歷主要分為兩種: 遍歷所有頂點 遍歷所有邊 我們只討論第一種情況,即不重複的列出所有的頂點,主要有兩種策略:深度優先搜尋(DFS),廣度優先搜尋(BFS) 為了使深度和廣度優先搜尋的實現演算法的機制更容易理解,假設提

zxing.net碼UPC A的簡介實現與解碼

一、簡介 UPC(Universal Product Code)碼是最早大規模應用的條碼,其特性是一種長度固定、連續性的條  碼,目前主要在美國和加拿大使用,由於其應用範圍廣泛,故又被稱萬用條碼。 UPC碼僅可用來表示數字,故其字碼集為數字0~9。UPC碼共有A、B、C、D、E等五種版本。 UP