差分進化

進化的計算における差分進化(さぶんしんか、: Differential evolution、略称: DE)とは、与えられた評価尺度に関する候補解英語版反復的に改良していき、問題を最適化する手法である。このような手法は、最適化の対象となる問題に関する仮定を一切置かないか、あるいはわずかしか置かないメタヒューリスティクスであり、広範な解の候補の空間を探索できる。ただし、DEのようなメタヒューリスティクスは真の最適解を見つけられる保証はない。DEは多次元空間での実数値関数に対して用いることができるが、最適化対象である関数(目的関数)の勾配は使用しない。つまり、最急降下法準ニュートン法のような古典的な最適化手法が要求する次の条件 「最適化問題が微分可能」 をDEは必要としない。それゆえ、DEは関数が連続でない場合やノイズの多い場合、時間変化する場合の最適化問題に対しても用いることができる[1]。DEは単純な式に従って候補解集団を更新し、最適化問題に対して最良のスコアまたは最良の当てはまりを示した候補解を保持しておく。これにより、最適化すべき目的関数は解の候補に評価尺度を与える単なるブラックボックスと見なせて、その勾配の値を必要としない。 DEは元々はStomおよびPriceの着想である[2][3]並列計算多目的最適化制約付き最適化の分野に於いて、DEの使用に関する理論的見地、実用的見地および応用領域からの調査に基づく書籍が出版されている[4][5][6][7]。DEの多面的研究は論文に投稿されている[8][9]

アルゴリズム

DEアルゴリズムは候補解集団(エージェントとよばれる)を保持して動作する。エージェントは、単純な数式に従ってその集団内の位置を組み合わせながら、探索すべき空間内を動き回り、その位置を更新する。エージェントを更新した位置が評価尺度の上で改良を示したならば、それは棄却されずに解の候補集団の一部となる。そうでなければ、その位置は棄却される。この過程が繰り返されて、(真の最適解である保証はないが)解に到達する。形式的には、 を最小化すべき目的関数または最大化すべき適合度(フィットネス)関数とする。この関数は引数として実数値ベクトルで表された候補解を受け取り、その候補解の適合度を示す実数を出力する。その際に の勾配は不明である。行いたいことは、探索空間におけるすべての点 に対して であるような解 、つまり大域的な最小点を見つけ出すことである。もしも最小化ではなくて最大化を行いたい場合には、 を考えればよい。 を集団における候補解(エージェント)とする。 を交叉率 (crossover rate) とする。 をスケール因子 (scaling factor )とする。 を集団サイズとする。これらのパラメータは、 のもとで、計算を行なう者が決める(以下を参照)。DEアルゴリズムの基本的な流れは以下のとおりである。

  • 探索空間における全エージェント をランダムな位置に初期化する。
  • 終了条件が満たされるまで(たとえば、繰り返し回数やフィットネス値の閾値を越えた、など)、以下を繰り返す。
    • 集団の各エージェント について、以下を行う。
      • ランダムに 3 つのエージェント を選ぶ。ここで、,,,は互いに異なるエージェントであるようにする。
      • ランダムにインデックス を選ぶ( は最適化問題の次元数である)。
      • エージェントの更新位置 を次のように計算する。
        • ごとに、一様分布に従う乱数 を選ぶ。
        • もし、 または であれば とし、そうでなければ とする。
        • (本質的には、更新位置は中間エージェント とエージェント のバイナリクロスオーバー(binary crossover) の出力である。
      • もし、 であればその位置のエージェントを更新された解に置換、すなわち を入れ替える。
  • 最も大きい適合度または最も小さい目的関数値を持つエージェントを集団から選び、それを最適解として返す。

パラメータ選択

Performance landscape showing how the basic DE performs in aggregate on the Sphere and Rosenbrock benchmark problems when varying the two DE parameters and , and keeping fixed =0.9.

DEアルゴリズムのパラメータである および は最適化性能に大きな影響を与えうる。良い性能を引き出すようにDEパラメータを選ぶことが、多くの研究活動における主題となる。パラメータ選択として、正確ではないが大雑把な方法がStornら[3][4]、LiuおよびLampien[10]によって考案された。パラメータ選択に関する収束判定はZaharieによって行われている[11]。DEパラメータのメタ最適化はPedersen[12][13]およびZhangら[14]によって行われている。

亜種

最適化パフォーマンスを改良すべく、DEアルゴリズムの多くの亜種が開発されている。上記で与えた基本アルゴリズムにおける交叉およびエージェントの変異方法を変更しても良い[3]

サンプルコード

以下はDEアルゴリズムの実装を擬似コードで示した例である(Java言語に類似の形式により記述されている)。より一般的な擬似コードについては、アルゴリズムセクションを参照すること。

//definition of one individual in population
public class Individual {
	//normally DifferentialEvolution uses floating point variables
	float data1, data2
	//but using integers is possible too  
	int data3
}

public class DifferentialEvolution {
	//Variables
	//linked list that has our population inside
	LinkedList<Individual> population=new LinkedList<Individual>()
	//New instance of Random number generator
	Random random=new Random()
	int PopulationSize=20

	//differential weight [0,2]
	float F=1
	//crossover probability [0,1]
	float CR=0.5
	//dimensionality of problem, means how many variables problem has. this case 3 (data1,data2,data3)
	int N=3;

	//This function tells how well given individual performs at given problem.
	public float fitnessFunction(Individual in) {
		...
		return	fitness	
	}

	//this is main function of program
	public void Main() {
		//Initialize population with individuals that have been initialized with uniform random noise
		//uniform noise means random value inside your search space
		int i=0
		while(i<populationSize) {
			Individual individual= new Individual()
			individual.data1=random.UniformNoise()
			individual.data2=random.UniformNoise()
			//integers cant take floating point values and they need to be either rounded
			individual.data3=Math.Floor( random.UniformNoise())
			population.add(individual)
			i++
		}
		
		i=0
		int j
		//main loop of evolution.
		while (!StoppingCriteria) {
			i++
			j=0
			while (j<populationSize) {
				//calculate new candidate solution
			
				//pick random point from population
				int x=Math.floor(random.UniformNoise()%(population.size()-1))
				int a,b,c

				//pick three different random points from population
				do{
					a=Math.floor(random.UniformNoise()%(population.size()-1))
				}while(a==x);
				do{
					b=Math.floor(random.UniformNoise()%(population.size()-1))
				}while(b==x| b==a);
				do{
					c=Math.floor(random.UniformNoise()%(population.size()-1))
				}while(c==x | c==a | c==b);
				
				// Pick a random index [0-Dimensionality]
				int R=rand.nextInt()%N;
				
				//Compute the agent's new position
				Individual original=population.get(x)
				Individual candidate=original.clone()
				
				Individual individual1=population.get(a)
				Individual individual2=population.get(b)
				Individual individual3=population.get(c)
				
				//if(i==R | i<CR)
					//candidate=a+f*(b-c)
				//else
					//candidate=x
				if( 0==R | random.UniformNoise()%1<CR){	
					candidate.data1=individual1.data1+F*(individual2.data1-individual3.data1)
				}// else isn't needed because we cloned original to candidate
				if( 1==R | random.UniformNoise()%1<CR){	
					candidate.data2=individual1.data2+F*(individual2.data2-individual3.data2)
				}
				//integer work same as floating points but they need to be rounded
				if( 2==R | random.UniformNoise()%1<CR){	
					candidate.data3=Math.floor(individual1.data3+F*(individual2.data3-individual3.data3))
				}
				
				//see if is better than original, if so replace
				if(fitnessFunction(original)<fitnessFunction(candidate)){
					population.remove(original)
					population.add(candidate)
				}
				j++
			}
		}
		
		//find best candidate solution
		i=0
		Individual bestFitness=new Individual()
		while (i<populationSize) {
			Individual individual=population.get(i)
			if(fitnessFunction(bestFitness)<fitnessFunction(individual)){
				bestFitness=individual
			}
			i++
		}
		
		//your solution
		return bestFitness
	}
}

脚注

  1. ^ Rocca, P.; Oliveri, G.; Massa, A. (2011). “Differential Evolution as Applied to Electromagnetics”. IEEE Antennas and Propagation Magazine 53 (1): 38–49. doi:10.1109/MAP.2011.5773566. 
  2. ^ Storn, R.; Price, K. (1997). “Differential evolution - a simple and efficient heuristic for global optimization over continuous spaces”. Journal of Global Optimization 11: 341–359. doi:10.1023/A:1008202821328. 
  3. ^ a b c Storn, R. (1996). "On the usage of differential evolution for function optimization". Biennial Conference of the North American Fuzzy Information Processing Society (NAFIPS). pp. 519–523.
  4. ^ a b Price, K.; Storn, R.M.; Lampinen, J.A. (2005). Differential Evolution: A Practical Approach to Global Optimization. Springer. ISBN 978-3-540-20950-8. http://www.springer.com/computer/theoretical+computer+science/foundations+of+computations/book/978-3-540-20950-8 
  5. ^ Feoktistov, V. (2006). Differential Evolution: In Search of Solutions. Springer. ISBN 978-0-387-36895-5. http://www.springer.com/mathematics/book/978-0-387-36895-5 
  6. ^ G. C. Onwubolu and B V Babu, New Optimization Techniques in Engineering”. 17 September 2016閲覧。
  7. ^ Chakraborty, U.K., ed. (2008), Advances in Differential Evolution, Springer, ISBN 978-3-540-68827-3, http://www.springer.com/engineering/book/978-3-540-68827-3 
  8. ^ Das, S.; Suganthan, P. N. (2011). “Differential Evolution: A Survey of the State-of-the-art”. IEEE Trans. on Evolutionary Computation 15 (1): 4-31. doi:10.1109/TEVC.2010.2059031. 
  9. ^ Das, S.; Mullick, S. S.; Suganthan, P. N. (2016). “Recent Advances in Differential Evolution - An Updated Survey”. Swarm and Evolutionary Computation 27: 1-30. doi:10.1016/j.swevo.2016.01.004. 
  10. ^ Liu, J.; Lampinen, J. (2002). "On setting the control parameter of the differential evolution method". Proceedings of the 8th International Conference on Soft Computing (MENDEL). Brno, Czech Republic. pp. 11–18.
  11. ^ Zaharie, D. (2002). "Critical values for the control parameters of differential evolution algorithms". Proceedings of the 8th International Conference on Soft Computing (MENDEL). Brno, Czech Republic. pp. 62–67.
  12. ^ Pedersen, M.E.H. (2010). Tuning & Simplifying Heuristical Optimization (PhD thesis). University of Southampton, School of Engineering Sciences, Computational Engineering and Design Group. http://www.hvass-labs.org/people/magnus/thesis/pedersen08thesis.pdf 
  13. ^ Pedersen, M.E.H. (2010). “Good parameters for differential evolution”. Technical Report HL1002 (Hvass Laboratories). http://www.hvass-labs.org/people/magnus/publications/pedersen10good-de.pdf. 
  14. ^ Zhang, X.; Jiang, X.; Scott, P.J. (2011). "A Minimax Fitting Algorithm for Ultra-Precision Aspheric Surfaces". The 13th International Conference on Metrology and Properties of Engineering Surfaces.

関連項目

外部リンク

  1. ^ Civicioglu, P. (2012). “Transforming geocentric cartesian coordinates to geodetic coordinates by using differential search algorithm”. Computers & Geosciences 46: 229–247. doi:10.1016/j.cageo.2011.12.011. 

Read other articles:

في هذه المقالة ألفاظ تعظيم تمدح موضوع المقالة، وهذا مخالف لأسلوب الكتابة الموسوعية. فضلاً، أَزِل ألفاظ التفخيم واكتفِ بعرض الحقائق بصورة موضوعية ومجردة ودون انحياز. (نقاش)جزء من سلسلة مقالات حولالشيعة العقيدة توحيد الله الإيمان بالملائكة الإيمان بالكتب السماوية الإيمان ...

 

العلاقات الدنماركية الصربية الدنمارك صربيا   الدنمارك   صربيا تعديل مصدري - تعديل   العلاقات الدنماركية الصربية هي العلاقات الثنائية التي تجمع بين الدنمارك وصربيا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقارن...

 

1990 film by Tobe Hooper I'm Dangerous TonightPromotional posterGenreHorror[1]Based onI'm Dangerous Tonightby Cornell WoolrichScreenplay by Bruce Lansbury Philip John Taylor[2] Directed byTobe Hooper[2]Starring Mädchen Amick Corey Parker Daisy Hall R. Lee Ermey Music byNicholas Pike[2]Country of originUnited States[1]ProductionExecutive producerBoris Malden[2]Producers Bruce Lansbury Philip John Taylor[2] CinematographyLevie Isaacks[...

Michael ColeNomeSean Michael Coulthard Nazionalità Stati Uniti Luogo nascitaSyracuse, New York8 dicembre 1968 (55 anni) Ring nameMichael Cole Altezza dichiarata175 cm Peso dichiarato77 kg Debutto1997 FederazioneWWE Progetto Wrestling Manuale Sean Michael Coulthard, meglio conosciuto come Michael Cole (Syracuse, 8 dicembre 1968), è un personaggio televisivo statunitense. Lavora per la WWE dove ricopre il ruolo di commentatore di Raw. Indice 1 Carriera 1.1 Giornalismo 1.2 World Wres...

 

We Are Never Ever Getting Back TogetherSingel oleh Taylor Swiftdari album RedDirilis13 Agustus 2012FormatCD single, digital downloadDirekam2012 Conway Studios (Los Angeles, California) MXM Studios (Stockholm, Sweden) MixStar Studio (Virginia Beach, Virginia) Sterling Sound (New York, New York)GenrePop, CountryDurasi3:13LabelBig Machine RecordsPenciptaTaylor Swift, Max Martin, ShellbackProduserMax Martin, Shellback, Dann Huff We Are Never Ever Getting Back Together adalah lagu yang direkam ole...

 

Карта Сент-Люсии Здесь представлен список городов Сент-Люсии. Сент-Люсия насчитывает 11 приходов и 150 населённых пунктов[1]. Города Город Приход[2] Население, чел.[2] Анс-ла-Рей Анс-ла-Рей13°56′46″ с. ш. 61°02′20″ з. д.HGЯO 1 256 О Табор[англ.] Анс-ла-Рей13°56′46″ �...

阿尔弗雷德·金赛1955年11月在法蘭克福的金賽出生阿爾弗雷德·查爾斯·金賽1894年6月23日[1] 美國新泽西州霍博肯[1]逝世1956年8月25日(1956歲—08—25)(62歲) 美國印第安納州布卢明顿[1]国籍 美國母校史蒂文斯理工學院鲍登学院哈佛大学知名于針對人類的性學研究:金赛报告、金賽性、性別與生殖研究中心、金賽量表科学生涯研究领域生物学机构印第...

 

District in North Rhine-Westphalia, GermanyHeinsbergDistrict FlagCoat of armsCountryGermanyStateNorth Rhine-WestphaliaAdm. regionCologneCapitalHeinsbergGovernment • District admin.Stephan Pusch (CDU)Area • Total627.7 km2 (242.4 sq mi)Population (31 December 2022)[1] • Total261,833 • Density420/km2 (1,100/sq mi)Time zoneUTC+01:00 (CET) • Summer (DST)UTC+02:00 (CEST)Vehicle registrationERK, GK, HSWebsit...

 

Halaman ini berisi artikel tentang aktris. Untuk istri William Shakespeare, lihat Anne Hathaway (istri Shakespeare). Untuk kegunaan lain, lihat Anne Hathaway (disambiguasi). Anne HathawayHathway, 2017LahirAnne Jacqueline Hathaway12 November 1982 (umur 41)Brooklyn, New YorkPekerjaanaktrisTahun aktif1999 - sekarangSuami/istriAdam ShulmanAnak2Tanda tangan Anne Jacqueline Hathaway (lahir 12 November 1982) adalah seorang aktris asal Amerika Serikat. Hathaway memulai debut aktingnya pada ...

سليم كندي تقسيم إداري البلد إيران  [1] إحداثيات 37°40′26″N 45°06′42″E / 37.67388889°N 45.11166667°E / 37.67388889; 45.11166667   السكان التعداد السكاني 26 نسمة (إحصاء 2016) الرمز الجغرافي 18525  تعديل مصدري - تعديل   سليم‌ كندي هي قرية في مقاطعة أرومية، إيران.[2] يقدر عدد سكانها ب...

 

Village in County Kildare, Ireland Village in Leinster, IrelandBallitore Béal Átha an TuairVillageBallitore Village Square as seen from the Mary Leadbeater HouseBallitoreLocation in IrelandCoordinates: 53°00′31″N 6°49′05″W / 53.00859°N 6.81805°W / 53.00859; -6.81805CountryIrelandProvinceLeinsterCountyKildarePopulation (2016)[1]793Time zoneUTC+0 (WET) • Summer (DST)UTC-1 (IST (WEST))Irish Grid ReferenceS796955 Historical population...

 

1940–1945 German occupation of the Channel Islands Occupation of Jersey redirects here. This article is about the occupation of Jersey by Nazi Germany between 1940 and 1945. For other occupations of Jersey by hostile force, see History of Jersey. vteAtlantic pockets Channel Islands Cherbourg St Malo Brest Royan La Rochelle Saint-Nazaire Lorient As part of the Atlantic Wall, between 1940 and 1945 the occupying German forces and the Organisation Todt constructed fortifications around the coas...

ЛадижкаВитік на захід від с. ВербородинціГирло СлучБасейн басейн Прип'ятіКраїни:  УкраїнаХмельницька область,Старокостянтинівський районРегіон Хмельницька областьДовжина 23 кмПлоща басейну: 138 Лади́жка — річка в Україні, в межах Старокостянтинівського району ...

 

This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (June 2010) (Learn how and when to remove this message) 2009 Australian filmSubdivisionDirected bySue BrooksWritten byAshley BradnamJanice BradnamTerry McCannProduced byRichard S. GuardianTerry McCannStarringGary SweetBrooke SatchwellBruce SpenceKris McQuadeAshley BradnamAaron Fa'aosoProductioncompanies Australi...

 

В статье приводится состав Государственной думы Федерального собрания Российской Федерации первого созыва по результатам выборов 12 декабря 1993 года, а также итоговый список депутатов Государственной думы, который отличается от изначального ввиду досрочного прекращен�...

Gaius de Gaay Fortman pada 1981 Wilhelm Friedrich Gaius de Gaay Fortman[needs IPA] (8 Mei 1911 – 29 Maret 1997) adalah seornag yuris dan politikus Belanda dari Partai Anti-Revolusioner, yang kemudian digabung dengan Partai Demokrat Kristen.[1] Putra sulungnya Bas de Gaay Fortman juga merupakan seorang politikus, profesor dan penulis yang menjabat dalam Senat seperti ayahnya.[2] Referensi ^ Gaay Fortman, Wilhelm Friedrich de (1911-1997) (dalam bahasa Bel...

 

مبنى بلدية سانت وانMairie de Saint-Ouen (بالفرنسية) معلومات عامةالتقسيم الإداري سانت أوين سور سين البلد  فرنسا شبكة المواصلات مترو باريس المالك الهيئة المستقلة للنقل في باريس الإدارة الهيئة المستقلة للنقل في باريس الخطوط الخط 13 لمترو باريسالخط 14 لمترو باريس المحطات المجاورة كا�...

 

Protected Wilderness in West Virginia, United States Big Draft WildernessIUCN category Ib (wilderness area)[1]Big Draft Wilderness sign in 2013Location of Big Draft Wilderness in West VirginiaLocationGreenbrier, West Virginia, United StatesCoordinates37°55′15″N 80°15′55″W / 37.92083°N 80.26528°W / 37.92083; -80.26528Area5,144 acres (20.82 km2)[2]Elevation1,920 ft (590 m)Established2009-03-30OperatorMonongahela National ForestW...

Production d'uranium au Kazakhstan 1991 à 2015 Le Kazakhstan est devenu depuis 2011 le plus grand producteur d'uranium au monde[1]. L'extraction de l'uranium est effectuée par lixiviation in situ dans des champs de forages situés dans les bassins du Tchou-Saryssou et du Syr-Daria dans les Oblys de Kyzylorda et du Kazakhstan-Méridional. TortkudukTortkuduk InkaiInkai South InkaiSouth Inkai AkdalaAkdala MynkudukMynkuduk BudenovskoyeBudenovskoye AkbastauAkbastau MuyunkumMuyunkum KharasanKhara...

 

Cet article est une ébauche concernant l’Irlande, l’Union européenne et une élection ou un référendum. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. 1979 1989 Élections européennes de 1984 en Irlande 15 députés européens 14 juin 1984 Corps électoral et résultats Inscrits 2 413 404 Votants 1 147 745   47,6 %  16 Votes exprimés 1 120 416 Blancs et n...