유전자 알고리즘에 세일즈맨 문제 기반 여행

문제의 I. 설명 :

세일즈맨 문제 여행 : DIJ 내가 J 시내의 거리이고, n은 도시 및 거리 행렬 D = [DIJ]와, 나, j는 = 1, ..., N, 문제는 각 방문 도시를 찾는 것이다 정확히 한 번 루프 경로 길이가 짧은되어 있는지 확인합니다.

둘째, 실험의 목적 :

동일한 데이터 세트에서 관찰 된 인구의 크기와 매개 변수는 실험 결과 같은 상황 요약 아니다.

셋째, 프로그램 흐름
1에 도시 초기 입력에 따라 유전자 서열,
(2) 각각의 유전자 서열 적응성 적응성 및 경로 길이에 반비례 계산 (경로 길이 I는 개개의 적응성을 이용한 역을 나타냄),
(3), 개인에 따라 적응 적 주제를 선택하는 단계, 각각의 선택된 임계 값에 따라 왼쪽 살아 남기
4를 선택 후, 개인의 초기 모집단 남성 선택하는데 사용 휠 선택 방법 미만의 개인의 수
(5) 확률이보다 큰 경우에 상기 선택된 소정 부계 크로스 오버 확률이 직접 유지 달리 교차하여 자손을 생산하는
2 개 개의 노드 값을 교환 즉 6 자손 돌연변이 동작
7은, 반복 회수가 종료되었는지 여부를 결정하는 최적의 솔루션을 반환 번호를 이동 단계 2.

초기 파라미터 데이터 :

피트니스 기능 :

선택 :

변화 :

크로스 :

초기 실행 :

넷째, 실험 결과 :

주요 매개 변수 : 인구 규모, 도시의 수, 최대 작동 대수, 크로스 오버 확률, 돌연변이 확률

인구 크기의 결과에 대한 1, 영향

상수 매개 변수

변수 매개 변수 : 인구

인구는 M = 50 :

 

인구 M은 200 =

결론 : 인구수가 올바른 용액 실질적 알고리즘을 얻을 수있는 경우보다 동일하거나 큰 경우, 상술 한 상황에서, 알고리즘 (40)는 최단 거리의 100 %를 얻었다 아니라 최상의 경로는 작은 모집단 수렴 속도 대수 안정성 실패.

2, 대수 작업의 결과에 가장 큰 영향

상수 매개 변수

변수 매개 변수 : 최대 값은 대수 운영

결론 : 안정된 동작을 달성하기 위해 수학적 알고리즘을 운영 최대 1000 개의 결과 때 상기 상황에서, 다음의 알고리즘의 효율이 비교적 높고, (안정적으로 최단 경로를 수득).

시는 1 만 100 % 정확 도달하지만, 2000 년대는 불필요한 후에 내가 계산 할 수 있도록 최선의 경로가 2000 년 내에 대수 안정성을 대신 표시, 최적의 파라미터 2000 대수 알고리즘을 운영 최대.

3, 충격의 결과에 대한 도시의 수

상수 매개 변수

변수 매개 변수 : 도시의 수

도시의 수 N = 10 :

 

城市数量N=50:

 结论:上述情况下,当城市数量<=20时,算法100%的到正确解。当城市数量越大,越难得到最优解。

调整分以下情况:

(1)其他参数不变,种群规模逐渐调到150时,算法结果稳定。
(2)其他参数不变,最大运行代数逐渐调到10000时,算法结果稳定。
(3)其他参数不变,交叉概率不管怎么调,算法都得不到最优解。但是将种群规模调大到40,交叉概率调为0.1时,算法结果趋于稳定
综合(1)(2)(3)发现似乎一开始交叉概率就有问题,对于该算法交叉概率应该调低。当交叉概率较高时无论是提高种群规模还是最大运行代数,代价都太大。

추천

출처www.cnblogs.com/cenyan/p/11889895.html