Anda di halaman 1dari 48

INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS

 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.

 MÓDULO II: BÚSQUEDA EN ESPACIO DE ESTADOS.


• UNIDAD III: BÚSQUEDA A CIEGAS.
*
• UNIDAD IV: BÚSQUEDA HEURÍSTICA. ALGORITMO A

 MÓDULO III: REPRESENTACIÓN DEL CONOCIMIENTO.


• UNIDAD V: CÁLCULO PROPOCICIONAL Y CÁLCULO DE PREDICADOS.

• UNIDAD VI: SISTEMAS BASADOS EN EL CONOCIMIENTO.

 MÓDULO IV: REPRESENTACIÓN DEL RAZONAMIENTO.


• UNIDAD VII: REPRESENTACIÓN DEL SENTIDO COMÚN.

• UNIDAD VIII: RAZONAMIENTO CON INCERTIDUMBRE.

 MÓDULO V: SISTEMAS EXPERTOS.


• UNIDAD IX: DESARROLLO DE UN SISTEMA EXPERTO.

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

 La rama de las ciencias de la computación que se ocupa de la automatización de la conducta


inteligente.
Lager y Stubblefield, 1993

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

¿En qué desarrollos encontramos algo de Inteligencia Artificial?


 Sistemas de control (vuelos espaciales)
 Planificadores (aeropuertos)
 Sistemas de soporte a la decisión
 Supervisores inteligentes
 e-commerce, subastas electrónicas
 Agentes recomendadores (Web!!!)
 e-learning .....

Figura 1. Ciencias en que se fundamenta el desarrollo de la inteligencia artificial.

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.

Figura 2. Ramas que comprende la inteligencia artificial

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.

Figura 3. Prueba de Turing

En esta prueba un entrevistador se comunica vía textual de entrada/salida, con un sistema de IA y


con otra persona que participa en la prueba. El entrevistador no se da cuenta cuál respuesta viene
de la computadora y cuál de la otra persona. Si después de hacer suficientes preguntas el
entrevistador no puede diferenciar entre el hombre y la máquina, entonces el sistema pasa la
prueba y se estima que es exitoso, es decir, “inteligente”

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:

Figura 4. AGENTE (Norvig & Russell)

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:

Figura 5. Mundo Espacial Cuadriculado

Considérese un robot en un espacio bidimensional cuadriculado, tal como se observa en la Figura 6. El


mundo de este robot está completamente limitado por una frontera y puede contener a su vez otros objetos
inmóviles de gran tamaño. El robot debe seguir la siguiente pauta de comportamiento: ir a una celda
fronteriza, o que limite con un objeto, y seguir su perímetro indefinidamente. Para poder mostrar esta pauta
de comportamiento, el robot debe ser capaz de “percibir” si una determinada celda está libre para ser
ocupada o no, y para ello debe llevar a cabo las acciones primitivas que correspondan. De esta forma,
podemos decir que nuestro robot dispone de ocho entradas sensoriales a las que asociaremos las variables
binarias S1, S2, S3 , S4 , S5, S6, S7 y S8. Estas variables tomarán el valor “0” siempre que la correspondiente
celda (relativa a la posición del robot) pueda ser ocupada, en otro caso, las variables tomarán el valor “1”.

Figura 6. Espacio Bidimensional Cuadriculado

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.

Figura 7. Componentes de Percepción y Acción

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

Figura 8. Características usadas por la tarea de seguimiento de bordes

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.

Elementos del álgebra booleana.


Los símbolos elementales son:
• 0: representativo de FALSO.
• 1: representativo de VERDADERO.
Las operaciones fundamentales son:
• Conjunción u operación AND (se representa con “.” o con el símbolo ^).
• Disyunción u operación OR (se representa con “+” o con el símbolo ˅).
• Complementación, Negación u operación NOT (se representa con una barra sobre la variable, por
ejemplo X ).
Las variables son las proposiciones, que se simbolizan por letras.

POSTULADOS:
Los postulados para las tres operaciones básicas, AND, OR y NOT, son suficientes para deducir cualquier
relación booleana.

COMPLEMENTO ADICIÓN MULTIPLICACIÓN

0 1 00  0 0 .0  0

1 0 0 1  1 0. 1  0

1 0  1 1 .0  0

1 1  1 1.1  1

Teoremas álgebra de Boole.


1. REGLA DEL CERO Y LA UNIDAD.

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.

Representación de funciones booleanas.


Se suele utilizar la forma negada o el complemento de la función. Para esto es que se niegan los literales y se

intercambian los AND y OR. Por ejemplo, el complemento de: X 1  X 2 . X 3 es X 1 X 2  X 3 

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.

Forma canónica de funciones booleanas.


La importancia de la forma canónica estriba en el hecho de ser única. Existen dos formas canónicas de una
función: Suma de Productos o Productos de Sumas.
Para obtener algebraicamente la forma canónica de una función podemos utilizar los teoremas de expansión
canónica:
Teorema 1: Para obtener la forma canónica de una función suma de productos se multiplicará por un
 
término de la forma X  X donde falte un literal para que el término sea canónico.

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.

Forma canónica suma de productos.


Es aquella constituida exclusivamente por términos canónicos productos (Mintérminos) sumados que
aparecen una sola vez, por ejemplo:

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.

Ejemplo 1. Exprese la siguiente función como una suma de mintérminos: F  X 1  X 2 . X 3

Forma 1. Se obtiene la tabla de verdad de la expresión y se toman los mintérminos:

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

Ejemplo 2. Exprese la siguiente función como un producto de maxtérmino: F  X 1  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 

Forma 2. Aplicando los teoremas de expansión canónica tenemos:

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

Forma normal de funciones booleanas.


Otra manera importante de expresar expresiones booleanas, es la forma normal. Tiene la misma estructura
básica suma productos o producto de sumas, pero no se requiere que los términos sean mintérminos o
maxtérmino, por ejemplo:
Una función booleana está en su Forma Normal Disyuntiva (FND) si se puede escribir como una disyunción
(suma) de términos. El siguiente es un ejemplo:

X 1. X 2  X 1 . X 2 . X 3

Toda función booleana puede ser escrita en FND.


La forma normal disyuntiva tiene su reciproco en la Forma Normal Conjuntiva (FNC). Se dice que una función
booleana está en FNC si puede ser expresada como una conjunción (producto) de cláusulas (suma de
literales o monomios). El siguiente es un ejemplo:

 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.

UNIDAD II: REDES. UNIDAD LÓGICA CON UMBRAL (ULU).


Se pueden construir programas que implementen funciones booleanas y sistemas de producción.
Alternativamente, los sistemas de producción se pueden implementar directamente por medio de circuitos
electrónicos. El circuito puede tener como entradas las propias señales sensoriales. Utilizando circuitos
lógicos, una función booleana se puede implementar mediante una red de puertas lógicas (AND, OR, XOR,
etc.). Un tipo común de circuito lo constituyen las redes formadas por elementos con umbral (o nivel de
disparo) o por algún otro tipo de elemento que aplique una función no lineal sobre una suma ponderada de
sus diferentes entradas que recibe de otras unidades iguales. Un ejemplo de este tipo de elemento lo
constituye la Unidad Lógica con Umbral (ULU), cuyo esquema se muestra en la Figura 9. Esta unidad realiza
una suma ponderada de las entradas (Xi), siendo las ponderaciones sus pesos (Wi), compara esta suma con
un umbral, y si lo supera, produce como salida un 1; en cualquier otro caso produce un 0.

Figura 9. Unidad Lógica con Umbral

17
n
f  1 si X i 1
i Wi  0

 0 en cualquier otro caso

Funciones booleanas linealmente separables.


Las funciones booleanas que pueden ser implementadas mediante una ULU se denominan funciones
linealmente separables (el nombre se debe a que una ULU separa el espacio de los vectores de entrada en
dos regiones – la de los vectores que quedan por encima del umbral y la de aquellos que quedan por debajo
– mediante una superficie lineal denominada hiperplano de n dimensiones), veamos el siguiente ejemplo:

Determine si la siguiente función booleana f es o no separable: f  X 1 . X 2 . X 1 . X 2

Empleando las Leyes de Morgan y simplificando tenemos:


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

