Você está na página 1de 30

Exerccios da cadeira de Inteligncia Articial

Helena Soa Pinto Joo Cachopo Daniel Gonalves Carlos Lopes Antnio Ins Lynce Pedro Matos Ano Lectivo 2001/2002

Prefcio
Este documento rene os exerccios propostos nas aulas prticas da cadeira de Inteligncia Articial da Licenciatura de Engenharia Informtica e de Computadores do Instituto Superior Tcnico. Esta compilao destina-se a ser usada na referida cadeira no ano lectivo 2001/2002. Alguns destes exerccios correspondem traduo de exerccios propostos no livro de texto base da cadeira:

Stuart Russel e Peter Norvig, Articial Intelligence: A Modern Approach, Englewood-Cliff, N.J.: Prentice-Hall, 1995.

Sempre que tal se verique aparece associado ao nmero do exerccio uma indicao do nmero que o exerccio tem no referido livro. O exerccio 9.1 foi retirado do livro:

C-L. Chang e R.C-T. Lee, Symbolic Logic and Mechanical Theorem Proving, New-York, N.Y.: Academic Press, 1973. H. Soa Pinto (editora)

1 LISP

Lisp

Exerccio 1.1 Escreva as seguintes expresses em notao Lisp, considerando a prioridade normal das operaes: 1. 5 + 76 - 8 2. 17 - 45 * 23 3. (17 - 45) * 23 4. 23 - 57 * 34 / 687 5. 15 * 7 + 48 / 5 * 10 + 8 / 4 Exerccio 1.2 Quais os resultados obtidos ao avaliar as seguintes expresses no seu ambiente Lisp: 1. 2. 3. 4. (and (= 3 4) (< 3 4) (> 3 4)) (or (= 3 4) (< 3 4) (> 3 4)) (and (+ 3 4) (- 3 4) (* 3 4)) (or (+ 3 4) (- 3 4) (* 3 4))

Exerccio 1.3 Dena a funo max que recebe dois nmeros e devolve o maior deles. >(max 5 9) 9 Exerccio 1.4 Dena a funo max3 que recebe trs nmeros e devolve o maior deles: 1. Utilizando ifs. 2. Utilizando cond. 3. Utilizando a funo max denida no exerccio anterior. Exerccio 1.5 Dena a funo soma que recebe dois nmeros inteiros no negativos e retorna a sua soma. Apenas pode usar recurso, a forma especial if e as funes 1+, 1- e zerop. > (soma 3 4) 7

1 LISP

Exerccio 1.6 Dena a funo potencia que recebe dois nmeros e calcula o valor de elevar o primeiro (a base) ao segundo (o expoente). Assuma que o expoente sempre um inteiro >= 0. > (potencia 3 2) 9 >(potencia 5/10 3) 1/8 >(potencia (/ 1 3) 3) 1/27 Exerccio 1.7 Qual o resultado das expresses seguintes: >(cons 2 ()) >(cons nil nil) >(cons (1 2 3) (a b c)) >(cons 1 (1 2 3)) >(first (1 2 3)) >(rest (1 2 3)) >(+ 1 2 3) >(list 1 2 3) >(list a b c) >(list 1 (+ 1 2 3) 3) >(list 1 (+ 1 2 3) 3) >(append (1 2 3) (a b c)) Exerccio 1.8 Dena a funo soma-1 que recebe uma lista de nmeros e retorna uma lista de nmeros cujos elementos so os elementos da lista argumento adicionados de uma unidade. >(soma-1 (1 2 3)) (2 3 4) Exerccio 1.9 Dena a funo soma-n que recebe um nmero, n, e uma lista de nmeros e retorna uma lista de nmeros cujos elementos so os elementos da lista argumento adicionados de n. >(soma-n 3 (1 2 3)) (4 5 6)

1 LISP
Exerccio 1.10 Por exemplo, para produzir a lista (1 2 3) devemos introduzir no avaliador: >(1 2 3) Escreva expresses no avaliador de forma a produzir os seguintes resultados: 1. (1 2 3) 2. (1 2 3) 3. ((1 2 3) (3 5) (8))

Exerccio 1.11 Tente que o avaliador retorne a lista ((1 2 3) (3 5) (8)) usando para tal apenas a funo cons, nil e os nmeros. Exerccio 1.12 Dena a funo comprimento que recebe uma lista de elementos e retorna o nmero de elementos dessa lista. >(comprimento (1 2 3)) 3 Exerccio 1.13 Dena a funo junta que recebe duas lista de elementos e retorna a lista resultante de juntar a primeira segunda lista. >(junta (a b c) (1 2 3)) (a b c 1 2 3) Exerccio 1.14 Dena a funo inverte que recebe uma lista de elementos e retorna uma lista com os elementos da lista argumento pela ordem inversa. >(inverte (a b c)) (c b a) Exerccio 1.15 Dena a funo membro que recebe um elemento e uma lista de elementos e retorna verdade se o elemento pertence lista e falso em caso contrrio. >(membro d (a b c)) nil >(membro c (a b c)) t

1 LISP

