Вы находитесь на странице: 1из 37

Clase 3

Problema de Bsquedas

Ing. Sal Prez Vega

Espacio de bsquedas Tipo de Bsquedas

Estructuras y rboles - uso de Functores


Laboratorio Objetivos Simples y Compuestos Variables Instanciacin Definicin de Reglas Ejercicio: rbol genealgico

Problemas de Bsqueda

La bsqueda de soluciones constituye un tema importante en IA. Sus mtodos se aplican a diversos problemas de IA, por ejemplo en la determinacin de rutas o caminos, juegos, rompecabezas, anlisis de lenguajes, reduccin de objetivos, demostracin de teoremas, etc.

Espacios de Bsqueda
Un espacio de bsqueda consiste en:
1. Un

conjunto finito de objetos llamados estados E = { e1, e2 en }

2. Subconjuntos

Se asociados a ciertos estados de E Se = { S1, S2,S3, , Sk}


Los estados S1, S2,S3, , Sk se denominan sucesores del estado e. Sucesor es un orden. El que antecede.

Problema de Bsquedas

Un espacio de bsqueda se representa mediante un grafo dirigido en el que cada estado e se le asigna un nodo. Entre un estado y sus sucesores se trazan arcos dirigidos.

Problema de Bsquedas

Una ruta es una sucesin de estados, tal que cada estado ti+1 es un sucesor del anterior para valores de i = 1,2,3,......, m-1 R = t1, t2, t3, t4,.........., tn Se dice entonces que R es una ruta entre los estados t1 y tn

Problema de Bsquedas
Representa un espacio de bsqueda cuyos estados son: a, b, c, d, e, f ,g, h. Los sucesores de algunos estados son: (1) Sucesor de g: h (2) Sucesores de a: b, c, d, f. (3) Los estados e, f, h no tienen sucesores

Algunas rutas son: (4) a c f que une a con f (5) g h (6) d Observamos tambin que no existen rutas entre algunos pares de estados, por ejemplo entre b y f.

Problema de Bsquedas
Hallar:
Espacio de bsqueda Sucesores del estado Algunas rutas

b c f

e
d

El problema bsico de bsqueda consiste en determinar rutas entre dos estados dados. Ejemplo 1. El Diagrama

a d c

Tipos de bsquedas - Trabajo


Bsquedas de Objetivos 2. Bsquedas de Rutas Simples 3. Bsquedas de Rutas Optimas
1.

Para los casos 1 y 2 los siguientes mtodos: Recorrido en Profundidad Recorrido en Anchura Escalamiento de la Colina Primero el Mejor Para el caso 3: Ramificacin y acotacin

Bsqueda de Soluciones

Variables
Uso: representan objetos por determinar. Las variables son semejantes a incgnitas: no se les puede asignar valores a voluntad. Sintaxis: Secuencia de letras, dgitos y _ comenzando por mayscula o _ Ejemplos:
Num_Telef Padre _X

Pilas y Colas
Pilas Apilar (Push) Desapilar (Pull) Colas Encolar Desencolar

Arboles

Los trminos compuestos pueden verse como rboles generales. f


X h

f(X,h(a,b,3))

Functores
La estructura de datos es fundamental y sobre todo para usar objetos compuetos.

Predicado(argumento, functor(componente, componente))

Uso de Functores
Cuenta

Comida

Telfono

Renta

Tienda

Functores
domains
cuenta = comida(empresa,total); telefono(empresa,numero,total); renta(empresa,total); tienda(empresa,total) persona,apellido,empresa = symbol total = real numero = integer Predicates paga (persona, cuenta)

Objetos, relaciones y objetivos


Objetos: se corresponden con los datos se representan mediante trminos Relaciones: se corresponden con los procedimientos se definen mediante hechos y reglas Objetivos: se corresponden con el programa principal se definen mediante consultas

Cmo se escribe un programa lgico?


