You are on page 1of 17

Métodos Computacionais

Projeto 3 - Resolução do Problema do


Caixeiro Viajante utilizando o método Monte
Carlo - Metropolis com o esquema de
Simulated Annealing.

Curso: Bacharelado em Física Biológica

Docente: Prof. Dr. Alexandre Suman de


Araújo
Discentes: Ana Laura Santos Lima,

São José do Rio Preto, 8 de agosto de 2022.


SUMÁRIO

1. INTRODUÇÃO TEÓRICA
2. OBJETIVOS
3. METODOLOGIA
3.1. Materiais
3.2. Métodos
4. RESULTADOS E DISCUSSÕES
5. CONCLUSÃO
6. REFERÊNCIAS BIBLIOGRÁFICAS

1
1. INTRODUÇÃO TEÓRICA

O Problema do Caixeiro Viajante trata-se de um enigma relacionado à busca por um modelo


para otimização. Apesar de parecer modesto, é muito estudado por cientistas. Sua definição
consiste basicamente em encontrar a menor rota que passa por todas as cidades de um mapa,
sendo que nenhuma cidade pode ser visitada mais de uma vez. Formulando melhor temos a
seguinte explicação: Considere que um caixeiro viajante tenha que visitar n cidades
diferentes, iniciando e encerrando sua viagem na primeira cidade. Suponha, também, que não
importa a ordem com que as cidades são visitadas e que de cada uma delas pode-se ir
diretamente a qualquer outra. O problema do caixeiro viajante resume-se em descobrir a rota
que torna mínima a viagem total (SILVEIRA, 2000).
Inicialmente formulado como um problema matemático, hoje em dia é um dos problemas
mais estudados em otimização como um padrão para testar a eficiência de metaheurísticas
(Uma meta-heurística é um método heurístico para resolver de forma genérica problemas de
otimização. São geralmente aplicadas a problemas para os quais não se conhece algoritmo
eficiente), (FREITAS, 2009) .
O PCV pode ser modelado como um grafo onde as cidades são representadas por vértices e as
conexões por arestas. Portanto, a distância entre as cidades é representada pelo comprimento
da aresta. Com esta representação, o caminho PCV torna-se um ciclo hamiltoniano, e o ótimo
global do problema também é o ciclo hamiltoniano (um caminho hamiltoniano é um caminho
que permite passar por todos os vértices de um grafo G, não repetindo nenhum, ou seja,
passar por todos uma e uma só vez por cada) mais curto.
Para se analisar esse problema, utiliza-se de várias teorias e recursos, desde mecânica
estatística, com ênfase na distribuição de Boltzmann(a distribuição Boltzmann descreve a
distribuição de velocidades entre as partículas de uma amostra de gás em uma determinada
temperatura), até métodos como o de Monte Carlo. Sendo a utilização do método Monte
Carlo com o algoritmo de Metropolis e o esquema de Simulated Annealing (SA) são
considerados as formas mais eficientes para a resolução do problema.
O algoritmo de Monte Carlo Metropolis, foi introduzido por Nicholas Metropolis e seus
colaboradores em um artigo de 1953 em simulações de gases de esferas rígidas. A ideia básica
por trás da simulação de Monte Carlo é simular a atuação aleatória térmica do sistema de
estado para estado ao longo de um experimento.(NEWMANN & BARKEMA, 1999). O
algoritmo de Metropolis é o mais utilizado para simulação de sistemas físicos dentre os
algoritmos do Método de Monte Carlo. Seu princípio de funcionamento é simples: observar
como uma possível mudança na configuração do sistema implicaria na sua energia e, através
de certa aleatoriedade, definir se essa mudança será feita ou não.É fundamentado na mecânica
estatística e é regido por uma distribuição de probabilidade denominada Distribuição de Gibbs
(Figura 1). Idealizado para simular, de forma estocástica através do método de Monte Carlo, a
evolução de um sistema físico para o equilíbrio térmico. Algumas adaptações foram feitas a
partir do algoritmo original para a aplicação do mesmo em otimização combinatória (Haykin,
2001).

2
O algoritmo de Metropolis (figura 1) segue o seguinte esquema: escolhemos um conjunto de
probabilidades de seleção 𝑔(µ → ν), uma para cada possível transição de um estado para
outro,µ → ν, então escolhemos um conjunto de probabilidades de aceitação 𝐴(µ → ν) tal que

𝑃(µ→ν) 𝑔(µ→ν)𝐴(µ→ν)
𝑃(ν→µ)
= 𝑔(ν→µ)𝐴(ν→µ)
(1)

𝐴(µ→ν) 𝑔(µ→ν)
Onde: 𝐴(ν→µ)
podem assumir quaisquer valores entre 0 e ∞, assim como 𝑔(ν→µ)
pode assumir
qualquer valor desejado.

O algoritmo trabalha repetindo a escolha de um novo estado υ aleatoriamente, aceitando ou