Exerccio 1.16 Dena a funo retira que recebe um elemento e uma lista de elementos e retorna uma lista que corresponde lista argumento qual foram retiradas todas as ocorrncias do elemento. >(retira c (c a b c)) (a b) Exerccio 1.17 Dena a funo conta-ocorrencias que recebe um elemento e uma lista de elementos e retorna o nmero de vezes que esse elemento ocorre na lista argumento. >(conta-ocorrencias d (a b c)) 0 >(conta-ocorrencias c (a b c)) 1 >(conta-ocorrencias c (c a b c)) 2 Exerccio 1.18 Dena a funo igual-comprimento que recebe duas lista de elementos e retorna verdade se ambas as listas tiverem igual comprimento e falso caso contrrio. No pode usar a funo length ou uma funo auxiliar equivalente a length. > (igual-comprimento (0) (1)) T >(igual-comprimento (1 2) (1 2 3)) NIL Exerccio 1.19 Dena a funo posicao que recebe um elemento e uma lista de elementos e devolve a posio em que o elemento ocorre na lista (sendo a primeira posio a zero). Se o elemento no existir na lista devolve NIL. >(posicao 5 (1 2 3)) NIL >posicao 3 (1 2 3)) 2 >(posicao 2 (1 2 3 2 1 2)) 1 >(posicao defun (defun xpto (ola) (+ ola 3))) 0 Exerccio 1.20 Dena a funo substitui que recebe dois elementos e uma lista de elementos e devolve a lista com todas as ocorrncias do primeiro elemento substitudas pelo segundo. >(substitui 5 7 (1 2 3)) (1 2 3) >(substitui 3 5 (1 2 3)) (1 2 5) >(substitui 2 7 (1 2 3 (2) 1 2)) (1 7 3 (2) 1 7) >(substitui xpto 4 (defun xpto (ola) (+ ola 3))) (defun 4 (ola) (+ ola 3))

1 LISP

