Perspectivas de la Inteligencia Artificial
Perspectivas de la Inteligencia Artificial
Artificial
Perspectivas y
Realizaciones
ZA V{ÉÖâx TáÑ|téâ
La Paz, Bolivia
Diciembre de 2002
INTELIGENCIA
ARTIFICIAL
Perspectivas y Realizaciones
Durante mucho tiempo he conocido de cerca muchas personas que incrédulas contemplaban
como la inteligencia artificial comenzaba a crecer apoderándose de los principales titulares en
seminarios, conferencias, encuentros profesionales y congresos sobre ciencias de la computación
en muchos lugares del orbe.
Para clasificar las maquinas como pensantes, es necesario definir inteligencia. El problema que
aparenta ser simple es uno de los más complejos del área, en el entendido que la inteligencia
puede representar, por ejemplo, la solución adecuada de problemas complejos o a establecer
generalizaciones y relaciones entre objetos. ¿Qué se podría decir acerca de la percepción y la
comprensión? ¿Dónde podrá situarse las formas de adquisición del conocimiento? y, si el pensar
es un acto natural concomitante con la naturaleza ¿Cuáles son las herramientas que se necesitan
para simular un comportamiento natural del pensar humano?
El texto está compuesto por siete capítulos: el capitulo uno hace referencia a los fundamentos
sobre los cuales se edifica la inteligencia artificial, el segundo capítulo hace referencia a la
representación del conocimiento, el tercer capítulo toma como elemento fundamental el estudio
de las lógicas como elementos para la representación del conocimiento, específicamente se
considera a la lógica difusa, el capítulo cuatro se refiere al primer paradigma biológico que se
aborda, el estudio de las redes neuronales artificiales, el capítulo cinco toma como elemento
central a los algoritmos genéticos, el capítulo seis está referido a la vida artificial y el capítulo
siete considera a la realidad virtual.
Con muchas mejoras y la revisión siempre acertada de mi amigo y hermano artificial Carlos
Collazos, quiero presentar esta pequeña aventura intelectual y literaria que se ha subtitulado
como perspectivas y realizaciones porque rescata lo esencial y básico de las diferentes áreas de la
inteligencia artificial, y además, porque propone una perspectiva futura al intentar utilizar estos
paradigmas en la solución de los problemas que aquejan a la sociedad y que requieren de manera
apresurada de nuevas propuestas que puedan ser útiles para lograr la satisfacción de algunas
demandas insatisfechas.
AGRADECIMIENTOS
Una de las grandes emociones que me tocó vivir fue la de salir campeones en la practica del
fútbol, en los diferentes campeonatos barriales en estos últimos quince años. Por analogía acaba
de terminarse esta aventura, el texto está escrito, las imágenes están hechas, las anteriores
versiones han sido revisadas, se ha revisado también la composición final y ya está preparada
para su paso final, para dar su vuelta de popularidad alrededor de las innumerables canchas que le
tocará visitar.
Cuando converse con el Decano de la Facultad de Ciencias Puras y Naturales, Msc. Ing. Rolando
Campuzano Arzabe, no dubitó un momento en ofrecer los servicios del Centro de Publicaciones
de la Facultad para que este texto se replique y en este momento se encuentre en sus manos. En
este entendido agradezco al Msc. Ing. Campuzano por su colaboración y al personal del Centro
de Publicaciones por todas las atenciones.
La Paz, Bolivia.
Diciembre de 2002.
G.I.C.A.
Síntesis del Contenido
Pág.
1. Fundamentos
1.1. Inteligencia 1
1.2. Inteligencia Artificial 2
1.3. Evaluación Persona-Computadora 3
1.4. Ciencia Cognitiva 4
1.5. Áreas de Investigación 4
3. Lógica Difusa
3.1. Introducción 26
3.2. Definición 26
3.3. Teoría de Conjuntos Difusos 27
3.4. Características Esenciales 31
3.5. Diferencias respecto a Sistemas Tradicionales 32
3.6. Teoría de la Posibilidad 33
3.7. Semántica con Resultados de Ensayo 34
3.8. Aplicaciones 36
5. Algoritmos Genéticos
5.1. Fundamentos 66
5.2. Teoría de la Evolución 67
5.3. Comparación con lo convencional 69
5.4. Algoritmo Genético Simple 69
5.5. Procedimiento General 72
5.6. Algoritmo Genético con Objetos de Tamaño Fijo 73
5.7. Algoritmo Genético General 76
5.8. Problema del Agente Viajero 77
5.9. Programación Genética 79
5.10. Aplicaciones 83
6. Vida Artificial
6.1. Introducción 87
6.2. Vida Artificial 87
6.3. Características de los Modelos de Vida Artificial 91
6.4. Mecánica de la Vida 92
6.5. Aplicaciones 94
7. Realidad Virtual
7.1. Introducción 97
7.2. Historia 98
7.3. Comunicación Hombre-Maquina 98
7.4. Espacio de la Realidad Virtual 99
7.5. Definición 99
7.6. Dispositivos 99
7.7. Clasificación 100
7.8. Aplicaciones 102
Contenido
Pág.
1. Fundamentos
1.1. Inteligencia 1
1.2. Inteligencia Artificial 2
1.2.1. Raíces 2
1.2.2. Metodologías 2
1.2.3. Objetivos 3
1.3. Evaluación Persona-Computadora 3
1.3.1. Capacidades de las Computadoras 3
1.3.2. Capacidades de las Personas 3
1.3.3. Actitudes Esenciales de la Inteligencia 3
1.4. Ciencia Cognitiva 4
1.5. Áreas de Investigación 4
1.5.1. Sistemas Expertos 4
1.5.2. Procesamiento del Lenguaje Natural 6
1.5.3. Reconocimiento del Habla 6
1.5.4. Visión por Computadora 7
1.5.5. Robótica 7
1.5.6. Otras Áreas 8
Ejercicios # 1 9
Bibliografía 10
3. Lógica Difusa
3.1. Introducción 26
3.2. Definición 26
3.3. Teoría de Conjuntos Difusos 27
3.3.1. Conjuntos Clásicos 27
3.3.2. Conjuntos Difusos 28
3.3.3. Función de Pertenencia 29
3.4. Características Esenciales 31
3.5. Diferencias respecto a Sistemas Tradicionales 32
3.5.1. Valores de Verdad 32
3.5.2. Predicados 32
3.5.3. Modificadores de Predicados 32
3.5.4. Cuantificadores 32
3.5.5. Probabilidades 32
3.5.6. Posibilidades 33
3.6. Teoría de la Posibilidad 33
3.7. Semántica con Resultados de Ensayo 34
3.8. Aplicaciones 36
3.8.1. Área de Control 36
3.8.2. Área de Inteligencia Artificial 36
Ejercicios # 3 37
Bibliografía 37
6. Vida Artificial
6.1. Introducción 87
6.2. Vida Artificial 87
6.2.1. Evolución del Área 88
6.2.2. Intereses del Área 89
6.2.3. Herramientas del Área 90
6.3. Características de los Modelos de Vida Artificial 91
6.3.1. Algunos Modelos Representativos 91
6.4. Mecánica de la Vida 92
6.4.1. Reproducción Propia 93
6.4.2. Comportamiento Emergente 93
6.4.3. Metabolismo y Adaptabilidad 94
6.4.4. Evolución 94
6.5. Aplicaciones 94
Ejercicios # 6 95
Bibliografía 96
7. Realidad Virtual
7.1. Introducción 97
7.2. Historia 98
7.3. Comunicación Hombre-Maquina 98
7.4. Espacio de la Realidad Virtual 99
7.5. Definición 99
7.6. Dispositivos 99
7.7. Clasificación 100
7.7.1. Sistemas de Ventana 100
7.7.2. Sistemas de Mapeo por Vídeo 101
7.7.3. Sistemas Inmersivos 101
7.7.4. Sistemas de Telepresencia 102
7.7.5. Sistemas de Realidad Mixta 102
7.7.6. Sistemas de Pecera 102
7.8. Aplicaciones 102
Ejercicios # 7 104
Bibliografía 104
1.1. INTELIGENCIA
Una de las formas mas aceptadas para explicar la inteligencia, desde el punto de vista
computacional, constituye la prueba de Alan Turing elaborada en 1950. La idea de la prueba de
Turing es que si un interrogador decide erróneamente que una máquina es una persona, entonces
se dice que dicha máquina exhibe inteligencia.
Página: 1
1.2. INTELIGENCIA ARTIFICIAL
Resulta obvió que la inteligencia es de por sí un concepto bastante complicado de definir. Por
esta razón intentar definiciones para la inteligencia artificial es también compleja.
Quizá la inteligencia artificial debería llamarse inteligencia sintética para que concuerde mejor
con el lenguaje comercial. Así los diamantes artificiales son falsas imitaciones, mientras que los
diamantes sintéticos son diamantes auténticos, sólo que manufacturados en lugar de
desenterrados. No obstante el nombre, la inteligencia artificial aspira a una inteligencia auténtica,
no a una falsa imitación.
1.2.1. Raíces
1.2.2. Metodologías
Las suposiciones metodológicas bajo las cuales puede ser categorizada la investigación en la
inteligencia artificial son: métodos formales y programas de escritura. En la IA, como en otros
campos, es importante contar con modelos formales. Una variedad de maquinaria formal ha
probado ser útil en la IA, incluyendo lógica de primer orden1 y otras lógicas, sistemas para la
semántica formal2, y los trabajos sobre matemáticas y gramáticas. Sin embargo en la inteligencia
artificial no es suficiente probar las cosas de manera formal, la construcción de programas activos
para su ejecución es también bastante importante. Usualmente los sistemas de inteligencia
artificial son implementados en lenguajes simbólicos especializados tales como LISP, PROLOG,
sistemas de producción, o lenguajes de representación de conocimiento.
1
Fisrt Order Logic (F.O.L.).
2
Tales como la semántica de Montague, semántica situacional, semántica procedimental y semántica denotacional.
Página: 2
Frecuentemente la línea entre las dos metodologías no es clara y muchos de los mejores trabajos
sobre inteligencia artificial involucran una mezcla juiciosa de modelos formales y sistemas
implementados.
1.2.3. Objetivos
Una computadora estándar cualquiera, normalmente tiene las siguientes tres capacidades que la
identifican de los seres humanos:
a) Cálculo numérico.
b) Almacenamiento de Información.
c) Operaciones repetitivas.
Una persona en promedio cuenta con las siguientes capacidades innatas que la diferencian de
manera abierta de las computadoras:
La inteligencia presenta las siguientes actitudes que son importantes para poder ser categorizada:
Página: 3
a) Responder de manera flexible a las situaciones.
b) Obtener el sentido de mensajes contradictorios o ambiguos.
c) Reconocer la importancia relativa de los diferentes elementos de una situación.
d) Encontrar semejanzas entre situaciones a pesar de las diferencias que puede haber entre
las mismas.
e) Extraer diferencias entre situaciones a pesar de las similitudes que puede haber entre las
mismas.
Se entiende por ciencia cognitiva a las ciencias que abordan conceptos tales como sensación,
emoción, pensamiento, deseo, etc. Es decir no solamente aquellos conceptos que tienen que ver
con el conocimiento sino también otros conceptos mentales. Las investigaciones cognitivas
presuponen que ese tipo de conceptos no se agotan en algo neurofisiológico, o bien que poco o
nada tiene que ver con lo neurofisiológico. De esta suerte esas investigaciones persiguen otros
métodos de búsqueda, a saber, el uso de modelos. Estos modelos se ven favorecidos con el uso
de lenguajes de computación y de allí la afinidad entre las ciencias cognitivas y la inteligencia
artificial.
La ciencia cognitiva construye teorías y prueba las mismas experimentando con los seres
humanos como sujetos, mientras que el investigador en inteligencia artificial construye y prueba
teorías implementando las mismas a manera de programas computacionales.
Son programas computacionales diseñados para actuar como expertos en un dominio particular
restringido3. Es importante debido a que trabaja con conocimiento en lugar del tradicional dato.
La investigación en representación de conocimiento es central para el avance de los sistemas
expertos. Los componentes básicos de un sistema experto son:
a) Base de Conocimiento. Es la representación el conocimiento del dominio para la solución
de problemas específicos, normalmente dicho conocimiento se estructura en forma
modular y declarativa.
b) Máquina de Inferencia. Es el procedimiento que se encarga de realizar el razonamiento a
partir de los datos y utilizando el conocimiento acumulado en la base de conocimiento. Es
genérica, es decir, se puede aplicar a diferentes dominios sólo cambiando la base de
conocimiento.
c) Memoria de Trabajo. Es el lugar donde se almacenan los datos de entrada y conclusiones
intermedias que se van generando durante el proceso de razonamiento.
3
Hace referencia al área de conocimiento de un experto, esta debe contener conocimiento altamente especializado.
Página: 4
d) Interfaz de Usuario. Se refiere a la entrada/salida al usuario del sistema, incluyendo,
normalmente, mecanismos de pregunta (porqué) y de explicación (cómo).
e) Interfaz de Adquisición. Hace referencia a la interface para la adquisición del
conocimiento del dominio, puede incluir mecanismos para facilitar su adquisición y
depuramiento interactivo y para automatizar la adquisición (aprendizaje).
Los Sistemas Expertos son uno de los puntos que componen las investigaciones en el campo de la
IA. Un sistema de ordenadores que trabaje con técnicas de IA deberá estar en situación de
combinar información de forma "inteligente", alcanzar conclusiones y justificarlas. Los Sistemas
Expertos son una expresión de los sistemas basados en el conocimiento4. Con la aplicación de
técnicas de Inteligencia Artificial finaliza la transición del procesamiento de datos al
procesamiento de conocimientos.
Los sistemas expertos se aplican por norma general en problemas que implican un procedimiento
basado en el conocimiento. Un procedimiento de solución basado en el conocimiento comprende
las siguientes capacidades:
Debido a la gran capacidad de almacenamiento de las computadoras, los sistemas expertos tienen
el potencial de interpretar estadísticas, para interpretar el formalismo de representación conocido
como reglas de producción. Un sistema experto trabaja de manera parecida a un detective
encargado de resolver un misterio. Utilizando la información, y un formalismo de representación
de conocimiento, un sistema experto puede resolver el problema que se le plantee. Por ejemplo
un sistema experto diseñado para distinguir aves puede tener la siguiente configuración:
Si ¿Grande? No
No ¿Vuela? Si No ¿Vuela? Si
Pingüino Avestruz
Si ¿Multicolor? No Si ¿Cresta?
Loro
Si ¿Pico largo? Si ¿Calvo? No
Picaflor Águila Buitre
4
La representación del conocimiento y los sistemas basados en conocimiento se discuten en el capitulo 2.
Página: 5
1.5.2. Procesamiento del Lenguaje Natural
El Procesamiento del Lenguaje Natural (PLN) es una parte esencial de la IA que investiga y
formula mecanismos computacionalmente efectivos que faciliten la interrelación hombre-
máquina y permitan una comunicación mucho más fluida y menos rígida que los lenguajes
formales. Todo sistema de PLN intenta simular un comportamiento lingüístico humano; para ello
debe tomar conciencia tanto de las estructuras propias del lenguaje, como del conocimiento
general acerca del universo de discurso. De esta forma, una persona que participa en un diálogo
sabe cómo combinar las palabras para formar una oración, conoce los significados de las mismas,
sabe cómo éstos afectan al significado global de la oración y posee un conocimiento del mundo
en general que le permite participar en la conversación.
a) Hace esta comunicación más rápida, y más agradable para los nuevos usuarios, ya que al
ser la forma natural de comunicarse no se necesita ninguna habilidad especial.
b) Permite tener las manos libres para utilizarlas en alguna otra actividad, a la vez que se van
dando ordenes por medio de la voz.
c) Permite movilidad, ya que la voz se puede enviar a distancia y ser recogida por un
micrófono, por oposición a un teclado que no se puede mover de la mesa de trabajo.
d) Permite acceso remoto, al poder acceder a un ordenador usando la red telefónica, que es la
red de comunicaciones más extendida.
e) Permite la disminución del tamaño de los paneles de control. Piense en el panel de un
avión, cuantos conmutadores manuales podrían suprimirse si se utilizara la voz como
forma de comunicación con un sistema de control
5
Hace referencia al lenguaje natural.
Página: 6
Esta área de investigación permite que los ordenadores entiendan el habla humana, de tal manera
que se puedan oír voces y reconocer palabras habladas, simplificando el proceso de
comunicación interactiva hombre - maquina. Incrementa el método interactivo de comunicación
primaria utilizada por las personas, el habla.
El término Visión por Computadora (VC) dentro del campo de la Inteligencia Artificial puede
considerarse como el conjunto de todas aquellas técnicas y modelos que permiten el
procesamiento, análisis y explicación de cualquier tipo de información espacial obtenida a través
de imágenes digitales. Desde sus inicios la VC ha inspirado sus desarrollos en el estudio del
sistema visual humano el cual sugiere la existencia de diferentes tipos de tratamiento de la
información visual dependiendo de metas u objetivos específicos, es decir, la información visual
percibida es procesada en distintas formas con base en las características particulares de la tarea a
realizar, por lo que la VC propone varias técnicas que permiten obtener una representación del
mundo a partir del análisis de imágenes obtenidas desde cámaras de video.
Debido a que la información visual es una de las principales fuentes de datos del mundo real,
resulta útil el proveer a una computadora digital del sentido de la vista (a partir de imágenes
tomadas con cámaras digitales o analógicas), que junto con otros mecanismos como el
aprendizaje hagan de esta una herramienta capaz de detectar y ubicar objetos en el mundo real.
Por consiguiente la investigación en visión por ordenador tiene como objetivo dotar a las
computadoras con la herramienta de visualización para el entendimiento y comprensión del
entorno que la computadora está observando.
1.5.5. Robótica
Cuando se escucha la palabra Robot, algunas ocasiones se piensa de manera directa en esas
películas que han sorprendido por presentar Robots que realizan acciones superiores a las
capacidades del ser humano. Los modelos más famosos de robots han sido los creados por
George Lucas en su película Star Wars a quienes se conoce como C3PO y R2D2.
Página: 7
Fig. 1.4. Robots famosos
Un resumen general de lo que constituye un robot industrial puede ser considerado sobre la base
de los siguientes puntos:
a) Un robot industrial es una máquina programable de propósito general que posee ciertas
características antropomórficas.
b) El componente principal lo constituye el manipulador, el cual consta de varias
articulaciones y sus elementos.
c) Las partes que conforman el manipulador reciben los nombres de cuerpo, brazo, muñeca y
efector final o gripper. Otros elementos son el controlador, los mecanismos de entrada y
salida de datos y los dispositivos especiales.
d) Existen dos categorías de efectores finales (grippers): las pinzas y las herramientas. Las
pinzas pueden ser de tipo pivotante o de movimiento lineal entre otras. Entre las
herramientas se tiene a los desarmadores y las pistolas para soldar.
e) Los movimientos de un robot están relacionados con los grados de libertad que posea. Un
grado de libertad es un número o tipo de movimiento del manipulador. Los grados de
libertad se determinan por los movimientos que ejecutan el brazo y la muñeca del robot
que pueden ser de uno a tres cada uno.
La investigación en esta área tiende al estudio de las capacidades de los robots de poder insertarse
en la sociedad a manera de seres mecánicos capaces de controlar y resolver los problemas
discretos y mecanizados de su entorno.
Otras áreas significativas para su estudio al interior de la inteligencia artificial son: las lógicas no
clásicas como la Lógica Difusa, las Redes Neuronales, los Algoritmos Genéticos, la Realidad
Virtual, la Vida Artificial, los Agentes Inteligentes, etc. Estas áreas pueden ser visualizadas en la
Fig. 1.5.
Página: 8
Fig. 1.5. Áreas de la Inteligencia Artificial
En el resto del texto la visión que se intenta brindar es la comprensión, análisis y aplicación de
estas áreas de la inteligencia artificial. No es intención revisar a detalle cada una de estas áreas,
sin embargo es menester reconocer la importancia que han cobrado en esta última década de
investigación en la inteligencia artificial. La mayor de las expectativas es compartir los
principios y fundamentos básicos que proporcionan la importancia natural a estas áreas, tan
trilladas y comentadas en este ultimo tiempo.
Ejercicios #1
1. Desarrolle la hipótesis del Sistema de Símbolos Físicos que dice: “Un sistema de símbolos
físicos tiene los medios suficientes y necesarios para la acción inteligente”.
2. Escriba, de manera sucinta, las biografías de los padres de la inteligencia artificial, debe
incluir entre otros a: Marvin Minsky, John McCarthy, Claude Shannon , Nataniel Rochester,
Allen Newell y Herbert Simon.
3. Lea el artículo original6 de Alan Turing sobre la IA. En este articulo Turing predijo que para
el año 200 es probable que una computadora tenga 30% de oportunidad de aprobar una
prueba de Turing con duración de cinco minutos aplicada por un evaluador inexperto.
¿Considera razonable lo anterior?
4. Son bien conocidos ciertos tipos de problemas inmanejables por las computadoras, así como
otros que probablemente evidencian que ninguna computadora puede tomar decisiones.
¿Significa esto entonces que la IA es un imposible?.
5. Algunos consideran que la percepción y las habilidades motoras son la parte más importante
de la inteligencia y que las capacidades de “alto nivel” son más bien parásitas (meros
agregados a las capacidades básicas). Es un hecho que la mayor parte de la evolución y del
cerebro se han concentrado en la percepción y las habilidades motoras, en tanto se ha
encontrado que en la IA tareas como juegos e inferencia lógica resultan más sencillas, en
muchos sentidos, que percibir y actuar en el mundo real. ¿Consideraría usted que ha sido un
error la concentración tradicional de la IA en las capacidades cognoscitivas de alto nivel?.
6
Turing, A.M. Computing machinery and intelligence. Mind, 59: 433-460. 1950.
Página: 9
Bibliografía
Referencias Electrónicas
Página: 10
12. [Link] ¿Qué es la Inteligencia
Artificial (AI)?
13. [Link] Research Group on Artificial Intelligence
Página: 11
2 REPRESENTACION DE CONOCIMIENTO
2.1. INTRODUCCION
Los ingredientes básicos para la representación del conocimiento son tres: el primero está
referido a un lenguaje de representación, el segundo a la capacidad de inferencia de la
representación y el tercero al conocimiento del dominio.
En general una representación debe de tener dos capacidades: por un lado una expresividad
adecuada y por otro una eficiencia de razonamiento. La expresividad y el razonamiento le
confieren al formalismo la capacidad adecuada para ser considerado como una alternativa útil
para la representación.
Se establece, a priori la definición de los formalismos, que los criterios para juzgar una
representación adecuada son tres: lo primero que hay que observar es la capacidad lógica,
referida a que el formalismo sea capaz de expresar el conocimiento que se desea expresar; lo
segundo es el poderío heurístico, que se refiere a la capacidad para resolver problemas utilizando
inferencias; finalmente el tercer criterio es la conveniencia de la notación, que significa la
simplicidad para acceder al conocimiento y la facilidad de su entendimiento.
2.2. DEFINICIÓN
En su etimología la palabra representación viene del latín “Repraesentare” que significa: hacer
aparecer como presente. Por otro lado la palabra Conocimiento deriva de la palabra latina
“Gnosco” que significa: aquello que ha sido sujeto al acto de reconocimiento. Si se combinan
ambos significados se tiene que: “la representación de conocimiento es hacer que aparezca como
presente lo que ha sido sujeto al acto de reconocimiento”.
Otra definición sostiene que la representación de conocimiento puede ser algo como la
correspondencia de reglas conocidas y el estado del mundo en alguna estructura apropiada.
Página: 12
2.2.2. Vista Holística
Esta vista corresponde al holismo que dice, él todo es más que la suma de sus partes7. Así la
representación de conocimiento es más que solo la conjunción de los conceptos de conocimiento
y representación.
Mundo W
Conocimiento
Parte
K(L)
Selección Lenguaje
Combinación Representación
Refino L
Modelo de Conocimiento
Descripción Cognición
D K(D, W)
Ejemplo:
Considere a una persona X preguntarse ¿por qué un yate anclado en un puerto no se encauza por
efecto del viento?. X primero observa el yate y toma notas acerca de su forma (fase a); luego X
construye un modelo a escala en una pieza de madera (fase b); en tercer lugar examina el modelo
en un cubo lleno de agua y lo refina hasta que el mismo se comporte como el yate del puerto
(fase c). Finalmente X entiende que una quilla grande es crucial para los movimientos del yate.
7
Según Aristóteles 384-322 a. C.
Página: 13
b) Modelo Lógico Matemático
Conocimiento
K(D, W)
Ejemplo:
Considere la teoría de cómo el yate se comporta en el agua. Un teorema de esta teoría puede ser
expresado de manera muy informal como: “un yate estable tiene una quilla grande”. Una
realización de la teoría son yates de madera con grandes quillas de hierro.
Página: 14
2.3. EVOLUCION DE LOS SISTEMAS BASADOS EN CONOCIMIENTO
2.3.1. Dato
El concepto de dato es, por supuesto, el concepto central en la ciencia de las computadoras. Dicha
afirmación es evidente en la siguiente definición proporcionada por Eriksen, Helms y Romer en
1975: “Los datos constituyen una representación formalizada de hechos o ideas en forma tal que
puedan ser comunicados o transformados mediante un proceso”.
PROGRAMA ARCHIVO
Ejemplo:
Programa convencional para la emisión de una planilla de pagos.
Programa Archivo
Método de búsqueda Identificación de empleados
Método de clasificación Numero de horas trabajadas
Reglas de cálculo del total ganado Beneficios
DESCRIPTORES
BD
11
Corresponde al Data Base Management System (DBMS).
Página: 15
DBMS proporciona facilidades a los usuarios12 relativos a la operación sobre los archivos.
Alguna de las operaciones son: adicionar y remover archivos, insertar, recuperar, actualizar y
eliminar datos de los archivos existentes.
Mas aún el DBMS forma el control y cuidado del mantenimiento de la integridad de la BD. El
sistema de BD es una entidad general que puede ser utilizado por muchos usuarios programas en
diferentes conexiones.
Ejemplo:
Programa convencional para la emisión de una planilla de pagos.
Programa DBMS Base de Datos
Cálculo de total ganado Método de búsqueda Identificación empleado
Uso del DBMS Método de clasificación Numero de horas trabajadas
Método de actualización Beneficios
Un Sistema Basado en Conocimiento (SBC) puede ser visto como la evolución de un sistema de
BD. En muchos casos incluye un sistema de BD, e involucra una maquina de inferencias que
opera sobre la base de conocimiento interactuando con el sistema de BD.
MAQUINA
PROGRAMA DBMS BASE DE DATOS
INFERENCIAL
BASE DE DESCRIPTORES
CONOCIMIENTO BD
Ejemplo:
Programa convencional para la emisión de una planilla de pagos.
Programa Máquina Base de DBMS Base de Datos
Inferencial Conocimiento
Dialogo Control de la BC y Reglas para el cálculo Método de Identificación
del DBMS del total ganado búsqueda empleado
Método de Beneficios
clasificación
Método de
actualización
12
En este caso incluso puede ser un programa.
Página: 16
Un sistema de inteligencia artificial necesita distintos tipos de conocimiento para comportarse
inteligentemente o de modo experto. Algunos tipos son:
a) Conocimiento de Objetos: donde se guardan los hechos relacionados con objetos (saber
que...).
b) Conocimiento de acciones y sucesos: donde se guardan los hechos sobre los sucesos
ocurridos (saber que...).
c) Conocimiento sobre prestaciones: donde se guardan habilidades como montar una
bicicleta, nadar, jugar fútbol, etc. (saber como...).
d) Meta conocimiento: saber sobre lo que se sabe, como ejemplo conocer las limitaciones de
nuestro conocimiento.
La red semántica fue introducida por Quillian en 1966, básicamente es un modelo de memoria
humana que se encarga de capturar la semántica de las palabras y lograr uso del significado de
manera parecida a los seres humanos. Se llama red semántica porque se utilizó originalmente
para representar el sentido en las expresiones escritas en lenguaje natural.
Desde la perspectiva de la teoría de grafos se dice que una red semántica es un grafo compuesto
por nodos y arcos. Los nodos representan conceptos de palabras y los arcos se encargan de
enlazar los conceptos para establecer las definiciones. Cada palabra o nodo conceptual se
considera la cabeza de un plano que contiene su definición. Los enlaces en el plano representan
su definición.
Ejemplo 1:
Relación semántica simple que representa “Piolín es un ave”.
es un es un tiene
Piolín Canario Ave Alas
13
El enlace más notable entre clases es el enlace: es-un (IS-A). A través de este enlace se establecen también
relaciones jerárquicas y herencia.
Página: 17
Ejemplo 2:
Relación semántica para representar la relación entre una silla y su propietario.
MUEBLE
es un
es parte de
PERSONA SILLA ASIENTO
es una es una
dueño color
EDDY SILLA_1 CAFE
Las redes semánticas también son denominadas redes asociativas, debido principalmente al
carácter asociativo de los enlaces14.
2.4.2. Armazones15
En pocas palabras se puede decir que un armazón es una estructura de datos que se encarga de
representar situaciones prototípicas. Una de las ideas intuitivas detrás de los armazones, es que la
memoria se basa mucho en estereotipos16. Los sistemas de armazones razonan acerca de clases de
objetos utilizando representaciones prototípicas, estas pueden modificarse para capturar las
complejidades del mundo real.
Los armazones son grandes trozos de información que hacen énfasis en el razonamiento por
omisión (default). Constan básicamente de una estructura de datos, con la característica principal
de que esta estructura puede incluir información declarativa y procedimental. Un armazón
consta de un conjunto de ranuras que describen el aspecto de los objetos. Estas ranuras se llenan
mediante otros armazones que describen otros objetos. Asociado con cada ranura puede existir
un conjunto de condiciones que deben cumplir las entidades que vayan a llenarla. Cada ranura
puede también llenarse con un valor por defecto, de forma que, en ausencia de información
especifica, pueda suponerse que las cosas sean lo que usualmente son. Puede también asociarse
información procedimental con cada ranura.
Los armazones están puestos en una jerarquía en donde los armazones de “abajo” pueden heredar
los valores de las ranuras de los armazones de “arriba”. Normalmente la herencia se hace por
medio de los arcos es-un (is-a).
14
Conocidas también como relaciones o asociaciones.
15
En el lenguaje ingles corresponde a la palabra "frame", en algunos textos está traducido como marco, la traducción
correcta nombrada por Frost corresponde a "Armadura" o "Armazón".
16
En este caso hace referencia a las propiedades típicas de los objetos.
Página: 18
Ejemplo 1:
Especificar el armazón para representar a un camión.
(Camión: Armazón:
(nombre camión)
(es-un objeto)
(color rojo)
(llantas 10) ...)
Ejemplo 2:
Especificar el armazón para describir la silla de Eddy
Armazón: SILLA
Especialización de MUEBLE
Numero de patas un entero (por omisión 4)
Tipo de forro tela, cuero, etc.
Numero de brazos 0, 1 o 2
Nota:
En el armazón persona se puede adicionar una ranura denominada fecha de nacimiento y un
procedimiento que permita calcular la edad actual de la persona. Aquí se puede notar una
diferencia sustancial de los armazones, la posibilidad de manejar conocimiento procedimental.
Las reglas de producción se asemejan al proceso de memoria humano: memoria a corto plazo
(deducciones intermedias) y memoria a largo plazo (producciones). Normalmente las reglas de
producción se ven como un formalismo en el cual se representa el conocimiento de manera
simple y es el formalismo más utilizado en los sistemas expertos.
Página: 19
más simples, con un antecedente y un consecuente, hasta las más complejas de múltiples
antecedentes y múltiples consecuentes. A cada regla de producción puede añadirse un factor de
certeza probabilístico tanto al antecedente como al consecuente.
De manera general para representar una regla de producción se utiliza una tripleta: (objeto
atributo valor). De modo formal las reglas se colocan como: P1, P2, ..., Pm Æ Q1, ..., Qn, que
significa: si las condiciones P1 y P2 y ... y Pm se cumplen entonces se realiza las acciones Q1 y ...
y Qn.
Ejemplo No 1:
IF: ($AND (SAME CNTXT INFECT PRIMARY_BACTEREMIA)
(MEMBF CNTXT SITE STERILESITES)
(SAME CNTXT PORTAL GI))
THEN: (CONCLUDE CNTXT INDENT BACTEROIDES TALLY.7)
Página: 20
Ejemplo 2:
SI Animal es-un carnívoro Y Animal color café Y Animal tiene rayas
ENTONCES Animal es tigre
Ejemplo No 3:
SI un empleado divulga proyectos secretos.
ENTONCES él viola la política de la compañía
Ejemplo No 4:
SI un estudiante no lee mucho (.80)
ENTONCES corre el peligro de quedar desactualizado (.95)
En este ejemplo puede observarse los factores de certeza probabilísticos en la suposición y en la
conclusión.
Como principio de la explicación se indica que Ronald J. Brachmann identifica cuatro niveles
diferentes en los que se utilizan las redes semánticas:
a) El nivel de implementación, en el cual las redes son vistas como estructuras de datos, con
punteros y listas como primitivas.
b) El nivel lógico, en el cual los operadores lógicos y predicados son primitivas, llevando a
la red semántica como una variante notacional de alguna lógica.
c) El nivel conceptual que enfoca sobre relaciones conceptuales y semánticas, las primitivas
en este nivel son, por ejemplo, las relaciones de casos y acciones primitivas y objetos17.
d) El nivel lingüístico, en el cual las palabras arbitrarias y las expresiones son utilizadas
como primitivas, las cuales son por tanto grandemente dependientes del lenguaje.
Además Brachman argumenta que un nivel importante no es considerado en los anteriores cuatro
niveles es el nivel epistemológico18. El nivel epistemológico es una capa intermedia entre el
nivel lógico y conceptual. En este nivel son formadas e interrelacionadas descripciones
intencionales. El formalismo denominado red de herencia estructural se encarga de capturar el
nivel epistemológico utilizando un conjunto pequeño de primitivas epistemológicas.
Los principales bloques de construcción de este formalismo son los conceptos. Los conceptos son
descritos por superconceptos, por roles, que son posibles relaciones a otros conceptos, y por
descripciones estructurales, que se encargan de contar las relaciones entre roles.
17
En este nivel conocidos como grafos de dependencia conceptual.
18
Hace referencia a lo estructural o descripcional.
Página: 21
b) Conceptos primitivos: parcialmente determinados por su descripción.
c) Clase natural: que no puede ser descrita de forma exhaustiva, por ejemplo las especies de
animales.
Ejemplo:
Taxonomía simple de conceptos
COSA
ANIMAL ANIMAL
HUMANO
MASCULINO FEMENINO
MARY MUJER
La primera implementación de las redes de herencia estructural fue KLONE19, que evolucionó
con el paso de los años y ha provocado esfuerzos de investigación substanciales en la forma de
aplicaciones, trabajo teórico y el desarrollo de sistemas similares, documentados en muchos
eventos y reuniones.
KL-ONE ha logrado un estatus afrontado a los pocos esfuerzos en la breve historia de la IA, en
un periodo significativo de tiempo (al menos seis años) y sobre un numero de proyectos, ha
servido como el fundamento central para mucha de la investigación básica sobre la
representación del conocimiento, y al mismo tiempo ha proporcionado soporte para la
representación en un numero grande de sistemas implementados de IA.
19
Esta denominación original sufrió una variación para denominarse KL-ONE.
Página: 22
KL-ONE distingue entre conocimiento terminológico y conocimiento asercional. El nivel
terminológico tiene que ver con un conjunto de descripciones intencionales normadas por un
pequeño conjunto de operadores formadores de conceptos y sus relaciones taxonómicas, las
cuales están determinadas por sus propiedades estructurales. Esas relaciones taxonómicas no
tienen importancia asercional pero pueden utilizarse las descripciones para hacer aserciones
acerca del mundo, y por virtud de su estructura pueden realizar inferencias adicionales.
Mientras que el TBOX está muy bien definido, el tratamiento del ABOX en el KL-ONE ha sido
superficial y fortuito.
2.4.6. Guiones20
Un guión es una forma de representar una situación prototípica21, pero en lugar de tener una
descripción de un objeto, el guión describe una secuencia de eventos. A diferencia del armazón,
se presenta en un contexto particular. Para describir una secuencia de eventos, el guión utiliza un
conjunto de ranuras que contienen información acerca de gente, objetos y acciones involucradas
en los eventos.
Un guión es una estructura utilizada para guardar prototipos de secuencias de sucesos. Se pueden
emplear muchos componentes diferentes para construir un guión. Algunos de los más comunes
son:
a) Condiciones de Entrada: Condiciones que deben existir para que el libreto se pueda
aplicar.
b) Resultados: Condiciones que serán verdaderas después de que hayan ocurrido los eventos
en el guión.
c) Utilería: Ranuras que representan objetos involucrados en el guión.
d) Papeles: Ranuras que representan agentes que realizan acciones en el guión.
e) Escenas: Secuencias especificas de eventos que hacen al guión.
Ejemplo:
Guión que representa el viaje a un estadio de fútbol.
20
Traducción de la palabra inglesa Script.
21
En algún sentido parecido a los armazones.
Página: 23
Guión : Viaje al estadio
Utilería: Escena 1. ARRANQUE
Automóvil Dueño busca llaves
Llaves Dueño abre puerta automóvil
Puerta automóvil Dueño arranca automóvil
Espacio de parqueo Dueño pone automóvil en marcha
Papeles: (Roles) Escena 2. CONDUCCION
Dueño (propietario) Dueño encuentra transito libre
Acomodador Vehículos (Valet) Dueño ingresa al trafico
Dueño se dirige al estadio
Condiciones de ingreso: Escena 3. CONTACTO CON ACOMODADOR
Dueño y automóvil Dueño buscar primer espacio libre
en punto de partida Dueño parquea automóvil
Dueño sale del automóvil
Dueño encarga al acomodador
RESULTADO: Propietario en el estadio y automóvil parqueado
Ejercicios #2
1. Establecer un modelo conjunto que utilice los dos modelos holísticos observados en este
capítulo.
2. Desarrolle un método para representar conocimiento con redes semánticas a partir de los
armazones.
3. Complemente su visión de las redes semánticas investigando lo referente a los sistemas de
redes semánticas ARCH y SCHOLAR.
4. Construir una red semántica que represente la información relativa a una competencia ciclista.
5. Representar conocimiento con guiones para viajar de una capital departamental de Bolivia a
otra, empleando el transporte adecuado (emplear costo-beneficio).
6. Empleando el modelo conjunto realístico-simple y lógico-matemático, desarrolle el marco de
explicación de la geometría euclidiana.
7. Establecer las reglas necesarias para realizar el diagnóstico de evaluación de los alumnos en
una determinada materia de un plan de estudios.
8. Definir una red de herencia estructural para representar el conocimiento de la burocracia
(emplear la Dirección de una determinada Carrera universitaria y los diferentes procesos que
realiza). Establecer roles y restricciones.
9. Elegir el formalismo adecuado para representar el conocimiento asociado a la compra de una
computadora, la computadora debe ser utilizada como cliente de un sistema distribuido.
10. Construir un guión para representar la ingesta de alimentos por parte de un comensal con
dinero en un restaurante.
Bibliografía
1. Lucas, P. y Van der Gaag, L. Principles of Expert Systems. Addison Wesley, 1991.
2. Brachman, R y Levesque, H. Readings in Knowledge Representation. Morgan Kaufmann,
1985.
3. Russel, S., Norvig, P., Artificial Intelligence: A Modern Approach, Prentice-Hall, 1995.
4. Jackson, P. Introduction to Expert Systems. Addison-Wesley, 1990 (2a. edición).
5. Winston, P., Artificial Intelligence. Addison-Wesley (Tercera Edición) 1992.
Página: 24
6. Shapiro, S.C. Encyclopedia of Artificial Intelligence. Wiley, New York (segunda edición),
1992.
7. Is the Brain Mind a Computer Program? John R. Searle. Scientific American, Jan. 1990,
pp. 26-31.
8. Could a Machine Think? Paul M. Churchland, Patricia Smith Churchland. Scientific
American, Jan. 1990, pp. 32-37.
9. On Computational Wings: Rethinking the Goals of Artificial Intelligence. Kenneth M.
Ford, Patrick J. Hayes. Scientific American, Vol. 9 (4): pp. 78-83.
10. Christopher John Hogger, Essential of Logic Programming, Oxford University Press,
1990.
Referencias Electrónicas
Página: 25
3 LÓGICA DIFUSA
3.1. INTRODUCCIÓN
Uno de los problemas con los que el ser humano se enfrenta a diario es que “nada en la vida es
cierto excepto la muerte”. La solución de problemas de la vida real demanda la aceptación de la
incertidumbre, para minimizar las dificultades que conlleva su solución.
Algunos problemas básicos subyacentes que se encuentran presentes en la actualidad son: por una
parte existen conceptos sin una clara definición, muchos conceptos que manejan los seres
humanos, a menudo, no tienen una definición clara, entre otras cosas se anotan las siguientes,
¿Qué representa ser una persona alta? ¿A partir de qué edad una persona deja de ser joven?. Por
otra parte la lógica clásica o bivalente es demasiado restrictiva, si se analiza una afirmación esta
siempre es verdadera o falsa en términos de esta lógica, pero hay algunas cosas que pueden no ser
ni verdad ni falso, si se considera las siguientes frases: “Yo leeré la trilogía del Señor de los
Anillos”, ¿En qué medida es cierto? depende de quien lo diga y “Él es bueno en Matemáticas”,
¿Es bueno, muy bueno o un poco mejor que regular?.
Muchas veces es necesario conocer cuando utilizar la tecnología difusa, esta se utiliza
generalmente en:
a) en procesos complejos, si no existe un modelo de solución sencillo,
b) en procesos no lineales,
c) cuando haya que introducir la experiencia de un operador “experto” que se base en
conceptos imprecisos obtenidos de su experiencia,
d) cuando ciertas partes del sistema a controlar son desconocidas y no pueden medirse de
forma fiable22,
e) cuando el ajuste de una variable puede producir el desajuste de otras,
f) en general, cuando se quieran representar y operar con conceptos que tengan imprecisión
o incertidumbre23.
3.2. DEFINICION
La palabra fuzzy viene del ingles fuzz24 y se traduce como difuso o borroso, para fines de la
presente publicación se utiliza la acepción difuso. En la actualidad la lógica difusa es un campo
de investigación muy importante, tanto por sus implicaciones matemáticas o teóricas como por
sus aplicaciones prácticas.
La lógica difusa o lógica posibilística fue creada por Lotfi Zadeh en 1965, quien extendió la
clásica lógica booleana a los números reales. En el álgebra booleana 1 representa verdadero y 0
falso. Lo mismo ocurre en la lógica difusa, pero en adición, todas las fracciones entre cero y uno
22
Es decir contiene aún posibles errores.
23
Como ocurre cuando se utiliza base de datos difusas.
24
La traducción de diccionario es: vello, pelusa, tamo.
Página: 26
son empleadas para indicar verdades parciales, así: P(alto(X)) = 0.75, establece que la
proposición de que “X sea alto” es en algún sentido verdadero en una proporción de tres cuartos.
Para combinar valores de verdad no enteros, la lógica difusa define el equivalente de los
operadores AND, OR y NOT como:
Así las piezas de evidencia pueden ser combinadas de una manera rigurosa y consistente.
Considere un árbol. Ahora considere un arbusto. ¿En que etapa de su desarrollo un arbusto llega
a convertirse en árbol?. ¿Esta etapa se realiza con las dimensiones físicas de la planta o es la
esencia de hacer un árbol algo más espiritual que el tamaño?
Por supuesto, no existe un instante en el cual la planta pase de ser un arbusto a un árbol, y
muchas personas pueden afirmar que la solución al problema es completamente obvia; que existe
alguna etapa cuando la planta es en algún grado un arbusto y en algún grado un árbol.
Es sobre esta idea simple en la cual está basada el cuerpo completo de la teoría difusa. Un
conjunto difuso es cualquier conjunto al cual los elementos pueden llegar a pertenecer a los
extremos25 de “miembro” o “no-miembro”. Un elemento puede ser un miembro de grado 0.5 por
ejemplo, lo cual significa que es solamente un miembro parcial del conjunto. Un ejemplo de esto
puede ser considerar el grado de pertenencia de un arbusto en el conjunto “árbol” que fue
mencionado en el párrafo precedente. Un arbusto no es completamente un árbol, pero sin
embargo tiene muchas cosas en común con un árbol, así puede ser razonable clasificar un arbusto
como un árbol de grado 0.5.
Para ingresar en la arena de los conjuntos difusos propiamente dicho, es importante mencionar
que los conjuntos clásicos surgen de forma natural, por la necesidad del ser humano de clasificar
objetos y conceptos.
Así un conjunto de frutas puede ser representado como: F = {manzana, uva, durazno, chirimoya}.
En el conjunto F se puede observar la función de pertenencia absoluta simbolizada por: ∈. Así
manzana ∈ F y lechuga ∉ F.
La función de pertenencia es absoluta y se define en los siguientes términos: sea el conjunto A(x)
con elementos x ∈ X. Se dice que X es el universo del discurso y la restricción de la función
asociada a la lógica bivalente es que el conjunto A: XÆ {0,1}.
25
Estos extremos son representados por los números 0 y 1 en la teoría clásica de los conjuntos.
26
Conocidos como crisp sets.
Página: 27
⎧ 1 si x ∈ A
A(x) = ⎨
⎩ 0 si x ∉ A
En este dominio se define el conjunto vacío como ∅(x)=0, ∀ x∈X; el conjunto universo se define
como U(x)=1, ∀ x∈X.
¿Cuál es la definición de alto?. Para hacerlo fácil, asuma que los objetos a clasificar son adultos
humanos antes que rascacielos u hojas de afeitar. La respuesta simple a la pregunta formulada es
que no existe una definición adecuada. Ningún diccionario dice que alto está definido como que
significa mas de 165 cm para las mujeres y 180 cm para los hombres o algo parecido. Una
respuesta más informativa es que la definición de la palabra alto aplicada a una persona es
definida de manera difusa, y aunque se tiene una idea buena de lo que es y no es alto, aún
pensando que todas las personas sujetas de comparación son completamente diferentes. Alguien
con 2 metros de estatura es indudablemente alto, pero ¿qué acerca de sus vecinos cercanos en
altura?
Para resolver este problema, es necesario definir algunos conjuntos difusos. Es importante
entender que no existe una manera rígida para definir un conjunto difuso. Estos son designados
con la visión de la meta a alcanzar. Si un conjunto es definido para utilizarlo en algún sistema de
control, por ejemplo, y el sistema no presenta un buen rendimiento, entonces es probable que los
conjuntos necesiten ser redefinidos. El conjunto “alto” es definido para ser capaz de comunicar
dimensiones físicas, y lo que es más importante, comunicar dimensiones imprecisas. Cuando se
describe a alguna persona no es necesario especificar su altura en milímetros, sin embargo
comunicar una idea aproximada de su estatura es probablemente lo más usual.
Se definen tres conjuntos que describen la estatura de los seres humanos: “bajo”, “mediano” y
“alto”, ilustrados en la figura 3.1; donde la altura está indicada en el eje x del gráfico, y el grado
de pertenencia del conjunto a la correspondiente altura es proporcionado por la coordenada del
eje y. Así el grado al cual una altura de 1.74 m es “mediano” es de 0.50, y el grado en el cual es
“bajo” 0.25 (ilustrado por las líneas punteadas).
Esto origina otro punto importante; a saber un elemento, en este caso un ejemplo de altura, puede
ser miembro de mas de un conjunto aún si los dos conjuntos aparenten ser mutuamente
Página: 28
exclusivos en términos de la teoría clásica de los conjuntos. Tales conjuntos difusos pueden ser
definidos a lo largo de algún eje o ejes numéricos, discretos o continuos, o pueden ser definidos
utilizando ejemplos de los miembros del conjunto, en alguna forma deseada. Como se mencionó
en los párrafos anteriores, la correctitud de la definición de un conjunto difuso puede ser evaluada
mediante el rendimiento del sistema que hace uso del conjunto difuso.
Como ejemplo se desarrolla la función de pertenencia del conjunto difuso Medio al conjunto A.
0 h≤1.72
(h-1.72)/(1.76-1.72) si h∈ (1.72, 1.76)
µMedio (h) =
(1.80-h)/(1.80-1.76) si h∈ (1.76, 1.80)
0 h≥1.80
Donde h representa la altura.
Un conjunto difuso puede representarse también gráficamente como una función, especialmente
cuando el universo de discurso Ω es continuo o no discreto. Las abscisas ubicadas en el eje X
representan el universo del discurso Ω; las ordenadas ubicadas en el eje Y corresponden a los
grados de pertenencia en el intervalo [0,1].
Ejemplo:
Concepto de temperatura “Alta”.
Temperatura
1 Alta
0 ºC
0 10 20 30 40
Fig. 3.2. Temperatura difusa “alta”
27
En este caso, todos los valores posibles que pueden ser tomados por un atributo.
Página: 29
Cualquier función de pertenencia A es válida, su definición exacta depende del concepto a
definir, del contexto al que se refiera y de la aplicación. En general, es preferible usar funciones
simples, debido a que simplifican muchos cálculos y no pierden exactitud, debido a que
precisamente se está definiendo un concepto difuso.
⎧ 0 si x ≤ a 1
⎪ (x-a)/(m-a) si x ∈ (a,m)
A(x) = ⎨
⎪ (b-x)/(b-m) si x ∈ (b,m)
⎩ 0 si x ≥ b 0 X
a m b
También puede representarse así: A(x;a,m,b) = max{min{(x-a)/(m-a), (b-x)/(b-m)},0}
⎧ 0 si x ≤ a
A(x) = ⎨ 1
⎩
–k(x-a)(x-a)
1-e si x>a
⎧ 0 si x ≤ a
⎨
2
A(x) = k(x-a) 0 X
⎩ 1+ k(x-a)2 si x > a a
c) Función S. Se encuentra definida por sus límites inferior a y superior b, además del valor
m, denominado punto de inflexión, tal que a<m<b. Un valor típico de esta función es el
promedio m = (a+b) / 2. El crecimiento es más lento cuanto mayor sea la distancia (a-b).
Página: 30
⎧ 0 si x ≤ a
⎪ 2{(x-a)/(b-a)}2 si x ∈ (a,m] 1
A(x) = ⎨
⎪ 1-2{(x-b)/(b-a)}2 si x ∈ (m,b) 0.5
⎩ 1 si x ≥ b
0 X
a m b
d) Función Gaussiana. Definida por su valor medio m y el valor constante k>0. Esta
función hace referencia a la típica campana de Gauss. Se caracteriza porque cuanto mayor
es k, más estrecha es la forma de la campana.
–k(x-m)2
A(x) = e
0 X
m
e) Función Trapezoidal. Se encuentra definida por sus límites inferior a y superior d, y los
límites de su soporte, b y c, inferior y superior respectivamente.
⎧ 0 si x ≤ a 1
⎪ (x-a)/(b-a) si x∈ (a,b]
A(x) = ⎨
⎪ 1 si x∈ (b,c)
⎩ (d-x)/(d-c) si x∈ (c,d)
0 X
a b c d
La lógica difusa es la lógica fundamental de los modos de razonamiento que son aproximados
antes que exactos. Alguna de las características esenciales de la lógica difusa están relacionadas
con lo siguiente:
Página: 31
3.5. DIFERENCIAS RESPECTO A SISTEMAS TRADICIONALES
La lógica difusa difiere de los sistemas tradicionales de lógica tanto en espíritu como en detalle.
Algunas de las principales diferencias son las siguientes:
En los sistemas de lógica bivalente, los valores de verdad solamente pueden tener dos valores:
verdadero o falso. En los sistemas multivaluados, los valores de verdad de una proposición
pueden ser elementos de: un conjunto finito, un intervalo tal como [0,1] o un álgebra booleana.
En la lógica difusa los valores de verdad de una proposición pueden ser subconjuntos difusos de
cualquier conjunto parcialmente ordenado pero usualmente este es un subconjunto difuso del
intervalo [0,1] o simplemente un punto en ese intervalo. Los denominados valores de verdad
lingüísticos expresados como: verdadero, demasiado verdadero, completamente verdadero, etc.
son interpretados como etiquetas de subconjuntos difusos del intervalo unitario.
3.5.2. Predicados
En los sistemas bivalentes, los predicados son precisos por decir: mortal, aún, más grande que.
En la lógica difusa los predicados son difusos, por decir: alto, malo, gordo, veloz, mucho más
grande que. Se puede decir que la mayoría de los predicados en un lenguaje natural son difusos
antes que precisos.
3.5.4. Cuantificadores
En los sistemas lógicos clásicos existen solamente dos cuantificadores: universal y existencial.
La lógica difusa admite, en adición, una variedad amplia de cuantificadores tales como: pocos,
varios, usualmente, mas que, casi siempre, frecuentemente, etc. En la lógica difusa un
cuantificador difuso es interpretado como un numero difuso o una proporción difusa.
3.5.5. Probabilidades
Página: 32
3.5.6. Posibilidades
El concepto de posibilidad en la lógica difusa es graduada, antes que bivalente. Además, como
en el caso de las probabilidades, las posibilidades pueden ser tratadas como variables lingüísticas
con valores tales como: posible, completamente posible, casi imposible, etc. Tales valores
pueden ser interpretados como etiquetas de subconjuntos difusos de la línea real.
La teoría de la posibilidad sirve para tratar lo difuso de manera distinta a la aleatoriedad. Esta
teoría esta basada en los primeros trabajos de Zadeh sobre conjuntos difusos.
La teoría de los “conjuntos difusos” proporciona un medio para tratar con lo difuso de términos
tales como “grande”. Si S es un conjunto y e es un miembro de S, entonces se puede definir un
conjunto difuso F de S introduciendo una función de pertenencia como miembro @F tal que
@F(e)=d, donde d es el grado hasta el cual e es miembro de F.
@F(elefante) = 1.0
@F(hipopótamo)= 1.0
@F(tigre) = 0.8
@F(hombre) = 0.6
@F(perro) = 0.1
@F(ratón) = 0.0001
Una declaración difusa tal como “animal grande” se interpreta que tiene una detonación
imprecisa caracterizada por un conjunto difuso.
Una “variable difusa” X es aquella que puede tomar valores en S y valores “asignados” por
declaraciones tales como: “X es un F”.
El valor de X es una distribución de posibilidad tal que la posibilidad de que X=e es @F(e). Por
ejemplo, la declaración: “X es un animal grande”, significa que la posibilidad de que
“X=elefante” es 1.0, la posibilidad de que “X=ratón” es 0.0001, etc.
La teoría de la posibilidad proporciona reglas para calcular las posibilidades de expresiones que
implican variables difusas. Tales reglas incluyen:
Página: 33
b) Los jóvenes mayores de quince años tienden a correr rápido
c) Un gran numero de corredores nacieron en 1969
d) Es más probable que un muchacho sea esbelto si tiene mas de dieciséis años.
Suponiendo que Mary esta en el colegio, que tiene diecisiete años y que nació en 1969, un
razonador ingenuo procedería de la siguiente manera:
e) De b) se concluye que Mary podría correr rápido.
f) De d) y los datos dados se concluye que Mary podría ser esbelta
g) De f), a) y e) se concluye que es probable que Mary corra rápido
h) De los datos y c) juntamente con g), se concluye que Mary debe ser una corredora rápida.
Sin embargo, esta conclusión es algo precipitada dadas las declaraciones anteriores. Un
razonador más analítico puede ver que esto es demasiado rotundo, puesto que puede detectar la
redundancia que este presente.
El problema que podría tener un razonador ingenuo se debe al hecho de que la redundancia está
implícita. La confusión aparece porque las declaraciones anteriores se expresan como
equivalencias o disposiciones. Es decir, no se ha indicado con claridad cual es la dirección de la
implicación causal. Por ejemplo, no esta claro si los jóvenes de diecisiete años corren rápido
porque son esbeltos o porque nacieron en 1969. Zadeh en el año 1983 describió como se puede
utilizar la lógica difusa para superar tales problemas.
La semántica con resultados de ensayo se utiliza para asignar un significado a una proposición de
la lógica difusa. En la semántica con resultados de ensayos se considera que una proposición es
una colección de “restricciones elásticas”.
Por ejemplo, la proposición “Mayte es castaña” representa una restricción elástica del color de
cabello de Mayte, y la proposición “la mayoría de los gordos no son muy ágiles” representa una
restricción elástica del numero de gordos ágiles. En la semántica con resultados de ensayo, el
significado de una proposición viene dado por el procedimiento que se utiliza para calcular los
resultados de los ensayos de esa propiedad.
a) Identificar las variables X1, ..., Xn, cuyos valores estén limitados por la proposición. En el
ejemplo de antes X1=color del cabello de Mayte.
b) Identificar las restricciones C1, ..., Cm inducidas por la proposición.
c) Caracterizar cada restricción Ci describiendo un procedimiento de ensayo que asocie a Ci
un resultado de ensayo ti que represente el grado hasta el cual se satisface Ci.
d) Agregar los resultados parciales de los ensayos t1, ..., tm a un número más pequeño de
resultados de ensayo t1, ..., tk que representen un resultado global de un vector de ensayo
t. En la mayoría de los casos, t=1. El procedimiento de ensayo en c) hace uso de una
colección de relaciones difusas que constituye una base de datos explicativa28.
28
De la palabra inglesa Explanatory Database (ED).
Página: 34
El significado de las relaciones en una base de datos explicativa es conocido por la persona que
quiera saber el significado de la proposición. Indirectamente, los procedimientos de ensayo y
agregación utilizados en semántica de resultados de ensayo describen un proceso mediante el
cual los significados de las proposiciones están compuestos de significados de las relaciones
constituyentes en la base de datos explicativa.
Como ejemplo, suponga que se quiere determinar el significado de la proposición: “la nieve es
generalmente blanca”.
Una base de datos explicativa apropiada incluiría una relación BLANCA y una relación
GENERALMENTE, tal que:
BLANCA
Muestra de Grado hasta el cual la muestra es
nieve “blanca”
S1 0.4
S2 0.5
S3 0.6
S4 0.7
S5 0.8
GENERALMENTE
Proporción Grado hasta el cual la proporción
representa “generalmente”
0.3 0.45
0.4 0.55
0.5 0.65
0.6 0.75
0.7 0.85
Ahora suponga que S1, ..., Sm representan muestras de nieve y que ti (1<=i<=m) representa el
grado hasta el cual el color de Si es blanco. Así pues, ti es el resultado del ensayo para la
restricción del color de Si inducido por “blanco”.
a) Encontrar la proporción de muestras cuyo color sea blanco: a = (t1 + t2 +... + tm )/m. Para
el caso del ejemplo: a = 0.6, a partir de la tabla BLANCA.
b) Calcular el grado hasta el cual a satisface la restricción inducida por “generalmente” t =
grado hasta el cual la proporción representa generalmente, donde la proporción = a. En el
ejemplo utilizando la tabla GENERALMENTE se tiene que la proporción de 0.6 tiene un
valor de 0.75. Es decir 75% considera que la nieve generalmente es blanca.
Página: 35
3.8. APLICACIONES
El uso de los sistemas difusos en el área del control fue una de las primeras aplicaciones prácticas
del paradigma.
Palm demostró que un controlador difuso simple de afinado manual podía ejecutar de manera
correcta un algoritmo de control sobre un manipulador de robots, con una ventaja principal
consistente en la estabilidad del control difuso bajo condiciones inusuales, por ejemplo un
manipulador de diversos tipos de metales.
Horton & Jones en 1994, aplicaron un sistema difuso al problema de la pista de las multi tarjetas,
tradicionalmente del dominio de los sistemas analíticos tales como el filtro de Kalman. Ellos
demostraron que un rendimiento comparable al filtro Kalman puede obtenerse con costos
computacionales reducidos. Kosko, en 1992, también examina el problema de las pistas,
comparando un sistema difuso con un filtro Kalman. Kosko demostró que aunque ambos
sistemas se comportan de manera similar bajo condiciones ideales, cuando los parámetros del
sistema son perturbados, mediante la adición de reglas fraudulentas a la base de reglas
difusas y mediante el cambio de la covarianza estimada del estado del proceso del filtro de
Kalman, que el rendimiento del sistema difuso se degrada de manera mas adecuada que la del
filtro de Kalman.
Página: 36
Un número de aplicaciones financieras fueron documentadas para esta área, por ejemplo
Rommelfanger describe un sistema para el asesoramiento del valor del crédito en pequeñas
firmas. Sotirov, Mincoff y Krasteva, propusieron el uso de los sistemas difusos para ayudar en la
asignación de precios a los nuevos productos de venta en un mercado.
También en el campo de la IA, los sistemas difusos fueron utilizados para detectar fallas en las
plantas generadoras de energía eléctrica, en las fábricas de cemento para el control de la
producción y en las luces de control de tráfico para optimizar el flujo del trafico vehicular.
Ejercicios #3
Bibliografía
1. Bezdek, J. Pattern Recognition with Fuzzy Objective Function Algorithms. Plenum Press,
New York, 1981.
2. Dychkhoff, H. & W. Pedrycz. Generalized Means as a Model of Compensative
Connectives. Fuzzy Sets and Systems 14, pp. 143-154, 1984.
3. Kosko, B. Neural Networks and Fuzzy Systems: A Dynamical Systems Approach to
Machine Intelligence. Englewood Cliffs, NJ: Prentice Hall, 1992.
4. Kruse, R., J. Gebhardt, F. Klawonn, Foundations of Fuzzy Systems. John Wiley & Sons,
1994. ISBN 0-471-94243X.
5. McNeill, F.M., E. Thro, Fuzzy Logic: A Practical Approach. AP Professional, 1994.
ISBN 0-12-485965-8.
Página: 37
6. Menger, K. Statistical Metric Spaces. Proc. of the National Academy of Sciences 37, pp.
535-537 (USA), 1942.
7. Mohammed, J., N. Vadiee, T.J. Ross, Eds. “Fuzzy Logic and Control. Software and
Hardware Applications”. Eaglewood Cliffs, NJ:PTR. Prentice Hall, 1993.
8. Pedrycz, W., F. Gomide, An introduction to Fuzzy Sets: Analysis and Design. A Bradford
Book. The MIT Press, Massachusetts, 1998. ISBN 0-262-16171-0.
9. Saaty, T.L. The Analytic Hierarchy Processes. McGraw Hill, New York, 1980.
10. Schwizer, B. & A. Sklar. Probabilistic Metric Spaces. Amsterdam: North Holland, 1983.
11. Sur A&C, Omron Electronics, S.A., Lógica Difusa para Principiantes. Ed. I. Hernández,
1997. ISBN 84-920326-3-4.
12. Yager, R. On Ordered Weithted Averaging Aggregation Operations in Multicriteria
Decision Making. IEEE Transactions on Systems, Man and Cybernetics 18, pp. 183-190,
1988.
13. Zadeh, L.A. Fuzzy Sets as a Basis for a Theory of Possibility. Fuzzy Sets and Systems 1,
pp. 3-28, 1978.
14. Zadeh, L.A. Fuzzy Sets. Information and Control, 8, pp. 338-353, 1965.
15. Zadeh, L.A. The Concept of a Linguistic Variable and its Application to Approximate
Reasoning. Information Sciences 8, pp. 199-249 (part I), 8, pp. 301-357 (part II), 9, pp.
43-80 (part III), 1975.
16. Zimmermann, H. & P. Zysno. Latent connectives in human decision making. Fuzzy Sets
and Systems 4, pp. 47-51, 1980.
17. Zimmermann, H. Fuzzy Set Theory and its Applications. 2d ed. Dordrecht, the
Netherlands: Kluwer Academic Publishers, 1993.
Referencias Electrónicas
Página: 38
14. [Link] Research Group on Fuzzy Systems and
Soft Computing at Technical University of Braunschweig,
15. [Link] Fuzzy Logic at the
"Politecnico di Milano AI and Robotics Project".
16. [Link] Conferences on
Fuzzy Logic from the WWW Virtual Library on Conferences.
Página: 39
4 REDES NEURONALES ARTIFICIALES
4.1. INTRODUCCION
Existen tareas para las cuales todavía no existen algoritmos, o para las cuales es virtualmente
imposible escribir una serie de pasos lógicos o aritméticos que proporcionen la solución adecuada
a una tarea determinada. Estas tareas tienen características importantes en común:
Los ejemplos de este tipo de tareas son las tareas cognoscitivas como reconocer un rostro
familiar, hablar, comprender el lenguaje y recuperar contextualmente información apropiada
desde la memoria. Estas tareas están mas allá del alcance de las computadoras programadas de
manera convencional, así como de los sistemas expertos tradicionales.
El renovado interés en las redes neuronales está motivado por los avances en la tecnología así
como por una comprensión más profunda de como trabaja el cerebro. Una motivación particular
es el deseo de construir una nueva generación de computadoras para resolver tareas como las
mencionadas en los párrafos anteriores, para las cuales las arquitecturas actuales resultan
insuficientes. Otra motivación es el deseo de desarrollar modelos cognitivos que puedan servir
como fundamento para la inteligencia artificial.
Aunque es conocido que el cerebro no es tan bueno como una computadora convencional para
ejecutar operaciones aritméticas, existen varias funciones del cerebro que no se pueden duplicar
en una computadora. Algunas de tales funciones son la asociación, categorización,
generalización, clasificación y extracción de rasgos. Estos aspectos están relacionados de manera
estrecha a la propiedad asociativa y de auto organización del cerebro.
Página: 40
La propiedad asociativa significa la capacidad de recuperar un cuerpo de información complejo
utilizando una pequeña parte del mismo como una llave para un proceso de búsqueda. El cerebro
hace esto extraordinariamente bien. La autoorganización significa la habilidad para adquirir
conocimiento a través de un proceso de aprendizaje por tanteo que comprende organizarse y
reorganizarse en respuesta a estímulos externos.
Por otra parte los modelos y algoritmos estándar de la IA tienen las siguientes características:
a) El conocimiento se representa explícitamente utilizando reglas, redes semánticas, modelos
probabilísticos, etc.,
b) Se imita el proceso humano de razonamiento lógico para resolver los problemas,
centrando la atención en las causas que intervienen en el problema y en sus relaciones
(encadenamiento de reglas, inferencia probabilística), y
c) Se procesa la información secuencialmente.
Se dice que para el manejo del paradigma de las redes neuronales es necesario salir de los
esquemas cerrados que plantea la computación actual con el modelo propuesto por Von
Neumann. En este sentido una computadora biológica que tenga las características descritas en la
tabla 4.1 constituiría una buena opción para el manejo adecuado del paradigma conexionista y
otros paradigmas inspirados en la biología.
4.2. NEURONAS
Página: 41
La habilidad del cerebro para almacenar información es distribuida sobre todas las neuronas y el
proceso de recordar la información almacenada es un proceso colectivo entre todas las neuronas
de la red neuronal.
El modelo propuesto es bastante común en los libros de texto sobre neuro fisiología. Una neurona
consta de tres partes básicas:
a) Dendritas: Un árbol de fibras de entrada que lleva los potenciales de acción de las
neuronas transmisoras en la neurona.
b) Soma: El cuerpo principal de la célula con un núcleo. Es en este lugar donde los
potenciales de acción son construidos antes que la neurona se active.
c) Axón: Es una fibra de salida simple que bifurca a otras neuronas y transmite los
potenciales de acción generados por la neurona.
Núcleo
Axón
Soma
Dendritas
Las dendritas y los axones pueden ser vistos como cadenas de comunicación entre las neuronas, y
no se conocen los detalles exactos acerca de cómo funcionan actualmente. Las partes más
interesantes son el soma y la sinapsis los cuales constituyen los puntos de conexión entre los
axones y las dendritas.
Las neuronas reciben señales (inputs) de otras neuronas vía conexiones sinápticas que pueden ser
activadoras o inhibidoras. En función de las señales recibidas, una neurona envía a su vez una
señal a otras neuronas por medio del axón.
Una neurona contiene un potencial interno continuo denominado potencial de membrana. Cuando
éste excede un cierto valor umbral, la neurona puede transmitir todo su potencial por medio del
axón. Se estima que el cerebro humano contiene más de cien mil millones (1011 ) de neuronas y
que hay más de 1000 sinápsis a la entrada y a la salida de cada neurona.
Página: 42
4.2.2. Modelo Idealizado
La neurona tiene una sola dendrita. La dendrita acumula el estimulo enviado a la neurona desde
las otras neuronas. El soma procesa los estímulos recibidos a través de su dendrita y decide la
respuesta de la neurona. El axón toma cuidad de distribuir esta respuesta a las otras neuronas.
Los modelos de redes neuronales artificiales, o simplemente redes neuronales, se conocen por
diversos nombres como modelos conexionistas o modelos de procesamiento distribuido paralelo.
En lugar de ejecutar un programa secuencialmente como en una arquitectura Von Neumann, la
red neuronal explora muchas hipótesis de manera simultánea utilizando redes masivamente
paralelas compuestas de muchos elementos de procesamiento conectados por enlaces con pesos.
McCulloch & Pitts proponen una unidad binaria con umbral como un modelo computacional para
una neurona. Un diagrama esquemático de la neurona de Mcculloch-Pitts se observa en la Fig.
4.3.
x1
w1
x2 w2
µ
∑ y
… wn
xn
Fig. 4.3. Modelo computacional de una neurona
Página: 43
La neurona matemática calcula una suma de pesos de las n señales de entrada, xj, j=1, 2, n, y
genera una salida de “1” si su suma esta sobre un cierto umbral µ, y una salida de “0” en otros
casos. Matemáticamente,
y = θ (Σ wj xj - µ), j=1..n
donde θ(.) es una función de paso unitario, y wj es el peso de la sinapsis asociado con la j-esima
entrada. Para la simplicidad de la notación, frecuentemente se considera el umbral µ como otro
peso w0 = -µ , la cual está ligada a la neurona con una entrada constante, x0 = 1. Los pesos
positivos corresponden a sinapsis activadoras, mientras que los pesos negativos corresponden a
sinapsis inhibidoras.
Existe una analogía cruda29 con una neurona biológica: las interconexiones modelan las dendritas
y los axones, los pesos de las conexiones representan la sinapsis, y la función umbral aproxima la
actividad en el soma.
Si = ∑ Wij * Xj + BIASi
En la segunda etapa se calcula el nivel de activación utilizando una función que tiene como
argumento la entrada total a la neurona. Entre las funciones más utilizadas con este propósito
están las siguientes:
29
Puede decirse una analogía tosca, rudimentaria.
30
Se refiere al producto del peso del enlace y el valor de la información que fluye por esa conexión.
31
Este termino es conocido como "bias".
Página: 44
a) Modelo lineal. En este modelo la activación de la neurona es igual a la entrada total.
b) Modelo lineal con umbral. El nivel de activación toma un valor binario en dependencia
del signo de la entrada total. Ejemplo de este modelo es la función signo.
c) Modelo estocástico. La activación se calcula según una regla probabilística, tomando
valor 1, con una probabilidad p, según la expresión: P(Oi=1) = ( 1 / (1 + e-Si/T) ). Este
modelo de neurona se utiliza en la maquina de Boltzmann.
d) Modelo continuo. La salida está relacionada no linealmente con la entrada según la
función: Oi = 1 / (1 + e-Si). Esta función continua transforma el valor de la entrada total a
valores reales entre 0 y 1. Se utiliza en algoritmos de aprendizaje que requieren la
continuidad de la función de activación, como es el caso del de propagación de los errores
hacia atrás. Una alternativa para calcular la entrada total es utilizar un polinomio de grado
mayor que uno. El enfoque polinomial permite implementar numerosos clasificadores no
lineales, los cuales superan las limitaciones de clasificadores lineales como el modelo de
Perceptrón original. En este sentido esta variante es equivalente al uso de redes con capas
ocultas.
Una red neuronal artificial, "intenta ser" la representación matemática de una red neuronal
biológica. Se dice que intenta ser, porque dada la complejidad todavía no resuelta del
funcionamiento del cerebro, todos los trabajos hasta ahora desarrollados son muy burdos en
comparación de lo que realmente es, esto es en gran parte debido a las limitantes tecnológicas
actuales.
Desde hace algunos años, algunos investigadores han estado creando modelos, tanto en hardware
como en software, que interpretan la actividad cerebral en un esfuerzo por producir una forma de
inteligencia artificial. Muchos modelos teóricos o paradigmas, datan desde los años 50's. Muchos
de ellos tenían aplicaciones limitadas en el mundo real, teniendo como consecuencia que las
Redes Neuronales Artificiales (RNA) permanecieran en la oscuridad por décadas.
En cualquier caso, se trata de 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 real32, 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.
32
Entre otras cosas clasificación, reconocimiento de patrones, predicción y toma de decisiones.
Página: 45
La idea de las redes neuronales fue concebida originalmente como un intento de modelar la
fisiología del cerebro humano, esto es, entender y explicar como funciona y opera el cerebro. La
meta era crear un modelo capaz en emular el proceso humano de razonamiento. La mayor parte
de los trabajos iniciales en redes neuronales fue realizada por fisiólogos y no por ingenieros.
Existen varias formas de hacer las conexiones en una RNA, así como existen varias formas de
conectar neuronas biológicas en el cerebro. Cada tipo sirve para diferentes procesos, el elegir la
correcta topología y sus características, es imprescindible para lograr fácilmente la solución del
problema.
4.3.1. Taxonomía
Existen dos fases en toda aplicación de las redes neuronales: la fase de aprendizaje o
entrenamiento y la fase de prueba. En la fase de entrenamiento, se usa un conjunto de datos o
patrones de entrenamiento para determinar los pesos (parámetros de diseño) que definen el
modelo neuronal. Una vez entrenado este modelo, se usará en la llamada fase de prueba o
funcionamiento directo, en la que se procesan los patrones de prueba que constituyen la entrada
habitual de la red, analizándose de esta manera las prestaciones definitivas de la red.
a) Fase de Prueba. En esta fase los parámetros de diseño de la red neuronal se obtienen a
partir de unos patrones representativos de las entradas que se denominan patrones de
entrenamiento. Los resultados pueden ser calculados tanto de una vez como adaptados
iterativamente, según el tipo de red neuronal, y en función de las ecuaciones dinámicas de
prueba. Una vez calculados los pesos de la red, los valores de las neuronas de la última
capa, se comparan con la salida deseada para determinar la validez del diseño.
b) Fase de Aprendizaje. En esta fase se reconoce que una característica de las redes
neuronales es su capacidad de aprender. Aprenden por la actualización o cambio de los
pesos sinápticos que caracterizan a las conexiones. Los pesos son adaptados de acuerdo a
la información extraída de los patrones de entrenamiento nuevos que se van presentando.
Normalmente, los pesos óptimos se obtienen optimizando33 alguna "función de energía".
4.3.2. Aprendizaje
Para las redes neuronales artificiales existen dos métodos de aprendizaje ampliamente conocidos:
a) Supervisado. En este aprendizaje los datos están constituidos por varios patrones de
entrada y de salida. El hecho de conocer la salida implica que el entrenamiento se
beneficia la supervisión de un maestro.
b) No Supervisado. En este aprendizaje, el conjunto de datos de entrenamiento consiste
solamente en los patrones de entrada. Por lo tanto, la red es entrenada sin el beneficio de
33
Aunque un tanto redundante, entiéndase en este contexto como los procesos de maximización y minimización.
Página: 46
un maestro. La red aprende a adaptarse basada en las experiencias recogidas de los
patrones de entrenamiento anteriores.
Supervisado
Paradigmas de
No supervisado
Aprendizaje
Híbrido
Corrección de
Error
Aprendizaje
Boltzmann
Proceso de Tipos de Reglas
Aprendizaje de Aprendizaje
Aprendizaje
Hebbiano
Aprendizaje
Competitivo
Capacidad
Complejidad
de Tiempo
Los modelos de redes neuronales son especificados por las tres siguientes características:
En principio, siempre se puede encontrar una red neuronal que pueda resolver un problema dado,
partiendo de que no hay restricción sobre el tamaño de la red y existe disponible una cantidad
infinita de datos.
4.4.1. Caracterización
Una red neuronal es un modelo computacional que pretende simular el funcionamiento del
cerebro a partir del desarrollo de una arquitectura que toma rasgos del funcionamiento de este
Página: 47
órgano sin llegar a desarrollar una replica del mismo. El cerebro puede ser considerado como un
equipo integrado por aproximadamente 10 billones de elementos de procesamiento cuya
velocidad de cálculo es lenta, pero que trabajan en paralelo y con este paralelismo logran alcanzar
una alta potencia de procesamiento.
A partir de esta visión del cerebro, el modelo computacional desarrollado consiste de un conjunto
de elementos computacionales simples, las cuales constituyen neuronas artificiales, que están
unidas por arcos dirigidos que les permiten comunicarse. Cada arco tiene asociado un peso
numérico Wij que indica la activación alcanzada por la unidad Ui sobre la unidad Uj. Cada celda
Ui calcula una activación a partir de las activaciones de las celdas conectadas directamente a
ellas, de los pesos de los arcos a través del que llega cada activación y utilizando un algoritmo
que generalmente es el mismo para todas las unidades. En la literatura sobre redes neuronales
tales elementos son frecuentemente referidos como neurona adaptativa.
Matemáticamente el funcionamiento de una red neuronal se representa del siguiente modo. Toda
unidad Uj, excepto las entradas, calcula una nueva activación U'j como una función34 que tiene
como argumento la suma pesada de las entradas a la unidad:
El valor Sj se puede interpretar como el nivel de voltaje que excita la neurona, y el valor U'j
denota la intensidad de la salida resultante de la neurona.
Si Ui no esta conectada a Uj entonces Wij=0. Por convenio existe una unidad Uo con activación
siempre igual a 1 que está conectada al resto de los elementos de procesamiento y el peso Woj es
una constante que representa una predisposición de la unidad.
Los pesos positivos (Wij>0) indican que el nivel de actividad de la unidad Ui refuerza el nivel
correspondiente del elemento Uj, mientras que un peso negativo (Wij<0) representa una
inhibición. Los pesos determinan el comportamiento de la red, desde el punto de vista de la
inteligencia artificial el conjunto de pesos W encierra el conocimiento del dominio de aplicación
que la red neuronal modela.
La función F se conoce como la función de activación y puede ser una función sólida como la
función signo, o una función no lineal diferenciable creciente monótonamente en forma de S tal
como la tangente hiperbólica.
4.4.2. Topologías
Se define como topología de una red neuronal a la organización o arquitectura del conjunto de
neuronas que la forman; esta organización comprende la distribución espacial de las mismas y los
enlaces entre ellas. Las topologías básicas se describen en la Fig. 4.6.
34
Esta función también es referenciada como algoritmo de cálculo.
Página: 48
Redes
Neuronales
Redes Redes
Feedforward Recurrentes
La expresión mas simplificada de una red es aquella en la cual se tiene solamente una neurona.
Esta funciona como una unidad de procesamiento que recibe entradas y calcula un nivel de
activación que definirá su respuesta. Un ejemplo de esta arquitectura es la neurona de McCulloch
y Pitts.
35
Mas conocida como Red Backpropagation.
Página: 49
calcula una respuesta, y la salida de la red será un vector con N componentes, uno por cada
neurona.
Típicamente existe una capa de unidades sensorias, una o más capas ocultas de neuronas y una
capa de neuronas que producen la salida. El calificativo de oculta es para denotar que las capas
Página: 50
permanecen "desconocidas" para el usuario de la red. La utilización de esta topología fue posible
gracias al desarrollo de algoritmos de aprendizaje como el backpropagation. Esta topología es la
base del multilayer perceptrón y del modelo MADALINE.
En esta topología resulta de interés analizar lo referente a cuantos niveles o capas, así como la
cantidad de neuronas por capas, son necesarios. En el nivel inicial existe una unidad sensoria por
cada rasgo de entrada a la red, en la capa de salida se colocan tantas neuronas como sean
necesarias. Se ha probado que dos capas ocultas son suficientes para resolver cualquier problema.
No existe un criterio riguroso para determinar la cantidad de neuronas en las capas ocultas.
Página: 51
4.5.6. Modelo Interactivo Desarrollado
En este modelo la red está formada por dos subredes. La primera tiene la topología de una red
simple y la segunda la del modelo interactivo. La red simple recibe las entradas y las procesa, las
salidas de esta primera subred sirven de entrada a la red interactiva, la cual realiza el proceso
iterativo de calculo de las salidas. Esta topología ha mostrado que tiene las mismas capacidades
del modelo interactivo y es más eficiente. Los modelos de Hamming, de Carpenter/Grossberg y
de Kohonen se basan en esta topología.
4.6.1. Perceptrón
a) Antecedentes
En 1943, Warren McCulloc y Walter Pitts originaron el primer modelo de operación neuronal, el
cual fue mejorado en sus aspectos biológicos por Donald Hebb en 1948.
b) Funcionamiento
En la Fig. 4.12. se representa una neurona artificial, que intenta modelar el comportamiento de la
neurona biológica. Aquí el cuerpo de la neurona se representa como un sumador lineal de los
estímulos externos zj, seguida de una función no lineal yj = f(zj). La función f(zj) es llamada la
función de activación, y es la función que utiliza la suma de estímulos para determinar la
actividad de salida de la neurona.
Página: 52
Este modelo se conoce como Perceptrón de McCulloch-Pitts, y es la base de la mayor parte de las
arquitecturas de RNA que se interconectan entre sí. Las neuronas emplean funciones de
activación diferentes según la aplicación, algunas veces son funciones lineales, otras funciones
sigmoidales y otras funciones de umbral. La eficiencia sináptica se representa por factores de
peso de interconexión wij, desde la neurona i, hasta la neurona j.
Los pesos pueden ser positivos o negativos36. Los pesos junto con las funciones f(z) dictan la
operación de la red neuronal. Normalmente las funciones no se modifican de forma tal que el
estado de la red neuronal depende del valor de los factores de peso o sinapsis que se aplica a los
estímulos de la neurona.
c) Limitantes
El Perceptrón es capaz tan sólo de resolver funciones definidas por un hiperplano37, que corte un
espacio de dimensión N. Un ejemplo de una función que no puede ser resuelta es el operador
lógico XOR.
Una explicación más sencilla de un hiperplano sería, hablando en un plano de dos dimensiones,
una línea que separa a los elementos existentes en dos grupos. El Perceptrón sólo puede resolver
una función, si todos los posibles resultados del problema pueden separarse de ésta forma, es
decir, que no se combinen entre sí. Estos elementos son linealmente separables.
d) Entrenamiento
El entrenamiento de un Perceptrón es por medio de la regla de aprendizaje delta: Para cada peso
W se realiza un ajuste dW según la regla: dW=LR(T-Y)X. Donde LR es la razón de aprendizaje,
T el valor deseado, Y el valor obtenido y X la entrada aplicada al Perceptrón.
e) Tipos de Perceptrón
El Perceptrón básico de dos capas38 solo pude establecer dos regiones separadas por una frontera
lineal en el espacio de patrones de entrada, donde se tendría un hiperplano.
Un Perceptrón con tres niveles de neuronas puede formar cualquier región convexa en este
espacio. Las regiones convexas se forman mediante la intelección entre las regiones formadas por
cada neurona de la segunda capa, cada uno de estos elementos se comporta como un Perceptrón
simple, activándose su salida para los patrones de un lado del hiperplano.
Un Perceptrón con cuatro capas puede generar regiones de decisión arbitrariamente complejas. El
proceso de separación en clases que se lleva a cabo consiste en la partición de la región deseada
en pequeños hipercubos. Cada hipercubo requiere 2n neuronas en la segunda capa (siendo n el
36
Estos pesos también reciben el nombre de pesos activadores o positivos y pesos inhibidores o negativos.
37
Objeto de dimensión N-1 contenido en un espacio de dimensión N.
38
Entrada con neuronas lineales, analógicas, y la de salida con función de activación de tipo escalón, digital.
Página: 53
numero de entradas a la red), una por cada lado del hipercubo, y otra en la tercera capa, que lleva
a cabo la conjunción lógica de la salida de los nodos del nivel anterior. La salida de los nodos de
este tercer nivel se activaran solo para las entradas de cada hipercubo. Los hipercubos se asignan
a la región de decisión adecuada mediante la conexión de la salida de cada nodo del tercer nivel
solo con la neurona de salida (cuarta capa) correspondiente a la región de decisión en la que este
comprendido el hipercubo llevándose a cabo una operación lógica OR en cada nodo de salida.
Este procedimiento se pude generalizar de manera que la forma de las regiones convexas sea
arbitraria, en lugar de hipercubos.
En teoría, el Perceptrón de 4 capas puede resolver una gran variedad de problemas cuyas entradas
sean analógicas, la salida sea digital y sea linealmente separable. El problema práctico radica en
el numero de neuronas, en el numero idóneo de capas ocultas, la extensión de la función de
activación, el tiempo de entrenamiento de la red, las implicaciones en la generación de ruido39 en
contraparte con la ventaja de tener un sistema tolerante a fallas al tener un número de neuronas
redundante.
El rango de tareas que el Perceptrón puede manejar es mucho mayor que solamente simples
decisiones y reconocimiento de patrones. Por ejemplo, se puede entrenar una red para formar el
tiempo pasado de los verbos en ingles, leer texto en ingles y manuscrito. El Perceptrón multicapa
(MLP) puede ser usado para la predicción de una serie de datos en el tiempo; este modelo ha
sido exitoso en la medición de la demanda de gas y electricidad, además de la predicción de
cambios en el valor de los instrumentos financieros.
El Perceptrón solo es el ejemplo más elemental de una red neuronal, de hecho, no puede siquiera
ser considerado una "red", puesto que no intervienen otros elementos. Si se combinan varios
perceptrones en una "capa", y los estímulos de entrada después se suman, recién se tendrá una red
neuronal. Una red neuronal muy eficaz para resolver fundamentalmente problemas de
reconocimiento de patrones es la red neuronal de retropropagación, en inglés back propagation
network.
39
Normalmente se produce al tener un numero excesivo de neuronas.
Página: 54
Fig. 4.13. Red de retropropagación
En esta red, se interconectan varias unidades de procesamiento en capas, las neuronas de cada
capa no se interconectan entre sí. Sin embargo, cada neurona de una capa proporciona una
entrada a cada una de las neuronas de la siguiente capa, esto es, cada neurona transmitirá su señal
de salida a cada neurona de la capa siguiente. La Fig. 4.13. muestra un ejemplo esquemático de la
arquitectura de este tipo de redes neuronales.
b) Algoritmo
El algoritmo de aprendizaje proporciona una forma de entrenar una red multicapa con
alimentación hacia adelante. Comienza alimentando los valores de la entrada de acuerdo a las
siguientes ecuaciones:
net i = ∑ j∈A O jW ji ∀i : i ∈ B
1
Oi = f (net i ) =
1 + e − neti
Página: 55
Después de que todas las neuronas tienen un valor de activación asociado a un patrón de valores
de entrada, el algoritmo sigue buscando errores en cada neurona que no es de entrada.
Los errores encontrados para las neuronas de salidas, son propagados hacia atrás, a la capa
anterior para que puedan ser asignados a neuronas de las capas escondidas, esto se calcula por:
Después de que se ha encontrado la activación y el error asociado a cada grupo de neuronas, los
pesos se actualizan, primero encontrando el valor con el que cada peso debe modificarse, esto se
logra calculando:
donde C, conocida como la razón de aprendizaje, es una constante que controla el valor del
cambio de los pesos y Wij es el cambio de los pesos entre la neurona i y j. El peso se cambia
evaluando:
4.6.3. Hopfield
40
Cada unidad puede tomar dos estados, 0 o 1, dependiendo de si la estimulación total recibida supera determinado
umbral.
Página: 56
de problemas. El estado de cada neurona puede ser actualizado un número indefinido de veces,
independientemente del resto de las neuronas de la red pero en paralelo.
a) Máquina de Boltzmann
b) Características
El estado del sistema está dado por los valores de activación Yk. La entrada de la neurona k en el
ciclo temporal t+1 viene dada por
Para obtener el nuevo valor de activación se aplica una función umbral. Cuando un elemento de
procesado mantiene su valor de activación se dice que es estable. Se llama estado estable a aquel
en el cual todos los elementos de procesado son estables.
Con la restricción extra de simetría en los pesos de conexión, Wjk=Wkj, el sistema puede ser
descrito mediante una función energía de la forma
c) Funcionamiento
A cada estado de la red se le puede atribuir una cierta cantidad de energía, el sistema evoluciona
tratando de disminuir la energía mediante un proceso de relajación, hasta alcanzar un mínimo
donde se estabiliza. Los mínimos de energía se corresponden con los recuerdos almacenados
durante el aprendizaje de la red.
Ante la presentación de un estímulo nuevo se obtendrá una configuración inicial más o menos
parecida a alguno de los estímulos almacenados, el sistema evolucionará hasta caer en una
configuración estable que representa el recuerdo asociado a ese estímulo. Si la configuración
inicial discrepa mucho de los recuerdos almacenados es posible alcanzar algún mínimo que no se
corresponde a ningún recuerdo almacenado, recuperando en ese caso una información espuria, o
se podría no alcanzar ningún mínimo, quedando inestable: en ese caso se dice que la red está
"confundida", no es capaz de reconocer el estímulo, no recuerda.
41
Del término original simulated annealing.
Página: 57
Una tercera posibilidad es que al cabo de unos pasos de evolución empiece a repetir
periódicamente una secuencia definida de estados; con esta dinámica se han modelado ciertas
excitaciones nerviosas que regulan acciones rítmicas y repetitivas; y se ha tratado de reproducir la
memoria de secuencias temporales, pe. el recuerdo de melodías.
Como se había mencionado, las neuronas se conectan todas entre sí, y consigo mismas. Para
empezar se le asigna a cada unidad el valor o estado correspondiente del patrón de entrada. En
cada ciclo se elige una neurona al azar y se calcula su activación según la función de umbral:
Sea n el número de neuronas en la red, la estimulación total se calcula como la sumatoria de todas
las entradas ponderadas, incluida la procedente de la misma unidad.
n
x j = ∑ Wij Yi
i =1
Se puede trabajar con cualquier valor de umbral para la función de activación, pero típicamente
se usa el 0 como umbral; tiene la ventaja de simplificar las ecuaciones.
yi=1 si xi > 0 yi=0 si xi < 0
Por definición los recuerdos42 son puntos fijos en la dinámica de la red, es decir, configuraciones
que no cambian en el tiempo aunque se siga aplicando la regla de evolución. Para almacenar un
recuerdo habrá que lograr que la presentación del patrón de entrada lleve a la red a alcanzar un
punto fijo, esto se logrará mediante alguna regla de aprendizaje que modifique los pesos de las
conexiones.
42
En este caso hace referencia a ítems o patrones almacenados.
Página: 58
e) Aprendizaje de las redes de Hopfield: Regla de Cooper-Hebb
M
Wij = W ji = ∑ (2 pi − 1)(2 p j − 1)
m m
m =1
Esta regla fortalece las conexiones cuando las unidades i-ésima y j-ésima tienen la misma
activación o valor de estado, y las debilita en caso contrario.
f) Condiciones de estabilidad
Como demostró Hopfield, una red de adaptación asíncrona estable se puede conseguir haciendo
que la matriz de pesos sea simétrica y con ceros en la diagonal principal. La idea para alcanzar
estados estables es encontrar una función del estado del sistema, que se llama energía, con la
propiedad de decrecer cuando se produce un cambio en el estado de la red. Un tipo de funciones
con esa propiedad son las funciones de Liapunov. Una función de este tipo, empleando umbral=0,
es la siguiente:
El cambio de energía del sistema ante el cambio de estado de una unidad i elegida al azar (Dyi)
es:
Página: 59
Se puede demostrar que dicho cambio de energía es siempre negativo o nulo, de tal modo que el
sistema tiende a converger hacia un mínimo. El criterio de simetría es suficiente, pero no
necesario, para alcanzar la estabilidad. Por otro lado la simetría aproximada es usualmente
suficiente para lograrlo.
g) Valoración
Hopfield ha mostrado como aplicar los mismos principios con funciones de activación continuas
como la función sigmoidal, con muy pocas modificaciones
.
Pero pese a sus evidentes ventajas no están exentas de los siguientes problemas:
4.6.4. Kohonen
Existen evidencias que demuestran que en el cerebro existen neuronas que se organizan en
muchas zonas, de forma que las informaciones captadas del entorno a través de los órganos
sensoriales se representan internamente en forma de capas bidimensionales. Por ejemplo, en el
sistema visual se han detectado mapas del espacio visual en zonas de córtex43. También en el
sistema auditivo se detecta organización según la frecuencia a la que cada neurona alcanza la
mayor respuesta44.
43
Se refiere a la capa externa del cerebro.
44
Es decir la organización tonotópica.
Página: 60
a) Historia
Este modelo tiene dos variantes, denominadas LVQ (Learning Vector Quantization) y TPM
(Topology-Preserving Map) o SOM (Self-Organizating Map). Ambas se basan en el principio de
formación de mapas topológicos para establecer características comunes entre la información
(vector) de entrada a la red, aunque difieren en las dimensiones, siendo de una sola dimensión en
el caso de LVQ, y bidimensional, e incluso tridimensional, en la red TPM.
b) Características
Las unidades de entrada reciben datos continuos normalizados, se normalizan así mismo los
pesos de las conexiones con la capa de salida. Tras el aprendizaje de la red, cada patrón de
entrada activará una única unidad de salida.
El objetivo de este tipo de redes es clasificar los patrones de entrada en grupos de características
similares, de manera que cada grupo activará siempre la misma salida. Cada grupo de entradas
queda representado en los pesos de las conexiones de la unidad de salida triunfante. La unidad de
salida ganadora para cada grupo de entradas no se conoce previamente, es necesario averiguarlo
después de entrenar a la red.
c) Arquitectura
En la arquitectura de la versión original (LVQ) del modelo Kohonen no existen conexiones hacia
atrás. Se trata de una de las N neuronas entrada y M de salida. Cada una de las N neuronas de
entrada se conecta a las M de salida a través de conexiones hacia adelante (feedfoward).
Entre las neuronas de la capa de salida, puede decirse que existen conexiones laterales de
inhibición implícitas, pues aunque no estén conectadas, cada una de las neuronas tiene cierta
influencia sobre sus vecinas. El valor que se asigne a los pesos de las conexiones hacia adelante
entre las capas de entrada y salida (Wji) durante el proceso de aprendizaje de la red depende
precisamente de esta interacción lateral.
La influencia que una neurona ejerce sobre las demás es función de la distancia entre ellas, siendo
muy pequeñas cuando están muy alejadas. Es frecuente que dicha influencia tenga la forma de un
sombrero mexicano.
45
Es decir son redes en cascada.
Página: 61
Por otra parte, la versión del modelo denominada TPM (Topology Preserving Map) trata de
establecer una correspondencia entre los datos de entrada y un espacio bidimensional de salida,
creando mapas topológicos de dos dimensiones, de tal forma que ante datos de entrada con
características comunes se deben activar neuronas situadas en zonas próximas de la capa de
salida.
d) Aprendizaje
Suponga que se tiene patrones de entrada n-dimensionales. Inicialmente se tiene que: aleatorizar
los pesos de las conexiones; normalizar los pesos de las conexiones incidentes de cada unidad de
salida sobre la unidad, dividiendo cada conexión por la raíz cuadrada de la suma de los cuadrados
de las conexiones de cada unidad; normalizar igualmente los datos de entrada. Luego se aplica el
siguiente conjunto de pasos:
1. Aplicar un patrón de entrada.
2. Calcular alguna medida de similitud/disimilitud (producto interno, distancia euclídea o de
Mahalanobis, etc.) entre las entradas y los pesos de las conexiones.
3. La unidad de salida con los pesos más parecidos al patrón de entrada es declarada
ganadora. El vector de pesos de la unidad ganadora, se convierte en el centro de un grupo
de vectores cercanos a él.
4. Modificar los pesos de los vectores de pesos Wj "cercanos" a Wc (distancia menor a D).
De esta manera se consigue que los vectores de pesos de la unidad ganadora y de su
"vecindario" se parezcan cada vez más al patrón de entrada que hace ganar a esa unidad.
5. Repetir los pasos 1 a 4 con todos los patrones de entrada.
A medida que avanza el aprendizaje hay que ir reduciendo D y a. Kohonen recomienda empezar
con un valor de a cercano a 1 y reducirlo gradualmente hasta 0.1. D puede empezar como la
máxima distancia existente entre los pesos de las conexiones al principio y acabar siendo tan
pequeño que no quede ninguna unidad en el vecindario de la unidad ganadora. En ese momento
solo se entrenará una unidad, que al final tendrá su vector de pesos igual al vector de entrada.
4.7. APLICACIONES
Las redes neuronales artificiales constituyen una tecnología computacional emergente que puede
ser utilizada en una amplia variedad de aplicaciones, tanto científicas como comerciales. Las
redes neuronales pueden ser desarrolladas en periodos de tiempo razonables y pueden realizar
tareas concretas de mejor manera que tecnologías convencionales similares, incluyendo los
sistemas expertos. Cuando se implementan en el hardware de la computadora, presentan una alta
tolerancia a fallas del sistema y proporcionan un grado de paralelismo bastante grande para el
procesamiento de los datos.
Página: 62
industrial y exploración científica. El dominio de aplicación de las RNA se puede clasificar de la
siguiente forma: asociación y clasificación, regeneración de patrones, regresión y generalización,
y optimización.
Existen muchos tipos diferentes de redes neuronales, las aplicaciones actuales se agrupan en los
siguientes conjuntos:
Ejercicios #4
Página: 63
9. Construir un archivo de datos que contenga tres columnas de datos (x; sin(x); cos(x)) e
intentar aproximarlo con un Perceptrón multicapa. Probar varios valores de los parámetros de
aprendizaje y momento, luego comparar la convergencia en los distintos casos. ¿Que valores
se recomienda para este problema?.
10. Considerar la función no lineal y(x) = 20e-8.5x(ln(0.9 x + 0.2) + 1.5). Luego generar un
fichero con 50 pares (x, y(x)) en el intervalo (0,1) para entrenar un Perceptrón multicapa.
Generar también un fichero con otros 50 puntos distintos para comprobar la validez de la
aproximación.
Bibliografía
Página: 64
Referencias Electrónicas
Página: 65
5 ALGORITMOS GENETICOS
5.1. FUNDAMENTOS
Los algoritmos genéticos son métodos de optimización de problemas basados en los mecanismos
de la reproducción natural, los cuales son operaciones sobre el material genético de los
organismos vivientes. Esta información genética está contenida en el núcleo de las células
sexuales de las criaturas. La información genética contiene un cierto numero de cromosomas,
denominados genes, que se encargan de transportar la información genética. Así, por razones
obvias, los algoritmos genéticos operan sobre estructuras que están organizadas de manera
similar a los cromosomas.
y la función:
c': S Æ X
s Æ c'(s)
Encontrar un s0 que pertenece a S tal que f' :=f'oc' es máximo en s0, es decir
f'(s0)=sup[f'(s)]
Página: 66
5.2. TEORIA DE LA EVOLUCION
La teoría de la evolución46, fue descrita por Charles Darwin 20 años después de su viaje por las
islas Galápagos en el Beagle, en el libro Sobre el Origen de las Especies por medio de la
Selección Natural. Este libro fue bastante polémico en su tiempo, y en cualquier caso es una
descripción incompleta de la evolución. La hipótesis de Darwin, presentada junto con Wallace,
que llegó a las mismas conclusiones independientemente, es que pequeños cambios heredables en
los seres vivos y la selección son los dos hechos que provocan el cambio en la Naturaleza y la
generación de nuevas especies. Pero Darwin desconocía cual es la base de la herencia, pensaba
que los rasgos de un ser vivo eran como un fluido, y que los "fluidos" de los dos padres se
mezclaban en la descendencia; esta hipótesis tenía el problema de que al cabo de cierto tiempo,
una población tendría los mismos rasgos intermedios.
Fue Mendel quien descubrió que los caracteres se heredaban de forma discreta, y que se tomaban
del padre o de la madre, dependiendo de su carácter dominante o recesivo. A estos caracteres que
podían tomar diferentes valores se les llamaron genes, y a los valores que podían tomar, alelos.
En realidad, las teorías de Mendel, que trabajó en total aislamiento, se olvidaron y no se
volvieron a redes cubrir hasta principios del siglo XX. Además, hasta 1930 el geneticista inglés
Robert Aylmer no relacionó ambas teorías, demostrando que los genes mendelianos eran los que
proporcionaban el mecanismo necesario para la evolución.
46
Más que teoría es una serie de hechos probados.
Página: 67
Más o menos por la misma época, el biólogo alemán Walther Flemming describió los
cromosomas biológicos, descritos en la Fig. 5.1., como ciertos filamentos en los que se agregaba
la cromatina del núcleo celular durante la división; más adelante se descubrió que las células de
cada especie viviente tenían un número fijo y característico de cromosomas.
Y no fue hasta los años 50, cuando James Watson y Francis Crick descubrieron que la base
molecular de los genes está en el ácido desoxiribonucleico (ADN), vista en la Fig. 5.2. Los
cromosomas están compuestos de ADN, y por tanto los genes están en los cromosomas.
La macromolécula de ADN está compuesta por bases púricas y pirimídicas, la adenina, citosina,
guanina y timina. La combinación y la secuencia de estas bases forma el código genético, único
para cada ser vivo. Grupos de 3 bases forman un codon, y cada codon codifica un aminoácido; el
código genético codifica todas las proteínas que forman parte de un ser vivo. Mientras que al
código genético se le llama genotipo, al cuerpo que construyen esas proteínas, modificado por la
presión ambiental, la historia vital, y otros mecanismos dentro del cromosoma, se llama fenotipo.
No toda la cadena de ADN codifica proteínas, es decir, no todos son genes; las zonas que
codifican proteínas se llaman intrones, las zonas que no lo hacen, exones. La cantidad de ADN
basura aumenta desde los seres vivos más simples, como las bacterias, donde no hay nada, hasta
los seres humanos, donde gran cantidad del ADN no codifica. Un gen comienza con el sitio 3' o
aceptor y termina con el sitio 5' o donante. Proyectos como el del Genoma Humano tratan de
identificar cuáles son estos genes, sus posiciones, y sus posibles alteraciones, que habitualmente
conducen a enfermedades.
Todos estos hechos forman hoy en día la teoría del neo-darwinismo, que afirma que la historia de
la mayoría de la vida está causada por una serie de procesos que actúan en y dentro de las
poblaciones: reproducción, mutación, competición y selección. La evolución se puede definir
entonces como cambios en el pool o conjunto genético de una población.
Página: 68
5.3. COMPARACIÓN CON LO CONVENCIONAL
La tabla 5.1 muestra las analogías entre la evolución natural y el paradigma de los algoritmos
genéticos.
La representación gráfica de un cromosoma idealizado puede ser vista en la Fig.5.3.. Por otra
parte, un algoritmo genético puede ser visto solamente como un modelo simplificado del proceso
de evolución sin embargo, la diferencia más importante es que la "adaptabilidad" en el mundo
real no puede expresada por un valor simple. La adaptabilidad en el mundo real es un vector
formado por componentes tales como: inteligencia, crecimiento o fertilidad.
1 0 1 1 ... 0
John Holland48 desde pequeño, se preguntaba cómo logra la naturaleza, crear seres cada vez más
perfectos49. Lo curioso era que todo se lleva a cabo sobre la base de interacciones locales entre
individuos, y entre estos y lo que les rodea. No sabía la respuesta, pero tenía una cierta idea de
como hallarla: tratando de hacer pequeños modelos de la naturaleza, que tuvieran alguna de sus
características, y ver cómo funcionaban, para luego extrapolar sus conclusiones a la totalidad. De
hecho, ya de pequeño hacía simulaciones de batallas célebres con todos sus elementos: copiaba
mapas y los cubría luego de pequeños ejércitos que se enfrentaban entre sí.
47
Referido como una población o generación de strings.
48
En la historia de los algoritmos genéticos es considerado su principal representante.
49
Aunque, como se ha visto, esto no es totalmente cierto, o en todo caso depende de qué entienda uno por perfecto.
Página: 69
En los años 50 entró en contacto con las primeras computadoras, donde pudo desarrollar algunas
de sus ideas, aunque no se encontró con un ambiente intelectual fértil para propagarlas. Fue a
principios de los 60, en la Universidad de Michigan en Ann Arbor, donde, al interior del grupo
Logic of Computers, sus ideas comenzaron a desarrollarse y a proporcionar frutos. Además,
leyendo un libro escrito por un biólogo evolucionista, R. A. Fisher, titulado La teoría genética de
la selección natural, comenzó a descubrir los medios de llevar a cabo sus propósitos de
comprensión de la naturaleza. De ese libro aprendió que la evolución era una forma de
adaptación más potente que el simple aprendizaje, y tomó la decisión de aplicar estas ideas para
desarrollar programas bien adaptados para un fin determinado.
En esa universidad, Holland impartía un curso titulado Teoría de sistemas adaptativos. Dentro de
este curso, y con una participación activa por parte de sus estudiantes, fue donde se crearon las
ideas que más tarde se convertirían en los algoritmos genéticos.
Por tanto, cuando Holland se enfrentó a los algoritmos genéticos, los objetivos de su
investigación fueron dos:
a) imitar los procesos adaptativos de los sistemas naturales, y
b) diseñar sistemas artificiales (normalmente programas) que retengan los mecanismos
importantes de los sistemas naturales.
Unos 15 años más adelante, David Goldberg, actual delfín de los algoritmos genéticos, conoció a
Holland, y se convirtió en su estudiante. Goldberg era un ingeniero industrial trabajando en
diseño de pipelines, y fue uno de los primeros que trató de aplicar los algoritmos genéticos a
problemas industriales. Aunque Holland trató de disuadirle, porque pensaba que el problema era
excesivamente complicado como para aplicarle algoritmos genéticos, Goldberg consiguió lo que
quería, escribiendo un algoritmo genético en un ordenador personal Apple II. Estas y otras
aplicaciones creadas por estudiantes de Holland convirtieron a los algoritmos genéticos en un
campo con base suficientemente aceptada para celebrar la primera conferencia en 1985,
ICGA´85. Tal conferencia se sigue celebrando bianualmente.
5.4.1. Anatomía
Los algoritmos genéticos son métodos sistemáticos para la resolución de problemas de búsqueda
y optimización que aplican a estos los mismos métodos de la evolución biológica: selección
basada en la población, reproducción sexual y mutación.
Los algoritmos genéticos son métodos de optimización, que tratan de resolver un conjunto de
problemas que se ha contemplado anteriormente, es decir, hallar (xi,...,xn) tales que F(xi,...,xn) sea
máximo. En un algoritmo genético, tras parametrizar el problema en una serie de variables,
(xi,...,xn) se codifican en un cromosoma. Todas los operadores utilizados por un algoritmo
genético se aplicarán sobre estos cromosomas, o sobre poblaciones de ellos. En el algoritmo
genético va implícito el método para resolver el problema; son solo parámetros de tal método los
que están codificados, a diferencia de otros algoritmos evolutivos como la programación
genética. Hay que tener en cuenta que un algoritmo genético es independiente del problema, lo
cual lo hace un algoritmo robusto, por ser útil para cualquier problema, pero a la vez débil, pues
no está especializado en ninguno.
Página: 70
Las soluciones codificadas en un cromosoma compiten para ver cuál constituye la mejor
solución50. El ambiente, constituido por las otras camaradas soluciones, ejercerá una presión
selectiva sobre la población, de forma que sólo los mejor adaptados51 sobrevivan o transmitan su
legado de material genético a las siguientes generaciones, igual que en la evolución de las
especies. La diversidad genética se introduce mediante mutaciones y reproducción sexual.
En la Naturaleza lo único que hay que optimizar es la supervivencia, y eso significa a su vez
maximizar diversos factores y minimizar otros. Un algoritmo genético, sin embargo, se usará
para optimizar habitualmente sólo una función, no diversas funciones relacionadas entre sí
simultáneamente. Este tipo de optimización, denominada optimización multimodal, también se
suele abordar con un algoritmo genético especializado.
Por lo tanto, un algoritmo genético consiste en lo siguiente: hallar los parámetros de los cuales
depende el problema, codificarlos en un cromosoma, y luego aplicar los métodos de la evolución:
selección y reproducción sexual con intercambio de información y alteraciones que generan
diversidad.
El número de bits usado para cada parámetro dependerá de la precisión que se quiera en el mismo
o del número de opciones posibles (alelos) que tenga ese parámetro. Hay otras codificaciones
posibles, usando alfabetos de diferente cardinalidad; sin embargo, uno de los resultados
fundamentales en la teoría de algoritmos genéticos, el teorema de los esquemas, afirma que la
codificación óptima, es decir, aquella sobre la que los algoritmos genéticos funcionan mejor, es
aquella que tiene un alfabeto de cardinalidad 2.
Aquí se está codificando cada parámetro como un número entero de n bits. En realidad, se puede
utilizar cualquier otra representación interna: bcd, código Gray y codificación en forma de
números reales, por ejemplo.
La mayoría de las veces, una codificación correcta es la clave de una buena resolución del
problema. Generalmente, la regla heurística que se utiliza es la llamada regla de los bloques de
construcción, es decir, parámetros relacionados entre sí deben de estar cercanos en el
cromosoma.
En todo caso, se puede ser bastante creativo con la codificación del problema, teniendo siempre
en cuenta la regla anterior. Esto puede llevar a usar cromosomas bidimensionales, o
tridimensionales, o con relaciones entre genes que no sean puramente lineales de vecindad. En
algunos casos, cuando no se conoce de antemano el número de variables del problema, caben dos
opciones: codificar también el número de variables, fijando un número máximo, o bien, lo cual es
50
Aunque no necesariamente la mejor de todas las soluciones posibles.
51
Entiéndase como aquellos que resuelvan mejor el problema.
Página: 71
mucho más natural, crear un cromosoma que pueda variar de longitud. Para ello, claro está, se
necesitan operadores genéticos que alteren la longitud.
La forma general de un algoritmo genético está constituida por las líneas asociadas al siguiente
algoritmo:
Algoritmo 1
t := 0 ;
Calcular B0 ;
WHILE la condición de salida no se cumpla DO
Begin
Bt+1 := δ(Bt) ;
t := t+1
End
Desde este punto de vista, está claro que los algoritmos genéticos son métodos robustos, los
cuales pueden, debido a su generalidad, ser aplicados a un rango amplio de diferentes problemas
de optimización. Por otra parte, los algoritmos genéticos pueden ser de rendimiento débil debido
a que desagregan toda la información que puede ser útil.
Página: 72
En el resto del texto, se considera la clase más simple de un algoritmo genético la cual es
ampliamente utilizada en la solución de problemas de optimización continuos como también en la
optimización discreta. Esto está caracterizado como un algoritmo genético simple que opera
sobre strings de tamaño fijo n (no necesariamente binario).
Un Algoritmo Genético simple, el cual opera sobre strings de tamaño fijo, incorpora los
siguientes métodos en su operador de transición (δ):
Algoritmo 2
Sea m el tamaño de la población
t :=0
Calcular la población inicial B=(b1,0,... , bm,0) ;
WHILE no se cumpla la condición de parada DO
Begin
FOR i=1 TO m DO
Begin
Seleccionar un elemento g de Bt;
IF Random[0,1]<=Pc THEN
Aparear g con un elemento individual de Bt ;
Mutar g
bi,t+1 :=g
End
t :=t+1
End
5.6.1. Selección
La selección es el componente que guía el algoritmo hacia la solución de un problema. Puede ser
un mecanismo que favorece a los individuos o elementos más aptos con desventajas para los
menos aptos. Puede ser una operación determinista, pero, en la mayoría de las implementaciones,
tiene componentes aleatorios.
52
En otra bibliografía es referida como apareamiento.
Página: 73
Una variante, la cual es muy popular, constituye el siguiente esquema, donde la probabilidad de
elegir un cierto elemento es proporcional a su capacidad de adaptación. Esto puede ser
considerado como un experimento randómico con:
Por supuesto esta fórmula solamente tiene sentido si todos los valores adaptables son positivos. Si
este no es el caso, se puede aplicar una transformación apropiada. Este experimento aleatorio es,
en algún sentido, un juego de ruleta en aquellos casos en los cuales la probabilidad para
seleccionar un cierto individuo o elemento depende de su adaptabilidad.
Puede ser necesario utilizar una función de adaptabilidad transformada en la selección. Luego las
probabilidades pueden ser expresadas como:
donde ϕ : R Æ R+ es una función no decreciente. La función ϕ puede también ser utilizada para
acelerar la acumulación de individuos o elementos con gran capacidad de adaptación. Considere
por ejemplo que ϕ(x)=xp con p>1, en este caso llega a ser, dependiendo de p, menos probable la
selección de strings menos adaptables.
La formulación algorítmica del esquema de selección (Ec. 4.1.1) puede ser escrito como sigue (de
manera análoga puede escribirse el caso asociado a la (Ec. 4.1.2))
Algoritmo 3
x := Random[0,1];
i :=1
WHILE i<m & x< ∑f(bj,t)/ ∑f(bk,t) DO
i :=i+1;
seleccionar bi,t ;
5.6.2. Apareamiento
Básicamente, el apareamiento es el intercambio de genes entre los cromosomas de los dos padres.
En la meiosis53 real esto es, de manera simple, el intercambio de partes de los cromosomas. En la
53
Conocida tambien como meyosis, se refiere a la division de la célula viva, en la que las células hijas tienen la
mitad de cromosomas que la célula madre, y constituye el estadio esencial de la formación de las células.
Página: 74
investigación sobre algoritmos genéticos con objetos de tamaño fijo el apareamiento puede, en el
caso más simple, ser realizado como el corte de dos strings en una posición aleatoriamente
elegida y el intercambio de las partes. Este proceso es visualizado en la Fig. 5.4.
X1 X2 X3 X4 X5 X6 X7 X8 X1 X2 X3 X4 Y5 Y6 Y7 Y8
Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y1 Y2 Y3 Y4 X5 X6 X7 X8
Algoritmo 4
pos :=Random{1,...,n-1} ;
FOR i := 1 TO pos DO
Begin
Child1[i] := Parent1[i] ;
Child2[i] := Parent2[i] ;
End
FOR i := pos +1 TO n DO
Begin
Child1[i] := Parent2[i] ;
Child2[i] := Parent1[i] ;
End
5.6.3. Mutación
Página: 75
mediante una radiación radioactiva u otras influencias similares. En la reproducción real es la
probabilidad de que un cierto gen mutado sea casi igual para todos los genes.
1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1
De esta manera se puede utilizar la siguiente técnica de mutación para un string binario S:
Algoritmo 5
FOR i :=1 TO n DO
IF Random[0,1]<PM THEN
invert S[i] ;
Algoritmo 6
t :=0
Calcular la población inicial B=(b1,0,... , bm,0) ;
WHILE no se cumpla la condición de parada DO
Begin
FOR i=1 TO m DO
Begin
(* selección proporcional *)
x := Random[0,1];
l :=1
WHILE l<m & x< (f(bj,t)/ (f(bj,t) DO
l :=l+1;
g := bl,t ;
(* apareamiento en un punto *)
IF Random[0,1]<=Pc THEN
Página: 76
Begin
Parent1 := g ;
Parent2 := bRandom{1,...,m},t ;
pos :=Random{1,n-1} ;
FOR i := 1 TO pos DO
Begin
Child1[i] := Parent1[i] ;
Child2[i] := Parent2[i] ;
End
FOR i := pos+1 TO n DO
Begin
Child1[i] := Parent2[i] ;
Child2[i] := Parent1[i] ;
End
IF Random[0,1] < 1/2 THEN
g := Child1 ;
ELSE
g := Child2 ;
End
(* mutación *)
FOR i :=1 TO n DO
IF Random[0,1]<pM THEN
invert g[i] ;
bi,t+1 := g
end
t := t+1 ;
End
Considere el ejemplo de un viajante que parte de una ciudad ”origen” y tiene que pasar por un
número determinado de ciudades, por decir 20. La ruta a escoger resulta diferente según el orden
en que se visiten las ciudades. Si se van visitando ciudades en un orden en que cada una está lo
más cerca posible de la próxima entonces el viaje resultará más rentable que si se visita primero
una ciudad que esté muy lejos de la ciudad “origen”, luego se vuelve a otra cerca de ésta, luego se
vuelve a ir al otro extremo etc. Por eso resulta interesante visitar las ciudades en un orden en que
la distancia total sea la más corta posible.
Ahora se intenta desarrollar un programa que consista en lo siguiente: dadas las coordenadas
(x,y) de las ciudades origen y de las demás ciudades a visitar, que el programa se encargue de
evaluar todas las maneras posibles de efectuar el recorrido y vaya calculando sus respectivas
distancias una a una, proporcionando como resultado el recorrido más pequeño.
Pero esto sin duda tiene un problema. En el ejemplo con 20 ciudades el número de maneras
diferentes de recorrerlas es 20!, este es un número astronómico aún para las computadoras
contemporáneas. Si se diseña un programa que intente calcular la solución exacta por evaluación
de todas las rutas posibles, el programa no será rentable en tiempo. Si el número de ciudades en
Página: 77
lugar de ser 20 fuese 40 el número de maneras distintas de recorrerlas resulta del orden de 8x1047.
Es decir, se descarta este método por ser demasiado costoso en tiempo, incluso irrealizable en
muchos casos.
Los algoritmos genéticos permiten encontrar una solución aproximada a este problema, una
solución que puede ser muy cercana a la mejor. Se identifica cada ciudad con un número
secuencial (1, 2, 3... 20) y se genera 20 ristras54 con los 20 números de las ciudades ordenados de
manera aleatoria se generan 20 rutas diferentes generadas al azar. A continuación se reproducen
esas ristras; esto significa que a partir de cada una se generan 10 más, a la primera de ellas se la
nombra como la ristra “padre” y en cada una de las otras 9 se permutan dos ciudades al azar. Por
ejemplo, si una de las 20 ristras generadas de manera aleatoria contiene un orden concreto de
visita de las ciudades: 20 3 4 1 15 16 18 2 5 6 7 11 12 8 9 10 19 17 14 13, entonces la primera de
las 10 ristras que se llamaran “hijas” será ella misma y la segunda será la misma, excepto que se
habrá permutado 2 elementos (por ejemplo la posición del 20 por la del 4), obteniendo así una
ristra diferente que implica una nueva manera de recorrer las ciudades. Y las demás
análogamente a esta segunda.
Se tenia 20 ristras “padres”, de cada una se ha generado 10 ristras hijas diferentes, por tanto se
tienen 200 ristras diferentes. Ahora es posible calcular la distancia que supondría recorrer las
ciudades en cada una de estas 200 rutas ordenadas. Con este método se hará solamente 200
operaciones frente a las [Link].176.640.000 que tendrían que hacerse si se evaluara todas
las posibilidades. De estas 200 rutas se opta por las 20 mejores, esto es, con las ristras que
generaban las 20 maneras más rentables (en distancia) para realizar el viaje. Con estas 20 se
repetirá el proceso de generar otras 200, de ellas se calcula de nuevo sus 20 mejores y se puede
repetir toda esta operación (es lo que se llama el algoritmo genético) todas las veces que se
quiera. Se puede comprobar cómo en cada “reproducción” y selección de las 20 mejores ristras
van apareciendo mejores resultados que en la anterior reproducción. Al terminar del programa, de
esas 20 mejores ristras solamente se elige la mejor, considerándola como resultado final. Ésa es
una buena aproximación a la solución.
Pero, ¿cómo saber si esa aproximación es buena, si lo único que se ha realizado es evaluar un
cierto número de ristras que es mucho menor al número de maneras posibles de visitar todas las
ciudades? Y si se repite el algoritmo, por decir 50 veces, ¿no sería menos complicado considerar
50x200=10000 ristras y evaluar las distancias de cada una de ellas prescindiendo de los
operadores genéticos de mutación y reproducción?
Las dos preguntas son ampliamente razonables. Es molestoso considerar, si se repite el algoritmo
genético 50 veces y por lo tanto analizar 50x200=10000 ristras aleatorias, que la mejor solución
no pueda acercarse a la manera de recorrer las ciudades por el camino más corto, ya que el
número de maneras distintas es [Link].176.640.000 y solamente se ha considerado 10.000
de ellas. Por otra parte, también se hace la pregunta acerca de la evaluación “genética” de esas
10.000 ristras y la razón por la que no se considera una evaluación secuencial, cosa que ahorraría
tiempo.
Continuando con las consideraciones, al igual que un padre se parece a su hijo, las ristras
generadas se parecen a las ristras “padres” que se usaron para generarlas. Cuando se generaron
54
Hace referencia a una serie de cosas inmateriales que van o se suceden una tras otra. En es caso presente un orden
secuencial.
Página: 78
las 20 primeras ristras, éstas contaban con una posibilidad de ser buenas o malas aleatoriamente,
pero las ristras “hijas” que generan una ristra buena tienen tendencia a ser en su mayoría buenas,
y así, al ir seleccionando las mejores, es posible recorrer adecuadamente el espacio de las
soluciones buenas y no es lo mismo generar 10.000 ristras aleatoriamente y buscar el mejor
resultado.
Con este ejemplo se ilustra los algoritmos genéticos. La eficiencia de éstos depende de la
elección correcta, a priori desconocida, del número de iteraciones, ristras seleccionadas
inicialmente, ristras hijas que genera cada ristra padre, etc. Se puede decir que los algoritmos
genéticos resuelven a diario problemas similares al del viajante.
La idea de aplicar los algoritmos genéticos al problema de la inducción de programas puede ser
atribuida a J. Holland. Otra fuente importante de investigación fue realizada por J.R. Koza quien
introdujo el término "programación genética".
Es posible reescribir cada programa como una lista o un árbol, pero esta puede ser una tarea
crucial para muchos de los lenguajes de programación procedimentales comunes. En muchas
aplicaciones y tratamientos teóricos es utilizado el lenguaje LISP. Los programas LISP son listas
anidadas fáciles en su manejo, debido a que no es necesaria su reescritura.
55
La estructura de este árbol no es necesariamente binaria.
Página: 79
Otro aspecto importante a considerar es cual subconjunto del lenguaje se podría utilizar. Esta
claro que no es útil en cada aplicación utilizar el conjunto completo de instrucciones que el
lenguaje ofrece. Considere por ejemplo un problema en el que se tiene que aprender operaciones
lógicas. Para tal caso se puede restringir solamente a las operaciones lógicas AND, OR y NOT o
a un subconjunto de las mismas. Bajo la suposición de que el problema puede ser resuelto dentro
del subconjunto, una elección inteligente de dicho subconjunto puede incrementar el rendimiento
de manera marcada. La razón simple es que, el espacio de búsqueda es bastante pequeño,
consecuentemente esto incrementa la elección de una solución considerablemente buena.
5.9.2. Iniciación
Considere por ejemplo la BNF del siguiente lenguaje que puede ser utilizado para representar
funciones lógicas ternarias:
Programa := <expresión>;
<expresión> := "("<variable>")" |
"("<unario><expresión>")"|
"("<binario><expresión><expresión>")" ;
<variable> := "x"|"y"|"z" ;
<unario> := "NOT" ;
<binario> := "AND"|"OR" ;
Obviamente, los elementos sintácticos de este lenguaje parecido al LISP son los paréntesis, las
variables x,y y z y los operadores NOT, AND y OR. Está claro que un procedimiento, el cual crea
strings con entradas randómicas a partir de este conjunto de elementos sintácticos, no es una
variante buena de un procedimiento de inicialización, a causa de que la probabilidad de creación
de strings sintácticamente correctos es demasiado baja.
Una mejor alternativa podría constituir un procedimiento el cual está basado en el BNF del
lenguaje mismo. Tal algoritmo puede ser establecido como sigue :
Algoritmo BNFL
Empezar con la raíz de la sintaxis (en nuestro caso el Programa).
Seleccionar una alternativa de la expresión sintáctica actual de manera
randómica.
Llenar la alternativa y aplicar el procedimiento de manera recursiva para
todas las subexpresiones atómicas de la alternativa.
Fin BNFL
Es comprensible, de manera intuitiva, que se deben incluir mecanismos que eviten el final de la
recursión en este método. Una oportunidad común consiste en fijar una profundidad máxima y
Página: 80
evitar alternativas no atómicas si esta profundidad es alcanzada o excedida. El siguiente ejemplo
ilustra este método de manera mas clara para el caso del lenguaje definido.
Ejemplo:
El punto de inicio es, por supuesto, la expresión raíz56.
<expresión>
segunda alternativa
(<unario> <expresión> <expresión>)
<unario> es una expresión atómica con solo una alternativa
(NOT <expresión> <expresión>)
tercera alternativa
(NOT (<binario> <expresión> <expresión>) <expresión>
primera alternativa
(NOT (AND (<expresión> <expresión>) <expresión>
primera alternativa
(NOT (AND (<variable> <expresión>) <expresión>
segunda alternativa
(NOT (AND (y) <expresión>) <expresión>)
... y así sucesivamente
La segunda cuestión, que difiere del caso asociado a los strings de manera notable, es el
apareamiento sobre la operación. Por supuesto, las listas anidadas pueden ser consideradas como
strings para los cuales un apareamiento estándar puede ser aplicado sobre la operación. El
problema es nuevamente que la probabilidad de generar strings sintácticamente correctos
mediante esta forma es muy pequeña. Por consiguiente, es necesario encontrar una alternativa la
cual preserve la correctitud sintáctica.
Para este propósito, se utiliza la interpretación de los programas como árboles. Por supuesto,
existen muchas interpretaciones posibles de esta clase, el enfoque que se discute es el propuesto
por A. Geyer-Schulz. Un programa correcto puede derivarse de una gramática resaltada en al
menos una forma (no necesariamente única). Esta derivación de árboles por si misma es utilizada
luego como una representación. No es trivial proporcionar una formulación exacta del
procedimiento para determinar la derivación de árboles para una expresión dada. A continuación
se presenta un ejemplo simple el cual aclara los conceptos mencionados.
56
En este ejemplo se subraya la evaluación que se realiza.
Página: 81
Ejemplo:
En la Fig. 5.6. se muestra la derivación de árboles de la expresión: ((x ∧ ¬y) ∨ ¬z), que puede ser
escrito como: (OR(AND(x)(NOT(y)))(NOT(z))), en el lenguaje establecido en el anterior párrafo.
Puede considerarse fácilmente que cada subarbol corresponde a una subexpresión. Las raíces de
estos subarboles son denominadas etiquetas. El método más común para aparear dos expresiones,
las que pueden ser expresadas como árboles de derivación, consiste en intercambiar subarboles
que empiezan con nodos iguales, es decir los cuales cuentan con etiquetas iguales. Esto garantiza
que la descendencia a partir de los nodos intercambiados es correcta sintácticamente.
Ejemplo 2:
La figura adjunta muestra un ejemplo simple para aparear dos árboles de derivación. El resultado
en forma de lista anidada es el siguiente:
Después de todo este trabajo preparatorio resulta comparativamente fácil proporcionar una
técnica de mutación, de la manera usual, para los programas. El método más común es
seleccionar aleatoriamente un subarbol del árbol de derivación y reemplazarlo por otro subarbol
que fue generado aleatoriamente aplicando el mismo método discutido en conexión con el
procedimiento de inicialización. Por supuesto, se debe prestar atención especial a la profundidad
de este subarbol. Luego se garantiza que la correctitud sintáctica del programa no es dañada por
la operación de mutación.
Página: 82
5.9.5. Función de Adaptación
Otra tarea no trivial en conexión con la programación genética es la definición de una función de
adaptación apropiada la cual se encargue de medir cuan bien, un determinado programa, resuelve
un problema. La solución de este problema depende fuertemente del problema mismo, una receta
universal para definir la medida de adaptación apropiada no puede ser proporcionada de manera
eficiente.
Una técnica utilizada comúnmente consiste en aplicar un programa a un numero finito de pruebas
de entrada para las cuales la salida deseada es conocida. Por supuesto, esos casos deben ser
seleccionados de manera clara de tal forma que sean realmente representativos. Luego, el número
de casos para los cuales la salida correcta es obtenida puede ser tomada como una medida para la
correctitud del programa. El siguiente ejemplo muestra un caso donde este método no es útil.
Ejemplo:
Función := <expresión>;
<expresión> := "("<variable>")" |
"("<constante>")"|
"("<binario><expresión><expresión>")" ;
<variable> := "x";
<constante> := <numero>"/"<numero> ;
<numero> := "0" | ... | "9" | <numero> ;
<binario> := "+" | "-" | "*" ;
la cual puede ser minimizada, donde f es la función de adaptación del polinomio P, y || . || es una
norma arbitraria sobre Rn (por ejemplo la norma euclideana).
5.10. APLICACIONES
En toda ejecución de un algoritmo genético hay que decidir con qué frecuencia se va a aplicar
cada uno de los algoritmos genéticos; en algunos casos, como en la mutación o el apareamiento
uniforme, se debe de añadir algún parámetro adicional, que indique con qué frecuencia se va a
aplicar dentro de cada gen del cromosoma. La frecuencia de aplicación de cada operador estará
en función del problema; teniendo en cuenta los efectos de cada operador, tendrá que aplicarse
con cierta frecuencia o no. Generalmente, la mutación y otros operadores que generen diversidad
se suele aplicar con poca frecuencia; la recombinación se suele aplicar con frecuencia alta.
En general, la frecuencia de los operadores no varía durante la ejecución del algoritmo, pero hay
que tener en cuenta que cada operador es más efectivo en un momento de la ejecución. Por
Página: 83
ejemplo, al principio, en la fase denominada de exploración, los más eficaces son la mutación y
el apareamiento; posteriormente, cuando la población ha convergido en parte, el apareamiento no
es útil, pues se está trabajando con individuos bastante similares, y es poca la información que se
intercambia. Sin embargo, si se produce un estancamiento, la mutación tampoco es útil, pues está
reduciendo el algoritmo genético a una búsqueda aleatoria; y hay que aplicar otros operadores. En
todo caso, se pueden usar operadores especializados.
Una de las primeras aplicaciones de las técnicas evolutivas fue la reportada por Friedman, quien
propuso la evolución de circuitos de control, similares a las actuales redes neuronales.
Ejercicios # 5
1. Encontrar un x0 que pertenece a X tal que f es mínimo en x0, donde f: X Æ R es una función
arbitraria de valor real, es decir f(x0)= Infimo f(x).
2. Escribir los pasos que representen un algoritmo genético general.
3. Construir un algoritmo genético para resolver el juego del tic tac toe (tres en raya).
4. Modificar el algoritmo genético de las ciudades imponiendo bloqueos entre algunas de ellas
(por ejemplo que no se pueda ir directamente de la ciudad 8 a la 5 ni de la 2 a la 12 porque
sus carreteras suelen estar muy frecuentadas y se tarda más).
5. Crear un algoritmo genético que reparta los asientos de los invitados de una boda según sus
preferencias, es decir cada invitado dará una lista de personas al lado de las que querría estar
Página: 84
sentado y otra lista con las personas que no quiere que se sienten a su lado. Hay que conseguir
que se cumplan en su mayoría sus preferencias
6. Construir un algoritmo genético que se utilice para el juego de las damas en un tablero de 8x8
entradas.
7. Se tiene una lista de profesores, cada uno puede impartir una o varias asignaturas, y una lista
de clases con el numero de horas que debe recibir cada asignatura y se pide diseñar un
algoritmo genético que reparta el horario de las asignaturas y asigne a ellas profesores de
manera que no se solapen clases del mismo profesor. El problema se puede complicar si se
impone restricciones como que un profesor no puede dar clase a una cierta hora, etc.
8. Explicar las razones por las cuales se utiliza la programación genética, en lugar de la
programación tradicional, y en que casos es útil contar con este paradigma.
9. Construir un árbol de derivación para la siguiente expresión (a ∧ ¬b) ∨ ¬c.
10. Desarrollar el árbol de derivación para la expresión ((¬x∧y)∨ ¬z) y luego aparearlo con el
árbol (x ∨ ¬y) .
Bibliografía
1. Daniels, R.L. & Carrillo, J.E. Beta-Robust scheduling for single-machine systems with
uncertain processing times, IEEE Transactions, Volume 29, pages 977-985, 1997.
2. Davis, L. Job Shop Scheduling with Genetic Algorithms, Proceedings of the First
International Conference on Genetic Algorithms, 1986.
3. Gideon, W. A Tutorial in Stochastic Scheduling. Editors: Chretienne, P. and Coffman,
E.G. Jr. and Lenstra, J.K. and Liu, Z., Scheduling: Theory and its applications, chapter 3,
pages 33-64, John Wiley & Sons, 1995.
4. Goldberg, D.E. Genetic Algorithms in Search, Optimization, and Machine Learning,
Addison Wesley, MA, 1989.
5. Goldberg, D.E. Genetic and Evolutionary Algorithms come of Age. Communications of
the ACM, Volume 37, No. 3, pages 113-119, 1994.
6. Holland, J.H. Adaptation in Natural and Artificial Systems. MIT Press, Cambridge MA,
1975.
7. James C. Bean. Genetics and random keys for sequencing and [Link]
Journal on Computing, 6(2):154-160, 1994.
8. Jia, C. & Tu, F. Stochastic Single Machine Scheduling Problem with V-Shaped or
Lambda-shaped Optimal Sequences. Proceedings of the 35th Conference on Decision and
Control, 1996.
9. Jones, A. & Rabelo, L.C. Survey of Job Shop Scheduling Techniques, NISTIR, National
Institute of Standards and Technology, Gaithersburg, MD, 1998 (on-line publication).
10. Kowalczyk, R. Constraint Consistent Genetic Algorithms. In Proceedings of the 1997
IEEE Conference on Evolutionary Computation, pages 343-348, Indianapolis, USA, April
1997. IEEE.
11. Koziel S. and Z. Michalewicz. A Decoder-based Evolutionary Algorithm for Constrained
Parameter Optimization Problems. In T. [Link], A. E. Eiben, M. Schoenauer, and H.-P.
Schwefel, editors, Proceedings of the 5th Parallel Problem Solving from Nature (PPSN
V), pages 231-240, Amsterdam, September 1998. Springer-Verlag.
12. Lawrence D. editor. Handbook of Genetic Algorithms. Van Nostrand Reinhold, New
York, 1991.
Página: 85
13. Lin, Shyh-Chang, Goodman, E.D. and Punch, [Link]. A Genetic Algorithm Approach to
Dynamic Job Shop Scheduling Problem. Proceedings of the Seventh International
Conference on Genetic Algorithms,1997.
14. Matfeld, D. Evolutionary Search and the Job Shop. Heidelberg, Physica Verlag, 1995.
15. Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs. Springer-
Verlag, third edition, 1996.
16. Montana, D., Brinn, M., Moore, S. & Bidwell, G. Genetic Algorithms for Complex, Real-
Time Scheduling, IEEE International Conference on Systems, Man and Cybernetics,
Volume 3, pages 2213-2218, 1998.
17. Morton, T.E. & Pentico, D.W. Heuristic Scheduling Systems with Applications to
Production Systems and Project Management. Wiley series in engineering and technology
management, Wiley-Interscience, 1993.
18. Pinedo, M. Scheduling: Theory, Algorithms and Systems. Englewood Cliffs,Prentice
Hall,N.J., 1995.
Referencias Electrónicas
Página: 86
6 VIDA ARTIFICIAL
6.1. INTRODUCCION
La definición de vida no solamente tiene como objeto los caracteres que abarcan los organismos,
sino también los mecanismos que los originan. Se afirma que la vida, como un proceso físico
dinámico, podría "frecuentar" otro material físico, con la condición de que este material sea
organizado de manera correcta. Ciertamente el proceso dinámico que constituye la vida debe
compartir ciertas características universales que permitan reconocerla de manera simple mediante
su forma dinámica, sin referenciar a su materia. Este fenómeno general de vida -la vida a través
de todos los posibles subestratos materiales- es el verdadero asunto sujeto de la biología.
Según Nason, "una forma viviente es, en esencia, un sistema complejo, altamente organizado,
independiente, con una estructura físico-química definida, capaz de utilizar la materia y energía
del medio ambiente por medio de cadenas integradas y autoestablecidas de reacciones físico-
químicas, para poder así crecer y reproducirse".
Es extremadamente difícil distinguir las propiedades esenciales de la vida de las propiedades que
son incidentales a la vida, las cuales parecen ser universales a la vida en la tierra debido a una
combinación de los accidentes históricos locales y los descendientes genéticos comunes. Según
Langton, una forma vigente es tratar de sintetizar las formas de vida de manera alternativa, tal
como sucede con la vida artificial, caracterizada como una forma de vida hecha por el hombre
antes que por la naturaleza.
La vida artificial es un campo relativamente nuevo que emplea un enfoque sintético para el
estudio de la vida como debería ser. En el campo, de la vida como debería ser, se considera a la
vida como una propiedad de la organización de la materia, antes que una propiedad de la materia
organizada.
Mientras que la biología está ampliamente interesada en las bases materiales de la vida, la vida
artificial está interesada en las bases formales de la vida. La biología comenzó su estudio de
arriba hacia abajo, observando los organismos vivos como una maquina bioquímica compleja, y
trabajando de manera analítica hacia abajo57 en busca de los mecanismos de vida. Langton
57
Esta referencia se realiza hacia los órganos, tejidos, células, membranas, y finalmente moléculas.
Página: 87
menciona que la Vida Artificial empieza de la parte de abajo, considerando a un organismo como
una gran población de maquinas simples, y trabaja hacia arriba de manera sintética58.
a) debido a que uno de los principales objetivos de la Vida Artificial es producir la evolución
conduciendo al incremento espontaneo de la diversidad y la complejidad, existe un campo
rico de teoría biológica que sugiere los factores que pueden contribuir aquel proceso; y
b) a la extensión de los procesos corrientes de la vida que son los mismos en la vida artificial
y la vida orgánica, en este contexto los modelos de vida artificial proporcionan una nueva
herramienta para el estudio experimental de tales procesos, los cuales pueden ser
utilizados para demostrar que la biología teórica no puede ser probada por técnicas
analíticas y experimentales tradicionales.
La Vida Artificial se puede considerar como la parte de la Inteligencia Artificial que pretende
reproducir los procesos y comportamientos típicos de los seres vivos con el objetivo de resolver
problemas. También podemos definirla como el intento de crear vida, o algo parecido a la vida,
mediante la combinación de símbolos (datos) y procesos de símbolos (programas)
independientemente del soporte físico de estos símbolos y procesos
En 1984, cuando fue fundado el Instituto de Santa Fe, entidad privada dedicada a la enseñanza
superior e investigación interdisciplinaria en Sistemas Complejos. La Vida Artificial es un área
de investigación de reciente creación dentro del terreno más amplio de los Sistemas Complejos.
El rito fundacional se celebró en los Estados Unidos en Septiembre de 1987, con sede en el
Laboratorio Nacional Los Álamos de Santa Fe, Nuevo México. El nombre de este evento fue
"Interdisciplinary Workshop on the Synthesis and Simulation of Living Systems", también
conocido como ALIFE I, y su gestor el investigador Christopher Langton. Dicho evento, que
inaugura oficialmente la Vida Artificial como área independiente de investigaci6n, fue apoyado
por el "Center of Nonlinear Studies", el "Santa Fe Institute" y "Apple Computer Inc". Allí se
dieron cita científicos dispersos procedentes de diversas disciplinas como la biología,
informática, física, filosofía y antropología. Tras la segunda edición tomó carácter de congreso
bienal. En Mayo de 1996 se celebró en Japón ALIFE IV.
58
De manera similar a la construcción de grandes agregados de objetos simples gobernados por reglas que
interactuan una con otra de manera no lineal.
59
Una referencia inicial se realiza en el apartado 2, una referencia complementaria completa puede ser consultada en
el apartado "Mecánica de la Vida".
60
Traducción de la palabra inglesa "bottom-up".
Página: 88
La siguiente definición de Vida Artificial se debe a Chistopher Langton: "... es el campo de
estudio dedicado a la comprensión de la vida, intentando abstraer los principios dinámicos
fundamentales que subyacen a los fenómenos biológicos, y recreando esas dinámicas en otros
medios físicos61 haciéndolos accesibles a nuevos tipos de manejo experimental y de pruebas."
Es posible apuntar algunas causas del nacimiento de la Vida Artificial como campo específico:
61
Específicamente se refiere a las computadoras
Página: 89
la auto-organización de unidades autorreplicantes involucradas en procesos
autocatalíticos, es decir, en los que el producto creado acelera el proceso de producción, y
produce unidades cada vez más complejas.
d) Procesos al nivel colectivo. Buscando determinar los mecanismos de interacción entre los
individuos de una colectividad que hacen emerger comportamientos adaptativos o
inteligentes al nivel de toda la colectividad de organismos. La simulación de hormigueros
es un ejemplo, y sugiere múltiples aplicaciones a la Informática, sobre todo en cuanto a
que tiene un campo de interés común con la Inteligencia Artificial Distribuida. La
investigación en la comunicación animal y en el origen del lenguaje entran también en
este nivel.
e) Evolución filogenética. Investigando las leyes que rigen la evolución de las poblaciones,
los mecanismos de transmisión genética, selección natural y adaptación de las especies. El
problema de la evolución ha tenido consecuencias en el mundo de la informática: los
algoritmos genéticos ya desarrollados por Holland desde los años 70 han encontrado
importantes aplicaciones en la optimización de funciones. Esto ha dado lugar al
nacimiento de la computación evolutiva y de la programación evolutiva como áreas de
investigaci6n específicas.
Las herramientas informáticas usadas en vida artificial son principalmente las redes neuronales y
los algoritmos genéticos62. En unas pocas palabras, los primeros tratan de imitar la forma como
funciona el sistema nervioso de los animales, y los segundos tratan de resolver problemas de
optimización imitando la selección natural y su base molecular: mutación y entrecruzamiento de
material genético.
62
En los capítulos 4 y 5 se hace una referencia extensa a estos dos temas.
Página: 90
También se usan autómatas celulares y lógica difusa. Generalmente, se dota de algún tipo de
"cerebro" a un agente (con reglas difusas o con redes neuronales), y se les hace evolucionar
usando algoritmos genéticos. Esta es la base, pero el fin de la evolución puede ser muy diferente.
Chistopher Langton propone las siguientes características, como esenciales para los modelos de
vida artificial basados en computadoras:
a) reproducción propia,
b) comportamiento emergente,
c) metabolismo y adaptabilidad y
d) evolución63.
63
Estas características son desarrolladas mas adelante, concretamente en el apartado "Mecánica de la Vida".
Página: 91
d) Robótica. Los robots representan un enfoque diferente a los sistemas vivientes. Al igual
que el biomorfismo carecen de la habilidad de reproducción propia, aunque algunas
compañías de computadoras (ej NeXT) no están lejos de contar con microcomputadoras
controladores de robots que generen otras muchas microcomputadoras. Los robots poseen
muchas de las propiedades que son asociadas de manera normal con la vida (complejidad,
integración de partes, movimiento, etc).
e) Redes Autocataliticas. La antípoda de los robots de alta tecnología, los cuales son
diseñados y construidos por humanos con los más altos niveles de tecnología, son
sistemas simples que generan de manera espontánea vida, procesos de reproducción
propia (o promoción propia) en una sopa química simulada. Dos de estos tipos de
sistemas están bajo investigación activa: las redes catalíticas y los autómatas celulares. Un
ejemplo especial bastante bien desarrollado de las redes autocataliticas es la teoría de los
hiperciclos (Manfred Eigen y Peter Schuster). Los hiperciclos son redes conectadas de
elementos reactivos (por ejemplo RNAs) que permiten la evolución coherente de
entidades funcionalmente acopladas y de replicación propia. Estas entidades son
asociadas de manera típica a redes acopladas de reactivos químicos.
f) Autómatas Celulares. Son arreglos de células, cada uno de los cuales asume datos
discretos. Estos estados pueden cambiar hacia tiempos discretos de acuerdo a reglas bien
definidas. Las reglas de transición son tomadas como las mismas en todo el arreglo y se
toman en cuenta del estado corriente de la célula junto con los estados de sus vecinos
inmediatos. Todas las células son asumidas para ser actualizadas de manera simultánea.
Tanto las redes autocataliticas como los autómatas celulares generan su propia
organización, sus propios patrones de replicación los cuales persisten a través del tiempo.
g) Nucleotidos Artificiales. Es importante reconocer en principio que la VA no está
confinada solamente al medio ambiente de las computadoras. Mientras que pueden existir
varios subestratos que soporten las características de la vida, se conoce de manera
incuestionable que solo existe una, la relacionada con la vida natural, y que la variación
de la vida como compuesto de componentes químicos es solamente el principio de la
exploración de un área de grandes posibilidades. La sociedad debe prepararse con mucho
cuidado para los cambios en gran escala provocados por la investigación en el campo de
la biología molecular. Muchos de los cambios de la ingeniería genética en nuevas formas
de vida pueden ser materiales de investigación para mejora o para ser eliminados, lo
ultimo debido al uso de un código genético alternativo y algún método forzado.
h) Evolución Cultural. Las ideas actuales convertidas en realidad, quizá originadas de
culturas foráneas, pueden cambiar la cultura milenaria en formas favorables para su
supervivencia, pueden extenderse a otras sociedades y luego morir. Las colecciones de
ideas frecuentemente forman medio ambientes de soporte mutuo para su propagación.
Actualmente las distintas tendencias religiosas y las novedades como las tortugas ninja
son solamente dos ejemplos.
Parece razonable sugerir que existe un cierto conjunto de funciones con los cuales cualquier
sistema físico debe ser capaz de ejecutarse si es clasificado como vivo. Que equivale a decir que
un organismo vivo debe ser capaz de poder hacer ciertas cosas. Desafortunadamente, definir tal
lista de funciones es una confusión casi intratable, aún cuando solo se investigue sobre los
organismos basados en la química del carbono. No importa que clase de lista se establezca, esta
no puede ser general, siempre existen excepciones que pueden ser encontradas.
Página: 92
El problema mencionado en el párrafo precedente es particularmente agudo cuando se trata con
funciones macroscópicas. Si se enfoca en los detalles microscópicos de como trabajan los
organismos basados en la química del carbono, se puede dibujar una línea, entre lo que es la vida
y lo que no es, de manera mas cerrada. Para definir la vida de manera abstracta, es necesario
alejarse de los detalles microscópicos que caracterizan los sistemas específicos y hacer énfasis en
sus propiedades abstractas.
Para el estudio emprendido el interés está centrado en organismos individuales, antes que las
poblaciones. En este dominio, los investigadores de la VA toman con gran énfasis muchos de los
aspectos funcionales de la vida, entre los cuales destacan:
Los organismos vivos, en general, son capaces de reproducirse. Aunque individuos específicos no
puedan ser capaces de reproducirse debido a circunstancias accidentales, al final de su etapa en el
ciclo de vida, o a una inusual combinación genética, miembros de la población entera deben tener
la capacidad de realizar copias completas o cercanas de si mismos.
Se empieza visualizando como trabaja el DNA. La molécula de DNA podría ser descrita
propiamente como un cristal de una dimensión o una fibra. Sin embargo, a pesar de lo que se
piensa de los cristales, el DNA es un cristal aperiódico. Antes que ser un compuesto de una
molécula simple (denominada nucleótido) repetida infinitas veces, el DNA consiste de cuatro
diferentes nucleotidos denominados bases, los cuales son funcionalmente idénticos con respecto a
la estructura del DNA mismo. Esas bases pueden ser sustituidas por cualquier otra en las celdas
del cristal sin alterar la estructura física de la molécula de DNA. Por consiguiente se puede
concebir la construcción de una molécula de DNA para codificar cualquier clase de información
deseada.
Los genes en el DNA pueden ser considerados como "instrucciones" complejas que pueden ser
"ejecutadas" por las proteínas que realizan todas las funciones de la célula. Las instrucciones
Página: 93
codificadas en el DNA son referenciadas como su genotipo64. En el caso de los organismos vivos,
la "ejecución de las instrucciones" consiste del funcionamiento propio de las distintas proteínas
en una célula para producir vida. Esta complejidad extrema, relacionada con la ejecución de las
instrucciones, es denominada su fenotipo65.
Muchos organismos vivos utilizan energía para mantenerse en un estado de baja entropía y llevar
a cabo sus actividades, incluida la reproducción propia. Los organismos vivos hacen uso de la
energía directa tomada del sol, o convierten la energía almacenada en moléculas orgánicas
complejas en formas que puedan utilizar. El proceso mediante el cual los organismos vivos
utilizan materia y energía es denominado el metabolismo del organismo.
Por otra parte, los organismos vivos individuales pueden generalmente interactuar y modificar su
medio ambiente, como también adaptarse a los cambios en dicho ambiente. Esta capacidad de
adaptación es conocida como adaptabilidad, la misma hace que un organismo sea flexible y
estable en la faceta del cambio. Por supuesto que la habilidad de un organismo para adaptarse a
su medio ambiente es limitado, especialmente cuando se enfrenta a un cambio extremo66.
6.4.4. Evolución
La capacidad de los organismos de cambiar sus características, influenciada por los factores de
herencia de los padres, a través del tiempo es conocida como evolución. Muchos organismos
biológicos parecen tener, al menos alguna capacidad, para contar con la evolución al estilo
Darwiniano, especialmente el referido a que cualquier organismo vivo tiene una progenie.
Generalmente, la derivación genética de esta progenie no es la misma que la derivación genética
de los padres. Así la composición genética de una población puede cambiar a través del tiempo.
En realidad, la composición genética de una población puede ser influenciada por factores
externos, donde un gen prueba tener mas capacidad de supervivencia que otros.
6.5. APLICACIONES
a) Los Autómatas Celulares y entre ellos, el Juego de la Vida de Conway, constituyen los
ejemplos más sencillos de Vida Artificial.
c) En Dioses, Hombres, Demonios y Máquinas se tratan temas de interés científico en
computación que incumben a las religiones, como el de las máquinas que se
autorreproducen; las máquinas que aprenden y la relación hombre-máquina.
64
Conjunto de potencialidades genéticas de un individuo, determinadas por la combinación de sus alelos. Constituye
el patrimonio genético que permanece fijo en la fecundación.
65
Conjunto de caracteres morfológicos y fisiológicos observables en un organismo.
66
Por ejemplo, cuando un pez sale fuera del agua, el organismo no es capaz de adaptarse, en cuyo caso muere.
Página: 94
d) En Autómatas como analogías de nuestro Universo, se describe el trabajo con analogías
entre nuestro universo real y universos simulados en la creación de hipótesis acerca del
tiempo, el espacio, la vida y el azar.
e) El tamagotchi y mi hijo ¿Quién es la mascota de quién? En este documento se analiza la
influencia sobre los niños de las simulaciones de vida como juguetes, del tipo del
Tamagotchi.
f) En el artículo "Agentes Autodidactas ¿Futuro o Realidad?" se describe cómo es posible
crear un sistema de Vida Artificial con múltiples agentes capaces de aprender a resolver
por sí mismos cualquier tipo de problema.
Ejercicios # 6
Página: 95
Bibliografía
Referencias Electrónicas
Página: 96
7 REALIDAD VIRTUAL
7.1. INTRODUCCION
Soñar es una forma de realizar todos aquellos deseos negados. Soñando es posible volar, alcanzar
las más altas cumbres del planeta o descender a las más profundas simas. Por desgracia en
general no se puede dominar los sueños y al final la realidad acaba limitada a lo que ofrece la
percepción de los sentidos. Franquear la barrera de los sentidos y ofrecer sensaciones de extremo
realismo debería ser casi como un sueño controlado.
En este nuevo mundo, la velocidad y potencia de la computadora se combinan con los avances en
el procesamiento de imágenes y, los mecanismos de búsqueda e intuición humana en la
comunicación por computadora, para dar lugar al medio experimental denominado "realidad
virtual".
Una computadora diseñada para desarrollar buenas imágenes y en rápida sucesión debe tener
gran potencia y velocidad además de buenos recursos de visualización. En cada instante de
tiempo estas tecnologías generalmente se encuentran en diferentes fases de desarrollo. Su
coordinación conlleva irregularidades en el tiempo o en la calidad. Para la creación de mundos
virtuales, cada una de las tecnologías involucradas debe alcanzar en cada fase una intensidad y
unos recursos que puedan ser utilizados de manera efectiva junto con las demás. La convergencia
debe dar como resultado una inmersión que tenga las siguientes características:
Desde sus principios la Realidad Virtual (RV) ha tratado de ofrecer una interfaz entre los sentidos
y las máquinas, pero entonces, ¿qué es la realidad virtual? Un teclado y una pantalla también
ofrecen una interfaz adecuada, pero no brindan una experiencia realista. El término clave para
definir qué es y qué no es la RV es el de "inmersión". La frontera entre los sistemas de RV y los
sistemas convencionales está en que mientras que en los primeros se percibe la información como
una verdad representada mediante caracteres, imágenes, audio o incluso gráficos
tridimensionales, en los segundos se encuentra la información, tal y como si compartiese el
mismo espacio en el que uno se encuentra.
Página: 97
La realidad virtual explota todas las técnicas de reproducción de imágenes y las extiende,
usándolas dentro del entorno en el que el usuario puede examinar, manipular e interaccionar con
los objetos expuestos. De este modo los investigadores y usuarios son capaces de utilizar
imágenes para transmitir, no solamente la información, sino también la capacidad de
interpretarla.
7.2. HISTORIA
La historia anterior de la realidad virtual, antes de 1990, puede ser descrita mediante un numero
pequeño de investigaciones de laboratorio que siguen caminos independientes. Los años 90
significaron el crecimiento tanto del numero de investigadores de RV y la calidad de
investigación, guiada por el decremento en los costos de los equipos computacionales. Durante
este periodo fueron realizadas muchas conferencias sobre RV, resultando en el desarrollo de una
comunidad de investigación sobre realidad virtual con una agenda y visión compartida. Hacia
1993 el IEEE llegó a patrocinar en gran escala conferencias técnicas sobre realidad virtual.
El simposio internacional anual sobre RV (VRAIS '93) se llevó a cabo en Seattle, Washington,
patrocinado por la IEEE NCC (Neural Networks Council). En octubre el simposio de la IEEE
sobre las fronteras de la investigación en RV fue realizado como parte del simposio sobre
Visualización '93 realizado en San José, California, patrocinado por la IEEE TCCG (Technical
Committee on Computer Graphics). Ambos eventos lograron la cohesión de la comunidad de
investigación enfocada en los problemas de la RV. El VRAIS '95 se llevo a cabo en Carolina del
Norte en marzo de 1995. El programa técnico del VRAIS '95 reflejo el rango amplio de
resultados que se ejecutan en la RV. Este simposio realizó un énfasis amplio sobre los factores
humanos, logrando siete artículos en dos sesiones. La RV distribuida mereció también una gran
atención, con una sesión sobre infraestructura de la RV y una sobre aplicaciones de la RV
distribuida. Una sesión se ocupó sobre las técnicas para popularizar los medio ambientes
virtuales.
Diseñar los medios para comunicarse de manera fácil y precisa con una computadora, además de
controlar lo que debe ocurrir, no es una tarea fácil. Un campo de estudio amplio se desarrolló en
torno al problema de la interacción humana con máquinas complejas y es denominada de manera
alterna: ingeniería humana, factorización humana, análisis de factores humanos, tecnología de
interfaces humanas, interacción hombre - máquina, etc.
Los problemas más complejos de las interfaces radican en la interacción entre el hombre y la
máquina, esta tarea normalmente es bastante complicada y no se ha conseguido perfeccionar
todavía. Se recomienda que las interfaces deben ser diseñadas por personas con un alto nivel de
conocimientos en varios dominios (psicológico, temático y técnico), con el objeto de minimizar
la perdida de información, recogiendo el máximo beneficio del esfuerzo humano realizado. Las
interfaces deben servir como escenarios de una comunicación excelente y deben ser sencillas de
utilizar para todo tipo de usuarios. Las interfaces deben ahorrar la constante interrupción en el
entrenamiento relativo al pensamiento del usuario.
Página: 98
7.4. ESPACIO DE LA REALIDAD VIRTUAL
Un gráfico útil que muestra la ubicación de la realidad virtual en un espacio doble de transportación y
artificialidad se muestra en la Fig. 7.1.
7.5. DEFINICION
Cualquier definición sobre RV se considera como transitoria, debido a que es una tecnología en
plena evolución. Sin embargo una de las definiciones más aceptada es la siguiente: "Realidad
Virtual es simulación por computadora, dinámica y tridimensional, con alto contenido gráfico,
acústico y táctil, orientado a la visualización de situaciones complejas y variables, durante la
cual el usuario ingresa, mediante el uso de sofisticados dispositivos de entrada a "mundos" que
aparentan ser reales, resultando inmerso en ambientes altamente participativos, de origen
artificial".
7.6. DISPOSITIVOS
Cuando se escucha hablar de Realidad Virtual a casi todos nos viene a la mente la imagen de una
persona con un casco y un guante lleno de cables acariciando el aire, estos son probablemente dos
de los dispositivos de Realidad Virtual más clásicos y paradójicamente menos utilizados en la
actualidad. ¿Cuales son, entonces, esos dispositivos que consiguen introducir al ser humano en
una experiencia virtual?. Se pueden distinguir los siguientes tipos de dispositivos:
Página: 99
como actuar sobre él. El problema de todos estos dispositivos está en el tiempo de
latencia67 y en que es un único usuario el que participa de la experiencia.
c) Dispositivos de seguimiento. Permiten determinar la posición dentro del mundo virtual,
así como los distintos giros que se puedan realizar sobre cualquiera de los ejes de
coordenadas. Generalmente esta información debe generar una respuesta visual adecuada
porque de lo contrario puede llegar a producirse una sensación de mareo en el usuario68.
d) Visión estereoscópica. Es un elemento casi imprescindible en un sistema de RV.
Consiste en generar por separado las imágenes del ojo izquierdo y del ojo derecho que el
cerebro se encargará de mezclar para proporcionar una sensación de tridimensionalidad.
Un dispositivo clásico de visión estereoscópica es el HMD69, generalmente constituido
por dos pequeñas pantallas integradas en un casco que se conectan al resto del sistema
mediante una serie de cables que salen por la nuca. El problema de estos dispositivos es
que son excesivamente caros, sirven sólo para una persona y limitan en gran medida su
movilidad. Otro de los dispositivos clásicos son las gafas estereoscópicas, que mediante
diversas tecnologías se encargan de filtrar la imagen para cada ojo, a partir de una pantalla
en la que se proyectan alternativamente y a gran velocidad las imágenes izquierda y
derecha. Esto permite que varios usuarios perciban la misma experiencia
7.7. CLASIFICACION
La RV está presente en cada vez en más áreas, tales como la arquitectura, educación,
investigación, simulación y entrenamiento, información y publicidad, o el cada vez más exigente
mercado del entretenimiento. Dentro de los sistemas de Realidad Virtual, según el tipo de
interface con el usuario, se pueden distinguir los siguientes:
a) Sistemas de ventana
b) Sistemas de mapeo por vídeo
c) Sistemas inmersivos
d) Sistemas de telepresencia
e) Sistemas de realidad mixta
f) Sistemas de pecera
Son también conocidos como Sistemas de RV sin inmersión. Muchos de estos sistemas utilizan
un monitor convencional para mostrar un mundo virtual. Estos sistemas son conocidos como
"mundos en ventanas70" o como RV de escritorio. Los sistemas de ventana siguen la línea
definida por Ivan Sutherland, quien a finales de los años sesenta estableció que: "uno debe mirar
a la pantalla de la computadora como si fuera una ventana a través de la cual contempla un
mundo virtual. El reto es hacer que la imagen que aparece en la pantalla luzca real, suene real y
que los objetos que en ella se representan actúen con realismo".
De manera practica consiste en utilizar monitores convencionales para representar las imágenes
realistas. Esta modalidad existe desde prácticamente el origen de las propias tecnologías de
67
Instante desde el que se ejerce acción sobre el mundo hasta que se perciben los resultados.
68
Se refiere al hecho de girar la cabeza y no percibir un cambio simultáneo en el punto de vista de la escena, o
cuando el cambio del punto de vista no es lo suficientemente progresivo.
69
De la palabra inglesa Head Mounted Display.
70
De la palabra inglesa window on world (WOW).
Página: 100
Realidad Virtual y su capacidad de inmersión es escasa. De todos durante más de 30 años este ha
sido el campo de investigación sobre algoritmos de visualización 3D por excelencia, y la práctica
totalidad de estos ha surgido del desarrollo de los sistemas WoW o "Desktop Virtual Reality".
Constituyen una forma particular de sistema inmersivo. Estos sistemas fueron inspirados en el
pensamiento del artista Myron Krueger. La realidad artificial de estos sistemas se basa en la
filmación mediante cámaras de vídeo de una o más personas y la incorporación de dichas
imágenes a la pantalla de la computadora, donde interactuan en tiempo real con otros usuarios o
con otras imágenes gráficas generadas por el sistema computacional. De esta manera las acciones
que realiza el usuario en el exterior de la pantalla se reproducen en la pantalla de la computadora
permitiendo interactuar lo que esta afuera con lo que esta adentro. El usuario puede, mediante
este enfoque, simular su participación en aventuras, deportes y otras formas de interacción física.
En otras palabras se puede decir que constituyen una variación de los sistemas WoW donde se
mezcla la silueta del usuario -capturada mediante vídeo convencional- con un escenario generado
por ordenador. Estos no son sistemas inmersivos, de hecho estos sistemas "dan la vuelta" al
concepto de Realidad Virtual ya que en vez de estar orientados a hacer que el usuario se sienta
integrado en el mundo, tratan de generar un mundo que integra la imagen del usuario71. Se puede
ver este tipo de sistemas funcionando cada vez que se observa la predicción del tiempo en la
televisión.
Son los sistemas mas perfeccionados de RV, los cuales permiten que el usuario pueda sentirse
"sumergido" en el interior de un mundo virtual. El fenómeno de inmersión puede ser
experimentado mediante cuatro modalidades diferentes, dependiendo de la estrategia adoptada
para generar esta ilusión, estas modalidades son:
a) Operador aislado.
b) Cabina personal.
c) Cabina colectiva.
d) Caverna
Estos sistemas tratan de introducir al propio usuario dentro del mundo virtual, proporcionándole
sensaciones realistas como la estereoscopia72 o el sonido envolvente. Tradicionalmente se han
utilizados "video cascos" (HMD), aunque cada vez se encuentran más en boga los sistemas de
tipo "caverna" en los que el usuario se introduce en habitaciones cerradas sobre cuyas paredes se
proyectan las imágenes del mundo virtual. La ventaja de estos últimos sistemas es que permiten
la participación de varios usuarios en una misma experiencia virtual.
Los sistemas inmersivos generalmente se encuentran equipados con un casco visor HMD. Este
dispositivo está dotado de un casco o mascara que contiene recursos visuales, en forma de dos
mini pantallas que interactuan para producir visión estereoscópica y recursos acústicos de efectos
tridimensionales.
71
El usuario se transforma en virtual, en vez de serlo el mundo.
72
Hace referencia a la visión tridimensional.
Página: 101
Una variante de este tipo de sistemas se basa en el uso de múltiples pantallas de proyección de
gran tamaño, dispuestas de manera ortogonal, para crear un ambiente tridimensional o caverna en
la cual se ubica a un grupo de usuarios. De estos usuarios, uno es el que asume la tarea de
navegación, mientras los demás pueden dedicarse a visualizar los ambientes de RV dinámicos en
tiempo real.
Consiste en proporcionar al usuario las sensaciones recogidas por sensores distantes situados en
un determinado campo de operaciones. Esto permitiría teleoperar sondas-robot en el espacio,
realizar operaciones quirúrgicas a distancia o dirigir vehículos de forma remota.
Esta tecnología se encarga de fusionar sensores remotos en el mundo real con los sentidos de un
operador humano. Los sensores remotos utilizados pueden encontrarse instalados en un robot. De
esta forma, el usuario puede operar el equipo como si fuera parte componente de sus sentidos. La
telepresencia contempla, de manera obligatoria, un grado de inmersión que involucra el uso de
control remoto, pero posee características propias suficientes como para asignarle una
clasificación particular.
Son sistemas parecidos a los WoW, en los que se combina una pantalla con un dispositivo de
posicionamiento, de forma que la pantalla supone una verdadera ventana al escenario virtual y
moviendo esta se puede cambiar el punto de vista sobre el mundo. A veces se utilizan visores
estereoscópicos en vez de pantallas planas.
Este sistema combina un monitor de despliegue estereoscópico utilizando lentes LCD con
obturadores acoplados a un rastreador. El sistema resultante es superior a la combinación simple
del sistema estéreo WoW debido a los efectos de realismo tridimensional de movimiento
introducidos por el rastreador.
7.8. APLICACIONES
Página: 102
Se puede establecer cinco categorías de aplicaciones profesionales de la Realidad Virtual:
Es difícil predecir cual puede ser el futuro de esta tecnología, el mayor problema a resolver en la
actualidad es el proporcionar una interfaz adecuada entre el mundo virtual y el usuario que lo
habita. Acciones cotidianas como tomar algo que está sobre la mesa y dejarlo sobre el suelo
pueden no ser tan evidentes en un entorno de Realidad Virtual, en el que a lo mejor la acción de
tomar un objeto se realiza señalando con el dedo y la de dejarlo abriendo la palma de la mano.
Una cosa es el posicionarse en un escenario y otra bien distinta es poder interactuar con los
propios objetos. Obtener una información sobre el tacto, dureza o peso de los objetos podría
ayudar a realizar sobre el mundo virtual las mismas acciones que se realizan sobre nuestro mundo
real y que resultan evidentes, de forma más natural.
Otra área en la que se investiga es las interfaces gráficas de usuario, campo en el que parece
evidente que algún día deberá migrar de las interfaces planas actuales a nuevas y espectaculares
interfaces gráficas tridimensionales. Llegados a este punto habrá que rescribir muchas de las
analogías que se utilizan en los Sistemas Operativos actuales y que todos damos por válidas, por
73
Hace referencia a la programación de movimientos sobre un robot virtual que reproducirá un robot real.
Página: 103
ejemplo el "cortar" y "pegar" es algo que se realiza sobre el plano, mientras que tal vez sobre el
espacio debería empezar a hablarse de "coger" y "dejar".
Por último, también el concepto de "comunidad virtual" empieza a tomar importancia, tal vez en
un futuro bastante más cercano de lo que se cree la videoconferencia sea sustituida por salas
virtuales en la que personajes -conocidos como "avatares"- que representan a usuarios del mundo
real charlen e intercambien información de una forma tan natural como si todos ellos estuviesen
presentes en la misma estancia.
Ejercicios # 7
Bibliografía
Referencias Electrónicas
Página: 104
2. [Link]/CapeCanaveral/Lab/3925/[Link] Que es realidad virtual.
Proyectos.
3. [Link]/CapeCanaveral/Lab/3925/[Link] Aplicaciones de la realidad virtual
a la realidad real.
4. [Link] (en inglés) Club de realidad virtual.
5. [Link] (en inglés) Realidad virtual y Superscape Software.
6. [Link] Página de animación.
7. [Link]/liendo/charlas/virtual/[Link] Ensayo sobre virtualización de la
realidad.
8. [Link] Enlaces a realidad virtual.
9. [Link] Página mexicana sobre realidad virtual y sus
aplicaciones.
10. [Link] Clemson University, VR research and activities.
11. [Link] Georgia Institute of Technology, The Graphics,
Visualization and Usability Center.
12. [Link] Ian's VR Buying Guide.
13. [Link] Michigan University, Virtual Reality Laboratory (VRL).
14. [Link] Rutgers CAIP Virtual Reality Lab.
15. [Link] University of Washington, The Human Interface
Technology Lab.
16. [Link] Georgia Tech, The Interactive Visualizer.
17. [Link] VRML polyhedra, Virtual
Polyhedra.
18. [Link] Mississippi State Virtual Environment/Interactive Systems
Program.
19. [Link] Montgomery Blair High School Virtual
Walkthrough.
20. [Link] The MR Toolkit.
21. [Link] VENUS the Virtual Environment Navigation in the
Underground Sites.
Página: 105
GLOSARIO
Algoritmos Genéticos (Genetic Algorithm)
Son algoritmos matemáticos aplicables a problemas de optimización, basados en la teoría de la
evolución de Darwin, operando en un ciclo simple de selección y reproducción, implicando una
recombinación y mutación del "material genético" de las soluciones. Una "población" de posibles
soluciones se genera al azar, se evalúan con respecto a un objetivos y las mas aptas se combinan
entre si para producir nuevas soluciones. El ciclo se repite hasta llegar a una solución aceptable o
al determinarse el óptimo de una función.
C
Lenguaje de alto nivel usado para la programación de sistemas, estructurado en bloques y con
grandes facilidades para controlar las máquinas al nivel de hardware.
Conversor (Transducer)
Es un equipo que convierte una forma de energía en otra forma de energía. Por ejemplo, un
"transducer" puede acompañarse de un amplificador que convierte o transduce electricidad en
sonido.
Fractales (Fractals)
Modelos matemáticos para describir la naturaleza irregular de líneas, planos o volúmenes. Se
pueden aplicar para representar modelos de datos.
Inteligencia Artificial Es el campo de la ciencia de la computación dedicado a analizar y
desarrollar sistemas que reproduzcan e imiten los procesos de pensamiento y razonamiento del
hombre.
Página: 106
Lógica Inductiva (Inductive Logic)
Lógica donde la agrupación de reglas que describen comportamientos particulares conducen a
una regla general
Percepción (Perception)
Es un proceso de organización e interpretación de información sensorial que se lleva a cabo en el
cerebro y cuyo propósito es brindar significado a la información que ingresa por los sentidos.
Tanto la sensación como la percepción son procesos inseparables. Cuando el cerebro recibe
información sensorial de los nervios aferentes, por ejemplo, dicha información es
automáticamente interpretada. Por tanto, muchos psicólogos se refieren a la sensación y a la
percepción como un sistema unificado de procesamiento de información. El medio ambiente es
un lugar lleno de significados, sonidos, olores, y tacto. En este sentido es importante que dentro
de la experiencia sensorial se cuente con la capacidad de detectar y discriminar estímulos.
Realidad (Reality)
Existencia real y efectiva de una cosa. Verdad, ingenuidad, sinceridad.
Sensación (Sentation)
Es el proceso de detección y codificación de estímulos provenientes del mundo. Los estímulos
emiten energía física -por ejemplo, luz, sonido, y calor-. Los órganos de los sentidos detectan esta
energía y la transforman, o "transducen", en códigos que pueden ser transmitidos al cerebro. El
primer paso en las sensaciones se encuentra en las células receptoras, las cuales responden a
ciertas formas de energía. En este sentido, la retina del ojo es sensible a la luz, y las células
ciliares del oído son sensibles a las vibraciones que generan los sonidos. La energía física es
transformada a impulsos eléctricos; la información que lleva estos impulsos eléctricos viajan por
Página: 107
las fibras nerviosas que conectadas los órganos de los sentidos con el sistema nervioso central. La
información acerca del mundo externo viaja para apropiarse de áreas de la corteza cerebral.
Virtual
Que tiene "virtud" para producir un efecto, aunque no lo produce de frecuente. Implícito, tácito.
Que tiene existencia aparente y no real.
Virtud
Actividad o fuerza de las cosas para producir o causar sus efectos.
Página: 108