PROCURA E PLANEAMENTO
Primeiro Exame • 31 de Janeiro de 2006 • 17:00-19:00
Este exame é composto por 12 páginas contendo 6 grupos de perguntas. Identifique já todas as folhas do exame com o seu nome e número. Na mesa em que está a fazer o exame deve ter apenas lápis/caneta, identificação e este exame. Pode utilizar o verso das folhas como rascunho. Deve responder às perguntas no espaço deixado para o efeito.
Cotações Grupos I ____ II ____ III ____ IV____ V____ VI____
Grupo I (4 valores)
1. (1,0) Durante uma procura há quatro conjuntos de nós. Em que consiste cada um destes conjuntos:
1.1) nós expandidos
1.2) nós explorados mas ainda não expandidos
1.3) nós gerados mas ainda não explorados
1.4) nós ainda não gerados
2.1) (1,0) Assuma um problema naquele espaço de estados, cujo estado inicial é 1 e cujo estado final é 12. Usando uma procura SMA* com um limite de 4 nós e com uma heurística que mede a diferença, em valor absoluto, entre o valor de um estado e o do estado final, i.e. f(n)=abs(n-nfinal). Indique a ordem pela qual os estados são escolhidos para expansão, indique que estados são esquecidos e os valores que o algoritmo tem que guardar.
2.2) (1,0) Resolva o mesmo problema usando uma procura de Discrepância Limitada (LDS) com uma heurística que mede a diferença, em valor absoluto, entre o valor de um estado e o do estado final, i.e. f(n)=abs(n-nfinal). Indique a ordem pela qual os estados são escolhidos para expansão.
Grupo II (3 valores) 1. A figura seguinte corresponde a um problema das 6 rainhas:
1 2 3 4 5 6 1 2 3 4 5 6
1.2) (0,5) Qual é o problema fundamental deste algoritmo?
Grupo III (2 valores)
1. (1,0) Que entende por macro-operadores e quais as suas vantagens e desvantagens nos processos de procura.
Definição (com exemplos):
Vantagens
Desvantagens
2. (1,0) Que entende por abstracção e quais as suas vantagens e desvantagens nos processos de procura.
Definição (com exemplos):
Vantagens
Grupo IV (4 valores)
1. Pretende-se resolver o problema de palavras cruzadas apresentado na figura abaixo. No lado esquerdo da figura está o mapa a preencher com palavras escolhidas da lista à sua direita. Todas as casas em branco devem ser preenchidas, sendo usada apenas uma palavra por linha/coluna e garantindo que quando duas palavras se intersectam a letra correspondente em cada uma das palavras é igual.
1H 2V 3V 4H 5H Do Re Bala Mala Vela Aparo Arpao Evita Visco Viver Avalon Avatar Habitar
1.2) (0,75) Realize uma procura com retrocesso sem fazer propagação de restrições. Aplique o algoritmo apenas até criar 12 linhas, na representação escolhida na disciplina. As variáveis e os valores devem ser escolhidos usando uma ordenação alfabética crescente.
1.4) (1,0) Aplique o algoritmo AC-3 ao problema, indicando claramente os domínios obtidos no final do algoritmo.
Grupo V (4 valores)
1. (1,0) Durante a resolução de um problema de planeamento um plano de ordem parcial é transformado até se obter uma solução. Diga o que caracteriza um plano solução.
2. Suponha que se quer construír um plano para o João ir de Casa buscar um Casaco à loja de roupa, Rubi, e ir para o Cinema com o Casaco. Considere que estão definidos os seguintes predicados:
Grupo VI (3 valores)
1. (1,0) Escreva uma função em ANSI Common Lisp que recebe como argumento uma lista e uma função fx e devolve a soma do resultado de aplicar a função fx a todos os números que se encontram nessa lista. O processamento da lista deve ser feito de forma iterativa.
Por exemplo,
> (mapsum '(um 16 25 (1 2) aa bb) #'sqrt) 9.0
2. (1,0) Escreva em ANSI Common Lisp uma função que “alisa” uma lista: Por exemplo,
3. (1,0) Implemente, em ANSI Common Lisp, uma base de dados de contactos usando uma representação interna que utilize structures e hash tables. A base de dados de contactos deve possuir os campos: nome, morada e telefone.
3.1) Defina um novo tipo de structure que permite guardar a informação de um contacto
3.2) Implemente as seguintes primitivas sem recorrer a variáveis globais para armazenar a hash table que tem que criar:
(insere-contacto nome morada telefone) (elimina-contacto nome)