Construimos la tabla de verdad:

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.

2. Se deduce que f es linealmente separable y por lo tanto


puede ser representada en una ULU.

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 .

Figura 10. Implementación de la función “f” para el seguimiento de bordes

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.

Redes Neuronales Biológicas.


Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas, organizadas
mediante una red compleja en la que las neuronas individuales pueden estar conectadas a varios miles de
neuronas distintas. Se calcula que una neurona del córtex cerebral recibe información, por término medio,
de unas 10.000 neuronas, y envía impulsos a varios cientos de ellas.

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.

Modelo de Neurona Artificial.


La neurona artificial es un elemento de procesamiento simple que trata de copiar el comportamiento de una
neurona biológica, en donde a partir de un vector de entradas produce una única salida. Actúa como un
dispositivo eléctrico que responde a señales eléctricas. La respuesta la produce el circuito activo o función de
transferencia que forma parte del cuerpo de la neurona. Las “dendritas” llevan las señales eléctricas al
cuerpo de la misma. Estas señales provienen de sensores o son salidas de neuronas vecinas. Las señales por
las dendritas pueden ser voltajes positivos o negativos; los voltajes positivos contribuyen a la excitación del
cuerpo y los voltajes negativos contribuyen a inhibir la respuesta de la neurona.
En la Figura 12 se presenta el esquema de una neurona artificial durante la etapa de aprendizaje. Una vez
establecidos los pesos definitivos de interconexión, la neurona adquiere su forma tradicional.

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.

Figura 13. Neurona Artificial multicapa y cuatro entradas

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 , , xn1 , la entrada xn1  1 ;
N+1 pesos w1 , w2 , , xn1  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.

Aplicación del Método de Retropropagación en el entrenamiento de una red de unidades sigmoidales.


NOTA: Notará que hay elementos que intervienen en el cálculo y que no han sido debidamente explicados.
Esto se debe a que forman parte del Método del Gradiente Descendente y su definición no forman parte de
los objetivos de este curso. Para lo cual lo invitamos a que consulte esta información en la web.

Sea la siguiente red:

Figura 14. Red de dos capas


___ ___
Se desea que a través de la red presentada, calcule la función de paridad par: f  X 1 X 2  X 1 X 2

____
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:

SUMA PONDERADA SALIDA: FUNCIÓN


3 SIGMOIDE
s   X i Wi
ENTRADA PESOS
1

f 1 1 / 1  e  s 
1 W1  2; W2   2; W3  0 s  2 X1  2 X 2  0 X 3  2  
f1 1 / 1  e 2  0,881
X 1 1; X 2  0; X 3 1
2 W1 1; W2  3; W3   1 s 1 X 1  3 X 2 1 X 3  0  
f 2 1 / 1  e 0  0,500

Cálculo de la salida, segunda capa:

SUMA PONDERADA SALIDA: FUNCIÓN


3 SIGMOIDE
s   X i Wi
ENTRADA PESOS
1

f 1 1 / 1  e  s 

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

Cálculo del error (δ):


Utilizamos la siguiente expresión para aplicar retropropagación desde la última capa:
 k   d  f . 1  f 
Como d=0:
 2   d  f . 1  f    f 2 . 1  f 
Como f = 0,655:
 2    0,148
Propagando hacia atrás a través de los pesos de la segunda capa, y empleando recurrencia tenemos:

  
m j 1
 j j 1  j 1
i  fi . 1  fi
j j
i Wi
i 1

Se obtiene:

11  f1 . 1  f1 W12   2 
  0,04655   0,047 en donde W1
2 
3

25

 21  f 2 . 1  f 2 W22   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 .11,953
1

W21   2  1  0,047 . 0   2
1

W31  0  1  0,047 .1  0,047


1

 1  1 0,074 .11,074
1
W12
 3  1 0,074 . 0  3
1
W22
  1  1 0,074 .1  0,926
1
W32

 3  1  0,148 . 0,881  2,870


2 
W1
  2  1  0,148 . 0,500   2,074
2 
W2
  1  1  0,148 .1  1,148
