Solucion Ejercicios IA

8
Resolver los siguientes ejercicios Construir los siguientes programas en Prolog 1. Armar una base de datos con la siguiente información sobre los vuelos de una aerolínea, el predicado puede ser “es_vuelo”, por ejemplo: es_vuelo(buenos_aires, córdoba). Ciudad de origen Ciudad de destino Buenos Aires Córdoba Buenos Aires Santa Rosa Buenos Aires San Juan Córdoba Santa Fe Córdoba Tucumán Córdoba Santa Rosa San Juan Tucumán San Juan Mendoza San Juan Neuquén Mendoza Tucumán Santa Rosa San Juan 2. Usando la base de vuelos, expresar las siguientes preguntas como consultas Prolog: a) ¿Tengo algún vuelo de Córdoba a Santa Rosa? es_vuelo(cordoba,santa_rosa). true. b) ¿Existe un vuelo desde Santa Fe hasta Neuquén? es_vuelo(santa_fe,neuquen). false. c) ¿Existe un vuelo desde Tucumán hasta San Juan? es_vuelo(tucuman,san_juan). false. d) ¿Hacia que ciudades van los vuelos que parten de Córdoba? es_vuelo(cordoba,X). X = santa_fe ; X = tucuman ; X = santa_rosa. e) ¿De donde provienen los vuelos que llegan a San Juan? es_vuelo(X,san_juan).

description

IA

Transcript of Solucion Ejercicios IA

Page 1: Solucion Ejercicios IA

Resolver los siguientes ejercicios

Construir los siguientes programas en Prolog

1. Armar una base de datos con la siguiente información sobre los vuelos de una aerolínea, el predicado puede ser “es_vuelo”, por ejemplo:

es_vuelo(buenos_aires, córdoba).

Ciudad de origen Ciudad de destino

Buenos Aires CórdobaBuenos Aires Santa RosaBuenos Aires San JuanCórdoba Santa FeCórdoba TucumánCórdoba Santa RosaSan Juan TucumánSan Juan MendozaSan Juan NeuquénMendoza TucumánSanta Rosa San Juan

2. Usando la base de vuelos, expresar las siguientes preguntas como consultas Prolog:

a) ¿Tengo algún vuelo de Córdoba a Santa Rosa?es_vuelo(cordoba,santa_rosa).true.

b) ¿Existe un vuelo desde Santa Fe hasta Neuquén?es_vuelo(santa_fe,neuquen).false.

c) ¿Existe un vuelo desde Tucumán hasta San Juan?es_vuelo(tucuman,san_juan).false.

d) ¿Hacia que ciudades van los vuelos que parten de Córdoba?es_vuelo(cordoba,X).X = santa_fe ;X = tucuman ;X = santa_rosa.

e) ¿De donde provienen los vuelos que llegan a San Juan?es_vuelo(X,san_juan).X = buenos_aires ;X = santa_rosa.

Page 2: Solucion Ejercicios IA

3. Con la base de vuelos, contestar las siguientes preguntas:

a) ¿Existe algún vuelo desde Santa Rosa a Mendoza pasando por San Juan?es_vuelo(santa_rosa,san_juan),es_vuelo(san_juan,mendoza).true.

b) ¿Existe algún vuelo desde Buenos Aires a San Juan pasando por alguna otra ciudad?es_vuelo(buenos_aires,X),es_vuelo(X,san_juan).X = santa_rosa ;

c) ¿Por qué ciudad intermedia pasa un vuelo que parte de Buenos Aires y llega a Santa Fe?

es_vuelo(buenos_aires,X),es_vuelo(X,santa_fe).X = cordoba ;

d) ¿Por cuáles dos ciudades intermedias pasa un vuelo que salga de Córdoba y llega a Mendoza?

es_vuelo(cordoba,X),es_vuelo(X,Y),es_vuelo(Y,mendoza).X = santa_rosa,Y = san_juan.

4. Suponer que se tiene la siguiente base de datos con información sobre la jerarquía militar de un país hipotético:

tiene_rango(bush, coronel).tiene_rango(komehini, soldado).tiene_rango(kadafi, soldado).tiene_rango(fujimori, soldado).tiene_rango(gonzalez, capitan).tiene_rango(gorbachov, general).tiene_rango(chirac, cabo).tiene_rango(hussein, sargento).tiene_rango(ford, teniente).tiene_rango(arafat, mayor).es_jefe_de(general, coronel).es_jefe_de(coronel, mayor).es_jefe_de(mayor, capitán).es_jefe_de(capitán, teniente).es_jefe_de(teniente, sargento).es_jefe_de(sargento, cabo).es_jefe_de(cabo, soldado).

Traducir las siguientes consultas al español, e indicar cuáles serían las respuestas del sistema en cada caso sin usar la computadora:

a) ?-es_jefe_de(teniente, X), es_jefe_de(X, Y).¿El teniente es jefe de… y este a su vez es jefe de…?

X = sargento, Y = cabo.

