Está en la página 1de 15

INTELIGENCIA ARTIFICIAL

Temas:

 Introducción a I.A.

- ¿Cómo podemos definir a la IA?: podemos definir la IA como la disciplina informática que estudia
teóricamente y desarrolla prácticamente la construcción de sistemas inteligentes. Es decir, trata de
poner un modo de razonamiento a las máquinas similar al de los seres humanos, con el objetivo de
resolver problemas.
- ¿Cómo resolvemos un problema en IA?: Tenemos tres maneras:
1. Algoritmos de búsqueda.
2. Redes Neuronales.
3. Lenguaje Prolog.
- ¿Cuáles son los sistemas convencionales y cuáles los inteligentes?: los convencionales son aquellos
que cumplen funciones de la inteligencia humana que sabemos muy bien cómo modelar y reemplazar.
En cambio, los sistemas inteligentes, son aquellos que cumplen funciones que en éste momento
estamos aprendiendo a modelar y reemplazar, o que recientemente hemos aprendido a hacerlo, por
ejemplo un Sistema Experto es inteligente.
- ¿Cuándo un programa es inteligente?: un programa es inteligente en la medida en que posea una gran
cantidad de conocimiento específico y de alta calidad, respecto del problema que pretende resolver.
- ¿Para qué dotar a una máquina con IA?: para que los sistemas actúen y piensen como humanos; para
que los sistemas actúen y piensen racionalmente.
- Principales Áreas de la IA:
* Procesamiento de Lenguaje Natural
* Consulta Inteligente de Base de Datos
* Robótica
* Programación Automática
* Sistemas Expertos
* Prueba automática de Teoremas y matemáticas simbólica
* Problemas de optimización combinatorios y de itinerarios
* Percepción y reconocimientos de patrones
* Autoaprendizaje

 I.A. simbólica, IA no simbólica

- Simbólica - Deductiva: a partir de bases de conocimiento estáticas a las que se le aplica un análisis
formal estadístico para emular el comportamiento humano frente a problemas concretos. Si el
problema cambia sus restricciones se requiere actualizar la base de conocimiento.
- No simbólica - Inductiva: se base en el desarrollo de sistemas capaces de lograr un aprendizaje a partir
de unos datos empíricos mediante la ejecución de algún algoritmo de optimización.

 Sistemas expertos

- ¿Definición de sistema experto?: un sistema experto es un sistema de computación basado en


conocimiento que emula a un experto humano en la resolución de un problema significativo en un
dominio específico.
- ¿Qué es un experto?: llamamos experto a alguien que tiene gran cantidad de conocimiento que le
permite resolver ciertos problemas de manera eficaz que la mayoría de las personas.
1
- ¿Qué tipos de conocimientos hay, y cuáles son sus características?:
1. Conocimiento público: incluye las definiciones, hechos y teorías que podemos encontrar
normalmente en los libros de texto y manuales de la especialidad.
2. Conocimiento privado: es el conocimiento que poseen los expertos. Consiste en reglas prácticas,
reunidas en años de experiencia. Es precisamente este conocimiento, lo que permite al experto
resolver problemas, reconocer rápidamente cuál es el enfoque más apropiado para encararlos.
Construir, adquirir y reproducir éste tipo de conocimiento es la tarea central en la construcción de SE.
- Estructura de un SE:

- Para la construcción de un SE necesitamos:


1. Experto humano: juega un papel fundamental en un SE, ya que sin él no podríamos construirlo. Los
SE no crean conocimiento, lo encapsulan y lo vuelven reutilizable.
2. Ing, en conocimiento: es un profesional cuyo objeto es ayudar al experto humano a comprender el
conocimiento que realmente utiliza para resolver problemas, y encontrar una adecuada
representación formal a este conocimiento, para construir el SE.
3. Usuario: se relaciona normalmente con el SE a través de una estación de trabajo de la computadora.
En muchos sistemas se utilizan capacidades de graficación para facilitar el diálogo.
Los SE son constituidos por equipos en los que colaboran Expertos del dominio e Ing. en
conocimiento. Una vez construidos son consultados por los usuarios, y se interrelacionan con otros
sistemas y otras fuentes o destinos de datos.
- ¿Cuáles son los tipos de problemas que resuelven los SE? - Clasificación:
1. Sistemas de Interpretación: observa, interpreta y predice algunos datos. Ej: interpretación de
algunas señales, análisis de señales, etc.
2. Sistemas de Predicción: infieren consecuencias de situaciones dadas. Ej: pronósticos
meteorológicos.
3. Sistemas de Diagnóstico: funcionamientos incorrectos a partir de los datos. Ej: diagnósticos
médicos.
4. Sistemas de Diseño: desarrollan configuraciones de objetos que satisfacen las restricciones del
problema. Ej: diseñar circuitos o microprocesadores.
5. Sistemas de Planeamiento: diseñan acciones. Orientados a la programación automática, robótica.
6. Sistemas de Monitoreo: comparan las observaciones con características cruciales para el éxito de
los planes que se están ejecutando. Monitoreo para plantas de energía nuclear y tránsito aéreo.
7. Sistemas de Tratamientos: prescriben remedios para el funcionamiento incorrecto.
8. Sistemas de Reparación: desarrollan y ejecutan planes para administrar un remedio para un
problema diagnosticado.
9. Sistemas de Capacitación: evalúan y tratan la conducta de estudiantes.
10. Sistemas Expertos de control: dirigen todo el comportamiento de un sistema.

2
- ¿Cuáles son las herramientas para el desarrollo de Sist. Expertos?: la construcción de SE fue
encarada de diversas maneras. En algunos casos se utilizó lenguajes de alto nivel como Pascal y
Fortran. En muchos otros se recurrió a los dos lenguajes básicos en casi todas las actividades
vinculadas con la IA: Lips (lenguaje funcional) y Prolog (lenguaje de prog. basado en la lógica).
- ¿Cuáles fueron los primeros desarrollos de Sist. Expertos?: Dendral (1966 - Universidad de Stanford),
su objetivo fue utilizar heurísticas para implementar un algoritmo, para identificar las estructuras
moleculares posibles de una sustancia química. Más tarde se desarrolló Mate-Dendral, uno de los
primeros sistemas automáticos para la adquisición de conocimiento.
- Aspectos importantes:
 Evaluación de los SE: pruebas para detectar problemas, para ver si el sistema nos da los resultados
esperados.
 Modo de interacción con el usuario: que sea amigable.
 Eficiente.
 Los resultados deben ser completos y en el nivel requerido.

 Representación del conocimiento

Se la ha definido como un conjunto de convenciones sintácticas y semánticas que hace posible describir
las cosas. Estas convenciones constituyen los llamados lenguajes de representación, los cuales se dividen
en 3 clases fundamentales.

1. Reglas de acción - Sistemas de producción: en los sistemas de producción el conocimiento se expresa a


través de reglas. Las reglas se componen de premisas, acciones que deben realizarse si se cumplen las
premisas; o de condiciones y conclusiones que pueden extraerse si se cumplen las condiciones.
- “Si condiciones, entonces acciones”.
- “Si condiciones, entonces conclusión”.
- “Si … entonces ...” → Estructura

Su arquitectura consiste en:


a. Memoria de trabajo: base de datos global de símbolos representando hechos y aserciones acerca
del problema.
b. Las reglas (que tienen su estructura); constituyen el programa o memoria de reglas, cada una de
ellas tiene: una parte “si” o condición y otra parte “entonces” o acción.
c. La máquina de inferencias (motor de inferencias): su misión es ejecutar las reglas o dispararlas.
Elige entre todas las reglas solo una, para que se aplique.
Tiene un ciclo de 3 etapas:
1. Aparear las reglas: seleccionar las reglas que satisfagan la resolución de nuestro problema.
2. Seleccionar las reglas:
 No permitir que una regla se aplique más de una vez.
 Priorizar los datos recientes.
 No volver a un estado anterior.
3. Ejecutar la regla: pasar de un estado al otro.

2. Lógicas de 1er Orden – Prolog.

3. Objetos estructurados: la estructura básica de los datos está inspirada en los grafos y las estructuras de los
registros. Son:

3
 Redes semánticas: se caracterizan por el tratamiento de conceptos, representados por nodos y