Exerccio 1.21 Dena a funo interseccao que recebe duas listas sem elementos repetidos e devolve uma lista que contm todos os elementos em comum nas duas listas. Sugesto: Utilize a funo member do Common Lisp. >(interseccao (14 52 37 28) (28 76 12 52)) (28 52) >(interseccao (xpto zky bdo) (pois XPTO ola)) (xpto) >(interseccao (xpto zky bdo) (fred zyc ola)) NIL Exerccio 1.22 Qual o valor da seguinte expresso: >(let ((x 10)) (+ (let ((x 20)) x) x)) Exerccio 1.23 Dena a funo profundidade que recebe uma lista e devolve um nmero que indica qual o nivel mais profundo de listas dentro dessa lista, aumentando de um sempre que se entra para dentro de uma lista. Se a lista no contm listas devolve 0. >(profundidade (1 2 3)) 0 >(profundidade (1 2 (3 ((4) (5 (6)))))) 4 Exerccio 1.24 Dena a funo conta-todos que recebe um elemento e uma lista e devolve o nmero de vezes que o elemento ocorre na lista e nas suas sublistas. >(conta-todos 5 (1 2 3)) 0 >(conta-todos 3 (1 2 3)) 1 >(conta-todos 2 (1 ((2) 3 2) ((1 2)))) 3 Exerccio 1.25 Dena a funo mapeia que recebe uma funo de um argumento e uma lista e devolve uma lista que contm os resultados de aplicar a funo a cada um dos elementos da lista. >(mapeia #1+ (1 2 3)) (2 3 4)

1 LISP

Exerccio 1.26 Dena a funo remove-se que recebe uma funo de teste (de um argumento) e uma lista e retorna a lista que corresponde lista argumento qual foram retirados todos os elementos que vericam a funo de teste. >(remove-se #(lambda (n) (> n 5)) (1 2 3 4 5 6 7 8 9)) (1 2 3 4 5) Exerccio 1.27 Dena a funo todos? que recebe uma lista de elementos e uma funo de teste (de uma argumento) e retorna verdade se todos os elementos da lista vericam a funo e falso em caso contrrio. >(todos? (1 2 3 4 5 6 7 8 9) #(lambda (n) (> n 5))) nil >(todos? (1 2 3 4) #(lambda (n) (< n 5))) t Exerccio 1.28 Dena a funo reduza que recebe uma funo e uma lista. A lista deve ter pelo menos dois elementos. A funo chamada inicialmente para os dois primeiros elementos da lista, depois entre esse resultado e o elemento seguinte da lista e assim sucessivamente. >(reduza #+ (1 2 3 4)) 10 >(reduza #* (1 2 3 4)) 24 >(reduza #interseccao ((b l a d) (b a d) (r a t))) (A) Exerccio 1.29 Dena a funo soma-matrizes que recebe duas tabela de 2 dimenses (x, y) de igual tamanho arbitrrio e retorna outra tabela que corresponde soma das duas tabelas. Exerccio 1.30 Dena a funo transpoe que recebe uma tabela de 2 dimenses (x, y) de tamanho arbitrrio e retorna outra tabela que corresponde transposio da tabela recebida em argumento. Exerccio 1.31 Dena a funo diagonal que recebe uma tabela de 2 dimenses (x, y) de tamanho arbitrrio e retorna verdade se esta uma tabela diagonal e falso em caso contrrio. Exerccio 1.32 Dena a funo copy-array-2-dim que recebe uma tabela bidimensional de tamanho arbitrrio e retorna uma cpia dessa tabela.

1 LISP
Exerccio 1.33 Usando estruturas:

1. Dena uma estrutura que representa informao sobre um modelo de carro. Considere que um modelo caracterizado por uma marca, designao, potncia, cilindrada e extras. 2. Dena uma estrutura veculo que representa informao sobre um veculo. Considere que este caracterizado por uma matrcula, ano de registo e um modelo de carro. 3. Crie um veculo de matrcula 12-34-AB, ano de registo 1900, marca Rolls-Royce, designao Silver-Ghost, 300 Cv de potncia, 20000cm de cilindrada e sem extras. 4. Escreva uma funo veiculo-cilindrada que recebe um veculo e retorna a cilindrada desse veculo. Exerccio 1.34 Considere o clssico jogo do galo, num tabuleiro de 3x3, em que h dois jogadores representados por X e por O respectivamente. 1. Dena uma estrutura estado que contenha a seguinte informao: (a) Um campo tabuleiro: array de 3x3 que representa o tabuleiro do jogo. Cada posio conter o smbolo X, O ou NIL, consoante tenha uma pea do jogador respectivo ou nenhuma pea. (b) Um campo proximo: ir conter o smbolo X ou O consoante o prximo jogador a jogar. 2. Dena a funo cria-estado que devolve uma instncia da estrutura do tipo estado, devidamente inicializada, em que o primeiro jogador o X. 3. Considere a seguinte funo: > (defun joga (est x y) (cond ((or (< x 0) (< y 0) (> x 2) (> y 2)) nil) (T (setf (aref (estado-tabuleiro est) x y) (estado-proximo est) (estado-proximo est) (if (eql (estado-proximo est) X) O X)) est))) (a) Diga qual o resultado obtido pela seguinte expresso: > (let ((est (cria-estado))) (let ((est2 (joga est 1 1))) est2)) (b) Obteria o mesmo resultado com a expresso seguinte? Porqu? > (let ((est (cria-estado)) (est2 (joga est 1 1))) est2)

1 LISP

4. Imagine agora que pretente denir a funo joga de forma no-destrutiva, isto , aps executar est2, esta dever car com o novo estado e est com o estado original, no alterado. A funo seguinte resolve o nosso problema? Caso esta funo no resolva o nosso problema diga o que falhou e como o poderamos resolver? (defun joga (est x y) (cond ((or (< x 0) (< y 0) (> x 2) (> y 2)) nil) (T (let ((novo-est (copy-estado est))) (setf (aref (estado-tabuleiro novo-est) x y) (estado-proximo novo-est) (estado-proximo novo-est) (if (eql (estado-proximo novo-est) X) O X)) novo-est))))

Exerccio 1.35 Considere a seguinte funo: > (defun misterio (n1) #(lambda (x n2) (cond ((eql x d) (setf n1 (+ n1 n2))) ((and (eql x l) (<= n2 n1)) (setf n1 (- n1 n2))) ((and (eql x l) (> n2 n1)) nao-tem-suficiente) (t operacao-desconhecida)))) MISTERIO 1. Explique o que faz a funo mistrio e d exemplos da sua utilizao. 2. Explique o que acontece em cada passo se as seguintes expresses Lisp forem avaliadas depois da denio da funo mistrio. Diga qual o valor retornado em cada passo dessa sequncia. > (setf minha (misterio 200)) > (funcall minha l 100) > (funcall minha lav 0) > (funcall minha l 0) > (funcall minha l 200) > (funcall minha d 100) > (funcall minha d 0) > (funcall minha d 200)

1 LISP

10

Exerccio 1.36 Dena a funo eleva, que eleva um nmero a uma determinada potncia. Se a potncia no for indicada dever ser considerada 2. > (eleva 3) 9 > (eleva 3 4) 81 Exerccio 1.37 Dena uma variao da funo anterior, eleva*, que eleva um nmero a uma determinada potncia em que deixa de ser necessrio saber a ordem dos seus argumentos. > (eleva* :base 3 :expoente 4) 81 Exerccio 1.38 Dena a funo faz-lista que recebe qualquer nmero de argumentos e devolve uma lista com todos eles. > (faz-lista 1 2 3 4) (1 2 3 4)

2 AGENTES

11

Agentes

Exerccio 2.1 (Livro - 2.5-2.11) Considere o mundo do rob aspirador: Percepes Cada agente aspirador recebe percepes compostas por informao proveniente de trs sensores:

o sensor de toque que tem o valor 1 caso o rob tenha colidido com algo e 0 em caso contrrio, o fotosensor que tem o valor 1 caso exista sujidade na posio em que o rob se encontra e 0 em caso contrrio, e o sensor de infravermelhos que tem o valor 1 se o rob est numa casa especial, designada home, e 0 em caso contrrio.

Aces O rob pode efectuar 5 aces: andar em frente, virar 90 para a direita, virar 90 para a esquerda, aspirar e desligar-se. Objectivos O objectivo do rob limpar o ambiente e voltar casa home. De forma mais precisa, a funo de desempenho soma 100 pontos por sujidade aspirada, subtrai 1 ponto por cada aco efectuada e subtrai 1000 pontos se o rob no se encontra na casa home e se desliga. Ambiente O ambiente consiste numa grelha de quadrados. Alguns quadrados podem ter obstculos (moblia ou paredes) e outros no (open space). Alguns quadrados tm sujidade. Cada aco de forward avana um quadrado na direco para o qual o rob est virado a no ser que exista um obstculo nesse quadrado. Nesse caso o sensor de toque passa ao valor 1. Uma aco de aspirar limpa toda a sujidade desse quadrado. As aces de virar fazem com que o rob mude a direco para o qual est virado mantendo-se no mesmo quadrado. A aco de desligar termina a simulao. A complexidade do ambiente varia segundo 3 dimenses:

forma da sala - No caso mais simples um quadrado nXn com n xo. Pode-se complicar mudando-o para a forma rectangular, irregular, srie de salas unidas por corredores, etc. mobilia - Pr moblia torna o ambiente mais complexo do que se estiver vazio. Para o sensor de toque uma parede ou uma pea de moblia aparecem com o mesmo valor. distribuio da sujidade - No caso mais simples est disposta uniformemente ao longo da sala. Em ambientes mais realistas concentra-se em algumas localizaes (ao longo de um caminho para a sala seguinte, em frente de um sof, etc.).

Normalmente, a casa home o quadrado superior esquerdo e no incio da simulao o rob encontra-se na casa home virado para a direita. 1. Implemente em ANSI Common Lisp o agente guiado por tabelas para uma sala de 2x2 sem moblia onde no mximo 2 quadrados tm sujidade. O rob est virado para a direita no quadrado home. Repare que neste ambiente o rob pode completar a sua tarefa em nove ou menos aces. Qual o tamanho da tabela que implementa este agente? 2. Implemente em ANSI Common Lisp o tipo abstracto percepo que corresponde informao recebida por este agente dos seus sensores: (a) usando listas

2 AGENTES
(b) usando estruturas

12

3. Implemente em ANSI Common Lisp o agente de reexos simples para o ambiente da alnea anterior. Quais os objectivos que tm de ser ignorados? Porqu? 4. O que acontece se o ambiente deste agente de reexos simples passar a ser de 3x3? 5. Reimplemente em ANSI Common Lisp o agente de reexos simples de forma a no ter os problemas encontrados na alnea anterior. 6. Implemente em ANSI Common Lisp um simulador do ambiente do rob aspirador de modo a que os agentes denidos nas alneas anteriores possam ser testados. Suponha que o ambiente um rectngulo que tem paredes volta da sua fronteira e tem como dimenses alturaXlargura. A distribuio da sujidade uniforme ao longo do ambiente. 7. Implemente em ANSI Common Lisp um agente de reexos com estado interno em que o agente apenas sabe que as dimenses do ambiente em que se encontra so alturaXlargura e que no incio se encontra na casa home usual virado para a direita.

Exerccio 2.2 Considere um rob que trabalha numa linha de montagem. Este rob tem dois sensores que lhe permitem saber respectivamente se na sua frente est ou no uma porca e se na sua frente est ou no um parafuso. 1. Dena em ANSI Common Lisp uma estrutura percepo para esse robot. 2. Crie a percepo que o rob receber caso tenha na sua frente uma porca e no tenha um parafuso. 3. Crie a percepo que o rob receber caso tenha na sua frente um parafuso e no tenha uma porca. 4. Crie a percepo que o rob receber caso tenha na sua frente um parafuso e uma porca. 5. Dena a funo tem-tudo que recebe uma percepo e retorna verdade se o rob tiver um parafuso e uma porca na sua frente e falso caso contrrio. 6. Que funes foram automaticamente criadas para manipular a percepo? Diga quais os seus nomes e descreva o que fazem. Exerccio 2.3 Considere uma mquina automtica de fazer caf. Aps a introduo de um determinado montante o utente prime um boto o qual vai fazer com que o rob de fazer caf receba um percepo. Suponha que a percepo do rob de fazer caf dada pela seguinte estrutura: (defstruct percepcao (quantia 0) ; (tem-agua NIL) ; ; (tem-cafe NIL)) ; ; o montante introduzido pelo utente T se existe gua para fazer pelo menos um caf T se existe caf modo para fazer pelo menos um caf

Caso a quantia seja menor que um determinado valor (*valor*), no exista gua ou caf modo para fazer pelo menos um caf o rob tem como aco devolver o dinheiro ao utente, caso contrrio tem como aco fazer o caf.

2 AGENTES
1. Implemente este agente em ANSI Common Lisp. 2. Diga que tipo de agente se trata. Justique.

13

Exerccio 2.4 Considere uma mquina automtica de fazer caf. Aps a introduo de um determinado montante o utente prime um boto o qual vai fazer com que o rob de fazer caf receba uma percepo. A percepo do rob de fazer caf contm informao proveniente de trs sensores. O primeiro sensor contm informao sobre o montante introduzido pelo utente. O segundo sensor contm informao sobre o tanque de gua. Se o tanque de gua est cheio o sensor retorna T e se o tanque de gua no est cheio retorna NIL. Quando o tanque de gua est cheio o rob de fazer caf sabe que tem gua suciente para fazer 100 cafs. O terceiro sensor contm informao sobre o reservatrio de caf modo. Se o reservatrio de caf modo est cheio o sensor retorna T e se reservatrio de caf modo no est cheio retorna NIL. Quando o reservatrio de caf modo est cheio o rob de fazer caf sabe que tem caf suciente para fazer 200 cafs. Quando o rob instalado o tanque de gua e o reservatrio de caf modo so cheios. Quando o rob recebe uma percepo, caso a quantia seja menor que um determinado valor, no exista gua ou caf modo para fazer pelo menos um caf o rob tem como aco devolver o dinheiro ao utente, caso contrrio tem como aco fazer o caf. 1. O rob descrito acima pode ser considerado um agente. Diga porqu. 2. Diga de que tipo de agente se trata. Justique. 3. Dena em ANSI Common Lisp uma estrutura percepo para este agente. 4. Dena uma funo em ANSI Common Lisp que devolve agentes com o comportamento do rob de fazer caf. Exerccio 2.5 Considere um agente associado a um sensor numa fbrica de brinquedos. O sensor detecta quando que um boneco passou pela passadeira. O agente recebe informao do sensor e quando tiverem passado 10 bonecos emite a aco de empacotar. 1. Diga de que tipo de agente se trata. Justique. 2. Dena em ANSI Common Lisp uma estrutura percepo para este agente. 3. Dena uma funo em ANSI Common Lisp que devolve agentes do tipo descrito. Enquanto no tiver passado o nmero adequado de bonecos o agente tem a aco de no fazer nada.

3 PROCURA NO INFORMADA

14

Procura no informada

Exerccio 3.1 Considere o seguinte espao de estados em que o estado inicial o n A e os estados nais so os ns F, I e J:
A 4 3 C 2

B 2

D 1

Admitindo que em caso de empate os sucessores so expandidos por ordem alfabtica, desenhe a rvore gerada e assinale a ordem de expanso de uma procura com uma estratgia: 1. de profundidade primeiro, 2. de largura primeiro, 3. de custo uniforme (o custo de transio o inteiro que est representado ao lado dos arcos), 4. de profundidade limitada com limite=3, 5. de profundidade iterativa. Exerccio 3.2 Um vendedor quer visitar as cidades do mapa sem passar duas vezes pela mesma cidade (e sem voltar cidade de origem).
Porto 200 150 150 Viseu 300 200 750 Lisboa VilaReal

350

Faro

A cidade de partida Lisboa. Em caso de empate entre dois ns escolha o n por ordem alfabtica. 1. Escolha uma formulao adequada para o problema.

3 PROCURA NO INFORMADA

15

2. Desenhe a rvore de procura gerada e assinale a ordem de expanso de uma procura com uma estratgia: (a) de profundidade primeiro, (b) de largura primeiro, (c) de custo uniforme, (d) de profundidade limitada, escolhendo o limite apropriado, (e) de profundidade iterativa. Exerccio 3.3 Considere o problema das vasilhas. Dispomos de duas vasilhas, com capacidades de 3 e 5 litros. Inicialmente as vasilhas esto vazias e pretendemos medir uma certa quantidade de gua. As acces que podemos executar so:

encher totalmente cada uma das vasilhas; verter o contedo de uma vasilha noutra, at a primeira car vazia ou a segunda cheia; deitar fora todo o contedo de uma vasilha.

Para resolver este problema utilizando os algoritmos de procura estudados vamos usar a seguinte representao em Lisp para o estado do problema: (defstruct estado (v3 0) ; lquido existente na vasilha de 3 litros (v5 0)) ; lquido existente na vasilha de 5 litros As funes 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 uma nova estrutura que resulta de aplicar esse operador, ou ento a lista vazia, se o operador no for aplicvel. Por exemplo, para um estado em que a vasilha de trs 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 trs litros e a segunda um litro. 1. Dena as funes encher-v3, v3<-v5 e esvaziar-v5. 2. Dena a funo sucessores que dado um estado devolve todos os sucessores desse estado (ou seja, o resultado de aplicar todos os operadores). 3. Dada a seguinte denio de um problema: (defstruct problema estado-inicial fn-objectivo? ; predicado que identifica o estado soluo fn-sucessores) Dena a funo cria-problema que recebe dois nmeros: a quantidade de gua desejada para as vasilhas de trs e cinco litros, respectivamente. A funo 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 nal tem as vasilhas com as quantidades indicadas nos argumentos da funo.

4 PROCURA INFORMADA

16

Procura informada

Exerccio 4.1 Considere o seguinte espao de estados em que o estado inicial o n A e os estados nais so os ns F, I e J:
2 4 2 A 3 1 C 1 2

1 1

3 0 0 I J

O custo de transio o inteiro que est representado ao lado dos arcos e o valor da funo heurstica o inteiro que se encontra ao lado do respectivo n. Admitindo que em caso de empate os sucessores so expandidos por ordem alfabtica, desenhe a rvore gerada, indicando o valor da funo de avaliao para cada n gerado e numerando os ns pela ordem em que so expandidos, por uma procura com uma estratgia: 1. gananciosa, 2. A , 3. IDA . Exerccio 4.2 Considere o seguinte espao de estados, em que os valores dos ramos correspondem ao custo da transio e os dos ns se referem funo heurstica.
6 1 3 A 2

1. A heurstica admissvel? Justique.

2. Considere que ns com o mesmo valor de so expandidos da esquerda para a direita. Desenhe a rvore de procura gerada, indicando o valor da funo de avaliao para cada n gerado e numerando os ns pela ordem em que so expandidos, por uma procura com uma estratgia:

4 PROCURA INFORMADA
(a) gananciosa, (b) A , (c) IDA .

17

Exerccio 4.3 Considere o exerccio 3.2. 1. Suponha que a heurstica a utilizar igual ao produto do comprimento mdio dos caminhos (200Km) pelo nmero de cidades que falta percorrer. A heurstica proposta adequada? Porqu? Caso considere que ela no adequada proponha uma nova heurstica. 2. Considere agora uma variao do exerccio 3.2. O objectivo ir de Lisboa a Vila Real. Considere a seguinte heurstica:

h(Lisboa) = 300 h(Lisboa-*) = 150 h Lisboa-*-**

se **
Vila Real caso contrrio

Desenhe a rvore gerada, indicando o valor da funo de avaliao para cada n gerado e numerando os ns pela ordem em que so expandidos, por uma procura com uma estratgia: (a) gananciosa, (b) A , (c) IDA .

5 PROCURA COM DOIS AGENTES

18

Procura com dois agentes

Exerccio 5.1 Considere que a rvore seguinte corresponde a uma parte do espao de estados de um jogo de dois agentes.

f=4

f=6

f=5

f=6

f=8

f=9

f=1

f=8

1. Desenhe a rvore gerada por uma procura minimax na rvore acima, da esquerda para a direita, utilizando como funo de avaliao dos ns terminais. Mostre o valor de cada n e indique o caminho que ser escolhido para jogar (previso obtida pela procura). 2. Desenhe a rvore gerada por uma procura alfa-beta na rvore acima, da esquerda para a direita, utilizando como funo de avaliao dos ns terminais. Mostre os valores de e  para cada n no terminal que seja visitado, assinale com um trao os ramos que foram eliminados por um corte (cutoff) e indique o caminho que ser escolhido para jogar (previso obtida pela procura). 3. Desenhe a rvore gerada por uma procura alfa-beta na rvore acima, da direita para a esquer da, utilizando como funo de avaliao dos ns terminais. Mostre os valores de e  para cada n no terminal que seja visitado, assinale com um trao os ramos que foram eliminados por um corte (cutoff) e indique o caminho que ser escolhido para jogar (previso obtida pela procura).

Exerccio 5.2 Considere que a rvore seguinte corresponde a uma parte do espao de estados de um jogo de dois agentes.

5 PROCURA COM DOIS AGENTES

19

f=10

f=5

f=12

f=10

f=4

f=10

f=3 f=20

f=11

f=3

f=5

f=10

f=15

Desenhe a rvore gerada por uma procura alfabeta na rvore acima, da esquerda para a direita, utilizando como funo de avaliao dos ns terminais. Indique ao lado de cada n no terminal visitado os respectivos valores de alfa e beta; escurea os ns terminais visitados; marque os cortes por um trao; e indique qual a jogada escolhida. Exerccio 5.3 (Livro 5.1) Considere o jogo do Galo: 1. Desenhe o espao de estados at profundidade 2, comeando pelo tabuleiro vazio e tendo em conta as simetrias (dois tabuleiros simtricos correspondem ao mesmo estado). 2. Assumindo que  ( ) representa o nmero de linhas, colunas ou diagonais com exactamente n Xs (Os) e nenhum O (X), aplique o algoritmo minimax rvore da alnea anterior utilizando a funo de avaliao seguinte:

f(

f(

=1) = -1

=1) = 1

f(outro estado nal) = 0 f(outro estado) = 3 +  - (3 +  )

3. Marque os ns do nvel 2 que no seriam avaliados se tivesse sido aplicada a procura alfabeta, assumindo que os ns eram gerados segundo a ordem que optimiza os cortes. Exerccio 5.4 Considere que a rvore seguinte corresponde a uma parte do espao de estados de um jogo de dois agentes.

5 PROCURA COM DOIS AGENTES

20

No maximizante

h=3 f=7

h=2 f=7

h=2 f=2

h=5 f=7

h=3 f=4

h=1 f=5

h=2 f=3

h=6 f=9

h=4 f=6

h=4 f=3

h=5 f=9

h=2 f=9

h=4 f=8

h=3 f=8

h=1 f=8

h=5 f=9

h=6 f=9

h=2 f=5

h=3 f=4

h=2 f=3

h=1 f=1

h=3 f=4

h=8 f=2

h=5 f=7

h=4 f=9

h=1 f=9

h=4 f=8

Faa uma procura alfa-beta na rvore acima, com uma profundidade mxima igual a 4 e utilizando a funo h como heurstica de seleco do prximo sucessor a ser examinado e a funo f como heurstica de avaliao dos ns terminais. Mostre os valores de e  para cada n no terminal que seja visitado, escurea cada n terminal que seja visitado, assinale com um trao os ramos que foram eliminados por um corte (cutoff) e indique o caminho que ser escolhido para jogar (previso obtida pela procura).

6 LGICA PROPOSICIONAL

21

Lgica proposicional

Exerccio 6.1 Considere a proposio seguinte: Quando o Miguel tem dinheiro vai ao cinema ou ao circo. 1. Represente-a em LP e descreva qual a interpretao utilizada. 2. Indique um modelo. 3. Diga se corresponde a uma proposio vlida, satisfazvel ou no satisfazvel. Justique recorrendo a uma tabela de verdade. Exerccio 6.2 (Livro 6.2) Usando tabelas de verdade mostre que as proposies seguintes so vlidas. 1. 2. 3. 4. 5.

 !"$#%&'()*(! (+#,-( +./+#1023.,02 0$02+#, +./+#102546

Exerccio 6.3 (Livro 6.12) Considere os factos seguintes:

Jones, Smith e Clark tm as prosses de programador, engenheiro do conhecimento e gestor (no necessariamente por esta ordem); Jones deve $10 ao programador; A mulher do gestor proibe-o de pedir dinheiro emprestado; Smith no casado.

1. Represente-os em LP. Utilize apenas nove smbolos proposicionais representando as possveis atribuies pessoa/prosso. Por exemplo, pode utilizar o smbolo JP para indicar que o Jones programador. 2. Qual a prosso de cada um? Responda pergunta gerando a tabela de verdade para as seis combinaes possveis de atribuies pessoa/prosso e vericando que existe apenas um modelo para as proposies da alnea anterior.

6 LGICA PROPOSICIONAL
Exerccio 6.4 Considere o circuito digital seguinte:
D

22

A B P1

P2

1. Enumere os smbolos proposicionais para representar os estados possveis das entradas e sadas das vrias portas lgicas. 2. Represente o funcionamento do circuito em LP, assumindo que os elementos que o constituem no tm qualquer problema. 3. Utilizando uma tabela de verdade, diga qual o valor de sada do circuito quando as entradas A, B e D tomam os valores 1, 1 e 0, respectivamente. 4. Supondo agora que o circuito pode ter alguma avaria, introduzimos dois smbolos proposicionais para representar o bom funcionamento das portas P1 e P2: OK1 e OK2, respectivamente. Utilizando estes novos smbolos, redena as frmulas que representam o funcionamento do circuito. 5. Observou-se que as entradas A, B e D tm os valores 1, 1 e 1, respectivamente, mas a sada E tem o valor 0. Certamente alguma das portas est avariada. Utilizando as frmulas da alnea anterior, gere a tabela de verdade por forma a conseguir diagnosticar as causas possveis.

7 LGICA PRIMEIRA ORDEM

23

Lgica primeira ordem

Exerccio 7.1 Usando os seguintes predicados:

membro(x, y) - x membro de y bomGosto(x) - x tem bom gosto aluno(x, y) - x aluno da cadeira y gravou(x, y) - x gravou y tem(x, y) - x tem y trabalhador(x) - x trabalhador joga(x, y) - x joga o jogo y

1. Represente as seguintes proposies em Lgica de Primeira Ordem: (a) Quem membro da LEIC ou quem tem bom gosto aluno da cadeira de IA. (b) Quem gravou o TETRIS tem esse jogo e tem bom gosto. (c) Quem tem o TETRIS joga-o. (d) Todos os alunos da cadeira de IA trabalhadores jogam TETRIS. 2. Reescreva-as na forma de Horn.

Exerccio 7.2 Represente, em Lgica de Primeira Ordem, as seguintes proposies: 1. O que interessante no montono. 2. Existem lmes interessantes. 3. A durao do Gone with the wind maior do que a durao do Cast away. 4. Os lmes que a Me da Maria v so interessantes. 5. Nem todos os lmes grandes so montonos. 6. Existem lmes que toda a gente v. Represente estas proposies escolhendo de forma adequada as constantes, os smbolos de funo e os smbolos de predicado a utilizar e rera as escolhas efectuadas. Exerccio 7.3 Escreva, em Portugus, as seguintes proposies representadas em Lgica de Primeira Ordem, considerando que:

87 &9;:=<>
1.

- x l y

Domnio: Todas as pessoas e livros.

?@9BAC< 7 &9;:=<>

7 LGICA PRIMEIRA ORDEM


2. 3. 4. 5. 6. 7.

24

A><>?@9 7 &9;:=<> ?@9D 7 =EGFIHJFJ:K9LCMA><*KN<P


+ O EGFIHJF RQS0 7 N<T:U9LKVK ?@9WA><X0 7 &9;:Y<> 0Z?B9BA>< 7 &9;:Y<[K ?\<*KZ?B92 7 &9;:Y<>YKLQ]NA_^C 7 &^>:Y<[VKK A_92 7 &9;:K`Ra@b!cIRQ 7 &9;:K`Ra@bd!eWf K

Exerccio 7.4 Represente, em Lgica de Primeira Ordem, as seguintes proposies: 1. Alguns livros so interessantes. 2. Os livros de estudo so grandes. 3. Nem todos os livros esto escritos em Portugus. 4. Quem no gosta de nenhum livro inculto. 5. H pessoas que lem exactamente um livro por ano. 6. Todos os estudantes gostam de algum livro. 7. Existe um livro de que todos os estudantes gostam. 8. O nmero de pginas da Bblia maior que o nmero de pginas do AIMA.

8 MODUS PONENS GENERALIZADO

25

Modus Ponens Generalizado

Exerccio 8.1 Considere o exerccio 7.3. 1. Acrescente a proposio A Maria gravou o TETRIS base de conhecimento e indique que concluses permite essa proposio inferir, usando inferncia progressiva. 2. Introduza agora na base de conhecimento original as proposies indicadas abaixo e responda, recorrendo inferncia regressiva, questo: Quem joga TETRIS?

trabalhador(Miguel) membro(Miguel, LEIC)

Exerccio 8.2 Considere as proposies seguintes:

Os satlites recebem e reectem os sinais emitidos pela Terra. Os satlites articiais amplicam os sinais recebidos. Um sinal amplicado forte. FS1 um sinal. POSAT um satlite articial. A Lua um satlite. Tudo o que a Lua reecte estranho desde que seja forte.

1. Represente as proposies acima em Lgica de Primeira Ordem, na forma adequada para se poder aplicar Modus Ponens Generalizado. Utilize os predicados seguintes:

satelite(x) - x um satlite artificial(x) - x articial sinal(x) - x um sinal forte(x) - x forte estranho(x) - x estranho amplificado(x) - x est amplicado recebe(x,y) - x recebe y reflecte(x,y) - x reecte y emitido(x,y) - x emitido por y

2. Introduza a proposio O FS1 foi emitido da Terra base de conhecimento e indique que concluses permite essa proposio inferir, usando inferncia progressiva. 3. Utilizando inferncia regressiva na base de conhecimento original mais a proposio introduzida na alnea anterior, responda pergunta Existe alguma coisa estranha?

8 MODUS PONENS GENERALIZADO


Exerccio 8.3 Considere a seguinte informao:

26

Os relgios clssicos tm ponteiros e funcionam a corda. O que funciona a corda antigo. Os antiqurios gostam de relgios antigos e automveis modernos. Bolinhas um automvel. O Tic-Tac um relgio. Rui um antiqurio.

1. Represente a informao acima em Lgica de Primeira Ordem, na forma adequada para se poder aplicar Modus Ponens Generalizado. Utilize os predicados seguintes:

relogio(x) - x um relgio classico(x) - x e clssico antigo(x) - x antigo moderno(x) - x moderno antiquario(x) - x um antiqurio automovel(x) - x um automvel tem(x,y) - x tem y funciona(x,y) - x funciona a y gosta(x,y) - x gosta de y

2. Acrescente a proposio O Tic-Tac clssico base de conhecimento e indique que concluses permite essa proposio inferir, usando inferncia progressiva. 3. Utilizando inferncia regressiva na base de conhecimento original, responda pergunta Algum gosta de alguma coisa?

9 RESOLUO

27

Resoluo

Exerccio 9.1 Considere a informao seguinte:

Os ociais de alfndega revistaram todos os no VIPs que entraram neste pas. Alguns dos tracantes de droga entraram neste pas e foram revistados por apenas tracantes de droga. Nenhum tracante de droga era VIP.

Uma possvel representao em LPO da informao descrita a seguinte:

A_9Cg6&9LCh0$b(&9Li.j?\<*&kl<[C(!&9;:Y<>K ?@9[m&9LL(gk9L_kA><T!W9;:=<>2.nmN<>K A_9[m&9L2.10$bk&9L

1. Converta as frmulas anteriores para a forma implicativa normal. 2. Usando resoluo, prove por refutao que alguns dos ociais eram tracantes de droga. Exerccio 9.2 Considere as seguintes frmulas em lgica de primeira ordem:

A_92 Animal &9LToZ?\< 0


Animal(Bobi) Saudvel(Bobi)

_ A 92 Animal &9LT Domstico &9LV2.]Z?J< Dono N<L:K9L* A_92 Animal &9LToZ?\< Dono N<T:U9LVK2. Esperto &9L
Gosta N<L:K9LKL Esperto &9LV2.

Gosta N<L:K9LK Saudvel &9L

1. Converta-as para a forma implicativa normal. 2. Usando resoluo, prove por refutao que

Domstico(Bobi).

Exerccio 9.3 Considere as seguintes frmulas em lgica de primeira ordem:

_ A 9BAC<T DesenhoAnimado &9LL Estudio l<[* Produz &9;:Y<[Ki. A_92 DesenhoAnimado 9L_ Japones &9LV2. Anime &9L A_9 Anime &9L$. Bom &9L A_92 DesenhoAnimado 9L_pZ?\< Estudio N<[L Produz &9;:Y<[L Estudio(Gainax)  Produz(Gainax,Evangelion) DesenhoAnimado(Evangelion)
1. Converta-as para a forma implicativa normal.

Grande l<[

Grande N<>KK2.

Japones 9L

2. Usando resoluo, prove por refutao que Bom(Evangelion).

10 PLANEAMENTO

28

10

Planeamento

Exerccio 10.1 (Livro - 11.1) Dena o esquema de operadores para o problema de pr os sapatos, as meias, um chapu e um casaco, supondo que no h pr-condies para pr o chapu ou o casaco. Encontre o plano parcialmente ordenado que soluo do problema e mostre que h 180 diferentes linearizaes para essa soluo. Exerccio 10.2 (Livro - 11.4) A gura mostra o problema do mundo dos blocos conhecido como Anomalia de Sussman. O problema era considerado anmalo porque os planeadores noninterleaved do incio dos anos 1970 no o conseguiam resolver. Codique o problema usando operadores STRIPS e use o POP para o resolver.
A C A Inicio B B C Fim

Exerccio 10.3 Considere uma situao do mundo dos blocos em que os blocos q , r Considerando a aco t+FvuJw descrita por

es

esto em cima da mesa.

xzyB&qsm{aJx|Sy\t+FvuJw\Z}~:K9;:=<>: d!gxsdx|oydRZ}~:U9L*ks&wvH[Z};(sewvH[N<> g"dgxsm3y"RZ}~:Y<[*(s&wvH[&9L*h02"RZ}~:K9LTP02se&w~H>N<[V complete o plano apresentado abaixo que tem por objectivo colocar o bloco q em cima de r em cima de s .
Start

er

dq:=me:UdR&r6:Ym:K"R&sd:Ym:Us&wvH[&q:Ks&wvH[&r:Ks&wvH[&s:Kse&w~H>Nm "R&q:Ym:Ks&wvH[&q:KsewvH[&r
Move(A, T, B)

"R&q:Kr:KsewvH[Nm:V02dq:=me:V02s&w~H[r dq:Ur:Udr6:Us
Finish

10 PLANEAMENTO

29

Exerccio 10.4 (Livro - 11.2) Considere uma verso do problema da compra de leite/bananas/berbequim no qual o dinheiro est considerado, de uma forma simplicada. 1. Considere que CC representa o carto de crdito que o agente pode usar para comprar objectos. Modique a descrio de Buy de forma a que o agente tenha de ter o seu carto de crdito em ordem de forma a poder comprar algo. 2. Dena um operador PickUp que permite que o agente tenha (Have) um objecto se este transportvel e est no mesmo local que o agente. 3. Assuma que o carto de crdito est em casa, mas Have(CC) inicialmente falso. Construa um plano parcialmente ordenado que atinge o objectivo, mostrando as restries de ordem e as ligaes causais. 4. Explique em detalhe o que acontece durante o processo de planeamento quando o planeador explora um plano parcial no qual o agente sai de casa sem o carto de crdito.