演化計算解決多峰函式多個最優解問題

2021-06-19 12:35:34 字數 1010 閱讀 3444

問題描述:

其中,-10<=xi<=10, i=1,2,3..n,

當n=1,2,3和4

時分別有3、

18、81和

324個不同的全域性最優解。

設計演算法(可以是任何演算法)並編寫程式,可做n=1、2

、3、4

或部分或所有情況,得到全域性最優解越多越好,用十進位制編碼,解的精確度至少到小數點後8位。

這是shubert函式最優解問題,《

演化優化及其在微分方程反問題中的應用》一文中提出了gmle_dd演算法。

glme演算法:全域性-區域性混合演化演算法(global-local mixed evolutionary演算法),演化分兩個階段進行,在第一階段,既全域性演化階段,由郭濤演算法產生若干哥小區域,第二個階段,區域性演化,採用精英演化演算法在各個小區域中來演化出問題的解。

glme_dd演算法是在glme演算法的基礎上,將整個區域分為q個區域,再在每個區域中使用glme演算法。 由於

平行計算考試的需要,對**中提出的方法進行了實現,在這裡共享出來,

c++實現,演算法得到的最優解及執行時間如下表所示。

源**和演算法執行結果是n = 4時的情況。

n = 1

n = 2

n = 3

n = 4

獲得最優解的個數

最優值-12.870885493870

-186.730908831023

-2709.093505572829

-39303.550054363128

glme_dd演算法執行時間

0.054秒

0.519秒

3.397秒

33.917秒

**是基於基本的遺傳演算法的框架寫的,有一些不足之處,比如在篩選最優解時並不一定能得出完全不重複的解,主要是沒有把握好對重複解的判斷,

希望有興趣的同學幫忙修正,其他不足之處歡迎拍磚。

Python演化計算基準函式詳解

目錄 基準函式是測試演化計算演算法效能的函式集,由於大部分基準函式集都是c c 編寫,python編寫的基準函式比較少,因此本文實現了13個常用基準函式的python版。benchmark.py import numpy as np import copy author robin hua upda...

粒子群演算法應用 求解多峰函式

一 問題概述 粒子群演算法求解多峰函式 函式表示式 z 1 cos 1 1 x 1 2 cos 2 1 x 2 3 cos 3 1 x 3 4 cos 4 1 x 4 5 cos 5 1 x 5 1 cos 1 1 y 1 2 cos 2 1 y 2 3 cos 3 1 y 3 4 cos 4 1 ...

計算多個函式的定積分

這裡以三個函式為例 include include double f1 double x double f2 double x double f3 double x double integral double a,double b,double pfn double return ret int ...