relaciones entre ellos. Hay dos tipos de nodos, pueden ser: individuales (que representan
descripciones o afirmaciones referentes a una instancia individual de un objeto) o genéricos
(referentes a una clase o categoría de objetos).
¿Cuál es su razonamiento? la herencia de propiedades. Ejemplo: supongamos que representamos
en una red semántica el hecho de que “los canarios son pájaros”.
Canario ◊----- es un tipo de -----◊ Pájaro
Incorporamos a la red el hecho particular de que “Pio-Pio” es un canario.
Canario
Pio-Pio ◊----- es un -----◊----- es un tipo de -----◊ Pájaro
Con lo que podemos deducir que pio-pio es un pájaro, siguiendo los arcos.
Canario ----- tiene -----◊ Alas
Pio-Pio ◊----- es un -----◊----- es un tipo de -----◊ Pájaro
Asumiendo que toda propiedad de los nodos “superiores” en la jerarquía lo es también de los
inferiores, sin necesidad de que esté explícitamente expresado en la red, se puede deducir que los
canarios tienen alas y que pio-pio tiene alas.

 Frame: es una descripción estructurada de un objeto, o clase de objetos. El énfasis es sobre la


estructura de los tipos, en términos de sus atributos llamados slots, donde se almacenan los valores
de dichos atributos. Por ejemplo: un frame acerca de sillas tendrá slots que definan el n° de patas,
el estilo, el n° de brazos, etc., así como otros que las liguen a clases más generales (como muebles)
y que definan subclases (como sillas de jardín, sillones, etc).
¿Cuál es su razonamiento?: la herencia y la restricción de valores que se pueden realizar en un
slots, definiendo un rango y un conjunto de “valores esperados”.

 Agentes inteligentes

- Un agente inteligente: es una entidad capaz de percibir su entorno, procesar tales percepciones y
responder o actuar en su entorno de manera racional, es decir, de manera correcta y tendiendo a
maximizar un resultado esperado. Es capaz de percibir su medioambiente con la ayuda de sensores y
actuar en ese medio utilizando actuadores (elementos que reaccionan a un estímulo realizando una
acción). Un agente inteligente puede ser una entidad física o virtual.

- Un agente racional: es aquel que hace lo correcto, que cumple con el objetivo. Posee medidas de
rendimiento, que incluyen criterios que determinan el éxito en el comportamiento del agente.
Los factores de los que depende la racionalidad son:
 Medidas de rendimiento.
 Conocimiento del medio en el que habita.
 Acciones que el agente puede llevar a cabo.
 Secuencia de percepciones hasta el momento.

- Un agente carece de autonomía: cuando se apoya más en el conocimiento inicial que le proporciona su
diseñador que en sus propias percepciones.
- Entornos de trabajo: son los problemas para los cuales los agentes racionales son las soluciones: se
evidencia que el entorno de trabajo ofrece diferentes posibilidades que influyen en el diseño del programa
del agente.

4
- Rendimiento, Entorno, Actuadores y Sensores (REAS): el primer paso siempre debe ser especificar un
entorno de trabajo de la manera más completa posible.

Tipo de Medidas de Entorno Actuadores Sensores


agente rendimiento

Taxista Seguro, rápido, legal, Carreteras, Dirección, Cámaras, sonar, velocímetro,


viaje confortable, tráfico, peatones, acelerador, freno, GPS, tacómetro, visualizador
maximización del clientes. señal, bocina, de aceleración, sensores del
beneficio. visualizador. motor, teclado.

- Clasificación: es posible clasificar los agentes inteligentes en 6 categorías principales:


1. Agentes reactivos simples: observa el estado del mundo actual y de acuerdo a eso ejecuta una
acción.
2. Agentes reactivos basados en modelo: verifica el medio ambiente y los diferentes estados que
tomarán las diferentes acciones que haga y de acuerdo a eso toma una decisión.
3. Agentes basados en objetivos: según el objetivo que tiene, realizará las acciones. Búsqueda y
planificación del objetivo.
4. Agentes basados en utilidad: busca encontrar la mejor acción posible.
5. Agentes que aprenden: observa el medio ambiente, realiza una crítica, se produce una
retroalimentación, tiene conocimiento de la situación y entonces recién lleva a cabo una acción.
Estos agentes aprenden constantemente, ya que toda la información aprendida se almacena.
Entonces, cuando sucede una situación similar a la anterior, ya saben cómo reaccionar.
6. Agentes de consultas: realizan las consultas originando más agentes como respuesta las
peticiones del usuario. Éstos recogen información de las bases de datos, y si no consiguen la
información solicitada, generarán nuevos agentes que ampliarán la búsqueda hasta obtener lo que
busca el usuario.

 Resolución de problemas

