Examen Parcial - 75.23. Inteligencia Artificial - 08/06/06 [Foros-FIUBA::Wiki]
 

Examen Parcial - 75.23. Inteligencia Artificial - 08/06/06

Cátedra: Cabrera
Fecha: Primera Oportunidad - Primer Cuatrimestre 2007
Día: 08/06/2007

Enunciado

  1. Hacer predicado que devuelva en una lista los enteros ⇐ N y mayor que 0
    1. Ej: g(3,L) ⇒ L=[3,2,1]
    2. Ej: g(0,L) ⇒ L=[]
  2. Obtener la profundidad de una lista genérica.
  3. Hacer un predicado que reemplaza un elemento por otro en una lista.
    1. Ej: reemplaza ([a,b,c,d,e,f,g,h,d], d,x,L) ⇒ L=[a,b,c,x,e, f,g,h,x]
  4. Hacer predicado que determina si dos elementos están adyacentes en una lista (al derecho o invertidos).

Resolución

%Ej.1

Domains
lent = integer*

Predicates
nondeterm Menores (integer, lent)

clauses
Menores (0, []).
Menores (N, [N|L]):- N > 0, N1=N-1, Menores (N1, L).

goal
Menores (5, X1),
%Ej.2

Domains
lista = elemento*
elemento = e(symbol); l(lista)

Predicates
nondeterm Prof (lista, integer, integer)
nondeterm Mayor (integer, integer, integer)

clauses
Prof ([], N, N).
Prof ([l(Ca)|Co], N,P):- N1=N+1, Prof (Ca, N1, P1), Prof (Co, N, P2), Mayor (P1, P2, P).
Prof ([e(_)|Co],N, P):- Prof (Co, N, P1), Mayor (N, P1, P).

Mayor (A, B, X):- A >= B, X = A.
Mayor (A, B, X):- B > A, X = B.

goal
Prof ([e(a), e(b), l([e(c), e(d), e(e), l([e(f), e(g)]), e(h)]), e(i), l([e(j), e(k)]), e (l)], 1, X).
%Ej.3

Domains
Lsym = symbol*

Predicates
nondeterm Reemp (Lsym, symbol, symbol, Lsym)

clauses
Reemp ([],_,_,[]).
Reemp ([Ca1|Co1],Ca1, Ca2,[Ca2| Co2]):-Reemp( Co1,Ca1,Ca2, Co2).
Reemp ([Ca1|Co1],X, Y,[Ca1|Co2] ):-X<>Ca1, Reemp(Co1, X,Y,Co2).

goal
Reemp ([a,b,c,d,e, f,g,h],d, x,L).
%Ej.4

Domains
Lsym = symbol*

Predicates
nondeterm Juntos (Lsym, symbol, symbol)

clauses
Juntos ([Ca1|[Ca2|_ ]], Ca1, Ca2).
Juntos ([Ca1|[Ca2|_ ]], Ca2, Ca1).
Juntos ([_|[Ca2|Co] ], A, B):- Juntos ([Ca2|Co], A, B).

goal
Juntos ([a,b,c,d,e,f,g,h],d, c).

Discusión

Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá.
materias/75/23/parcial_0_20070608_1.txt · Última modificación: 2007/06/09 16:03 por mariano
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki