필터 지우기
필터 지우기

if i have two vector how to perform single crossover?

조회 수: 5 (최근 30일)
Firas Al-Kharabsheh
Firas Al-Kharabsheh 2016년 5월 9일
댓글: ALA SHARAF 2019년 5월 9일
if i have
p1 = [ 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1]
p2 = [ 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0]
how to perform single crossover
c1 = [ 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0]
c2 = [ 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1]

채택된 답변

Star Strider
Star Strider 2016년 5월 9일
This is how I do it in genetic algorithm programming:
p1 = [ 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1];
p2 = [ 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0];
CrossoverIndex = 12; % This Would Usually Be Random
c1 = [p1(1:CrossoverIndex) p2(CrossoverIndex+1:end)];
c2 = [p2(1:CrossoverIndex) p1(CrossoverIndex+1:end)];
Producing:
c1 = 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0
c2 = 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1
  댓글 수: 4
Md. Kawsar Ahmed Asif
Md. Kawsar Ahmed Asif 2018년 5월 26일
Thanks a lot once again Star Strider. Now i've got it... But what about for 2-point crossover like Partially Mapped or Matched Crossover (PMX). Suppose i have two parents as following, (here i'm taking two crossover point at 3rd and 4th position)
P1 = [3 1 2 5 4]
P2 = [2 1 5 4 3] , will produce the 1st Offspring as
C1 = [4 1 2 5 3]
Again,
P2 = [2 1 5 4 3]
P1 = [3 1 2 5 4] , wili produce the remaining 2nd Offspring as
C2 = [3 1 5 4 2]
Now how can i get these Two Offspring proceeding by 'Position Wise Exchanging'? (Where two parents are mapped to each other).
Thank You
ALA SHARAF
ALA SHARAF 2019년 5월 9일
Is this two point crossover. Here actually no crossover between parents. only swapping first and last element of a parent and producing a new child.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Hassan Sarfraz
Hassan Sarfraz 2018년 9월 6일
Thanks... but how to get these parents from these childs again?

카테고리

Help CenterFile Exchange에서 Genetic Algorithm에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by