無約束優(yōu)化方法-直接方法(坐標(biāo)輪換法)

無約束最優(yōu)化方法的一般步驟可以總結(jié)如下:

  1. 選擇初始點(diǎn)\boldsymbol{x}_0,這一點(diǎn)越靠近局部極小點(diǎn)\boldsymbol{x}^*越好飘诗;
  2. 已取得某設(shè)計點(diǎn)\boldsymbol{x}_k与倡,選擇一個設(shè)計方向\boldsymbolemiw84y_k,沿此方向搜索昆稿,函數(shù)值需是下降的纺座,\boldsymbolk2qmga8_k是下降方向;
  3. \boldsymbol{x}_k出發(fā)溉潭,沿\boldsymbolows8s8o_k方向進(jìn)行搜索净响,確定步長因子\lambda_k,得到新的設(shè)計點(diǎn)\boldsymbol{x}_{k+1}喳瓣,\boldsymbol{x}_{k+1}=\boldsymbol{x}_k+\lambda_k\boldsymbolew2osoc_k并滿足f(\boldsymbol{x}_{k+1})<f(\boldsymbol{x}_k)馋贤,具有這種性質(zhì)的算法,稱為下降算法畏陕。\lambda_k可以由一維搜索方法來確定最優(yōu)步長因子配乓;
  4. 若新點(diǎn)\boldsymbol{x}_{k+1}滿足迭代計算終止條件,則停止迭代惠毁,\boldsymbol{x}_{k+1}作為\boldsymbol{x}^*犹芹,否則返回2步繼續(xù)迭代搜索。

可以看出無約束優(yōu)化算法的關(guān)鍵幾點(diǎn):初始值鞠绰,方向設(shè)計腰埂,步長因子,終止條件洞豁。其中搜索方向是各種無約束方法的主要特征盐固。

無約束優(yōu)化法可以通過有無使用梯度信息分為直接法和間接方法。其中丈挟,直接法刁卜,即只需要計算,比較函數(shù)值來確定迭代方向和步長的方法曙咽。其優(yōu)點(diǎn)是不需要函數(shù)有較好的解析性質(zhì)蛔趴。適用范圍廣,可靠性較高例朱。而在工程實際中孝情,函數(shù)形式往往比較復(fù)雜,不易求導(dǎo)數(shù)洒嗤,直接法比較適合采用箫荡。缺點(diǎn)相對利用導(dǎo)數(shù)信息的間接法收斂速度慢。

坐標(biāo)輪換法

坐標(biāo)(變量)輪換法是最簡單最易理解的直接方法渔隶。其由D‘esopo于1959年提出羔挡,其基本思想是把含有n個變量的優(yōu)化問題輪換轉(zhuǎn)為單變量的優(yōu)化問題洁奈,即每次沿某一個坐標(biāo)軸進(jìn)行一維搜索的問題。算法步驟:

已知目標(biāo)函數(shù)f(\boldsymbol{x})绞灼,終止限\varepsilon>0.

  1. 任選取初始點(diǎn)\boldsymbol{x}_0作為第一輪迭代的初始點(diǎn)利术,\varepsilon>0;
  2. 置搜索方向依次為:
    \boldsymbol{e}_1 = [1,0,0,...,0]^T
    \boldsymbol{e}_2 = [0,1,0,...,0]^T
    ......
    \boldsymbol{e}_n = [0,0,0,...,1]^T
  3. 按照下式求最優(yōu)步長并進(jìn)行迭代計算:
    f(\boldsymbol{x}_k^{i-1}+t_k^i\boldsymbol{e}_i)=\min_tf(\boldsymbol{x}_k^{i-1}+t\boldsymbol{e}_i),\boldsymbol{x}_k^i=\boldsymbol{x}_k^{i-1}+t_k^i\boldsymbol{e}_i
  4. 如果i=n,即轉(zhuǎn)第5步低矮,如果i<n印叁,則轉(zhuǎn)第3步;
  5. 收斂性準(zhǔn)則為||\boldsymbol{x}_k^n-\boldsymbol x_{k-1}^n || \leq \varepsilon军掂,如滿足迭代終止條件轮蜕,停止迭代,輸出最優(yōu)解\boldsymbol{x}^*=\boldsymbol{x}_k^n蝗锥;若不滿足爵赵,則令k=k+1轉(zhuǎn)到第3步颠锉。

Algorithm 1 坐標(biāo)輪換法

function [x_min,f_min] = CoordinateRotationMethod(func,x0,options)

if nargin<3
    options.tol = 1e-12;
    options.iterNum = 1000;
    options.bracketMethod = '';
    options.linearSrcMethod = '';
    options.plot2.Flag = 0;
    options.plot2.x = [];
    options.plot2.y = [];
    options.plot2.z = [];  
end
tol = options.tol;
iterNum = options.iterNum;

plot2 = options.plot2;
if length(x0)~=2
    plot2.Flag = 0;
end

x_min = x0;
f_min = func(x0);

E = eye(length(x0));
xk = x0; 

f_pre = func(xk);
f = f_pre+1e10;

if plot2.Flag == 1 
    figure,subplot(1,2,1),axis equal, hold on;
    contourf(plot2.x,plot2.y,plot2.z,30,'linestyle','-')
    colormap('jet');
    tempf =f_pre;
end

while(iterNum)
    for i=1:1:length(x0) 
        d = E(:,i);
        lamdaFuncH = @(lamda)(func(xk+lamda.*d));
        [a,b,c] = bracketAdvanceBack(lamdaFuncH,0,0.01);
        lamda = GoldSection(lamdaFuncH,a,c,1e-12);
        xk1 = xk + lamda.*d;
        f =func(xk1);
        if plot2.Flag == 1 
            tempf = [tempf,f];
            subplot(1,2,1),plot([xk(1),xk1(1)],[xk(2),xk1(2)],'-ro','LineWidth',2);
            subplot(1,2,2),plot(tempf,'-b.','LineWidth',2); grid on;
            axis([0,60,0,func(x0)]);
            xlabel('Step');
            ylabel('Objective Function Value');
            pause(0.1)
        end
        xk = xk1;
        iterNum = iterNum - 1;
    end
    if abs(f-f_pre)<tol||iterNum == 0
            x_min = xk;
            f_min = f;
            break;
    else
        f_pre = f;
    end        
end

坐標(biāo)輪換法邏輯簡單,易于掌握,但計算效率低箭窜,對維數(shù)較高的優(yōu)化問題更為突出整袁,通常用于低維優(yōu)化問題呈队;此外枪蘑,這種方法的收斂效果很大程度上取決于目標(biāo)函數(shù)的等值線的形狀:

\bullet 等值線為橢圓族,其長短軸與坐標(biāo)軸平行時,收斂很快陆馁,即\boldsymbol{x}的維度步數(shù)即可收斂;
\bullet 當(dāng)橢圓族的長短軸與坐標(biāo)軸斜交時找颓,迭代次數(shù)將大大增加,收斂速度慢;
\bullet 當(dāng)目標(biāo)函數(shù)等值線出現(xiàn)“脊線”時,沿坐標(biāo)軸方向搜索不能使得函數(shù)值有所下降,坐標(biāo)輪換法在求優(yōu)過程中將失敗,這類函數(shù)對于坐標(biāo)輪換法就是病態(tài)函數(shù)叮贩。

圖1 坐標(biāo)輪換法與優(yōu)化問題等值線的關(guān)系
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末击狮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子益老,更是在濱河造成了極大的恐慌彪蓬,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捺萌,死亡現(xiàn)場離奇詭異档冬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)桃纯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門酷誓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人态坦,你說我怎么就攤上這事盐数。” “怎么了伞梯?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵玫氢,是天一觀的道長着茸。 經(jīng)常有香客問我,道長琐旁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任猜绣,我火速辦了婚禮灰殴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掰邢。我一直安慰自己牺陶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布辣之。 她就那樣靜靜地躺著掰伸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怀估。 梳的紋絲不亂的頭發(fā)上狮鸭,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機(jī)與錄音多搀,去河邊找鬼歧蕉。 笑死,一個胖子當(dāng)著我的面吹牛康铭,可吹牛的內(nèi)容都是我干的惯退。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼从藤,長吁一口氣:“原來是場噩夢啊……” “哼催跪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起夷野,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤懊蒸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后悯搔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榛鼎,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年鳖孤,在試婚紗的時候發(fā)現(xiàn)自己被綠了者娱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡苏揣,死狀恐怖黄鳍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情平匈,我是刑警寧澤框沟,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布藏古,位于F島的核電站,受9級特大地震影響忍燥,放射性物質(zhì)發(fā)生泄漏拧晕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一梅垄、第九天 我趴在偏房一處隱蔽的房頂上張望厂捞。 院中可真熱鬧,春花似錦队丝、人聲如沸靡馁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臭墨。三九已至,卻和暖如春膘盖,著一層夾襖步出監(jiān)牢的瞬間胧弛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工侠畔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叶圃,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓践图,卻偏偏與公主長得像掺冠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子码党,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容