Aulas 3 e 4 Procura

Propaganda
INTELIGÊNCIA ARTIFICIAL 2008/09
PROCURA
1) Considere o problema da torre de Hanoi com 3 discos. Neste problema, existem
três pinos A, B e C e 3 discos de diâmetros diferentes, estando no início todos os
discos colocados no pino A com os discos maiores em baixo dos mais pequenos.
Este problema consiste em deslocar todos os discos para o pino C, um a um, do
pino A para o pino C, de modo a que fiquem na mesma posição relativa nunca
podendo, em momento algum, existir um disco em cima de outro de menor
diâmetro.
a) Formule o problema da Torre de Hanoi com 3 discos como um problema de
procura.
b) Qual o método de procura cega que escolheria para resolver o problema e
porquê?
2) Considere o problema das vasilhas. Dispomos de duas vasilhas, com capacidades
de 3 e 5 litros. Inicialmente as vasilhas estão vazias e pretendemos medir uma certa quantidade de água. As accções que podemos executar são:
 encher totalmente cada uma das vasilhas;
 verter o conteúdo de uma vasilha noutra, até a primeira ficar vazia ou a segunda cheia;
 deitar fora todo o conteúdo de uma vasilha.
Para resolver este problema utilizando os algoritmos de procura estudados vamos
usar a seguinte representação em Lisp para o estado do problema:
(defstruct estado
(v3 0) ; líquido existente na vasilha de 3 litros
(v5 0)) ; líquido existente na vasilha de 5 litros
As funções que implementam os operadores para este problema (encher-v3,
encher-v5, v3->v5, v3<-v5, esvaziar-v3, esvaziar-v5) recebem
uma estrutura do tipo estado e devolvem uma lista com o estado que resulta de
1
aplicar esse operador, ou então a lista vazia, se o operador não for aplicável. Por
exemplo, para um estado em que a vasilha de três litros está vazia e a vasilha de
cinco litros tem quatro litros, o operador esvaziar-v3 devolve nil e o
operador v3<-v5 devolve uma lista com um estado em que a primeira tem três
litros e a segunda um litro.
1. Defina as funções encher-v3, v3<-v5 e esvaziar-v5.
2. Defina a função sucessores que dado um estado devolve uma lista de
estados cujos elementos são todos os sucessores desse estado.
3. Dada a seguinte definição de um problema:
(defstruct problema
estado-inicial
fn-objectivo? ; predicado que identifica
; o estado solução
fn-sucessores)
Defina a função cria-problema que recebe dois números: a quantidade de
água desejada para as vasilhas de três e cinco litros, respectivamente. A função
deve devolver uma estrutura do tipo problema correctamente inicializada de modo
a representar o problema cujo estado inicial tem as duas vasilhas vazias e cujo
estado final tem as vasilhas com as quantidades indicadas nos argumentos da
função.
3) Considere o espaço de estados definido pelo estado inicial, 1, e pela função que
gera os sucessores de um estado, sucessores(n)={2n, 2n+1}. Considerando o
estado objectivo 9, desenhe a árvore de procura indicando a ordem de geração e a
ordem de expansão de cada nó para uma:
a) Procura em largura primeiro;
b) Procura em profundidade primeiro;
c) Procura em profundidade limitada com limite de profundidade 4.
d) Procura em profundidade iterativa;
(Em caso de empate, explore os nós por ordem numérica crescente.)
4) Considere o seguinte espaço de estados contendo os estados A, B, C, D, E e F e
pelas transições representadas (os números representam os custos das transições).
Em caso de empate na colocação dos nós na fila de nós por expandir, utiliza-se a
ordem alfabética dos estados para desempatar.
E
3
8
7
B
2
1
3
A
F
C
4
1
D
2
Para resolver o problema de ligar o estado A ao nó F, admita que tem h(A)=5, h(B)=3,
h(C)=1, h(D)=1, h(E)=1 e h(F)=0. Escreva a ordem pela qual os nós foram gerados e
expandidos por cada uma das seguintes estratégias de procura:
a)
b)
c)
d)
e)
f)
g)
h)
Procura em profundidade primeiro;
Procura em largura primeiro;
Procura de custo uniforme;
Procura em profundidade iterativa;
Procura gananciosa;
Procura A*;
Procura IDA*;
Procura RBFS.
A heurística é admissível? A heurística é consistente? Justifique.
5) Considere o seguinte espaço de estados definido pelos estados A, B, C, D e E e
pelas transições representadas (os números representam os custos das transições).
Em caso de empate na colocação dos nós na fila de nós por expandir, utiliza-se a
ordem alfabética para desempatar.
3
C
2
7
B
D
1
3
A
4
E
Para resolver o problema de ligar o estado A ao estado E, admita que tem h(A)=5,
h(B)=3, h(C)=1, h(D)=1 e h(E)=0. Escreva a ordem pela qual os nós foram gerados e
expandidos por cada uma das seguintes estratégias de procura:
a)
b)
c)
d)
e)
f)
Procura em profundidade primeiro;
Procura em largura primeiro;
Procura de custo uniforme;
Procura em profundidade iterativa;
Procura gananciosa;
Procura A*.
3
6) As cidades A, B, C e D estão ligadas por uma rede de estradas representada pelo
mapa que se segue.
A
10
B
5
D
10
12
13
C
Considerando que dispõe de uma função trocos, que recebe como argumentos dois
símbolos representando duas cidades e retorna o número mínimo de troços de estrada
entre as duas cidades; que o custo de ir para uma cidade para outra corresponde à
distância percorrida; e que a estimativa de custo de ir de uma cidade para outra
corresponde ao menor número de troços entre as duas cidades multiplicado pelo
comprimento médio dos troços do mapa:
a) Mostre a árvore de procura gerada na procura do caminho de C para A
utilizando a procura gananciosa, indicando a ordem de geração e de expansão
e assumindo que eventuais desempates são decididos por ordem alfabética.
b) Mostre a árvore de procura gerada na procura do caminho de C para A
utilizando a procura A*, indicando a ordem de geração e de expansão e
assumindo que eventuais desempates são decididos por ordem alfabética.
c) A heurística é admissível? A heurística é consistente? Justifique.
7) Considere o espaço de estados apresentado a seguir e que representa o mundo dos
blocos com os blocos A, B e C:
Suponha que quer passar do estado inicial, em que C está em cima de A e A e B
estão em cima da mesa, para o estado final, em que A está em cima de B, B está
em cima de C e C está em cima da mesa. Considere que o custo de cada transição
é 1 e que a função heurística que vai utilizar devolve o número de blocos que não
estão em cima das mesmas posições em que aparecem no estado final (por
exemplo, a heurística aplicada ao estado inicial vale 3).
4
A B C
A
B C
C
A
B
A
B C
B
A C
B
A
C
C
B
A
B
A C
C
A B
A
B
C
B
C
A
C
A B
A
C
B
a) A função heurística proposta é admissível? Justifique.
b) Desenhe a árvore de procura gerada pela procura A*, indicando a ordem de
geração e de expansão dos nós.
8) Considere um agente que vive numa “casa” com infinitos quartos, em que os
quartos estão numerados. Os quartos normalmente têm três portas. Se o quarto for
o quarto n, a porta esquerda que dá acesso ao quarto 2*n, a porta direita que dá
acesso ao quarto 2*n+1 e a porta de trás que dá acesso ao quarto div(n,2) (divisão
inteira de n por 2). O quarto 1 tem apenas a porta esquerda e direita. Estando no
quarto n, as acções que é possível executar são:
:atravessa-porta-esquerda, se quiser passar do quarto n para o quarto 2*n;
:atravessa-porta-direita, se quiser passar do quarto n para o quarto 2*n+1; e
:atravessa-porta-tras, se quiser passar do quarto n para o quarto div(n,2);
:espera, se não quiser mudar de quarto.
O problema da deslocação do agente do quarto n para o quarto m pode ser visto
como um problema de procura em que os estados são representados pelo número
do quarto, os operadores de transição correspondem às acções de atravessar a
porta aplicáveis descritas no exercício anterior, e a função de custo de transição
tem o valor 1. Vamos supor que queremos procurar o caminho desde o estado 10
até ao estado 3.
Para calcular a função heurística aplicada ao estado n, vamos considerar a função
DIST(n) que nos dá o número mínimo de portas que é necessário atravessar para ir
do estado n ao estado 1 e que corresponde ao número de vezes que é possível
dividir o valor do estado por 2 (divisão inteira) até se atingir o valor 1. A função
heurística para estimar o custo de passar do estado n para o estado final m é
5
calculada através da fórmula h(n)=|DIST(n)-DIST(m)|. Por exemplo, para o
problema que estamos a estudar (m é 3 e n é 10), uma vez que DIST(n)=3 e
DIST(m)=1, tem-se h(3)=DIST(10)-DIST(3)=2.
a) Considere que vai resolver este problema de procura utilizando a procura
gananciosa (em caso de empate, seleccione o nó que minimiza o número de
nós gerados).
i) Qual o número de nós gerados?
ii) Qual o número de nós expandidos?
iii) Qual a ordem de geração do nó que tem 1 como estado?
iv) Qual a ordem de expansão do nó que tem 1 como estado?
b) Considere que vai resolver este problema de procura utilizando a procura A*
(em caso de empate, seleccione o nó que minimiza o número de nós gerados).
i) Qual o número de nós gerados?
ii) Qual o número de nós expandidos?
iii) Qual a ordem de geração do nó que tem 1 como estado?
iv) Qual a ordem de expansão do nó que tem 1 como estado?
9) Considere o seguinte espaço de estados com os estados de A a P, representado na
figura a seguir:
A4
3
4
C2
B3
3
3
D3
1
1
F1
E3
3
3
3
3
H3
I3
J3
L0
G1
1
1
1
M3
N2
O1
1
P0
Os estados são representados por um círculo com o seu nome e um número,
que corresponde à função de avaliação heurística do estado. Os números nos
arcos que ligam dois estados representam os custos das transições entre os dois
estados. O problema que estamos a considerar tem como estado inicial o
estado A e estados objectivo os estados L e P. Considere que os sucessores de
um nó são gerados pela ordem alfabética dos estados (por exemplo, o primeiro
6
sucessor de F é o nó M e não o nó N) e que em caso de empate na ordem de
colocação de nós na fila de nós por tratar vigora a ordem alfabética.
a) Considere a procura em largura primeiro e escolha a única opção correcta:
i) Os nó com estado I é testado como solução antes do nó com estado G
ambos os nós são testados antes de se encontrar a solução.
ii) O nó com estado G é testado como solução antes do nó com estado N e
ambos os nós são testados antes de se encontrar a solução.
iii) O nó com estado E não é testado como solução.
iv) O nó com estado D é testado como solução antes do nó com estado J
ambos os nós são testados antes de se encontrar a solução.
v) O nó com estado O é testado como solução.
vi) O nó com estado I é testado como solução antes do nó com estado E e
ambos os nós são testados antes de se encontrar a solução.
b) Considere a procura em profundidade primeiro e escolha a única opção
correcta:
i) O nó com estado I é gerado antes do nó com estado G e ambos os nós são
gerados.
ii) O nó com estado G é gerado antes do nó com estado I e ambos os nós são
gerados.
iii) O nó com estado E não é gerado.
iv) O nó com estado C é gerado antes do nó com estado J e ambos os nós são
gerados.
v) O nó com estado C é gerado antes do nó com estado G e ambos os nós são
gerados.
vi) O nó com estado I é gerado antes do nó E e ambos os nós são gerados.
c) Considere a procura em profundidade limitada com limite 2 e escolha a única
opção correcta:
i) São testados como soluções exactamente 3 nós.
ii) São testados como soluções exactamente 4 nós.
iii) São testados como soluções exactamente 7 nós.
iv) São testados como soluções exactamente 8 nós.
v) São testados como soluções exactamente 11 nós.
vi) São testados como soluções exactamente 15 nós.
d) Considere a procura gananciosa e escolha a única opção correcta:
i) O nó com estado I é testado como solução antes do nó com estado G e
ambos os nós são testados como soluções.
ii) O nó com estado G é testado como solução antes do nó com estado F e
ambos os nós são testados como soluções.
iii) O nó com estado M é testado como solução antes do nó com estado P e
ambos os nós são testados como soluções.
7
iv) O nó com estado C é testado como solução
ambos os nós são testados como soluções.
v) O nó com estado B é testado como solução
ambos os nós são testados como soluções.
vi) O nó com estado F é testado como solução
ambos os nós são testados como soluções.
Obs: Considere que um nó é explorado quando
tratar.
antes do nó com estado G e
antes do nó com estado G e
antes do nó com estado O e
é retirado da fila de nós por
e) Considere a procura IDA* e escolha a única opção correcta:
i) A solução é encontrada ao fim de 3 iterações.
ii) Os sucessores de B são gerados duas vezes.
iii) O nó com estado F é gerado duas vezes.
iv) Os sucessores de D são gerados uma vez.
v) O nó com estado M é testado como solução uma vez.
vi) O nó com estado C é testado como solução uma vez.
Obs: Considere que na primeira iteração o valor do limite é f(A).
10) Considere o seguinte espaço de estados com os estados de A a N, representado na
figura a seguir:
A4
4
3
C2
B3
3
D3
3
1
1
F1
E0
G1
3
3
3
1
1
H3
I3
J3
L2
M1
1
N0
Os estados são representados por um círculo com o seu nome e um número, que
corresponde à função de avaliação heurística do estado. Os números nos arcos que
ligam dois estados representam os custos das transições entre os dois estados. O
problema que estamos a considerar tem como estado inicial o estado A e estados
objectivo os estados E e N. Considere que os sucessores de um nó são gerados pela
ordem alfabética dos estados (por exemplo, o primeiro sucessor de F é o nó J e não o
8
nó L) e que em caso de empate na ordem de colocação de nós na fila de nós por tratar
vigora a ordem alfabética.
a) Considere a procura em largura primeiro e escolha a única opção correcta:
i) Quando é encontrada a solução, há exactamente 2 nós na fila de nós
testar.
ii) Quando é encontrada a solução, há exactamente 3 nós na fila de nós
testar.
iii) Quando é encontrada a solução, há exactamente 4 nós na fila de nós
testar.
iv) Quando é encontrada a solução, há exactamente 5 nós na fila de nós
testar.
v) Quando é encontrada a solução, há exactamente 6 nós na fila de nós
testar.
vi) Quando é encontrada a solução, há exactamente 7 nós na fila de nós
testar.
vii) Quando é encontrada a solução, há exactamente 8 nós na fila de nós
testar.
viii)Quando é encontrada a solução, há exactamente 9 nós na fila de nós
testar.
por
por
por
por
por
por
por
por
b) Considere a procura em profundidade primeiro e escolha a única opção
correcta:
i) A procura entra em ciclo.
ii) O nó H é gerado antes do nó E.
iii) Os nós F e G são gerados.
iv) Os nós H e C são gerados.
v) Os nós C e F são gerados.
vi) Os nós C e J são gerados.
vii) Os nós E e N são gerados.
viii)Os nós B e G são gerados.
c) Considere a procura em profundidade limitada com limite 2 e escolha a única
opção correcta:
i) Não são testados como soluções quaisquer nós.
ii) É testado como solução exactamente 1 nó.
iii) São testados como soluções exactamente 2 nós.
iv) São testados como soluções exactamente 3 nós.
v) São testados como soluções exactamente 4 nós.
vi) São testados como soluções exactamente 5 nós.
vii) São testados como soluções exactamente 6 nós.
viii)São testados como soluções exactamente 7 nós.
d) Considere a procura gananciosa e escolha a única opção correcta:
i) O nó B é testado como solução e há mais 3 nós na fila de nós por testar.
9
ii) O nó C é testado como solução e há mais 3 nós na fila de nós por testar.
iii) O nó F é testado como solução e há mais 3 nós na fila de nós por testar.
iv) O nó G é testado como solução e há mais 3 nós na fila de nós por testar.
v) O nó B é testado como solução e há mais 2 nós na fila de nós por testar.
vi) O nó C é testado como solução e há mais 2 nós na fila de nós por testar.
vii) O nó G é testado como solução e há mais 2 nós na fila de nós por testar.
viii)O nó N é testado como solução e há mais 2 nós na fila de nós por testar.
e) Considere a procura IDA* e escolha a única opção correcta:
i) São feitos 6 testes para ver se um nó é solução.
ii) São feitos 8 testes para ver se um nó é solução.
iii) São feitos 10 testes para ver se um nó é solução.
iv) São feitos 12 testes para ver se um nó é solução.
v) São feitos 14 testes para ver se um nó é solução.
vi) São feitos 15 testes para ver se um nó é solução.
vii) São feitos 16 testes para ver se um nó é solução.
viii)São feitos 17 testes para ver se um nó é solução.
Obs: Considere que na primeira iteração o valor do limite é f(A).
1
Download