Ir para o conteúdo
chacal45

Alguém pode me ajuda a executar essa função (matlab)

Mensagens Recomendadas

chacal45

function [filho_cross]= crossover(pai_1, pai_2, prob_cross)
 pontos_crossover = floor(prob_cross*9);

 X = [1*ones(1,pontos_crossover) 2*ones(1,9 - pontos_crossover)];
 x = x(randperm(9));

 indices_1 = X-ones(1,9);
 indices_2 = abs(x-2*ones(1,9));

 if(rand(1,1)<=0.5)
genes_pai_1 =Pai_1.*indices_1;
genes_pai_2 =Pai_2.*indices_2;
filhos_cross_1 = genes_pai_1 +genes_pai_2;
 else
genes_pai_1 =Pai_1.*indices_2;
genes_pai_2 =Pai_2.*indices_1;
filhos_cross_1 = genes_pai_1 +genes_pai_2;
 end


Editado por Rui Carlos
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

pai_1 e pai_2 parecem ser arrays, em princípio de 9 posições. prob_cross deve ser um valor numérico (uma probabilidade, por isso deverá ser um valor entre 0 e 1).

A chamada pode ser algo como crossover([1,2,3,4,5,6,7,8,9], [9,8,7,6,5,4,3,2,1], 0.5).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.