- Pasos para construir un Sist. Básico en IA: para construir un Sistema Básico de IA capaz de resolver
un problema específico, es necesario realizar las siguientes acciones:
1. Definir de una forma precisa el problema: debe ser la creación de una forma descriptiva formal y
manipulable del problema, a partir de una descripción informal del mismo. La definición del
problema como una búsqueda en el “espacio de los estados” forma la base de la mayoría de los
métodos que se utilizan para la solución de problemas de IA. El “espacio de estados” puede ser
finito o infinito.
Los mecanismos que se emplean para modificar un estado del sist., toman el nombre de operadores,
producciones o acciones, y se utilizan para enlazar su estado actual con otro estado objetivo.

2. Analizar el problema: definir formalmente el problema, al poder convertir alguna situación dada en
una situación deseada utilizando un conjunto de operaciones permitidas.

5
Nos hacemos la preguntas ¿si encontramos una buena solución nos quedamos solo con esa o
buscamos otras? ¿Toda la información adicional que tengamos de nuestro problema es necesaria
para adquirir conocimiento para poder resolver el problema o es para ir descartando caminos
posibles? Contestando estas preguntas además de analizar nuestro problema vamos resolviendo un
poco más el camino a seguir. Tenemos que analizar cada una de las acciones a realizar, antes de
llevarlas a cabo.

3. Identificar y representar el conocimiento que es necesario para resolver el problema: hallar una
representación apropiada es parte fundamental de la resolución del problema. El principio de la
representación establece que: una vez que el problema es descrito mediante una buena
representación, el problema está resuelto.
 Tienen que ser: transparente, completa y concisa.
 Las representaciones tienen cuatro ingredientes fundamentales:
o Léxico: determina símbolos que están permitidos.
o Estructural: describe restricciones sobre la forma que los símbolos pueden ordenarse.
o Operativa: especifica los procedimientos de accesos que permiten crear descripciones.
o Semántica: establece una forma de asociar el significado con las descripciones.

4. Escoger la mejor técnica y aplicarla para la resolución del problema: escoger la mejor técnica entre
varias opciones disponibles.

 Redes neuronales Artificiales (RNA)

- Los RNA se definen como: sistemas de mapeos no lineales cuya estructura se basa en los principios
observados en los sistemas nerviosos de animales y humanos. Se trata de un sistema de interconexión
de neuronas que colaboran entre sí para producir un estímulo de salida.

- Una red neuronal se compone: de unidades llamadas neuronas. Cada neurona recibe una entrada a
través de interconexiones y emite una salida, esta salida viene dada por tres funciones:
1. Función de propagación o también conocida como función de excitación: que por lo general
consiste en el sumatorio de cada entrada multiplicada por el peso de su interconexión (valor neto).
Si el peso es positivo, la conexión se denomina excitatoria; si es negativo, se denomina inhibitoria.
2. Función de activación: que modifica a la anterior. Puede no existir, siendo en este caso la salida la
misma función de propagación.
3. Función de transferencia: que se aplica al valor devuelto por la función de activación. Se utiliza
para acotar la salida de la neurona y generalmente viene dada por la interpretación que queramos

6
darle a dichas salidas. Algunas de las más utilizadas son la función sigmoidea (para obtener valores
en el intervalo [0,1]) y la tangente hiperbólica (para obtener valores en el intervalo [-1,1]).

- Unidad de procesamiento de las redes neuronales artificiales:

 La regla que logra establecer el efecto de la entrada total u(t) en la activación de la unidad k se
denomina función de activación → y ( t+1 )=Fk ( y ( t ) , u ( t ) )
 En muchas ocasiones esta función tiene una forma no decreciente respecto a la entrada total de la
unidad:

- Funciones: serían los resultados de la salida.

7
Función Escalón

Función Lineal

Función Sigmoidal
Función Tg Hiperbólica

Función Gauss

- Topologías de redes: existen dos topologías que son las más usadas, se diferencian en la manera de
realizar las conexiones:

8
 Redes de propagación hacia adelante: el flujo de información de las entradas a las salidas es
exclusivamente hacia adelante, extendiéndose por capas múltiples de unidades, pero no hay
retroalimentación.
 Redes recurrentes: contienen conexiones de retroalimentación, lo que puede derivarse en un
proceso de evolución hacia un estado estable.

- Elementos de una RNA: está compuesta por 3 elementos básicos:


1. Conjunto de unidades de procesamiento (neuronas).
2. Conexiones entre unidades.
3. Funciones de salida o activación para cada neurona.

- Entrenamiento de las RNA: es el proceso de configuración de una red neuronal para que las entradas
produzcan las salidas deseadas a través del fortalecimiento de las conexiones.
 Supervisado o asociativo.
 No supervisado o auto-organizado.

Un tipo de regla que se usa para el entrenamiento mediante el ajuste de pesos es la Hebbiana propuesta

por Hebb en 1949. 

- Perceptrón: los perceptrones de una capa pueden clasificar correctamente los conjuntos de datos que son
linealmente separables.

- Algoritmos de aprendizaje perceptrón:


1. Fijar pesos iniciales, con valores aleatorios.
2. Establecer los valores de entradas x1, x2, …,xn.
3. Calcular la salida de la neurona.
4. Actualizar el peso.
5. Continuar hasta:

- Tipos de redes:
 Supervisadas: necesitan un controlador que verifique los resultados.
 No supervisadas o autogenerativo: el propio sistema determina si los resultados están bien o mal.
9
Ejemplos: reconocimiento de huellas dactilares, captchas.

- Ventajas de las RNA: tienen muchas ventajas debido a que están basadas en la estructura del sistema
nervioso, principalmente el cerebro.
 Aprendizaje: las RNA tienen la habilidad de aprender mediante una etapa que se llama etapa de
aprendizaje. Esta consiste en proporcionar a la RNA datos como entrada a su vez que se le indica
cuál es la salida (respuesta) esperada.
 Auto organización: una RNA crea su propia representación de la información en su interior,
quitándole esta tarea al usuario.
 Tolerancia a fallos: debido a que una RNA almacena la información de forma redundante, ésta
puede seguir respondiendo de manera aceptable aun si se daña parcialmente.
 Flexibilidad: una RNA puede manejar cambios no importantes en la información de entrada, como
señales con ruido u otros cambios en la entrada (por ejemplo si la información de entrada es la
imagen de un objeto, la respuesta correspondiente no sufre cambios si la imagen cambia un poco
su brillo o el objeto cambia ligeramente).
 Tiempo real: La estructura de una RNA es paralela, por lo cual si esto es implementado con
computadoras o en dispositivos electrónicos especiales, se pueden obtener respuestas en tiempo
real.

 Lógica de 1er orden - PROLOG

Ésta lógica se utiliza en lenguajes lógicos, es decir, en base a la información, se formulan las preguntas
sobre el dominio del problema, y el intérprete del lenguaje lógico trata de encontrar la respuesta
automáticamente.
El conocimiento sobre el problema se expresa en forma de predicados (axiomas) que establecen las
relaciones sobre los símbolos que representan los datos del dominio del problema. Este concepto ésta
ligado a un lenguaje llamado PROLOG (programación en lógica) desarrollado en 1972.

- Prolog: es utilizado para el desarrollo de aplicaciones de IA debido a su forma de representar


conocimiento, facilitando las búsquedas en las BD, la escritura en compiladores, la construcción de
sistemas expertos, etc.
Este es un lenguaje de programación que se utiliza para resolver problemas en los que existen objetos
y relaciones entre objetos. La programación en Prolog consiste en:
 Declarar hechos sobre los objetos y sus relaciones,
 Definir reglas sobre dichos objetos y relaciones, y
 Hacer preguntas.

La diferencia entre Prolog y los otros lenguajes es que Prolog nace de un desafío: escribir rápidamente
los programas dejando a la maquina su laboriosa ejecución, “que trabaje como nosotros”.

- Lógica Proporcional de 1º Orden (PLO): es uno de los formalismos más usados para representar
conocimiento de IA. Utiliza proposiciones y nexos para expresar sus verdades. Las proposiciones
equivalen frases u oraciones del lenguaje hablado mientras que los Nexos pueden relacionar estas
proposiciones mediante la conjunción (y), la disyunción (o) o la implicación (si).
10
Los enunciados más básicos de la LPO son los enunciados atómicos que consisten en algunos nombres
conectados por algún predicado.
Ej:
“Ana juega golf” / “Juan vio a Ana”

- Constantes Individuales: son símbolos (nombres) que se usan para referir algún objeto particular. Ej:
“Juan”, es una constante individual para denotar a una persona en particular.
 Todo nombre debe referirse a un objeto.
 Ningún nombre puede referirse a más de un objeto.
 Un objeto puede tener más de un nombre.

- Símbolos de Predicado: son utilizados para denotar alguna propiedad de objetos o alguna relación de
objetos. Son expresiones que combinados con una contante o más, forman enunciados atómicos.

Ej. “JUAN ES PADRE DE ANA” Juan y Ana  Constantes Individuales


es padre de  Predicado

- Predicados opcionales:
Ana regaló  regalo(ana)
Ana regaló flores  regalo(ana, flores)
Ana regaló flores a Juan regalo(ana, flores, juan)

- Cada predicado tiene un número fijo de argumentos llamado aridad fija. Una Aridad es un número
que indica cuantas constantes individuales hay.
Ej. “mayor (juan, ana)”  1 predicado, 2 aridad, 3 argumentos
“regalo (ana, flores, juan)”  1 predicado, 3 aridad, 4 argumentos.

La aridad es 1 cuando se denota la propiedad de un objeto. Por ej: alto(cristian).

- Enunciados Atómicos: es un enunciado formado por un predicado seguido por el número correcto de
nombres (encerrados entre paréntesis y separados por coma).
Ej. Mujer (Ana)
Mayor (Juan, Ana)
El orden de los nombres en un enunciado atómico es importante.
Lo que hace un enunciado especial es que hace afirmaciones. Una afirmación es algo que es verdadero
o falso, estos dos casos lo denominamos su valor de verdad.

- Cláusulas de Horn: es un tipo especial de cláusulas o sentencias que define las relaciones y pueden
tener como máximo una conclusión. Estas reglas están compuestas por dos partes: el consecuente (es
la primera parte de la cláusula, es lo que se quiere probar, la conclusión de la regla) y el antecedente
(es la condición que determina en qué casos el consecuente es verdadero o falso).
Estas pueden adoptar las siguientes formas:
Conclusión B  A1, A2,…… (Implicación)  Regla
Conclusión sin condición B  ……………… (Afirmación)  Hecho
Sin condición _  A1, A2,…… (Negación)  Objetivo
11
 Los hechos: es una relación entre objetos que representa una verdad que no debe ser comprobada
que ya son verdades por sí mismas. La relación se conoce como el predicado y los objetos como los
argumentos. Su sintaxis es: relación (objeto1, objeto2, ...).
Los nombres de las relaciones deben comenzar con una letra minúscula y los objetos se escriben
separados por comas y encerrados entre paréntesis. Al final del hecho debe de ir un punto.
Ej. Persona (Juan, 27).

 Las reglas: se usan cuando la verdad de un hecho depende de la verdad de otro hecho. Una regla
consiste en una cabeza y un cuerpo. El cuerpo puede estar formado por varios hechos u objetivos.
Su sintaxis es: cabeza :- objetivo 1, objetivo 2, ..., objetivo n.
Los objetivos van separados por comas, especificando conjunción y al final debe de ir un punto.
EJ. Mayor de edad(X):-persona(X,E),E>18.

 Las variables: se utilizan para describir hechos y reglas generales. Los nombres de las variables
deben comenzar con letra mayúscula o con el carácter ( _ ).

