Introdução teórica aos algoritmos genéticos

IA Expert Academy
31 Mar 202219:16

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

00:00

🧬 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.

05:02

📊 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.

10:03

🔄 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.

15:06

🔄 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

A genetic algorithm is a type of evolutionary algorithm used to find optimal solutions to complex problems. It is inspired by the process of natural selection, where the strongest individuals are selected for breeding to produce offspring. In the context of the video, genetic algorithms are used to find the best solution for flight scheduling, aiming to minimize both cost and waiting time.

💡Population

In the script, 'population' refers to a set of possible solutions or individuals, each representing a potential answer to the problem at hand. The initial population is randomly generated, and each individual within this population is evaluated for its fitness. The video uses the example of a population of five individuals, each with different flight arrangements, to illustrate this concept.

💡Chromosome

A chromosome, in the context of genetic algorithms, is an array of genes that represents a single solution to the problem. Each chromosome is a vector of integers, where each integer represents a flight option. The video explains that chromosomes are composed of genes, and together they form a complete solution, such as a set of flights for a person.

💡Gene

A gene is the basic unit of遗传 information in a chromosome. In the video, each gene represents a specific flight option, such as the second flight of the day to Rome or the fourth flight back. Genes are the integers within the chromosome array that define the solution.

💡Fitness Function

The fitness function is a key component of genetic algorithms that evaluates the quality of each solution. It measures how well an individual meets the problem's objectives. In the video, the fitness function is used to assess the cost of each flight arrangement, with the goal of minimizing both flight cost and waiting time at the airport.

💡Selection

Selection is the process of choosing the best individuals from the current population to be parents and pass their genes to the next generation. The video describes two common selection methods: selecting a percentage of the best individuals or using a roulette wheel selection based on their fitness scores.

💡Crossover

Crossover, also known as recombination, is a genetic operator used to combine the genes of two parents to create offspring. The video explains that a random cut point is selected, and genes from each parent are swapped to form new chromosomes, which are then evaluated for their fitness.

💡Mutation

Mutation is a genetic operator that introduces random changes in a gene to maintain diversity within the population. The video describes how a gene might be altered, for example, changing a flight number from 6 to 7, to ensure that the population does not become too similar and to explore new potential solutions.

💡Termination Criterion

A termination criterion is a condition that stops the genetic algorithm once a certain goal is met or a certain number of generations have passed. The video mentions running the algorithm for a set number of iterations, such as 50 or 100 times, as a possible termination criterion.

💡Generation

In genetic algorithms, a generation refers to a complete cycle of the algorithm, including selection, crossover, mutation, and evaluation. The video discusses how each generation produces new individuals based on the parents, and the process is repeated until the termination criterion is met.

💡Survivor Selection

Survivor selection is the process of choosing which individuals from the current generation will continue to the next generation. The video explains that this can be done by maintaining a certain percentage of the best individuals, as determined by their fitness scores.

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

play00:00

sejam bem-vindos a essa aula que você

play00:02

vai aprender a teoria sobre os

play00:04

algoritmos genéticos Relembrando que

play00:07

primeiramente nós trabalhamos com a

play00:09

representação do problema dos voos e

play00:12

vamos utilizar aquela representação que

play00:16

foi implementada nas aulas anteriores

play00:18

para você entender o passo a passo de um

play00:22

algoritmo genético e o entendimento será

play00:25

feito por meio de um fluxograma a

play00:28

primeira etapa é a população Inicial uma

play00:33

população é composta por um conjunto com

play00:37

várias soluções ou vários indivíduos por

play00:42

exemplo nós podemos girar essa lista com

play00:46

cinco possíveis soluções Note que nós

play00:50

temos os voos da primeira pessoa nas

play00:54

duas posições os voos da segunda da

play00:59

terceira da quarta da quinta e por

play01:03

último nas duas últimas posições são os

play01:06

voos da sexta pessoa Relembrando que o

play01:10

número um indica o segundo voo do dia o

play01:14

número TR representa o quarto voo do dia

play01:19

isso indica que a primeira pessoa vai

play01:22

pegar o segundo voo do dia até Roma e o

play01:27

quarto voo do dia de Roma até a cidade

play01:31

de origem com relação ao 4 e o um a

play01:35

segunda pessoa vai pegar o quinto voo da

play01:40

sua cidade de origem até Roma e o um

play01:44

indica que ela vai pegar o segundo voo

play01:48

de Roma até a sua cidade de origem isso

play01:52

acontece pelo fato de que os índices no

play01:55

Python começam com zero e nós precisamos

play01:58

fazer a geração S de várias soluções

play02:02

aleatórias esse problema é representado

play02:06

por números inteiros e como existem 10