rejeitando esse novo estado de acordo com a escolha de aceitação probabilística. Se o estado é
aceito, o estado que antes era µ passa agora a ser o estado µ, caso contrário permanece como
está. Assim o processo é repetido por várias vezes.
Como o nome sugere, o algoritmo Simulated Annealing (Figura 1) explora a analogia entre
como os metais esfriam e congelam em suas estruturas cristalinas de energia mínima e
encontra o mínimo em qualquer sistema. No caminho dos algoritmos de minimização de
funções como Hill Climbing e Simulated Annealing, em cada iteração, de acordo com a
diferença entre os valores da função objetivo, o próximo ponto candidato a ponto mínimo é
encontrado próximo ao ponto candidato atual. A maior vantagem do Simulated Annealing
sobre outros métodos (especialmente Hill Climbing) é que ele evita mínimos locais: o
algoritmo emprega uma busca aleatória e às vezes aceita vizinhos com energia mais alta. Ou
seja, em algumas iterações, o Simulated Annealing tende a maximizar a função objetivo em
vez de minimizá-la. O parâmetro de temperatura diminui a cada iteração do algoritmo, o que
afeta a probabilidade de aceitar uma partícula vizinha com energia mais alta do que a partícula
candidata mais baixa. Se duas partículas são vizinhas da partícula original e têm mais energia,
então o algoritmo aceitará aquela com menor probabilidade de energia.

3
B

Figura 1: a) Distribuição de Gibbs; b) Algoritmo de Monte Carlo e c) Algoritmo Simulated


Annealing

4
2. OBJETIVOS
Esse trabalho tem como objetivo implementar códigos que resolvam o Problema do Caixeiro
Viajante (PCV) utilizando o método Monte Carlo com algoritmo de Metrópolis e Simulated
Annealing.

3. METODOLOGIA

3.1. Métodos
Para a realização deste algoritmo foram utilizados o método Monte Carlo com o algoritmo de
Metropolis e o esquema de Simulated Annealing (SA), como explicado na introdução teórica.

4. RESULTADOS E DISCUSSÕES

5
I

N=5
it=10000
T=0.1
Distância Inicial= 2.614662
Distância Final = 1.003864

6
I

N=10
it=10000
T=0.1

Distância Inicial= 6.048330


Distância Final =0.905097

7
I

F
N = 20
it = 10000
T = 0.1
Distância Inicial= 10.650063
Distância Final =0.905097

8
I

N = 100
it = 10000
T = 0.1
Distância Inicial= 50.655043
Distância Final =0.905097
EXERCÍCIO 2

9
I

F
N = 20
it = 10000
T = 0.1

Distância Inicial= 10.50063


Distância Final = 0.905097

10
I

N = 100
it = 10000
T = 0.1

Distância Inicial = 50.655043


Distância Final = 0.905097

11
I

N = 500
it = 10000
T = 0.1
Distância Inicial= 165.170877
Distância Final = 106.321517

12
5. CONCLUSÃO

13
6. REFERÊNCIAS BIBLIOGRÁFICAS

1. MAT.UFRGS.BR. O Problema do Caixeiro Viajante . Disponível em:


http://www.mat.ufrgs.br/~portosil/caixeiro.html#:~:text=O%20problema%20do%20ca
ixeiro%20viajante%20consiste%20em%20descobrir%20a%20rota,e%20ent%C3%A3
o%20volte%20a%20A.. Acesso em: 7 ago. 2022
2. Nicholas Metropolis & S. Ulam (1949) The Monte Carlo Method, Journal of the
American Statistical Association, 44:247, 335-341, DOI:
10.1080/01621459.1949.10483310
3. NEWMAN, Mark & BARKEMA, Gerard. Monte Carlo Methods in Statistical
Physics. Oxford: Clarendon Press, 1999. 474 p.
4. Haykin, S., 2001, Redes Neurais: Princípios e Práticas, Traduzido por P. M. Engel,
Bookman, Porto Alegre.
5. Souza, Marcone J. F. e Penna, Puca H. V. Simulated Annealing.. Notas de aula de
Técnicas Metaheurísticas para Otimização Combinatória. Departamento de
Computação, Universidade Federal de Ouro Preto, Ouro Preto, 2021. Disponível em
www.decom.ufop.br/prof/marcone/Disciplinas/InteligenciaComputacional/SimulatedA
nnealing.pptx
6. COS.UFRJ.BR. Algoritmos de Monte Carlo e Cadeias de Markov. Disponível em:
https://www.cos.ufrj.br/~daniel/mcmc-2022/. Acesso em: 7 ago. 2022.
7. FISICA.UFJF.BR. Algoritmo de Metropolis. Disponível em:
https://www.fisica.ufjf.br/~sjfsato/fiscomp1/node59.html. Acesso em: 8 ago. 2022.
8. FREITAS, A. R. R. D. RESOLVENDO O PROBLEMA DO CAIXEIRO
VIAJANTE VIA PROCEDIMENTO DE BUSCA ADAPTATIVA ALEATÓRIA
GULOSA COM CONSTRUÇÃO BASEADA EM REDES NEURAIS
AUTO-ORGANIZÁVEIS. dez./2009. Disponível em:
http://www.decom.ufop.br/alan/papers/UFOP2009A5.pdf. Acesso em: 7 ago. 2022.
9. RAMOS, I. C. D. O; NETO, A. D. D; MIRANDA, F. C. D. UMA ABORDAGEM
DIDÁTICA DO SIMULATED ANNEALING USANDO O MODELO
MARKOVIANO APLICADA AO PROBLEMA DO CAIXEIRO VIAJANTE.
XXXVSBPO, Natal-RN, v. 1, n. 1, p. 1336-1345, nov./2003. Disponível em:
https://drive.google.com/file/d/1FClV2-ir8Y9mYKq0h0fSWPaAcYDP22nO/view.
Acesso em: 7 ago. 2022.

14
introdução
o que é:
é MCM
PCV
Simulated Annealing
como é utilizado para a resolução de problemas
objetivos
metodologia
materiais
métodos
resultados e discussões
conclusão
15
referencias

16

You might also like