#include <geneticAlgorithm.h>
|
| | GeneticAlgorithm () |
| |
| | GeneticAlgorithm (Graph &graph) |
| |
| | GeneticAlgorithm (Graph &&graph) |
| |
| void | run () |
| | Define o número de gerações, o tamanho da população e a taxa de mutação para o algoritmo genético. Depois, cria a população de forma aleatória e começa a realizar mutações para cada geração. Mais...
|
| |
| void | createRandomPath (int numVertices, vector< int > &cities) |
| | Cria um caminho hamiltoniano aleatório. Mais...
|
| |
| void | mutateIndividual (Individual &individual, int numVertices, int numOfTries) |
| | Tenta mutar um indivíduo algumas vezes para que ele se torne melhor. Mais...
|
| |
| void | mutatePopulation (vector< Individual > &population, int mutationRate, int numVertices, Individual &bestPath) |
| | Faz as mutações em toda a população baseando-se na taxa de mutação. Mais...
|
| |
| bool | createIndividual (int numVertices, int i, Individual &individual, vector< Individual > &population) |
| | Cria um caminho para um indivíduo e checa se já existe outro indivíduo com o mesmo caminho. Mais...
|
| |
| void | createRandomPopulation (vector< Individual > &population, int populationSize, int numVertices, Individual &bestPath) |
| | Gera uma população inicial para o algoritmo genético. Cada indivíduo será uma tupla (caminho, custoDoCaminho) onde 'caminho' é um vetor com os índices dos vértices do caminho hamiltoniano e o 'custoDoCaminho' é autoexplicativo. Mais...
|
| |
| | TSP () |
| |
| | TSP (string name) |
| |
| | TSP (Graph &graph, string name) |
| |
| | TSP (Graph &&graph, string name) |
| |
| void | setGraph (Graph &graph) |
| |
| void | setName (string name) |
| |
| string | getName () |
| |
| void | setTotalTime (double totalTime) |
| |
| double | getTotalTime () |
| |
| void | printClock () |
| |
| double | runAndCountTime () |
| |
| void | printPath (int *array, int n) |
| |
◆ GeneticAlgorithm() [1/3]
| GeneticAlgorithm::GeneticAlgorithm |
( |
| ) |
|
◆ GeneticAlgorithm() [2/3]
| GeneticAlgorithm::GeneticAlgorithm |
( |
Graph & |
graph | ) |
|
◆ GeneticAlgorithm() [3/3]
| GeneticAlgorithm::GeneticAlgorithm |
( |
Graph && |
graph | ) |
|
◆ createIndividual()
| bool GeneticAlgorithm::createIndividual |
( |
int |
numVertices, |
|
|
int |
i, |
|
|
Individual & |
individual, |
|
|
vector< Individual > & |
population |
|
) |
| |
Cria um caminho para um indivíduo e checa se já existe outro indivíduo com o mesmo caminho.
- Parâmetros
-
| numVertices | Número de vértices do grafo. |
| i | Variável de controle do loop externo. Representa também o número de indivíduos gerados com sucesso - 1. |
| individual | Indivíduo que receberá o novo caminho. |
| population | População do algoritmo. |
- Retorna
- true caso o indivíduo é válido, ou seja, não existe outro com o mesmo caminho.
-
false caso contrário.
◆ createRandomPath()
| void GeneticAlgorithm::createRandomPath |
( |
int |
numVertices, |
|
|
vector< int > & |
cities |
|
) |
| |
Cria um caminho hamiltoniano aleatório.
- Parâmetros
-
| numVertices | Número de vértices do grafo. |
| cities | Vetor que receberá esse caminho. |
◆ createRandomPopulation()
| void GeneticAlgorithm::createRandomPopulation |
( |
vector< Individual > & |
population, |
|
|
int |
populationSize, |
|
|
int |
numVertices, |
|
|
Individual & |
bestPath |
|
) |
| |
Gera uma população inicial para o algoritmo genético. Cada indivíduo será uma tupla (caminho, custoDoCaminho) onde 'caminho' é um vetor com os índices dos vértices do caminho hamiltoniano e o 'custoDoCaminho' é autoexplicativo.
- Parâmetros
-
| population | Vetor que receberá a população. |
| populationSize | Tamanho da população. |
| numVertices | Número de vértices que o grafo tem. |
| bestPath | Ao gerar a população, esse parâmetro será populado com o melhor indivíduo até o momento. |
◆ mutateIndividual()
| void GeneticAlgorithm::mutateIndividual |
( |
Individual & |
individual, |
|
|
int |
numVertices, |
|
|
int |
numOfTries = 3 |
|
) |
| |
Tenta mutar um indivíduo algumas vezes para que ele se torne melhor.
- Parâmetros
-
| individual | Indivíduo a ser mutado. |
| numVertices | Número de vértices do grafo. |
| numOfTries | Número de tentativas. |
◆ mutatePopulation()
| void GeneticAlgorithm::mutatePopulation |
( |
vector< Individual > & |
population, |
|
|
int |
mutationRate, |
|
|
int |
numVertices, |
|
|
Individual & |
bestPath |
|
) |
| |
Faz as mutações em toda a população baseando-se na taxa de mutação.
- Parâmetros
-
| population | População do algoritmo. |
| mutationRate | Taxa de mutação. |
| numVertices | Número de vértices do grafo. |
| bestPath | Ao mutar a população, esse indivíduo se transformará no novo melhor indivíduo dela. |
◆ run()
| void GeneticAlgorithm::run |
( |
| ) |
|
|
virtual |
Define o número de gerações, o tamanho da população e a taxa de mutação para o algoritmo genético. Depois, cria a população de forma aleatória e começa a realizar mutações para cada geração.
Implementa TSP.
A documentação para esta classe foi gerada a partir dos seguintes ficheiros: