APUNTES DEL CURSO: FUNDAMENTOS DE INTELIGENCIA ARTIFICIAL
PROFESOR: M.C. Luis David Huerta Hernndez
GRUPO: 908
Ciudad Ixtepec Oaxaca; a 16 de Febrero del 2014
2
Contenido 1. HISTORIA DE LA INTELIGENCIA ARTIFICIAL Y SUS APLICACIONES ............................................... 5 1.1 Introduccin ........................................................................................................................ 5 1.2 Definiciones ......................................................................................................................... 5 1.3 Historia ................................................................................................................................ 6 1.4 Nacimiento de la Inteligencia Artificial ............................................................................... 6 1.5 Aportaciones iniciales ......................................................................................................... 7 1.6 Caractersticas de la inteligencia Artificial .......................................................................... 7 1.7 Realidad de la inteligencia Artificial .................................................................................... 8 1.7.1 Sistemas basados en conocimiento ........................................................................... 8 1.7.2 Inteligencia artificial en la industria ............................................................................ 8 1.7.3 Inteligencia artificial y la ciencia .................................................................................. 8 1.8 Aplicaciones ........................................................................................................................ 9 1.9 Relacin de la Inteligencia Artificial con otras ciencias ....................................................... 9 1.10 Ramas de la Inteligencia Artificial .................................................................................... 10 2. SISTEMAS EXPERTOS ................................................................................................................. 11 2.1 Introduccin ...................................................................................................................... 11 2.2 Qu es un sistema experto? ............................................................................................ 11 2.2.1 Definicin .................................................................................................................. 11 2.2.2 Tipos de sistemas expertos ....................................................................................... 12 2.2.3 Caractersticas ........................................................................................................... 12 2.2.4 Componentes de un sistema experto ....................................................................... 12 2.3 Ventajas ............................................................................................................................. 14 2.4 Requerimientos de un sistema experto ............................................................................ 14 2.4.1 El experto .................................................................................................................. 15 2.4.2 El ingeniero de conocimiento .................................................................................... 15 2.4.3 El usuario ................................................................................................................... 15 2.5 Aplicaciones de los sistemas expertos .............................................................................. 15 2.5.1 Campos de accin...................................................................................................... 15 2.5.2 Ejemplos de aplicacin ............................................................................................. 15 3. PROGRAMACIN LGICA (PROLOG) ......................................................................................... 17 3.1 Lenguaje de programacin ................................................................................................ 17 3
3.2 Paradigmas de programacin ........................................................................................... 17 3.3 Historia de la programacin lgica .................................................................................... 17 3.4 Programacin lgica .......................................................................................................... 18 3.5 Fundamento de la programacin lgica ........................................................................... 19 3.6 Caractersticas de la programacin lgica ......................................................................... 19 3.7 Lenguajes de programacin lgica ................................................................................... 19 3.8 Campos de aplicacin ........................................................................................................ 20 4. LGICA Y CLCULO PROPOSICIONAL ........................................................................................ 21 4.1 Introduccin ...................................................................................................................... 21 4.2 Clculo o lgica proposicional .......................................................................................... 21 4.3 Lenguaje del clculo proposicional ................................................................................... 22 4.4 Smbolos del lenguaje proposicional ................................................................................ 22 4.5 Reglas sintcticas .............................................................................................................. 23 4.6 Reglas semnticas ............................................................................................................. 23 4.6.1 Definicin de los consecutivos ......................................................................................... 23 4.6.2 Negacin .................................................................................................................... 24 4.6.3 Conjuncin................................................................................................................. 24 4.6.4 Disyuncin ................................................................................................................. 24 4.6.5 Condicional ................................................................................................................ 25 4.6.6 Bi condicional ........................................................................................................... 25 5. REDES NEURONALES ARTIFICIALES ........................................................................................... 26 5.1 Introduccin ...................................................................................................................... 26 5.2 Funcionamiento ................................................................................................................ 26 5.3 Propiedades ....................................................................................................................... 26 5.3.1 Funcin de propagacin ............................................................................................ 27 5.3.2 Funcin de activacin ................................................................................................ 27 5.3.3 Funcin de transferencia ........................................................................................... 27 5.4 Diseo y programacin de una RNA ................................................................................. 27 5.5 Ventajas ............................................................................................................................. 27 5.6 Aplicaciones ....................................................................................................................... 28 5.7 Ejemplos ............................................................................................................................ 28 6. LGICA DIFUSA .......................................................................................................................... 30 4
6.1 Introduccin ...................................................................................................................... 30 6.2 Historia .............................................................................................................................. 30 6.3 Definicin .......................................................................................................................... 31 6.4 Qu es la lgica difusa? ................................................................................................... 32 6.5 Conjuntos difusos .............................................................................................................. 32 6.6 Operaciones entre conjuntos difusos ............................................................................... 33 6.6.1 Interseccin ............................................................................................................... 33 6.6.2 Unin ......................................................................................................................... 34 6.6.3 Complemento ............................................................................................................ 34 6.7 Sistema de lgica difusa Mamdani .................................................................................... 35 7. ALGORITMOS GENTICOS ......................................................................................................... 37 7.1 Introduccin ...................................................................................................................... 37 7.2 Definiciones ....................................................................................................................... 37 7.3 El algoritmo gentico simple ............................................................................................. 38 7.4 Problemtica ..................................................................................................................... 39 7.5 Codificacin ....................................................................................................................... 40 7.5.1 Fenotipo .................................................................................................................... 40 7.5.2 Funcin de adaptacin .............................................................................................. 40 7.5.3 Fase reproductiva ...................................................................................................... 40 7.5.4 Operador de cruce .................................................................................................... 41 7.5.5 Operador de mutacin .............................................................................................. 41 7.6 Ventajas y desventajas ...................................................................................................... 41 7. 7 Limitaciones de los algoritmos genticos ......................................................................... 42
5
1. HISTORIA DE LA INTELIGENCIA ARTIFICIAL Y SUS APLICACIONES 1.1 Introduccin Hoy en da la Inteligencia Artificial es una combinacin de diferentes reas como son la ciencia de las computadoras, la fisiologa, filosofa, entre otras. Por lo general esta ciencia es un amplia que rene varios campos (robtica, sistemas expertos), todos los cuales tienen en comn la creacin de mquinas que pueden pensar por s mismas. La de idea construir una mquina que pueda ejecutar tareas percibidas como requerimientos de inteligencia humana es un atractivo. Las tareas que han sido estudiadas desde este punto de vista incluyen juegos, traduccin de idiomas, comprensin de idiomas, diagnstico de fallas, robtica, suministro de asesora experta en diversos temas. Es as como los sistemas de administracin de base de datos cada vez ms sofisticados, la estructura de datos y el desarrollo de algoritmos de insercin, borrado y locacin de datos, as como el intento de crear mquinas capaces de realizar tareas que son pensadas como tpicas del mbito de la inteligencia humana, acuaron el trmino Inteligencia Artificial en 1956. 1.2 Definiciones De acuerdo con la definicin de Inteligencia Artificial, existen mltiples conceptos, entre los cuales han venido cambiando de acuerdo a las aportaciones y aplicaciones que vienen surgiendo da con da. Y esto es de acuerdo a cada uno de los actores que se enlistan a continuacin. La Inteligencia Artificial trata de conseguir que los ordenadores simulen en cierta manera la inteligencia humana. Se acude a sus tcnicas cuando es necesario incorporar en un sistema informtico, conocimiento o caractersticas propias del ser humano. La inteligencia artificial (IA) es un rea multidisciplinaria que, a travs de ciencias, tales como la informtica, la lgica y la filosofa, estudia la creacin y diseo de entidades capaces de razonar por si mismas utilizando como paradigma la inteligencia humana. Reproducir algunas propiedades de los seres vivos. Bellman (1978). Actividades del proceso de pensamiento humano Haugeland (1985). Hacer que las computadoras piensen Charniak y Mc Dermont (1985). Es el estudio de facultades mentales en el uso de computadoras Kurzweil (1990). Desarrollar mquinas que desempeen actividades que cuando se realizan por personas, requieren de inteligencia. Rich y Knight (1991). Estudios para lograr que las computadoras realicen tareas que por el momento los humanos hacen mejor Winston (1992). El estudio de los clculos que hacen posible, percibir, razonar y actuar Pool et. al. (1998). La inteligencia computacional, es el estudio del diseo de agentes inteligentes Nilson (1998). Relacionada con el estudio de conductas inteligentes en artefactos sntesis y anlisis de agentes computacionales que actan inteligentemente 6
1.3 Historia Uno de los primeros avances y aportes que se han dado a lo largo de la historia de la Inteligencia Artificial son algunas evidencias del modelado de ciertas entidades como son: Egipto (2000 a.c.). Pinturas rupestres que fueron dadas con las Figuras articuladas. Etiopa (1500 a.c) Estatua que emite sonidos con los rayos del sol. China Chou (1000 a.c). o Carro que mira al sur o King-Su Tse (500 a.c.) urraca voladora, caballo que saltaba o Orquesta mecnica de muecos ( 206 a.c) Hern de Alejandra (10 d.c. - 70 d.c.) o Molino de viento o Eolpila o mquina de vapor o Primer libro de robtica de la historia Autmatas Leonardo Da Vinci (1495). Diseo de humanoide Thomas Hobbes (1588- 1679). Abuelo de la IA Pensar es un discurso mental, formado por operaciones simblicas, exactamente como hablar en voz alta o trabajar una respuesta con pluma y papel. Pascal (XVII). Mquina calculadora Bacon (XVII). Mtodo inductivo. Bases para RLM Rev. industrial (XVII). Autmatas miniaturizados Siglo (XIX). Relojes personales, mquinas, juguetes Ramn y Cajal y Golgi (1906): Estructura del Cerebro Warren McCulloch y Walter Pitts (1943) o Primer trabajo de IA relacionados con neuronas. o Partieron de: Fisiologa de las Neuronas y Lgica proposicional de Russell y Whitehead Teora de computacin de Turing Donald Hebb (1949): Regla para actualizar la intensidad de conexiones entre neuronas Alan Turing (1950): Escribe artculo Computing Machinery an Intelligence. Prueba de Turing o Aprendizaje automtico o Algoritmos genricos o Aprendizaje por esfuerzo Marvin Minsky y Dean Edmons (1951): Computador basado en red neuronal (SNARC). 1.4 Nacimiento de la Inteligencia Artificial John McCarthy, Minsky, Claude Shannon y Nathaniel Rochester (1956): Taller de teora de autmatas, redes neuronales, estudio de inteligencia. Trenchard More (Princeton) Arthur Samuel (IBM) Rny Soloirionofl' y Oliver Sclfridge (MIT) Hallen Newell y Herbert Simon (Carniage Tech): Programa de razonamiento Terico Lgico (TL) Hizo demostracin de un teorema del trabajo Principia Matemtica de Russell y Whitehead ms corto que el de ellos. 7
Campo dominado en aproximadamente 20 aos por los que se mencionaron anteriormente, estos fueron Colegas y estudiantes del MIT, CMU, Stanford e IBM McCarthy propuso el nombre de INTELIGENCIA ARTIFICIAL Simon y Newell. Sistema General de Resolucin de Problemas (SRGP) enfoque de pensar cmo un ser humano. 1.5 Aportaciones iniciales Arthur Samuel (1952) o Programas para el juego de damas alcanzando un nivel al de un amateur. John McCarthy (1958) o Con sus colaboradores crearon el lenguaje LISP (MIT) o l y otros colegas del MIT inventaron el tiempo compartido o Artculo Program with common sense: generador de consejos considera el primer sistema completo de I.A. John McCarthy cre el laboratorio de I.A. en Stanford (1963) 1.6 Caractersticas de la inteligencia Artificial Una caracterstica fundamental que distingue a los mtodos de Inteligencia Artificial de los mtodos numricos es el uso de smbolos no matemticos, aunque no es suficiente para distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases de datos, tambin procesan smbolos y no se considera que usen tcnicas de Inteligencia Artificial. El comportamiento de los programas no es descrito explcitamente por el algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el problema particular presente. El programa especifica cmo encontrar la secuencia de pasos necesarios para resolver un problema dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explcitamente, cmo encontrar las variables de salida para cualquier variable dada de entrada (programa de procedimiento).
Las conclusiones de un programa declarativo no son fijas y son determinadas parcialmente por las conclusiones intermedias alcanzadas durante las consideraciones al problema especfico. Los lenguajes orientados al objeto comparten esta propiedad y se han caracterizado por su afinidad con la Inteligencia Artificial. El razonamiento basado en el conocimiento, implica que estos programas incorporan factores y relaciones del mundo real y del mbito del conocimiento en que ellos operan. Al contrario de los programas para propsito especfico, como los de contabilidad y clculos cientficos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dndole la capacidad de explicar discrepancias entre ellas.
Aplicabilidad a datos y problemas mal estructurados, sin las tcnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolucin de conflictos en tareas orientadas a metas como en planificacin, o el diagnstico de 8
tareas en un sistema del mundo real: con poca informacin, con una solucin cercana y no necesariamente exacta.
Podemos interrogar a algunas bases de datos de Internet en lenguaje natural, o incluso charlar con ellas nuestro idioma, porque por detrs se est ejecutando un programa de Inteligencia Artificial. Otras herramientas inteligentes pueden utilizarse para escrutar entre los millones de datos que se generan en un banco en busca de patrones de comportamiento de sus clientes o para detectar tendencias en los mercados de valores. 1.7 Realidad de la inteligencia Artificial Simon (1957): Futuro previsible. P.e: Juego de ajedrez Informe en 1966: No se ha logrado obtener ninguna traduccin de textos cientficos generales, ni se prev obtener ninguna en un futuro inmediato. Investigadores fracasaron en la demostracin de teoremas de pocas decenas de condiciones Programa que encuentra una solucin, no necesariamente encontrar todas en la prctica. Friedberg (1958). Evolucin automtica: Miles de horas CPU dedicadas no dieron avance tangible. Minsky y Papert ( 1969) . Capacidad de representacin al Perceptrn eran limitadas. 1.7.1 Sistemas basados en conocimiento Buchanan et al. (1969). DENDRAL: Inferir estructura molecular, a partir de espectrmetros de masas. Se definen reglas. Feigenbaum. MYCIN: diagnstico de infecciones sanguneas, con 450 reglas aproximadamente. 1.7.2 Inteligencia artificial en la industria McDermott (1982). R1: Elaboracin de pedidos de nuevos sistemas informticos. o Gener ahorros a empresas importantes de Estados Unidos Esfuerzos en Japn con computadoras inteligentes usando Prolog. Reaparicin de las redes neuronales (1986 a la fecha) o Algoritmos de aprendizaje de retroalimentacin o Modelos llamados como conexionistas 1.7.3 Inteligencia artificial y la ciencia Desarrollo sobre teoras ya existentes que teoras nuevas Slidas bases experimentales, analizarlos estadsticamente para identificar su relevancia Aplicaciones deben demostrar su utilidad en el mundo real I.A. surge en contra de las limitaciones dentro de teora de control y estadstica Tendencia actual es el campo de reconocimiento del habla Redes de Bayes representacin eficiente y razonamiento riguroso ante conocimiento incierto. Usada en razonamiento incierto y sistemas expertos. 9
Agente: algo que razona, autnomo, perceptivos, persisten en tiempo prolongado, adaptables, proactivo, sociales, alcanzan objetivos diferentes. Sistemas inteligentes Agentes en entornos reales (como internet) con entradas continuas. I.A. en los motores de bsqueda. 1.8 Aplicaciones Planificacin autnoma Juegos Control Autnomo Diagnosis Robtica Procesamiento del lenguaje y resolucin de problemas. 1.9 Relacin de la Inteligencia Artificial con otras ciencias Filosofa o Aristteles. Sistema informal para razonar adecuadamente con silogismos. Todos los alumnos tienen matrcula (proposicin) Luis es un alumno (proposicin) Luis tiene matrcula (conclusin). Las proposiciones anteriores a la conclusin son premisas Newell y Simons utilizan las bases dadas por Aristteles para implementar el SRGP Matemticas. Proporcionaron las herramientas para manejar aseveraciones de certeza lgica, como las probabilistas. Razonamiento con algoritmos. Economa. Formalizaron la toma de decisiones para maximizar los resultados esperados. Psicologa. Humanos y animales podan considerarse mquinas de procesamiento de informacin. Ingeniera computacional. Proveen las herramientas para aplicar la I.A. Teora de control. Diseo de dispositivos que actan de forma ptima de acuerdo a la retroalimentacin que reciben del medio. Lingstica o procesamiento del lenguaje natural. o Chomsky. Modelos sintcticos para entender y estructurar oraciones. Neurociencia. Estudio del sistema neurolgico y del cerebro. o Paul Broca (1861). reas especficas del cerebro responsable de funciones cognitivas especficas. o Camilo Golgi (1873). Observacin de neuronas individuales. o Hans Berger (1929). Desarrolla el Electroencefalograma. o Ogawa et. al. (1990). Resonancia Magntica funcional. o Existen 1000 veces ms neuronas en un cerebro humano promedio que compuertas en la UCP de un computador. o Ley Moore predice que las compuertas igualaran a las neuronas en 2020. 10
1.10 Ramas de la Inteligencia Artificial Algunas de las reas que ms sobresalen de acuerdo a la Ciencia de la Inteligencia Artificial son: Robtica Sistemas expertos Agentes inteligentes Algoritmos genticos Lgica difusa Redes neuronales Sistemas de aprendizaje Procesamiento de lenguaje natural Sistemas de visin
11
2. SISTEMAS EXPERTOS 2.1 Introduccin El trmino inteligencia cubre muchas habilidades conocidas, incluyendo la capacidad de solucionar problemas, de aprender y de entender lenguajes; la IA dirige todas estas habilidades. La mayora de los esfuerzos en IA se han hecho en el rea de solucionar los problemas, los conceptos y los mtodos para construir los programas que razonan acerca de los problemas y que luego calculan una solucin. Los programas de IA que logran la capacidad experta de solucionar problemas aplicando las tareas especficas del conocimiento se llaman Sistemas Basado en Conocimiento o Sistemas Expertos. A menudo, el trmino sistemas expertos se reserva para los programas que contienen el conocimiento usado por los humanos expertos, en contraste al conocimiento recolectado por los libros de textos. Los trminos, sistemas expertos (ES) y sistemas basados en conocimiento (KBS), se utilizan como sinnimos. Tomados juntos representan el tipo ms extenso de aplicacin de IA.
Desde hace algn tiempo los problemas ms recurrentes con los que se enfrenta la industria son la falta de personas capacitadas en campos muy especficos y el elevado costo de sus servicios. Con esto podemos establecer que uno de los bienes mejor valuados es el conocimiento humano y con esto la capacidad de tomar decisiones y de aportar un punto de opinin. En la actualidad, con la ayuda de personas especializadas podemos crear un sistema que simule la evaluacin de los mismos a travs del estudio de cierta situacin. A esto se le conoce como sistema experto. Los sistemas expertos forman parte de la ciencia de la computacin y dentro de esta se ubican en la rama de la inteligencia artificial. Este trmino fue usado por primera vez por un doctor de la universidad de Stanford, Edward A. Feigenbaum. El estipul que el poder de resolucin de un problema en un programa de computadora viene del conocimiento de un dominio especfico, no solo de las tcnicas de programacin y el formalismo que contiene. Antes de eso casi todos los investigadores en inteligencia artificial haban tratado de desarrollar mtodos generales de programacin que resolveran grandes problemas conceptuales, pero estos programas resolveran pobremente los problemas individuales. 2.2 Qu es un sistema experto? 2.2.1 Definicin Un sistema experto se define como: un sistema informtico que simula los procesos de aprendizaje, memorizacin, razonamiento, comunicacin y accin de un experto humano en una determinada rama de la ciencia, suministrando de esta forma, un consultor que puede sustituirle con unas ciertas garantas de xito. Los sistemas expertos permiten el desarrollo de otros sistemas que representan el conocimiento como una serie de reglas. Las distintas relaciones, conexiones y afinidades cobre un tema pueden ser compiladas en un sistema experto pudiendo incluir relaciones altamente 12
complejas y con mltiples interacciones. Las caractersticas mencionadas en la definicin anterior le permiten a un sistema experto almacenar datos y conocimiento, sacar conclusiones lgicas, ser capaces de tomar decisiones, aprender, comunicarse con expertos humanos o con otros sistemas expertos, explicar el razonamiento de su decisin y realizar acciones como consecuencia de todo lo anterior. 2.2.2 Tipos de sistemas expertos Existen esencialmente dos tipos de sistemas expertos, estos son: Sistemas Expertos basados en reglas: aqu el sistema experto aplica reglas heursticas apoyadas generalmente en lgica difusa para su evaluacin y aplicacin. Estas reglas heursticas son sencillamente las capacidades de estos sistemas para realizar de forma inmediata innovaciones positivas para sus fines. Sistemas expertos basados en probabilidades: su funcionamiento consiste en la aplicacin de redes bayesianas, basadas en estadstica y el teorema de Bayes. Este es un modelo probabilstico multivariado que relaciona un conjunto de variables aleatorias mediante un grfico dirigido que indica de manera explcita la influencia casual. 2.2.3 Caractersticas Las caractersticas ms importantes de un sistema experto son: Habilidad para adquirir conocimiento Fiabilidad para poder confiar en sus resultados o apreciaciones Solidez en el dominio de su conocimiento Capacidad para resolver problemas Capacidad para explicar su proceso de razonamiento o dar la razn del por qu solicita tal o cual informacin o dato. 2.2.4 Componentes de un sistema experto 2.2.4.1 Base de conocimiento Posee el conocimiento del experto humano formalizado y estructurado, formado por la descripcin de los objetos y sus relaciones y casos particulares. Algunos incluyen meta- conocimiento que son criterios con los que el sistema decide la estrategia de bsqueda a utilizar. El conocimiento se puede representar mediante clculo de predicados, listas, objetos, redes semnticas y/o reglas de produccin. La eleccin de las tcnicas de representacin depender del tipo de problema. Dentro de la base de conocimientos existen tres tipos de conocimiento para construir un sistema experto: o Reglas o Hechos y relaciones entre los componentes o Afirmaciones y preguntas 13
2.2.4.2 Mecanismo de inferencia Tambin llamado intrprete de reglas, se encarga de las operaciones de bsqueda y seleccin de las reglas a utilizar en el proceso de razonamiento. Una vez que la base de datos est completa, necesita ser ejecutada por un mecanismo de razonamiento y un control de bsqueda para resolver problemas. El mecanismo de inferencia es la unidad lgica con la que se extraen conclusiones de la base de conocimientos, segn un mtodo fijo de solucin de problemas que est configurado imitando el procedimiento humano de los expertos para solucionar problemas. El mtodo ms comn de razonamiento en los sistemas expertos es la aplicacin del modus ponens: Si A -> B y B->C, entonces A->C En un sistema experto existir un hecho slo cuando est contenido en la base de conocimientos. Las funciones del mecanismo de inferencia son: Determinar qu acciones tendrn lugar, el orden en que lo harn y cmo lo harn. Determinar cmo y cundo se procesarn las reglas, y dado el caso tambin la eleccin de qu reglas debern procesarse. Control de dilogo con el usuario. 2.2.4.3 Generador de explicaciones Una caracterstica de los sistemas expertos es su habilidad para explicar su razonamiento usando el mdulo del subsistema de explicacin, un sistema experto puede proporcionar una explicacin al usuario de por qu est haciendo una pregunta y cmo ha llegado a una conclusin. Este mdulo proporciona beneficios tanto al diseador del sistema como al usuario. El diseador puede usarlo para detectar errores y el usuario se beneficia de la transparencia del sistema. 2.2.4.5 Interfaz de usuario La interaccin entre un sistema experto y un usuario se realiza en lenguaje natural. Tambin es altamente interactiva y sigue el patrn de la conversacin entre seres humanos. Para conducir este proceso de manera aceptable para el usuario es especialmente importante el diseo del interfaz de usuario. Un requerimiento bsico del interfaz es la habilidad de hacer preguntas. Para obtener informacin fiable del usuario hay que poner especial cuidado en el diseo de las cuestiones. Esto puede requerir disear el interfaz usando mens o grficos. 14
FIGURA 1: Componentes de un sistema experto.
2.3 Ventajas Proporcionan la capacidad de trabajar con grandes cantidades de informacin, que son uno de los grandes problemas que enfrenta el analista humano que puede afectar negativamente a la toma de decisiones, pues el analista humano puede depurar los datos que no considere relevantes, mientras que un sistema experto debido a su gran velocidad de proceso analiza toda la informacin, incluyendo las no tiles para de esta manera, aportar una decisin ms slida. Resuelven problemas que requieren un conocimiento formal especializado. Obtienen conclusiones ms rpidamente que los expertos humanos. Razonan pero en base a un conocimiento adquirido y no tienen sitio para la subjetividad. Tienen al menos la misma competencia que un especialista humano. Recomendados cuando los expertos humanos son escasos, o cuando es muy elevado el volumen de datos que ha de considerarse para obtener una conclusin. 2.4 Requerimientos de un sistema experto La construccin de un sistema experto no es una tarea sencilla, debido a que involucra mucha participacin de distintas personas, cada una de las cuales aportar algo para que el sistema experto a desarrollar sea robusto y fcil de usar y mantener. Adems se deben hacer varias elecciones en cuanto al desarrollo del sistema experto. Para desarrollar un sistema experto primero se debe conocer el equipo de gente necesario, despus los mtodos que utiliza ese equipo de gente y por ltimo como prueban y construyen prototipos de software para terminar en el sistema final. 15
Las personas que componen un grupo o un equipo, como en todos los mbitos deben cumplir ciertas caractersticas y cada uno de ellos dentro del equipo desarrolla un papel distinto. A continuacin se detalla cada componente del equipo dentro del desarrollo y cul es la funcin de cada uno. 2.4.1 El experto La funcin del experto es la de poner sus conocimientos especializados a disposicin del sistema experto. 2.4.2 El ingeniero de conocimiento Es el ingeniero que plantea las preguntas al experto, estructura sus conocimientos y los implementa en la base de conocimientos. Entre sus principales funciones destacan: Responsable de la fase de adquisicin del conocimiento Participe de las fases de modelizacin de conocimiento y evaluacin. 2.4.3 El usuario El usuario aporta sus deseos y sus ideas, determinando especialmente el escenario en el que debe aplicarse el sistema experto. 2.5 Aplicaciones de los sistemas expertos Las principales aplicaciones de los sistemas expertos son las relacionadas con el mundo empresarial. Esto se debe a que resultan muy tiles en funciones como la contabilidad, tesorera, gestiones internas, etc. el campo que ms aplicaciones de sistemas expertos est realizando es el de la auditora. Sin embargo, los sistemas expertos son aplicados en muchas ms reas con resultados satisfactorios. Algunas de las principales reas son: telecomunicaciones, medicina, militar, derecho, aeronutica, geologa, electrnica, etc. 2.5.1 Campos de accin Otorgar crditos bancarios. Administracin y recuperacin de informacin. Departamento de ayuda y asistencia. Instalaciones mdicas y hospitales. Evaluacin del desempeo de empleados. Anlisis de prstamos bancarios. Deteccin de virus. Reparacin y mantenimiento. Mercadotecnia: cobertura y elaboracin de informes de mercadotecnia. Optimizacin de almacenes 2.5.2 Ejemplos de aplicacin 2.5.2.1 Medicina DENDRAL: Es capaz de calcular hechos relativos a estructuras moleculares. 16
MYCIN: diagnostica infecciones en la sangre y meningitis y adems sugiere el tratamiento a seguir. PUFF: diagnostica y trata enfermedades del pulmn. MOLGENO: ayuda a los bilogos que trabajan en el campo del DNA y la ingeniera gentica. GENESIS: permite planificar y simular experimentos en el campo de la unin de genes. 2.5.2.2 Electrnica PROGRAMMERS APPRENTICE: ayuda a la escritura de programas dedicados a la programacin de circuitos electrnicos. EURISKO: capaz de aprender a medida que funciona, crea circuitos micro elctricos tridimensionales 2.5.2.1Milcia EXPERT SYSTEMS TO COMBAT INTERNATIONAL TERRORISM: ayuda a la creacin de estrategias antiterroristas. TWIRL: simula guerras completas y gua a tomar mejores acciones en caso todas las situaciones posibles. RI: descubre yacimientos petrolferos bajo el mar.
17
3. PROGRAMACIN LGICA (PROLOG) 3.1 Lenguaje de programacin Es una tcnica de comunicacin estilizada que se utiliza para controlar el comportamiento de una maquina (usualmente un computador) Como los lenguajes humanos, los lenguajes de programacin tienen reglas sintcticas y semnticas para definir el significado Herramienta que permite a un programador especificar de manera precisa: sobre qu datos una computadora debe operar, cmo deben ser estos almacenados y transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias Ejemplos: Visual Basic C/C++ JAVA FORTRAN LISP 3.2 Paradigmas de programacin Orientado a aspectos: Es un paradigma de programacin relativamente reciente cuya intencin es permitir una adecuada modularizacin de las aplicaciones y posibilitar una mejor separacin. De esta forma se consigue razonar mejor sobre los conceptos, se elimina la dispersin del cdigo y las implementaciones resultan ms comprensibles, adaptables y reusables. Concurrente: Es un paradigma de programacin que usa tcnicas para expresar paralelismo potencial y resolver los problemas resultantes de sincronizacin y de comunicacin Declarativo: Es un paradigma de programacin que est basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solucin Funcional: Es un paradigma de programacin declarativa basado en la utilizacin de funciones aritmticas que no maneja datos mutables o de estado. Imperativo: Es un paradigma de programacin que describe la programacin en trminos del estado del programa y sentencias que cambian dicho estado Lgico: El paradigma lgico Tiene como caracterstica principal la aplicacin de las reglas de la lgica para inferir conclusiones a partir de datos. Orientado a objetos: Es un paradigma de programacin que usa los objetos en sus interacciones, para disear aplicaciones y programas informticos 3.3 Historia de la programacin lgica Remontndonos en el tiempo podemos tomar a Aristteles (384-322 a.C.) y su teora silogstica como los precursores de la lgica matemtica y en consecuencia de la Programacin lgica. La teora silogstica, que estudia una clase particular de implicaciones con dos premisas y una conclusin, tambin fue tratada por los filsofos contemporneos de Aristteles y largamente estudiada en siglos posteriores, aunque no se produjeron innovaciones de inters hasta el siglo XVII con los trabajos de Descartes y Leibnitz.
18
Dos siglos despus Boole dio un paso importante en el sistema de razonamiento aristotlico poniendo en relacin la lgica y el lgebra. Los trabajos de Boole fueron modificados y ampliados ms tarde por los lgicos y matemticos como Jevon, Pierce, Schroeder y Huntington entre otros. Llegamos as a finales del siglo XIX y principios del XX con la revolucin de la fundamentacin de las Matemticas gracias a los trabajos de Frege, Cantor, Peano, Russell y Whitehead entre otros que marcan el periodo ms apasionante y de mayor actividad en la historia de la lgica matemtica. Llegamos a la mitad del siglo XX y descubrimos que de forma paralela al desarrollo de la lgica se ha producido un espectacular avance de las llamadas mquinas de calcular, avance sobre el que reflexiona A. Turing en un artculo titulado Pueden pensar las maquinas?, publicado en 1950 y que podemos dar como punto de partida de lo que despus se llamara Inteligencia Artificial.
No obstante hasta la primera mitad de los sesenta, con los trabajos de Kowalski y el primer PROLOG de Colmerauer cuando nace la Programacin Lgica como rama de la demostracin automtica con personalidad propia.
3.4 Programacin lgica La Programacin Lgica estudia el uso de la lgica para el planteamiento de problemas y el control sobre las reglas de inferencia para alcanzar la solucin automtica. La Programacin Lgica, junto con la funcional, forma parte de lo que se conoce como Programacin Declarativa, es decir la programacin consiste en indicar como resolver un problema mediante sentencias, en la Programacin Lgica, se trabaja en una forma descriptiva, estableciendo relaciones entre entidades, indicando no como, sino que hacer, entonces se dice que la idea esencial de la Programacin Lgica es Programa= lgica + control Lgica (programador): hechos y reglas para representar conocimiento Control (interprete): deduccin lgica para dar respuestas (soluciones) La programacin lgica intenta resolver lo siguiente: Dado un problema S, saber si la afirmacin A es solucin o no del problema o en qu casos lo es. Adems queremos que los mtodos sean implantados en mquinas de forma que la resolucin del problema se haga de forma automtica
La programacin lgica: construye base de conocimientos mediante reglas y hechos Regla: implicacin o inferencia lgica que deduce nuevo conocimiento, la regla permite definir nuevas relaciones a partir de otras ya existentes Mortal (x): - humano(x) ----------- x es mortal si x es humano
Hecho: declaracin, clusula o proposicin cierta o falsa, el hecho establece una relacin entre objetos y es la forma ms sencilla de sentencia Humano (Scrates); Scrates es humano Ama (Juan, Mara); ama Juan a Mara 19
Consulta: se especifica el problema, la proposicin a demostrar o el objetivo Partiendo de que los humanos son mortales y de que Scrates es humano, deducimos que Scrates es mortal Mortal (x): - humano(x);- los humanos son mortales; regla Humano (Scrates); Scrates es humanos; hecho Scrates es mortal; consulta Nota: La programacin lgica comprende dos Paradigmas de Programacin la Programacin Declarativa y la Programacin funcional. La programacin declarativa gira en torno al concepto de predicado, o relacin entre elementos. La programacin funcional se basa en el concepto de funcin (que no es ms que una evolucin de los predicados), de corte ms matemtico. 3.5 Fundamento de la programacin lgica La mayora de los Lenguajes de Programacin se basan en la Teora Lgica de Primer Orden, aunque tambin incorporan algunos comportamientos de orden superior, en este sentido, destacan los lenguajes funcionales ya que se basan en el Clculo Lambda, es la nica teora lgica de orden superior.
La Teora Lgica de Primer Orden o tambin llamada lgica de predicados: es un sistema deductivo basado en un Lenguaje Lgico Matemtico formal de gran utilidad para las Matemticas, Filosofa, Lingstica y Computacional. Incluye proposiciones lgicas, predicados y cuantificadores. 3.6 Caractersticas de la programacin lgica Unificacin de trminos Mecanismos de inferencia automtica Recursin como estructura de control bsica Visin lgica de la computacin 3.7 Lenguajes de programacin lgica Un lenguaje es el CLP pero el lenguaje de programacin lgica por excelencia es el PROLOG. Prolog: es un Lenguaje de Programacin diseado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del cual tienes conocimiento.
La popularidad del lenguaje se debe a su capacidad de deduccin y adems es un lenguaje fcil de usar por su semntica y sintaxis. Solo busca relaciones entre los objetos creados, las variables y las listas, que son su estructura bsica. Escribir un programa en Prolog consiste en declarar el conocimiento disponible acerca de objetos, adems de sus relaciones y sus reglas, en lugar de correr un programa para obtener una solucin, se hace una pregunta, el programa revisa la base de datos para encontrar la solucin a la 20
pregunta, si existe ms de una solucin, Prolog hace un barrido para encontrar soluciones distintas. El propio sistema es el que deduce las respuestas a las preguntas que se le plantean, dichas respuestas las deduce del conocimiento obtenido por el conjunto de reglas dadas. 3.8 Campos de aplicacin Sistemas Expertos, donde un Sistema de informacin mita las recomendaciones de un experto sobre algn dominio de conocimiento. Demostracin automtica de teoremas, donde un programa genera nuevos teoremas sobre una teora existente. Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la informacin contenida en una expresin lingstica humana. Inteligencia artificial Sistemas de informacin
21
4. LGICA Y CLCULO PROPOSICIONAL 4.1 Introduccin El clculo proposicional es denominado tambin lgica proposicional y es definida como la ciencia que trata de los principios vlidos del razonamiento y la argumentacin. El estudio de lgica es el esfuerzo por determinar las condiciones que justifican a una persona para pasar de una proposicin dada, llamadas premisas, a una conclusin que se deriva de aquellas. La Lgica proposicional estudia las operaciones proposicionales y la deduccin proposicional. Una proposicin es un ordenamiento resultado de nuestra actividad pensante donde expresamos, bien la posibilidad de la ocurrencia de un hecho, o la necesidad de una accin, o una orden, un deber, una interrogante, entre otras cosas. Puede decirse que una proposicin es una frase declarativa o juicio al que, podemos asignarle un valor verdadero ya sea cierto o falso. Por ejemplo la frase El programa es de Software, es una proposicin, a priori no puede decirse si esta proposicin tiene un valor cierto o falso, pero si se parte de un contexto en que se establece unvocamente de qu programa se est hablando y adems se conoce que efectivamente este es de Software, puede afirmarse que la proposicin es cierta. Toda proposicin, puede ser representada por una frmula del clculo proposicional, por lo que, si a las primeras se les puede asignar un valor derivativo, es de esperar que a las segundas tambin. Las frmulas ms simples son las que constan de solo un smbolo de variable o constante proposicional (p, q, r, 1, 0, etc.), a estas se les llama atmicas. En el caso de las frmulas 0 y 1 sus valores derivativos sern siempre falso (0) y cierto (1) respectivamente. Las variables por su parte, como su nombre lo indica, pueden tomar cualquier valor (0 o 1). A manera de ejemplo, supngase que la variable p representa a la proposicin est lloviendo, entonces p tomar valor 1 cuando efectivamente est lloviendo, mientras tomar valor 0 cuando esto no sea as. Para determinar el valor derivativo de una frmula no atmica, lo primero que se necesita es asociar un valor a cada una de las variables que la forman. Pero con esto no basta, se necesita de reglas de interpretacin y de precedencia para las operaciones. 4.2 Clculo o lgica proposicional El desarrollo de la Lgica proposicional (tipo de lgica simblica) se da por insuficiencias o limitaciones de la lgica clsica. La lgica proposicional, se concentra en el anlisis de las proposiciones de los argumentos y las relaciones que existen entre ellas. Este anlisis se conoce como veritativo funcional pues el valor de verdad de los argumentos depende ahora del valor de verdad de sus enunciados y de la forma en que estos se conectan, que ya no es de la forma dada por la tercera persona del indicativo del verbo ser, como usaba el esquema aristotlico. Dicho de otra manera la lgica proposicional estudia las relaciones entre las proposiciones sin analizar, sin tener en cuenta la estructura interna de las mismas.
El clculo proposicional (la lgica proposicional) forma slo una parte de la lgica simblica. Pero su funcionamiento es lo suficientemente importante y fundamental como para centrarnos en ella a fin de comprender algunos procedimientos bsicos de la lgica simblica. 22
4.3 Lenguaje del clculo proposicional La lgica es un lenguaje formal, y como tal est constituido por un conjunto de signos y reglas caracterstico: signos del lenguaje (tabla de smbolos), reglas sintcticas (reglas para la construccin de expresiones del lenguaje) y reglas semnticas (reglas que nos permiten encontrar un valor de verdad para las expresiones del lenguaje a partir de los valores de verdad de sus componentes).
La lgica proposicional permite la realizacin de clculos, para lo cual traduce el lenguaje ordinario a frmulas lgicas, transforma tales frmulas en otras, es decir deduce unas de otras. Los valores de verdad que usar la el clculo proposicional sern solamente el de verdad (o verdadero) simbolizado por una v y el de falsedad (o falso) simbolizado por una f. Cuando hablamos de clculo nos estamos refiriendo a un sistema de relaciones entre smbolos no interpretados que permite realizar operaciones con ellos. El lenguaje del clculo proposicional recibir el nombre de Lenguaje L. 4.4 Smbolos del lenguaje proposicional Cuando hablamos de smbolos formales en el contexto del clculo proposicional (a veces llamados signos elementales) nos referimos a tres tipos de signos: 1. Variables proposicionales o letras enunciativas: son letras que simbolizan proposiciones atmicas (proposiciones que no contienen conectivos binarios, las que los contienen reciben el nombre de proposiciones moleculares). Se llaman variables porque cada una de ellas puede representar de forma indistinta cualquier proposicin. Dichas letras se utilizan en minscula y en orden alfabtico, vale recordar que por una convencin en la literatura lgica se utiliza a partir de la p. (p, q, r, s, t...). 2. Operadores o constantes lgicas: son smbolos que sirven para relacionar las proposiciones entre s. Se los conoce con el nombre de conectivas. El conjunto de los conectivos es un conjunto finito. Se considerarn conectivos del clculo proposicional a los siguientes smbolos: 3. Smbolos auxiliares: son smbolos que sirven para indicar como se agrupan los componentes de una frmula y cul es la conectiva principal o dominante. Estos signos auxiliares sern los parntesis (). Podra usarse una gama ms amplia de signos (corchetes, etc.), pero no resulta imprescindible.
FIGURA 2: Smbolos del lenguaje proposicional.
23
4.5 Reglas sintcticas La misin del conjunto de estas reglas de formacin es establecer la combinacin correcta de signos elementales brindando una adecuada nocin de expresin bien formada o formula bien formada del clculo proposicional. De esta manera tenemos un test que nos permite decidir ante una cadena dada de signos del lenguaje L bajo qu condiciones esa cadena puede ser considerada correcta y por lo tanto ser tenida como una expresin del lenguaje en cuestin. Mientras que no siempre los hablantes de los lenguajes naturales formulan explcitamente las reglas que rigen esos lenguajes, necesariamente deben formularse en los lenguajes formales. Las reglas que indican qu cosas sern tenidas por frmulas bien formadas o frmulas, sern tres. La primera regla es que toda letra proposicional ser considerada una frmula. La segunda indica que si algo es considerado frmula, entonces la negacin de ese algo tambin ser una frmula del lenguaje L. La tercera regla seala que si dos cosas son frmulas entonces la unin de ellas encerradas entre parntesis y unidas a travs de un conectivo binario, tambin ser considerado una frmula.
Digmoslo ahora de manera un poco ms formalizada: Sea For el conjunto de las frmulas del lenguaje L.
4.6 Reglas semnticas 4.6.1 Definicin de los consecutivos La lgica proposicional se utiliza para determinar la validez de argumentos, es decir, los conectivos tratan de expresar ciertas formas tpicas que el lenguaje natural utiliza para relacionar proposiciones. En tanto el clculo proposicional es un lenguaje artificial, formal, completamente definido, en l se eliminan las ambigedades expresivas del lenguaje natural (formas iguales de expresar relaciones diferentes entre enunciados), as como tambin se elimina la pluralidad de formas de expresar lo mismo mediante formas diferentes que posee el lenguaje natural.
Si bien una premisa es y debe ser considerada como una proposicin, su estructura puede ser simple o compleja. Una premisa puede estar conformada por una nica proposicin o por una relacin entre proposiciones. Podemos, por lo tanto, distinguir los dos tipos anteriormente 24
mencionados: atmica y molecular. Cualquier proposicin atmica puede simbolizarse con una variable proposicional, y esta puede tomar uno de los dos posibles valores de verdad (verdadero o falso). Por ejemplo, sea la proposicin atmica hoy es martes que puede simbolizarse por p, la misma puede ser o bien verdadera o bien falsa. El valor de verdad de tal proposicin depende de si lo que ella afirma o niega se corresponde con la realidad o no. Recuerden que la lgica no tiene como objetivo determinar si una proposicin atmica es verdadera o falsa, porque eso depende de las ciencias. El valor de verdad de una proposicin molecular depender del valor de las proposiciones atmicas que la constituyen ms la conectiva que las vincula.
Para determinar el valor de verdad de una proposicin molecular es necesario saber el valor de verdad que producen los conectivos al ser aplicados sobre las frmulas, sobre los valores de verdad de las frmulas. Los conectivos son funciones que a partir de valores de verdad arrojan nuevos valores de verdad. Dichas funciones quedan expresadas en una tabla que permite realizar el clculo. Dichas tablas reciben el valor de tablas de definicin de un conectivo o tambin tabla de verdad de un conectivo. 4.6.2 Negacin La negacin, que es un consecutivo unario, no es un conectivo que vincule dos variables proposicionales, sino que afecta el valor de verdad de lo que est a uno de los lados del signo, ms precisamente lo que se ubica inmediatamente a la derecha. El no del lenguaje natural ser representado por el signo . La negacin es la conectiva que convierte un enunciado verdadero en falso, y un enunciado falso en verdadero.
4.6.3 Conjuncin La Conjuncin es la conectiva que origina una proposicin molecular que solo es verdadera si ambas proposiciones que la integran son verdaderas, y falsa en los otros casos.
4.6.4 Disyuncin La Disyuncin es la conectiva que origina una proposicin molecular que solo es falsa si ambas proposiciones que la integran son falsas, y verdadera en los otros casos.
25
4.6.5 Condicional La Condicional es el conectivo que origina una proposicin molecular que solo es falsa si el antecedente es verdadero y el consecuente es falso, siendo verdadera en los restantes casos.
4.6.6 Bi condicional Esta conectiva origina una proposicin molecular que es verdadera cuando sus dos componentes tienen el mismo valor de verdad, y falsa si uno de sus componentes es verdadero y el otro falso.
26
5. REDES NEURONALES ARTIFICIALES 5.1 Introduccin Las redes neuronales artificiales o tambin conocidas como RNA o ANN intentan imitar el funcionamiento de neuronas que se encuentran en el mbito biolgico. Las RNA son aptas para resolver problemas que no poseen un algoritmo claramente definido para transformar una entrada en una salida. Dichas neuronas aprenden, reconocen y aplican relaciones entre objetos. Se emplea normalmente un conjunto de ejemplos representativos de la transformacin deseada para entrenar el sistema, que a su vez, se adapta para producir las salidas deseadas cuando se evala con las entradas aprendidas. Los primeros modelos de redes neuronales datan de 1943 por los neurlogos McCulloch y Pitts. Aos ms tarde, en 1949, Donald Hebb desarroll sus ideas sobre el aprendizaje neuronal, quedando reflejado en la "regla de Hebb". En 1958, Rosemblatt desarroll el perceptrn simple, y en 1960, Widrow y Hoff desarrollaron el ADALINE, que fue la primera aplicacin industrial real. En los aos siguientes, se redujo la investigacin, debido a la falta de modelos de aprendizaje y el estudio de Minsky y Papert sobre las limitaciones del perceptrn. Sin embargo, en los aos 80, volvieron a resurgir las RNA gracias al desarrollo de la red de Hopfield, y en especial, al algoritmo de aprendizaje de retropropagacin ideado por Rumelhart y McLellan en 1986 que fue aplicado en el desarrollo de los perceptrones multicapa. 5.2 Funcionamiento Las RNA son un mtodo de resolver problemas, de forma individual o combinadas con otros mtodos, para aquellas tareas de clasificacin, identificacin, diagnstico, optimizacin o prediccin en las que el balance datos/conocimiento se inclina hacia los datos y donde, adicionalmente, puede haber la necesidad de aprendizaje en tiempo de ejecucin y de cierta tolerancia a fallos. En estos casos las RNAs se adaptan dinmicamente reajustando constantemente los pesos de sus interconexiones. Las RNAs se basan en la analoga que existe en el comportamiento y funcin del cerebro humano, en particular del sistema nervioso, el cual est compuesto por redes de neuronas biolgicas que poseen bajas capacidades de procesamiento, sin embargo toda su capacidad cognitiva se sustenta en la conectividad de stas. 5.3 Propiedades Una red neuronal se compone de unidades llamadas neuronas. Cada neurona recibe una serie de entradas a travs de interconexiones y emite una salida. Esta salida viene dada por tres funciones. 27
5.3.1 Funcin de propagacin Una funcin de propagacin (tambin conocida como funcin de excitacin), que por lo general consiste en el sumatorio de cada entrada multiplicada por el peso de su interconexin (valor neto). Si el peso es positivo, la conexin se denomina excitatoria; si es negativo, se denomina inhibitoria. 5.3.2 Funcin de activacin Una funcin de activacin, que modifica a la anterior. Puede no existir, siendo en este caso la salida la misma funcin de propagacin. 5.3.3 Funcin de transferencia Una funcin de transferencia, que se aplica al valor devuelto por la funcin de activacin. Se utiliza para acotar la salida de la neurona y generalmente viene dada por la interpretacin que queramos darle a dichas salidas. Algunas de las ms utilizadas son la funcin sigmoidea (para obtener valores en el intervalo [0,1]) y la tangente hiperblica (para obtener valores en el intervalo [-1,1]). 5.4 Diseo y programacin de una RNA Con un paradigma convencional de programacin en ingeniera del software, el objetivo del programador es modelar matemticamente (con distintos grados de formalismo) el problema en cuestin y posteriormente formular una solucin (programa) mediante un algoritmo codificado que tenga una serie de propiedades que permitan resolver dicho problema. En contraposicin, la aproximacin basada en las RNA parte de un conjunto de datos de entrada suficientemente significativo y el objetivo es conseguir que la red aprenda automticamente las propiedades deseadas. En este sentido, el diseo de la red tiene menos que ver con cuestiones como los flujos de datos y la deteccin de condiciones, y ms que ver con cuestiones tales como la seleccin del modelo de red, la de las variables a incorporar y el reprocesamiento de la informacin que formar el conjunto de entrenamiento. Asimismo, el proceso por el que los parmetros de la red se adecuan a la resolucin de cada problema no se denomina genricamente programacin sino que se suele denominar entrenamiento neuronal. Por ejemplo en una red que se va a aplicar al diagnstico de imgenes mdicas; durante la fase de entrenamiento el sistema recibe imgenes de tejidos que se sabe son cancergenos y tejidos que se sabe son sanos, as como las respectivas clasificaciones de dichas imgenes. Si el entrenamiento es el adecuado, una vez concluido, el sistema podr recibir imgenes de tejidos no clasificados y obtener su clasificacin sano/no sano con un buen grado de seguridad. Las variables de entrada pueden ser desde los puntos individuales de cada imagen hasta un vector de caractersticas de las mismas que se puedan incorporar al sistema (por ejemplo, procedencia anatmica del tejido de la imagen o la edad del paciente al que se le extrajo la muestra). 5.5 Ventajas Las redes neuronales artificiales (RNA) tienen muchas ventajas debido a que est basado en la estructura del sistema nervioso, principalmente el cerebro. 28
Aprendizaje: Las RNA tienen la habilidad de aprender mediante una etapa que se llama etapa de aprendizaje. Esta consiste en proporcionar a la RNA datos como entrada a su vez que se le indica cul es la salida (respuesta) esperada. Auto organizacin: Una RNA crea su propia representacin de la informacin en su interior, descargando al usuario de esto. Tolerancia a fallos: Debido a que una RNA almacena la informacin de forma redundante, sta puede seguir respondiendo de manera aceptable aun si se daa parcialmente. Flexibilidad: Una RNA puede manejar cambios no importantes en la informacin de entrada, como seales con ruido u otros cambios en la entrada (por ejemplo si la informacin de entrada es la imagen de un objeto, la respuesta correspondiente no sufre cambios si la imagen cambia un poco su brillo o el objeto cambia ligeramente). Tiempo real: La estructura de una RNA es paralela, por lo cual si esto es implementado con computadoras o en dispositivos electrnicos especiales, se pueden obtener respuestas en tiempo real. 5.6 Aplicaciones Las caractersticas de las RNA las hacen bastante apropiadas para aplicaciones en las que no se dispone a priori de un modelo identificable que pueda ser programado, pero se dispone de un conjunto bsico de ejemplos de entrada (previamente clasificados o no). Asimismo, son altamente robustas tanto al ruido como a la disfuncin de elementos concretos y son fcilmente paralelizables, esto incluye problemas de clasificacin y reconocimiento de patrones de voz, imgenes, seales, etc. Asimismo se han utilizado para encontrar patrones de fraude econmico, hacer predicciones en el mercado financiero, hacer predicciones de tiempo atmosfrico, etc. Tambin se pueden utilizar cuando no existen modelos matemticos precisos o algoritmos con complejidad razonable, por ejemplo la red de Kohonen ha sido aplicada con un xito ms que razonable al clsico problema del viajante (un problema para el que no se conoce solucin algortmica de complejidad polinmica). Otro tipo especial de redes neuronales artificiales se ha aplicado en conjuncin con los algoritmos genticos (AG) para crear controladores para robots. La disciplina que trata la evolucin de redes neuronales mediante algoritmos genticos se denomina Robtica Evolutiva. En este tipo de aplicacin el genoma del AG lo constituyen los parmetros de la red (topologa, algoritmo de aprendizaje, funciones de activacin, etc.) y la adecuacin de la red viene dada por la adecuacin del comportamiento exhibido por el robot controlado (normalmente una simulacin de dicho comportamiento). 5.7 Ejemplos Las redes neuronales son una tecnologa computacional emergente que puede utilizarse en un gran nmero y variedad de aplicaciones, tanto como comerciales como militares. Hay muchos tipos diferentes de redes neuronales, cada uno de los cuales tiene una aplicacin particular ms apropiada. Separndolas segn las distintas disciplinas algunos ejemplos de sus aplicaciones son: 29
Biologa: Aprender ms acerca del cerebro y otros sistemas. Obtencin de modelos de la retina. Empresa: Reconocimiento de caracteres escritos. Identificacin de candidatos para posiciones especficas. Optimizacin de plazas y horarios en lneas de vuelo. Explotacin de bases de datos. Evaluacin de probabilidad de formaciones geolgicas y petrolferas. Sntesis de voz desde texto.
Medio Ambiente: Analizar tendencias y patrones. Previsin del tiempo. Finanzas Previsin de la evolucin de los precios. Valoracin del riesgo de los crditos. Identificacin de falsificaciones. Interpretacin de firmas. Manufacturacin: Robots automatizados y sistemas de control (visin artificial y sensores de presin, temperatura, gas, etc.) Control de produccin en lneas de proceso. Inspeccin de calidad. Filtrado de seales. Medicina: Analizadores del habla para la ayuda de audicin de sordos profundos. Diagnstico y tratamiento a partir de sntomas y/o de datos analticos (encefalograma, etc.). Monitorizacin en ciruga. Prediccin de reacciones adversas a los medicamentos. Lectoras de Rayos X. Entendimiento de causa de ataques epilpticos. Militares Clasificacin de las seales de radar. Creacin de armas inteligentes. Optimizacin del uso de recursos escasos.
30
6. LGICA DIFUSA 6.1 Introduccin Se considera que una persona es alta si mide 1.80 metros, pero una persona que mide 1.7999 metros tambin. Para la lgica tradicional esto es invalido Ejemplo: A es el conjunto de personas altas A = {x|x > 1.8} Una persona que mida menos que esto es considerada baja. Altura Baja Alta 1.56 X 1.84 X 1.44 X 1.78 X
La lgica difusa es una extensin de la lgica de conjuntos tradicional pero con un parecido al modo de pensar humano. La lgica difusa se inici en 1965 por Lotfi A. Zadeh, profesor de la Universidad de California en Berkeley. Desde que Lotfy A. Zadeh (1965) desarroll este concepto de lgica difusa, se ha trabajado en este tema, el principal centro de desarrollo es Japn, donde sus investigadores la han aplicado a muy diversos sistemas, principalmente electrodomsticos, sistemas ms recientes estn vinculados con la industria, la medicina y la actividad espacial. Muchas publicaciones y libros se han escrito de este tema, pero an queda mucho por explorar. El desarrollo de modelos matemticos de sistemas reales es un tpico importante en diferentes disciplinas. Desgraciadamente la mayora de problemas del mundo real pueden ser demasiado complejos para ser considerados en un modelo formal basado en tcnicas tradicionales. Adems de que existe imprecisin en nuestro lenguaje cuando tratamos de describir fenmenos que no estn bien delimitados. Enunciados como Mara es medio lista o agita la varilla con mucha fuerza son algunos ejemplos. La lgica difusa (fuzzy logic) permite tratar informacin imprecisa, como medio lista, temperatura baja o mucha fuerza, en trminos de conjuntos difusos. En Lgica Difusa, se utilizan conceptos relativos de la realidad, definiendo grados, variables de pertenencia y siguiendo patrones de razonamiento similares a los del pensamiento humano. 6.2 Historia Los conjuntos difusos fueron introducidos por primera vez en 1965; la creciente disciplina de la lgica difusa provee por s misma un medio para acoplar estas tareas. En cierto nivel, la lgica difusa puede ser vista como un lenguaje que permite trasladar sentencias sofisticadas en lenguaje natural a un lenguaje matemtico formal. Mientras la motivacin original fue ayudar a manejar aspectos imprecisos del mundo real, la prctica temprana de la lgica difusa permiti el desarrollo de aplicaciones prcticas. Aparecieron numerosas publicaciones que presentaban los fundamentos 31
bsicos con aplicaciones potenciales. Esta frase marc una fuerte necesidad de distinguir la lgica difusa de la teora de probabilidad. Tal como la entendemos ahora, la teora de conjuntos difusos y la teora de probabilidad tienen diferentes tipos de incertidumbre.
En 1994, la teora de la lgica difusa se encontraba en la cumbre, pero esta idea no es nueva, para muchos, estuvo bajo el nombre de lgica difusa durante 25 aos, pero sus orgenes se remontan hasta 2,500 aos. An Aristteles consideraba que existan ciertos grados de veracidad y falsedad. Platn haba considerado ya grados de pertenencia. En el siglo XVIII el filsofo y obispo anglicano Irlands, George Berkeley y David Hume describieron que el ncleo de un concepto atrae conceptos similares. Hume en particular, crea en la lgica del sentido comn, el razonamiento basado en el conocimiento que la gente adquiere en forma ordinaria mediante vivencias en el mundo. En Alemania, Immanuel Kant, consideraba que solo los matemticos podan proveer definiciones claras, y muchos principios contradictorios no tenan solucin. Por ejemplo la materia poda ser dividida infinitamente y al mismo tiempo no poda ser dividida infinitamente. Particularmente la escuela americana de la filosofa llamada pragmatismo fundada a principios de siglo por Charles Sanders Peirce, cuyas ideas se fundamentaron en estos conceptos, fue el primero en considerar ''vaguedades'', ms que falso o verdadero, como forma de acercamiento al mundo y a la forma en que la gente funciona.
La idea de que la lgica produce contradicciones fue popularizada por el filsofo y matemtico britnico Bertrand Russell, a principios del siglo XX. Estudio las vaguedades del lenguaje, concluyendo con precisin que la vaguedad es un grado. El filsofo austraco Ludwing Wittgenstein estudi las formas en las que una palabra puede ser empleada para muchas cosas que tienen algo en comn. La primera lgica de vaguedades fue desarrollada en 1920 por el filsofo Jan Lukasiewicz, visualiz los conjuntos con un posible grado de pertenencia con valores de 0 y 1, despus los extendi a un nmero infinito de valores entre 0 y 1. En los aos sesentas, Lofti Zadeh invent la lgica difusa, que combina los conceptos de la lgica y de los conjuntos de Lukasiewicz mediante la definicin de grados de pertenencia.
6.3 Definicin La lgica difusa es una tcnica de la inteligencia computacional que permite trabajar informacin con alto grado de imprecisin, en esto se diferencia de la lgica convencional que trabaja con informacin bien definida y precisa. El concepto de Lgica Difusa fue concebido por Lofti Zadeh un profesor de la Universidad de California en Berkley, quien inconforme con los conjuntos clsicos (crisp sets) que solo permiten dos opciones, la pertenencia o no de un elemento a dicho conjunto la present como una forma de procesar informacin permitiendo pertenencias parciales a unos conjuntos que en contraposicin a los clsicos los denomin Conjuntos Difusos (fuzzy sets), el concepto de conjunto difuso fue expuesto por Lofti Zadeh en un paper hoy clsico en la literatura de la lgica difusa en el ao de 1965, el artculo se titula "Fuzzy Sets" y fue publicado en la revista Information and Control. El mismo Zadeh publica en 1971 el artculo, "Quantitative Fuzzy Semantics", en donde Introduce los elementos formales que acabaran 32
componiendo el cuerpo de la doctrina de la lgica difusa y sus aplicaciones tal como se conocen en la actualidad. 6.4 Qu es la lgica difusa? La lgica difusa es una metodologa que proporciona una manera simple y elegante de obtener una conclusin a partir de informacin de entrada vaga, ambigua, imprecisa, con ruido o incompleta, en general la lgica difusa imita como una persona toma decisiones basada en informacin con las caractersticas mencionadas. Una de las ventajas de la lgica difusa es la posibilidad de implementar sistemas basados en ella tanto en hardware como en software o en combinacin de ambos. 6.5 Conjuntos difusos
El concepto clave para entender cmo trabaja la lgica difusa es el de conjunto difuso, se puede definir un conjunto difuso de la siguiente manera. Teniendo un posible rango de valores al cual llamaremos U, por ejemplo U=Rn, donde Rn es un espacio de n dimensiones, a U se le denominara Universo de Discurso. En U se tendr un conjunto difuso de valores llamado F el cual es caracterizado por de una funcin de pertenencia uf tal que uf:U->[0, 1], donde uf(u) representa el grado de pertenencia de un u que pertenece a U en el conjunto difuso F.
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 escoger 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 lingsticas 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)
ETIQUETA RANGO MB [140,160] B [160, 170] M [170, 180] A [180, 190] MA [190, 200]
33
FIGURA 6: conjuntos difusos para la altura de una persona. 6.6 Operaciones entre conjuntos difusos De manera similar a la que entre los conjuntos clsicos se realizan operaciones entre ellos, en conjuntos difusos se puede hacer lo mismo, pero debido a la naturaleza diferente de ellos la formulacin de estas operaciones es algo especial. En la figura 7, se muestran dos conjuntos difusos los cuales nos servirn para definir las operaciones fundamentales que entre ellos se pueden realizar.
FIGURA 7: Conjuntos difusos en donde se definirn las operaciones. 6.6.1 Interseccin La idea intuitiva de interseccin heredada de los conjuntos clsicos expresa que el conjunto interseccin de dos conjuntos A y B, se define como los elementos que estn en el conjunto A Y en el conjunto B; de esta manera la interseccin entre conjuntos se puede entender como una operacin tipo AND entre los mismos.
FIGURA 8: Interseccin de conjuntos difusos.
Grficamente se sabe que el valor x=4.5 tiene un nivel de pertenencia de 0.8 al conjunto A y de 0.2 al conjunto B, y el valor de pertenencia de x= 4.5 a la interseccin (zona sombreada) se desea expresar como una operacin entre estos valores se observa que de estos dos valores, el que "toca" la zona sombreada es el de 0.2 por lo que de manera intuitiva se puede afirmar que el 34
valor de pertenencia del valor dado a la interseccin de los conjuntos A y B es el valor mnimo de los valores de pertenencia del dicho valor a los conjuntos de manera individual, de manera matemtica lo anterior se puede expresar as:
6.6.2 Unin La idea intuitiva de unin heredada de los conjuntos clsicos expresa que el conjunto unin de dos conjuntos A y B, se define como los elementos que estn en el conjunto A OR estn en el conjunto B. de esta manera la interseccin entre conjuntos se puede entender como una operacin tipo OR entre los mismos.
FIGURA 9: unin entre dos conjuntos difusos. Grficamente se sabe que el valor x=4.5 tiene un nivel de pertenencia de 0.8 al conjunto A y de 0.2 al conjunto B, y el valor de pertenencia de x= 4.5 a la unin (zona sombreada) se desea expresar como una operacin entre estos valores se observa que de estos dos valores, el que "toca" la zona sombreada es el de 0.8 por lo que de manera intuitiva se puede afirmar que el valor de pertenencia del valor dado a la unin de los conjuntos A y B es el valor mximo de los valores de pertenencia de dicho valor a los conjuntos de manera individual, de manera matemtica lo anterior se puede expresar as:
6.6.3 Complemento
En conjuntos clsicos se define el complemento como el conjunto de los elementos que le faltan a un conjunto para ser igual al conjunto universo. De la misma manera en conjuntos difusos se habla del complemento como el conjunto formado por los valores de pertenencias que le permitiran al conjunto obtener el valor mximo de pertenencia posible, siendo 1 el valor mximo de pertenencia que un conjunto difuso puede suministrar, este conjunto se podra formar restando le a 1 los valores de pertenencia del conjunto difuso al que se desea encontrar el complemento.
35
Grficamente esto se visualiza as:
FIGURA 10: Complemento de dos conjuntos difusos. 6.7 Sistema de lgica difusa Mamdani
FIGURA 11: Sistema tipo Mandami. En un sistema difuso tipo Mamdani se distinguen las siguientes partes: Fuzzificador: La entrada de un sistema de lgica difusa tipo Mamdani normalmente es un valor numrico proveniente, por ejemplo, de un sensor; para que este valor pueda ser procesado por el sistema difuso se hace necesario convertirlo a un "lenguaje" que el mecanismos de inferencia pueda procesar. Esta es la funcin del fuzzificador, que toma los valores numricos provenientes del exterior y los convierte en valores "difusos" que pueden ser procesados por el mecanismo de inferencia. Estos valores difusos son los niveles de pertenencia de los valores de entrada a los diferentes conjuntos difusos en los cuales se ha dividido el universo de discurso de las diferentes variables de entrada al sistema. Mecanismo de inferencia difusa: Teniendo los diferentes niveles de pertenencia arrojados por el fuzzificador, los mismos deben ser procesados para general una salida difusa. La tarea del sistema de inferencia es tomar los niveles de pertenencia y apoyado en la base de reglas generar la salida del sistema difuso. Base de reglas difusas: La base de reglas son la manera que tiene el sistema difuso de guardar el conocimiento lingstico que le permiten resolver el problema para el cual ha sido diseado. Estas reglas son del tipo IF-THEN. Una regla de la base de reglas o base de conocimiento tiene dos partes, el antecedente y la conclusin. En un sistema difuso tipo 36
Mamdani tanto el antecedente como el consecuente de las reglas estn dados por expresiones lingsticas. Defuzzificador: La salida que genera el mecanismo de inferencia es una salida difusa, lo cual significa que no puede ser interpretada por un elemento externo (por ejemplo un controlador) que solo manipule informacin numrica. Para lograr que la salida del sistema difuso pueda ser interpretada por elementos que solo procesen informacin numrica, hay que convertir la salida difusa del mecanismos de inferencia; este proceso lo realiza el fuzzificador.
La salida del mecanismo de inferencia es un conjunto difuso resultante, para generar la salida numrica a partir de estos conjuntos existen varias opciones como el Centro de Gravedad, los Centros Promediados entre otros.
37
7. ALGORITMOS GENTICOS 7.1 Introduccin El algoritmo gentico es una tcnica de bsqueda basada en la teora de la evolucin de Darwin, que ha cobrado tremenda popularidad en todo el mundo durante los ltimos aos. Se presentarn aqu los conceptos bsicos que se requieren para abordarla, as como unos sencillos ejemplos que permitan a los lectores comprender cmo aplicarla al problema de su eleccin. En los ltimos aos, la comunidad cientfica internacional ha mostrado un creciente inters en una nueva tcnica de bsqueda basada en la teora de la evolucin y que se conoce como el algoritmo gentico. Esta tcnica se basa en los mecanismos de seleccin que utiliza la naturaleza, de acuerdo a los cuales los individuos ms aptos de una poblacin son los que sobreviven, al adaptarse ms fcilmente a los cambios que se producen en su entorno. Hoy en da se sabe que estos cambios se efectan en los genes de un individuo (unidad bsica de codificacin de cada uno de los atributos de un ser vivo), y que sus atributos ms deseables (i.e., los que le permiten adaptarse mejor a su entorno) se transmiten a sus descendientes cuando ste se reproduce sexualmente. Un investigador de la Universidad de Michigan llamado John Holland era consciente de la importancia de la seleccin natural, y a fines de los 60s desarroll una tcnica que permiti incorporarla a un programa. Su objetivo era lograr que las computadoras aprendieran por s mismas. A la tcnica que invent Holland se le llam originalmente "planes reproductivos", pero se hizo popular bajo el nombre "algoritmo gentico" tras la publicacin de su libro en 1975. Una definicin bastante completa de un algoritmo gentico es la propuesta por John Koza: "Es un algoritmo matemtico altamente paralelo que transforma un conjunto de objetos matemticos individuales con respecto al tiempo usando operaciones modeladas de acuerdo al principio Darwiniano de reproduccin y supervivencia del ms apto, y tras haberse presentado de forma natural una serie de operaciones genticas de entre las que destaca la recombinacin sexual. Cada uno de estos objetos matemticos suele ser una cadena de caracteres (letras o nmeros) de longitud fija que se ajusta al modelo de las cadenas de cromosomas, y se les asocia con una cierta funcin matemtica que refleja su aptitud. " 7.2 Definiciones Los Algoritmos Genticos son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la seleccin natural y la supervivencia de los ms fuertes, postulados por Darwin. Por imitacin de este proceso, los Algoritmos Genticos son capaces de ir creando soluciones para problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema depende en buena medida de una adecuada codificacin de las mismas.
38
Un algoritmo gentico consiste en una funcin matemtica o una rutina de software que toma como entradas a los ejemplares y retorna como salidas cules de ellos deben generar descendencia para la nueva generacin.
Versiones ms complejas de algoritmos genticos generan un ciclo iterativo que directamente toma a la especie (el total de los ejemplares) y crea una nueva generacin que reemplaza a la antigua una cantidad de veces determinada por su propio diseo. Una de sus caractersticas principales es la de ir perfeccionando su propia heurstica en el proceso de ejecucin, por lo que no requiere largos perodos de entrenamiento especializado por parte del ser humano, principal defecto de otros mtodos para solucionar problemas, como los Sistemas Expertos.
Los objetivos que perseguan John Holland y sus colegas de la Universidad de Michigan cuando concibieron los algoritmos genticos, eran dos: Abstraer y explicar rigurosamente el proceso adaptativo de los sistemas naturales. Disear sistemas artificiales que retuvieran los mecanismos ms importantes de los sistemas naturales.
En este sentido, podemos decir que los algoritmos genticos son Algoritmos de bsqueda basados en los mecanismos de seleccin natural y gentica natural. Combinan la supervivencia de los ms compatibles entre las estructuras de cadenas, con una estructura de informacin ya aleatorizada, intercambiada para construir un algoritmo de bsqueda con algunas de las capacidades de innovacin de la bsqueda humana. Bsicamente, el Algoritmo Gentico funciona como sigue: en cada generacin, se crea un conjunto nuevo de criaturas artificiales (cadenas) utilizando bits y partes ms adecuadas del progenitor. Esto involucra un proceso aleatorio que no es, en absoluto, simple. La novedad que introducen los Algoritmos Genticos es que explotan eficientemente la informacin histrica para especular sobre nuevos puntos de bsqueda, esperando un funcionamiento mejorado.
7.3 El algoritmo gentico simple El Algoritmo Gentico Simple, tambin denominado Cannico, se representa en la figura 3. Como se vera a continuacin, se necesita una codificacin o representacin del problema que resulte adecuada al mismo. Adems se requiere una funcin de ajuste o adaptacin al problema, la cual asigna un nmero real a cada posible solucin codificada. Durante la ejecucin del algoritmo, los padres deben ser seleccionados para la reproduccin, a continuacin dichos padres seleccionados se cruzaran generando dos hijos, sobre cada uno de los cuales actuara un operador de mutacin. El resultado de la combinacin de las anteriores funciones sera un conjunto de individuos (posibles soluciones al problema), los cuales en la evolucin del Algoritmo Gentico formaran parte de la siguiente poblacin.
39
FIGURA 3: Pseudocdigo del algoritmo gentico simple. 7.4 Problemtica Los principios bsicos de los Algoritmos Genticos fueron establecidos por Holland, y se encuentran bien descritos en varios textos. Goldberg, Davis, Michalewicz, Reeves. En la naturaleza los individuos de una poblacin compiten entre s en la bsqueda de recursos tales como comida, agua y refugio. Incluso los miembros de una misma especie compiten a menudo en la bsqueda de un compaero. Aquellos individuos que tienen ms xito en sobrevivir y en atraer compaeros tienen mayor probabilidad de generar un gran nmero de descendientes. Por el contrario individuos poco dotados producirn un menor nmero de descendientes. Esto significa que los genes de los individuos mejor adaptados se propagarn en sucesivas generaciones hacia un nmero de individuos creciente. La combinacin de buenas caractersticas provenientes de diferentes ancestros, puede a veces producir descendientes "sper individuos", cuya adaptacin es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unas caractersticas cada vez mejor adaptadas al entorno en el que viven.
Los Algoritmos Genticos usan una analoga directa con el comportamiento natural. Trabajan con una poblacin de individuos, cada uno de los cuales representa una solucin factible a un problema dado. A cada individuo se le asigna un valor o puntuacin, relacionado con la bondad de dicha solucin. En la naturaleza esto equivaldra al grado de efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptacin de un individuo al problema, mayor ser la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material gentico con otro individuo seleccionado de igual forma. Este cruce producir nuevos individuos descendientes de los anteriores los cuales comparten algunas de las caractersticas de sus padres. Cuanto menor sea la adaptacin de un individuo, menor ser la probabilidad de que dicho individuo sea seleccionado para la reproduccin, y por tanto de que su material gentico se propague en sucesivas generaciones. 40
De esta manera se produce una nueva poblacin de posibles soluciones, la cual reemplaza a la anterior y verifica la interesante propiedad de que contiene una mayor proporcin de buenas caractersticas en comparacin con la poblacin anterior. As a lo largo de las generaciones las buenas caractersticas se propagan a travs de la poblacin. Favoreciendo el cruce de los individuos mejor adaptados, van siendo exploradas las reas ms prometedoras del espacio de bsqueda. Si el Algoritmo Gentico ha sido bien diseado, la, poblacin converger hacia una solucin ptima del problema. 7.5 Codificacin Se supone que los individuos (posibles soluciones del problema) pueden representarse como un conjunto de parmetros (que se denominarn 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, 1}, buena parte de la teora en la que se fundamentan los algoritmos genticos utiliza dicho alfabeto. 7.5.1 Fenotipo En trminos biolgicos, el conjunto de parmetros representando un cromosoma particular se denomina fenotipo. El fenotipo contiene la informacin requerida para construir un organismo, el cual se refiere como fenotipo. Los mismos trminos se utilizan en el campo de los algoritmos genticos. La adaptacin al problema de un individuo depende de la evaluacin del genotipo. Esta ltima puede inferirse a travs del fenotipo, es decir, puede ser computada a partir de un cromosoma, usando la funcin de evaluacin. 7.5.2 Funcin de adaptacin Debe ser diseada para cada problema de manera especfica. Dado un cromosoma particular, la funcin de adaptacin le asigna un nmero real, que se supone refleja el nivel de adaptacin al problema del individuo representado por el cromosoma. 7.5.3 Fase reproductiva Durante la fase reproductiva se seleccionan los individuos de la poblacin para cruzarse y producir descendientes, que constituirn una vez mutados, la siguiente generacin de individuos. La seleccin de padres se efecta 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 funcin de adaptacin. Este procedimiento se dice que est basado en la ruleta sesgada. Segn dicho esquema, los individuos bien adaptados se escogern probablemente varias veces por generacin mientras que los pobremente adaptados al problema no se escogern ms que de vez en cuando. Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando habitualmente los operadores de cruce y mutacin. Las formas bsicas de dichos operadores se describen a continuacin. 41
7.5.4 Operador de cruce El operador de cruce toma dos padres seleccionados y corta sus ristras de cromosomas en una posicin escogida al azar, para producir dos subristras iniciales y dos subristras finales. Despus se intercambias las subristras finales producindose 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 todos los pares de individuos que han sido seleccionados para emparejarse, sino que se 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.
FIGURA 4: Operador de cruce basado en un punto. 7.5.5 Operador de mutacin El operador de mutacin se aplica a cada hijo de manera individual, consiste en la alteracin aleatoria (normalmente con probabilidad pequea) de cada gen componente del cromosoma. La figura 5 muestra la mutacin del quinto gen del cromosoma. Si bien puede en un principio pensarse que el operador de cruce es ms importante que el operador de mutacin, ya que proporciona una exploracin rpida del espacio de bsqueda, este ltimo asegura que ningn punto del espacio de bsqueda tenga probabilidad cero de ser examinado, es yes de capital importancia para asegurar la convergencia de los algoritmos genticos.
FIGURA 5: Operador de mutacin. 7.6 Ventajas y desventajas No necesitan conocimientos especficos sobre el problema que intentan resolver. Operan de forma simultnea con varias soluciones, en vez de trabajar de forma secuencial como las tcnicas tradicionales. Cuando se usan para problemas de optimizacin maximizar una funcin objetivo- resultan menos afectados por los mximos locales (falsas soluciones) que las tcnicas tradicionales. 42
Resulta sumamente fcil ejecutarlos en las modernas arquitecturas masivamente paralelas. Usan operadores probabilsticos, en vez de los tpicos operadores determinsticos de las otras tcnicas. Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en cierta medida de los parmetros que se utilicen tamao de la poblacin, nmero de generaciones, etc. Pueden converger prematuramente debido a una serie de problemas de diversa ndole. 7. 7 Limitaciones de los algoritmos genticos El poder de los Algoritmos Genticos proviene del hecho de que se trata de una tcnica robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dificultades. Si bien no se garantiza que el Algoritmo Gentico encuentre la solucin ptima, del problema, existe evidencia emprica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimizacin combinatoria.
En el caso de que existan tcnicas especializadas para resolver un determinado problema, lo ms probable es que superen al Algoritmo Gentico, tanto en rapidez como en eficacia. El gran campo de aplicacin de los Algoritmos Genticos se relaciona con aquellos problemas para los cuales no existen tcnicas especializadas. Incluso en el caso en que dichas tcnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridndolas con los Algoritmos Genticos.