Post on 09-Mar-2016
description
Departamento de InformaticaUniversidad Carlos III de Madrid
Ingeniera enInformatica
Inteligencia ArtificialEnero 2007
Soluciones a la Hoja de Ejercicios 3:Representacion
Comentarios generales sobre los ejercicios Asumiendo que se conocen los contenidos teoricos, el tiempo estimadopara realizar los ejercicios es de 2 horas Describir las soluciones a los ejercicios de una manera lo mas formalposible
Ejercicio 1
Modelo del dominio
Predicadosorigen(Pasajero,Piso)destino(Pasajero,Piso)encima(Piso1,Piso2)a-bordo(Pasajero, Ascensor)atendido(Pasajero)en(Ascensor,Piso)
Operador Precondiciones Efectosentrar(Pasajero,Ascensor,Piso) origen(Pasajero,Piso), a-bordo(Pasajero,Ascensor)
en(Ascensor,Piso)salir(Pasajero,Ascensor,Piso) destino(Pasajero,Piso), a-bordo(Pasajero,Ascensor),
a-bordo(Pasajero,Ascensor), atendido(Pasajero)en(Ascensor,Piso)
subir(Ascensor,Pini,Pfin) en(Ascensor,Pini), en(Ascensor,Pini),encima(Pfin,Pini) en(Ascensor,Pfin)
bajar(Ascensor,Pini,Pfin) en(Ascensor,Pini), en(Ascensor,Pini),encima(Pini,Pfin) en(Ascensor,Pfin)
Definicion del problema
Estado Inicialencima(piso9,piso8), encima(piso8,piso7), encima(piso7,piso6), encima(piso6,piso5), encima(piso5,piso4),encima(piso4,piso3), encima(piso3,piso2), encima(piso2,piso1), encima(piso1,piso0),origen(pasajero0,piso1), destino(pasajero0,piso0),origen(pasajero1,piso3), destino(pasajero1,piso7),en(ascensor0,piso0), en(ascensor1,piso0)Metasatendido(pasajero0), atendido(pasajero1)
Secuencia implicaciones logicas que resuelven el problema
atendido(pasajero0), a-bordo(pasajero0,ascensor0) salir(pasajero0,ascensor0,piso0)a-bordo(pasajero0,ascensor0) entrar(pasajero0,ascensor0,piso1)en(ascensor0,piso1), en(ascensor0,piso0) subir(ascensor0,piso0,piso1)en(ascensor0, piso0), en(ascensor0,piso1) bajar(ascensor0,piso1,piso0)
atendido(pasajero1), a-bodo(pasajero1,ascensor0) salir(pasajero1,ascensor0,piso7)a-bordo(pasajero1,ascensor0) entrar(pasajero1,ascensor0,piso3)en(ascensor0,piso3), en(ascensor0,piso0) subir(ascensor0,piso0,piso3)en(ascensor0, piso7), en(ascensor0,piso3) subir(ascensor0,piso3,piso7)
Ejercicio 2
El conjunto de reglas sera:
REGLA 1: Comprueba si los quemadores de la cocina estan rotosIF problema(quemadores),quemador(X,roto)THEN (print El quemador X no funcionan. Debe ser remplazado),problema(quemadores)
REGLA 2: Comprueba los reguladores de los quemadoresIF problema(quemadores),quemador(X,roto),regulador(X,averiado)THEN (print Sustituya el regulador del quemador Xprobablemente, el agua ha penetrado en el causando un cortocircuito.),problema(quemadores)
REGLA 3: Comprueba la unidad de electrodos del quemadorIF problema(quemadores),quemador(X,roto),regulador(X,averiado),electrodo(X,mal)THEN (print el electrodo del quemador X funciona mal y debe ser reemplazado)problema(quemadores)
REGLA 4: Comprueba si el problema es mas apropiado para un profesionalIF problema(quemadores),quemador(X,roto),regulador(X,averiado),electrodo(X,mal)THEN (print El problema debera ser tratado por un profesionalya que es peligroso trabajar con las partes restantes de la cocina.)
REGLA 5: Comprueba si el encendedor del horno averiadoIF problema(horno),encendedor(averiado),salida(limpia)THEN (print Reemplace el encendedor del horno.** ATENCION - no toque la bobina durante la instalacion ya que el aceite de sus dedos la estropeara ***)problema(horno)
REGLA 6: Comprueba orificio del encendedorIF problema(horno),encendedor(averiado),salida(limpia)THEN (print Las salpicaduras pueden haber obstruido la salida del gas.Desenrosque el quemador y lmpielo. Extienda jabon detergentey agua alrededor de la salida del quemador, y conecte de nuevo el gas.)problema(horno)
REGLA 7: Regla por si el problema es mas apropiado para un profesionalIF problema(horno),encendedor(averiado),salida(limpia)THEN (print El problema debera ser tratado por un profesionalya que es peligroso trabajar con las partes restantesrelacionadas con gas.
El realizar encadenamiento hacia adelante con la Base de Hechos dada se disparara unicamente la regla 7:
Base de Hechosproblema(horno)encendedor(averiado)salida(limpia)
REGLA 7:IF problema(horno),encendedor(averiado),salida(limpia)THEN (print El problema debera ser tratado por un profesionalya que es peligroso trabajar con las partes restantesrelacionadas con gas.
Ejercicio 3
Representacion de un modelo del dominio con marcos:
Clientees-un:Atributo Valornombre - cadenatarjeta - instancia de Tarjeta
Tarjetaes-un:Atributo Valornumero - numerocaducidad - fecha
Companaes-un:Atributo Valornombre - cadenavuelos - lista de instancias de Vuelo
Vueloes-un:Atributo Valorid - numeroorigen - cadenadestino - cadenafecha-salida - fechafecha-llegada - fechaplazas - lista de instancias de Plaza
Plazaes-un:Atributo Valorid - numeroprecio - numeroestado - numero
Reservaes-un:Atributo Valorpasajero - cadenavuelo - instancia de Vueloplaza - instancia de Plazacliente - instancia de Cliente
Billetees-un:Atributo Valorpasajero - cadenavuelo - instancia de Vueloplaza - instancia de Plazacliente - instancia de Cliente
Los metodos necesarios seran:
consultar-vuelos.Compa~na(self, origen, destino, fecha-salida, fecha-llegada){FOR vuelo in get(self,vuelos)
IF get(vuelo,origen) = origen andget(vuelo,destino) = destino and
get(vuelo,fecha-salida) = fecha-salida andget(vuelo,fecha-llegada) = fecha-llegada
THEN IF consultar-plazas-disponibles.Vuelo(vuelo)THEN mostrar(vuelo)
}
consultar-plazas-disponibles.Vuelo(self){consultar-plazas-disponibles = falseFOR plaza in get(self,plazas)
IF get(plaza,estado) = DISPONIBLETHEN consultar-plazas-disponibles = true
BREAK}
crear.Reserva(self, pasajero, vuelo, cliente){FOR plaza in get(vuelo,plazas)
IF get(plaza,estado) = DISPONIBLETHEN set(plaza,estado,RESERVADA)
set(self,pasajero,pasajero)set(self,vuelo,vuelo)set(self,plaza,plaza)set(self,cliente,cliente)BREAK
}
anular.Reserva(self){set(get(self,plaza),estado,DISPONIBLE)set(self,pasajero,NULL)set(self,vuelo,NULL)set(self,plaza,NULL)set(self,cliente,NULL)
}
comprar.Billete(self,reserva){IF get(get(reserva,cliente),tarjeta).valida()THEN set(self,pasajero,get(reserva,pasajero))
set(get(reserva,plaza),estado,COMPRADA)set(plaza,plaza,get(reserva,plaza))set(self,cliente,get(reserva,cliente))set(self,vuelo,get(reserva,vuelo))self.cobrar-cargo(get(get(reserva,cliente),tarjeta),get(get(self,plaza),precio))
}
Ejercicio 4
Representacion del dominio con marcos
Productoes-un:Atributo Valornombre - cadenaunidades-stock - numeroprecio - numerocomponentes - lista de instancias de Componentedistribuidores - lista de instancias de Distribuidor
Componentees-un:Atributo Valorunidades - numeroproducto - instancia de Producto
Distribuidores-un:Atributo Valornombre - cadenadireccion - cadenatelefono - numero
Compraes-un:Atributo Valorfecha - fechaproducto - instancia de Productodistribuidor - instancia de Distribuidorprecio - numerounidades - numero
Ventaes-un:Atributo Valorfecha - fechaproducto - instancia de Productounidades - numero
Demonio para que la orden de pedidos se realice de forma automatica cuando queden menos de 10 unidadesde un producto en stock
if-set.unidades-stock.Producto(self){IF get(self,unidades-stock) < 10THEN IF get(self,componentes) = NULL
THEN ordenar-pedido.Producto(self)ELSE ordenar-montaje.Producto(self)
}
No, para este dominio una representacion basada en Marcos es mas apropiada porque:
1. No es necesario realizar inferencia sobre los datos
2. La informacion relativa a los atributos de los objetos es mas importante que las relaciones que hayaentre ellos
3. Es necesario definir funciones que vigilan las operaciones que se hacen sobre atributos de los objetos