-5

나는 유전자 알고리즘 프로젝트에서 일하고있다. 기본 유전자 알고리즘을 사용하여 Rastrigin 함수 또는 Easom 함수 (y = 0 인 경우)의 최대/최소값을 찾아내는 코드가 필요합니다.유전 알고리즘을 사용하여 함수의 최소값 찾기

+0

일반적인 절차는 이론이나 구현에 대해 신경 쓰지 않고 여러 관련 MATLAB 라이브러리를 함께 연결하는 것입니다.문제가 정확히 어디에서 "쉬운"기능을위한 예제 코드가 있습니까? – LutzL

+0

@Lutzl 아니에요. 사실 저는 JAVA/C++로 코드를 작성하고 있습니다. 함수 최적화를 위해 GA를 사용하는 방법을 이해하지 못합니다. GA를 사용하여 인구 진화 코드를 작성했지만 GA를 사용한 함수 최적화는 수행하지 않았습니다. – Aman

+0

인구가 많고 인구 및 개인의 모든 개인에 대한 함수의 가치를 계산하여 최소값으로 채우기가 높아집니다. – viceriel

답변

2

좋아, 우리는 Easom 기능을 봐.

문제 문

에서 최소 찾기 :

F (X) = -cos (X1) COS (X2) EXP (- (X1 - 피)^2 - (X2 - 피)^2)

표현은 실수의 예를 벡터를 들어

을 선택합니다. 각 요소의 값 간격은 < -5입니다. 5>. GA의

피트니스

홈페이지 문제.

Individual2 [-3.8 | 2.7 | -0.68 | 3.78 || -2.14 | 1.63 | | -1.75 -1] : [1 | 1

Individual1 : 우리는 예를 들어 두 사람이 | 1 | 1 || -0.5 | -0.5 | -0.5 | -0.5]

첫 번째 개인은 4.8과 -6.06으로 디코딩됩니다. 그의 피트니스 기능은 -9.23073 ... × 10^-40입니다.

두 번째 개인은 4와 -2로 디코딩됩니다. 그의 적합성은 -4.30104456071396041116767479151655914468678005731098 ... × 10^-13

그리고 지금 문제입니다. 휘트니스가 너무 낮아서 두 가지를 모두 0으로 생각할 수 있습니다. 두 가지 옵션이 있습니다. Godot을 기다리는 중입니다 (어쩌면 일부 세대에서는 지구 적 최소 가치를 지니고 점을 나눈 것입니다). 또는 휴리스틱을 사용할 수 있습니다. 휴리스틱은 두 가지 가치, 주요 피트니스 및 사소한 적합성에 대한 적응력을 기반으로합니다. 주요한 적합성은 기능상의 x의 가치입니다. 이 값은 항상 0이므로 start는 검색 할 수 없습니다. 경미한 적당은 목적을 가진 발견 적 방법이다. 몇 가지 함수, 예를 들어 x의 평균을 정의합니다. 그래서 individual1에 대한 사소한 적합도는 -0.63이고 individual2는 1입니다. 따라서 individual2는 "더 좋음"이며 선택 가능성이 더 높습니다.

사소한 적합성은 검색 방법을 제공합니다.
이런 식으로 잘못 될 수 있습니까? 예, 그것은 경험적입니다. 중요한, 부 기능 목적은 동일한 주요 기능을 가진 개인을위한 선호를 창조하는 것입니다. 주요 피트니스가 다른 경우, 우리는 주요 피트니스를 오리엔테이션을위한 가치로 사용합니다.

예 :

Individual1 피트니스 : 전공 : -0.1 | Minor : 3

Individual2 피트니스 : Major : 0 | 마이너 : 8

첫 번째 것은 주요 피트니스 때문에 더 좋습니다.

관련 문제