Ir ao conteúdo
  • Cadastre-se

Ture

Membro Júnior
  • Total de itens

    5
  • Registro em

  • Última visita

Reputação

1
  1. Olá pessoal. Tudo bem!? Estou enfrentando um problema simples mas que está me esquentando a cabeça, a questão é a seguinte: Quero fazer uma função que receba dois vetores. um vetor de distâncias que chamarei de "dist" que pode ser iniciado aleatoriamente para testes. A função também recebe um outro vetor que é o de agrupamento, que chamarei de "grupo", ambos os vetores tem o mesmo tamanho e o vetor grupo obrigatoriamente tem valores inteiros contínuos(fora de ordem)começando em 0. A saída dessa função é a soma das distâncias conforme o agrupamento grupo A saída des
  2. @fspjonny Opa. darei uma olhada, o conteúdo parece bastante interessante. Caso alguém ai esteja interessado em algoritmos genéticos achei esse link aqui do CdH mesmo que dá uma explicação sucinta mas boa do que se trata: https://www.clubedohardware.com.br/forums/topic/116581-algoritmos-genéticos/ Abraço a todos!
  3. Sim, trabalho com data science entre um punhado de outras coisas. O problema foi exatamente esse. Eu estava alterando toda vez o mesmo endereço da memória e adicionando na minha lista, como se estes fossem diferentes objetos na minha memória. O deepcopy foi a maneira mais simples que vi solucionar o problema, não realizei testes quanto a parte de custo mas no geral o crossover é uma das operações "leves" dentro de um algoritmo genético então não me preocupei muito com isso; Como funcionou eu fui por ai mesmo. A área é realmente bem instigante, estou começando a mexer com isso e é rea
  4. Pode fechar o post. Resolvido. O problema é que classes em python são passadas por referência e não por cópia como tratei ela. Precisei usar o método deepcopy para driblar o problema. Para os interessados segue a solução: def crossover(agents, population): offspring = [] filho1 = agents[0] filho2 = agents[0] for i in range((population - len(agents)) // 2): mask = [] for _ in range(len(agents[0])): mask.append(random.choice([0,1])) pai, mae = random.sample(agents, 2) for bit in range(len(mask)): if m
  5. Olá, estou implementando um GA do zero mas encontrei uma pedra: Na operação de crossover minha função acaba retornando diversos indivíduos iguais e não consigo identificar o porquê; Segue partes importantes para identificar o problema: Notem que atribuo fitness randômicas a fim de teste e o código é relativamente maior mas o meu problema parece se encontrar aqui! Peço que ignorem a "cara" dos meus indivíduos, é um GA para um problema bem específico incluindo um step de clusterização e seleção de features de cada cluster. import random import string import pandas as

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!