play02:10

voos disponíveis na nossa base de dados

play02:15

nós precisamos girar valores aleatórios

play02:18

entre 0 e 9 0 indica o primeiro voo do

play02:24

dia enquanto que nove indica o último

play02:29

voo do dia e na primeira etapa do

play02:32

algoritmo genético nós precisamos

play02:35

indicar qual é o número da população Ou

play02:40

seja a população é composta por quantos

play02:44

indivíduos nesse exemplo nós estamos

play02:47

colocando somente cinco indivíduos porém

play02:50

nas implementações em geral nós podemos

play02:53

criar uma população com 50 100 200

play02:57

indivíduos depende da Complex ade do

play03:00

problema cada um desses vetores de

play03:04

possíveis soluções Conforme você já

play03:07

aprendeu são chamados de

play03:10

indivíduos ou também mais Tecnicamente

play03:13

na área de algoritmo genético são

play03:16

chamados dos

play03:19

cromossomos nós temos o primeiro

play03:21

cromossomo o segundo o terceiro o quarto

play03:25

e o quinto cromossomo um cromossomo é

play03:29

com composto por um conjunto de genes

play03:34

cada um desses voos ou desses números

play03:38

inteiros é chamado de gene essa é a

play03:42

primeira parte do algoritmo genético na

play03:45

qual Nós criamos uma população Inicial

play03:49

totalmente randômica não é utilizada

play03:52

nenhuma técnica para fazer a

play03:55

inicialização Digamos que inteligente

play03:58

desses valores é feito de forma

play04:01

totalmente aleatória se nós temos nove

play04:03

voos vamos selecionar um número

play04:06

aleatório entre 0 e 9 e depois que o

play04:10

algoritmo genético vai se adaptando a

play04:14

esses números para que nós consigamos

play04:17

ter resultados melhores na sequência nós

play04:20

vamos avaliar essa população que é feito

play04:25

por meio da função de fitness ou seja

play04:30

nós vamos enviar cada um desses

play04:34

cromossomos para a função de avaliação

play04:37

que vai retornar Qual é o custo de cada

play04:42

uma dessas soluções ou de cada um desses

play04:46

indivíduos Relembrando que nesse exemplo

play04:50

nós precisamos minimizar o preço das

play04:54

passagens e também minimizar o tempo de

play04:59

espera er no aeroporto nós podemos

play05:02

considerar que a primeira solução tem o

play05:05

custo de

play05:07

4.400 a segunda 5000 3000 6000 e

play05:14

2900 podemos observar que a melhor

play05:17

solução é a última pois apresenta um

play05:21

custo menor enquanto que a quarta

play05:26

solução é a pior delas pois a apresenta

play05:30

o custo maior que é igual a 6.000 e para

play05:35

fazer a avaliação nós utilizamos aquela

play05:38

função que foi implementada

play05:41

anteriormente que nós temos os cálculos

play05:44

do tempo des espera no aeroporto somado

play05:48

com os preços das passagens na sequência

play05:52

nós temos esse lozango que vai indicar o

play05:56

critério de parada pois você vai rodar o

play06:00

algoritmo genético por um número

play06:03

determinado de vezes por exemplo 50

play06:07

vezes 100 vezes 200 vezes vai depender

play06:11

da complexidade do problema se nós não

play06:14

chegamos nesse critério de parada nós

play06:18

vamos iniciar todo o processo repetitivo

play06:22

do algoritmo genético que é

play06:26

primeiramente selecionar os pais ou

play06:30

selecionar os melhores indivíduos vamos

play06:33

supor que desses cinco indivíduos nós

play06:36

queremos selecionar somente os três

play06:41

melhores dessa forma nós selecionar amos

play06:44

o

play06:45

2900 o 3.000 e o

play06:50

4400 pois são aqueles que possuem o

play06:53

custo menor os outros indivíduos nós

play06:56

podemos descartar que possui o valor

play06:59

5000 e 6.000 pois a solução já é um

play07:04

pouco mais alta do que os outros e podem

play07:07

ser utilizadas várias técnicas para nós

play07:10

selecionarmos os melhores indivíduos a

play07:14

mais comum é justamente você definir uma

play07:18

porcentagem por exemplo 20% dos melhores

play07:22

indivíduos ou 30% dos melhores

play07:26

indivíduos seleciona somente os melhores

play07:29

e descarta os outros vamos supor que

play07:32

existe uma população com 100 indivíduos

play07:36

e você define o percentual de seleção

play07:40

igual a

play07:42

0.20 dessa forma desses 100 indivíduos

play07:46

nós vamos ordenar os indivíduos

play07:50

utilizando a função de avaliação e

play07:53

selecionamos somente 20 os outros 80

play07:57

indivíduos são descartados se

play08:00

utilizarmos o percentual de

play08:03

30% desses 100 indivíduos nós

play08:07

selecionamos somente 30 e os outros 70

play08:12

São descartados essa inclusive que é a

play08:15

técnica que nós vamos implementar na

play08:18

sequência vai ficar mais fácil para você

play08:21

entender na implementação passo a passo

play08:25

existe uma outra maneira para você fazer

play08:28

a seleção dos

play08:30

que é a simulação de uma roleta perceba

play08:34

que nós temos a solução 1 a 2 A3 A4 e A5

play08:41

áreas maiores indicam funções de

play08:45

avaliação melhores nesse caso nós

play08:48

poderíamos considerar que essa área

play08:51

maior representa o

play08:54

2900 Ou seja a melhor solução a segunda

play08:59

maior área é o S4 que nós poderíamos

play09:04

considerar como a terceira solução que

play09:08

possui o valor 3.000 e podemos também

play09:11

considerar o S1 como o

play09:16

4400 que é a terceira melhor solução na

play09:21

implementação nós simulamos esse

play09:24

processo de girar uma roleta para fazer

play09:27

a seleção dos indivíduos que serão

play09:29

utilizados nas próximas etapas nós

play09:33

podemos chegar à conclusão que o S2 terá

play09:36

uma probabilidade muito maior de ser

play09:40

selecionado do que o 6.000 que pode ser

play09:44

representado pelo S3 que é a menor área

play09:48

pelo fato de que a solução não é tão boa

play09:52

assim dessa forma nós podemos selecionar

play09:56

os indivíduos ao invés de defir uma

play09:59

porcentagem e selecionarmos somente os

play10:02

melhores nós podemos simular esse

play10:05

processo da roleta e existe uma

play10:09

possibilidade dessa solução que é a pior

play10:13

também ser selecionada Diferentemente

play10:16

dessa primeira técnica que nós fazemos a

play10:20

ordenação Existem várias outras maneiras

play10:23

para você fazer a seleção dos melhores

play10:26

indivíduos Essas são as duas mais

play10:29

utilizadas e na implementação prática

play10:32

nós vamos trabalhar com essa primeira

play10:36

definir um valor de porcentagem depois

play10:39

que os melhores pais são

play10:42

selecionados nós podemos aplicar os

play10:46

operadores genéticos que são as

play10:49

principais e mais importantes operações

play10:53

nesse

play10:54

algoritmo primeiramente nós temos o

play10:57

crossover

play10:59

e Vamos considerar essas duas soluções

play11:03

Note que nós temos o

play11:07

75217 que é a terceira solução com o

play11:11

valor de 3.000 e temos a próxima solução

play11:16

que é o 353

play11:18

178 que

play11:20

representa a melhor solução com o custo

play11:24

de

play11:26

2.900 como elas são Soluções

play11:29

as que foram

play11:31

selecionadas nesse processo anterior nós

play11:34

podemos fazer a combinação delas nós

play11:38

selecionamos um ponto de corte por

play11:41

exemplo poderia ser na metade do vetor

play11:44

esse ponto de corte é selecionado

play11:47

aleatoriamente pode ser no início e

play11:50

também pode ser no final o processo de

play11:53

crossover é bastante simples Note que

play11:56

nós temos a cor vermelha para a parte

play12:00

inicial da terceira solução e o vermelho

play12:05

na parte final na quinta solução e por

play12:09

outro lado em azul nós temos a parte

play12:12

final da terceira solução e a parte

play12:16

inicial da quinta solução basicamente

play12:20

nós vamos fazer uma combinação para

play12:22

lembrar como é feita essa operação você

play12:26

pode associar com essa palavra crossover

play12:30

como se fosse por exemplo o formato de

play12:33

um x ou de uma cruz o azul com o azul e

play12:38

o vermelho com o vermelho Note que nós

play12:41

temos o resultado a primeira parte da

play12:45

terceira solução o 75

play12:49

2167 com a segunda parte da quinta

play12:54

solução que é o 43

play12:57

2769 nó podemos observar 75

play13:02

2167 combinado com o 43

play13:07

2769 e com relação ao Azul temos o 35

play13:14

3178 combinado com a última parte da

play13:17

terceira solução que é o 0 2 2 2 4 7 com

play13:23

isso nós utilizamos esses dois

play13:27

indivíduos que são os pais para fazer a

play13:31

geração de dois novos filhos esse que é

play13:36

o processo do crossover na sequência nós

play13:40

temos o operador genético da Mutação

play13:44

Vamos considerar essa solução 75

play13:49

2167

play13:51