2 
W3
Observe que los pesos W21 y W22 no sufren ningún ajuste debido a que la entrada asociada es igual a cero (X20).
A continuación se presenta los valores de f, luego se realiza cinco iteraciones del método empleado, se
observa que el valor de f tiene a cero ya que ese es el valor deseado (d=0).

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.

Dentro de la familia de procedimientos de búsqueda cabe destacar las siguientes subdivisiones:


 Búsqueda Ciega (Búsquedas no informadas): No utiliza información sobre el problema. No existe
información acerca de los pasos necesarios o costos para pasar de un estado a otro. Normalmente,
se realiza una búsqueda exhaustiva. De la misma se desprenden dos estrategias a saber: Búsqueda
en amplitud y Búsqueda en profundidad.
 Búsqueda Heurísticas (Búsqueda informadas): Usan información sobre el problema como costos,
etc. se posee información muy valiosa para orientar la búsqueda para que esta sea lo más eficiente
posible.

UINIDAD III. BÚSQUEDA CIEGA.


 La búsqueda consiste escoger uno de los estados posibles conocidos (una de las opciones).
 Si hay varios estados que se pueden expandir, la elección de cual se expande primero se hace según
una estrategia de búsqueda.
 El proceso de búsqueda se concibe como la construcción de un árbol de búsqueda sobrepuesto al
espacio de estados.
 Las técnicas se diferencian en el orden en que expanden los nodos en el árbol de búsqueda.

Algoritmo general de búsqueda ciega.


Inicial árbol con el edo. inicial del problema

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.

Si son varias las soluciones, este tipo de


búsqueda permitirá siempre encontrar
primero el estado meta más próximo a la
raíz.

El tiempo y la cantidad de memoria


necesaria crece exponencialmente con
respecto a la profundidad. Se implementa
con una estructura FIFO.

28
 Búsqueda en profundidad:

La búsqueda se realiza 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.

Terminar la búsqueda por una dirección se


debe a no haber posibles operadores que
aplicar sobre el nodo hoja o por haber
alcanzado un nivel gran de profundidad.

Si esto ocurre se produce una vuelta atrás y


se sigue por otra rama hasta visitar todas
las ramas del árbol si es necesario.

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

1 El campesino lleva la cabra de izquierda a derecha

2 El campesino lleva la cabra de derecha a izquierda

3 El campesino va solo de izquierda a derecha

4 El campesino va solo de derecha a izquierda

5 El campesino lleva al lobo de izquierda a derecha

6 El campesino lleva al lobo de derecha a izquierda

7 El campesino lleva el repollo de izquierda a derecha

8 El campesino lleva el repollo de derecha a izquierda

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:

Ejemplo 2: Determinación del espacio de estados.


Problema de los relojes de arena. En el siguiente ejemplo se presenta una situación en donde deberán
definirse los estados y acciones a tomar, en el mismo se aplica una sucesión de acciones que conducen a la
solución en una forma muy particular. Suponga que tiene dos relojes de arena; el primero se vacía en 4
minutos y el segundo en 7 minutos. Se necesita medir un tiempo de 9 minutos, sin contar con otro medio
auxiliar. Sobre la base de esta información, defina los estados, las acciones y las condiciones de aplicación.

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.

ESTADO Nº ACCIÓN TIEMPO RESULTANTE (MINUTOS) TIEMPO RESULTANTE (MINUTOS)

(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.

Solución por Búsqueda en Anchura:

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.

UNIDAD IV. BÚSQUEDA HEURÍSTICA.


La búsqueda heurística tiene como objetivo el aumento de la eficiencia en el proceso de hallar el objetivo.
Existen problemas muy complejos para los cuales no es conveniente aplicar técnicas de búsqueda a ciegas. El
modo de operación cuando se aplica esta técnica tiene como objetivo reducir el espacio a explorar antes de
hallar una solución.
Elementos principales
 La lista ABIERTO contiene a los estados que han sido generados pero no explorados, lo que quiere
decir que hasta el momento no se saben si son estado final ni cuáles son sus estados sucesores (o
hijos) dentro del árbol d búsqueda.
 La lista CERRADO guarda todos los estados que ya se han visitado.

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

Anda mungkin juga menyukai