SlideShare ist ein Scribd-Unternehmen logo
1 von 21
ALGORITMO A*
Provando sua otimalidade
Dionisio Chiuratto Agourakis
IDEIAS PRINCIPAIS
 Estratégia best-first
 Sempre expande o nó mais promissor
 Busca informada - heurística
 Heurística  Quão bom parece este nó?
 Diferente da estratégia greedy (gulosa)
 Leva em consideração o custo já incorrido
 Não perde tempo em explorar nós que já ficaram
caros
IDEIAS PRINCIPAIS
 Forma:
𝑓 𝑛 = ℎ 𝑛 + 𝑔(𝑛)
Custo ótimo (mínimo),
passando por n
Custo ótimo (mínimo)
de n até o objetivo
Custo ótimo (mínimo)
da origem até n
IDEIAS PRINCIPAIS
 Blefe
 Encontrar f(n) é nosso objetivo
 Não conhecemos h(n) nem g(n)
 Ideia: estimar h(n) e g(n) para guiar a busca
IDEIAS PRINCIPAIS
 Nova Forma:
f 𝑛 = ℎ 𝑛 + 𝑔(𝑛)
Custo estimado,
passando por n
Custo estimado
de n até o objetivo
Custo realizado
da origem até n
^ ^ ^
EXEMPLO: A CLÁSSICA VIAGEM
 Vamos de Arad para Bucharest!
Origem:
Arad
Objetivo:
Bucharest
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Fila de Prioridades: {Arad(366)}
f(n) = 366
h(n) = 366
+
g(n) = 0
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Fila de Prioridades: {Sibiu(393), Timisoara(447), Zerind(449)}
f(n) = 393
h(n) = 253
+
g(n) = 140
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Fila de Prioridades: {Rimnicu(413), Fagaras(417), Timisoara(447), Zerind(449),
Oradea(526), Arad(646)}
f(n) = 413
h(n) = 193
+
g(n) = 80+140
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Fila de Prioridades: {Pitesti(415), Fagaras(417), Timisoara(447), Zerind(449),
Oradea(526), Craiova(526), Sibiu(553), Arad(646)}
f(n) = 415
h(n) = 98
+
g(n) = 220+97
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Fila de Prioridades: {Fagaras(417), Bucharest(418), Timisoara(447), Zerind(449),
Oradea(526), Craiova(526), Sibiu(553), Rimnicu(607), Craiova(615), Arad(646)}
f(n) = 417
h(n) = 178
+
g(n) = 140+99
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Fila de Prioridades: {Bucharest(418), Timisoara(447), Bucharest(450),
Zerind(449), Oradea(526), Craiova(526), Sibiu(553), Sibiu(591), Rimnicu(607),
Craiova(615), Arad(646)}
f(n) = 418
h(n) = 0
+
g(n) = 317+101
OTIMALIDADE
 Pressupostos
 A heurística h(n) é admissível
 Nunca superestima o custo até o objetivo
 “Otimista”
 Fator de ramificação é finito
 O problema tem fim
 Custo de expansão positivo
OTIMALIDADE
 Passo 1: Provar que nós-objetivos aparecem na fila
para expansão
Respeitando-se o pressuposto de que o fator de ramificação é finito,
isto é, o problema tem fim, podemos afirmar que o algoritmo A* é
completo, isto é, ele encontrará ao menos uma solução.
 A* não fica preso em ciclos ...
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Fila de Prioridades: {Rimnicu(413), Fagaras(417), Timisoara(447), Zerind(449),
Oradea(526), Arad(646)}
f(n) = 413
h(n) = 193
+
g(n) = 80+140
OTIMALIDADE
 Passo 2: Provar que nós-objetivos sub-ótimos
