file (5)

Upload: ariel-hdez

Post on 09-Mar-2016

216 views

Category:

Documents


0 download

DESCRIPTION

IA ejercicios

TRANSCRIPT

  • 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