-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
算法優(yōu)化問題(算法優(yōu)化問題有哪些)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于算法優(yōu)化問題的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、多目標優(yōu)化算法
姓名:袁卓成;學號:20021210612; 學院:電子工程學院
轉自 https://blog.csdn.net/weixin_43202635/article/details/82700342
【嵌牛導讀】 本文介紹了各類多目標優(yōu)化算法
【嵌牛鼻子】 多目標優(yōu)化, pareto
【嵌牛提問】 多目標優(yōu)化算法有哪些?
【嵌牛正文】
1)無約束和有約束條件;
2)確定性和隨機性最優(yōu)問題(變量是否確定);
3)線性優(yōu)化與非線性優(yōu)化(目標函數(shù)和約束條件是否線性);
4)靜態(tài)規(guī)劃和動態(tài)規(guī)劃(解是否隨時間變化)。
使多個目標在給定區(qū)域同時盡可能最佳,多目標優(yōu)化的解通常是一組均衡解(即一組由眾多 Pareto最優(yōu)解組成的最優(yōu)解集合 ,集合中的各個元素稱為 Pareto最優(yōu)解或非劣最優(yōu)解)。
①非劣解——多目標優(yōu)化問題并不存在一個最優(yōu)解,所有可能的解都稱為非劣解,也稱為Pareto解。
②Pareto最優(yōu)解——無法在改進任何目標函數(shù)的同時不削弱至少一個其他目標函數(shù)。這種解稱作非支配解或Pareto最優(yōu)解。
多目標優(yōu)化問題不存在唯一的全局最優(yōu)解 ,過多的非劣解是無法直接應用的 ,所以在求解時就是要尋找一個最終解。
(1)求最終解主要有三類方法:
一是求非劣解的生成法,即先求出大量的非劣解,構成非劣解的一個子集,然后按照決策者的意圖找出最終解;(生成法主要有加權法﹑約束法﹑加權法和約束法結合的混合法以及多目標遺傳算法)
二為交互法,不先求出很多的非劣解,而是通過分析者與決策者對話的方式,逐步求出最終解;
三是事先要求決策者提供目標之間的相對重要程度,算法以此為依據(jù),將多目標問題轉化為單目標問題進行求解。
(2)多目標優(yōu)化算法歸結起來有傳統(tǒng)優(yōu)化算法和智能優(yōu)化算法兩大類。
傳統(tǒng)優(yōu)化算法包括加權法、約束法和線性規(guī)劃法等,實質上就是將多目標函數(shù)轉化為單目標函數(shù),通過采用單目標優(yōu)化的方法達到對多目標函數(shù)的求解。
智能優(yōu)化算法包括進化算法(Evolutionary Algorithm, 簡稱EA)、粒子群算法(Particle Swarm Optimization, PSO)等。
兩者的區(qū)別——傳統(tǒng)優(yōu)化技術一般每次能得到Pareo解集中的一個,而用智能算法來求解,可以得到更多的Pareto解,這些解構成了一個最優(yōu)解集,稱為Pareto最優(yōu)解(任一個目標函數(shù)值的提高都必須以犧牲其他目標函數(shù)值為代價的解集)。
①MOEA通過對種群 X ( t)執(zhí)行選擇、交叉和變異等操作產(chǎn)生下一代種群 X ( t + 1) ;
②在每一代進化過程中 ,首先將種群 X ( t)中的所有非劣解個體都復制到外部集 A ( t)中;
③然后運用小生境截斷算子剔除A ( t)中的劣解和一些距離較近的非劣解個體 ,以得到個體分布更為均勻的下一代外部集 A ( t + 1) ;
④并且按照概率 pe從 A ( t + 1)中選擇一定數(shù)量的優(yōu)秀個體進入下代種群;
⑤在進化結束時 ,將外部集中的非劣解個體作為最優(yōu)解輸出。
NSGA一II算法的基本思想:
(1)首先,隨機產(chǎn)生規(guī)模為N的初始種群,非支配排序后通過遺傳算法的選擇、交叉、變異三個基本操作得到第一代子代種群;
(2)其次,從第二代開始,將父代種群與子代種群合并,進行快速非支配排序,同時對每個非支配層中的個體進行擁擠度計算,根據(jù)非支配關系以及個體的擁擠度選取合適的個體組成新的父代種群;
(3)最后,通過遺傳算法的基本操作產(chǎn)生新的子代種群:依此類推,直到滿足程序結束的條件。
非支配排序算法:
考慮一個目標函數(shù)個數(shù)為K(K>1)、規(guī)模大小為N的種群,通過非支配排序算法可以對該種群進行分層,具體的步驟如下:
通過上述步驟得到的非支配個體集是種群的第一級非支配層;
然后,忽略這些標記的非支配個體,再遵循步驟(1)一(4),就會得到第二級非支配層;
依此類推,直到整個種群被分類。
擁擠度 ——指種群中給定個體的周圍個體的密度,直觀上可表示為個體。
擁擠度比較算子:
設想這么一個場景:一群鳥進行覓食,而遠處有一片玉米地,所有的鳥都不知道玉米地到底在哪里,但是它們知道自己當前的位置距離玉米地有多遠。那么找到玉米地的最佳策略,也是最簡單有效的策略就是是搜尋目前距離玉米地最近的鳥群的周圍區(qū)域。
基本粒子群算法:
粒子群由 n個粒子組成 ,每個粒子的位置 xi 代表優(yōu)化問題在 D維搜索空間中潛在的解;
粒子在搜索空間中以一定的速度飛行 , 這個速度根據(jù)它本身的飛行經(jīng)驗和同伴的飛行經(jīng)驗來動態(tài)調(diào)整下一步飛行方向和距離;
所有的粒子都有一個被目標函數(shù)決定的適應值(可以將其理解為距離“玉米地”的距離) , 并且知道自己到目前為止發(fā)現(xiàn)的最好位置 (個體極值 pi )和當前的位置 ( xi ) 。
粒子群算法的數(shù)學描述 :
每個粒子 i包含為一個 D維的位置向量 xi = ( xi1, xi2, …, xiD )和速度向量 vi = ( vi1, vi2,…, viD ) ,粒子 i搜索解空間時 ,保存其搜索到的最優(yōu)經(jīng)歷位置pi = ( pi1, pi2, …, piD ) 。在每次迭代開始時 ,粒子根據(jù)自身慣性和經(jīng)驗及群體最優(yōu)經(jīng)歷位置 pg = ( pg1, pg2, …, pgD )來調(diào)整自己的速度向量以調(diào)整自身位置。
粒子群算法基本思想:
(1)初始化種群后 ,種群的大小記為 N?;谶m應度支配的思想 ,將種群劃分成兩個子群 ,一個稱為非支配子集 A,另一個稱為支配子集 B ,兩個子集的基數(shù)分別為 n1、n2 。
(2)外部精英集用來存放每代產(chǎn)生的非劣解子集 A,每次迭代過程只對 B 中的粒子進行速度和位置的更新 ;
(3)并對更新后的 B 中的粒子基于適應度支配思想與 A中的粒子進行比較 ,若 xi ∈B , ϖ xj ∈A,使得 xi 支配 xj,則刪除 xj,使 xi 加入 A 更新外部精英集 ;且精英集的規(guī)模要利用一些技術維持在一個上限范圍內(nèi) ,如密度評估技術、分散度技術等。
(4)最后 ,算法終止的準則可以是最大迭代次數(shù) Tmax、計算精度ε或最優(yōu)解的最大凝滯步數(shù) Δt等。
二、電力系統(tǒng)優(yōu)化算法
電力系統(tǒng)優(yōu)化算法實際應用介紹
優(yōu)化問題可以分成凸(convex)問題和非凸問題。凸問題都是可以找到最優(yōu)解的,只是算力問題,小問題可以用現(xiàn)有的解法器非常快的找到最優(yōu)解,大型問題則一般要用一些定制的分解算法。非凸問題則要具體情況具體討論,如果只是帶有整數(shù)變量的話一般也可以找到不錯的解。
電力系統(tǒng)這邊常用的優(yōu)化就是線性規(guī)劃(LP),二次規(guī)劃(QP),和整數(shù)規(guī)劃(MIP)。LP和QP常用在解最優(yōu)調(diào)度上,MIP用來做日前機組組合(unit commitment)。這幾種問題都是有很成熟的算法,比如多邊形法(simplex)和branch&bound法,和解法器(solver),比如Gurobi和Cplex。此外還有一種電力系統(tǒng)專有的問題是交流潮流計算(ACOPF),屬于非凸問題,可以用梯度下降法找到次優(yōu)解,而工業(yè)界這些年來也找到了許多啟發(fā)式算法來提高解的速度和質量。最近10年以Caltech Steven Low為代表的網(wǎng)絡控制研究領域也提出了一些ACOPF的凸優(yōu)化近似解法,比如用到了正定規(guī)劃(semi-definite programming),只是假設具有局限性,目前看來并不被工業(yè)界認可。
下面再講一下優(yōu)化分解算法(decomposition),電力領域的優(yōu)化研究主要就是建模和分解大型優(yōu)化問題,問題的維度主要體現(xiàn)在空間維度(spatial),時間維度(temporal),和不確定性上(uncertainty)。常用的分解算法有primal / dual分解法,這個可以參考斯坦福Stephen Boyd的課件,思路就是利用問題本身的結構通過固定偶和變量(coupling variable)把一個大問題分拆成可以獨立平行解決的小問題(subproblem),再把小問題的結果匯總起來update coupling variable(使用梯度/次梯度法,或者平面切割法),以此循環(huán)來解決整個問題(master problem),在與平行計算的結合基礎上通??梢詭砑墧?shù)級別的速度提升,比如原來需要數(shù)小時甚至數(shù)日才能解決的問題通過分解+平行計算,可以在數(shù)分鐘內(nèi)解決。這類分解算法常用于空間分拆和情景分拆(scenario decomposition)。
另一種常用的分解算法就是動態(tài)規(guī)劃(dynamic programming),用來解決長時間尺度下帶有不確定性的優(yōu)化控制問題,比如水電規(guī)劃的經(jīng)典算法就是stochastic dual dynamic programming。這方面Gatech的Alex Shapiro寫過一些不錯的資料。最后從學習上在搞懂一些基本的經(jīng)典優(yōu)化算法遠離比如梯度下降和多邊形法外,答主覺得優(yōu)化在電力方面的應用主要體現(xiàn)在對primal和dual問題之間關聯(lián)的以及KKT condition的理解,比如primal約束對應的dual是該約束的sub-gradient也就是該約束的price,很多優(yōu)化分解問題都可以通過這種對這種關系的理解來解決。另一個難點在于對multi-stage decision和uncertainty的理解,比如要理解nonanticipatory control和model predictive control的區(qū)別,這個問題甚至可以延伸到當前大火的機器學習上(優(yōu)化控制上的approximate dynamic programming),這方面答主看過不少資料,感覺還是Shapiro寫的最好。
三、算法部署優(yōu)化這一塊是什么
算法部署優(yōu)化這一塊是算法優(yōu)化是指對算法的有關性能進行優(yōu)化。算法優(yōu)化是指對算法的有關性能進行優(yōu)化,如時間復雜度、空間復雜度、正確性、健壯性。由于算法應用情景變化很大,算法優(yōu)化可以使算法具有更好泛化能力。算法是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機制。
四、優(yōu)化算法筆記(七)差分進化算法
(以下描述,均不是學術用語,僅供大家快樂的閱讀)
差分進化算法(Differential Evolution Algorithm,DE)是一種基于群體的進化算法,它模擬了群體中的個體的合作與競爭的過程。算法原理簡單,控制參數(shù)少,只有交叉概率和縮放比例因子,魯棒性強,易于實現(xiàn)。
差分進化算法中,每一個個體的基因表示待求問題的一個候選解。每次迭代將先進行變異操作,選擇一個或多個個體的基因作為基,然后選擇不同的個體的差分來構成差分基因,最后將作為基的基因與差分基因相加來得出新的個體。交叉操作將新的個體將于父代的對應個體交叉,然后進行選擇操作,比較交叉后的個體與父代的對應個體,選擇較優(yōu)的個體保留至下一代。在迭代完成之后將選擇種群中最優(yōu)個體的基因作為解。
差分進化算法可以算是我所使用過的優(yōu)化算法中大魔王級別的算法,雖然它每個方面都沒有強到離譜,但是綜合起來的效果好于大多數(shù)算法。它就像一個每個科目都能考到90分(百分制)的學生,雖然沒門課都不是最優(yōu)秀的,但是論綜合,論總分,它有極大的概率是第一名。
在我研究優(yōu)化算法的小路上,我的目標就是找到一個能打敗大魔王或是能在大多數(shù)方面壓制魔王的算法。
這次的主角就選魔王軍吧(或者蟻王軍,為了與蟻群算法區(qū)別還是叫魔王軍吧),個體則稱之為魔王兵。
魔王兵的能力取決于它們的基因,它們可以根據(jù)環(huán)境或者需要改變自己的基因使得自己更加強大,更方便的處理問題,問題的維度與基因維度相同。
表示第i個魔王兵在進化了第t次后的基因,該個體有D位基因。
與遺傳算法同為進化算法的差分進化算法,它們的操作(算子)也都非常相似的,都是交叉,變異和選擇,流程也幾乎一樣(遺傳算法先交叉后變異,差分進化算法先變異后交叉)。
說到差分進化算法中的變異,我就想到一句論語 “三人行,必有我?guī)熝?。擇其善者而從之,其不善者而改之?!?/strong> ,其實這句論語已經(jīng)向我們說明了差分進化算法的整個流程:
“三人行,必有我?guī)熝伞薄儺?,交叉?/p>
“擇其善者而從之,其不善者而改之”——選擇。
差分進化算法中,當一個魔王兵變異時,它會先找來3個小伙伴,當然是隨機找來3個小伙伴,避免同化。在一個小伙伴的基因上加上另外兩個小伙伴基因之差作為自己的目標基因。其變異公式如下:
表示第i個魔王兵找到了編號為r1、r2和r3的三個魔王兵,當然了i、r1、r2、r3為互不相同的整數(shù),F(xiàn)為縮放比例因子,通常 ,一般取F=0.5。 為第i個魔王兵交叉后的目標基因圖紙,不過這是個半成品,再經(jīng)過交叉后,目標基因圖紙才算完成。
其實現(xiàn)在我們已經(jīng)有了5個基因圖紙了 ,接下來將進行交叉操作。由于變異操作,差分進化算法的種群中個體數(shù)至少為4,即魔王軍中至少有4個小兵。
交叉操作中,魔王兵i會將目標基因圖紙 進行加工得到 ,加工過程如下:
其中 。 為交叉概率,其值越大,發(fā)生交叉的概率越大,一般取 。 為{1,2,…,D}中的隨機整數(shù),其作用是保證交叉操作中至少有一維基因來自變異操作產(chǎn)生的基因,不能讓交叉操作的努力白費。
從公式上可以看出交叉操作實際上是從變異操作得出的基因圖紙上選擇至少一位基因來替換自己的等位基因,得到最終的基因圖紙。
選擇操作相對簡單,魔王兵i拿到了最終的基因圖紙 ,大喊一聲,進化吧,魔王兵i的基因改變了。它拿出了能力測量器fitness function,如果發(fā)現(xiàn)自己變強了,那么就將基因 保留到下一代,否則它選擇放棄進化,讓自己還原成 。
實驗又來啦,還是那個實驗 ,簡單、易算、好畫圖。
實驗1 :參數(shù)如下
圖中可以看出在第20代時,群體已經(jīng)非常集中了,在來看看最終得出的結果。
這結果真是好到令人發(fā)指,惡魔在心中低語“把其他的優(yōu)化算法都丟掉吧”。不過別往心里去,任何算法都有優(yōu)缺點,天下沒有免費的午餐,要想獲得某種能力必須付出至少相應的代價。
實驗2:
將交叉率CR設為0,即每次交叉只選擇保留一位變異基因。
看看了看圖,感覺跟實驗1中相比沒有什么變化,那我們再來看看結果。
結果總體來說比實驗1好了一個數(shù)量級。為什么呢?個人感覺應該是每次只改變一位基因的局部搜索能力比改變多位基因更強。下面我們將交叉率CR設為1來看看是否是這樣。
實驗3:
將交叉率CR設為1,即每次交叉只選擇保留一位原有基因。
實驗3的圖與實驗1和實驗2相比好像也沒什么差別,只是收斂速度好像快了那么一點點。再來看看結果。
發(fā)現(xiàn)結果比實驗2的結果還要好?那說明了實驗2我得出的結論是可能是錯誤的,交叉率在該問題上對差分進化算法的影響不大,它們結果的差異可能只是運氣的差異,畢竟是概率算法。
實驗4:
將變異放縮因子設為0,即變異只與一個個體有關。
收斂速度依然很快,不過怎么感覺結果不對,而且個體收斂的路徑好像遺傳算法,當F=0,時,差分進化算法退化為了沒有變異、選擇操作的遺傳算法,結果一定不會太好。
果然如此。下面我們再看看F=2時的實驗。
實驗5:
將變異放縮因子設為2。
實驗5的圖可以明顯看出,群體的收斂速度要慢了許多,到第50代時,種群還未完全收斂于一點,那么在50代時其結果也不會很好,畢竟算法還未收斂就停止進化了。
結果不算很好但也算相對穩(wěn)定。
通過上面5個實驗,我們大致了解了差分進化算法的兩個參數(shù)的作用。
交叉率CR,影響基因取自變異基因的比例,由于至少要保留一位自己的基因和變異的基因導致CR在該問題上對算法性能的影響不大(這個問題比較簡單,維度較低,影響不大)。
變異放縮因子F,影響群體的收斂速度,F(xiàn)越大收斂速度越慢,F(xiàn)絕對值越小收斂速度越快,當F=0是群體之間只會交換基因,不會變異基因。
差分進化算法大魔王已經(jīng)如此強大了,那么還有什么可以改進的呢?當然有下面一一道來。
方案1 .將3人行修改為5人行,以及推廣到2n+1人行。
實驗6:
將3人行修改為5人行,變異公式如下:
五人行的實驗圖看起來好像與之前并沒有太大的變化,我們再來看看結果。
結果沒有明顯提升,反而感覺比之前的結果差了。反思一下五人行的優(yōu)缺點,優(yōu)點,取值范圍更大,缺點,情況太多,減慢搜索速度。
可以看出算法的收斂速度比之前的變慢了一點,再看看結果。
比之前差。
差分進化算法的學習在此也告一段落。差分進化算法很強大,也很簡單、簡潔,算法的描述都充滿了美感,不愧是大魔王。不過這里并不是結束,這只是個開始,終將找到打敗大魔王的方法,讓新的魔王誕生。
由于差分進化算法足夠強,而文中實驗的問題較為簡單導致算法的改進甚至越改越差(其實我也不知道改的如何,需要大量實驗驗證)。在遙遠的將來,也會有更加復雜的問題來檢驗魔王的能力,總之,后會無期。
以下指標純屬個人yy,僅供參考
目錄
上一篇 優(yōu)化算法筆記(六)遺傳算法
下一篇 優(yōu)化算法筆記(八)人工蜂群算法
優(yōu)化算法matlab實現(xiàn)(七)差分進化算法matlab實現(xiàn)
以上就是關于算法優(yōu)化問題相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
產(chǎn)品包裝描述怎么寫(產(chǎn)品包裝描述怎么寫好)