nunca serão expandidos/encontrados
Supondo um estado sub-ótimo G2 (Bucharest) na fila de expansão.
Sabemos que h(G2) = 0 e, portanto, f(G2) = g(G2) + 0 > C* (custo mínimo)
Um nó n, pertencente ao caminho ótimo, possui: f(n) = g(n) + h(n) onde h(n)
nunca superestima o custo até o objetivo, logo f(n) < C*.
***Portanto, f(n) aparecerá antes de G2 na fila para expansão.***
Arad
Zerind
Sibiu
Arad
Oradea
Fagaras
Sibiu
Bucharest
Rimnicu
Craiova
Pitesti
Rimnicu
Craiova
BucharestSibiu
Timisoara
366
449
646
591
607
393
447
526
417
413
450
526
415
553
615
418
Fila de Prioridades: {Bucharest(418), Timisoara(447), Bucharest(450),
Zerind(449), Oradea(526), Craiova(526), Sibiu(553), Sibiu(591), Rimnicu(607),
Craiova(615), Arad(646)}
f(n) = 418
h(n) = 0
+
g(n) = 317+101
f(G2) > C*
450 > 418
646
Fila de Prioridades: {Bucharest(418), Timisoara(447), Bucharest(450),
Zerind(449), Oradea(526), Craiova(526), Sibiu(553), Sibiu(591), Rimnicu(607),
Craiova(615), Arad(646)}
G2 não seria expandido...
antes que verificássemos
caminhos mais promissores.
Mesmo se não tivéssemos encontrado C*,
Por isso podemos afirmar que caso G2 fosse expandido, ele seria ótimo.
OTIMALIDADE
 Passo 3: Provar que nós pertencentes ao caminho
ótimo estarão na fila
Decorrência da demonstração do Passo 2:
Sabemos que h(G2) = 0 e, portanto, f(G2) = g(G2) + 0 > C* (custo mínimo)
Um nó n, pertencente ao caminho ótimo, possui: f(n) = g(n) + h(n) onde h(n)
nunca superestima o custo até o objetivo, logo f(n) < C*.
Então podemos afirmar que A* expandirá todos os nós com f(n) < C*,
até encontrar a solução ótima.
OTIMALIDADE
 A* é ótimo
 Caso seja implementado em grafo
 Heurística deve ser consistente (que implica
admissibilidade)
 ℎ 𝑛 ≤ 𝑐 𝑛, 𝑛′
+ ℎ(𝑛′
)
 f(n) é não-decrescente

Weitere ähnliche Inhalte

Mehr von Dionisio Chiuratto Agourakis

Mehr von Dionisio Chiuratto Agourakis (9)

Inteligência Artificial Aplicada - Software, Hardware e Resultados
Inteligência Artificial Aplicada - Software, Hardware e ResultadosInteligência Artificial Aplicada - Software, Hardware e Resultados
Inteligência Artificial Aplicada - Software, Hardware e Resultados
 
J!Quant - GPU Technology Conference 2016
J!Quant - GPU Technology Conference 2016J!Quant - GPU Technology Conference 2016
J!Quant - GPU Technology Conference 2016
 
Apresentação J!Quant
Apresentação J!QuantApresentação J!Quant
Apresentação J!Quant
 
Machine Learning - Introdução e Aplicações
Machine Learning - Introdução e AplicaçõesMachine Learning - Introdução e Aplicações
Machine Learning - Introdução e Aplicações
 
EURO Conference 2015 - Automated Timetabling
EURO Conference 2015 - Automated TimetablingEURO Conference 2015 - Automated Timetabling
EURO Conference 2015 - Automated Timetabling
 
Fazendo acontecer com Scrum e a Filosofia Ágil.
Fazendo acontecer com Scrum e a Filosofia Ágil.Fazendo acontecer com Scrum e a Filosofia Ágil.
Fazendo acontecer com Scrum e a Filosofia Ágil.
 
Educação e Carreira
Educação e CarreiraEducação e Carreira
Educação e Carreira
 
Secular Technological Tailwinds
Secular Technological TailwindsSecular Technological Tailwinds
Secular Technological Tailwinds
 
Web Semântica e Internet das Coisas - GDG Sorocaba 2014
Web Semântica e Internet das Coisas - GDG Sorocaba 2014Web Semântica e Internet das Coisas - GDG Sorocaba 2014
Web Semântica e Internet das Coisas - GDG Sorocaba 2014
 

Algoritmo A* Otimização