Discussão do artigo "Algoritmos de otimização populacionais: algoritmo genético binário (Binary Genetic Algorithm, BGA). Parte I"
Leia. O que está faltando é um diagrama que mostre a representação geral de um algoritmo de otimização.
Para todos os algoritmos de otimização, sem exceção, não apenas para o GA, a ordem dos operadores (métodos) é sempre a mesma, na ordem do Índice:
1. Seleção.
2. Crossover.
3. mutação.
Cada algoritmo específico pode não ter um ou dois operadores, mas a ordem é sempre essa. Essa ordem certamente pode ser justificada logicamente e relacionada a probabilidades, e o objetivo de qualquer algoritmo de otimização é somar uma combinação de probabilidades a favor da solução do problema.
Há também um quarto método, o método de colocar novos indivíduos em uma população, mas ele geralmente não é identificado como um método autônomo.
Talvez, sim, faça sentido desenhar um diagrama da estrutura de um "algoritmo de otimização", vou pensar sobre isso.
Em todos os algoritmos de otimização, sem exceção, e não apenas no GA, a ordem dos operadores (métodos) é sempre a mesma
for (uint i = epochCount; (bool)i--;) { AO.Moving() // Moving(i) for (uint set = ArraySize(AO.aName); (bool)set--;) AO.aName[set].f = FF(AO.aName[set].c); AO.Revision(); }
Não consegui entender por que alguns algoritmos de movimentação têm movimentação sem entradas e outros com entradas.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Algoritmos de otimização populacionais: algoritmo genético binário (Binary Genetic Algorithm, BGA). Parte I foi publicado:
Neste artigo, vamos realizar um estudo sobre vários métodos aplicados em algoritmos genéticos binários e outros algoritmos populacionais. Vamos examinar os componentes principais do algoritmo, como seleção, crossover e mutação, bem como seu impacto no processo de otimização. Além disso, vamos explorar as formas de representação de informações e seu impacto nos resultados de otimização.
Os parâmetros dos problemas de otimização são frequentemente chamados de "características" e devem ser representados de certa forma para serem usados na lógica do algoritmo de otimização. Na genética, essas características são divididas em fenótipo e genótipo. O fenótipo representa a aparência externa do parâmetro a ser otimizado, enquanto o genótipo é a forma como ele é representado no algoritmo. Na maioria dos algoritmos de otimização, o fenótipo coincide com o genótipo e é representado como um número real. O gene é um parâmetro a ser otimizado, enquanto o cromossomo é um conjunto de genes, ou seja, um conjunto de parâmetros a serem otimizados.
A representação em número real é usada para representar números fracionários. Números reais podem ter uma parte inteira e uma parte fracionária, separadas por um ponto decimal. Por exemplo, "3.14" e "0.5" são números reais.
A representação binária de dados, por outro lado, usa o sistema de numeração binária, onde os números são representados usando dois símbolos: "0" e "1" e cada dígito é chamado de bit (de "binary digit"). Por exemplo, o número "5" pode ser representado em binário como "101".
A principal diferença entre a representação real e binária dos dados está na forma de codificar os números. Os números reais geralmente são codificados usando padrões como o IEEE 754, que define formatos para representar números de ponto flutuante. Na linguagem MQL5, para números reais é usado o tipo de dados "double", que pode descrever no total 16 dígitos significativos em um número. Isso significa que o número total de dígitos não pode ser maior que dezesseis, por exemplo, "9 999 999 999 999 999.0" e "9 999 999.999 999 99" e "0.999 999 999 999 999 9" têm dezesseis dígitos "9" no total antes e depois do ponto decimal. Por que isso é importante vamos entender mais adiante.
Números reais são convenientes para uso na programação e no cotidiano, enquanto a representação binária é usada para trabalhar em sistemas de computação e realizar operações em baixo nível, como operações lógicas e operações bit a bit.
Autor: Andrey Dik