GSI010 - Programação Lógica
Resolvendo problemas com Programação Lógica Busca informada
Nesta aula
I Busca informada no espaço de estados
Busca no espaço de estados
Método
Considerar a existência de umagente, que possuiações para modificar osestados do mundo.
Simplificações
I o estadodo mundo só muda quanda oagentefaz uma ação
I meta do agente é fazer o mundo atingir umestado pré-definido
Exemplo: O mundo do aspirador
Agente: aspirador-robô
Qual é a melhor forma de aspirar sujeira?
Ações
I entrarSala1
I entrarSala2
I aspirar
Estados do mundo
I sala 1 suja
I sala 1 limpa
I sala 2 suja
I sala 2 limpa
Exemplo: modelagem
[sala1, limpa, limpa] [sala2, limpa, limpa]
[sala1, limpa, suja] [sala2, limpa, suja]
[sala1, suja, limpa] [sala2, suja, limpa]
[sala1, suja, suja] [sala2, suja, suja]
entrar2 entrar1 entrar2
entrar1 entrar2 entrar1 entrar2 entrar1 aspirar
aspirar
aspirar
aspirar
Representação de estados
Estados são representados por estruturas Estrutura de estados do Aspirador-robô
I lista com três elementos
I [SalaAgente, Sala1Estado, Sala2Estado]
I SalaAgente pode sersala1ousala2
I Sala1Estado pode serlimpaousuja
I Sala2Estado pode serlimpaousuja
Exemplo: representação
1 estado_inicial([sala1, suja, suja]).
2 meta([_,limpa,limpa]).
3
Estratégias de busca não informadas
Estratégia descreve
Como fazer para encontrar solução na árvore de busca.
Opções de estratégias não informadas
I busca aleatória
I escolhe aleatoriamente para onde ir
I busca em largura
I explora as possibilidades “um nível por vez”
I busca em profundidade
I explora as possibilidades uma sequência por vez
Estratégias de busca informadas
Opções de estratégias informadas
I busca pelo menor custo
I usa informação de avaliação das ações realizadas
I busca pela melhor estimativa
I usa estratégia para avaliar aproximadamente boas alternativas
I busca ótima A∗
I busca melhor solução possível
Busca pelo menor custo
Custo de ação
I ações podem ter custos
I e.g. gasto de bateria do dispositivo
I tempo/distância de viagem entre cidades etc.
I adicionamos um novo argumento ao predicado ação
acao(Acao, Estado1, Estado2, Custo) :−condicoes, efeitos. 1
Leia-se: para executar aAcaono Estado1 e afetar alterar o estado do mundo paraEstado2 é necessário arcar com oCusto, se as condicoespermitirem, e ocorrendo algunsefeitos colaterais.
Exemplo de problema com informação
udia
arag 37.7
ituiu 137
prta 84.5
uba 105
capin 36.7
gurin 72.5
cverde 71.3
cflor 74.7
63.6 134
78.1
1 inicial(udia).
2 meta(cverde).
acao(vai(P, Q), P, Q, D):− 3
4 via(P, Q, D).
5 6 via(udia, arag, 37.7).
7 via(udia, ituiu, 137).
8 via(udia, prta, 84.5 ).
9 via(udia, uba, 105 ).
10 via(ituiu, capin, 36.7).
11 via(ituiu, gurin, 72.5).
12 via(gurin, cverde, 63.6 ).
13 via(prta, cverde, 71.3).
14 via(uba, cflor, 74.7).
15 via(cflor, cverde, 134).
16 via(cflor, prta, 78.1 ).
17
Custo do caminho O caminho de ações
[a1,a2,a3, . . . ,an]tem o custo igual a
n
X
i=1
g(ai) (1) g(ai) é o custo da ação ai
udia
arag 37.7
ituiu 137
prta 84.5
uba 105
capin 36.7
gurin 72.5
cverde 71.3
cflor 74.7
63.6 134
78.1
O custo do caminho[via(udia,uba,105),via(uba,cflor,74.7)] é 105+74.7=179.7
Busca de menor custo
I garantia do menor custo (mas não menor número de ações)
I se custos são iguais, equivalente a busca em largura
Exemplo: problema de aritmética
Quais operações aritméticas podemos usar para sair de um número e chegar em outro?
1 inicial(0).
2 meta(10).
acao(incrementa, S1, S2, 1) :−S2isS1+1. 3 acao(decrementa, S1, S2, 1) :−S2isS1−1. 4 acao(duplica, S1, S2, 2) :−S2isS1∗2. 5 acao(desdobra, S1, S2, 2) :−S2isS1/2. 6 acao(inverte, S1, S2, 2) :−S2is−S1. 7
Exemplo: problema de jogo
Jogo: Street Fighter
I Quais golpes usar para ganhar do adversário?
I Cada golpe usa uma quantidade de tempo.
I Quais golpes vão levar menos tempo?
1 inicial(50).% barra de energia do adversário
2 meta(0).% quando a energia do adversário chegar a 0
acao(socoFraco, S1, S2, 1) :−S2isS1−1. 3 acao(socoForte, S1, S2, 2) :−S2isS1−2. 4 acao(chuteFraco, S1, S2, 3) :−S2isS1−4. 5 acao(chuteForte, S1, S2, 4) :−S2isS1−8. 6 acao(haduken, S1, S2, 10) :−S2isS1/2. 7
Implementação da busca de menor custo
CominsereOrdenado/3 é possível sempre consultar primeiro aquele com menor custo até o momento.
buscaMenor:− 1
2 inicial(EstadoInicial),
3 buscaMenor([0:EstadoInicial:[]], [], CaminhoMenorCustoAteMeta:Custo),
4 format(’Plano: ~w’, [CaminhoMenorCustoAteMeta]),
5 format(’\nCusto: ~w \n\n’, [Custo]).
6 7 buscaMenor([Custo:EstadoFinal:CaminhoFimInicio|_], _, CaminhoInicioFim:
Custo) :−
8 meta(EstadoFinal), !,
9 reverse(CaminhoFimInicio, CaminhoInicioFim).
10 buscaMenor([CustoAtual:EstadoAtual:Caminho|Folhas], Visitados, Solucao):− 11
12 sucessoresCusto(CustoAtual:EstadoAtual:Caminho, Visitados, Sucessores),
13 insereOrdenado(Sucessores, Folhas, NovoFolhas),
14 union([EstadoAtual], Visitados, UniaoVisitados),
15 buscaMenor(NovoFolhas, UniaoVisitados, Solucao).
16
1 sucessoresCusto(CustoAtual:EstadoAtual:Caminho, Visitados,
ListaDeSucessores):−
2 findall(CustoNovo:EstadoNovo:[Acao|Caminho],
3 (acao(Acao, EstadoAtual, EstadoNovo, CustoAcao),
4 not(member(EstadoNovo, Visitados)),
5 CustoNovoisCustoAtual+CustoAcao),
6 ListaDeSucessores).
7 insereOrdenado(NovasOpcoes, Caminhos, NovosCaminhos) :− 8
9 append(NovasOpcoes, Caminhos, OpcoesCaminhos),
10 sort(OpcoesCaminhos, NovosCaminhos), !.
11
Exercício: problema do troco
Uma máquina automática temN1 moedas de 1 centavo,N5 moedas de cinco centavos,N10 moedas de 10 centavos,N25 moedas de 25 centavos,N50 moedas de 50 centavos eN100 moedas de 1 real.
Exercício
Fazer a modelagem (grafo de estados) e codificação do problema para obter moedas para formar um troco deT, colocando um custo maior em oferecer moedas mais escassas e um custo menor em moedas mais frequentes.
Dicas
Se temosN moedas de um determinado tipo, o custo da operação de oferecer essa moeda pode ser 1/N seN >0. Para simplificar a modelagem, reduza o número de moedas apenas após cada troco ter sido realizado.
Referências
I Slides – Busca no espaço de estados (Parte I) – Prof. Dr.
Silvio do Lago Pereira
I Slides – Busca no espaço de estados (Parte II) – Prof. Dr.
Silvio do Lago Pereira