INTRODUCCIÓN
OBJETIVOS
METODOLOGÍA
MÓDULO I. INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL.
• UNIDAD I: AGENTES DE ESTÍMULO - RESPUESTA.
• UNIDAD II: REDES. INTRODUCCION A LAS REDES NEURONALES.
INTRODUCCIÓN.
El curso “Inteligencia Artificial y los Sistemas Expertos” está orientado hacia el estudio de los aspectos
teóricos de la Inteligencia Artificial y su aplicación en el diseño de los Sistemas Expertos. La Inteligencia
Artificial es un conjunto de conceptos y técnicas desarrolladas con el fin de resolver problemas tal y como lo
haría el razonamiento humano. Así el Sistema Expertos es un sistema implantado en el computador, para la
interacción del usuario con éste, basado en el conocimiento y la inferencia y con la capacidad de resolver
problemas en un campo específico.
Es nuestro interés el de proporcionar al estudiante las herramientas necesarias para emprender el desarrollo
de un Sistema Experto, situación que podría enfrentar el futuro ingeniero al surgir situaciones que requieran
como solución la emulación del juicio humano en lugar de soluciones algorítmicas.
El estudio de la teoría y la aplicación de procedimientos para resolver problemas relacionados con la
Inteligencia Artificial y con la realización de los Sistemas Expertos, constituyen la parte medular de este
curso, es por ello que se le considera un curso teórico - práctico.
OBJETIVOS GENERAL.
Implementar con sentido creativo y analítico soluciones a problemas relacionados con la Inteligencia
Artificial y los Sistemas Expertos.
OBJETIVOS ESPECIFICOS.
• Familiarizarse con áreas, aplicaciones y fundamentos en que se basa la Inteligencia Artificial.
1
• Definir el entorno y formulación mediante funciones booleanas del problema y sus
representaciones.
• Introducir el concepto de Redes Neuronales y su relación con la Inteligencia Artificial.
• Aplicar algoritmos de búsqueda y exploración de alternativas de solución.
• Representar el conocimiento y el razonamiento mediante Arboles de Decisión y Redes Semánticas.
• Aplicar modelos de redes para la estimación de la incertidumbre.
• Emplear el criterio de Sistemas Expertos y su vinculación con la Inteligencia Artificial.
METODOLOGÍA.
• Parte de la asignatura se ejecutará en línea.
• Se requiere la participación del estudiante por lo menos dos (2) horas semanales, según el horario
establecido (debe distribuir su tiempo para el cumplimiento de las actividades en línea).
• Los temas serán estudiados de manera individual y reforzados, reflexionados y madurados en línea
con la constante intervención de los participantes en las actividades asignadas.
• Se colocarán FOROS de discusión para desarrollar los basamentos teóricos de las unidades, así como
también, espacios de diálogos para aclarar las dudas presentadas.
• La asignatura concluye con un proyecto final, cuya presentación debe ser presencial y obligatoria a
los efectos de su defensa, al menos que el estudiante no pueda físicamente compadecer por
problemas de ubicación geográfica.
MÓDULO I
INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL
En ciencias de la computación, una máquina "inteligente" ideal es un agente racional flexible que percibe su
entorno y lleva a cabo acciones que maximicen sus posibilidades de éxito en algún objetivo o tarea.
Coloquialmente el término "inteligencia artificial" se aplica cuando una máquina imita las funciones
"cognitivas" que los humanos asocian con otras mentes humanas, como por ejemplo: "aprender" y "resolver
problemas". A medida de que las máquinas se vuelven cada vez más capaces, tecnología que alguna vez se
pensó que requería de inteligencia se elimina de la definición.
En 1956, John McCarthy acuñó la expresión «inteligencia artificial», y la definió como: "...la ciencia e ingenio
de hacer máquinas inteligentes, especialmente programas de cómputo inteligentes".
¿Qué es entonces la Inteligencia Artificial (IA)?
El estudio de cómo lograr que las computadoras realicen tareas que por el momento, los humanos
hacen mejor.
E. Rich - Knight, 1991
2
Es la Ciencia e Ingeniería de hacer máquinas inteligentes (especialmente programas). Esto está
relacionado a la tarea de usar computadoras para entender la inteligencia humana, pero IA no tiene
que limitarse a métodos que son biológicamente observables.
JJ. Mc Carthy, 1998
DESCRIPCIÓN:
Filosofía
¿Cómo se genera la inteligencia mental a partir de un cerebro físico?
¿De dónde viene el conocimiento?
¿Cómo se pasa del conocimiento a la acción?
• Lógica, métodos de razonamiento.
• Mente como sistema físico.
• Fundamentos de aprendizaje, lenguaje, racionalidad.
3
Matemática
¿Qué se puede computar?
¿Cómo razonamos con información incompleta?
• Algoritmos
• Indecisión, inflexibilidad.
• Probabilidad
Psicología
¿Cómo piensan y actúan los humanos y animales?
• Conductismo
Ingeniería en computación
herramientas para poder concretar IA
Lingüística
teorías sobre el lenguaje (sintaxis-semántica)
Neurociencia
¿Cómo procesa la información el cerebro?
• Neuronas
• Actividad mental
Economía
¿Cómo se debe llevar a cabo el proceso de toma de decisiones para maximizar el
rendimiento?
• Teoría de toma de decisiones
• Investigación operativa.
4
Complementando el esquema tenemos:
• Búsqueda en espacio de estados • Lógica
• Sistemas expertos – Sistemas basados en el • Lógica Difusa
conocimiento
• Juegos
• Procesamiento de lenguaje natural
• Algoritmos genéticos
• Reconocimiento de patrones
• Redes neuronales
• Aprendizaje
• Realidad virtual
• Robótica
• Programa Inteligente
Búsqueda en espacio de estados
El término búsqueda aplicado a la Inteligencia Artificial, no significa encontrar una pieza específica
de información en una base de datos, sino buscar las soluciones de un problema. Por ejemplo:
Encontrar la ruta más corta entre dos ciudades, o el famoso “problema del agente viajero”
Sistemas Expertos – Sistemas basados en el conocimiento
Son el primer producto viable comercialmente de la Inteligencia Artificial. Permiten introducir
información acerca de una materia específica a la computadora (base de conocimientos), y actúan
como si fueran expertos en la materia. Un Sistema experto simula el proceso de razonamiento
humano mediante la aplicación específica de conocimientos e inferencias.
Procesamiento de Lenguaje Natural (PLN)
Para muchos investigadores, es el más difícil de alcanzar de todos los objetivos de la Inteligencia
Artificial: Permitir a la computadora comprender el lenguaje humano directamente; sin el complicado
conjunto de lenguajes intermedios.
Reconocimiento de Patrones (Visión)
Engloba un conjunto de técnicas de la matemática aplicada y de la informática, ha despertado un
gran interés en las últimas décadas por sus numerosas aplicaciones, entre las que se pueden citar las
siguientes: ayuda al diagnóstico médico, análisis automático de señales, teledetección, inspección
automática de productos industriales, sistemas de vigilancia automática, procesamiento de
documentos, búsqueda automática de información digitalizada etc.
Aprendizaje
Esta área de la Inteligencia Artificial trata de la realización de programas que aprendan de sus
errores, de observaciones o por encargo.
En este sentido, aprender simplemente significa hacer a una computadora capaz de beneficiarse de
la experiencia.
Robótica
Como aplicación a la robótica, la Inteligencia Artificial es el estudio de cómo controlar movimiento,
lo cual es llamado razonamiento espacial. El principal problema para los robots autónomos es el de
interactuar con el mundo humano, con sus obstáculos, sucesos inesperados y entorno cambiante.
5
Lógica
Uno de los productos de la I.A. de gran importancia práctica actual son aquellos programas que se
pueden usar para estudiar la corrección lógica de argumentos mediante la aplicación de reglas
estándar de lógica. Esto incluye demostraciones matemáticas, lógica formal y lógica filosófica.
Lógica Difusa
Esta área de la Inteligencia Artificial estudia los problemas de hacer que una computadora sea capaz
de tomar decisiones (“pensar”) usando conocimiento incompleto o probabilístico.
Juegos
Una de las primeras aplicaciones de I.A. Fueron los juegos, el primer programa para jugar damas fue
concebido en 1947 pero se realizó hasta 1962. Se dice que el primer juego de ajedrez por
computadora fue creado por Claude Shannon en 1953.
Actualmente la pasión por los videojuegos es dominante en todo el mundo por niños e inclusive
adultos.
Algoritmos Genéticos
Los Algoritmos Genéticos son una técnica computacional inspirada en modelos biológicos que han
sido utilizados para realizar búsquedas eficientes en espacios de soluciones altamente complejos y
grandes.
Los Algoritmos Genéticos son métodos adaptivos que pueden ser utilizados para implementar
búsquedas y problemas de optimización.
Los Algoritmos Genéticos están basados en los procesos genéticos de los organismos biológicos,
codificando una posible solución a un problema en un “cromosoma” compuesto por una cadena de
bits o caracteres.
Redes Neuronales Artificiales (RNA)
Es una nueva forma de computación que es capaz de manejar las imprecisiones e incertidumbres
que aparecen cuando se trata de resolver problemas relacionados con el mundo real
(reconocimiento de formas, toma de decisiones, etc.), ofreciendo soluciones robustas y de fácil
implementación.
Las RNA están compuestas de muchos elementos sencillos que operan en paralelo, el diseño de la
red está determinado mayormente por las conexiones entre sus elementos. Al igual que las
conexiones de las neuronas cerebrales.
La idea de las redes neuronales fue concebida originalmente como un intento de modelar la
biofisiología del cerebro humano, esto es, entender y explicar cómo funciona y opera el cerebro.
Realidad Virtual
Una de las más recientes aplicaciones de la I.A. es la Realidad Virtual. Básicamente consiste en la
elaboración de programas que logran engañar a los sentidos del ser humano, haciéndolo creer que
se encuentra flotando, corriendo o volando una nave espacial.
Estas aplicaciones han sido de gran utilidad en la simulación de vuelos para el entrenamiento de
pilotos, astronautas, buzos, etc.
6
Programa Inteligente
Es aquel programa que exhibe un comportamiento similar al de un humano cuando se enfrenta a un
problema específico; no es necesario que el programa resuelva concretamente o intente resolver el
problema de la misma forma que un humano.
• Los sistemas inteligentes pueden ayudar a los expertos a resolver problemas de análisis.
• Los sistemas inteligentes pueden ayudar a desarrollar nuevos elementos del conocimiento.
• Los sistemas inteligentes pueden aprender a partir de ejemplos y realizar generalizaciones.
Pero... ¿Cómo evaluar a un sistema como “inteligente”? Un procedimiento bien conocido para
evaluar el éxito de un programa de IA es la prueba de Turing.
UNIDAD I. AGENTES DE ESTÍMULO - RESPUESTA. (Extractos tomados del texto “Inteligencia Artificial de Nils
J. Nilsson).
Históricamente los investigadores en IA se han enfocado en los distintos componentes del comportamiento
inteligente (aprendizaje, razonamiento, visión,….), de forma aislada. En la actualidad, algunos autores
sugieren que la inteligencia, es producto de la interacción entre un agente y su entorno. Entonces, el
comportamiento inteligente emerge de la interacción de varios comportamientos simples.
Un agente es cualquier ente que se pueda ver como percibiendo su ambiente a través de sensores, actuando
y respondiendo en el ambiente por medio de efectores:
7
La Figura 5 refiere un ejemplo típico de lo que llamaremos “Mundo Espacial Cuadriculado”, en el que hay dos
robots. Uno de ellos es un robot bidimensional sencillo, con sensores para percibir si las celdas adyacentes
están o no libres para moverse a ellas; el otro, más complejo, dispone de un brazo con el que puede
manipular objetos:
Si el robot estuviera en la posición marcada por una X los valores de las entradas sensoriales (empezando
por S1 y siguiendo en el sentido de las agujas del reloj) serían (0, 0, 0, 0, 0, 0, 1, 0). El robot puede moverse a
8
una celda libre adyacente que esté en su misma fila o columna. Por tanto, existen cuatro movimientos
posibles:
1. Norte mueve el robot una celda hacia arriba.
2. Este mueve el robot una celda a la derecha.
3. Sur mueve el robot una celda hacia abajo.
4. Oeste mueve el robot una celda a la izquierda.
Todas estas acciones producen los efectos arriba indicados, a no ser que el robot intente moverse a una
celda que no esté libre, en cuyo caso la acción no tendría efecto. Por tanto, dadas las propiedades de los
mundos en los que el robot puede habitar (como, por ejemplo, el de la Figura 6), concretada la tarea que
tiene que desarrollar el robot (seguir los bordes) y establecidas sus capacidades sensoriales y motrices, el
trabajo del diseñador consiste en especificar una función, definida sobre las entradas sensoriales (en
el ejemplo, S1,….., S8) que seleccione la acción apropiada en cada momento para llevar a cabo con éxito la
tarea que el robot tiene encomendada. Para realizar el diseño, lo habitual sería dividir el cálculo de una
acción, a partir de las señales sensoriales, en dos fases distintas, tal y como se señala en la Figura 7.
En la fase de procesamiento perceptual se genera un vector de características X = (X1, X2, X3,….., X5), y en la
fase de cálculo de la acción se selecciona una acción teniendo en cuenta dicho vector de características. Los
valores de este vector pueden ser características binarias y pueden ser consideradas como características
numéricas (0,1) o categorizadas (V, o Verdadero, y F o Falso). El diseñador debe seleccionar las
características a utilizar, de tal forma que éstas se correlacionen con las propiedades del entorno del robot
que son relevantes para la selección de la acción a tomar, teniendo en cuenta el estado indicado por dichas
características. Normalmente, esta división se realiza de manera que las mismas características puedan ser
usadas en otras tareas que el robot tenga que desarrollar. Estas tareas pueden tener el mismo vector de
características, pero diferentes funciones para el cálculo de la acción. Después de decidir cómo realizar la
división, hay que resolver dos problemas: (1) la conversión de los datos primitivos que vienen de los sensores
en un vector de características, y (2) la especificación de la función para el cálculo de la acción.
PERCEPCIÓN.
Las entradas sensoriales de nuestro robot están representadas por los valores de las variables S1,…..S8. Por
tanto, existen 28 = 256 combinaciones posibles de estos valores. En nuestro entorno, ciertas combinaciones
9
pueden ser descartadas debido a la condición que prohíbe la existencia de pasillos estrechos. Para la tarea
que estamos considerando, se pueden definir cuatro características binarias, definidas sobre las variables
sensoriales, que nos pueden ayudar para el cálculo de las acciones. A estas características las
denominaremos X1, X2, X3 y X4 y su definición puede ser inspeccionada en la figura. Por ejemplo, X1 = 1 si, y
sólo si, S2 = 1 o S3 = 1.
En este ejemplo, el procesamiento perceptual está formado por unos cálculos relativamente simples. Sin
embargo, en mundos más complejos y con robots que posean un sistema sensorial más elaborado y que
desarrollen tareas más difíciles, el diseño de un procesamiento perceptual adecuado puede ser una tarea
bastante más complicada. Además, hay que tener en cuenta que en muchas de las tareas que existen en el
mundo real, el procesamiento perceptual puede producir ocasionalmente información errónea, incompleta
o ambigua sobre el entorno del robot. Este tipo de errores puede llevar a una selección inadecuada de la
acción a tomar, aunque, dependiendo de la tarea y del entorno, existe la posibilidad de que estas acciones
mal seleccionadas no produzcan un daño irreparable, siempre y cuando éstas sean poco frecuentes.
ACCIÓN.
Dadas las cuatro características definidas en la sección anterior, el siguiente paso que debemos abordar
consiste en la definición de una función de dichas características, que nos proporcione la acción adecuada
para llevar a cabo la tarea de seguimiento de bordes. Primero, nos damos cuenta de que si ninguna de las
características toma el valor 1 (es decir, el robot percibe que todas las celdas que le rodean están libres),
entonces el robot puede moverse en cualquier dirección hasta que encuentre un borde. Por defecto, vamos
a asignar a este caso la acción norte. Siempre que al menos una de las características tome el valor 1, la
tarea de seguimiento de bordes puede realizarse correctamente aplicando las siguientes reglas:
Si X1 = 1 y X2 = 0, moverse al este
Si X2 = 1 y X3 = 0, moverse al sur
Si X3 = 1 y X4 = 0, moverse al oeste
Si X4 = 1 y X1 = 0, moverse al norte
La característica indicada en cada diagrama tomará el valor 1 si, y sólo si, al menos una de las celdas
sombreadas está ocupada.
Da la casualidad de que las condiciones bajo las cuales el robot debe tomar estas acciones son
combinaciones booleanas de las características. De la misma forma, las características son, a su vez,
combinaciones booleanas de las entradas sensoriales. Ya que algunos sistemas perceptuales y algunos de los
métodos de selección de acciones más importantes implican el uso de funciones booleanas, vamos a hacer
un paréntesis para examinar más detenidamente este concepto antes de continuar con el ejemplo.
10
ÁLGEBRA BOOLEANA (Extractos tomados de “Arquitectura del Computador”, UNIMET).
En 1854 George Boole introdujo una notación simbólica para el tratamiento de variables cuyo valor podría
ser verdadero o falso (variables binarias). Así el Algebra de Boole permite manipular relaciones
proporcionales y cantidades binarias. En las expresiones booleanas se utilizarán las tres operaciones básicas
(AND, OR, NOT) para construir expresiones matemáticas en las cuales estos operadores manejan variables
binarias.
POSTULADOS:
Los postulados para las tres operaciones básicas, AND, OR y NOT, son suficientes para deducir cualquier
relación booleana.
0 1 00 0 0 .0 0
1 0 0 1 1 0. 1 0
1 0 1 1 .0 0
1 1 1 1.1 1
a) 0 X X c) 0. X 0
b) 1 X 1 d) 1. X X
2. IDEMPOTENCIA O POTENCIAS IGUALES.
a) X X X b) X .X X
11
3. COMPLEMENTACIÓN.
a) X X 1 b) X .X 0
4. INVOLUCIÓN.
X X
5. CONMUTATIVIDAD.
a) X1 X 2 X 2 X1 b) X1 . X 2 X 2 . X1
6. ASOCIATIVIDAD.
a) X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3
b) X1 X 2 . X 3 X1 . X 2 X 3 X 1 . X 2 . X 3
7. DISTRIBUTIVIDAD.
a) X 1 X 2 . X 3 X1 X 2 X1 X 3
b) X 1 X 2 X 3 X1 . X 2 X 1 . X 3
8. LEYES DE ABSORCIÓN.
a) X 1 X 2 X 3 X 1
b)
X1 X1 X 2 X1 . X 2
c) X1 X 1 X 2 X1 . X 2
d) X 1 X 2 X 1 X 2 X 1
e) X1 X1 . X 2 X1
f) X1 X1 . X 2 X1 X 2
g) X1 X1 . X 2 X1 X 2
h) X1 . X 2 X1 . X 2 X1
9. TEOREMAS DE MORGAN.
a) X1 . X 2 X1 X 2 c) X1 . X 2 X1 X 2
b) X1 X 2 X1 . X 2
d) X1 X 2 X1 . X 2
Se utilizan los postulados y teoremas del algebra de Boole para minimizar funciones booleanas. La
simplificación de estas funciones con el uso del algebra de Boole es un “arte”. Una pregunta importante que
tenemos que hacernos es la de ¿Qué es simplificación? ¿Una expresión con menos literales? ¿Una expresión
con menos operaciones? La respuesta depende de lo que deseamos optimizar. Antes de proceder a detallar
la forma de minimizar expresiones estudiaremos las diferentes representaciones de las funciones booleanas.
12
El complemento de una función no es la misma función, es la forma negada de la función. En el Algebra de
Boole es fundamental la existencia de una forma algebraica que proporcione explícitamente el valor de una
función para todas las combinaciones de los valores de las variables. Es esta la forma canónica de la función.
DEFINICIONES:
Literal: se refiere a una variable o a su complemento, por ejemplo: A, X , X (otras formas en que aparece
“X negado”, son: ┐X y ~X).
Término Producto: es un conjunto de literales que se encuentran relacionados entre sí por un AND, por
ejemplo: A . B, X1 . ┐X2 . X3. El punto se puede omitir, sin riesgo de ambigüedad.
Término Suma: es un conjunto de literales que se encuentran relacionados entre sí por un OR, por ejemplo:
A + B, X1 + X2 + ┐X3
Término Normal: termino producto o termino suma en el que un literal no aparece más de una vez.
Termino Canónico: término en el que se encuentra exactamente uno de cada uno de los literales de la
función. Si en término canónico es un producto, se denominará mintérmino. Si es una suma se denominará
maxtérmino.
Forma normal de una función: está constituida por términos normales. Puede estar en la forma de suma de
términos productos o productos de términos sumas.
Forma canónica de una función: está constituida exclusivamente por términos canónicos que aparecen una
sola vez.
Teorema 2: Para obtener la forma canónica de una función producto de sumas se sumará un término de la
forma X . X donde falte un literal para que el término sea canónico.
F X1 , X 2 , X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3
Para simplificar la escritura en forma de suma canónica de productos, se utiliza una notación especial. A cada
mintérmino se le asocia un número binario de n bits resultantes de considerar como 0 las variables
complementadas y como 1 las variables no complementadas. Así por ejemplo el mintérmino X 1 . X 2 . X 3
13
corresponde a la combinación X 1 0, X 2 0, X 3 1 que representa el numero binario 001, cuyo valor
decimal es 1.
Forma canónica productos de sumas.
Es aquella constituida exclusivamente por términos canónicos sumas (Maxtérminos) multiplicados que
aparecen una sola vez, por ejemplo:
F X 1 , X 2 , X 3 X 1 X 2 X 3 . X 1 X 2 X 3 . X 1 X 2 X 3
Análogamente al caso anterior, podemos simplificar la expresión de la función, indicando los maxtérmino.
Sin embargo, en este caso se hace al contrario de antes. A cada maxtérmino se le asocia un número binario
de n bits resultantes de considerar como 1 las variables complementadas y como 0 las variables no
complementadas. Así por ejemplo el maxtérmino X 2 X 2 X 3 corresponde a la combinación
X 1 1, X 2 1, X 3 0 que representa al número binario 110, cuyo valor decimal es 6.
Cada mintérmino se asocia con la combinación de entrada para la que la función produciría un 1, y cada
maxtérmino con la combinación para la que produciría un 0. Para determinar el término producto o suma
hacemos lo siguiente: para los mintérmino cada variable no complementada se asocia con un 1 y cada
variable complementada se asocia con 0. Para los maxtérmino la regla es inversa.
X Y Z F X1 X 2. X 3 MINTÉRMINOS
0 0 0 0
0 0 1 1 X1 . X 2. X 3
0 1 0 0
0 1 1 0
1 0 0 1 X1 . X 2. X 3
1 0 1 1 X1 . X 2. X 3
1 1 0 1 X1 . X 2. X 3
1 1 1 1 X 1 .X 2 . X 3
Se avalúa la función para todas las combinaciones y se toman los mintérminos de la tabla para los cuales la
función vale 1, luego tenemos:
14
F X1 , X 2 , X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3
Forma 2. Aplicando los teoremas de expansión canónica para las variables faltantes:
X1 X 2 . X 3
X1 X 2 . X 2 . X 3 . X 3 X 2 . X 3 X1 . X1
X1 X 1 . X 2 X1 . X 2 X 3
. X 3 X 2 . X 3 . X 3 X1 . X 2 . X 3
X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3
X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3 X1 . X 2 . X 3
De nuevo, se puede resolver construyendo una tabla de verdad o con manipulación algebraica:
Forma 1. Se obtiene la tabla de verdad de la fusión. Tomando los maxtérmino desde la tabla de verdad, la
respuesta es la siguiente:
X Y Z F X1 X 2. X 3 MAXTÉRMINOS
0 0 0 0 X1 X 2 X 3
0 0 1 1
0 1 0 0 X1 X 2 X 3
0 1 1 0 X1 X 2 X 3
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
Se evalúa la función para todas las combinaciones y se toman los maxterminos de la tabla para los cuales la
función vale 0, luego tenemos:
F X1 , X 2 , X 3 X1 X 2 X 3 X1 X 2 X 3 X 1 X2 X3
X1 X 2. X 3
15
X X X X
1 2 1 3
X . X X . X X X X . X
1 2 3 3 1 3 2 2
X . X X X X X X . X X X
1 2 3 1 2 3 1 2 3 1 X2 X3
X . X X X X X X . X X
1 2 3 1 2 3 1 2 3
X 1. X 2 X 1 . X 2 . X 3
X 1 X 2 X 1 X 2
Toda función booleana puede ser escrita en FND. Cualquier expresión FNC se puede convertir a una
expresión FND aplicando las leyes de Morgan y viceversa, tal y como ya se ha visto.
Regresando a nuestro ejemplo donde un robot debe ir a una celda fronteriza, o que limite con un objeto, y
seguir su perímetro indefinidamente; la condición por la que el robot deba moverse al norte está dada por la
expresión X 1 . X 2 . X 3 . X 4 X 4 . X 1 . Además, la función que calcula las características a partir de las
señales sensoriales es también booleana. Por ejemplo X 4 S1 S 8 . Las restantes características y reglas de
acción se pueden describir por funciones similares. Algunas veces, los argumentos y valores de una función
booleana se expresan por medio de las constantes V (Verdadero) y F (Falso) en lugar de utilizar el 1 y el 0
respectivamente.
Sistemas de producción.
Los sistemas de producción proporcionan una representación adecuada para las funciones de selección de
acciones. Un sistema de producción está formado por un conjunto de reglas de producción. Cada regla se
describe de la siguiente manera: ci ai , donde ci es la condición i, y ai es la acción i. por tanto, un sistema
de producción está formado por un conjunto no vacío de este tipo de reglas:
c1 a1
c2 a2
16
ci ai
cm am
La condición de una regla puede ser cualquier función booleana definida sobre el vector de características
que, como se ha indicado, se calcula a partir de las entradas sensoriales.
Volviendo a la tarea de seguimiento de bordes de nuestro robot, y aplicando el álgebra booleana,
obtenemos el siguiente sistema de producción:
X 4 X 1 norte
X 3 X 4 oeste
X 2 X 3 sur
X 1 X 2 este
1 norte
El comportamiento mostrado por nuestro robot al seguir los bordes es un ejemplo de proceso sin fin, es
decir, el robot continúa ejecutando acciones de forma indefinida. Sin embargo, existen otras tares que
requieren que las acciones solo se ejecuten hasta que se alcance algún objetivo predefinido, parando toda
actividad una vez alcanzado. Generalmente, el objetivo se expresa como una condición booleana de las
características.
17
n
f 1 si X i 1
i Wi 0
f X1 . X 2 . X1 . X 2 X1 X 2 . X1 . X 2
f X 1 X 2 . X 1 . X 2 X 1. X 1 . X 2 X 1. X 2 . X 2
f X . X . X X . X . X X . X X . X
1 1 2 1 2 2 1 2 1 2 . X2
f X . X X . X . X X . X . X . X . X
1 2 1 2 2 1 2 1 2 2
X1 X2 X1 X 1. X 2 X 1. X 2 X 1. X 2 . X 2 X 1. X 2 . X 1. X 2 . X 2
1 0 0 0 1 1 1
0 0 1 0 1 1 1
1 1 0 0 1 1 1
0 1 1 1 0 1 0
1. 1. Los puntos blancos representan los pares (1, 0), (0, 0) y (1, 1)
que tienen como salida un 1 y el punto negro el par (0, 1), que
tiene como salida un 0.
18
Las funciones que se definieron para que el robot pudiera seguir los bordes se pueden implementar
mediante diferentes ULU. Como ejemplo, en la Figura 10 se puede ver la ULU que implementa la función
f X 1 X 2 S 2 S 3 S 4 S 5 S 2 S 3 S 4 S 5 .
Los números sobre las flechas corresponden a los pesos ajustados, una vez que la red ha sido entrenada
(ajustada) para producir la salida adecuada (moverse hacia el este).
En aplicaciones donde solo existan dos acciones posibles, puede ocurrir que con una sola ULU podamos
implementar la función de selección de acciones, siempre y cuando tengamos como entrada una
representación codificada del vector de características. Sin embargo, para problemas más complejos,
seguramente será necesaria una red de ULU. Este tipo de circuito se denomina red neuronal, ya que las ULU
pueden ser consideradas como modelos simplificados de las neuronas biológicas, cuyo disparo depende de
la suma de las intensidades recibidas a través de las sinapsis, pudiendo éstas amplificar o atenuar la
intensidad de las entradas.
Desde un punto de vista funcional, las neuronas constituyen procesadores de información sencillos. Como
todo sistema de este tipo, posee un canal de entrada de información, las dendritas; un órgano de cómputo,
el soma, y un canal de salida, el axón (Fig. 11).
19
La mayor parte de las neuronas poseen una estructura de árbol llamada desdirías de tal forma que las
neuronas se unen a través de uniones denominadas sinapsis. En el tipo de sinapsis más común no existe un
contacto físico entre las neuronas, sino que éstas permanecen separadas por un pequeño vacío de unas 0.2
micras. Con relación a la sinapsis, se habla de neuronas presinápticas (las que envían las señales) y neuronas
postsinápticas (las que las reciben). Las sinapsis son dirigidas, es decir, la información fluye siempre en un
único sentido.
Una de las características principales de las neuronas, es su capacidad de comunicarse. Esta recibe
información de cientos de neuronas vecinas y la transmite a otras tantas neuronas. La comunicación entre
neuronas se lleva a cabo de la siguiente manera: en el soma de las neuronas transmisoras o presinápticas se
genera un pulso eléctrico llamado potencial de acción. El pulso eléctrico se propaga a través del axón en
dirección a las sinapsis. La información se transmite a las neuronas vecinas utilizando un proceso químico,
mediante la liberación de neurotransmisores. Estos neurotransmisores se transmiten a través de la sinapsis
hacia la neurona receptora. La neurona receptora o postsináptica toma la señal enviada por cientos de
neuronas a través de las dendritas y la transmite al cuerpo celular. Estas señales pueden ser excitadoras
(positivas) o inhibidoras (negativas). El soma es el encargado de integrar la información proveniente de las
distintas neuronas. Si la señal resultante supera un determinado umbral (umbral de disparo) el soma emite
un pulso que se transmite a lo largo del axón dando lugar a la transmisión eléctrica a lo largo de la neurona.
Al llegar la señal al extremo del axón se liberan neurotransmisores que permiten transmitir la señal a las
neuronas vecinas.
Cuando en el sistema humano de neuronas, los ojos captan un objeto A, por ejemplo, algunos de los
sensores de la visión se activan y envían señales a las neuronas. Las neuronas que se disparan con la señal de
entrada aumentan el grado de conexión de ellas. Si el mismo objeto A se presenta una y otra vez, la
interconexión de neuronas se refuerza y, por lo tanto, el conocimiento del objeto. Si se le presenta a la red
anterior el objeto A modificado, la unión de las neuronas para el conocimiento de tal objeto es débil. Las
neuronas deben entrenarse para reconocer el objeto A en esta nueva representación. Luego de algunas
sesiones de entrenamiento, el sistema neuronal es capaz de reconocer el objeto A en todas sus formas. Si el
objeto cambia nuevamente la red de neuronas y el conocimiento se actualizan.
Este entrenamiento, repetido para todos los valores de entrada y salida que se quiera, origina una
representación interna del objeto en la red, que considera todas las irregularidades y generalidades del
mismo.
20
Figura 12. Neurona Artificial con Sistema de Aprendizaje
En general podemos encontrar tres tipos de neuronas artificiales, donde cada una de las cuales tiene su
contraparte en el sistema nervioso:
1. Las que reciben información directamente desde el exterior, a las cuales se las denomina neuronas
de entrada.
2. Las que reciben información desde otras neuronas artificiales, a las cuales se las denomina neuronas
ocultas. Es en estas neuronas, en particular en sus sinapsis, donde se realiza la representación de la
información almacenada.
3. Las que reciben la información procesada y las devuelven al exterior. A estas neuronas se las
denomina neuronas de salida.
REDES NEURONALES.
Una red neuronal es el intento de poder realizar una simulación computacional del comportamiento de
partes del cerebro humano mediante la réplica en pequeña escala de los patrones que este desempeña para
la formación de resultados a partir de los sucesos percibidos.
Concretamente, se trata de poder realizar y reproducir el mecanismo de aprendizaje y reconocimiento de
sucesos que poseen los animales más evolucionados.
Una de las preguntas más importantes que se plantean al hablar de este tema es la habilidad del cerebro
para poder reconocer patrones. Se denomina reconocimiento de patrones a la capacidad de poder
interpretar una imagen compleja (una foto, lo que ve el ojo) y actuar en consecuencia. Las redes neuronales
operan sobre la base de reconocimiento de patrones, y que pueden adquirir, almacenar y utilizar
conocimiento experimental, obtenido a partir de ejemplos. Esta forma de adquirir conocimientos es una de
las características más destacables: no se programa de forma directa, como sucede en los sistemas expertos,
sino que se adquiere a partir de ejemplos, por ajuste de parámetros de las neuronas mediante un algoritmo
de aprendizaje.
Perceptrón.
Este modelo tiene gran importancia histórica ya que fue el primer modelo en poseer un mecanismo de
entrenamiento que permite determinar automáticamente los pesos sinápticos que clasifican correctamente
a un conjunto de patrones a partir de un conjunto de ejemplos. La arquitectura del perceptrón está
compuesta por dos capas de neuronas (ver figura 9), una de entrada y una de salida. La capa de entrada es la
que recibe la información proveniente del exterior y la transmite a las neuronas sin realizar ningún tipo de
21
operación sobre la señal de entrada. En general la información entrante es binaria. La función de activación
de las neuronas de un perceptrón es del tipo escalón, dando de esta manera sólo salidas binarias. Cada
neurona de salida del perceptrón representa a una clase. Una neurona de salida responde con 1 si el vector
de entrada pertenece a la clase a la que representa y responde con 0 en caso contrario.
La operación de un perceptrón con n neuronas de entrada y m neuronas de salidas puede ser resumida de la
siguiente manera:
n
y(t ) 1 f X i Wi j i i, 1 i m, donde señala el valor del umbral
j 1
El algoritmo de entrenamiento del perceptrón se encuentra dentro de los denominados algoritmos por
corrección de errores. Este tipo de algoritmos ajustan los pesos de manera proporcional a la diferencia
entre la salida actual proporcionada por la red y la salida objetivo, con el fin de minimizar el error producido
por la red. Se puede demostrar que este método de entrenamiento converge siempre en un tiempo finito y
con independencia de los pesos de partida, siempre que la función a representar sea linealmente separable.
El principal problema de este método de entrenamiento es que cuando la función a representar no es
linealmente separable el proceso de entrenamiento oscilará y nunca alcanzará la solución. Las funciones no
separables linealmente no pueden ser representadas por un perceptrón.
NOTA IMPORTANTE: En la carpeta que contiene el material de apoyo, podrás encontrar varias direcciones
URL, donde se ejemplifica el algoritmo de entrenamiento para un perceptrón.
Perceptrón multicapa (o redes multicapa).
El perceptrón multicapa es una extensión del perceptrón simple. La topología de un perceptrón multicapa
está definida por un conjunto de capas ocultas, una capa de entrada y una de salida. No existen restricciones
sobre la función de activación aunque en general se suelen utilizar funciones sigmoideas.
Este modelo es el más utilizado en la actualidad. El espectro de aplicaciones del perceptrón multicapa es
muy amplio lo que hace muy difícil enumerar sus aplicaciones más relevantes. Sin embargo, podemos
mencionar algunas áreas de aplicación:
Codificación de información
Traducción de texto en lenguaje hablado
Reconocimiento óptico de caracteres (OCR)
22
Entrenamiento de redes neuronales.
En el contexto de las redes neuronales el aprendizaje puede ser visto como el proceso de ajuste de los
parámetros libres de la red. Partiendo de un conjunto de pesos sinápticos aleatorios, el proceso de
aprendizaje busca un conjunto de pesos que permitan a la red desarrollar correctamente una determinada
tarea. El proceso de aprendizaje es un proceso iterativo, en el cual se va refinando la solución hasta alcanzar
un nivel de operación suficientemente bueno.
La mayoría de los métodos de entrenamiento utilizados en las redes neuronales con conexión hacia delante
consisten en proponer una función de error que mida el rendimiento actual de la red en función de los pesos
sinápticos. El objetivo del método de entrenamiento es encontrar el conjunto de pesos sinápticos que
minimizan (o maximizan) la función. El método de optimización proporciona una regla de actualización de
los pesos que en función de los patrones de entrada modifica iterativamente los pesos hasta alcanzar el
punto óptimo de la red neuronal.
a. Métodos de gradiente descendente.
El método de entrenamiento más utilizado es el método del gradiente descendente. Este método
define una función E(W) que proporciona el error que comete la red en función del conjunto de
pesos sinápticos W. El objetivo del aprendizaje será encontrar la configuración de pesos que
corresponda al mínimo global de la función de error, aunque en muchos casos es suficiente
encontrar un mínimo local lo suficientemente bueno.
El principio general del método es el siguiente: dado un conjunto de pesos W(0) para el instante de
tiempo t=0, se calcula la dirección de máxima variación del error. La dirección de máximo
crecimiento de la función E(W) en W(0) viene dado por el gradiente ∇E(W). Luego, se actualizan los
pesos siguiendo el sentido contrario al indicado por el gradiente ∇E(W), dirección que indica el
sentido de máximo decrecimiento. De este modo se va produciendo un descenso por la superficie de
error hasta alcanzar un mínimo local.
b. El algoritmo Backpropagation (o retropropagación del error).
El algoritmo backpropagation es el método de entrenamiento más utilizado en redes con conexión
hacia delante. Es un método de aprendizaje supervisado de gradiente descendente, en el que se
distinguen claramente dos fases: primero se aplica un patrón de entrada, el cual se propaga por las
distintas capas que componen la red hasta producir la salida de la misma. Esta salida se compara con
la salida deseada y se calcula el error cometido por cada neurona de salida. Estos errores se
transmiten hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de las capas
intermedias. Cada neurona recibe un error que es proporcional a su contribución sobre el error total
de la red. Basándose en el error recibido, se ajustan los errores de los pesos sinápticos de cada
neurona.
A continuación se muestra el algoritmo de retropropagación en pseudocódigo:
1. Inicio
Dado un perceptrón con n+1 entradas x1 , x2 , , xn1 , la entrada xn1 1 ;
N+1 pesos w1 , w2 , , xn1 y el valor deseado d.
2. Hacer mientras error
Inicio
Por cada capa:
Inicio
Inicio
23
Por cada conjunto de pesos (conjunto de entrenamiento):
Calcular la suma ponderada (s = X . W).
s
Calcular f i 1 / 1 e {Función Sigmoide}.
La entrada de la capa siguiente, es la salida de la capa anterior.
Fin.
Calcular nuevos pesos de la capa, empleando la relación:
j j j
Wi Wi Ci i j X j 1
Fin.
3. Fin.
____
X1 X2 X 1 X 2 X 1. X 2
0 0 1
0 1 0
1 0 0
1 1 1
24
Consideremos los valores de entrada que están sombreados en la tabla con X 3 1 entrada n 1 y valor
deseado d=0.
Posibles valores de las entradas:
1
Vector de entrada: X = 0
1
Cálculo de las salidas, primera capa:
f1 0,881; f 2 0,500;
W1 3; W2 2; W3 1
s 3. 0,881 2 .0,500 1.1
f1 1 / 1 e 0,642
X 0 1 0,642 0,655
m j 1
j j 1 j 1
i fi . 1 fi
j j
i Wi
i 1
Se obtiene:
11 f1 . 1 f1 W12 2
0,04655 0,047 en donde W1
2
3
25
21 f 2 . 1 f 2 W22 2
0,074 en donde W2
2
2
Utilizamos la regla para ajustar los pesos, con C = 1 y empleando recurrencia:
j j j
Wi Wi Ci i j X j 1
Obtenemos los nuevos valores de los pesos:
W11 2 1 0,047 .11,953
1
W21 2 1 0,047 . 0 2
1
1 1 0,074 .11,074
1
W12
3 1 0,074 . 0 3
1
W22
1 1 0,074 .1 0,926
1
W32
ITERACIÓN VALOR DE f
1 0,655293802
2 0,558958212
3 0,466635415
4 0,386061959
5 0,331350770
MÓDULO II
BÚSQUEDA EN ESPACIO DE ESTADOS.
Dentro de la gama de problemas que se abordan en Inteligencia Artificial, existe un tipo cuyo tratamiento
consiste en definir el espacio de estados, entendiéndose este como un conjunto de todos los estados
posibles que pueden alcanzarse a partir del estado inicial mediante una secuencia de operaciones. Para tal
fin, se requerirá de algún algoritmo de búsqueda para hallar la solución, lo cual es equivalente a hallar el
estado objetivo. Se definirán estados iniciales, estados intermedios y estados finales u objetivos. Además se
definirán acciones sobre los estados que dependerán de las restricciones del problema. El tipo de búsqueda
a emplear, dependerá del número de estado que presente el problema.
26
PROCEDIMIENTOS DE BÚSQUEDA EN ESPACIO DE ESTADOS.
27
Si no hay candidato para expandir entonces
Falla
de lo contrario
Escoger nodo hoja para expandir según estrategia
Si nodo es edo. Objetivo entonces
Solución del problema
de lo contrario
Expandir nodo y añadir el nodo al árbol de búsqueda
Fin del algoritmo
Búsqueda en amplitud:
Todos los nodos que están en la
profundidad d del árbol de búsqueda se
expanden antes de los nodos que estén en
la profundidad d+1.
28
Búsqueda en profundidad:
29
Además del grafo como recurso para representar un conjunto de estados y acciones en problemas de
Inteligencia Artificial, para hacer la representación más clara se pueden emplear, además, estructuras de
datos, mapas o representaciones graficas (modelos icónicos). Cuando el conjunto de estado es muy grande
se emplean grafos implícitos, generalmente requieren algoritmos especiales. Los grafos explícitos, presentan
todos los estados.
En los siguientes ejemplos, se muestran situaciones en las que deben definirse principalmente el conjunto de
estados y acciones para alcanzar los objetivos planteados.
30
Ejemplo 1: Determinación del espacio de estados.
Problema del campesino. Un campesino realiza un viaje a pie con
un lobo, una cabra y un repollo; en un punto de su travesía debe
cruzar un río, para lo que dispone de un bote que sólo es capaz de
transportar al campesino y a uno de sus tres tesoros. Por obvias
razones el campesino no puede dejar a la cabra con el lobo, ni
tampoco la cabra con el repollo. No tiene dónde ni con qué atar al
lobo ni a la cabra, ni tiene de donde colgar el repollo. Tampoco hay
puentes. Nadie se mete al agua. ¿Cómo logra el campesino cruzar el
río con sus animales y su repollo?
Primero definiremos la nomenclatura a utilizar: al elemento
campesino le asociamos la letra H, al lobo la L, a la cabra la C y al
repollo la R. denotaremos los estados por pares como se explica en
el siguiente ejemplo: (H-C, L-R), en donde la primera secuencia corresponde a los elementos que están en la
ribera izquierda, siendo en este caso el campesino y la cabra y la segunda a lo que están en la ribera derecha,
es decir el lobo y el repollo.
Existen 16 (24) estados posibles, pero como alguno de ellos viola las restricciones, no se consideran, es decir
solo se toman en cuenta los estados factibles. A continuación se presenta el cuadro de las acciones
necesarias a realizar con el fin de alcanzar la solución del problema:
Cuadro de Acciones
Nº DE ACCIÓN ACCIÓN
Espacio de Estados
El siguiente grafo presenta el espacio de estados asociado al problema planeado, solo considera los estados
factibles. El estado inicial se denota como: (H-C-L-R, Ø), es decir todos los elementos están en la ribera
izquierda del rio. Análogamente el estado objetivo se denota como (Ø, H-C-L-R), lo que significa que todos
los elementos están en la ribera derecha del rio.
31
Una vez definidos los estados (inicial, intermedios y objetivo), además de representar todos los posibles
estados, se debe definir la estrategia de búsqueda. Es fundamental que el estudiante comprenda y describa
los procesos de búsqueda en amplitud y búsqueda en profundidad, sus ventajas y desventajas.
Grafo de Estados:
Una vez analizado el problema, se debe definir lo que será para nosotros un estado y la acción que conduce a
cada estado. Sea R1 el reloj que se vacía en 4 minutos y R2 el reloj que se vacía en 7 minutos, le asociamos a
cada reloj pares de estados posibles (a, b), en donde a representa el tiempo a transcurrir en un instante dado,
cuando se descargue la parte superior del reloj y b el tiempo que ha transcurrido al descargarse cierta porción
del reloj, entonces los estados que forman parte el espacio, se podrían expresar como ((a, b), (c, d)).
Gráficamente lo representamos así:
32
Representación gráfica de los relojes de arena
Un estado factible para R1 podría ser (3, 1), esto significa que faltan por transcurrir 3 minutos y ha transcurrido
1 minuto. Similarmente un estado factible para R2 podría ser el (4, 3), es decir, faltan por transcurrir 4 minutos
y han transcurrido 3 minutos. Así, un estado asociado al problema podría ser ((3, 1), (4, 3)). Para simplificar la
representación lo denotaremos como (3, 4), considerando solo el tiempo que falta por transcurrir en ambos
relojes. Las acciones y condiciones asociadas se muestran a continuación:
Cuadro de Acciones
Nº DE
ACCIÓN CONDICIÓN
ACCIÓN
Permitir que se Tiempo que falta por transcurrir en voltear R1 es menor que tiempo que
1
vacié R1 falta por transcurrir en voltear R2 (*)
Permitir que se Tiempo que falta por transcurrir en voltear R2 es menor que tiempo que
2
vacié R2 falta por transcurrir en voltear R1 (*)
Permitir que se
3 Los tiempos por transcurrir son iguales en ambos casos
vacíen ambos
4 Voltear R1 ----------------------------------------------
5 Voltear R2 ----------------------------------------------
(*) Esta condición solo se refiere al caso en que los tiempos sean mayores que cero. Los estados cuyos componentes
sean (0, b) o (0, d), solo en aquellos en donde no hay transferencia de arena, es decir el reloj esta estático.
Bajo este esquema de implementación de solución al problema, el tiempo transcurrido cuando se aplican las
acciones 1 y 2, es el mínimo de los dos tiempos. Cuando se aplican las acciones 4 y 5 deberá considerarse
despreciable el instante que se voltea el reloj de arena, entonces en este caso, el tiempo transcurrido es
igual a cero.
33
Para intentar resolver el problema, partiremos de un estado inicial igual a (4, 7), tomando en cuenta que
nuestro objetivo es medir el tiempo de 9 minutos. Empleando el esquema descrito en relación con la
representación de estado y acciones, la siguiente secuencia de operaciones permite obtener la solución al
problema.
(4, 7) 1 4 4
(0, 3) 4 0 4
(4, 3) 2 3 7
(1, 0) 5 0 7
(1, 7) 1 1 8
(0, 6) 5 0 8
(0, 1) 2 1 9
Aunque utilizando esta secuencia de acciones, resolvemos el problema, es importante destacar que el factor
tiempo que es justamente lo que queremos medir, no aparece en la representación de los “estados”, es
decir al estado inicial sería conveniente asociarle un tiempo igual a 0 y al estado final (estado objetivo) igual
a 9; a los estados intermedios obviamente se les asociarán los tiempos correspondientes, que serían
mayores que 0 y menores que 9.
Como observamos, esta implementación es rígida pero ofrece una manera de codificar o de representar la
solución al problema, sería conveniente relajar las acciones y condiciones con el fin de resolver el problema
en forma general, por ejemplo variando las condiciones iniciales y los objetivos del mismo. En todo caso a
este nivel, nuestro interés no es directamente resolver el problema, sino facilitar la implementación de la
solución, es decir diseñar un esquema que facilite la solución.
TAREA: Emplee el esquema de árbol para definir la totalidad de los estados, que es lo que realmente se hace
cuando se realiza una búsqueda a ciegas.
Ejemplo 3: El tradicional juego del 8-puzzle consiste, en dado un tablero con 9 casillas, las cuales van
enumeradas del 1 al 8 más una casilla vacía. Dicha casilla vacía, es la que, con movimientos horizontales,
verticales, hacia la izquierda o derecha, debe ser desplazada e intercambiada con alguno de sus vecinos, de
manera que, dada una configuración inicial se llegue a una configuración final (meta). Resulta un ejemplo
clásico y muy didáctico para poner en práctica algoritmos de búsqueda
Se debe definir estado y también considerar los Espacios de Estados (posibles configuraciones).
Inicial
Final (objetivo)
Operadores de Cambios de Estados
arriba: ^
abajo: v
34
derecha: >
izquierda: <
En el siguiente diagrama se explican los Estados (inicial y objetivo) como también los Espacios de Estados
como posibles configuraciones.
Como muestra este diagrama fue necesario analizar 15 nodos en el árbol. La búsqueda es de todas las
posibilidades. Los nodos han sido numerados por orden de procesamiento, pudiendo apreciar que este tipo
de ramificación por nodo es finito y ha sido capaz de encontrar la solución.
Este tipo de búsqueda solo es eficiente si la misma es reducida, si la búsqueda fuese más extensa ya no lo
sería dado que consume memoria de manera exponencial.
35
Solución por Búsqueda en Profundidad:
Como se puede apreciar en la imagen, es posible entender cómo funciona la búsqueda en profundidad,
explotando en profundidad un camino, en el caso de no encontrar la solución volvería atrás a seguir
explotando los otros nodos no explotados.
En este caso la solución se ha podido encontrar en la explotación del primer nodo y como se puede apreciar
para este estado inicial ha sido mejor que la búsqueda en amplitud.
Esta búsqueda es más compleja porque requiere realizar el retroceso, teniendo que hacerlo en los siguientes
casos:
Porque se ha llegado al final y no hay solución a buscar
Porque hemos llegado a un límite de explotación en profundidad o corte
Podemos recomendar este método cuando el estado objetivo a buscar está muy alejado y los recursos de
memoria en computador son escasos.
36
En esta clase de algoritmos, se retira el concepto de aplicabilidad de reglas y se reemplaza por el costo
asociado a una regla, de tal manera que una función f ayude a encontrar el próximo estado en ser
expandido. Esta función de evaluación f la calculamos a partir de la suma de dos funciones: f (n) = g(n)+ h(n).
g mide el costo acumulado en el árbol de expansión para ir de la raíz (nodo inicial) al nodo n (no
necesariamente el óptimo).
h representa una estimación del costo más barato para ir del estado n hasta el objetivo.
h recibe el nombre de función heurística.
Si p es un estado objetivo, entonces h (p) = 0.
f mide la distancia que hay de la raíz hasta el objetivo pasando por el nodo n.
Por lo tanto, se prefieren los valores más bajos.
El algoritmo que se muestra a continuación recibe el nombre de A*. Fue presentado en 1968 por Peter E.
Hart, Nils J. Nilsson y Bertram Raphael, el algoritmo encuentra, siempre y cuando se cumplan unas
determinadas condiciones. Éste algoritmo encuentra el camino de menor coste entre un nodo origen y un
nodo meta, tratando de evadir los caminos de coste alto. Se caracteriza por usar heurísticas admisibles, es
decir, heurísticas que nunca sobrepasan el costo real para alcanzar la meta. Además de esto cumple con la
propiedad de completitud, es decir, siempre encontrará la solución si es que existe.
37
*
ALGORÍTMO A :
Seguidamente se muestran tres ejemplos concretos que mejor describen este procedimiento:
38
Ejercicio 1.
39
40
Ejercicio 2. El tradicional juego del 8-puzzle resulta un ejemplo clásico y muy didáctico para poner en
práctica algoritmos de búsqueda que encuentren la solución eficiente a una configuración de 8-puzzle.
Este tipo de búsqueda estima el costo de colocar cada casilla o número que se encuentre fuera de lugar en
su lugar o estado objetivo respecto de su estado inicial.
En el problema ya planteado en párrafos anteriores, los elementos fuera de lugar son 4, 7 y 8. Estas tres
casillas o números necesitan de un solo movimiento de lugar para estar en la posición objetivo, por lo que
la heurística calcula un costo de 3.
En general, los métodos heurísticos (búsquedas informadas) son preferibles a los métodos no informados,
en la solución de problemas difíciles para los que una búsqueda exhaustiva necesitaría un tiempo demasiado
grande.
En problemas de complejidad pequeña, esto definido, como un número reducido de movimientos para
resolver el problema, la heurística más eficaz es la de Manhattan (suma de todas las distancias desde la
posición actual de cada ficha hasta su posición original), ya que es capaz de resolverlo con el menor consumo
de memoria al utilizar menos nodos.
A continuación se plantean dos nuevas situaciones del mismo problema, cada una con su enfoque particular
para resolver el problema de 8 – puzzle mediante el empleo del algoritmo A*, sean:
CASO 2-1. Condición Inicial:
Para este caso g(n) será la estimación de la profundidad del nodo n y h(n) seguirá dada en función de los
números que no están en su lugar, en relación con el objetivo. La preferencia del nodo viene dada por su
valor, por lo cual se procederá a expandir aquel nodo para la cual la función alcance el menor valor. Los
números en los nodos servirán para identificarlo durante el proceso iterativo.
41
42
43
44
45
46
CASO 2-2. Distancia Manhattan.
TAREA: Emplee el esquema de árbol para definir la totalidad de los estados, que es lo que realmente se hace
cuando se realiza la búsqueda heurística.
47
Ejercicio 3. Problema del viajero. Fundamentalmente se trata de transitar desde una ciudad de origen hasta
otra ciudad de destino, representadas estas por los nodos en el grafo, siguiendo un camino, indicado por las
aristas, tal que el rendimiento sea óptimo. En el esquema, recorra el grafo considerando que cuanto menor
es el valor heurístico, más deseable es el nodo. Los nodos M y K son solución al problema.
48