Introdução teórica aos algoritmos genéticos
Summary
TLDRThis lecture introduces genetic algorithms, starting with the initial population creation, where individuals are represented as chromosomes with genes corresponding to flights. The script explains the evaluation using a fitness function, aiming to minimize costs and waiting times. It covers selection techniques like percentage-based and roulette wheel selection, and genetic operators like crossover and mutation. The process iterates until a stopping criterion, often a generation number, is met, ultimately yielding optimal solutions.
Takeaways
- 🌟 Genetic algorithms are used to solve optimization problems, such as flight scheduling, by simulating the process of natural evolution.
- 🧬 The initial step involves creating a random population of potential solutions, each represented as a chromosome composed of genes (integer values representing flights).
- 🔢 Each individual in the population is evaluated using a fitness function that considers factors like cost and waiting time to determine the quality of the solution.
- 🏆 Selection of parents is based on their fitness scores, with better solutions having a higher chance of being selected for producing offspring.
- 🎯 The crossover operator combines parts of two selected parent solutions to create new offspring, simulating genetic recombination.
- 🔄 Mutation is introduced by randomly altering a gene in a chromosome, which represents a change in the flight schedule, introducing diversity into the population.
- 🔄 The mutation process is controlled by a defined probability and can adjust genes by a set step value to maintain variability.
- 🔄 After generating new individuals through crossover and mutation, the population is re-evaluated to determine their fitness.
- 🔄 A survival selection process is applied to retain the best individuals, either by setting a percentage of the population to survive or using methods like roulette selection.
- 🔁 The genetic algorithm iteratively applies selection, crossover, mutation, and evaluation until a stopping criterion, such as a set number of generations, is met.
- 🏁 The final output is a set of the best solutions found over all generations, which aim to minimize both cost and waiting time for the flight scheduling problem.
Q & A
What is the initial step in a genetic algorithm as described in the script?
-The initial step in a genetic algorithm is creating an initial population, which consists of a set of solutions or individuals, represented by various possible solutions to the problem.
How are individuals in a genetic algorithm represented?
-Individuals in a genetic algorithm are represented as a set of genes, where each gene corresponds to a specific part of the solution, such as a flight in the example given.
What is the significance of the number 'TR' in the context of the flights representation?
-The number 'TR' represents the fourth flight of the day in the script's example, indicating the sequence of flights a person might take.
How does the genetic algorithm generate random solutions?
-The genetic algorithm generates random solutions by assigning random integers between 0 and 9 to represent the flights, with 0 indicating the first flight of the day and 9 indicating the last flight.
What is the purpose of the fitness function in a genetic algorithm?
-The fitness function in a genetic algorithm is used to evaluate each individual's solution, determining the cost of each solution, which includes minimizing both the flight ticket prices and the waiting time at the airport.
What is the role of the stopping criterion in a genetic algorithm?
-The stopping criterion in a genetic algorithm determines when to end the algorithm's execution, which can be based on a set number of iterations or when a satisfactory solution is found.
How are the best individuals selected for the next generation in the genetic algorithm?
-The best individuals are selected based on their fitness scores, either by defining a percentage of the best individuals to keep or using methods like the roulette wheel selection.
What is crossover in the context of genetic algorithms?
-Crossover is a genetic operator that combines parts of two selected solutions (parents) to create new offspring, done by selecting a cut point and swapping the segments of the parent solutions.
How is mutation implemented in a genetic algorithm?
-Mutation in a genetic algorithm involves randomly altering a gene in a chromosome with a certain probability, mimicking the natural mutation process to introduce variation in the gene pool.
What is the purpose of evaluating the new population after applying genetic operators?
-Evaluating the new population after applying genetic operators helps in identifying which individuals are better suited to the problem, allowing the algorithm to retain the best solutions and discard the less optimal ones.
How does the genetic algorithm ensure that the best solutions are not lost over generations?
-The genetic algorithm ensures that the best solutions are not lost by selecting the best individuals from the current population to create the next generation, thus preserving the best traits found so far.
Outlines
🧬 Introduction to Genetic Algorithms
This paragraph introduces the concept of genetic algorithms, focusing on their application to a flight scheduling problem. It explains the initial step of creating an initial population, which is a set of potential solutions represented by individuals or chromosomes. Each chromosome is a set of genes, where genes correspond to flights or integer numbers. The representation of the problem is done using integers, ranging from 0 to 9, representing the flights available in the database. The process of generating random solutions is emphasized, highlighting the importance of the initial population in genetic algorithms.
📊 Evaluating the Population
The second paragraph delves into the evaluation of the initial population using a fitness function. It discusses how each chromosome's cost is calculated by considering both the flight prices and waiting times at the airport. The aim is to minimize these costs. The paragraph also introduces the concept of a stopping criterion for the genetic algorithm, which could be a set number of iterations. If the stopping criterion is not met, the algorithm enters a repetitive process that includes selection of parents, application of genetic operators, and evaluation of the new population.
🔄 Selection and Genetic Operators
This section explains the process of selecting parent chromosomes for the next generation. It describes two common selection methods: percentage-based selection and roulette wheel selection. The paragraph then moves on to discuss genetic operators, specifically crossover, which combines parts of two parent chromosomes to create offspring. The crossover process is described in detail, emphasizing the random selection of a cut point and the swapping of gene segments between parents. The paragraph also touches on mutation, which is the alteration of a gene in a chromosome, simulating natural genetic mutation.
🔄 Crossover and Mutation in Action
The fourth paragraph continues the discussion on genetic operators, providing a detailed example of how crossover is performed with specific chromosome sequences. It then explains the mutation operator, which involves randomly selecting a gene and altering it based on a predefined mutation probability. The paragraph also discusses how mutation can be controlled by setting parameters such as the step size for gene alteration. The paragraph concludes by emphasizing that genetic operators are used to create new individuals with characteristics inherited from their parents, simulating natural genetic processes.
Mindmap
Keywords
💡Genetic Algorithm
💡Population
💡Chromosome
💡Gene
💡Fitness Function
💡Selection
💡Crossover
💡Mutation
💡Termination Criterion
💡Generation
💡Survivor Selection
Highlights
Introduction to genetic algorithms theory
Representation of flight scheduling problem
Explanation of initial population composition
Random generation of solutions for the initial population
Importance of individual and chromosome concepts
Role of genes in representing flights or integers
Evaluation of the initial population using fitness function
Minimizing cost and waiting time as the fitness goal
Criteria for stopping the genetic algorithm
Selection of parents from the population
Techniques for selecting the best individuals
Roulette selection method explained
Crossover operator to combine parents
Mutation operator to introduce gene changes
Evaluation of new population and selection process
Survivor selection method by percentage or roulette
Execution of genetic algorithm processes iteratively
Termination of algorithm after reaching a set number of generations
Listing the best individuals from all generations
Practical implementation of genetic algorithms in the next lesson
Transcripts
sejam bem-vindos a essa aula que você
vai aprender a teoria sobre os
algoritmos genéticos Relembrando que
primeiramente nós trabalhamos com a
representação do problema dos voos e
vamos utilizar aquela representação que
foi implementada nas aulas anteriores
para você entender o passo a passo de um
algoritmo genético e o entendimento será
feito por meio de um fluxograma a
primeira etapa é a população Inicial uma
população é composta por um conjunto com
várias soluções ou vários indivíduos por
exemplo nós podemos girar essa lista com
cinco possíveis soluções Note que nós
temos os voos da primeira pessoa nas
duas posições os voos da segunda da
terceira da quarta da quinta e por
último nas duas últimas posições são os
voos da sexta pessoa Relembrando que o
número um indica o segundo voo do dia o
número TR representa o quarto voo do dia
isso indica que a primeira pessoa vai
pegar o segundo voo do dia até Roma e o
quarto voo do dia de Roma até a cidade
de origem com relação ao 4 e o um a
segunda pessoa vai pegar o quinto voo da
sua cidade de origem até Roma e o um
indica que ela vai pegar o segundo voo
de Roma até a sua cidade de origem isso
acontece pelo fato de que os índices no
Python começam com zero e nós precisamos
fazer a geração S de várias soluções
aleatórias esse problema é representado
por números inteiros e como existem 10
voos disponíveis na nossa base de dados
nós precisamos girar valores aleatórios
entre 0 e 9 0 indica o primeiro voo do
dia enquanto que nove indica o último
voo do dia e na primeira etapa do
algoritmo genético nós precisamos
indicar qual é o número da população Ou
seja a população é composta por quantos
indivíduos nesse exemplo nós estamos
colocando somente cinco indivíduos porém
nas implementações em geral nós podemos
criar uma população com 50 100 200
indivíduos depende da Complex ade do
problema cada um desses vetores de
possíveis soluções Conforme você já
aprendeu são chamados de
indivíduos ou também mais Tecnicamente
na área de algoritmo genético são
chamados dos
cromossomos nós temos o primeiro
cromossomo o segundo o terceiro o quarto
e o quinto cromossomo um cromossomo é
com composto por um conjunto de genes
cada um desses voos ou desses números
inteiros é chamado de gene essa é a
primeira parte do algoritmo genético na
qual Nós criamos uma população Inicial
totalmente randômica não é utilizada
nenhuma técnica para fazer a
inicialização Digamos que inteligente
desses valores é feito de forma
totalmente aleatória se nós temos nove
voos vamos selecionar um número
aleatório entre 0 e 9 e depois que o
algoritmo genético vai se adaptando a
esses números para que nós consigamos
ter resultados melhores na sequência nós
vamos avaliar essa população que é feito
por meio da função de fitness ou seja
nós vamos enviar cada um desses
cromossomos para a função de avaliação
que vai retornar Qual é o custo de cada
uma dessas soluções ou de cada um desses
indivíduos Relembrando que nesse exemplo
nós precisamos minimizar o preço das
passagens e também minimizar o tempo de
espera er no aeroporto nós podemos
considerar que a primeira solução tem o
custo de
4.400 a segunda 5000 3000 6000 e
2900 podemos observar que a melhor
solução é a última pois apresenta um
custo menor enquanto que a quarta
solução é a pior delas pois a apresenta
o custo maior que é igual a 6.000 e para
fazer a avaliação nós utilizamos aquela
função que foi implementada
anteriormente que nós temos os cálculos
do tempo des espera no aeroporto somado
com os preços das passagens na sequência
nós temos esse lozango que vai indicar o
critério de parada pois você vai rodar o
algoritmo genético por um número
determinado de vezes por exemplo 50
vezes 100 vezes 200 vezes vai depender
da complexidade do problema se nós não
chegamos nesse critério de parada nós
vamos iniciar todo o processo repetitivo
do algoritmo genético que é
primeiramente selecionar os pais ou
selecionar os melhores indivíduos vamos
supor que desses cinco indivíduos nós
queremos selecionar somente os três
melhores dessa forma nós selecionar amos
o
2900 o 3.000 e o
4400 pois são aqueles que possuem o
custo menor os outros indivíduos nós
podemos descartar que possui o valor
5000 e 6.000 pois a solução já é um
pouco mais alta do que os outros e podem
ser utilizadas várias técnicas para nós
selecionarmos os melhores indivíduos a
mais comum é justamente você definir uma
porcentagem por exemplo 20% dos melhores
indivíduos ou 30% dos melhores
indivíduos seleciona somente os melhores
e descarta os outros vamos supor que
existe uma população com 100 indivíduos
e você define o percentual de seleção
igual a
0.20 dessa forma desses 100 indivíduos
nós vamos ordenar os indivíduos
utilizando a função de avaliação e
selecionamos somente 20 os outros 80
indivíduos são descartados se
utilizarmos o percentual de
30% desses 100 indivíduos nós
selecionamos somente 30 e os outros 70
São descartados essa inclusive que é a
técnica que nós vamos implementar na
sequência vai ficar mais fácil para você
entender na implementação passo a passo
existe uma outra maneira para você fazer
a seleção dos
que é a simulação de uma roleta perceba
que nós temos a solução 1 a 2 A3 A4 e A5
áreas maiores indicam funções de
avaliação melhores nesse caso nós
poderíamos considerar que essa área
maior representa o
2900 Ou seja a melhor solução a segunda
maior área é o S4 que nós poderíamos
considerar como a terceira solução que
possui o valor 3.000 e podemos também
considerar o S1 como o
4400 que é a terceira melhor solução na
implementação nós simulamos esse
processo de girar uma roleta para fazer
a seleção dos indivíduos que serão
utilizados nas próximas etapas nós
podemos chegar à conclusão que o S2 terá
uma probabilidade muito maior de ser
selecionado do que o 6.000 que pode ser
representado pelo S3 que é a menor área
pelo fato de que a solução não é tão boa
assim dessa forma nós podemos selecionar
os indivíduos ao invés de defir uma
porcentagem e selecionarmos somente os
melhores nós podemos simular esse
processo da roleta e existe uma
possibilidade dessa solução que é a pior
também ser selecionada Diferentemente
dessa primeira técnica que nós fazemos a
ordenação Existem várias outras maneiras
para você fazer a seleção dos melhores
indivíduos Essas são as duas mais
utilizadas e na implementação prática
nós vamos trabalhar com essa primeira
definir um valor de porcentagem depois
que os melhores pais são
selecionados nós podemos aplicar os
operadores genéticos que são as
principais e mais importantes operações
nesse
algoritmo primeiramente nós temos o
crossover
e Vamos considerar essas duas soluções
Note que nós temos o
75217 que é a terceira solução com o
valor de 3.000 e temos a próxima solução
que é o 353
178 que
representa a melhor solução com o custo
de
2.900 como elas são Soluções
as que foram
selecionadas nesse processo anterior nós
podemos fazer a combinação delas nós
selecionamos um ponto de corte por
exemplo poderia ser na metade do vetor
esse ponto de corte é selecionado
aleatoriamente pode ser no início e
também pode ser no final o processo de
crossover é bastante simples Note que
nós temos a cor vermelha para a parte
inicial da terceira solução e o vermelho
na parte final na quinta solução e por
outro lado em azul nós temos a parte
final da terceira solução e a parte
inicial da quinta solução basicamente
nós vamos fazer uma combinação para
lembrar como é feita essa operação você
pode associar com essa palavra crossover
como se fosse por exemplo o formato de
um x ou de uma cruz o azul com o azul e
o vermelho com o vermelho Note que nós
temos o resultado a primeira parte da
terceira solução o 75
2167 com a segunda parte da quinta
solução que é o 43
2769 nó podemos observar 75
2167 combinado com o 43
2769 e com relação ao Azul temos o 35
3178 combinado com a última parte da
terceira solução que é o 0 2 2 2 4 7 com
isso nós utilizamos esses dois
indivíduos que são os pais para fazer a
geração de dois novos filhos esse que é
o processo do crossover na sequência nós
temos o operador genético da Mutação
Vamos considerar essa solução 75
2167
0222 47 que representa a terceira
solução e conforme ocorre na natureza a
mutação é a mudança de um determinado
gene do cromossomo Relembrando que
cromossomo é o conjunto dos números e o
gene é cada um dos voos ou dos números
inteiros nós definimos uma probabilidade
da Mutação ocorrer e com base nessa
probabilidade nós simplesmente fazemos a
alteração de um determinado gene nós
aplicamos um processo
randômico nesse vetor para selecionar um
gene
aleatoriamente e simplesmente fazemos a
alteração desse Gene perceba que se nós
selecionarmos esse voo que é o sétimo
voo do dia nós podemos fazer a alteração
ao invés da pessoa pegar o sétimo voo do
dia ela ela vai pegar o primeiro voo do
dia esse que é o processo da Mutação
você escolhe um gene
randomicamente e faz a alteração e essa
alteração não necessariamente precisa
ser um valor tão alto de se para zero
mas você pode definir um parâmetro para
configurar quantos passos você quer
fazer a alteração por exemplo 6 pode ser
mudado para 7 D6 pode ser mudado para 5
seu parâmetro passo for igual a 1 se o
passo for igual a 2
D6 pode ir para 8 ou D6 pode mudar para
quatro Esse é um parâmetro que você pode
configurar com isso nós podemos chegar à
conclusão de que os operadores genéticos
são utilizados para criar novos
indivíduos utilizando as características
dos Pais assim como ocorre na natureza
os genes dos filhos são a combinação dos
genes dos Pais por meio da aplicação do
crossover e também da Mutação depois que
nós temos um novo conjunto de indivíduos
gerados nós vamos fazer a avaliação da
população novamente
utilizando a mesma função que nós
havíamos utilizado para avaliar a
população Inicial e aplicamos o processo
de apagar da memória aqueles indivíduos
que possuem o fitness ou o resultado da
função de avaliação não tão bons assim
nós fazemos a ordenação e excluímos a
população que possuem valores de solução
altos com relação à população antiga nós
podemos descartar com isso nós vamos
definir a população sobrevivente que
pode ser definida por meio do método da
roleta ou então pela definição da
porcentagem por exemplo vamos manter
20% da população aqueles indivíduos ou
aqueles cromossomos que possuem os
melhores resultados e todo esse processo
é executado várias e várias vezes até
que nós consigamos chegar em resultados
satisfatórios e esse critério de parada
em geral é um número inteiro que você
define por exemplo vamos executar o
algoritmo por 10 gerações ou por 20 30
100 gerações esse critério de parada é
chamado do número de gerações e faz
sentido chamar de geração pelo fato de
que a cada rodada de todos esses
processos nós temos uma nova geração com
base nos pais nós geramos os filhos
utilizando os operadores genéticos do
crossover e da Mutação quando o critério
de parada é atingido nós podemos listar
os melhores indivíduos que são aqueles
que apresentam as melhores soluções e
você pode apresentar os 10 20 30
melhores indivíduos ou então você Pode
listar somente o melhor indivíduo de
todas essas gerações aquele que terá um
menor custo tanto do tempo de espera
quanto do custo das passagens a
Essa é a intuição básica sobre o
algoritmo genético e na próxima aula nós
vamos fazer a implementação passo a
passo e vamos revisar todos esses
processos que nós vimos obrigado e até
lá
関連動画をさらに表示
What is Genetic Algorithm? | Matlab Code of Genetic Algorithm
What are Genetic Algorithms?
Sources of genetic variation | Inheritance and variation | High school biology | Khan Academy
IPA Kelas 9 : Pewarisan Sifat I (Materi Genetik : Kromosom, DNA dan RNA)
What is Gene Mapping?
Pewarisan Sifat Kelas 9 SMP (Part-1)
5.0 / 5 (0 votes)