0222 47 que representa a terceira

play13:55

solução e conforme ocorre na natureza a

play13:59

mutação é a mudança de um determinado

play14:03

gene do cromossomo Relembrando que

play14:07

cromossomo é o conjunto dos números e o

play14:11

gene é cada um dos voos ou dos números

play14:17

inteiros nós definimos uma probabilidade

play14:21

da Mutação ocorrer e com base nessa

play14:24

probabilidade nós simplesmente fazemos a

play14:28

alteração de um determinado gene nós

play14:31

aplicamos um processo

play14:34

randômico nesse vetor para selecionar um

play14:38

gene

play14:39

aleatoriamente e simplesmente fazemos a

play14:43

alteração desse Gene perceba que se nós

play14:47

selecionarmos esse voo que é o sétimo

play14:51

voo do dia nós podemos fazer a alteração

play14:55

ao invés da pessoa pegar o sétimo voo do

play14:58

dia ela ela vai pegar o primeiro voo do

play15:02

dia esse que é o processo da Mutação

play15:05

você escolhe um gene

play15:08

randomicamente e faz a alteração e essa

play15:12

alteração não necessariamente precisa

play15:15

ser um valor tão alto de se para zero

play15:19

mas você pode definir um parâmetro para

play15:22

configurar quantos passos você quer

play15:25

fazer a alteração por exemplo 6 pode ser

play15:30

mudado para 7 D6 pode ser mudado para 5

play15:34

seu parâmetro passo for igual a 1 se o

play15:38

passo for igual a 2

play15:40

D6 pode ir para 8 ou D6 pode mudar para

play15:46

quatro Esse é um parâmetro que você pode

play15:49

configurar com isso nós podemos chegar à

play15:52

conclusão de que os operadores genéticos

play15:55

são utilizados para criar novos

play15:59

indivíduos utilizando as características

play16:03

dos Pais assim como ocorre na natureza

play16:07

os genes dos filhos são a combinação dos

play16:11

genes dos Pais por meio da aplicação do

play16:15

crossover e também da Mutação depois que

play16:19

nós temos um novo conjunto de indivíduos

play16:23

gerados nós vamos fazer a avaliação da

play16:27

população novamente

play16:29

utilizando a mesma função que nós

play16:32

havíamos utilizado para avaliar a

play16:35

população Inicial e aplicamos o processo

play16:39

de apagar da memória aqueles indivíduos

play16:44

que possuem o fitness ou o resultado da

play16:48

função de avaliação não tão bons assim

play16:52

nós fazemos a ordenação e excluímos a

play16:56

população que possuem valores de solução

play16:59

altos com relação à população antiga nós

play17:03

podemos descartar com isso nós vamos

play17:06

definir a população sobrevivente que

play17:09

pode ser definida por meio do método da

play17:13

roleta ou então pela definição da

play17:16

porcentagem por exemplo vamos manter

play17:20

20% da população aqueles indivíduos ou

play17:25

aqueles cromossomos que possuem os

play17:28

melhores resultados e todo esse processo

play17:32

é executado várias e várias vezes até

play17:37

que nós consigamos chegar em resultados

play17:40

satisfatórios e esse critério de parada

play17:43

em geral é um número inteiro que você

play17:46

define por exemplo vamos executar o

play17:50

algoritmo por 10 gerações ou por 20 30

play17:56

100 gerações esse critério de parada é

play17:59

chamado do número de gerações e faz

play18:03

sentido chamar de geração pelo fato de

play18:07

que a cada rodada de todos esses

play18:11

processos nós temos uma nova geração com

play18:15

base nos pais nós geramos os filhos

play18:19

utilizando os operadores genéticos do

play18:22

crossover e da Mutação quando o critério

play18:26

de parada é atingido nós podemos listar

play18:30

os melhores indivíduos que são aqueles

play18:33

que apresentam as melhores soluções e

play18:36

você pode apresentar os 10 20 30

play18:40

melhores indivíduos ou então você Pode

play18:43

listar somente o melhor indivíduo de

play18:48

todas essas gerações aquele que terá um

play18:51

menor custo tanto do tempo de espera

play18:55

quanto do custo das passagens a

play18:59

Essa é a intuição básica sobre o

play19:02

algoritmo genético e na próxima aula nós

play19:05

vamos fazer a implementação passo a

play19:08

passo e vamos revisar todos esses

play19:11

processos que nós vimos obrigado e até

play19:14

Rate This

5.0 / 5 (0 votes)

関連タグ
Genetic AlgorithmsOptimizationFlight SchedulingMachine LearningAI TutorialAlgorithm TheoryCost MinimizationEfficiencyCodingData Science
英語で要約が必要ですか?