Para escribir un programa lgico debemos identificar: qu objetos intervienen en el problema, cules son las relaciones entre stos, y qu objetivos queremos alcanzar Una vez identificados los elementos anteriores debemos: representar los objetos mediante trminos definir las relaciones mediante hechos y reglas definir los objetivos mediante consultas
Ilustraremos la metodologa anterior mediante un ejemplo

rbol Genealgico

Identificando Objetos y relaciones


Objetos

Relaciones

Representando Objetos mediante Trminos tomos


Objetos: son las personas que forman la familia representados por trminos (sus nombres en minscula) Ejemplos:
Objetos
Adn
Eva

tomos
adan
eva

Definiciones Iniciales
Hombre es Adn Mujer es EVA

Representando Objetos en Prolog Domains . Predicates .. Clauses %%%%% HECHOS %%% hombre(adan). mujer(eva)

TOMOS

Definiendo relaciones - hechos Relaciones: son las relaciones de paternidad y maternidad definidas mediante hechos (incondicionales) Ejemplos:

Adn es padre de Nicols padre(adan,nicolas). Eva es madre de Nicols madre(eva,nicolas).

En Prolog entonces sera:


padre(adan, ). padre(adan, ). padre(nicolas, ). padre(nicolas, ). padre(david, ).
madre(eva, ). madre(eva, ). madre(elena, ). madre(elena, ). madre(carmen, ).

Deduciendo Objetivos

Objetivos: Son preguntas sobre el parentesco definidas mediante consultas. Ejemplos: es David padre de Ana? :padre(david,ana). quines son los hijos de Carmen? :madre(carmen,X). quin es el padre de Silvia? :padre(P,silvia).

Identificando Relaciones implcitas


ABUELO

HIJOS

HERMANOS

Definiendo regla para HIJO Como saber si la persona en cuestin es hijo de alguien??? Ejemplo de adan? hijo(X):-

Como saber si la persona en cuestin es hijo de su padre y su madre? Ejemplo de adan y eva? hijo(X,Y,Z):-

Mala praxis !!!!


Definimos las relaciones extra mediante hechos:

hermanos(nicolas,carmen). hermanos(jhon,silvia).
tamao excesivo propenso a errores mantenimiento (nacimientos, etc.) adaptabilidad a otras situaciones (familias)

Inconvenientes:

Sera preferible definir esta relacin de forma genrica, identificando las condiciones bajo las cuales dos personas A y B son hermanos

Definiendo Relaciones
Cmo podemos definir la relacin hermanos? A y B son hermanos si comparten los padres Definiremos la relacin condicional anterior mediante la regla:

Definiendo Relaciones
Cmo podemos definir la relacin Abuelo y Abuela? Definiremos la relacin condicional mediante la regla: Abuelo(X):- . Abuela(X,Y):- .

Tareas
Definir las siguientes reglas: primo(X) tio(X) primo(X,Y) tio(X,Y) prima(X) tia(X) prima(X,Y) tia(X,Y) sobrino(X) nieto(X) sobrino(X,Y) nieto(X,Y) sobrina(X) nieta(X) sobrina(X,Y) nieta(X,Y)

Objetos y Trminos
Los objetos (datos) se representan mediante trminos:
tomo
Constante entero

nmero
Trmino real

variable estructura

Los trminos son adecuados para el procesamiento simblico

tomos
Uso: representan objetos concretos mediante un nombre; es decir, denominan a un objeto en particular. Sintaxis: secuencias de letras, dgitos y _ comenzando por minscula
ejemplos: antonio, x, lista_vaca, x25

secuencias de caracteres entre apstrofes


ejemplos: antonio garca, Antonio

secuencias de smbolos especiales


ejemplos: +, -, *, /, =, , <, <=, >, >=

Nmeros
Uso: representan nmeros enteros y reales Sintaxis: enteros: 2, 34, -56 reales: -0.0092, 4.5e-5 Se aplican las restricciones tpicas de rango (enteros y reales) y precisin (reales)

Gracias!
Ing. Sal Prez Vega

sperez@utp.edu.pe

Вам также может понравиться