b) ?-es_jefe_de(X, Y), tiene_rango(hussein, X), tiene_rango(Z,Y).Averiguar el rango de Hussein, de quien es jefe y el rango de este.

X = sargento, Y = cabo, Z = chirac ;

Page 3: Solucion Ejercicios IA

c) ?-tiene_rango(bush,X); tiene_rango(arafat, X).¿Cuáles son los rangos de Bush o arafat?

X = coronel; X = mayor.

d) ?-tiene_rango(X,Y), es_jefe_de(mayor,Y). ¿Cuál es la persona y el rango de esta, si tiene como jefe a un mayor?

False;

e) ?-es_jefe_de(X, sargento), not(tiene_rango(kadafi, X)).¿Qué rango tiene la persona q es jefe del sargento? No debe ser el rango que tiene kadafi

X = teniente.

(Not es un predicado autoconstruido del lenguaje que es verdadero cuando su argumento es un predicado falso y viceversa).

Escribir en Prolog las siguientes consultas:

a) ¿Qué rango tiene el jefe de González? tiene_rango(gonzalez,X),es_jefe_de(Y,X),tiene_rango(Z,Y).b) ¿Es Chirac jefe de Hussein?

tiene_rango(chirac,y),es_jefe_de(y,z),tiene_rango(hussein,z).false

c) ¿Quién o quienes dependen directamente de Chirac?tiene_rango(chirac,X),tiene_rango(Z,Y),es_jefe_de(X,Y).X = cabo,Z = komehini,Y = soldado ;X = cabo,Z = kadafi,Y = soldado ;X = cabo,Z = fujimori,Y = soldado ;

5. Reescribir la base de vuelos incluyendo el tiempo de viaje, de acuerdo con la siguiente tabla:

Ciudad de origen Ciudad de destino Duración (min)

Buenos Aires Córdoba 80Buenos Aires Santa Rosa 70Buenos Aires San Juan 120Córdoba Santa Fe 40Córdoba Tucumán 60Córdoba Santa Rosa 75San Juan Tucumán 85San Juan Mendoza 15San Juan Neuquén 100Mendoza Tucumán 95Santa Rosa San Juan 80

Usar un predicado ternario, por ejemplo:

vuelo(buenos_aires, cordoba, 80).

Page 4: Solucion Ejercicios IA

Efectuar las siguientes consultas:

a) ¿Cuánto se tarda para ir desde Córdoba hasta Tucumán?vuelo(córdoba,tucumán,X).X = 60

b) ¿Cuánto se tarda para ir desde Buenos Aires hasta Santa Fe pasando por Córdoba?vuelo(buenos_aires,córdoba,X),vuelo(córdoba,santa_fe,Y).X = 80,Y = 40.

c) ¿Cuánto se tarda para ir desde Buenos Aires hasta San Juan pasando por Córdoba y Santa Rosa?

vuelo(buenos_aires,córdoba,X),vuelo(córdoba,santa_rosa,Y),vuelo(santa_rosa,san_juan,Z).X = 80,Y = 75,Z = 80.

d) Saliendo desde Buenos Aires, ¿a qué ciudades se puede llegar en menos de 90 minutos?

vuelo(buenos_aires,X,Y),Y<90.X = córdoba,Y = 80 ;X = santa_rosa,Y = 70 ;

e) ¿Cuáles son los vuelos de más de una hora de duración?vuelo(X,Y,Z),Z>60.X = buenos_aires,Y = córdoba,Z = 80 ;X = buenos_aires,Y = santa_rosa,Z = 70 ;X = buenos_aires,Y = san_juan,Z = 120 ;X = córdoba,Y = santa_rosa,Z = 75 ;X = san_juan,Y = tucumán,Z = 85 ;X = san_juan,Y = neuquén,Z = 100 ;X = mendoza,Y = tucumán,Z = 95 ;X = santa_rosa,Y = san_juan,Z = 80.

f) ¿Cuál es la diferencia de tiempo entre el vuelo directo de Buenos Aires a San Juan y el que pasa por Santa Rosa?

vuelo(buenos_aires,san_juan,X),vuelo(buenos_aires,santa_rosa,Y),vuelo(santa_rosa,san_juan,Z),Q=Y+Z-X.X = 120,Y = 70,Z = 80,Q = 70+80-120

Page 5: Solucion Ejercicios IA

6. Armar una base con la siguiente información alimentaria: una ración de pollo tiene 270 calorías, un flan 190 y una de buen asado 380. Hoy me propongo no almorzar mas de 580 calorías. Obtener respuestas a las siguientes preguntas usando consultas:

calorias( racion_pollo,270 ). calorias( flan,190 ). calorias( asado,380 ).

a) ¿Cuántos flanes me puedo comer?b) ¿Puedo comer el asado y el pollo?

calorias(asado,X), calorias(pollo,Y),M=(X+Y),M.c) ¿Si me como el pollo y el flan, cuántas calorías, menos que las máximas ingiero? d) ¿Cuántas calorías ingiero si me como el pollo y dos flanes?