O algoritmo genético e suas possíveis aplicações - página 3

 
Igor Makanu:

É adequado, no modo de otimização genética por "Máximo critério do usuário" GA do testador irá maximizar o resultado obtido do duplo OnTester() - tudo funciona, mas há um problema na automação "para animar GA" quando ele começa a convergir em torno do máximo local encontrado e não quer procurar outras variantes por parâmetros de entrada, em geral no ajuste fino GA tem que ajudar adicionando condições ao OnTester() ou dividindo os parâmetros de otimização em vários intervalos

A propósito, como implementá-la? Também começou a pensar em fazer isso dessa maneira.

Tag Konow:
Você quer dizer "inteligente" - otimizado e adaptado a um determinado ambiente?

Bem, sim, a seleção é sempre feita por algum critério. A propósito, o critério em si pode mudar com gerações, se necessário.

 
Реter Konow:
Você quer dizer "inteligente" - otimizado e adaptado a um ambiente particular?

OK. Criar um ambiente fechado, a partir de um complexo de sistemas que interagem. Por exemplo: indivíduos de três genes "devoram" (anexam e crescem) indivíduos de dois genes se não conseguem "escapar" deles (digamos que os genes X e Y são coordenadas no avião). O indivíduo de três genes tem um gene Z adicionado - a terceira dimensão. Tem uma vantagem. A tarefa do indivíduo de dois genes é sobreviver e não ser pego, e a tarefa do indivíduo de três genes é pegar os dois genes o mais rápido possível e economizar tempo e recursos.

O objetivo: o indivíduo geneticamente mais fraco deve calcular o geneticamente mais forte para sobreviver.
Nós sabemos - um indivíduo tri-gênico "vê" um di-gênico no avião, como uma ave vê um rato no campo, e um di-gênico percebe tudo em duas dimensões e, portanto, desconhece o inimigo que se aproxima até o último momento. Entretanto, em um grande grupo, há muitos indivíduos bigenéticos e cada um captura os eventos de devorar seus membros da tribo - onde e quando foram capturados. Assim, os dvigens podem formar "percepções" generalizadas - experiência e conhecimento adquiridos de todas as gerações sobre quais os obstáculos naturais no espaço tridimensional que seus inimigos possuem e como melhor se adaptar para sobreviver.
 
Aleksey Mavrin:

A propósito, como você implementa isso? Também comecei a pensar em fazer desta maneira.

é um trabalho normal com o testador - primeiro você define todos os parâmetros para otimização, depois você testa até o momento em que o testador começa a traçar linhas horizontais em cada passagem - este é um sinal de que o GA convergiu em torno de um máximo local, depois você vê na aba de otimização quais parâmetros GA pararam de mudar, e então a próxima otimização é executada, quebrando estes parâmetros (que GA não muda) em outros intervalos, embora muitas vezes seja suficiente reiniciar o testador removendo (salvando) as caches de otimização - o GA é inicializado acidentalmente.

 
Igor Makanu:

é um trabalho normal com o testador - primeiro você define todos os parâmetros para otimização, depois você testou até o momento em que o testador começa a traçar linhas horizontais em cada passagem - é um sinal de que o GA convergiu em torno de um máximo local, depois você vê quais parâmetros GA pararam de mudar na aba de otimização e, em seguida, a próxima otimização é feita quebrando esses parâmetros (que GA não muda) em outros intervalos, embora muitas vezes seja suficiente reiniciar o testador removendo (salvando) as caches de otimização - GA inicializará

Acho que a GA deve convergir para um máximo geral (não local) se a etapa de mudança de parâmetro for suficientemente baixa. Se o passo for muito alto, a mudança de intervalo não ajudará, os máximos podem deslizar entre os valores vizinhos.

Então é mais simples fazer uma enumeração completa com o passo mais baixo, e depois GA, eliminando as piores faixas.

 
Aleksey Mavrin:

Depois, é mais fácil ir para cima com o passo mais baixo, e depois GA, eliminando as piores faixas.

não é mais fácil, aqui está minha EA otimizada:


uma passagem de um único teste deste EA durante 1,5 anos leva 1,5-2 segundos, no otimizador aproximadamente a mesma velocidade, você pode estimar quanto levará uma busca completa, e GA dentro de 20-50 minutos eu já encontrei resultados que me satisfazem

 
Igor Makanu:

não é mais fácil, aqui está minha EA sendo otimizada:


uma passagem de um único teste deste EA em 1,5 anos leva 1,5-2 segundos, o otimizador tem aproximadamente a mesma velocidade, você pode estimar quanto tempo leva para fazer uma corrida completa, e GA dentro de 20-50 minutos eu já encontrei resultados que me satisfazem

Quando o número de passes é exibido cientificamente, é o dígito genético que transborda, e não funciona (se funcionar). Tive que fazê-lo:

1. Reduzir o número de passos. Para evitar que a contagem de passos fosse grosseira e para cobrir o intervalo desejado, fiz a contagem de passos não lineares. Alterando o parâmetro 0,001-0,099, 0,01-0,99, 0,1-9,9, ... Isto é, passo com uma precisão de cerca de 1%.

2. Reduzir o número de variáveis a serem otimizadas, e isto é o principal.

2а. Dividir as variáveis em grupos que são (grupos) quase independentes e otimizar separadamente.

2б. Encontre variáveis que dependam de outra e ligue-as. Eu removi algumas variáveis desta forma, após um longo alvoroço.

2в. Encontre variáveis que possam ser feitas constantes ao custo de uma minúscula diminuição na rentabilidade. Também encontrado.

3. e reduzir a gama de variáveis após muitas avaliações.

Até que eu fiz tais sacrifícios, minha otimização não foi eficaz. Trata-se de uma otimização com demasiadas variáveis. Isto em si é errado, mas alguns especialistas evoluem para a simplificação e não para a complicação.

 
Igor Makanu:

não é mais fácil, aqui está minha EA sendo otimizada:


uma passagem de um único teste deste EA em 1,5 anos leva 1,5-2 segundos, no otimizador aproximadamente a mesma velocidade, você pode estimar quanto tempo leva uma enumeração completa, e GA dentro de 20-50 minutos já encontro resultados que me satisfazem

Esta é uma questão de complexidade do sistema. Eu estava discutindo isso no tópico GU. Tomo 3-5 passos para uma enumeração completa. Você tem 18 parâmetros na captura de tela, seria (3-5)^18 = 400M a 3,8 trilhões, já com pena, embora seja muito, e o mais importante é que é muito, eu faço uma busca completa não em todos, e tendo consertado alguns, e em grupos, que então já juntos na GA determinou - estreitando a GM.

e concordar completamente com uma declaração mais detalhada

Edgar Akhmadeev:

Quando o número de passes é exibido cientificamente, é a digitalização genética que fica sobrecarregada e não funciona (se é que funciona). Tive que fazê-lo:

1. Reduzir o número de passos. Para evitar que a contagem de passos fosse grosseira e para cobrir o intervalo desejado, fiz a contagem de passos não lineares. Alterando o parâmetro 0,001-0,099, 0,01-0,99, 0,1-9,9, ... Isto é, passo com uma precisão de cerca de 1%.

2. Reduzir o número de variáveis a serem otimizadas, e isto é o principal.

2а. Dividir as variáveis em grupos que são (grupos) quase independentes e otimizar separadamente.

2б. Encontre variáveis que dependam de outra e ligue-as. Eu removi algumas variáveis desta maneira, depois de um longo alvoroço.

2в. Encontre variáveis que possam ser feitas constantes ao custo de uma minúscula diminuição na rentabilidade. Também encontrado.

3. e reduzir a gama de variáveis após muitas avaliações.

Até que eu fiz tais sacrifícios, minha otimização não foi eficaz. Trata-se de uma otimização com demasiadas variáveis. Isto em si é errado, mas alguns especialistas evoluem para a simplificação e não para a complicação.

todos têm seus próprios métodos, em essência todos provavelmente entendem.
 
Edgar Akhmadeev:

Quando o número de passes é exibido cientificamente, é a digitalização genética que transborda e funciona completamente mal (se é que funciona de todo).


O que você quer dizer com "funciona completamente errado"?

Como se pode reproduzir o erro do trabalho?

 
Edgar Akhmadeev:

Quando o número de passes é exibido na forma científica, é o excesso de dígitos genéticos, e não funciona (se funcionar).

comigo GA funciona sem ambigüidade, eu escrevo no arquivo de configurações EA de passes bem sucedidos, eu crio o nome do arquivo a partir do hash MD5 dos próprios parâmetros de otimização de entrada, ou seja, durante a otimização eu vejo os arquivos aparecerem na pasta Common

Eu tenho apenas um problema até agora - em algum tempo a AG pode começar a convergir em torno de um pequeno grupo de parâmetros de otimização - eu acho que isso é normal, todas as AG funcionam dessa forma e é um problema de seu uso

Mas sem ambigüidade a GA funciona e não é pendurada - eu vejo isso nos arquivos adicionados e nomes únicos

 
Slava:

O que você quer dizer com "não funciona de forma alguma corretamente"?

Como posso reproduzir o mau funcionamento?

Escrevi sobre isso há muito tempo, quando usava armações na EA. Não me lembro mais do ponto exato, acho que comecei a não ter todos os quadros chegando (com melhores resultados). Vou procurar postos antigos e tentar esclarecer.

Mas lembro-me claramente que era claramente reproduzível em meu Consultor Especialista - assim que o número de excessos ultrapassou um certo número e foi exibido em uma forma científica, minha genética foi quebrada. O importante não era apenas um grande número de passos de uma variável, mas também um grande número de variáveis.