- Cláusulas Sub objetivo o sub goal (Negación): se niega la cláusula que se desea probar y se las
agrega a las cláusulas del programa. Luego se aplican las reglas de resolución y al derivarse una
cláusula nula, queda demostrado que la cláusula original es verdadera._  A1, A2,…… (Negación).

- Estructura de un programa Prolog:


 Domains (Dominio): se declaran las variables que utilizan los predicados (objetos y tipos de datos).
 Predicates (Predicado): denotar alguna propiedad o relación entre objetos planteados en el dominio.
 Goals (Metas): define los objetivos del programa.
 Clauses (Clausulas): define los hechos y las reglas para en encontrar las soluciones. La diferencia
entre estos es que los hechos describen una situación clara que necesita comparar, y las reglas por lo
general, son objetos compuestos que deben verificarse.

Ej:
domains
persona=simbol
predicates
sabe(persona)
trabaja(persona)
goal
trabaja(X)
clauses
sabe(jose)
sabe(ana)
trabaja(carlos)
trabaja(X):- sabe (X)

- Características básicas de Prolog:


 Unificación reglas.
 Estructura de datos basada en árboles.
 Backtraking automático.
12
- Elementos:
 Objetos.
 Relaciones.

 Algoritmos de búsqueda

- Características de los algoritmos:


1. Completitud: ¿encontrará una solución?
2. Complejidad temporal: ¿cuánto tardará?
3. Complejidad espacial: ¿cuánta memoria gastará?
4. Optimización: ¿encontrará la solución más óptima?

- Elementos:
1. Estados: inicial, actual y final de un nodo.
2. Espacio de estados: todos los caminos que tengo disponibles para encontrar el nodo.
3. Descripción del espacio de estados. Nodos:
_ Abiertos: estados generados pero aún sin visitar.
_ Cerrados: nodos que han sido visitados.

- Tipos de algoritmos:

 Algoritmos de búsqueda sin información:

1. Primero en anchura: comienza a recorrer el árbol desde la raíz, explora cado uno de los vecinos
del nodo y a continuación se examinan sus respectivos vecinos adyacentes hasta que se recorra
todo el árbol o hasta que alguna regla produce algún estado objetivo.
Ventajas: si existe una solución se garantiza que se logra encontrarla y en el caso de múltiples
soluciones permite hallar la más óptima.
Desventajas: mucha memoria y poca velocidad.

2. Primero en profundidad: se centra en expandir un único camino desde la raíz tan


profundamente como sea posible, retornando a niveles superiores cuando sea necesario.
Continúa por una sola rama del árbol hasta encontrar una solución o hasta que se tome la
decisión de terminar la búsqueda por esa dirección.
Ventajas: requisitos modestos de memoria, fácil implementación, tiene menor complejidad
espacial que búsqueda en amplitud, es completa sólo si no existen ciclos repetitivos.
Desventajas: puede tener ciclos infinitos y no encontrar el resultado, se pueden encontrar
soluciones que están más alejadas de la raíz que otras, no es óptima ni completa.

 Algoritmos de búsqueda con información:

1. Generación y prueba: es un algoritmo que consiste primero en generar una posible solución, a
partir de un estado inicial. Verifica si el objetivo elegido es realmente una solución,
comparándolo con el objetivo final: si no se halló la solución, volver a comenzar; si se halló la
solución, termina la búsqueda.
Ventajas: Siempre encontraremos la solución (si existe), es una búsqueda exhaustiva en el espacio
del problema, se limita a responder afirmativa o negativamente acerca de la validez del camino
ensayado.

13
Desventajas: se deben recorrer caminos completos de antes de realizar ninguna comprobación, la
exploración del espacio de estados puede requerir demasiado tiempo si el dominio del problema
es muy amplio, la lista de soluciones probadas crece y se podría estar invirtiendo mucho tiempo
verificando si la solución fue probada antes, el conjunto de soluciones posibles es grande o
infinita.

