unidad 1 introducción a los sistemas inteligentes · web viewcon lógica difusa, los subconjuntos...
TRANSCRIPT
1
En está unidad se estudiara la definición de un sistema inteligente, los requisitos que
debe cumplir, la definición de inteligencia artificial, los principales conceptos de
inteligencia máquina, así como el manejo del conocimiento con lógica difusa y lógica
binaria.
1.1 Definición de Sistema Inteligente
Un sistema inteligente es un programa de computación que reúne características y
comportamientos asimilables a la inteligencia humana o animal.[1]
Un sistema inteligente es una entidad capaz de decidir por sí misma que acciones
llevará a cabo para alcanzar sus metas basándose en sus percepciones,
conocimientos y experiencias acumuladas.[2]
Los requisitos generales de un Sistema Inteligente son los siguientes:
A) El sistema deberá ser capaz de aprender. Esto implica que el sistema DEBE
tener un recuerdo para el aprendizaje que se mantenga. También el
aprendizaje viene en un número de variedades:
I) TIENE que ser capaz de aprender de sus propias experiencias. Estas se
pueden dividir en nuevas agrupaciones:
1) El aprendizaje a través de ensayo y error.
2) El aprendizaje a través de la observación.
3) El aprendizaje a través del activo razonamiento.
II) Deberá ser capaz de aprender de la instrucción, pero esto no es
necesario. Por lo menos el sistema DEBE tener instintos pre programado.
B) El sistema deberá ser autónomo. Es decir, que deberá ser capaz de hacer las
cosas por sí mismo (sin embargo puede optar por aceptar la ayuda).
2
I) El sistema deberá ser capaz de afectar el medio ambiente sobre la base
de sus propias conclusiones independientes.
II) El sistema deberá ser su propio maestro, ante todo, y por lo tanto no
requerir de la intervención del operador para funcionar. Esto no
necesariamente excluye la adopción de las órdenes de otro sistema, pero
la elección de obedecer deberá ser hecha por el propio sistema.
III) El sistema deberá ser motivado. Debe tener necesidades y
requerimientos que pueden ser satisfechos por sus propias acciones.
C) El sistema deberá ser capaz de razonar. Es decir, se debe utilizar algún tipo
de razonamiento, basado en hechos conocidos y capaces de producir las
ideas que más tarde se hacen hechos conocidos.
D) El sistema deberá ser capaz de desarrollar su autoconciencia. Esto no sólo se
relaciona con la autonomía, el razonamiento y el aprendizaje, sino también
con la consideración de la necesidad de los sentidos internos y externos.
En la figura 1.1 se muestra un sistema inteligente básico.
Fig. 1.1 Sistema Inteligente.
3
1.2 Definición de Inteligencia Artificial (I.A)
Es una de las áreas de las ciencias computacionales encargadas de la creación de
hardware y software que tenga comportamientos inteligentes.[3]
La capacidad de acción de las máquinas para realizar determinados procesos.
La inteligencia artificial se define como aquella inteligencia exhibida por artefactos
creados por humanos es decir, artificial. A menudo se aplica hipotéticamente a las
computadoras. El nombre I.A se usa para referirse al campo de la investigación
científica que intenta acercarse a la creación de los sistemas inteligentes.[4]
Entonces, se puede decir que la I.A incluye características humanas tales como
el aprendizaje, la adaptación, el razonamiento, la autocorrección y el mejoramiento
implícito.
1.3 Conceptos sobre Inteligencia Máquina
1.3.1 Inteligencia MáquinaAl tratar de duplicar algunas de las funciones inteligentes humanas en las máquinas,
se ha dado origen a las llamadas máquinas o sistemas inteligentes. [5]
De estas máquinas, las más notables son las computadoras. Pero hay muchas
otras clases de máquinas que se comportan apropiadamente en respuesta a varias
señales y que también son llamadas máquinas inteligentes.
Los avances de las tecnologías de Hardware y de Software han mejorado la
eficacia de los sistemas inteligentes, resultando en decisiones “casi humanas”,
mejoras en la calidad de ejecución y en la robustez en la percepción, a velocidades y
tolerancias sobrehumanas.
4
Las nuevas tecnologías de Hardware incluyen:
1. Procesadores Masivamente Paralelos.
2. Implementaciones Especiales de Alta Velocidad de Sistemas Cognoscitivos
Difusos.
3. Conceptos innovativos de procesadores asociativos que accesan datos
directamente sin búsqueda.
4. Aceleradores celulares para computadoras personales.
Las nuevas tecnologías en Software incluyen:
1. Redes Neurales Holográficas Avanzadas, Invariantes, de Alto Orden.
2. Sistemas Expertos Difusos.
3. Memorias Holográficas de Contenido Difuso Direccionable.
4. Paquetes de Razonamiento Difuso, Toma de Decisiones y Control.
5. Métodos de Programación para Visión Asociativa y Procesadores Celulares.
6. Ambientes de Software Orientados a Objetos.
7. Herramientas de aplicación adaptativas Orientadas a Usuarios.
Los sistemas inteligentes están diseñados para tratar con problemas altamente
variantes, complejos, ruidosos, y confusos en:
1. Administración.
2. Finanzas.
3. Manufactura.
4. Reconocimiento de Formas.
5. Instrumentación Adaptativa.
6. Procesos de control.
7. Robótica.
8. Diagnostico.
9. Bases de Datos Inteligentes.
10.Máquinas Diccionario, etc.
5
En las décadas pasadas, la inteligencia hecha por el hombre fue canalizada por
dos caminos, la inteligencia artificial simbólica (sistemas expertos) y redes neurales
(sistemas de aprendizaje adaptativo). Estas dos tendencias en conjunto con el
razonamiento difuso han dado paso a grandes avances en las siguientes áreas
cruciales.
1. Procesamiento de información (Soft): Aprendizaje Rápido, Asociaciones
Difusas, Razonamiento y Control Difuso, Generalización.
2. Procesamiento de Información Masivamente en Paralelo: Hardware
Concurrente, Paralelo, Asociativo, y Celular.
Las técnicas aplicadas en los sistemas inteligentes conducen en la elección de
sistemas de razonamiento cuyo comportamiento emula el de la mente humana. Los
sistemas deben de ser capaces de describir, evaluar y aproximar información con
algún grado de difusión, incertidumbre o incompletos. La meta última es hacer el
procesamiento de información intuitivo que muestran los humanos:
1. Razonamiento Inconsciente, Análogo, Paralelo y Distribuido.
2. Reconocimiento de Patrones.
3. Razonamiento Probabilístico.
4. Razonamiento Inductivo en situaciones de información difusa o incompleta.
Los desarrollos recientes en el diseño y adaptación de los sistemas inteligentes,
han proporcionado avances mayores en las siguientes áreas:
1. Modelos biológicos; computadoras neuronales y masivamente paralelas.
2. Computación concurrente; sistemas inteligentes en tiempo real.
3. Integración de Razonamiento, Información y Servicio.
4. Aprendizaje Rápido y Reconocimiento Invariante de Objetos.
5. Programación dinámica, genética y caótica.
6
1.3.2 Modelando la InteligenciaLa inteligencia natural es abundante en todos los ámbitos de la naturaleza. Las redes
neuronales extraen sus principios de las ciencias del cerebro para modelar
reconocimiento, aprendizaje y procesos de planeación. La lógica difusa refleja muy
cercanamente la manera en que razonamos los humanos con reglas aproximadas.
Los algoritmos genéticos aprovechan directamente los conocimientos obtenidos a
través de la investigación en genética, modelando los principios de Darwin de
selección natural. Los Fractales asemejan vagamente la manera en que los sistemas
vivientes repiten patrones mientras crecen. La teoría del caos usa mecanismos
derivados de simulaciones matemáticas de procesos que nunca son exactamente los
mismos dos veces. Los autómatas celulares modelan un universo de dos
dimensiones de células vivientes y un conjunto simple de modos de interacción. Y la
lista sigue.[5]
La familia de métodos emergentes de solución de problemas que imitan la
inteligencia forma parte de la computación cognoscitiva. La computación cognoscitiva
substituye con técnicas de procesamiento más inteligentes, las técnicas de
programaciones tradicionales, largas y complejas. Estos modelos inteligentes se
pueden aplicar a una gama más amplia de situaciones ya que no tienen limitaciones,
por ejemplo, a ser lineales.
Una desventaja de las técnicas de computación cognoscitiva es que,
frecuentemente, no se puede probar su estabilidad de otra manera que con pruebas
de campo extensivas. Las pruebas analíticas tradicionales son imposibles de obtener
para un enfoque donde no se usa metodología analítica o no se sigue un modelo
matemático.
Las tres tecnologías principales de la computación cognoscitiva son:
1. Tecnologías Difusas (fuzzy).
2. Tecnologías Neuronales.
3. Tecnologías Genéticas.
7
Las tres derivan su generalidad de la interpolación de soluciones a problemas
desconocidos a partir de las soluciones a problemas que les son familiares.
1.4 Manejo del Conocimiento
1.4.1 Con Lógica BinariaCon el advenimiento de las computadoras digitales, se creó toda una ciencia para el
manejo de información mediante secuencias de ceros y unos. Esta forma de
representación utiliza la lógica binaria como base para el almacenamiento y
recuperación de información.[5]
Para el manejo del conocimiento se utiliza un lenguaje simbólico. Estos
símbolos se combinan mediante reglas y a partir de éstas pueden modelarse
sistemas complejos, Por ejemplo, los sistemas expertos en inteligencia artificial. La
principal desventaja de esta representación del conocimiento es que se necesitan
demasiadas reglas para poder representar fielmente un sistema del mundo real,
Básicamente porque hay una relación de uno a uno, Es decir, para un caso particular
del sistema del mundo debe existir una regla en el sistema experto.
1.4.2 Con Lógica Difusa¿Qué es la Lógica Difusa?
Método de razonamiento de maquina similar al pensamiento humano, que puede
procesar información incompleta o incierta, característico de muchos sistemas
expertos.
La Lógica Difusa, es una lógica matemática basada en la teoría de conjuntos
que posibilita imitar el comportamiento de la lógica humana.[6]
8
La Lógica Difusa (llamada también Lógica Borrosa por otros autores) o Fuzzy
Logic es básicamente una lógica con múltiples valores, que permite definir valores en
las áreas oscuras entre las evaluaciones convencionales de la lógica precisa: Si/No,
Cierto/Falso, Blanco/Negro, etc. Se considera un súper conjunto de la Lógica
Booleana. Con la Lógica Difusa, las proposiciones pueden ser representadas con
grados de certeza o falsedad. La lógica tradicional de las computadoras opera con
ecuaciones muy precisas y dos respuestas: Si o no, uno o cero.
La lógica difusa se utiliza para representar la información imprecisa, ambigua, o
vaga. Se utiliza para realizar operaciones en los conceptos que están fuera de las
definiciones de la lógica booleana. Un tipo de lógica que reconoce valores
verdaderos y falsos más que simples. Con lógica difusa, los subconjuntos se pueden
representar con grados de la verdad y de la falsedad. Por ejemplo, la declaración, es
hoy soleado, pudo ser el 100% verdad si no hay nubes, 80% verdad si hay algunas
nubes, 50% verdad si esta nublado y 0% verdad si llueve todo el día.
CONJUNTOS DIFUSOSLotfi Asker Zadeh en 1965 definió el concepto de conjunto difuso, basándose en la
idea de que existen conjuntos en los que no está claramente determinado si un
elemento pertenece o no al conjunto. A veces, un elemento pertenece al conjunto
con cierto grado, llamado grado de pertenencia. Por ejemplo, el conjunto de las
personas que son altas es un conjunto difuso, pues no está claro el límite de altura
que establece a partir de qué medida una persona es alta o no lo es. Ese límite es
difuso y, por tanto, el conjunto que delimita también lo será. Un conjunto difuso A
sobre un universo de discurso U (ordenado) es un conjunto de pares dado por:
Donde, µ es la llamada función de pertenencia y µA (u) es el grado de
pertenencia del elemento u al conjunto difuso A. Este grado oscila entre los extremos
9
0 y 1, µA (u) = 0, indica que u no pertenece en absoluto al conjunto difuso A,
µA(u)=1, indica que u pertenece totalmente al conjunto difuso A.
Formalmente un conjunto difuso es una función del conjunto A, llamado
dominio, al intervalo [0,1]:
µ: A à [0,1]
El conjunto de valores de A para las cuales µ > 0 es llamado el soporte de µ.
Para cualquier elemento a Є A, µ(a) es el grado de membrecía de a en A se
representa gráficamente mediante la función de membresía.
OPERACIONES ENTRE CONJUNTOS BORROSOSLas cuatro operaciones básicas definidas sobre los conjuntos clásicos (complemento,
intersección, unión y subconjunto) pueden ser generalizadas a los conjuntos
borrosos. Dentro la teoría de los conjuntos borrosos tiene especial relevancia la que
hace uso de operaciones conocidas como operaciones estándar, definidas como:
1) Complemento:
2) Intersección:
3) Unión:
4) Subconjunto:
10
FUNCIÓN DE MEMBRESÍALa función de membresía también llamada función de inclusión se da de tal modo
que el grado con el que un elemento pertenece al conjunto difuso A. Cuando el
elemento no pertenece al conjunto, y si pertenece totalmente.
A continuación se presentan las funciones de membresía más comunes:
Función LAMBDA o triangularUna función de pertenencia triangular se determina a través de tres parámetros (a, b,
c) de la siguiente manera:
Los parámetros a, b, c determinan los tres ángulos de la función de pertenencia
triangular.
En la figura 1.2 se muestra la función triangular.
1
X – a para x ≤ a
b – a para a < x ≤ b
µ(x)=
c – x para b< x ≤ c
c – b para c ≤ x
0
Fig. 1.2 Función triangular.
Ejemplo de la función triangular
Se desea saber si una persona es adolecente, joven o adulta de acuerdo a lo
siguiente:
a = 15 Adolescentes b = 25 jóvenes c = 35 Adultos
11
Donde: x puede ser cualquier valor a evaluar.
x = 18
Aplicando la función triangular
Triangular (18, 15, 25, 35) = (18-15) / (25-15) = 3/10 = 0.33
El resultado 0.33 indica que la persona es adolescente.
Función PI o trapezoidalLa función de pertenencia trapezoidal se determina por cuatro parámetros (a, b, c, d)
de la siguiente manera:
Los parámetros (a, b, c, d) determinan las coordenadas de los cuatro ángulos
de la función de pertenencia trapezoidal.
En la figura 1.3 se muestra la función trapezoidal.
1
X – a para x ≤ a
b – a para a < x ≤ b
µ(x) = 1 para b < x ≤ c
x – d para c < x ≤ d
c – d para x ≤ d
0Fig. 1.3 Función trapezoidal.
Ejemplo de la función trapezoidal
Se desea saber si la calificacion de un alumno es:
a = 70 aceptable b = 80 bien
c = 90 muy bien d = 100 exelente
12
Donde: x Puede ser cualquier valor a evaluar.
X= 100
Aplicando la funcion trapezoidal
Trapezoidal (100, 70, 80, 90, 100) = (100-100) / (90-100) = 0/-10 = 0
El resultado 0 indica que la calificación es: Excelente.
La representación del conocimiento mediante lógica difusa permite disminuir
drásticamente el número de reglas que se necesitan para modelar un sistema.
Mediante este enfoque, una regla difusa cubre varios casos dentro del sistema del
mundo real.
13
14
En esta unidad se definirá un sistema basado en conocimiento también llamado
sistema experto, para proseguir con las fases del ciclo de vida del sistema basado en
conocimiento y arquitectura del mismo, y a continuación concluir con el análisis de
viabilidad que son las diferentes alternativas que se deben tomar en cuenta antes de
diseñar un sistema basado en conocimiento.
2.1 Definición de Sistema Basado en Conocimiento (SBC)
Un Sistema basado en conocimiento (SBC) es un sistema computacional que
adquiere conocimiento especializado en un campo específico para explotarlo
mediante métodos de razonamiento que emulan el desempeño del experto humano
en la solución de problemas.[7]
Generalmente un sistema basado en conocimiento puede comprender:
Amplio conocimiento específico a partir del campo de interés.
Aplicación de técnicas de búsqueda y heurísticas.
Habilidad para inferir nuevos conocimientos a partir de los actuales y de las
experiencias obtenidas durante su operación.
Procesamiento simbólico.
Capacidad para explicar su propio razonamiento.
Empleo de diversas técnicas de solución de problemas.
Para comprender la naturaleza de un sistema basado en conocimiento,
supongamos que tenemos a una persona competente en un área determinada del
conocimiento que cuenta con un largo periodo de preparación y practica a
comparación con otra persona no especializada como se ilustra en la figura 2.1.
15
Actividad Experto No experto
Tiempo de resolución de problemas de su área Grande PequeñoEficacia Alta BajaOrganización Alta BajaPosee estrategias y tácticas Si NoBúsqueda de soluciones Heurística No heurísticaCálculos aproximados Si No
Figura. 2.1 Comparación de una persona experta y una no experta.
Dicho de otra manera un SBC es un sistema computarizado capaz de resolver
problemas en el dominio en el cual posee conocimiento específico.
2.2 Estructura del Ciclo de Vida de los (SBC)
A continuación se mencionan las nueve fases del ciclo de vida de de los sistemas
basados en conocimiento.[8]
1. Análisis del Problema: Evaluar el problema y los recursos disponibles para
determinar la aplicabilidad de una solución basada en conocimiento. Se debe
realizar un análisis costo - beneficio del SBC propuesto para saber si su
desarrollo puede ser garantizado.
2. Especificación de Requerimientos: Formalizar y poner por escrito lo que fue
adquirido durante la fase de análisis. Esto permite determinar los objetivos del
proyecto, idealmente, de una manera inequívoca y establece los medios para
obtener dichos objetivos.
3. Diseño Preliminar: Esta etapa considera únicamente las decisiones de alto
nivel necesarias para preparar y desarrollar rápidamente el prototipo inicial.
Específicamente, esta etapa determina el paradigma de representación del
conocimiento, la herramienta elegida para construir el prototipo, y la selección
de los expertos.
16
4. Prototipo Inicial y Evaluación: Esta es una etapa clave debido a que todas
las decisiones tomadas en el diseño preliminar deben ser ya sea confirmadas,
rectificadas o desechadas, sobre la base del conocimiento recopilado de los
expertos en el proceso hasta completar esta etapa.
5. Diseño Final: comprende la selección de las herramientas y de los recursos
necesarios para desarrollar el sistema a ser entregado. En muchos casos
puede ser aplicable y muy útil realizar una descripción gráfica de los diferentes
módulos del sistema, empleando las herramientas CASE propias de los
sistemas de software convencionales.
6. Implementación: comprende el proceso completo de adquisición del
conocimiento para todos los módulos o subsistemas. Es en esta etapa que
tiene lugar el desarrollo incremental.
7. Pruebas: El asegurar la calidad de un SBC es una tarea muy importante que
debe ser cuidadosamente planificada, especialmente a medida que el SBC es
más grande y complejo, o es de aplicación crítica. El plan de pruebas, es
bastante similar al que se prepara para un sistema convencional, basándose
en la validación y la verificación.
8. Ajustes al Diseño: A medida que el trabajo avanza y los ingenieros
cognoscitivos tienen a la vista los problemas detectados, deben realizar los
ajustes necesarios al inicio de cada iteración. Si estos ajustes cada vez son
relativamente más pequeños y no son retroactivos, se tiene una buena medida
de que se está progresando. Pero si ocurre lo contrario, puede representar un
serio retardo al proyecto y posiblemente requerir un cambio de paradigma.
9. Instalación, Implantación y Mantenimiento: En la etapa final del ciclo de
vida de un SBC se traslada el sistema desarrollado, como un producto
operativo hacia el entorno de los usuarios. Para ello, se deben realizar varias
actividades de instalación, implantación y mantenimiento similares a las de un
sistema de software convencional.
17
En la figura 2.2 se muestra el ciclo de vida de los SBC.
Fig. 2.2 Proceso de los SBC.
2.3 Arquitectura de los SBC
Los Sistemas Expertos emplean una amplia variedad de arquitecturas específicas a
las aplicaciones, sin embargo, se puede generalizar un módulo de componentes que
normalmente se deben integrar en cualquier ámbito, cuyos elementos se ilustran en
la Figura 2.3.[7]
18
Requerimientos del usuario
Feedback del usuario
Elicitación Especificación Validación
Usuario
Dominio del
Problema
Modelos a validar por el usuario
ConocimientoModelos de
requerimientos
Conocimiento del dominio
Conocimiento del dominio
Necesidad de más conocimiento
Resultados de la validación
Fig. 2.3 Arquitectura general de los componentes de un Sistema Experto.
EL USUARIOEl usuario de un Sistema Experto puede operar la aplicación en cualquiera de las
siguientes modalidades:
Verificador: Intenta comprobar la validez del desempeño del sistema.
Tutor: Brinda información adicional al sistema o modifica el conocimiento que
ya esta presente en el sistema.
Alumno: Busca rápidamente desarrollar habilidad personal relacionada con el
área específica mediante la recuperación de conocimientos organizados y
condensados del sistema.
Cliente: Aprovecha la pericia del sistema en el desempeño de tareas
específicas.
El reconocimiento de las caracterizaciones anteriores contrasta con la
percepción de un simple papel (el cliente) de los sistemas de información
tradicionales.
INTERFAZ HOMBRE-MÁQUINAEs el subsistema responsable de:
19
Interactuar con el usuario: Inicia, desarrolla, suspende, reanuda y concluye la
sesión.
Establecer el protocolo de dialogo: Mediante parámetros, menus, iconos,
Lenguaje natural o cualquier otro medio de expansión, como el reconocimiento
de voz y sensores y servomecanismos que operan en tiempo real.
Explicar el comportamiento del sistema: Debe ser capaz de argumentar las
razones por las que formula cierta pregunta, hace un razonamiento y llega a
una conclusión específica.
Este componente puede ser un sistema completo en si mismo, con sus propias
base de conocimiento, motores de inferencias y áreas de trabajo.
MÁQUINA DE INFERENCIAConocida como Motor, se encarga de:
Representar los mecanismos de solución: Son los procedimientos que
identifican y resuelven el problema, además de evaluar las alternativas de
solución.
Implementar los criterios de búsqueda: Conforme a la naturaleza del
problema, diseña búsqueda ciegas, heurísticas o aplica métodos más ad-hoc,
como agenda, alfa-beta y pizarrón.
Fundamentar la inferencia: Congruente al tipo de conocimiento representado
en la "base de conocimientos" establece el método de inferencia
correspondiente; por ejemplo; al emplear reglas de predicados entonces hará
uso de la resolución unificación.
El motor es considerado el núcleo del sistema experto donde descansa la parte
“procedural”.
BASE DE CONOCIMIENTOSConstituye el acervo de conocimiento especializado del Sistema Experto. Consta de:
20
El formalismo para representar conocimiento: Emplea una o varias técnicas
que permiten caracterizar y organizar conocimiento específico; por ejemplo;
"frames", "redes semánticas" y "scripts".
Un administrador: Responsable del almacenamiento, recuperación y
actualización en las estructuras de representación correspondientes.
Servicio: Es el mecanismo encargado de responder a las demandas de
acceso a elementos específicos de conocimiento (reglas, hechos, objetos,
etc.) efectuados por el motor de inferencia y el modulo de aprendizaje.
MECANISMO DE APRENDIZAJEEs el módulo responsable de adquirir nuevo conocimiento y actualizar el existente,
alterando a los subsistemas:
Base de conocimientos: Modifica las declaraciones de conocimiento, agrega
nuevas, verifica la consistencia entre ellas resolviendo los conflictos.
Máquina de Inferencia: Puede cambiar los mecanismos de inferencia, depurar
las heurísticas y métodos de búsqueda, en aras de hacer más eficiente la
solución de problemas, aprovechando la experiencia en la solución de
problemas semejantes.
Interfase Hombre-Máquina: Entre más refinado sea el conocimiento y los
mecanismos de inferencia, más eficiente deberá ser la comunicación con el
usuario. También sufrirán alteración los argumentos de "explicación".
Inclusive, se puede "personalizar" el lenguaje en función al usuario y
problema, como fruto de las sesiones previas.
BASE DE DATOSEs el depósito de conocimiento complementario a la "base de conocimientos" que
por su naturaleza, representación y manipulación se concibe como dato o
información.
El empleo que se deriva de este módulo es:
Almacenamiento de datos: Todos aquellos elementos del dominio de
conocimiento del sistema experto, los específicos al problema y los
21
particulares del usuario pueden registrarse en archivos o tablas
convencionales.
Administración: Ofrece los servicios de inserción, acceso, actualización y
borrado de datos, seguridad, integridad, confiabilidad, respaldo, restauración y
monitoreo de la información.
Normalmente el Sistema Experto debe tener una interfaz con el software
especializado en la administración de archivos o bases de datos, tales como los
"engine" de los RDBMS ("Sistemas Manejadores de Bases de Datos Relacionales").
MEMORIA DE TRABAJOEs el depósito de almacenamiento del código, conocimiento y resultado de las
inferencias que se genera a lo largo de la sesión. Donde se desarrolla la solución del
problema. En esta área se realiza:
La representación de "espacio de estados": Que corresponda a la búsqueda
de la solución.
La administración de la red o estructura de conocimientos: Que se empleé
para representar a los estados iníciales, intermedios y finales del problema.
Normalmente la "memoria de trabajo" se implementa en la "memoria principal"
del ordenador con el posible respaldo del almacenamiento secundario.
2.4 Análisis de Viabilidad
ESPECIFICACIÓN DE UN SBCPara la especificación del sistema SBC seguiremos el siguiente esquema: [9]
Definición del problema Análisis de alternativas
o Alternativa 1
22
o Alternativa 2
o Alternativa 3
Análisis de viabilidado Alternativa 1
o Alternativa 2
o Alternativa 3
Especificación del sistema elegidoo Definición del sistema y asignación de funciones
o Restricciones
o Diagramas de arquitectura
o Planificación
DEFINICIÓN DEL PROBLEMAEl sistema que queremos desarrollar es la consulta y venta de entradas de
espectáculos. Se pretende que el usuario terminal pueda consultar los espectáculos
disponibles, pudiendo elegir, ciudad, recinto, sesión, y en su caso, el asiento que
desee.
Una vez realizada esta elección el usuario podrá comprar las entradas,
mediante diferentes formas de pago que son: tarjeta de crédito y dinero en efectivo.
ANÁLISIS DE ALTERNATIVASEn este campo como en muchos otros, tenemos varias alternativas, que van desde
un sistema “rudimentario”, pasando por un sistema mixto hombre-máquina, hasta
una alta tecnología con un sistema completamente automatizado:
Alternativa 1La primera alternativa es un sistema manual, en el que un operario dispone de:
Listados con los espectáculos, ciudades, recintos, sesiones, foro y precios.
Mapas de los recintos donde los asientos sean numerados.
23
Con esta información el operario deberá proporcionar al cliente la información
que necesite, mostrando el mapa del recinto si es necesario para que el cliente
escoja sus asientos. Una vez que el cliente ya ha escogido, el operario se encargará
de darle sus entradas y cobrarle. El operario deberá tomar nota de las entradas que
se vayan vendiendo para no revender un asiento ya vendido, o sobrepasar el foro
destinado a un espectáculo.
Alternativa 2La segunda alternativa es una mezcla de hombre-máquina. Ahora el operario no
tendrá que hacer todo el trabajo de forma manual, sino que dispondrá de un software
que le ayudará en su tarea. Este software le va a permitir:
Consultar los espectáculos en una base de datos diseñada a tal efecto.
Tener en la base de datos mapas con los recintos, pudiendo escoger asientos
seleccionándolos con el ratón de forma fácil y rápida.
Vender entradas automáticamente sin preocuparse de cuántas o cuáles vendió.
El software internamente gestionará todos estos movimientos indicando, en su caso
que no quedan entradas, e impidiendo la reventa de entradas.
Alternativa 3La tercera opción sería informatizar el sistema hasta convertirlo automatizado en su
totalidad, para ello se suprimiría el factor humano (el personaje del dependiente). La
idea sería tener una serie de terminales donde el público, de una manera amigable e
intuitiva, podría seleccionar un espectáculo en su ciudad, observar dónde se llevará a
cabo la puesta en escena, elegir la zona y asiento que deseen, y efectuar la compra,
así como el pago; este último con diversas opciones.
24
ANÁLISIS DE VIABILIDADAlternativa 1Viabilidad técnica:
Para la alternativa “manual” el riesgo del desarrollo sería mínimo, ya que no se
necesita diseñar ningún software (nivel tecnológico nulo). Habría simplemente que
contratar a la persona adecuada que llevara el cargo de dependiente.
Los recursos necesarios serían un puesto donde vender las entradas.
Viabilidad económica:
La inversión inicial sería mínima, aunque se tendría un costo de manutención que
sería el alquiler del local y el sueldo del empleado. Aunque el período de
amortización sería inmediato dado que la inversión es pequeña, los beneficios
estarán limitados por la eficiencia y capacidad de la persona que se encargara de
gestionar las ventas.
Viabilidad legal:
No existe ningún problema en este apartado, ya que es legal la venta de entradas de
espectáculos.
Alternativa 2Viabilidad técnica:
El riesgo en el desarrollo es muy bajo, dado que este tipo de sistema está muy
extendido e incluso si hubiera un fracaso en el negocio los daños económicos no
serían astronómicos, ya que la inversión inicial se limitaría aun ordenador personal y
un software de serie.
Viabilidad económica:
El costo de esta alternativa sería mayor que en la primera, pero éste también vendría
en forma de inversión inicial. Dado que no es muy grande, tendríamos una
amortización de los beneficios de aproximadamente seis meses.
25
Viabilidad legal:
En este aspecto no habría problema, ya que lo único que hacemos es
semiautomatizar la venta de entradas, cosa que es legal.
Alternativa 3Viabilidad técnica:
Existe cierto riesgo en el desarrollo de esta alternativa, ya que el producto final que
queremos conseguir es un sistema empotrado totalmente independiente. El
desarrollo de este sistema es complejo e implica riesgo en el desarrollo.
Por otro lado, aunque existan estos riesgos, sabemos que este sistema es
viable a nivel tecnológico. Existen muchos sistemas similares al que queremos
desarrollar, como son los puestos automáticos de películas de alquiler.
Viabilidad económica:
La inversión inicial para este proyecto es grande. Depende del número de terminales
que queramos manejar, del volumen de información y del alcance y distribución de la
red del sistema.
Esta inversión aunque en principio puede resultar grande, los beneficios son
también importantes. El uso de este sistema, hace que la función que se realice se
lleve a cabo de forma más cómoda y rápida. El periodo de amortización rondaría los
12 meses.
Viabilidad legal:
El sistema que queremos desarrollar no implica ningún problema legal, aunque si
necesitaríamos un permiso para poner los terminales en sitio público.
26
ESPECIFICACIÓN DEL SISTEMAConsidérese que la tercera alternativa es la más innovadora y la que a medio plazo
puede reportar mayores beneficios.
Definición del Sistema y Asignación de FuncionesEn este sistema hay dos partes diferenciadas:
Un núcleo central, donde se encuentra la base de datos global que dará servicio a
todos los terminales, esta computadora ha de ser potente ya que debe de soportar
muchas peticiones concurrentemente sin que el tiempo de espera de los usuarios
sea mayor del esperado (características de sistema de tiempo real) y sin perder
ninguna consistencia en las diversas transacciones.
Diversas terminales, cada cual estará compuesto por un computador conectado
en red con el núcleo central, y que sus periféricos mínimos sean:
1) Pantalla de comunicación con el usuario. Aquí se mostrará toda la información
necesaria.
2) Medio de interacción con el usuario que vendrá integrado con el monitor
(pantalla táctil).
3) Impresora. Tendrá como único objetivo imprimir las entradas una vez
compradas.
4) Sistema gestor de tarjetas de crédito que deberá ser capaz de leer tarjetas de
crédito.
5) Sistema gestor de dinero en efectivo, el cual informará del dinero introducido y
será capaz de dar cambio.
6) Módem de comunicación con entidad bancaria.
RestriccionesLas restricciones generales del sistema son:
El sistema debe funcionar 24 horas al día, todos los días del año.
27
Si en algún momento un terminal, o el núcleo central cayera, se deberá
reanudar su correcto funcionamiento dentro de un tiempo límite marcado, que
es de 1 hora.
El sistema debe dar respuesta a cada petición dentro de un tiempo límite.
Los datos nunca pueden perder su consistencia, ya que el alcance económico
de estos sistemas es alto. Si en algún momento hay algún problema en una
transacción el sistema debe volver al estado en que se encontraba antes de
iniciar la misma. (Atomicidad en las transacciones).
Diagramas de arquitecturaDiagrama del sistema en general, indicando flujo de información y estructura del
sistema.
En la figura 2.4 se muestra un diagrama del sistema en general.
Fig. 2.4 Diagrama general.
28
USUARIO
DBA
BANCOTERMINAL
TERMINAL
USUARIO
RED TELEFONICA: AUTORIZACIONES BANCARIAS
ENVIO DE DATOS DE SESIONES…
PETICIONES
En el diagrama de los terminales. Se indica el nuevo flujo de información y
estructura interna.
En la figura 2.5 se muestra un diagrama de los terminales.
Fig. 2.5 Diagrama del Terminal.
29
RECEPCIÓN Y ENVIO DE DINERO
COMPUTADOR LOCAL IMPRESORAMODEM
SUB SISTEMA DE TARJETAS DE CREDITO
SUB SISTEMA GESTOR DE DINERO EN EFECTIVO
INTRODUCCIÓN DE
TARJETAS
DEV. DE DINERO
PANTALLA TACTIL
(INTERFAZ DE
USUARIO)
SALIDA DE ENTRADAS IMPRESAS
COMUNICACIÓN DE DATOS ORDENES DE
IMPRESION
GESTIÓN DE INF. BANCARIA
SALIDA DE INFORMACIÓN
ACEPTACIÓN DE TARJETAS
RECEPCIÓN Y ENVIO DE DINERO
PlanificaciónPlazo:El tiempo aproximado de entrega del producto es de 10 meses, 7 meses empleados
en programación del software, adquisición y montaje de terminales; 3 meses de
integración de todas las partes y pruebas de funcionamiento.
Costo:Computador central: $ 86,653.8
Costo de cada terminal: $ 105,428.79
Costo del producto software: $ 259,961.4
Formación de personal:Es necesaria la formación de un equipo para la gestión del funcionamiento del
sistema, este equipo se encargará de todos los aspectos relacionados con la base de
datos central y de dirigir desde el computador central el funcionamiento del sistema
global. El tiempo de formación de personal es de dos meses.
Garantía:Todos los productos hardware vendrán acompañados del periodo de garantía
proporcionado por su fabricante, estipulando previamente que cada componente ha
de tener como mínimo un año de garantía. La garantía del software estará
compuesta de reparación de fallos de programación detectados a lo largo del uso; en
ningún caso entrará en la garantía modificaciones de restricciones o de propiedades
en el software que no estuvieran acordadas en el contrato. Estas modificaciones se
podrán llevar a cabo mediante otro proyecto de desarrollo.
30
31
Se comenzará definiendo un agente inteligente, funciones básicas, características,
tipos de agentes, como debe proceder un agente para obtener un mejor desempeño,
como se estructura, procedimientos para solución de problemas, búsqueda de
soluciones, búsqueda mediante la satisfacción de restricciones y estrategias de
búsqueda.
3.1 Definición de Agente Inteligente
Un agente es todo aquello que puede considerarse que percibe su ambiente
mediante sensores y que responde a éste por medio de efectores. Los agentes
humanos tienen ojos, oídos y otros órganos que les sirven de sensores, así como
manos, piernas, boca y otras partes de su cuerpo que les sirven de efectores. En el
caso de los agentes robóticos, los sensores son sustituidos por cámaras y telémetros
infrarrojos y los efectores son reemplazados mediante motores. En el caso de un
agente de software, sus percepciones y acciones vienen a ser las cadenas de bits
codificados. En la figura 3.1 se muestra el diagrama de un agente genérico. Interesa
diseñar agentes que logren un buen desempeño en su ambiente. [10]
Fig. 3.1 Los agentes interactúan con los ambientes a través de sensores y efectores.
Características
32
Ambiente
Percepciones
Acciones
Sensores
Efectores
Agente
La principal característica de los agentes inteligentes es el conocimiento que estos
poseen, ligado a la forma como lo utilizan para alcanzar las metas para la cual fueron
diseñados. [11]
Las características que posee un agente inteligente son:
Autonomía: capacidad de actuar sin intervención humana directa o de otros
agentes.
Sociabilidad: capacidad de interaccionar con otros agentes, utilizando como
medio algún lenguaje de comunicación entre agentes.
Reactividad: un agente está inmerso en un determinado entorno (hábitat), del
que percibe estímulos y ante los que debe reaccionar en un tiempo
preestablecido.
Iniciativa: un agente no sólo debe reaccionar a los cambios que se produzcan
en su entorno, sino que tiene que tener un carácter emprendedor y tomar la
iniciativa para actuar guiado por los objetivos que debe de satisfacer.
Movilidad: habilidad de trasladarse en una red de comunicación informática.
Veracidad: no comunica información falsa intencionadamente.
Benevolencia: no tiene objetivos contradictorios y siempre intenta realizar la
tarea que se le solicita.
Racionalidad: tiene unos objetivos específicos y siempre intenta llevarlos a
cabo.
En el esqueleto de un agente, cada vez que así se solicite, se actualiza la memoria
para que refleje la nueva percepción, se elige la mejor acción y también se consigna
en la memoria la acción emprendida.
Función ESQUELETO-AGENTE (percepción) responde con una acción Estática: memoria (la memoria del mundo del agente) Memoria ACTUALIZACION-MEMORIA (memoria, percepción)
Acción ELEGIR-LA-MEJOR-ACCION (memoria)Memoria ACTUALIZACION-MEMORIA (memoria, acción)Responde con una acción
33
Tipos de agentes
Agentes de reflejo simple: Este tipo de agente no contiene internamente
estados y sus procesos o acciones que realiza son respuestas a la entrada de
percepciones, a esta conexión entre percepciones y acciones se les denomina
reglas de condición-acción. Ejemplo: Si el carro de adelante está frenando
entonces empiece a frenar.[12]
En la figura 3.2 se muestra un agente de reflejo simple.
Fig. 3.2 Agente de reflejo simple.
Un agente de reflejo simple actúa encontrando una regla cuya condición
coincida con la situación actual (definida por la percepción) y efectuando la
acción que corresponda a tal regla.
Función AGENTE-REFLEJO-SIMPLE (percepción) responde con una acción
Estático: reglas, un conjunto de reglas de condición-acción
Estado ← INTERPRETAR-ENTRADA (percepción)
Regla ← REGLA-COINCIDENCIA (estado, reglas)
Acción ← REGLA-ACCION
34
¿
¿
¿Cómo es el mundo en este momento?
¿Qué acción debo emprender en este
momento?
Agentes bien informados de todo lo que pasa: Este tipo de agente guarda
estados internos que le sirven sin consideración para ejecutar una acción. Los
sensores no le pueden informar a la vez de todos los estados que maneja su
ambiente, es por este caso que el agente necesita actualizar algo de
información en el estado interno. Esto le permite discernir entre estados del
ambiente que genera la misma entrada de percepciones pero, sin embargo;
para cada uno de los estados se necesitan acciones distintas.
En la figura 3.3 se muestra un agente reflejo con estado interno.
Fig. 3.3 Agente reflejo con un estado interno.
Un agente reflejo con un estado interno opera encontrando una regla cuya
condición coincida con la situación actual (tal como esté definida mediante la
percepción y el estado interno almacenado) y luego procede a efectuar la
acción que corresponda a tal regla.
Función AGENTE-REFLEJO-CON-ESTADO (percepción) responde con una acción
Estático: estado: una descripción prevaleciente del estado del conjunto de reglas
condición-acción
Estado ← ACTUALIZAR-ESTADO (estado-percepción)
Regla ← REGLA-COINCIDENCIA (estado, reglas)
Acción ← REGLA-ACCIÓN [regla]
Estado ← ACTUALIZAR-ESTADO (estado-acción)
35
¿
¿Cómo evoluciona el mundo?
¿Qué producen mis acciones?
¿Cómo es el mundo en este momento?
¿Cómo es el mundo en este momento?
Responder con una acción
Agentes basados en metas: Además de los estados, los agentes necesitan
cierto tipo de información sobre sus metas. Estas metas van a detallar las
situaciones a las que se desea llegar, de este modo, el programa de agente
puede combinar las metas con la información de los resultados (acciones) que
emprenda y de esta manera poder elegir aquellas acciones que le permitan
alcanzar la meta.
En la figura 3.4 se muestra un agente con metas explicitas.
Fig. 3.4 Agente con metas explicitas.
Agentes basados en utilidad: Las metas por sí solas garantizan la obtención
de una conducta de alta calidad. En el programa de agente se podría tener un
conjunto de metas pero la obtención de éstas no garantizan que haya un
cambio de estado que puede ser de felicidad o infelicidad, mediante una
medida de desempeño se podría establecer una comparación entre los
diversos estados del mundo (ambientes) para poder encontrar el estado de
felicidad para el agente. Este estado ofrecerá una mayor utilidad al agente.
36
¿
¿Cómo evoluciona el mundo?
¿Qué producen mis acciones?
¿Cómo es el mundo en este momento?
¿Qué sucedería si emprendo la acción A?
¿Qué acción debo emprender en este
momento?
En la figura 3.5 se muestra un agente completo basado en la utilidad.
Fig. 3.5 Agente completo basado en la utilidad.
Elementos que caracterizan a un agente:
Percepciones posibles.
Acciones posibles.
Medida de desempeño u objetivos que debe lograr.
Tipo de entorno en el que va a operar.
3.2 Como Debe Proceder un Agente Inteligente
Un agente racional es aquel que hace lo correcto. Obviamente, se refiere a que en
un primer intento de aproximación, el agente realice lo correcto y así poder obtener el
mejor desempeño. Ahora será necesario decidir cómo y cuándo evaluar ese buen
desempeño del agente.[10]
El término medición del desempeño se aplica al cómo: es el criterio que sirve
para definir qué tan exitoso ha sido un agente. Desde luego que no existe una
medida fija que se pueda aplicar por igual a todos los agentes. Podríamos
preguntarle al agente su opinión subjetiva de cuándo le satisface a él mismo su
37
¿Cómo evoluciona el mundo?
¿Qué producen mis acciones?
¿Cómo es el mundo en este momento?
¿Qué sucedería si emprendo la acion A?
¿Qué tan a gusto me encontraré en tal estado?
¿Qué acción debo emprender ahora?
desempeño, sin embargo, algunos de ellos no estarían en posibilidad de responder y
otros, simplemente eludirán responder, en particular los agentes humanos se
caracterizan por responder que “las uvas están verdes” para justificar el no haber
obtenido lo que originalmente deseaban. Por lo anterior hay que insistir en la
necesidad de contar con una medición objetiva del desempeño, medida que deberá
ser propuesta por una autoridad. En otras palabras, nosotros, en cuanto a
observadores externos, definimos la norma de lo que se considera un desempeño
satisfactorio en un ambiente y emplearlo en la medición del desempeño de los
agentes.
Un ejemplo sería el caso de un agente al que se le encomienda limpiar con una
aspiradora un piso sucio. Una posible medida de su desempeño sería la cantidad de
mugre eliminada en un turno de ocho horas. Una medida más elaborada consistiría
correlacionar la cantidad de electricidad consumida y la cantidad de ruido generado.
Una tercera, otorgaría la máxima calificación a un agente que no sólo limpie
silenciosa y eficientemente el piso, sino que también se le diera tiempo para ir a
velear el fin de semana.
El cuándo evaluar el desempeño es importante también. Si sólo se mide cuanta
mugre eliminó un agente durante la primera hora del día, aquellos agentes que
empiezan a trabajar rápidamente, (no obstante que posteriormente realicen poco o
ningún trabajo) resultarían premiados, en tanto aquellos que no laboran todo el turno
de manera consistente resultarían castigados, es decir, lo importante es medir el
desempeño a largo plazo, sea éste un turno de ocho horas o una vida.
Hay que dejar en claro que existe una diferencia entre racionalidad y
omnisciencia. Un agente omnisciente es aquel que sabe el resultado real que
producirán sus acciones y su conducta es congruente con ello, sin embargo, en la
realidad, no existe la omnisciencia. Considérese el siguiente ejemplo: Un día voy
caminando por los Campos Elíseos y veo que al otro lado de la calle está un antiguo
amigo. No hay tránsito en las cercanías y no llevo ninguna prisa, así que, actuando
racionalmente, empiezo a cruzar la calle. Al mismo tiempo, a una altura de 10.000
38
metros se desprende la puerta de la sección de carga aérea de una aeronave de
pasajeros y antes de poder alcanzar la otra acera, quedo completamente aplastado.
¿Se consideraría como irracional el haber atravesado la calle? Es improbable que en
las notas necrológicas se afirme “Un idiota intenta atravesar la calle”. Del ejemplo
anterior se puede deducir que la racionalidad tiene más bien que ver con un éxito
esperado, tomando como base lo que se ha percibido. La decisión de atravesar la
calle fue racional dado que la gran mayoría de las veces el cruce habría tenido éxito
y no había forma de que yo hubiese previsto la caída de la puerta. Un agente que
hubiera tenido un radar para detectar puertas en caída o que estuviera dentro de una
caja de acero que lo protegiera, habría tenido más éxito, pero no por ello habría sido
más racional. No se puede culpar al agente por no haber tomado en cuenta algo que
no podía percibir.
El carácter racional de lo que se hace en un momento dado dependerá de cuatro
factores.
1. De la medida con que se avalúa el éxito logrado.
2. De todo lo que hasta ese momento haya percibido el agente. A esta historia
perceptual completa se le denomina la secuencia de percepciones.
3. El conocimiento que posea el agente acerca del medio.
4. De las acciones que el agente puede emprender.
Lo anterior lleva a definir lo que es un agente racional ideal: en todos los casos
de posibles secuencias de percepciones, un agente racional deberá emprender todas
aquellas acciones que favorezcan obtener el máximo de su medida de rendimiento,
basándose en las evidencias aportadas por la secuencia de percepciones y en todo
conocimiento incorporado en tal agente.
Es necesario examinar cuidadosamente la definición anterior. Aparentemente,
con esta definición se le permite a un agente emprender actividades definitivamente
carentes de inteligencia. Por ejemplo, si un agente no se fija en el tráfico de ambos
sentidos de una calle antes de proceder a cruzarla, su secuencia de percepciones no
39
le podrá informar que un enorme camión carguero se aproxima a alta velocidad. En
apariencia la definición afirmaría que es correcto que el agente proceda a atravesar
la calle. Sin embargo, la interpretación anterior está equivocada por dos razones. La
primera es que no es racional atravesar la calle, el riesgo de hacerlo así es enorme.
Segundo, un agente racional ideal invariablemente elegiría la acción de “verificar el
tráfico” antes de lanzarse a la calle, ya que ésta verificación le permite obtener lo
mejor de su desempeño esperado. El emprender acciones con el fin de obtener
información útil es parte importante de la racionalidad.
El concepto de agente permite pensar en él como herramienta para el análisis
de sistemas, no como una caracterización absoluta en agentes y no agentes.
Tómese el caso de un reloj. Puede considerársele como un objeto inanimado, o bien,
como un agente sencillo. En cuanto a esto último todos los relojes hacen siempre lo
correcto, mueven las manecillas (o presentan los dígitos) de manera adecuada. Los
relojes son agentes degenerados dado que su secuencia de percepciones es vacía,
independientemente de lo que suceda en el exterior, las acciones del reloj no se ven
afectadas. En realidad lo anterior no es completamente cierto. Si el reloj y su
propietario partieran de viaje de California a Australia, lo adecuado sería que el reloj
se atrasara seis horas. Si nuestros relojes no hicieran lo anterior no estaríamos
molestos con ellos puesto que estamos conscientes que están actuando
racionalmente, considerando que no cuentan con un mecanismo de percepciones.
3.3 Estructura de Agentes Inteligentes
Hasta ahora se ha referido a los agentes mediante la descripción de su conducta,
aquellas acciones que se producen después de una determinada secuencia de
percepciones. Es tiempo de ver cómo funcionan las cosas desde el interior. El
cometido de la IA es el diseño de un programa de agente: una función que permita
implantar el mapeo del agente para pasar de percepciones a acciones. Se da como
40
sentado que este programa se ejecutará en algún tipo de dispositivo de cómputo, al
que se denominará arquitectura. Desde luego, el programa elegido debe ser aquel
que la arquitectura acepte y pueda ejecutar. La arquitectura puede ser una
computadora sencilla o hardware especial para la ejecución de ciertas tareas, como
sería el procesamiento de imágenes de una cámara o el filtrado de señales de
entrada de audio. Podría incluir también un software que ofrezca cierto grado de
aislamiento entre la computadora y el programa de agente, lo que permitiría la
programación a un nivel superior. En general, la arquitectura pone al alcance del
programa las percepciones obtenidas mediante los sensores, lo ejecuta y alimenta al
efector con acciones elegidas por el programa conforme éstas se van generando. La
relación entre agentes, arquitectura y programas podría resumirse de la siguiente
manera.[10]
Agente = arquitectura + programa
Antes de proceder al diseño de un programa de agente, es necesario contar
con una idea bastante precisa de las posibles percepciones y acciones que
intervendrán, que metas o medidas de desempeño se supone lleve a cabo el agente,
así como el tipo de ambiente en el que el agente operará conocido como (PAMA).
Estos pueden ser muy variados. En la Tabla 3.1 se muestran los elementos básicos
que se consideran en la elección de los tipos de agente. El más famoso de los
ambientes artificiales es la prueba de Turing, caracterizado por que tanto agentes
reales como artificiales se encuentran en igualdad de condiciones, pero el ambiente
plantea tantos desafíos que resulta muy difícil para un agente de software
desempeñarse tan bien como su contraparte humana.
Tipo de agente Percepciones(P) Acciones(A) Metas(M) Ambiente(A)
Sistema paradiagnósticos
médicos
Síntomas,evidencias y
respuestas delpaciente
Preguntas,pruebas,
tratamientos
Pacientesaludable,
reducción almínimo de
costos
Paciente, hospital
Sistemas de Pixeles de Imprimir una Clasificación Imágenes
41
análisisde imágenes
desatélite
intensidad y colores
variables
clasificación de
escenascorrecta
enviadas desde unsatélite en
órbita
Robot clasificador
de partes
Pixeles deintensidad variable
Recoger partes
y clasificarlasponiéndolas
enbotes
Poner laspartes en elbote que lescorresponda
Bandatransportadorasobre las que
seencuentran
laspartes
Controlador de una
refinería
Lecturas detemperatura y
presión
Abrir y cerrarválvulas,ajustar la
temperatura
Lograrpureza,
rendimientoy seguridad
máximos
Refinería
Asesoramiento
interactivo de inglés
Palabras escritas en
máquina
Ejerciciosimpresos,
sugerencias ycorrecciones
Que elestudianteobtenga la
máximacalificación
en unaprueba
Grupo deestudiantes
Tabla. 3.1 Ejemplos de diversos tipos de agentes y elementos básicos (PAMA).
3.4 Procedimientos para la Solución de Problemas
Sería conveniente ahora considerar un ambiente en particular con el fin de hacer
más concreta esta explicación relacionada con el procedimiento para la solución de
problemas. Principalmente por lo familiar que resulta y también por la enorme gama
de destrezas que entraña, se escogerá la tarea de diseño de un conductor de taxi
automatizado. Conviene aclarar que en la actualidad tal sistema está fuera del
alcance de la tecnología, y la mayoría de los componentes que existen en un taxi aun
no están automatizados en su totalidad. La tarea de conducir un automóvil, en su
42
totalidad, es extremadamente ilimitada: no hay límites en cuanto a nuevas
combinaciones de circunstancias que puedan surgir (y por esta misma razón se eligió
esta actividad para la presente explicación).[10]
Habrá que considerar las percepciones, acciones, metas y ambiente que
corresponden a un taxi. En la tabla 3.2 se presentan los elementos propuestos para
un taxi.
Tipo de agente Percepciones Acciones Metas Ambiente
Conductor de taxi
Cámaras,velocímetro,
sistema satélite,global de
ubicación, sonar,micrófono
Manejo delvolante, acelerar,
frenar, hablarcon el
pasajero
Un viaje seguro,
rápido, sininfracciones,
cómodo, obtenciónmáxima deganancias
Caminos,tráfico,
peatones,clientes
Tabla. 3.2 El tipo de agente conductor de taxi.
El taxi necesita saber dónde se encuentra, quien más circula por esa vía y a
que velocidad corre. Esta información se obtiene de las percepciones que ofrecen
una o más cámaras de televisión controlables, el velocímetro y el contador de
kilómetros. A fin de tener un adecuado control del vehículo, especialmente en las
curvas, es necesario contar con un acelerómetro. También se necesita conocer el
estado mecánico del vehículo, para ello se debe contar con sensores para los
sistemas de maquinaria y eléctrico. Posiblemente se le dotaría de instrumentos con
los que no cuenta un conductor humano promedio: un sistema satélite global para
determina la ubicación (GPS, global positioning system), mediante el que se
generará información con un mapa electrónico, o sensores infrarrojos o de sonar
para detectar las distancias que los separan de otros automóviles y obstáculos.
43
Por último deberá estar provisto de un micrófono o de un teclado para que por
medio de éstos los pasajeros le puedan informar cuál es el destino deseado.
Las acciones que pueda producir este conductor de taxi son más o menos las
mismas que las de un conductor humano: control de la máquina mediante pedal para
combustible y control de volante y de los frenos. Además, necesitará una salida en
pantalla o sintetizador de voz que le permita contestar a los pasajeros y quizás, de
algún medio para comunicarse con otros vehículos. ¿Cuál sería la medida de
desempeño que el conductor automatizado desearía satisfacer? Entre las cualidades
deseables están las de llegar a destino correcto, reducir al mínimo el consumo de
combustible, desgaste del vehículo, tiempo de recorrido, su costo, violaciones al
reglamento de tránsito y las molestias ocasionadas a otros conductores, ofrecer el
máximo de seguridad y comodidad al pasajero y producir el máximo de ganancias,
desde luego que el logro de algunos de estos objetivos está en conflicto con el logro
de otros, por lo que será necesario implicar concesiones.
Por último, en caso de que el anterior fuese un proyecto real, sería necesario
definir qué tipo de ambiente de conducción enfrentará el taxi.
¿Operaría en calles comunes o en vías de alta velocidad?
¿Estaría en el sur de California, donde muy rara vez existe el problema de la
nieve, o en Alaska, en donde muy rara vez la nieve no es problema?
¿Se conducirá siempre a la derecha o se tendrá la flexibilidad de permitirle
también conducir a la izquierda, en caso de que se quiera operar taxi en Gran
Bretaña o en Japón? Obviamente, cuanto más restringido sea el ambiente, menos
complicado será el problema del diseño.
Es tiempo ahora de decidir cómo se construirá un programa real para implantar
el mapeo que permitirá pasar de percepciones a acciones. Nos damos cuenta de que
los diversos aspectos de conducir un auto dan pie a recordar los diversos tipos de
programas de agentes. Los cuales fueron:
1) Agentes de reflejos simples.
44
2) Agentes bien informados de todo lo que pasa.
3) Agentes basados en metas.
4) Agentes basados en utilidades.
3.4.1 Búsqueda de Soluciones
Un agente inteligente puede resolver problemas considerando las diferentes
secuencias de acciones que puede realizar.
Cuando un agente exhibe este comportamiento orientado a alcanzar metas
particulares se dice que es un agente de resolución de problemas.
Este tipo de agente debe tener: una representación adecuada de su entorno, conocer
las acciones que tiene disponibles, poder razonar acerca del efecto de sus acciones
sobre el entorno. Esto lleva a un modelo de agenda en donde el estado del entorno
es discreto.
Métodos de búsqueda:
Primero en profundidad (Depth First)
Primero a lo ancho (Breadth First)
Búsqueda No-determinística
Profundización Iterativa
Búsqueda Bi-direccional
Búsqueda en árbol general
Los árboles de búsqueda son estructuras de datos que soportan las siguientes
operaciones de conjuntos dinámicos: Search (Búsqueda), Mínimum (Mínimo),
45
Maximum (Máximo), Predecessor (Predecesor), Successor (Sucesor), Insert
(Inserción), y Delete (Eliminación).[15]
Los árboles de búsqueda se pueden utilizar así como diccionarios y como
colas de prioridad.
Estas operaciones toman tiempo proporcional a la altura del árbol.
Raíz: Nodo correspondiente al estado inicial.
Hojas del árbol: Nodos que corresponden a estados que no tienen sucesores en el
Árbol: todavía no han sido expandidos, o lo fueron y no tienen sucesores.
Fringe: conjunto de nodos generados, más no expandidos. Es una cola.
En la figura 3.6 se muestra un árbol de búsqueda.
Fig. 3.6 Árbol de búsqueda.
Algoritmo de Árbol de búsquedafunction BusquedaArbol(problema, fringe)
fringe ←Insertar(EstadoInicial(problema), fringe)
loopif(Vacia(fringe)) return Fallanodo ← RemoverPrimero(fringe)
if(PruebaObjetivo(problema, nodo) == true)
return SOLUCION(nodo)
fringe ←InsertarNodos(Expandir(nodo, problema), fringe)
46
function ExpandirNodo(nodo, problema)
sucesores ←{}
for each <acción, resultado> inEncuentreSucesor(nodo, problema)
s ← resultado
s.padre ← nodo
s.accion ← accion
s.costoCamino ←nodo.costoCamino + Costo (nodo, s)
s.profundidad ←nodo.profundidad + 1
Agregar(s, sucesores)
return sucesores
Búsqueda Informada Utiliza conocimientos propios del problema, además de la definición. [13]
Una función de evaluación, f(n), escoge los nodos con la menor evaluación,
pues esta función retorna el costo del camino hasta el objetivo.
Función heurística, h(n): costo del camino más corto del nodo n hasta el
objetivo.
En la figura 3.7 se ilustra un ejemplo de búsqueda informada de Upala hasta Limón.
47
Costos Estimados Upala 385Heredia 185San Ramón 200Sarapiquí 150San José 170Cartago 160Guápiles 100Siquirres 80Turrialba 90Limón 0
Fig. 3.7 Búsqueda informada.
Búsqueda primero en profundidad (Depth First)Expandir el árbol tan profundamente como sea posible, retornando a niveles
superiores cuando sea necesario.[14] En la figura 3.8 se muestra un ejemplo de la
búsqueda (Depth First).
Fig. 3.8 Búsqueda (Depth First).
Seguimiento cronológico hacia atrásSeleccionar un hijo →Convención: izquierda a derecha.
Repetidamente ir al hijo siguiente, tanto como sea posible.
Volver a las alternativas no visitadas (nivel más alto) solo cuando sea necesario.
Algoritmo búsqueda primero en profundidad:1. COLA ← camino que solo contiene la raíz;
2. WHILE COLA no vacía
48
AND objetivo no alcanzado
DO remover el primer camino de la COLA;
Crear nuevos caminos (a todos los hijos);
Rechazar los nuevos caminos con ciclos;
Agregar al FRENTE de COLA los nuevos caminos;
3. IF objetivo alcanzado
THEN éxito;
ELSE falla;
Búsqueda primero en amplitud (Breadth-first)Expande el árbol capa por capa, avanzando en profundidad.[14]
Moverse hacia abajo, nivel por nivel, hasta que el objetivo sea alcanzado.
En la figura 3.9 se muestra la búsqueda (Breadth-first).
Algoritmo primero en amplitud1. COLA ← camino que solo contiene la raíz;
2. WHILE COLA no vacía
AND objetivo no alcanzado
DO remover el primer camino de la COLA;
Crear nuevos caminos (a todos los hijos);
Rechazar los caminos nuevos con ciclos;
Agregar los nuevos caminos al final de COLA;
3. IF objetivo alcanzado
THEN éxito;
ELSE falla;
49
Fig. 3.9 Búsqueda (Breadth-first).
Búsqueda No-determinística:Es un algoritmo que con la misma entrada ofrece muchos posibles resultados. No se
puede saber de antemano cuál será el resultado de la ejecución de un algoritmo no
determinístico.
Algoritmo búsqueda No-determinística:1. COLA ← Camino que solo contiene la raíz;
2. WHILE COLA no vacía
AND objetivo no alcanzado
DO remover el primer camino de la COLA;
Crear nuevos caminos (a todos los hijos);
Rechazar los nuevos caminos con ciclos;
Agregar los nuevos caminos en lugar de al azar en COLA;
3. IF objetivo alcanzado
THEN éxito;
ELSE falla;
Búsqueda por profundización iterativaRestringe una búsqueda depth-first a una profundidad fija.[14]
50
Si no se encontró ningún camino, incrementar la profundidad y recomenzar la
búsqueda.
Algoritmo profundización iterativa1. DEPTH ← <algún número natural>
COLA ← camino que solo contiene la raíz;
2. WHILE COLA no vacía
AND objetivo no alcanzado
DO remover el primer camino de la COLA;
IF el camino tiene longitud menor que DEPTH
Crear nuevos caminos(a todos los hijos);
Rechazar los nuevos caminos con ciclos;
Agregar los nuevos caminos al frente de la COLA;
3. IF objetivo alcanzado
THEN éxito;
ELSE falla;
Búsqueda bi-direccionalComputa el árbol tanto desde el nodo del comienzo como desde el nodo objetivo,
hasta que estos árboles se encuentran.[14]
Se puede describir explícitamente el estado objetivo, y cuenta con reglas para
razonamiento de búsqueda hacia adelante y hacia atrás. En la figura 3.10 se muestra
la búsqueda bi-direccional.
Algoritmo bi-direccional:1. COLA1 ← camino que solo contiene la raíz;
COLA2 ← camino que solo contiene el objetivo;
2. WHILE ambas COLA i no estén vacías
51
AND COLA1 y COLA2 no compartan un estado
DO remover sus primeros caminos;
Crear sus nuevos caminos (a todos los hijos);
Rechazar sus nuevos caminos con ciclos;
Agregar sus nuevos caminos al final;
3. IF COLA1 y COLA2 comparten un estado
THEN éxito;
ELSE falla;
Fig. 3.10 Búsqueda bi-direccional.
3.4.2 Búsqueda mediante la Satisfacción de Restricciones
Búsqueda Primero en profundidad (Depth First)Este método examina el espacio buscando una trayectoria al mismo tiempo, las
ampliaciones de la trayectoria se colocan al principio de la cola, la cola no se
reordena ni se recorta. Generalmente este método no se utiliza para encontrar la
mejor trayectoria.
En el análisis de complejidad, no se toma en cuenta la detección de ciclos.
Los resultados solo se aplican “formalmente” a las variantes de los algoritmos
sin verificación de ciclos.
Búsqueda primero en amplitud (Breadth-first)
52
Examina el espacio buscando todas las trayectorias en paralelo, las ampliaciones de
la trayectoria se colocan al final de la cola, la cola puede ir aumentando rápidamente
en espacios con muchas trayectorias.
Depth-first: Si el espacio de búsqueda contiene ramas muy profundas sin solución,
entonces Depth-first puede desperdiciar mucho tiempo en ellas.
Breadth-first: Demanda mucha memoria.
Búsqueda No-determinísticaUn algoritmo de búsqueda no-deterministica debe decidir en cada paso de la
ejecución entre varias alternativas y agotarlas todas antes de encontrar la solución.
Algoritmo de búsqueda No-determinística:1. COLA ← camino que solo contiene la raíz;
2. WHILE COLA no vacía
AND objetivo no alcanzado
DO remover el primer camino de la COLA;
Crear nuevos caminos (a todos los hijos);
Rechazar los nuevos caminos con ciclos;
Agregar los nuevos cambios en lugar al azar en COLA;
3. IF objetivo alcanzado
THEN éxito;
ELSE falla;
Búsqueda por profundización iterativaEn la profundización iterativa se combinan las ventajas de la búsqueda preferente
por profundidad y preferente por amplitud, por lo general, la profundización iterativa
53
es el método idóneo para aquellos casos cuando el espacio de búsqueda es grande
y se ignora la profundidad de la solución.
Búsqueda bi-direccionalBásicamente, es una búsqueda simultánea que avanza a partir del estado inicial,
retrocede a partir de la meta y que se detiene cuando ambas búsquedas se
encuentran en algún punto intermedio.
3.4.3 Estrategias de Búsqueda
Un problema interesante al implementar un algoritmo de búsqueda es poder devolver
el paso encontrado como solución.
Para hacer esto necesitamos darle a los nodos en la frontera alguna estructura
que conserve información.
El dato que necesitamos es el paso parcial desde la raíz a un nodo en la
frontera.
De esta manera al encontrar la meta también tendremos el paso hasta ella.
Una estructura posible seria la siguiente: Nodo (Nodof Paso, Costo_del_paso).Donde
Nodo es un nodo en el grafo
Paso es una lista de nodos desde la raíz A
Nodo sin incluirlo
Costo_del_paso es el costo total del paso
Hasta NodoAgregar un nodo al paso parcial implica ponerlo al frente de la lista.
54
pbuscar(F0,[N\P]) ← se!eccionar(nodo(N, P, Q, F0, Ft), es_meta(N).
pbuscar(F0, Paso) ← Seleccionar (nodo(N, P, C), F0, F1),
Vecinos(N, Vecinos), agregar_pasos(Vecinos, nodo(Nodo, P, C), NF),
agregar_Frontera(NF, Ft, F2), pbuscar(F2, Paso).
agregar_pasos([ ], FE, [ ]).
agregar_pasos([M\ R ], nodo(N, P, CP), [nodo(M, [ N \ P ], NCP) \ FR])
Costo(N, M, C), NCP Is CP + C, agregar_pasos(R, node(N, P, CP), FR).
A partir del problema se define el grafo y la meta que se desea alcanzar.
Al definir el grafo queda definido cuales son los vecinos de un nodo dado.
Una estrategia de búsqueda define la forma en como se seleccionan elementos de la
frontera.
La forma de seleccionar el nodo a expandir la forma como agregar un nodo a la
frontera están indefinidas y al hacerlo aparecen diferentes estrategias de búsqueda.
Propiedades de estrategias de búsquedaCompletitud: garantiza encontrar la meta si esta existe o retorna falla si no existiera.
Optimalidad: garantiza encontrar siempre la "mejor" meta.
Complejidad Temporal: numero de operaciones aplicadas en la búsqueda.
Complejidad Espacial: numero de nodos almacenados durante la búsqueda.
Las estrategias son evaluadas de acuerdo a las siguientes dimensiones:
Tiempo y espacio son medidos en términos de:
B factor de ramificación máximo del árbol de búsqueda
D profundidad del nodo objetivo menos profundo
M profundidad máxima del espacio de estado (puede ser ∞)
55
En esta última unidad se estudiarán los sistemas difusos incluyendo la lógica difusa
que ya se había visto con anterioridad, además de las redes neuronales que incluye
56
la neurona biológica, sus antecedentes, la neurona artificial y su estructura, tipos de
redes neuronales para finalizar con algoritmos genéticos.
4.1 Sistemas Difusos
Sistema DifusoSu estructura está constituida por tres bloques principales: el de transformación de
los valores numéricos en valores de Lógica difusa; el motor de inferencia que emplea
las reglas; y el bloque de conversión de los valores de la Lógica difusa en valores
numéricos.[16]
En un sistema basado en lógica difusa se transforman los datos o valores
numéricos de la entrada al dominio de las reglas intuitivas y lingüísticas de la Lógica
Difusa (LD) para realizar el tratamiento de los mismos y después convertir los
resultados en valores numéricos para darles la representación tradicional.
En resumen, puede decirse que un sistema basado en lógica difusa actúa como
lo haría una persona que tuviera que reaccionar ante términos tan imprecisos como
“caluroso” o “rápido”.
Si al sistema se le incluye una regla que diga “Si la temperatura es calurosa se
ha de acelerar el ventilador”, se estará aplicando el principio de If/Then y el sistema
funcionará sin regirse por conceptos matemáticos precisos.
Etapas de la lógica difusaFusificación (Fuzzification)
La traducción de valores del mundo real al ambiente Fuzzy mediante el uso de
funciones de membrecía.[16]
Por ejemplo, si tenemos un paciente con fiebre, podemos plantearnos a partir
de qué temperatura empieza a tener fiebre.
57
Pero es más realista plantear un modelo en el que la situación de fiebre no se
restringe sólo a dos valores (hay fiebre o no hay fiebre), sino que tenemos todo un
rango de temperaturas posibles.
Por lo tanto, la primera etapa de tratamiento de un problema para la lógica
difusa consiste en modelar cada una de las entradas del sistema con curvas que den
los grados o niveles de pertenencia a los diferentes estados identificados
anteriormente (en nuestro caso, fiebre).
Inferencia Lógica. Después de realizar la Fusificación de las variables de entrada y de salida, tenemos
que establecer reglas que relacionen las entradas con las salidas. [16]
Para poder operar con los Conjuntos Difusos es necesario definir las
operaciones elementales entre ellos. Esto implica definir el modo de calcular las
funciones de pertenencia a estos conjuntos.
Sean FP (X) y FP (Y) las funciones de pertenencia correspondientes a los
conjuntos difusos X y Y. Zadeh propone:
Intersección o AND FP (X AND Y) = mínimo de (FP (X), FP (Y))
Unión u OR FP (X OR Y) = máximo de (FP (X), FP (Y))
Complemento o NOT FP (Complemento X) = 1 – FP (X)
En realidad, estas expresiones son bastante arbitrarias y podrían haberse
definido de muchas otras maneras. Esto obliga a considerar otras definiciones más
generales para las operaciones entre los Conjuntos Difusos. En la actualidad se
considera correcto definir el operador intersección mediante cualquier aplicación t-
norma y el operador unión mediante cualquier aplicación s-norma.
Defusificación (Defuzzification)
58
Después de computar las reglas fuzzy y evaluar las variables fuzzy, necesitaremos
trasladar estos valores nuevamente hacia el mundo real.[16]
El método más popular de defusificación es el cálculo del centro de gravedad ó
centroide, el cual retorna el centro del área bajo la curva. Al igual que en los pasos
anteriores existen más métodos de cálculo.
Por ejemplo supongamos que se desea representar con conjuntos difusos la
variable altura de una persona, en este caso el universo de discurso será el rango de
posibles valores de la altura que tenga un persona adulta, se elegirá un rango entre
140 cm y 200 cm, valores por fuera de este rango son posibles pero son muy
escasos. El universo de discurso U = [140, 200], para denominar los conjuntos
difusos se suelen trabajar con etiquetas lingüísticas similares a las que se usan de
manera coloquial por ejemplo, en la vida diaria decimos que una persona es Muy
Baja (MB), Baja (B), Mediana (M), Alta (Alta) y Muy Alta (MA).[18]
En la tabla 4.1 se muestra la etiqueta y el rango de la altura de una persona.
Tabla. 4.1 Etiqueta y rango de la altura de una persona.
En la figura 4.1 Se muestra la grafica de la altura de una persona.
59
Etiqueta Rango [min, max]MB [140,160]B [160,170]M [170,180]A [180,190]
MA [190,200]
Fig. 4.1 Altura de una persona.
4.2 Redes Neuronales
La NeuronaLa célula nerviosa es la neurona, que es la unidad funcional del sistema nervioso. [19]
El cerebro era algo totalmente desconocido hasta finales del siglo XIX gracias a
las aportaciones de Sherrington, Ramón y Cajal.
Ramón y Cajal en 1888 descubren el mecanismo de los procesos colectivos de
las células nerviosas. Sus trabajos en esta doctrina se conocen como “doctrina de la
neurona”, en la cual destaca la ley de polarización dinámica. Esta ley describe como
se propagan los impulsos nerviosos. Las dendritas captan el impulso nervioso, lo
transmiten al soma y de éste pasan al axón que a su vez lo transmite a la dendrita de
la otra neurona.[19] En la figura 4.2 se muestra los elementos de una neurona.
Clásicamente se consideran cuatro zonas funcionalmente distintas en una neurona:
1. Soma o pericarion: Es el cuerpo de la neurona y su centro metabólico.
Contiene los elementos o componentes necesarios para fabricar y empaquetar
proteínas que deben ser usadas en otras partes de la célula. La agrupación de
60
retículo endoplasmático rugoso que se tiñe con colorantes básicos constituye
un elemento típico de las neuronas, los cuerpos de Nills. Las neuronas adultas
no poseen centriolos, motivo por el que no se multiplican para reemplazar las
neuronas adultas destruidas a causas de una lesión, enfermedad o
envejecimiento.
Fig. 4.2 Elementos de la neurona.
2. Dendritas: Prolongaciones citoplasmáticas que se extienden a partir del
cuerpo celular. Las dendritas y el soma constituyen la zona receptora
destinada a recibir la información de otras células nerviosas, del medio interno
o del medio externo.
3. Axón: También es una prolongación a modo de fibra de longitud muy variable
que hace contacto con otras células nerviosas. El segmento inicial del axón o
cono axónico integra las señales que recibe de la parte receptora y “decide”
las señales o potenciales de acción que ha de transmitir. Por ese motivo a
esta zona se la denomina zona propagadora o conductora.
4. El axón termina en muchas terminales axónicos, las cuales hacen contacto
con otras células nerviosas en uniones denominadas sinápsis,
transmitiéndoles la información que ellas portaban. A esta región de la
neurona se le denomina zona transmisora.
Tipos de Neurona
61
Las neuronas pueden clasificarse según su estructura o según su función.
1) Según su estructura: Neuronas multipolar, con varias dendritas cortas y un
axón largo. Neurona bipolar, de una sola dendrita y un axón en sitios opuestos
del soma. Neuronas monopolar, con dos largas prolongaciones que surgen
como un tallo único del soma.
2) Según su función: Neuronas sensitivas, Motoneuronas e Interneuronas.
Historia de las Redes NeuronalesSon varios los científicos que intentaron simular el funcionamiento del cerebro
humano y aplicarlo a labores de computación:
En 1943, Walter Pitts junto a Bertran Russell y Warren McCulloch intentaron
explicar el funcionamiento del cerebro humano. Por medio de una red de
células conectadas entre sí que podían ejecutar operaciones lógicas.
En 1949, Donald Hebb expuso que las redes neuronales podían aprender. Su
propuesta tenia que ver con la conductividad de la sinapsis, es decir, con las
conexiones entre neuronas. Hebb expuso que la repetida activación de una
neurona por otra a través de una sinapsis determinada, aumenta su
conductividad, y la hacía más propensa a ser activada sucesivamente,
induciendo a la formación de un circuito de neuronas estrechamente
conectadas entre sí.
Neurona ArtificialLa neurona artificial es una unidad elemental encargada de procesar un número de
entradas y producir una salida. Una neurona es una función, tiene como entradas la
salida de otras neuronas. Cada conexión de axón a dendrita tiene una fuerza que es
lo que hace la memoria de la red artificial. El núcleo es un sumatorio de las entradas
activadas y si se supera un umbral, su salida será 0 ó 1.[19]
Red Neuronal Artificial
62
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.[19]
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 obscuridad por
décadas.
Las RNA están compuestas de un gran número de elementos de procesamiento
altamente interconectados (Neuronas) trabajando al mismo tiempo para la solución
de problemas específicos. Las RNA, tal como las personas, aprenden de la
experiencia.[21]
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 real (reconocimiento de formas, toma
de decisiones, etc...), ofreciendo soluciones robustas y de fácil implementación.
Las RNA están compuestas de muchos elementos sencillos que operan en
paralelo, el diseño de la red está determinado mayormente por las conexiones entre
sus elementos. Al igual que las conexiones de las neuronas cerebrales.
Las RNA han sido entrenadas para la realización de funciones complejas en
variados campos de aplicación. Hoy en día pueden ser entrenadas para la solución
de problemas que son difíciles para sistemas computacionales comunes o para el ser
humano.
La idea de las redes neuronales fue concebida originalmente como un intento
de modelar la biofisiología del cerebro humano, esto es, entender y explicar como
funciona y opera el cerebro. La meta era crear un modelo capaz en emular el
63
proceso humano de razonamiento. La mayor parte de los trabajos iníciales en redes
neuronales fue realizada por fisiólogos y no por ingenieros.
Las características de operación de las redes neuronales son las siguientes:
PesosLas RNA pueden tener factores de peso fijo o adaptable. Las que tienen pesos
adaptables emplean leyes de aprendizaje para ajustar el valor de la fuerza de una
interconexión con otras neuronas. Si las neuronas utilizan pesos fijos, entonces su
tarea deberá estar previamente definida. Los pesos serán determinados a partir de
una descripción completa del problema. Por otra parte, los pesos adaptables son
esenciales si no se conoce previamente cual deberá de ser su valor correcto. [21]
Redes de Hamming Cuando las entradas son binarias, entonces el uso de las redes de Hamming es muy
atractivo. La red de Hamming selecciona un ganador de entre los patrones
almacenados, que tienen la menor distancia de Hamming al vector de entrada. Para
los vectores bipolares (-1/1), se puede adoptar la misma definición de producto
interno introducida anteriormente.[21]
Donde la distancia de Hamming es el número de inconsistencias entre los bits
de los dos vectores. Esto prueba que, en este caso, tanto el valor del producto
interno como la distancia de Hamming darán el mismo efecto.
Redes de Aprendizaje Competitivo Una red básica de aprendizaje competitivo tiene una capa de neuronas de entrada y
una capa de neuronas de salida. Un patrón de entrada x es un simple punto en el
espacio real o binario de vectores n-dimensional. Los valores binarios (0 ó 1) de
representación local son más usados en los nodos de salida. Esto es, hay tantas
neuronas de salida como número de clases y cada nodo de salida representa una
categoría de patrones.[21]
64
Una red de aprendizaje competitivo está formada por una(s) red(es)
excitadora(s) hacia adelante y la(s) red(es) inhibidora(s) lateral(es). La red hacia
adelante normalmente implementa una regla de excitación de aprendizaje de Hebb.
Esta regla consiste en que cuando una neurona participa constantemente en activar
una neurona de salida, la influencia de la neurona de entrada es aumentada. La red
lateral es inhibidora por naturaleza. Esta red realiza la misión de seleccionar el
ganador, normalmente por medio de un método de aprendizaje competitivo, de entre
los que podemos reseñar el esquema de "winner-take-all"(el ganador lo toma todo).
En un circuito "winner-take-all", la neurona de salida que da el valor más alto se le
asigna el valor total (por ejemplo, 1), mientras que todas las demás se le da un valor
de 0. El circuito de "winner-take-all" se implementa por una red (digital o analógica)
MAXNET. Otro ejemplo de una red lateral son los mapas de Kohonen. Se deja que
las neuronas de salida interactúen por medio de la red lateral, con lo que el modelo
se puede entrenar para guardar cierto orden topológico.
Los procedimientos de clasificación no supervisados se basan a menudo en
algunas técnicas de clasificación, que forman grupos de patrones parecidos. Esta
técnica de clasificación es muy útil para la clasificación. Además, juega un papel muy
importante en las redes de aprendizaje competitivo. Para un procedimiento de
clasificación, es necesario definir una distancia o medida de similaridad, para evaluar
el grado de semejanza de los patrones. Alguna de estas distancias están en la
siguiente lista, y entre ellas la más común es la distancia euclídea.
1. Producto interno.
2. Distancia Euclídea con Pesos.
Redes de Aprendizaje Competitivo básicas Sin la supervisión de ningún maestro, las redes no supervisadas adaptan los pesos y
verifican los resultados únicamente a partir de los patrones de entrada. Un esquema
que se usa mucho para la adaptación de los pesos es la regla de aprendizaje
competitivo, que hace que las células compitan por el derecho a responder por ellas
mismas por un determinado tipo de entrada. Esto se puede ver como un sistema muy
65
sofisticado de clasificación, cuyo objetivo es dividir un conjunto de patrones de
entrada en un número de clases tal que los patrones de la misma clase exhiben un
cierto grado de similaridad. Las reglas de entrenamiento suelen ser la regla de Hebb
(Esta regla puede interpretarse matemáticamente teniendo en cuenta que si dos
neuronas en cualquier lado de la sinápsis son activadas simultáneamente, la longitud
de la sinápsis se incrementará como se muestra en la figura 4.3 correspondiente a
un asociador lineal, se ve como la salida a, es determinada por el vector de entrada
p) para la red de propagación y la regla de "winner-take-all" (WTA) para la red lateral.
Fig. 4.3 Asociador lineal.
(4.1)
Puede notarse como la conexión (sinápsis) entre la entrada p j y la salida ai es el
peso wij. De esta forma el postulado de Hebb implica que si un valor positivo p j
produce un valor positivo ai, el valor de wij debe incrementarse.[20]
(4.2)
Donde:
pjq: j-ésimo elemento del q-ésimo vector de entrada pq.
66
W
Entrada Capa Lineal
R a= purelin(Wp)
Pntrada
nntrada
a
Sx1SxR
Rx1 Sx1
aiq : i-ésimo elemento de salida de la red, cuando el q-ésimo vector de entrada es
presentado.
α : es la tasa de aprendizaje, la cual es un valor positivo constante.
Modelo básico de Aprendizaje Un sistema de este tipo consiste en redes laterales y de propagación hacia adelante
con un número fijo de nodos de salida, esto es, un número fijo de clases. Los nodos
de entrada y salida tienen valores binarios únicamente cuando y sólo cuando los dos,
la entrada i-ésima y la salida j están activadas.
Reglas de entrenamiento basadas en pesos normalizados Con el fin de asegurar un ambiente de competición equitativo, las suma de todos los
pesos que van a dar las neuronas de salida deben estar normalizados.
Entonces, si una unidad gana la competencia, cada una de sus líneas de
entrada cede una proporción g de su peso, y la i (entrada) distribuye entradas iguales
entre las líneas de entrada activas.
Una característica importante de esta regla de entrenamiento es que la
normalización es incorporada en el momento de la actualización, de forma que la
suma de los pesos sinápticos a cualquier salida es 1.
Reglas de aprendizaje para "Leaky Learning" (aprendizaje débil) Con el fin de prever la existencia de neuronas que no aprenden en totalidad, se usa
el aprendizaje débil. Puesto que una neurona solo aprende si gana en algún
momento, es posible que una célula nunca gane, y por lo tanto nunca aprenda. Una
forma de solucionar este problema es que todos los pesos de la red intervengan en
el entrenamiento con distintos niveles de aprendizaje.[21]
67
Redes Neuronales Basadas en la Decisión En una red neuronal basada en la decisión (DBNN), el maestro sólo dice si la
clasificación ha sido correcta para cada patrón de entrenamiento. El maestro es un
conjunto de símbolos, que etiqueta la clase correcta para cada patrón de entrada. El
objetivo del entrenamiento es encontrar el conjunto de pesos que nos da la
clasificación correcta. En la fase de prueba, el objetivo es determinar a qué clase
pertenece un patrón, basado en el ganador de los valores de salida. Los valores de
salida es una función de los valores de entrada y los pesos de la red, a esta función
se la llama función discriminante. [21]
Fijémonos primero en el problema de la clasificación binaria, donde el patrón de
entrada se divide en dos regiones. Cada clase ocupa su propia región, la frontera
entre las dos regiones está definida como la hipersuperficie en la que las dos
funciones discriminantes tienen los mismos resultados.
Esta es la función discriminante de la subred. De forma similar, la segunda
subred tiene una función discriminante. La clasificación se decide en función de los
valores de las funciones discriminantes. Concretamente, si el patrón de la función
discriminante es clasificado como "F", de lo contrario el otro patrón de la función
discriminante se clasifica como "M". El maestro en esta figura muestra la clase
correcta para cada patrón de entrenamiento, M o F. En la DBNN, no hay ninguna
necesidad para entrenar si se hace una decisión correcta. Si la decisión es
incorrecta, entonces los pesos tendrán que ser actualizados. Una vez que la red
completa la fase de entrenamiento, la red esta lista para su uso en la fase de prueba.
Realiza la clasificación de patrones basada en las funciones discriminantes
entrenadas.
Separabilidad lineal Dos clases de patrones son linealmente separables si pueden ser separados por un
límite de decisión que sea un hiperplano lineal.
68
Clases no separables Es común el hecho de que patrones de distintas clases se intercambien en el límite
de la región de decisión, y para solucionar esta situación, es conveniente usar un
límite de decisión no lineal.
PRINCIPIOS Tipos de aprendizaje El aprendizaje de una red se puede producir de tres formas:[21]
1. El primero ocurre cuando se le proporciona a la red tanto la entrada como la
salida correcta, y la red ajusta sus pesos tratando de minimizar el error de su
salida calculada. Este tipo de entrenamiento se aplica por ejemplo, en el
reconocimiento de patrones.
2. El entrenamiento no supervisado se presenta cuando a la red se le
proporcionan únicamente los estímulos, y la red ajusta sus interconexiones
basándose únicamente es sus estímulos y la salida de la propia red. Las leyes
de aprendizaje determinan como la red ajustará sus pesos utilizando una
función de error o algún otro criterio. La ley de aprendizaje adecuada se
determina en base a la naturaleza del problema que se intenta resolver.
3. Aprendizaje auto supervisado: la propia red corrige los errores en la
interpretación empleando una realimentación.
Dos fases de operación Las RNA adaptables tienen dos fases en su operación.[21]
1. Entrenamiento de la red. El usuario proporciona a la red un número
“adecuado” de estímulos de entrada, y de salida, la red entonces ajusta su
pesos de interconexión o sinapsis hasta que la salida de la red esta “lo
suficientemente cerca” de la salida correcta.
2. Recuperación de lo aprendido. A la red se le presenta un conjunto de
estímulos de entrada y esta simplemente calcula su salida. Cuando la red
emplea entrenamiento no supervisado, algunas veces será necesario que
reajuste su sinapsis durante la fase de recuperación.
69
No son algorítmicas La gran diferencia del empleo de las redes neuronales en relación con otras
aplicaciones de la computación radica en que no son algorítmicas, esto significa que
no se programan haciéndoles seguir una secuencia predefinida de instrucciones. Las
RNA generan ellas mismas sus propias “reglas”, para asociar la respuesta a su
entrada; es decir, aprende por ejemplos y de sus propios errores.
El conocimiento de una RNA se encuentra en la función de activación utilizada y
en los valores de sus pesos.
Asociar y generalizar sin reglas como en el cerebro humano Las redes neuronales formadas por los perceptrones se interconectan en forma muy
similar a como las neuronas humanas se disponen en la corteza cerebral humana, y
lo más importante, son capaces de asociar y generalizar sin reglas. Han sido
utilizadas con gran éxito para reconocer retornos de sonar bajo el agua, escritura a
mano, voz, topografía de terrenos, controlar brazos de robots, evaluar datos
personales, modelar fenómenos cognoscitivos, y, predecir tendencias financieras.
Requieren de algún tipo de patrón La clase de problemas que mejor se resuelven con las redes neuronales son los
mismos que el ser humano resuelve mejor: Asociación, evaluación y reconocimiento
de patrones. Las redes neuronales son perfectas para problemas que son muy
difíciles de calcular pero que no requieren de respuestas perfectas, sólo respuestas
rápidas y buenas. Tal y como acontece con el escenario bursátil en el que se quiere
saber ¿Compro?, ¿Vendo?, ¿Mantengo?, o en el reconocimiento cuando se desea
saber ¿Se parece? ¿Es el mismo pero tienen una ligera modificación?
Por otra parte, las redes neuronales son muy malas para cálculos precisos,
procesamiento serie, y no son capaces de reconocer nada que no tenga
inherentemente algún tipo de patrón. Es por esto, que no pueden, predecir la lotería,
por definición un proceso al azar.
70
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.
MODELOS El modelo de McCulloch-PittsUno de los primeros modelos matemáticos de una neurona fue el propuesto por
McCulloch y Pitts en 1943 y es en el que se basan las redes neuronales actuales.[21]
La cantidad calculada como la suma del producto de cada entrada multiplicada
por su respectivo peso se denomina activación de la neurona, x j. La salida, Sj, de la
neurona es una función de la activación de ésta. Es decir:
(4.3)
(4.4)
Donde el término Qj es un valor «umbral», y f (xj) es una función de la activación
de la neurona.
Por ejemplo, en una de las primeras arquitecturas neuronales, el «Perceptron», se
utiliza la siguiente función de salida:
(4.5)
(4.6)
Donde la constante h se denomina umbral. Esta es una función de salida de
tipo binaria, y existen otras de tipo lineal puro, lineal con umbral, y sigmoidea, entre
otras.
En este modelo tan sencillo puede verse que la activación de la neurona
depende del valor que tomen los pesos y las entradas, de forma que la variación de
éstos originan distintas salidas para la misma entrada a la neurona. En la práctica,
los pesos de las neuronas se modifican sometiendo a la red a un entrenamiento,
permitiendo que la red realice una función determinada. Esta es la característica que
71
diferencia a una red neuronal de una máquina algorítmica clásica: una red neuronal
no se programa, se «educa». La red es capaz de retener y asociar el conocimiento a
través de la adaptación de los pesos de las neuronas siguiendo una regla de
aprendizaje.
Estas reglas son ecuaciones expresadas en función de las entradas y salidas
de las neuronas y describen la forma de variación de los pesos. En definitiva, son el
instrumento empleado por las neuronas para adaptarse a la información que se le
presenta.
Topologías de RNA Perceptron
Backpropagation
Hopfield
Kohonen
RED PERCEPTRON 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.
En 1962 Bernard Widrow propuso la regla de aprendizaje Widrow-Hoff, y Frank
Rosenblatt desarrolló una prueba de convergencia, y definió el rango de problemas
para los que su algoritmo aseguraba una solución. El propuso los “Perceptrons”
como herramienta computacional.[21]
En la figura 4.4 se presenta la topología perceptron.
72
Fig. 4.4 Topología perceptron.
Este modelo se conoce como perceptrón de McCulloch-Pitts, y es la base de la
mayor parte de las arquitecturas de las 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 de disparo. 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 (excitación) o negativos (inhibición). Los pesos
junto con las funciones f (z) dictan la operación de la red neuronal. Normalmente las
funciones no se modifican de tal forma que el estado de la red neuronal depende del
valor de los factores de peso (sinápsis) que se aplica a los estímulos de la neurona.
En un perceptrón, cada entrada es multiplicada por el peso W correspondiente,
y los resultados son sumados, siendo evaluados contra el valor de umbral, si el
resultado es mayor al mismo, el perceptrón se activa.
Limitantes El perceptrón es capaz tan sólo de resolver funciones definidas por un hiperplano
(objeto de dimensión N-1 contenida en un espacio de dimensión N), que corte un
73
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 (en dos secciones), es decir, que no se
combinen entre sí.
Tipos de perceptrón El Perceptrón básico de dos capas (entrada con neuronas lineales, analógicas, y la
de salida con función de activación de tipo escalón, digital) 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 número de entradas
a la red), una por cada lado del hipercubo, y otra en la tercera capa, que lleva a cabo
el AND lógico de la salida de los nodos del nivel anterior. La salida de los nodos de
este tercer nivel se activará 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 esté comprendido el hipercubo
74
llevándose a cabo una operación lógica Or en cada nodo de salida. Este
procedimiento se puede 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 número
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 ruido (al tener un
numero excesivo de neuronas) en contraparte con la ventaja de tener un sistema
tolerante a fallas al tener un número de neuronas redundante.
Aplicaciones del Perceptrón El rango de tareas que el Perceptrón puede manejar es mucho mayor que 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; ha tenido éxito 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, predicción de mercados financieros, diagnósticos médicos.
El Perceptrón como una red codificadora, aprende a sumar números enteros.
NETtalk es un Perceptrón que es capaz de transformar texto en inglés en
sonido individual (representaciones fonéticas) y la pronunciación con la utilización de
un sintetizador de voz; cuenta con aproximadamente 300 nodos de neuronas (siendo
80 en la capa escondida) y 20,000 conexiones individuales.
El perceptrón sólo 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 tendremos ya una red neuronal.
75
RED BACKPROPAGATION Una red neuronal muy eficaz para resolver fundamentalmente problemas de
reconocimiento de patrones es la red neuronal de propagación hacia atrás, en inglés
backpropagation network.[21]
En la figura 4.5 se ilustra la topología backpropagation.
Fig. 4.5 Topología backpropagation.
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 figura 4.5 muestra un ejemplo esquemático de la arquitectura de este
tipo de redes neuronales.
76
RED HOPFIELD Las redes de Hopfield son redes de adaptación probabilística, recurrentes.
Funcionalmente entrarían en la categoría de las memorias auto asociativas, es decir,
que aprenden a reconstruir los patrones de entrada que memorizaron durante el
entrenamiento. Son arquitecturas de una capa con interconexión total, funciones de
activación booleana de umbral (cada unidad puede tomar dos estados, 0 o 1,
dependiendo de si la estimulación total recibida supera determinado umbral),
adaptación probabilística de la activación de las unidades, conexiones recurrentes y
simétricas, y regla de aprendizaje no supervisado. Mientras que las redes en
cascada (no recurrentes) dan soluciones estables, los modelos recurrentes dan
soluciones inestables (dinámicas), lo que no siempre es aconsejable.[21]
La principal aportación de Hopfield consistió precisamente en conseguir que
tales redes recurrentes fueran así mismo estables. Hopfield imaginó un sistema físico
capaz de operar como una memoria auto asociativa, que almacenara información y
fuera capaz de recuperarla aunque la misma se hubiera deteriorado.
La Red de Hopfield es recurrente y completamente conectada. Funciona como
una memoria asociativa no lineal que puede almacenar internamente patrones
presentados de forma incompleta o con ruido. De esta forma puede ser usada como
una herramienta de optimización. 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.
Boltzmann En la Máquina de Boltzmann, generalización de la red de Hopfield que incluye
unidades ocultas, la operación de actualización se basa en un concepto de
termodinámica estadística conocido como "simulated annealing". La red de Hopfield,
la máquina de Boltzmann y un derivado conocido como la máquina del teorema de
campo medio se han utilizado en aplicaciones de segmentación y restauración de
imágenes y optimización combinacional.
77
Características La red de Hopfield consiste en un conjunto de N elementos de procesado
interconectadas que actualizan sus valores de activación de forma asíncrona e
independiente del resto de las elementos de procesado. Todos los elementos son a
la vez de entrada y salida. Los valores de activación son binarios.
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 (valle) 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 podemos alcanzar algún mínimo que no se corresponde a ningún
recuerdo almacenado, recuperando en ese caso una información espuria, o
podríamos no alcanzar ningún mínimo, quedando inestable: en ese caso diríamos
que la red está "confundida", no es capaz de reconocer el estímulo, no recuerda.
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, por ejemplo, el
recuerdo de melodías.
ValoraciónLas redes de Hopfield se han aplicado a campos como la percepción el
reconocimiento de imágenes y optimización de problemas, mostrando gran
78
inmunidad al ruido y robustez. Incluso se han llegado a desarrollar chips específicos
para este tipo redes. El estudio de las representaciones de secuencias temporales es
un área de gran interés, con aplicaciones en reconocimiento automático de voces y
movimientos.
Hopfield ha mostrado como aplicar los mismos principios con funciones de
activación continuas como la función sigmoidal, con muy pocas modificaciones.
Pero en base a sus evidentes ventajas no están exentas de problemas:
o El número máximo de patrones no correlacionados que puede
almacenar es igual al 15% del número de neuronas de la red.
o Requieren mucho tiempo de procesamiento hasta converger a una
solución estable, lo que limita su aplicabilidad.
o Otro de los problemas achacados a las redes de Hopfield es su
tendencia a caer en mínimos locales, como en las redes de retro
propagación.
RED 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órtex (capa externa del cerebro). También en el sistema
auditivo se detecta organización según la frecuencia a la que cada neurona alcanza
la mayor respuesta (organización tonotópica).[21]
Aunque en gran medida esta organización neuronal está predeterminada
genéticamente, es probable que de ella se origine mediante el aprendizaje. Esto
sugiere, por tanto, que el cerebro podría poseer la capacidad inherente de formar
mapas topológicos de las informaciones recibidas del exterior. De hecho, esta teoría
podría explicar su poder de operar con elementos semánticos: algunas áreas del
79
cerebro simplemente podrían crear y ordenar neuronas especializadas o grupos con
características de alto nivel y sus combinaciones. Se trataría, en definitiva, de
construir mapas espaciales para atributos y características.
HistoriaA partir de estas ideas, T. Kohonen presentó en 1982 un sistema con un
comportamiento semejante. Se trataba de un modelo de red neuronal con capacidad
para formar mapas de características de manera similar a como ocurre en el cerebro.
El objetivo de Kohonen era demostrar que en un estímulo externo (información
de entrada) por si solo, suponiendo una estructura propia y una descripción funcional
del comportamiento de la red, era suficiente para forzar la formación de mapas.
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 las informaciones (vectores) de entrada a la red,
aunque difieren en las dimensiones de éstos, siendo de una sola dimensión en el
caso de LVQ, y bidimensional, e incluso tridimensional, en la red TPM.
CaracterísticasPertenece a la categoría de las redes competitivas o mapas de autoorganización, es
decir, aprendizaje no supervisado. Poseen una arquitectura de dos capas (entrada-
salida) (una sola capa de conexiones), funciones de activación lineales y flujo de
información unidireccional (son redes en cascada).
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.
80
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(s)
misma(s) salida(s). 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.
ArquitecturaEn 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 de 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 (peso negativo) implícitas, pues aunque no estén conectadas,
cada una de las neuronas va a tener 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 va a depender 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.
Por otra parte, la versión del modelo denominado 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 próximas zonas de la capa de salida.
81
AplicaciónUna vez entrenada, podemos usar a la red para clasificar patrones de entrada
similares en el espacio n-dimensional. Una clase o grupo de patrones similares
tiende a controlar una neurona específica, que representará el centro de una esfera
n-dimensional (de radio unitario, pues normalizamos los datos sobre la unidad). Esa
neurona resultará la más activada frente a los patrones más parecidos a su vector de
pesos.
Después del aprendizaje, la clasificación consiste en presentar una entrada y
seleccionar la unidad más activada. Además, el vector de pesos servirá para
reconstruir el patrón de entrada.
4.3 Algoritmos Genéticos
DefiniciónLos Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para
resolver problemas de búsqueda y optimización. Están basados en el proceso
genético de los organismos vivos. A lo largo de las generaciones, las poblaciones
evolucionan en la naturaleza de acuerdo con los principios de la selección natural y
la supervivencia de los más fuertes, postulados por Darwin. Por imitación de este
proceso, los Algoritmos Genéticos son capaces de ir creando soluciones para
problemas del mundo real. La evolución de dichas soluciones hacia valores óptimos
del problema depende en buena medida de una adecuada codificación de las
mismas.[23]
Un algoritmo genético consiste en una función matemática o una rutina de
software que toma como entradas a los ejemplares y retorna como salidas cuales de
ellos deben generar descendencia para la nueva generación.
Los Algoritmos Genéticos usan una analogía directa con el comportamiento
natural. Trabajan con una población de individuos, cada uno de los cuales representa
82
una solución factible a un problema dado. A cada individuo se le asigna un valor ó
puntuación, relacionado con la bondad de dicha solución. En la naturaleza esto
equivaldría al grado de efectividad de un organismo para competir por unos
determinados recursos. Cuanto mayor sea la adaptación de un individuo al problema,
mayor será la probabilidad de que el mismo sea seleccionado para reproducirse,
cruzando su material genético con otro individuo seleccionado de igual forma. Este
cruce producirá nuevos individuos. Descendientes de los anteriores. Los cuales
comparten algunas de las características de sus padres. Cuanto menor sea la
adaptación de un individuo, menor será la probabilidad de que dicho individuo sea
seleccionado para la reproducción, y por tanto de que su material genético se
propague en sucesivas generaciones.
Ventajas No necesitan conocimientos específicos sobre el problema que intentan
resolver.
Operan de forma simultánea con varias soluciones, en vez de trabajar de
forma secuencial como las técnicas tradicionales.
Cuando se usan para problemas de optimización maximizar una función
objetivo resultan menos afectados por los máximos locales (falsas soluciones)
que las técnicas tradicionales.
Resulta sumamente fácil ejecutarlos en las modernas arquitecturas
masivamente paralelas.
Desventajas Usan operadores probabilísticos, en vez de los típicos operadores
determinísticos de las otras técnicas.
Pueden tardar mucho en converger, o no converger en absoluto, dependiendo
en cierta medida de los parámetros que se utilicen: tamaño de la población,
número de generaciones, etc.
Pueden converger prematuramente debido a una serie de problemas de
diversa índole.
83
LimitacionesEl poder de los Algoritmos Genéticos proviene del hecho de que se trata de una
técnica robusta, y pueden tratar con éxito una gran variedad de problemas
provenientes de diferentes áreas, incluyendo aquellos en los que otros métodos
encuentran dificultades. Si bien no se garantiza que el Algoritmo Genético encuentre
la solución óptima, del problema, existe evidencia empírica de que se encuentran
soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos
de optimización combinatoria. En el caso de que existan técnicas especializadas
para resolver un determinado problema, lo más probable es que superen al Algoritmo
Genético, tanto en rapidez como en eficacia. El gran campo de aplicación de los
Algoritmos Genéticos se relaciona con aquellos problemas para los cuales no existen
técnicas especializadas. Incluso en el caso en que dichas técnicas existan, y
funcionen bien, pueden efectuarse mejoras de las mismas hibridándolas con los
Algoritmos Genéticos.[23]
Un ejemplo es el denominado Algoritmo Genético Simple, también conocido
como Algoritmo Genético Canónico; el objetivo principal de este algoritmo es mostrar
distintas extensiones y modificaciones del mismo, relativas a los operadores de
selección, cruce, mutación y reducción, así como a la hibridación del Algoritmo
Genético con otros algoritmos de búsqueda local, y a diversos modelos de
Algoritmos Genéticos Distribuidos.
El Algoritmo Genético Simple
BEGIN /* Algoritmo Genético Simple */
Generar una población inicial.
Computar la función de evaluación de cada individuo.
WHILE NOT Terminado DO BEGIN /* Producir nueva generación */
FOR Tamaño población/2 DO
84
BEGIN /*Ciclo Reproductivo */
Seleccionar dos individuos de la anterior generación,
Para el cruce (probabilidad de selección proporciona a la función de evaluación
del individuo).
Cruzar con cierta probabilidad los dos.
Individuos obteniendo dos descendientes.
Mutar los dos descendientes con cierta probabilidad.
Computar la función de evaluación de los dos descendientes mutados.
Insertar los dos descendientes mutados en la nueva generación.
END IF la población ha convergido THEN Terminado:= TRUE
ENDEND
Codificación Se supone que los individuos (posibles soluciones del problema), pueden
representarse como un conjunto de parámetros (que denominaremos genes), los
cuales agrupados forman una ristra de valores (a menudo referida como
cromosoma). Si bien el alfabeto utilizado para representar los individuos no debe
necesariamente estar constituido por el (0, l), buena parte de la teoría en la que se
fundamentan los Algoritmos Genéticos utiliza dicho alfabeto. En términos biológicos,
el conjunto de parámetros representando un cromosoma particular se denomina
fenotipo. El fenotipo contiene la información requerida para construir un organismo, el
cual se refiere como genotipo. Los mismos términos se utilizan en el campo de los
Algoritmos Genéticos. La adaptación al problema de un individuo depende de la
evaluación del genotipo. Esta última puede inferirse a partir del fenotipo, es decir
puede ser computada a partir del cromosoma, usando la función de evaluación. La
función de adaptación debe ser diseñada para cada problema de manera específica.
Dado un cromosoma particular, la función de adaptación le asigna un número real,
85
que se supone refleja el nivel de adaptación al problema del individuo representado
por el cromosoma.[23]
Durante la fase reproductiva se seleccionan los individuos de la población para
cruzarse y producir descendientes, que constituirán, una vez que han sido mutados,
la siguiente generación de individuos. La selección de padres se efectúa al azar
usando un procedimiento que favorezca a los individuos mejor adaptados, ya que a
cada individuo se le asigna una probabilidad de ser seleccionado que es proporcional
a su función de adaptación. Este procedimiento se dice que está basado en la ruleta
sesgada. Según dicho esquema, los individuos bien adaptados se seleccionaran
probablemente varias veces por generación, mientras que, los pobremente
adaptados al problema, no se escogerán más que de vez en cuando.
Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando
habitualmente los operadores de cruce y mutación. Las formas básicas de dichos
operadores se describen a continuación.
El operador de cruce, elige dos padres seleccionados y corta sus ristras de
cromosomas en una posición escogida al azar, para producir dos subristras iníciales
y dos subristras finales. Después se intercambian las subristras finales,
produciéndose dos nuevos cromosomas completos. Ambos descendientes heredan
genes de cada uno de los padres. Este operador se conoce como operador de cruce
basado en un punto. Habitualmente el operador de cruce no se aplica a todos. En la
figura 4.6 se muestra el operador de cruce basado en un punto.
86
Fig. 4.6 Operador de cruce basado en un punto.
A los pares de individuos que han sido seleccionados, se les aplica de manera
aleatoria, normalmente con una probabilidad comprendida entre 0.5 y 1.0. En el caso
en que el operador de cruce no se aplique, la descendencia se obtiene simplemente
duplicando los padres.
El operador de mutación se aplica a cada hijo de manera individual, y consiste
en la alteración aleatoria (normalmente con probabilidad pequeña) de cada gen
componente del cromosoma.
La Figura 4.7 muestra la mutación del quinto gen del cromosoma. Si bien puede
en principio pensarse.
Fig. 4.7 Mutación del quinto gen del cromosoma.
Extensiones y Modificaciones del Algoritmo Genético SimpleSe comenzará dando un pseudocódigo de un Algoritmo Genético Abstracto (AGA),
para, a continuación, introducir algunas variantes que se han ido proponiendo en
trabajos desarrollados en estos últimos años.[23]
Pseudocódigo del Algoritmo Genético Abstracto
BEGIN AGA
87
Obtener la población inicial al azar.
WHILE NOT stop DO BEGIN Seleccionar padres de la población.
Producir hijos a partir de los padres seleccionados.
Mutar los individuos hijos.
Extender la población añadiendo los hijos.
Reducir la población extendida.
ENDEND AGA
Tamaño de la poblaciónUna cuestión que uno puede plantearse es la relacionada con el tamaño idóneo de la
población. Parece intuitivo que las poblaciones pequeñas corren el riesgo de no
cubrir adecuadamente el espacio de búsqueda, mientras que el trabajar con
poblaciones de gran tamaño puede acarrear problemas relacionados con el excesivo
costo computacional.
Goldberg efectuó un estudio teórico, obteniendo como conclusión que el
tamaño óptimo de la población para ristras de longitud I, con codificación binaria,
crece exponencialmente con el tamaño de la ristra.
Este resultado traería como consecuencia que la aplicabilidad de los Algoritmos
Genéticos en problemas reales sería muy limitada, ya que resultarían no
competitivos con otros métodos de optimización combinatoria. Alander [22] (1992),
basándose en evidencia empírica sugiere que un tamaño de población comprendida
entre 1 y 21 es suficiente para atacar con éxito los problemas considerados por el.
Población inicialHabitualmente la población inicial se elige generando ristras al azar, pudiendo
contener cada gen uno de los posibles valores del alfabeto con probabilidad
88
uniforme. Nos podríamos preguntar que es lo que sucedería si los individuos de la
población inicial se obtuviesen como resultado de alguna técnica heurística o de
optimización local. En los pocos trabajos que existen sobre este aspecto, se
comprueba que está inicialización no aleatoria de la población inicial, puede acelerar
la convergencia del Algoritmo Genético. Sin embargo en algunos casos la desventaja
resulta ser la prematura convergencia del algoritmo, queriendo indicar con esto la
convergencia hacia óptimos locales.
Función objetivoDos aspectos que resultan cruciales en el comportamiento de los Algoritmos
Genéticos son la determinación de una adecuada función de adaptación o función
objetivo, así como la codificación utilizada.
Lo que interesa es construir funciones objetivo con "ciertas regularidades", es
decir, funciones objetivo que verifiquen que para dos individuos que se encuentren
cercanos en el espacio de búsqueda, sus respectivos valores en las funciones
objetivo sean similares. Por otra parte una dificultad en el comportamiento del
Algoritmo Genético puede ser la existencia de gran cantidad de óptimos locales, así
como el hecho de que el óptimo global se encuentre muy aislado.
La regla general para construir una buena función objetivo es que ésta debe
reflejar el valor del individuo de una manera "real", pero en muchos problemas de
optimización combinatoria, donde existe gran cantidad de restricciones, buena parte
de los puntos del espacio de búsqueda representan individuos no válidos.
Para este planteamiento en el que los individuos están sometidos a
restricciones, se han propuesto varias soluciones:
Se podría denominar absolutista, en la que aquellos individuos que no
verifican las restricciones, no son considerados como tales, y se siguen
efectuando cruces y mutaciones hasta obtener individuos válidos, o bien, a
dichos individuos se les asigna una función objetivo igual a cero.
89
Otra posibilidad consiste en reconstruir aquellos individuos que no verifican las
restricciones. Dicha reconstrucción suele llevarse a cabo por medio de un
nuevo operador que se acostumbra a denominar reparador.
Otro enfoque está basado en la penalización de la función objetivo. La idea
general consiste en dividir la función objetivo del individuo por una cantidad (la
penalización) que guarda relación con las restricciones que dicho individuo viola.
Dicha cantidad puede simplemente tener en cuenta el número de restricciones
violadas ó bien el denominado costo esperado de reconstrucción, es decir, el costo
asociado a la conversión de dicho individuo en otro que no viole ninguna restricción.
Un problema habitual en las ejecuciones de los Algoritmos Genéticos surge
debido a la velocidad con la que el algoritmo converge. En algunos casos la
convergencia es muy rápida, lo que suele denominarse convergencia prematura, en
la cual el algoritmo converge hacia óptimos locales, mientras que en otros casos el
problema es justo el contrario, es decir se produce una convergencia lenta del
algoritmo. Una posible solución a estos problemas pasa por efectuar
transformaciones en la función objetivo. El problema de la convergencia prematura,
surge a menudo cuando la selección de individuos se realiza de manera proporcional
a su función objetivo. En tal caso, pueden existir individuos con una adaptación al
problema muy superior al resto, que a medida que avanza el algoritmo "dominan" a
la población. Por medio de una transformación de la función objetivo, en este caso
una comprensión del rango de variación de la función objetivo, se pretende que
dichos "superindividuos" no lleguen a dominar a la población.
La idea de especies de organismos, ha sido imitada en el diseño de los
Algoritmos Genéticos en un método propuesto por Goldberg y Richardson, utilizando
una modificación de la función objetivo de cada individuo, de tal manera que
individuos que estén muy cercanos entre sí devalúen su función objetivo, con objeto
de que la población gane en diversidad.
Selección
90
La función de selección de padres más utilizada es la denominada selección
proporcional a la función objetivo, en la cual cada individuo tiene una probabilidad de
ser seleccionado como padre que es proporcional al valor de su función objetivo.
Denotando por ( ) la probabilidad de que el individuo ( ) sea seleccionado
como padre, se tiene que esta función de selección es invariante ante un cambio de
escala, pero no ante una traslación.
(4.7)
Una de las maneras de superar el problema relacionado con la rápida convergencia
proveniente de los superindividuos, que surge al aplicar la anterior función de
selección, es el efectuar la selección proporcional al rango del individuo, con lo cual
se produce una repartición más uniforme de la probabilidad de selección, como se
ilustra en la Figura 4.8. Si denotamos por rango (g ( )) el rango de la función
objetivo del individuo ( ) cuando: Los individuos de la población han sido
ordenados de menor a mayor (es decir el peor individuo tiene rango 1, mientras que
el individuo con mejor función objetivo tiene rango lambda), y sea ( ) la
probabilidad de que el individuo ( ) sea seleccionado como padre cuando la
selección se efectúa proporcionalmente al rango del individuo, se tiene que:
(4.8)
91
Fig.4.8 Selección de padres proporcional a la función objetivo (izquierda) y proporcional al rango de la
función objetivo (derecha).
CruceEl Algoritmo Genético Canónico descrito anteriormente utiliza el cruce basado en un
punto, en el cual los dos individuos seleccionados para jugar el papel de padres, son
recombinados por medio de la selección de un punto de corte, para posteriormente
intercambiar las secciones que se encuentran a la derecha de dicho punto.
Se han investigado otros operadores de cruce, habitualmente teniendo en
cuenta más de un punto de cruce. De Jong (1975) investigó el comportamiento del
operador de cruce basado en múltiples puntos, concluyendo que el cruce basado en
dos puntos, representaba una mejora mientras que añadir más puntos de cruce no
beneficiaba el comportamiento del algoritmo. La ventaja de tener más de un punto de
cruce radica en que el espacio de búsqueda puede ser explorado más fácilmente,
siendo la principal desventaja el hecho de aumentar la probabilidad de ruptura de
buenos esquemas.
En el operador de cruce basado en dos puntos, los cromosomas (individuos)
pueden contemplarse como un circuito en el cual se efectúa la selección aleatoria de
dos puntos, tal y como se indica en la Figura 4.9.
92
Fig. 4.9 Individuo visto como un circuito.
Desde este punto de vista, el cruce basado en un punto, puede verse como un
caso particular del cruce basado en dos puntos, en el cual uno de los puntos de corte
se encuentra fijo al comienzo de la ristra que representa al individuo. Figura 4.10.
Fig. 4.10 Operador de cruce basado en dos puntos.
En el denominado operador de cruce uniforme (Syswerda) cada gen, en la
descendencia se crea copiando el correspondiente gen de uno de los dos padres,
elegido de acuerdo a una "máscara de cruce" generada aleatoriamente. Cuando
existe un 1 en la "máscara de cruce", el gen es copiado del primer padre, mientras
que cuando exista un 0 en la "máscara de cruce", el gen se copia del segundo padre,
tal y como se muestra en la Figura 4.11. En la literatura, el término operador de cruce
uniforme se relaciona con la obtención.
93
Fig. 4.11 Operador de cruce uniforme.
MutaciónLa mutación se considera un operador básico, que proporciona un pequeño elemento
de aleatoriedad en la vecindad (entorno) de los individuos de la población. Si bien se
admite que el operador de cruce es el responsable de efectuar la búsqueda a lo largo
del espacio de posibles soluciones, también parece desprenderse de los
experimentos efectuados por varios investigadores que el operador de mutación va
ganando en importancia a medida que la población de individuos va convergiendo
(Davis).[23]
Schaffer y colaboradores encuentran que el efecto del cruce en la búsqueda es
inferior al que previamente se esperaba. Utilizan la denominada evolución primitiva,
en la cual, el proceso evolutivo consta tan sólo de selección y mutación. Encuentran
que dicha evolución primitiva supera con creces a una evolución basada
exclusivamente en la selección y el cruce. Otra conclusión de su trabajo es que la
determinación del valor óptimo de la probabilidad de mutación es mucho más crucial
que el relativo a la probabilidad de cruce.
La búsqueda del valor óptimo para la probabilidad de mutación, es una cuestión
que ha sido motivo de varios trabajos. Así, De Jong recomienda la utilización de una
probabilidad de mutación del bit de (1-1), siendo l la longitud de la cadena. Schaffer y
colaboradores utilizan resultados experimentales para estimar la tasa óptima
proporcional a 1 / ( ), ( ), donde lambda denota el número de individuos en
la población.
94
Si bien en la mayoría de las implementaciones de Algoritmos Genéticos se
asume que tanto la probabilidad de cruce como la de mutación permanecen
constantes, algunos autores han obtenido mejores resultados experimentales
modificando la probabilidad de mutación a medida que aumenta el número de
iteraciones. Pueden consultarse los trabajos de Ackley, Bramlette, Fogarty y
Michalewicz y Janikow.
ReducciónUna vez obtenidos los individuos descendientes de una determinada población en el
tiempo t, el proceso de reducción al tamaño original, consiste en escoger lambda
individuos de entre los Lambda individuos que forman parte de la población en el
tiempo t, y los lambda individuos descendientes de los mismos. Dicho proceso se
suele hacer fundamentalmente de dos formas distintas.
O bien los lambda individuos descendientes son los que forman parte de la
población en el tiempo t + 1, es lo que se denomina reducción simple, o bien se
escogen de entre los 2 lambda individuos, los lambda individuos más adaptados al
problema, siguiendo lo que podemos denominar un criterio de reducción elitista de
grado lambda. Podemos también considerar otros procedimientos de reducción que
se colocan entre los anteriores, por ejemplo, si escogemos los ( ) mejores de entre
padres y descendientes, escogiéndose los lambda. ( ) Y restantes de entre los
descendientes no seleccionados hasta el momento.
El concepto de reducción está ligado con el de tasa de reemplazamiento
generacional, ( ) es decir en el porcentaje de hijos generados con respecto del
tamaño de la población.
Michalewicz introduce un algoritmo que denomina Algoritmo Genético
Modificado, ( ), en el cual para llevar a cabo el reemplazamiento generacional,
selecciona al azar r1 individuos para la reproducción, así como r2 individuos
(distintos de los anteriores) destinados a morir. Estas selecciones aleatorias tienen
95
en consideración el valor de la función objetivo de cada individuo, de tal manera que
cuanto mayor es la función objetivo, mayor es la probabilidad de que sea
seleccionado para la reproducción, y menor es la probabilidad de que dicho individuo
fallezca. (r1 + r2) individuos son considerados como neutros y pasan directamente a
formar parte de la población en la siguiente generación.
Algoritmos Genéticos ParalelosEn este apartado se introducirán tres maneras diferentes de explotar el paralelismo
de los Algoritmos Genéticos, por medio de los denominados modelos de islas.
Modelos de islasLa idea básica consiste en dividir la población total en varias subpoblaciones en cada
una de las cuales se lleva, a cabo un Algoritmo Genético. Cada cierto número de
generaciones, se efectúa un intercambio de información entre las subpoblaciones,
proceso que se denomina migración. La introducción de la migración hace que los
modelos de islas sean capaces de explotar las diferencias entre las diversas
subpoblaciones, obteniéndose de esta manera una fuente de diversidad genética.
Cada subpoblación es una "isla", definiéndose un procedimiento por medio del cual
se mueve el material genético de una "isla" a otra. La determinación de la tasa de
migración, es un asunto de capital importancia, ya que de ella puede depender la
convergencia prematura de la búsqueda.[23]
Se pueden distinguir diferentes modelos de islas en función de la comunicación
entre las sub poblaciones. Algunas comunicaciones típicas son las siguientes:
Comunicación en estrella, en la cual existe una subpoblación que es
seleccionada como maestra (aquella que tiene mejor media en el valor de la
función objetivo), siendo las demás consideradas como esclavas. Todas las
subpoblaciones esclavas mandan sus h1 mejores individuos (h1, > 1) a la
subpoblación maestra la cual a su vez manda sus h2 mejores individuos (h2 >
1) a cada una de las subpoblaciones esclavas. Figura 4.12.
96
Fig. 4.12 Algoritmo Genético Paralelo. Modelo de Islas. Comunicación en estrella.
Comunicación en red, en la cual no existe una jerarquía entre las
subpoblaciones, mandando todas y cada una de ellas sus h3 (h3 > 1) mejores
individuos al resto de las subpoblaciones. Véase Figura 4.13.
Fig. 4.13 Algoritmo Genético Paralelo. Modelo de Islas. Comunicación en red.
Comunicación en anillo, en la cual cada subpoblación envía sus h4 mejores
individuos (h4 > 1), a una población vecina, efectuándose la migración en un
único sentido de flujo. Véase Figura 4.14.
El modelo de islas ha sido utilizado por varios autores (Whitley y Starkweather,
Gorges-Schleuter, Tanese).
97
Fig. 4.14 Algoritmo Genético Paralelo. Modelo de Islas. Comunicación en anillo.
Conclusión
Es cierto que los sistemas inteligentes son de mucha utilidad ya que ellos nos
permiten mejorar nuestra calidad de vida, nos facilitan el trabajo y son un gran
soporte en diferentes áreas, sin en cambio pueden surgir grandes peligros al tratar
de fabricar un sistema inteligente, los cuales debemos evitar, uno de estos peligros
es la aparición de un gran campo laboral en donde los sistemas inteligentes jugarán
un papel importante mientras que el trabajo humano tendrá poca importancia en el
cual habrá mucho tiempo libre, también puede resultar peligroso programar un robot
con su propia supervivencia y con un alto nivel de aprendizaje. Esto traería como
98
consecuencia que podría pensar mucho más rápido y con más precisión que
nosotros, y utilizaría todos los recursos que tenga disponible para poder cumplir sus
metas. Para ello se puede evitar desprogramándolo y destruyéndolo en el momento
que se detecte que no esta cumpliendo con los objetivos para el que fue diseñado.
Pero en realidad el humano tiene la necesidad de desarrollar estos sistemas
inteligentes porque en la actualidad requiere de herramientas que sean muy
eficientes y que puedan cubrir todas sus necesidades. Muchos de estos sistemas
inteligentes tienen una memoria interna en donde pueden almacenar experiencias y
poseen la capacidad de aprender e interactuar en diferentes ambientes. Un sistema
para que pueda ser inteligente debe tener la capacidad de aprender, ser autónomo,
debe desarrollar su autoconciencia, además de que debe percibir y actuar, sin en
cambio no se debe descartar que un sistema depende también del los sistemas
basados en conocimiento, los sistemas difusos, el uso y aplicación de algoritmos
genéticos.
Glosario
Ad hoc: Se refiere a una solución elaborada específicamente para un problema o fin
preciso y, por tanto, no es generalizable ni utilizable para otros propósitos.
Advenimiento: Venida o llegada de un tiempo determinado o de un acontecimiento
importante.
99
Algoritmo genético: Consiste en una función matemática o una rutina de software
que toma como entradas a los ejemplares y retorna como salidas cuales de ellos
deben generar descendencia para la nueva generación.
Ambigüedad: En la Pragmática existe cuando una forma tiene dos o más
significados, son cosas que tienen diferentes significados.
Análogo: Un término es análogo cuando se utiliza con significados diferentes.
Sin embargo, a diferencia de los términos equívocos, estos significados además
de ser distintos mantienen entre sí una determinada conexión interna.
Autómatas: Del griego automatos que significa espontáneo o con movimiento
propio; Equipo electrónico programable en lenguaje no informático y diseñado para
controlar, en tiempo real y en ambiente industrial, procesos secuenciales.
Canónico: En matemática, indica algo que es natural, que no es arbitrario.
Cognoscitiva: Proceso en el cual un individuo es capaz de, integrar, relacionar y
modificar la información circundante.
Cognoscitivos: Que es capaz de conocer o comprender.
Converge: Hace referencia a la propiedad que poseen algunas sucesiones
numéricas de tender a un límite.
Coste: Monto económico que representa la fabricación de cualquier componente o
producto, o la prestación de cualquier servicio.
Cromosoma: Es cada uno de los pequeños cuerpos en forma de bastoncillos en que
se organiza la cromatina del núcleo celular en la mitosis y la meiosis, cada uno de los
cuales se divide longitudinalmente, dando origen a dos cadenas gemelas.
100
Difusos: Impreciso, borroso, poco claro.
Fenotipo: Se denomina fenotipo a la expresión del genotipo en un determinado
ambiente. Los rasgos fenotípicos incluyen rasgos tanto físicos como conductuales.
Gen: Es el conjunto de una secuencia determinada de nucleótidos de uno de los
lados de la escalera del cromosoma referenciado.
Genética: Es el campo de las ciencias biológicas que trata de comprender cómo la
herencia biológica es transmitida de una generación a la siguiente, y cómo se efectúa
el desarrollo de las características que controlan estos procesos.
Genotipo: Es el contenido genético (el genoma específico) de un individuo, en forma
de ADN. Junto con la variación ambiental que influye sobre el individuo, codifica el
fenotipo del individuo.
Heurística: Es la capacidad de un sistema para realizar de forma inmediata
innovaciones positivas para sus fines.
Holográficas: De la holografía o relativo a ella.
Inductivo: El razonamiento inductivo es una modalidad del razonamiento no
deductivo que consiste en obtener conclusiones generales a partir de premisas que
contienen datos particulares.
Lambda: (Λ λ) es la undécima letra del alfabeto griego.
Omnisciencia: Es la capacidad de saberlo todo, o de saber todo lo que se necesite
saber en un contexto determinado.
101
Pseudocódigo: Es una serie de normas léxicas y gramaticales parecidas a la
mayoría de los lenguajes de programación, pero sin llegar a la rigidez de sintaxis de
estos ni a la fluidez del lenguaje coloquial.
Ristra: Es un conjunto de elementos de un mismo origen, unos a continuación de los
otros, unidos frecuentemente con una guita o cordel.
Sensor: Es un dispositivo capaz de transformar magnitudes físicas o químicas,
llamadas variables de instrumentación, en magnitudes eléctricas.
Subristras: Acordes con los patrones especificados por (Pattern y Map).
Bibliografía
[1] WIKIPEDIA la enciclopedia libre, Sistema inteligente, 15 feb 2008
http://es.wikipedia.org/wiki/Sistema_inteligente
[consulta: martes, 15 de abril 2008]
[2] Definición de Inteligencia Artificial
http://www.depi.itch.edu.mx/apacheco/ai/s_intel.htm
[Consulta: miércoles, 16 de abril 2008]
102
[3] ¿Qué es Inteligencia Artificial?, Douglas Francisco Zambrano Rodríguez
http://www.monografias.com/trabajos10/intelart/intelart.shtml
[Consulta: jueves, 17 de abril 2008]
[4] iabot.tk, inteligencia artificial
http://iabot.iespana.es/ciencia/software/ia/inteligencia_artificial.htm
[Consulta: jueves, 17 de abril 2008]
[5] Instituto Tecnológico de Apizaco, Unidad II Introducción a los sistemas
inteligentes http://www.itapizaco.edu.mx/paginas/inteligentesII.htm
[Consulta: viernes, 18 de abril 2008]
[6] Inteligencia Artificial, Autor: Elaine Rich - Kevin Knight, Editorial: Juan Stumpf,
Pags: 270 – 272
http://www.dei.uc.edu.py/tai2000/logica/3.htm
[Consulta: sábado, 19 de abril 2008]
Gitaca de la Universidad de Extremadura, Conjunto difuso
http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=Conjuntos_
difusos
[Consulta: sábado, 19 de abril 2008]
[7] Instituto Politécnico Nacional, Sistemas basados en Conocimiento: Una Base
para su Concepción y Desarrollo, Alejandro Peña Ayala
http://www.wolnm.org/apa/articulos/Sistemas_Basados_Conocimiento.pdf?
startMessage=1&passed_id=1495&mailbox=INBOX&ent_id=2
[Consulta: lunes 21 de abril 2008]
[8] Sistemas Basados en Conocimiento (Knowledge Based Systems) archivo .PPT,
Lic. Mario G. Oloriz, Agosto 2004 [consulta: lunes 22 de abril 2008]
103
[9] Especificación de un SBC, Rocío García Ruiz, Tomás Gálvez Santaella
http://lsi.ugr.es/~ig1/docis/aluwork/INTRODUCCI%D3N.pdf
[Consulta: viernes 25 de abril 2008]
[10] Universidad Americana, Inteligencia Artificial, Prof. Rubén Báez Valiente
http://bgustavo.googlepages.com/IA-Agentes.pdf
[Consulta: lunes 28 de abril 2008]
[11] 1- Agentes Inteligentes archivo .PDF [consulta: lunes 28 de abril 2008]
[12] Tema 2 Agentes Inteligentes, Transparencias IA, M. Marcos, 1999
http://www.robot.uji.es/docencia/II28/teoria/transparencias-tema02.pdf
Estructura de Agentes Inteligentes
http://www.cruzrojaguayas.org/inteligencia/Estructura%20de%20Agentes%
20Inteligentes.htm
[Consulta: martes 29 de abril 2008]
[13] Centro de Investigaciones en Computación, Esteban Meneses, Estrategias de
búsquedas
http://www.ictcr.ac.cr/~emeneses/docencia/2007/semestreI/recursos/busquedas
IC6200.pdf [Consulta: miércoles 30 de abril 2008]
[14] Métodos Básicos de Búsqueda
http://www.unlu.edu.ar/~ogarcia/ia/doc/busqsininfo.ppt
[Consulta: jueves 1 de mayo 2008]
http://148.202.148.5/cursos/cc415/IA_3/IA_3_5.htm
http://www.cruzrojaguayas.org/inteligencia/Estrategias%20de%20b%
FAsquedas.htm
[15] Estructura de Datos y Algoritmos, Agustín J. González
http://profesores.elo.utfsm.cl/~agv/elo320/01and02/dataStructures/binary
104
SearchTree.pdf
[Consulta: lunes 5 de mayo 2008]
[16] Qué es Lógica Difusa
http://medicpinos0.tripod.com/logicafussy/id19.html
[Consulta: lunes 12 de mayo 2008]
[17] Sistemas Difusos
http://ants.dif.um.es/staff/juanbot/ml/files/20022003/fuzzy.pdf
[Consulta: martes 14 de mayo 2008]
[18] Lógica Difusa, Jesús Alfonso López
http://members.tripod.com/jesus_alfonso_lopez/FuzzyIntro.html
[Consulta: lunes 19 de mayo 2008]
Conjuntos Borrosos
http://maaz.ihmc.us/servlet/SBReadResourceServlet?rid=1194893687312_
418632548_3873
[Consulta: lunes 19 de mayo 2008]
[19] Gitaca de la Universidad de Extremadura, Redes neuronales
http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=Red_neuronal
[Consulta: lunes 19 de mayo 2008]
[20] Facultad de Ingeniería Eléctrica de la Universidad Tecnológica de Pereira
http://ohm.utp.edu.co/neuronales/main2.htm
[Consulta: martes 20 de mayo 2008]
[21] Que es una Neurona Artificial, Gabriela Bencomo c. 127886, Soraya Díaz r.
127837, Elsy Díaz c. 126504, Ricardo Martínez c. 116894
http://www.depi.itch.edu.mx/apacheco/lengs/ann/pagina_nueva_2.htm
[Consulta: miércoles 21 de mayo 2008]
105
[22] University of Michigan Press, Algoritmos genéticos "Adaptation in Natural and
Artificial Systems", Holland, J.H., 1975, 211 p.
http://eddyalfaro.galeon.com/geneticos.html
[Consulta: miércoles 21 de mayo 2008]
[23] J.T. Alander (1992). On optimal population size of genetic algorithms.
Proceedings Com- pEuro 1992, Computer Systems and Software Engineering,
6th Annual European Computer Conference, 65-70.
http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/temageneticos.pdf
[Consulta: lunes 26 de mayo 2008]
106