2. Escalada simple: Usan una técnica de mejoramiento iterativo, es decir, comienzan a partir de
un punto (punto actual) en el espacio de búsqueda. En cada iteración, un nuevo punto es
seleccionado de la vecindad del punto actual. Si el nuevo punto es mejor, se transforma en el
punto actual, sino otro punto vecino es seleccionado y evaluado. El método termina cuando no
hay mejoras, o cuando se alcanza un número predefinido de iteraciones.
Ventajas: muy poco consumo de espacio, reduce el número de nodos analizar, complejidad
espacial: 0 ó 1 (basta guardar 1 espacio), bajo costo computacional.
Desventajas: no son óptimos ni completos, pueden no encontrar una solución aunque exista, no
siempre llega a la solución, puede quedarse enciclado, se para sin dar solución cuando hay
máximos locales, mesetas o crestas.

3. Escalada por máxima pendiente: consiste en analizar a la vez todos los nodos sucesores del
nodo actual (pudiendo recorrer el nodo en sentido horario o anti horario) y comparar la
información que los mismos poseen y decidir cuál es el mejor nodo a seguir con el fin de llegar
al estado objetivo.
Ventajas: Ahorro de tiempo (reduce el número de nodos a analizar), utiliza poco espacio.
Desventajas: puede ser que la solución que encuentre no sea la más óptima, s e para sin dar
solución cuando hay: máximos locales, mesetas, crestas

4. Enfriamiento simulado: el objetivo es disminuir la probabilidad de caer en un máximo local,


una meseta o una cresta. Por lo tanto se realiza una exploración con saltos amplios al principio,
que se va reduciendo paulatinamente. Para lograr esto, se plantea minimizar una función objetivo
para alcanzar un estado final de mínima energía, basando el método en los procesos de
enfriamiento de metales, en los que las sustancias físicas evolucionan hacia configuraciones de
más baja energía.
Ventajas: aunque se ha demostrado que el algoritmo converge al óptimo, este converge en un
tiempo infinito. No solo por esta razón, sino que se debe enfriar lentamente.
Desventajas:

5. Bidireccional: su propósito es encontrar el objetivo en menor tiempo posible, haciendo dos


búsquedas simultáneas una en forma descendente desde el nodo inicial y otra ascendente desde
el nodo meta. Combina la profundidad y la anchura.
Ventajas: requerimiento de memoria es mínimo, y la uniformidad al expandir los nodos garantiza
la mejor solución de búsqueda.
Desventaja: cuando el algoritmo no encuentra solución es conveniente imponer un límite
máximo de profundidad en la búsqueda.

6. A*: algoritmo informado que basa su comportamiento en la evaluación de una función expresada
del siguiente modo:
o f(n) = g(n) + h(n).
o g(n):es el costo de las movidas realizadas.
o h(n): es la función heurística. Representa el costo estimado del mejor camino.
Ventajas: encuentra buenas soluciones, no se crean ciclos, se requiere poca memoria.
Desventajas: requiere de muy buenas heurísticas.

14
7. Conducida por agenda: se elige la tarea más prometedora de la agenda. Puede ser una
descripción de lo que debe hacerse a continuación o simplemente una indicación del siguiente
nodo o expandir.
Se ejecuta la tarea asignándole un número de recursos determinados por su importancia. La
ejecución de la tarea generará probablemente tareas adicionales (nodos sucesores). Para cada uno
de ellos:
o Si ya se encuentra en la agenda, añadir las nuevas justificaciones. Si no está, agregarla a la
agenda.
o Calcular el valor de la nueva tarea, combinando la evidencia de todas sus justificaciones.
Desventaja: se pierde tiempo en mantener la agenda en orden, de modo que en la práctica se
ordenan los primeros 5 y 10 lugares; se inserta en el lugar adecuado o al final de la fila.

8. Primero el mejor: mantiene la lista de nodos abiertos ordenada de modo que se puedan
considerar siempre la alternativa más prometedora de entre todas las que están siendo
consideradas. Combina la búsqueda en profundidad, en anchura y métodos de escalada.
Una forma de combinar esto es seguir sólo un camino a la vez, y cambiándolo cuando alguna
ruta parezca más prometedora que la que se está siguiendo en ese momento.
Ventajas: puede encontrar buenas soluciones; resultados más eficientes que una búsqueda no
informada
Desventajas: puede tener ciclos infinitos, requiere diseño de una heurística, complejidad de
programación de la heurística.

15

También podría gustarte