Você está na página 1de 281

UNIVERSIDAD PERUANA LOS ANDES

FACULTAD DE INGENIERA

INTELIGENCIA ARTIFICIAL

Mg. ABRAHAM ESTEBAN GAMARRA MORENO Magster en Informtica Dr(c) en Ingeniera de Sistemas email: aegamarra@yahoo.es

Mg. Abraham Gamarra Moreno

CONTENIDO

CONTENIDO ................................................................. II UNIDAD ACADMICA 1.................................................. 6 INTRODUCCIN A LA INTELIGENCIA ARTIFICIAL......... 6


1.1. DEFINICIONES DE INTELIGENCIA ARTIFICIAL ..................................... 6 1.2. PREHISTORIA DE LA INTELIGENCIA ARTIFICIAL ................................. 7 1.2.1. CONSTRUCCIN DE AUTMATAS ................................................... 7 1.2.2. AUTOMATIZACIN DEL RAZONAMIENTO ................................... 11 1.2.3. CIBERNTICA ...................................................................................... 12 1.3. EL NACIMIENTO DE LA INTELIGENCIA ARTIFICIAL ........................... 13 1.3.1. PERIODO 1956 - 1969 ...................................................................... 15 1.3.2. PERIODO 1970 - 1979 ...................................................................... 27 1.3.3. AOS OCHENTA Y PRINCIPIOS DE LOS 90 ................................ 30 1.3.4. AOS 90 Y EL PRESENTE................................................................. 33 1.4. LAS REAS DE INVESTIGACIN DE LA IA ............................................ 36 1.5. REAS DE APLICACIN DE LA IA2 .......................................................... 37 1.6. APLICACIONES COMERCIALES DE LA INTELIGENCIA ARTIFICIAL238 RESUMEN ........................................................................................................................ 40 INDICADORES DE LOGRO ............................................................................................... 40 BIBLIOGRAFA RECOMENDADA ....................................................................................... 40 NEXO .............................................................................................................................. 41 ACTIVIDAD ..................................................................................................................... 41 AUTO EVALUACIN FORMATIVA ...................................................................................... 41

UNIDAD ACADMICA 2................................................ 42 REPRESENTACIN DEL CONOCIMIENTO ..................... 42


2.1. REPRESENTACIN DEL CONOCIMIENTO MEDIANTE LGICA PROPOSICIONAL ....................................................................................................... 42 2.2. REPRESENTACIN MEDIANTE LGICA DE PREDICADOS ................ 45 2.2.1. UNIFICACIN ...................................................................................... 48 2.2.2. INFERENCIA Y RAZONAMIENTO .................................................... 49 2.2.3. REGLAS DE INFERENCIA.................................................................. 49 2.2.4. MTODOS BSICOS DE RAZONAMIENTO................................... 51 2.2.5. EJEMPLO (2-1): BASE DE CONOCIMIENTO SOBRE QUE PRODUCTOS PUEDEN COMPRAR UNA PERSONA ........................................ 52 2.2.6. EJEMPLO (2-2): PROGRAMA QUE REPRESENTA LA ASOCIACIN DE LOS MIEMBROS DE UNA FAMILIA ................................................................... 54 2.2.7. EJEMPLO (2-3): PROGRAMA QUE REPRESENTA LA DISPOSICIN DE UN SISTEMA DE BLOQUES ......................................................................... 56 2.3. DIAPOSITIVAS SOBRE PROGRAMACIN LGICA CON PROLOG.... 59 RESUMEN ........................................................................................................................ 69 INDICADORES DE LOGRO ............................................................................................... 69 BIBLIOGRAFA RECOMENDADA ....................................................................................... 69 NEXO .............................................................................................................................. 70 ACTIVIDAD ..................................................................................................................... 70 AUTO EVALUACIN FORMATIVA ...................................................................................... 70

UNIDAD ACADMICA 3................................................ 74

Mg. Abraham Gamarra Moreno

ii

REPRESENTACIN DEL CONOCIMIENTO MEDIANTE REGLAS DE PRODUCCIN ......................................................... 74


3.1. INFERENCIA BASADA EN REGLAS .......................................................... 75 3.2. EL PROCESO DE RAZONAMIENTO .......................................................... 75 3.2.1. Encadenamiento hacia atrs........................................................... 76 3.2.2. Encadenamiento hacia adelante .................................................... 82 RESUMEN........................................................................................................................ 88 INDICADORES DE LOGRO ............................................................................................... 88 BIBLIOGRAFA RECOMENDADA....................................................................................... 88 NEXO .............................................................................................................................. 88 ACTIVIDAD ..................................................................................................................... 89 AUTO EVALUACIN FORMATIVA ...................................................................................... 89

UNIDAD ACADMICA 4 ................................................ 90 DISEO DE SISTEMAS BASADO EN REGLAS CON ENCADENAMIENTO HACIA ATRS ............................... 90
4.1. INTRODUCCIN........................................................................................... 90 4.2. METODOLOGA GENERAL PARA EL DISEO DE SISTEMAS BASADO EN REGLAS CON ENCADENAMIENTO HACIA ATRS.............................................. 91 4.2.1. TAREA 1: DEFINICIN DEL PROBLEMA....................................... 92 4.2.2. TAREA 2: DEFINICIN DE LOS OBJETIVOS ............................... 93 4.2.3. TAREA 3: DISEO DE LAS REGLAS .............................................. 94 4.2.4. TAREA 4: EXPANDIENDO EL SISTEMA .......................................101 4.2.5. TAREA 5: REFINAR EL SISTEMA ...................................................111 4.2.6. TAREA 6: DISEO DE INTERFAZ..................................................117 4.2.7. TAREA 7: EVALUACIN DEL SISTEMA........................................121 4.3. RESUMN DEL DISEO DE UN SISTEMA CON ENCADENAMIENTO HACIA ATRS 135 RESUMEN.......................................................................................................................136 INDICADORES DE LOGRO ..............................................................................................136 BIBLIOGRAFA RECOMENDADA......................................................................................136 NEXO .............................................................................................................................136 ACTIVIDAD ....................................................................................................................136 AUTO EVALUACIN FORMATIVA .....................................................................................136

UNIDAD ACADMICA 5 .............................................. 138 DISEO DE SISTEMAS BASADO EN REGLAS CON ENCADENAMIENTO HACIA ADELANTE ....................... 138
5.1. ETAPA 1: AISLAR EL REA PARA DESARROLLAR EL SBC. ...............139 5.2. ETAPA 2: PRECISAR EL PROBLEMA DEL REA DESIGNADA PARA EL DESARROLLO DEL SBC ...........................................................................................140 5.3. ETAPA 3: CREAR UN DIAGRAMA DE DEPENDENCIA .........................142 5.4. ETAPA 4: CREAR TABLAS DE DECISIN ..............................................143 5.5. ETAPA 5: ESCRIBIR LAS REGLAS IF THEN ..........................................150 5.6. ETAPA 6: CONSTRUIR LA INTERFAZ DE USUARIO............................157 RESUMEN.......................................................................................................................157 INDICADORES DE LOGRO ..............................................................................................157 BIBLIOGRAFA RECOMENDADA......................................................................................157 NEXO .............................................................................................................................158 ACTIVIDAD ....................................................................................................................158 AUTO EVALUACIN FORMATIVA .....................................................................................158

UNIDAD ACADMICA 6 .............................................. 159

Mg. Abraham Gamarra Moreno

iii

APRENDIZAJE CON REDES NEURONALES ARTIFICIALES PARTE 1 .................................................................... 159


6.1. FUNDAMENTOS BIOLGICOS ................................................................ 160 6.2. LA NEURONA ARTIFICIAL ........................................................................ 161 6.2.1. PESOS DE INTERCONEXIN ......................................................... 162 6.2.2. FUNCIONES DE ACTIVACIN ....................................................... 162 6.3. REDES DE NEURONAS.............................................................................. 162 6.3.1. REDES MONOCAPA (1 CAPA)........................................................ 164 6.3.2. REDES NEURONALES MULTICAPAS ............................................ 166 6.4. OPERACIN DE UNA RED NEURONAL.................................................. 169 6.5. ENTRENAMIENTO DE UNA RED NEURONAL ....................................... 170 6.5.1. ENTRENAMIENTO SUPERVISADO ................................................ 170 6.5.2. ENTRENAMIENTO NO SUPERVISADO ......................................... 175 6.6. TIPOS DE REDES NEURONALES MS IMPORTANTES ...................... 175 6.7. APLICACIONES DE LAS REDES NEURONALES ................................... 175 6.8. LA RED BACKPROPAGATION4................................................................. 183 6.8.1. LA REGLA DELTA GENERALIZADA............................................... 185 RESUMEN ...................................................................................................................... 198 INDICADORES DE LOGRO ............................................................................................. 198 BIBLIOGRAFA RECOMENDADA ..................................................................................... 198 NEXO ............................................................................................................................ 198 ACTIVIDAD ................................................................................................................... 199 AUTO EVALUACIN FORMATIVA .................................................................................... 199

UNIDAD ACADMICA 7.............................................. 200 APRENDIZAJE CON REDES NEURONALES ARTIFICIALES PARTE 2 .................................................................... 200
7.1. IMPLEMENTACIN DE APLICACIONES CON REDES NEURONALES200 7.1.1. DETECCIN DE OBSTCULOS POR MEDIO DE UN ROBOT.. 200 7.1.2. APLICACIN PARA SNTOMAS Y DIAGNSTICOS DE AUTOMVILES..................................................................................................... 218 7.1.3. CONCESIN DE AYUDAS POR ESTUDIOS................................. 234 7.1.4. IMPLEMENTACIN DE OTRAS APLICACIONES CON REDES NEURONALES ARTIFICIALES .......................................................................... 237 RESUMEN ...................................................................................................................... 237 INDICADORES DE LOGRO ............................................................................................. 237 BIBLIOGRAFA RECOMENDADA ..................................................................................... 238 NEXO ............................................................................................................................ 238 ACTIVIDAD ................................................................................................................... 238 AUTO EVALUACIN FORMATIVA .................................................................................... 238

UNIDAD ACADMICA 8.............................................. 239 LGICA DIFUSA ........................................................ 239


8.1. TEORA DE LA CERTEZA .......................................................................... 239 8.1.1. FACTOR DE CERTEZA...................................................................... 240 8.2. FACTORES DE CERTEZA EN SISTEMAS BASADOS EN REGLAS .... 240 8.3. LGICA DIFUSA ......................................................................................... 243 8.3.1. HISTORA DE LA LGICA DIFUSA............................................... 243 8.3.2. QUE ES LA LGICA DIFUSA? ...................................................... 245 8.3.3. VARIABLES LINGSTICAS ........................................................... 246 8.3.4. TEORA DE CONJUNTOS DIFUSOS ............................................. 247 8.3.5. APROXIMACIN DE LAS FUNCIONES DE PERTENENCIA EN LOS CONJUNTOS DIFUSOS ...................................................................................... 253

Mg. Abraham Gamarra Moreno

iv

8.3.6. 8.4.

OPERACIONES ENTRE CONJUNTOS DIFUSOS..........................256

DESARROLLO DE UN SISTEMA DIFUSO BASADO EN REGLAS .......258 DEFINICIN DEL PROBLEMA .........................................................258 DEFINICIN DE LAS VARIABLES LINGSTICAS ....................258 DEFINICIN DE LOS CONJUNTOS DIFUSOS ............................259 DEFINICIN DE LA REGLAS DIFUSAS ........................................262 CONSTRUIR EL SISTEMA ................................................................264 PROBAR EL SISTEMA .......................................................................265 DEFUZZIFICACIN DE LA VARIABLE DE SALIDA ....................268

8.4.1. 8.4.2. 8.4.3. 8.4.4. 8.4.5. 8.4.6. 8.4.7. 8.5.

EJEMPLO 2 DEL USO DE LGICA DIFUSA ............................................272

RESUMEN.......................................................................................................................280 INDICADORES

DE LOGRO

..............................................................................................281

BIBLIOGRAFA RECOMENDADA......................................................................................281 ACTIVIDAD ....................................................................................................................281 AUTO EVALUACIN FORMATIVA .....................................................................................281

Mg. Abraham Gamarra Moreno

UNIDAD ACADMICA 1

INTRODUCCIN A LA INTELIGENCIA ARTIFICIAL

1.1. DEFINICIONES DE INTELIGENCIA ARTIFICIAL

Algunas definiciones sobre Inteligencia Artificial son:

La Inteligencia Artificial estudia cmo lograr que las mquinas realicen tareas, que por el momento, son realizadas mejor por los seres humanos.

La Inteligencia Artificial trata de encontrar las tcnicas para disear y programar mquinas -computadoras- que emulen nuestras capacidades mentales.

La Inteligencia Artificial es el rea que trata de analizar o estudiar el comportamiento humano, y llevarlo a mquinas (computadores).
6

Mg. Abraham Gamarra Moreno

La Inteligencia Artificial es la emulacin de un comportamiento inteligente, como reacciona, como aprende. Se trata de dotar de esta inteligencia artificial a seres no vivos (computadores), con el fin de ayudar a la humanidad. Se denomina inteligencia artificial a la rama de la informtica que desarrolla procesos que imitan a la inteligencia de los seres vivos. La principal aplicacin de esta ciencia es la creacin de mquinas para la automatizacin de tareas que requieran un comportamiento inteligente. 1.2. PREHISTORIA DE LA INTELIGENCIA ARTIFICIAL1 La prehistoria de la inteligencia artificial abarca desde los primeros tiempos de nuestra civilizacin hasta mediados del siglo XX. En este perodo se producen hechos que podemos agrupar en dos lneas: una de ellas directamente relacionada con la construccin de autmatas que simulaban el comportamiento humano o animal, y que solan funcionar en ayuda de su amo. la otra lnea, referente a la informacin y automatizacin del razonamiento lgico y matemtico.

1.2.1.

CONSTRUCCIN DE AUTMATAS

La inteligencia se ha asociado a los aparatos mecnicos complejos, como es el caso de los autmatas. Mucho antes de que surgiera la inteligencia artificial como una disciplina autnoma, hubo una gran cantidad de consideraciones casi filosficas sobre la posibilidad de reproducir el ser humano mediante mquinas.

Planell Perez. Historia de la Inteligencia Artificial [en lnea]. Espaa: Ebooks gratis; 2008. [fecha de acceso 16 de noviembre de 2007]. URL disponible en: http://66.240.239.19/2/7/0/27068.ZIP

Mg. Abraham Gamarra Moreno

El nacimiento de la Inteligencia Artificial, y el concepto de mquinas inteligentes, debe ser buscado en la mitologa griega. Los artefactos inteligentes aparecen en la literatura desde entonces. La primera mencin de los autmatas aparece en la Ilada escrita en el siglo VIII a.C (canto XVIII), donde leemos que Vulcano fabricaba "veinte trpodes que deban permanecer arrimados a la pared del bien construido palacio y tenan ruedas de oro en los pies para que de propio impulso pudieran entrar donde los dioses se congregaban y volver a la casa" (V.368-384) y que era ayudado en su cojera por "dos estatuas de oro semejantes a vivientes jvenes, pues tenan inteligencia, voz y fuerza" (V. 410-4234). Por otra parte, la tradicin juda cre el mito del "golem" en 1580 (figura 1.1), figura humanoide hecha de arcilla a la que un rabino poda dar vida propia, convirtindola en un perfecto criado (que, en leyendas posteriores, llega a escapar del control de su amo). Hay que decir, sin embargo, que se requera la intervencin divina para conseguir estos espectaculares resultados. Al llegar el racionalista Descartes, siglo XVIII, las cosas fueron diferentes (1596-1650). Descartes haba defendido la tesis del "animal-mquina": los seres vivos, salvo el hombre, son meros mecanismos. La Mettrie, en 1747, va ms all con su escandaloso "L' homme machine": tambin el hombre y su comportamiento inteligente son explicables en trminos exclusivamente mecnicos. Ciertamente existan admirables mecanismos, por ejemplo, los de: el flautista (1737) que mova realmente los dedos para producir una meloda, o el pato (1738) capaz de nadar, batir alas, comer y expulsar excrementos simulados (figura 1.2). No por casualidad Vaucanson fue, antes de Jacquard, el inventor del telar automtico de tarjetas perforadas.
8

Mg. Abraham Gamarra Moreno

Figura 1.1. Figura del golem

Figura 1.2. Pato de Vaucanson

El espaol Torres Quevedo construy dos versiones del jugador ajedrecista. Se trata de un autmata jugador de final de partidas de ajedrez: juega el rey y torre blancos (mquina) contra el rey negro (jugador humano). El resultado (victoria de las blancas) del juego est determinado algortmicamente. Para simplificar el diseo, el autmata lograba siempre el jaque mate, si bien no por el camino ms corto. El primer jugador fue construido en 1912 y expuesto en Pars en 1914, ocasionando gran sensacin. Dispona de un brazo mecnico para mover las piezas, y de sensores elctricos en el tablero para conocer su ubicacin. El segundo jugador (figura
Mg. Abraham Gamarra Moreno

1.3), de 1920, fue construido por su hijo Gonzalo, y en l el movimiento de las piezas se consigue mediante imanes dispuestos bajo el tablero. Ambos ingenios eran de naturaleza electromecnica, y se citan como precursores de la Inteligencia Artificial. Ciertamente, constituyeron el primer intento exitoso de construir un autmata que jugase realmente a un juego humano, lo que se vena intentando desde el siglo XVIII.

Figura 1.3. El segundo jugador de ajedrez

En 1929 se presentaba en Francia el "Philidog", que segua el rayo luminoso de una linterna y ladraba si la intensidad luminosa era excesiva. El escritor Karel Kapek difunde en los aos 20 una palabra destinada a tener un gran xito: "robot". En su obra R.U.R."(Rossum's
Mg. Abraham Gamarra Moreno

10

Universal Robots) aparecen unos seres creados para realizar las tareas que el hombre no quiere hacer, que acaban siendo ms poderosos que el mismo hombre, llegando a poner en peligro su existencia. Sin embargo, hasta la llegada de los ordenadores electrnicos no dispusieron los cientficos y tcnicos de una herramienta que permitiera la ejecucin de tareas ms complejas por parte de dispositivos mecnicos, ni para la construccin de robots.

1.2.2.

AUTOMATIZACIN DEL RAZONAMIENTO

La segunda de las lneas es la automatizacin del razonamiento, y por tanto, la obtencin de una formalizacin. Encontramos en primer lugar a Ramon Llull y su "Ars Magna", donde describe una gramtica universal para cristianos, musulmanes y hebreos, es decir, un mtodo cientfico de discusin. Esta ciencia universal consiste en que los msticos de las tres religiones del libro aceptan que Dios tiene unos atributos, que hay un cierto nmero de "nombres de Dios", Llull los describi y cre unas tablas que permitan que cada trmino pudiese combinarse con los dems, puesto que todos eran equivalentes y cre una gramtica universal con una lgica binaria, combinatoria. Tambin encontramos a Leibniz que busc un lgebra universal que permitiera deducir todas las verdades, y as "si surgieran controversias no habra necesidad de mayor disputa entre dos filsofos que entre dos contables, pues bastara que, tomando en sus manos el lpiz, se sentaran frente a sus pizarras y se dijeran (con un amigo como testigo): calculemos", como antecesores de los sistemas formales y de la lgica que tan buen papel juegan en la inteligencia artificial moderna. Los estudios matemticos de Rusell y Hilbert de comienzos de siglo permitieron por primera vez reducir el razonamiento (o un tipos
Mg. Abraham Gamarra Moreno

11

de razonamiento) a la manipulacin abstracta de cadenas de smbolos, idea de gran fecundidad en los mecanismos de la inferencia simblica de la inteligencia artificial y tambin en los sistemas de representacin del conocimiento. Las teoras de la computabilidad y de los autmatas proporcionan el vnculo entre la formalizacin del razonamiento y las mquinas que estaban a punto de surgir tras la Segunda Guerra Mundial. En este ambiente, no es extraa que la aparicin de las primeras mquinas electrnicas de cmputo fuera seguida inmediatamente por los intentos de aplicarlas a lo que hoy llamamos Inteligencia Artificial.

1.2.3.

CIBERNTICA

Un ltimo elemento importante en la prehistoria de la Inteligencia Artificial, es la ciberntica. En los primeros aos de la informtica era habitual hablar de cerebros electrnicos y, de hecho, este era uno de los objetivos lejanos que resultaban ms del gusto de los pioneros como Von Neumann. Ms solidez han tenido las ideas que provenan de la ciberntica. La nueva visin, fruto de la inspiracin de Norbert Wiener (figura 1.4), qued publicada a partir de 1948 en su famoso libro Cibernetics y, ms adelante, el mismo Wiener analiz las relaciones de la ciberntica con la sociedad. Ciberntica es un trmino que ya haba sido utilizado en el ao 1834 por el francs Ampre, pero fue redefinido por Wiener como el campo de la teora del control y la comunicacin, tanto en las mquinas como en los animales. En paralelo a la construccin de los primeros ordenadores electrnicos, la ciberntica introdrujo nuevos conceptos como los de la retro-alimentacin (feedback), el control y los sistemas auto-organizados.
Mg. Abraham Gamarra Moreno

12

La ciberntica influy en muchos campos debido a su naturaleza fundamentalmente interdisciplinar, ligando entre s la fisiologa neuronal, la teora de la informacin de Shannon, la lgica matemtica y la naciente tecnologa informtica. De esta forma, las ideas de los creadores de la ciberntica llegaron a ser parte del espritu del tiempo, e influyeron fuertemente en los primeros investigadores de la Inteligencia Artificial.

Figura 1.4. Norbert Wiener

1.3. EL NACIMIENTO DE LA INTELIGENCIA ARTIFICIAL Ambiciosos y optimistas se mostraban los pioneros de la Inteligencia Artificial durante los primeros aos de la era informtica. Pero el fracaso de la mayora de sus proyectos mostr que los problemas que intentaban resolver eran demasiados complicados, tanto terica como tecnolgicamente. En Julio de 1945 Vannevar Bush public As We May Think una visin del futuro en donde los ordenadores asistan a los humanos en muchas actividades.
13

Mg. Abraham Gamarra Moreno

En 1950 Alan Turing present un artculo sobre el tema de la Inteligencia Artificial, titulado Inteligencia y Funcionamiento de Mquinas. En este trabajo propone un "Test de Turing" para determinar el carcter inteligente o no de una mquina. El test parte del juego donde un interrogador tiene que descubrir el sexo de dos participantes A y B situados en otra habitacin, aunque los dos dicen ser mujeres, en verdad son un hombre y una mujer. En la propuesta original de Turing, se trataba de sustituir a la mujer por un ordenador, y que el interrogador descubriera quien era la mquina de los dos participantes, los dos decan ser personas. Este objetivo haba que cumplirlo incluso sabiendo que los participantes no estaban obligados a decir la verdad y que, por ejemplo, la mquina poda decidir dar un resultado errneo en una multiplicacin o decir el resultado lo suficientemente ms tarde despus de haberlo obtenido, para engaar al interlocutor sobre su propia habilidad calculista. En la hiptesis optimista del mismo Turing, ms o menos alrededor del ao 2000 se podra disponer de ordenadores suficientemente potentes para conseguir que un interrogador normal no tuviera ms del 70% de posibilidades de realizar la identificacin correcta a los cinco minutos del comienzo de las preguntas. Hay que decir que la prediccin de Turing parece, ahora mismo, muy optimista. Posteriormente, en 1955 fue creado un lenguaje de procesamiento (bsqueda heurstica) por Allen Newell, J. C. Shaw y Herbert Simon que fue considerado como el primer lenguaje especializado de la Inteligencia Artificial, era el IPL-II (Information Proccessing Language-II). En el verano del 1956 tuvo lugar la Conferencia del Darmouth en Hanover (New Hampshire) sobre Inteligencia Artificial, organizada por John McCarthy (Stanford), Marvin Minsky (MIT), Allen Newel y Herbert Simon, con el patrocinio de la fundacin Rockefeller, reuni
Mg. Abraham Gamarra Moreno

14

a todos los que trabajaban en el recin estrenado campo de la Inteligencia Artificial. A la Dartmouth Conference, Newell y Simon ya disponan de un programa pro- Inteligencia Artificial, el Logic Theorist que reolva problemas de bsqueda heurstica, junto con los principios matemticos de Whitehead y Rusell. Gracias a esta conferencia se crearon diferentes grupos de estudio de especialidades en diversas universidades como el Instituto Tecnolgico de Masachussets, MIT (Minsky), Stanford (McCarthy) y Carnegie-Mellon (Newell y Simon). Destaquemos tambin que a mediados de los aos 50 John McCarthy y posteriormente el MIT, disearon el lenguaje LISP (List Processing). De todas formas, la Conferencia del Darmouth acuaba la expresin "Inteligencia Artificial" y predeca que al cabo de 25 aos los ordenadores haran todo el trabajo de los seres humanos, y en 1958 Newell y Simon aseguraban que en 1968 un ordenador sera campen mundial de ajedrez y habra demostrado algn teorema importante de las matemticas.

1.3.1.

PERIODO 1956 - 1969

En este periodo la Inteligencia Artificial es una actividad acadmica poco conocida fuera de los crculos especializados. Durante estos aos la Inteligencia Artificial se caracteriza por una ambicin exagerada en los objetivos que se pretenden lograr, agravndose este hecho por las limitaciones reales del hardware y del software de la poca. Esto abocara en una gran decepcin al final de este periodo, debido a la dificultad de obtener resultados y a la constatacin terica de la imposibilidad de obtenerlos en ciertos casos. Aun as en esta poca se realizaron con xito varios proyectos menos amMg. Abraham Gamarra Moreno

15

biciosos que supusieron un avance en el campo de la Inteligencia Artificial (LISP, SAINT, juego de damas, ELIZA, Student, etc.). Los proyectos mas ambiciosos de esta poca fueron el intento del General Problem Solver(GPS), el Perceptron, la Traduccin Automtica y la resolucin generalizada de problemas matemticos. Logic Theorist. 1956. El Logic Teorist fue programado por Alan Newell, Herbert Simon y J.C. Shaw y buscaba las demostraciones de Teoremas Lgicos. Un teorema lgico tiene la siguiente forma: supuesto que o bien X o bien Y es verdadera, y supuesto que Y es de hecho falsa, entonces X es verdadera. El Logic Theorist encontr la demostracin de 38 de los 52 teoremas presentes en el capitulo II de los "Principia Mathematica" de Bertrand Russell y Alfred North Whitehead. Sirvi como base para el GPS. General Problem Solver(GPS). El Solucionador General de Problemas fue llevado a cabo por Alan Newell, Herbert Simon y J.C. Shaw. La filosofa de GPS era que las tcnicas para solucionar un problema pueden separarse del conocimiento especfico sobre el problema. Se trata de un programa que solo resuelve problemas en un microcosmos formalizado. El programa es capaz de resolver problemas como el de las Torres de Hanoi. Exactamente del tipo puzzle en los que una vez que se ha descrito el objetivo y la posicin final, y dado un listado de los medios disponibles, GPS puede realizar los ensayos necesarios hasta alcanzar el objetivo (anlisis medios-fines). Tambin utiliza la teora de la retroalimentacin de Wiener. Perceptrn. Proyecto iniciado en el 1958 por Frank Rosenblatt. Su intencin era ilustrar algunas propiedades fundamentales de los sistemas inteligentes en general, sin entrar en mayores detalles con respecto a condiciones especficas y desconocidas para organismos biolgicos concretos. Rosenblatt crea que la conectividad
Mg. Abraham Gamarra Moreno

16

existente en las redes biolgicas tiene un elevado porcentaje de aleatoriedad y que la herramienta de anlisis ms apropiada era la teora de probabilidades. El Perceptrn que desarrollo Rosenbatt imitaba el funcionamiento del ojo humano, el fotoperceptrn como se le llam era un dispositivo que responda a seales pticas. El Perceptrn era inicialmente un dispositivo de aprendizaje, en su configuracin inicial no estaba en capacidad de distinguir patrones de entrada muy complejos, sin embargo mediante un proceso de aprendizaje era capaz de adquirir esta capacidad. Mediante estas investigaciones se pudo demostrar que el Perceptrn era capaz de clasificar patrones correctamente, en lo que Rosenblatt denominaba un entorno diferenciado, en el cual cada clase estaba formada por patrones similares. El Perceptrn tambin era capaz de responder de manera congruente frente a patrones aleatorios, pero su precisin iba disminuyendo a medida que aumentaba el nmero de patrones que intentaba aprender. En 1969 Marvin Minsky y Seymour Papert publicaron su libro: "Perceptrons: An introduction to Computational Geometry", el cual para muchos signific el final de las redes neuronales. En el se presentaba un anlisis detallado del Perceptrn, en trminos de sus capacidades y limitaciones, en especial en cuanto a las restricciones que existen para los problemas que una red tipo Perceptrn puede resolver; la mayor desventaja de este tipo de redes es su incapacidad para solucionar problemas que no sean linealmente separables. A pesar de esta limitacin, el Perceptrn es an hoy una red de gran importancia, pues con base en su estructura se han desarrollado otros modelos de red neuronal como la red Adaline y las redes multicapa.
17

Mg. Abraham Gamarra Moreno

LISP (LISt Procesing). En 1958 John McCarthy anunci el desarrollo del lenguaje de programacin LISP (LISt Procesing), este fue considerado desde aquel momento como lenguaje de programacin de los investigadores de I.A. El LISP es un lenguaje declarativo funcional. SAINT (Symbolic Automatic INTegrator). Programa desarrollado por J. Slagle en 1961. Con el que se inicia la automatizacin de la integracin simblica. GTP (Geometry Theorem Prover), Demostrador de Teoremas Geomtricos, programa desarrollado por Herbert Gelernter y auspiciado por IBM para resolver problemas de geometra elemental. Se inicio en el 1958. Gelernter trabaj durante tres aos, escribiendo y desarrollando las veinte mil introducciones que componan el GPS, pero adems tuvo que disear un nuevo lenguaje de programacin. GPS funcionaba de atrs hacia delante (backward), primero se expone el teorema a demostrar y el programa empieza a construir cadenas de resultados intermedios que conducen al fin, a teoremas conocidos o a axiomas. Programa para jugar a las damas. Programa creado por Arthur Samuel (figura 1.5) en 1962 y al igual que el proyecto GTP fue auspiciado por IBM. El programa era capaz de aprender por si solo. Aprenda de la experiencia teniendo en cuenta sus errores y xitos pasados para determinar su juego en partidas posteriores. Alex Bernstein, consigui tambin un resultado similar para el ajedrez. Tras hacerse eco la prensa de estos logros, se creo un escndalo entre los periodistas y accionistas de IBM en general al considerar que se estaba gastando el dinero de investigacin en unos objetivos tan frvolos. Con lo que IBM no sigui aportando fondos para investigaciones en el campo de la Inteligencia Artificial.
18

Mg. Abraham Gamarra Moreno

Figura 1.5. Arthur Samuel (de pie)

Fracaso de la Traduccin Automtica, La CIA y otros organismos militares, tras ser conocedores de la utilizacin, por parte del ejercito britnico, de ordenadores en la Segunda Guerra Mundial para descifrar cdigos secretos enemigos; pensaron que la traduccin automtica no seria ms difcil, as podran leer casi en el acto cualquier publicacin del mundo, escrita en cualquier idioma. Despus de gastar veinte aos de investigacin y casi veinticinco millones de dlares en proyectos de este tipo la NRC (Consejo Nacional de Investigacin, de EE.UU.) puso fin a este tipo de investigaciones en todo los Estados Unidos. Este hecho hizo que se paralizasen todas las investigaciones con inversin pblica respecto a Inteligencia Artificial., el ALPAC (Automated Language Processing Advisory Committee), Comit de Seguimiento del Procesamiento Automtico del Lenguaje, arroll a todos los laboratorios en los que se realizaban proyectos sobre investigacin lingstica, afortunadamente, los centros de investigacin ms importantes (MIT, Carnegie Mellon y Stanford) se salvaron por no tener entre manos ningn proyecto asociado a la rama de la Traduccin Automtica.
19

Mg. Abraham Gamarra Moreno

Se reconocen las dificultades: concepcin errnea de los proyectos, mal conocimiento del lenguaje, tcnicas informticas inadecuadas, etc. Sin embargo, posteriormente comienzan a vislumbrarse importantes avances tanto en lingstica terica como en ciencia informtica. Como ancdota se tiene el resultado que se obtuvo al traducir primero del ingls al ruso, y el resultado se tradujo de nuevo al ingls: - Original en ingls: El espritu es fuerte, pero la carne es dbil. - Resultado despus de traducir al ruso y luego al ingls: El vodka es bueno, pero el filete est podrido. Micromundos de Bloques. El proyecto de los Micromundos fue ideado por Marvin Minsky y Seymour Paper en 1963. Tras desistir de sus intentos previos en visin artificial ante la dificultad que supona realizar un proyecto de tal magnitud, en los que se intentaba conectar una cmara de televisin a un ordenador y hacer que la cmara describiera lo que vea. Minsky opto por llevarla a cabo en un plano ms reducido, los Micromundos de Bloques. Los micromundos no eran otra cosa que "representaciones" de laboratorio de la vida real, con un aditivo muy especial, el sujeto que interaccionara con la realidad sera un ordenador con forma de robot o de simple programa. Se crearon programas capaces de tratar con objetos geomtricos (SHRDLU), robots que manejaban cubos (Shakey) y diferentes programas que "entendan" el ingles para sacar de las frases una determinada informacin (SIR y STUDENT). Finalmente en 1969 el proyecto de los Micromundos tambin fracaso, pues su "sencillez" no tena visos de ampliarse y cambiar el prefijo "micro" por uno con un significado ms extenso. ARPA (Advanced Research Proyect Agency) dejo de subvencionar el proyecto
Mg. Abraham Gamarra Moreno

20

tras acabarse los plazos fijados y ver que no se haba logrado ni un 25% de lo prometido. STUDENT y SIR. 1964. Daniel Bobrow present como tesis doctoral a su profesor, Marvin Minsky, un programa llamado STUDENT, este era capaz de entender enunciados de problemas algebraicos escritos en ingls y responder a sus preguntas. Los problemas caractersticos que poda solucionar STUDENT son similares al siguiente: "El to de Guillermo es dos veces ms viejo que el padre de Guillermo. Dentro de dos aos, el padre de Guillermo ser tres veces ms viejo que Guillermo .La suma de sus edades es 92. Averiguar la edad de Guillermo". A su vez, Bertram Raphael disea SIR (Semantic Information Retrieval), Recuperacin de informacin semntica, este programa comprenda oraciones sencillas en ingls que describan situaciones acerca de pertenencias y relaciones parecidas. Por ejemplo, una conversacin con SIR podra ser (de hecho lo es) la siguiente: Persona> Todo muchacho es una persona SIR> Entiendo Persona> Un dedo es una parte de la mano SIR> Entiendo Persona> Cada persona tiene dos manos SIR> Esta oracin es ambigua, reformlela, por favor. Persona> Hay dos manos en cada persona SIR> Entiendo Persona>Cuntos dedos tiene Juan?
21

Mg. Abraham Gamarra Moreno

SIR> Esta oracin es ambigua. Persona> Juan es un muchacho SIR> Entiendo Persona>Cuntos dedos tiene Juan? SIR> Esta oracin es ambigua, pero supongo que (TIENE) significa (TIENE COMO PARTES). Cuntos dedos hay en cada mano? Persona> Cada mano tiene cinco dedos SIR> Entiendo Persona> Cuntos dedos tiene Juan? SIR> La respuesta es 10. Estos dos programas, SIR y ESTUDENT funcionan mediante la "comparacin de patrones", es decir, cuando el programa detecta que unas palabras clave estn colocadas de una forma especial, toma la informacin necesaria de donde el patrn le aconseja. ELIZA (o DOCTOR). Hacia 1965, Weizenbaum trabajaba en el MIT, intentando que los ordenadores hablaran en ingls con la gente. Pens que los programas existentes como STUDENT se basaban en dominios limitados, y los dominios que describan esos programas estaban ligados a la propia estructura del programa. Y dado que Weizenbaum se dio cuenta de que no podra conseguir ese fin en tan poco tiempo, pens en crear un programa con unas cuantas ideas que se le haban ocurrido. Una de esas ideas era que el conocimiento sobre los dominios se encontrase en mdulos ajenos al propio programa, as cambiar de tema seria tan fcil como cambiar de mdulo. Uno de esos mdulos, y el ms famoso, fue el que imitaba a un psicoanalista rogeriano (el psicoanalista Carl Rogers ponMg. Abraham Gamarra Moreno

22

a en funcionamiento una terapia que consista simplemente en animar a los pacientes a hablar de sus problemas, respondiendo a sus preguntas con otras preguntas). El programa en cuestin recibi el nombre de ELIZA (ahora todo un mito de la historia de la Inteligencia Artificial). Aunque a simple vista ELIZA parece estar hablando animadamente con la persona que le cuenta sus problemas, la verdad es muy diferente. ELIZA hace creer a su interlocutor que se est hablando con "un ser" que razona y entiende, realmente todo ello se logra mediante trucos como repetir frases cambiando "yo" por "tu", o echar mano a una frase del principio cuando el "hilo" se acaba transformndola en pregunta. Otro truco utilizado por este programa es insertar frases como "ya veo" o "hblame ms acerca de esto". Algo con lo que contaba a su favor ELIZA era que el planteamiento de las conversaciones seguira siempre un patrn comn de los psicoanlisis rogelianos en que otra conversacin no iba a resultar extrao escuchar frases como esta "hblame algo ms acerca de los coches rojos con motas verdes que apartan cerca de tu casa"?. A continuacin se muestra un ejemplo de una conversacin con ELIZA: PERSONA> Todos los hombres son iguales. ELIZA> De que forma? PERSONA> Siempre nos estn fastidiando de una forma u otra. ELIZA>Se te ocurre algn ejemplo especfico? PERSONA> S, mi novio me hizo venir aqu. ELIZA> Tu novio te hizo venir aqu PERSONA> Dice que me paso deprimida la mayor parte del tiempo. ELIZA> Siento enterarme de que estas deprimida
23

Mg. Abraham Gamarra Moreno

PERSONA> Es verdad. No soy feliz. ELIZA> Crees que venir aqu te ayudar a ser feliz? PERSONA> Necesito alguna ayuda, eso s es verdad. ELIZA> Qu significa para ti obtener alguna ayuda? PERSONA> Quiz pueda aprender a sobrellevar a mi madre. ELIZA> Hblame algo ms acerca de tu familia. PERSONA> Mi madre se preocupa por m. ELIZA> Quin ms se preocupa por ti en tu familia? PERSONA> Mi padre ELIZA> Tu padre PERSONA> En algunas cosas te pareces a mi padre ELIZA> Qu parecido ves? PERSONA> No eres muy agresivo, pero creo que no quieres que yo me d cuenta de eso. ELIZA> Por qu piensas que yo no soy muy agresivo? PERSONA> T no discutes conmigo. ELIZA> Por que crees que yo no discuto contigo? PERSONA> Me tienes miedo ELIZA> Te gusta creer que te tengo miedo? PERSONA> Mi padre tiene el miedo a todo el mundo. ELIZA> Que ms se te ocurre cuando piensas en tu padre?
24

Mg. Abraham Gamarra Moreno

PERSONA> En matones. ELIZA> Tiene eso que ver con el hecho de que tu novio te hizo venir aqu? A ms de una persona, le pareca que el programa seria capaz de superar el Test de Turing, pero realmente esto no es as, ya que la prueba de Turing deba de enfrentar a dos partes, una persona y un ordenador, ambas deban de comportarse de forma normal y habra que averiguar quien era la persona y quien el ordenador, este hecho quedara al descubierto en cuanto ELIZA dijese (por ejemplo): "Cuntame algo ms acerca de tu gusto por las pelculas en versin original", en una conversacin normal no se utilizan esas expresiones. SHAKEY. 1969. Un equipo de investigacin de Stanford tuvo la atrevida idea de poner ruedas a su robot, enseguida el ejercito (norteamericano) se mostr interesado por el proyecto, subvencionndolo por medio del ARPA (Avanced Research Proyects Agency), la idea de este era convertir al robot de Stanford en un espa mecnico, capaz de infiltrarse en las lneas enemigas para conseguir informacin. Pero la apariencia del robot no pareca capaz ni de cruzar la esquina: una caja cuadrada, con una cmara de televisin (de las del 69), un telmetro y una antena de radio. De todas formas el proyecto sigui adelante, y el robot fue bautizado como Shakey (figura 1.6). El mundo de Shakey era un Micromundo de Bloques de tamao natural, compuesto de siete habitaciones conectadas entre s por ocho puertas, habiendo en las habitaciones cubos que Shakey poda manipular, apilando y transportndolos de un lado a otro. Todo ello siguiendo las instrucciones (en ingls) que le transmitan mediante un teclado. Finalmente el fracaso de los Micromundos afecto a este proyecto ya que ARPA dejo de subvencionarlo.
Mg. Abraham Gamarra Moreno

25

Figura 1.6. Robot fue bautizado como Shakey.

DENDRAL. El primer sistema experto. Tambin en 1965 se inicia la investigacin en la universidad de Stanford de sistemas expertos en el programa Heuristic Programming Project. En 1965 Feigenbaum entra a formar parte del departamento de informtica de Stanford. All conoci a Joshua Lederberg, el cual quera averiguar cual era la estructura de las molculas orgnicas completas. Si se quiere estudiar un compuesto qumico, lo primero que tenemos que hacer es averiguar su frmula qumica. El mtodo
Mg. Abraham Gamarra Moreno

26

habitual de anlisis consiste en dividir el problema en partes ms pequeas. El problema de Lederberg era que haba demasiadas combinaciones. Cada fragmento poda corresponder a varias subestructuras, pero solo una estructura molecular global se ajustaba a todas las restricciones del problema. El descubrimiento de esa estructura global exiga buscar en un rbol las posibilidades. Fue por esta razn por la que pusieron al programa el nombre de DENDRAL, que significa en griego "rbol". Antes de DENDRAL los qumicos solo tenan una forma de resolver el problema, y esta era tomar unas hiptesis relevantes como soluciones posibles, y someterlas a prueba comparndolas con los datos. La realizacin DENDRAL dur ms de diez aos (desde 1965). Conclusin de este periodo: Desde el principio de esta joven ciencia, la gran mayora de los propsitos y objetivos eran anunciados con aos de antelacin como grandes xitos, es ms se llegaba a anunciar con un plazo de meses, conceptos, como la Visin Artificial, cuando an no se haba puesto la primera letra sobre el papel. Este hecho, el de subestimar la dificultad de los proyectos, ha hecho mucho mal a la Inteligencia Artificial desde sus comienzos, la razn no es otra que la "desacreditaron" a la cual ha tenido que ser sometida por los medios de comunicacin y cientficos rivales (rivales o no partidarios de la Inteligencia Artificial), hasta el punto de perder subvenciones millonarias por los excesos de optimismo.

1.3.2.

PERIODO 1970 - 1979

Los problemas debidos al exceso de optimismo y ambicin sufridos en el periodo anterior, llevaron a un replanteamiento de los objetivos a perseguir y se pas a tratar problemas ms concretos. Como hecho mas destacado es el nacimiento de los sistemas expertos y
Mg. Abraham Gamarra Moreno

27

la recuperacin que trajo dentro del campo de la Inteligencia Artificial, ya que supuso el regreso de las inversiones. Los sistemas expertos o sistemas de produccin con reglas tratan problemas restringidos o un entorno limitado. Dos de los sistemas expertos ms populares son el MYCIN y el PROSPECTOR. En este periodo, tambin se inicia la institucionalizacin de la comunidad cientfica que trabaja en el campo de la Inteligencia Artificial con el Primer Congreso Internacional de Inteligencia Artificial. Poco despus, en el ao 1970, aparece el primer nmero de la revista especializada Artificial Intelligence. Otra de las diferencias con el periodo anterior es que la Inteligencia Artificial se extiende de los mbitos acadmicos a los centros de investigacin y a las universidades, donde las aplicaciones ya no son tan tericas y adems de tratar problemas matemticos y demostraciones de teoremas se realizan aplicaciones mas experimentales, como los sistemas expertos y la programacin lgica. Dentro de la programacin lgica se logra uno de los avances ms destacables con la aparicin en 1972 del Lenguaje PROLOG. 1976. MYCIN. Desarrollado por Eduard Feigenbaum, Bruce Buchanan en la universidad de Stanford y documentado por Edward Shortliffe. MYCIN se trataba de un sistema experto para el diagnstico de enfermedades infecciosas. Desde los resultados de anlisis de sangre, cultivos bacterianos y dems datos, el programa era capaz de determinar, o en lo menos, sugerir el microorganismo que estaba causando la infeccin. Despus de llegar a una conclusin, MYCIN prescriba una medicacin que se adaptaba perfectamente a las caractersticas del sujeto, tales como el peso corporal de este. Despus del reconocido xito que tuvo MYCIN entre la comunidad cientfica de Inteligencia Artificial e investigadores de medicina, los autores del programa pusieron a disposicin de otros
Mg. Abraham Gamarra Moreno

28

investigadores una versin de MYCIN que contena el motor "inferencial" de este para que fueran los propios usuarios los que insertasen al programa informacin respecto al tema a tratar; se podra decir que esta versin "adaptada" del original MYCIN, era el primer entorno de desarrollo de sistemas expertos. PROSPECTOR. Documentado por P. E. Hart (1978) y R.Duda (1979). Era un sistema experto para evaluar los yacimientos de minerales, en particular cobre y Uranio. PROLOG (PROgramimg LOGic). Desarrollado en 1972 por la Universidad de Marseille bajo la direccin de Alan Colmerauer. Prolog se basa en la definicin y despus en la resolucin de formulas lgicas. Prolog al igual que LISP es un lenguaje declarativo, ya que el programa consiste en una lista de hechos y reglas en lugar de una serie de comandos. XCON (eXpert CONfigurer), Configurador Experto. 1979. John McDermott. XCON es el primer sistema experto con aplicaciones en el mundo real fuera de los mbitos acadmicos y de los laboratorios de investigacin. DEC iba a lanzar al mercado una nueva serie de ordenadores, los llamados VAX. Dado que todos los ordenadores tenan configuraciones distintas entre s, la VAX estaba previendo el enorme cuello de botella que se iba a formar, cuando los ordenadores tuviesen fallos de configuracin y hubiese que arreglar este problema uno por uno, con el consiguiente gasto de tiempo y dinero que eso supona. Los directivos de la DEC contrataron a John McDertmott, con el cometido de realizar un sistema experto que configurase todos los ordenadores que saliesen de la DEC. El informe de viabilidad de McDermontt expuso resultados prometedores, y en diciembre de 1978 se empez a trabajar en el proyecto. En abril de 1979 el equipo de investigacin que lo haba diseado (con McDermott a la
Mg. Abraham Gamarra Moreno

29

cabeza), pens que ya estaba preparado para salir y "conocer el mundo", fue entonces cuando se hizo una prueba real, esperando resolver positivamente un 95% de las configuraciones, este porcentaje tal alto anhelado por McDermontt y compaa se qued en un 20% al ser contrastado con la realidad; XCON volvi al laboratorio, donde fue revisado y a finales de ese mismo ao (1979) funcion con resultados positivos en la DEC. En 1980 XCON se instaur totalmente en DEC. Y en 1984, el XCOM haba crecido hasta multiplicarse por diez. En 1986 la compaa haba invertido ms de cincuenta aos/hombre en el programa, pero se estaba recuperando con creces de su inversin al ahorrarse cuarenta millones de dlares al ao. Conclusin de este periodo Como conclusin a este periodo hay que destacar la revolucin que se inicio con los sistemas expertos. El xito de XCON, MYCIN y PROSPECTOR convenci a las ms importantes empresas a invertir en sistemas expertos. Incluso para los ms conservadores y los radicales Anti- Inteligencia Artificial, algo se hacia evidente, mientras que los costes de desarrollo de los sistemas expertos se hacan cada vez ms bajos, el salario de los expertos humanos se hacia ms alto. La formacin de un futuro experto costaba mucho dinero y aos de esfuerzo, mientras que una vez creado un sistema experto poda ser copiado y distribuido tantas veces como necesario fuese. Adems, el sistema experto nunca se cansa, no necesita dormir, no se distrae, no se va a la competencia, ni se pone enfermo, ni se jubila, ni pide aumento de sueldo.

1.3.3.

AOS OCHENTA Y PRINCIPIOS DE LOS 90

Este periodo viene marcado por el xito de los sistemas expertos y durante los aos ochenta aparecen empresas y proyectos especialiMg. Abraham Gamarra Moreno

30

zados en ofrecer soluciones comercializables basados en las tcnicas de la Inteligencia Artificial. La Inteligencia Artificial se consolid en cada vez ms empresas que desarrollaron las "mquinas lisp" ( ordenadores que ejecutaban programas en LISP con la misma rapidez de un ordenador central ) y los SHELLS ( herramientas de desarrollo de sistemas expertos). Ejemplos de sistemas expertos que se comercializaron en esta poca son el DELTA, de la General Electric Company, que ayudaba a los mecnicos en la reparacin y en el diagnostico de locomotoras diesel; el Aldo en Disco para la reparacin de calderas hidroestticas giratorias usadas para la eliminacin de bacterias y el EURISKO capaz de perfeccionar su propio cuerpo de leyes heursticas por induccin. Cada vez ms el mantener la base de datos de reglas de los sistemas expertos actualizada era mas costoso. El XCON llego a tener 10.000 reglas con lo que Dec tena que gastar anualmente 2 millones de dlares en el mantenimiento de la Base de Conocimientos. Actualmente este mantenimiento supone una de las actividades ms importantes de la Inteligencia Artificial. El Ministerio de Industria y Comercio Internacional de Japn impulsa desde 1979 un proyecto (Quinta generacin de ordenadores) conjunto de varias empresas que pretenda desarrollar una nueva generacin de ordenadores adaptados a las necesidades que se prevean para la dcada de los 90 y que basaran su funcionamiento en tcnicas de la Inteligencia Artificial. Finalmente el proyecto finalizo en 1992, pero aunque se obtuvieron ciertos avances en procesamiento paralelo, procesamiento del lenguaje natural, programacin lgica y en el tratamiento de la informacin, no supuso ninguna revolucin ni ningn gran cambio ni ventaja tecnolgica. Seguidamente Japn se lanzo a otro nuevo proyecto Real World Computing (RWC) Project, cuyas vas de inMg. Abraham Gamarra Moreno

31

vestigacin, son las redes neuronales, los computadores pticos y la facilidad de uso de los ordenadores. Por aquel entonces, el proyecto japons sirvi para estimular la inversin en Inteligencia Artificial de otros pases. Sobretodo a raiz de la publicacin del libro The Fifth Generation de Feigenbaum y McCorduck en 1983 que adverta del peligro de una superioridad del Japn en el futuro de la informtica a travs del dominio de las tcnicas de la Inteligencia Artificial. En 1980 se crea el sistema experto matemtico MAPLE. Mas tarde en 1988 se crea otro sistema experto matemtico importante el Mathematica. Ambos sistemas permiten trabajar directamente, es decir sin tediosas programaciones, con expresiones simblicas como polinomios, derivadas, integrales indefinidas, matrices, tensores, grupos, funciones especiales, y mtodos altamente sofisticados. En 1982 se fundo el ECCAI (European Coordinating Committee for Artificial Intelligence). En 1985 la Nasa desarrolla CLIPS, es un generador de sistemas expertos que est codificado en lenguaje C, y que implementa un lenguaje propio para desarrollar sistemas expertos. Como principal caracterstica se puede citar que cuenta con tres paradigmas de programacin: orientado a reglas, procedural y orientado a objetos. Tambin en este mismo ao se programa un juego de Ajedrez HiTech que alcanza el nivel de un Gran Maestro. A partir de 1986 se recuperan los viejos esquemas del Perceptron en la Redes Neuronales. 1987 supuso el fin de las maquinas LISP, debido a la aparicin de los microordenadores de Apple e IBM con potencia parecida a las
Mg. Abraham Gamarra Moreno

32

maquinas LISP, y la programacin en C del software utilizado en Inteligencia Artificial para los nuevos microordenadores.

En 1989 se constituye el Centro de Inteligencia Artificial (CIA), en Espaa, ms tarde, se formara la Asociacin Espaola Para la Inteligencia Artificial (AEPIA).

1.3.4.

AOS 90 Y EL PRESENTE

Uno de los hechos ms populares que cualquiera conoce sobre la Inteligencia Artificial es la victoria de Deep Blue (computadora de IBM que jugaba al ajedrez), contra Kasparov en 1997 (figura 1.7).

Pero recientemente en la industria japonesa han aparecido diversos Robots que han servido para ejemplificar el estado actual de la Inteligencia Artificial. Primero fue Honda con ASIMO (acrnimo de "Advanced Step in Innovative Mobility"- paso avanzado en movilidad innovadora), es un robot humanoide creado en el ao 2000 por la empresa Honda, un robot con forma humanoide capaz de andar y subir escaleras (figura 1.8).

SONY ha comercializado con xito una serie de robots-perro, el AIBO Artificial Intelligence ROBOt (Robot de Inteligencia Artificial). EL robot AIBO se muestra en la figura 1.9.

Mg. Abraham Gamarra Moreno

33

Figura 1.7. Kasparov vs. Deep Blue

Mg. Abraham Gamarra Moreno

34

Figura 1.8. Robot ASIMO

Figura 1.9. Robot AIBO

Al robot AIBO se le han programado emociones e instintos. Acta de modo que intentar satisfacer sus deseos originados en sus instintos. Si se los satisface, aumentarn sus niveles de alegra, en caso contrario, se pondr triste o furioso. Como todo ser viviente, Aibo aprender a lograr lo que "desea". En ocasiones, mover sus patas con furia o mostrar otras seales de bronca si no recibe de su amo la atencin que requiere. De este modo, la manera en que el amo responde a las expresiones de emotividad de Aibo influir en su personalidad y "crecimiento". El robot, tiene reconocimiento de voz, hasta 40 voces y puede recordar el nombre que se le d y responder. Es capaz de expresar emociones.
35

Mg. Abraham Gamarra Moreno

1.4. LAS REAS DE INVESTIGACIN DE LA IA2 Son muchas las reas de la Inteligencia Artificial que se investigan hoy da. Entre ellas, tenemos las siguientes: La representacin del conocimiento, que busca en el descubrimiento de mtodos expresivos y eficientes describir informacin sobre aspectos del mundo real. Los mtodos de aprendizaje automtico, que extienden las tcnicas estadsticas con el fin de posibilitar la identificacin de un amplio rango de tendencias generales a partir de un conjunto de datos de entrenamiento. El campo de la planificacin, que enfrenta el desarrollo de algoritmos que construyen y ejecutan automticamente secuencias de comandos primitivos con el fin de alcanzar ciertas metas de alto nivel. Los trabajos en el rea de razonamiento posible, que hacen uso de principios estadsticos para desarrollar codificaciones de informacin incierta. El estudio de las arquitecturas de agentes, que busca la integracin de otras reas de la I A con el objeto de crear agentes inteligentes, entidades robustas capaces de comportamiento autnomo y en tiempo real. La coordinacin y colaboracin multiagentes, que ha permitido el desarrollo de tcnicas para la representacin de las capacidades de otros agentes y la especificacin del conocimiento necesario para la colaboracin entre ellos.

La ciencia y el hombre [en lnea]. Veracruz: Revista de divulgacin cientifica y tecnologica de la Universidad Veracruzana; 2004. [fecha de acceso 18 de noviembre de 2007]. URL disponible en: http://www.uv.mx/cienciahombre/revistae/vol17num3/articulos/inteligencia/index.htm .

Mg. Abraham Gamarra Moreno

36

El desarrollo de ontologas, que persigue la creacin de catlogos de conocimiento explcito, formal y multipropsito, que puedan ser utilizados por sistemas inteligentes. Los campos de procesamiento de voz y lenguaje, que buscan la creacin de sistemas que se comunican con la gente en su lenguaje. La sntesis y comprensin de imgenes, que conduce a la produccin de algoritmos para el anlisis de fotografas, diagramas y videos, as como tambin de tcnicas para el despliegue visual de informacin cuantitativa y estructurada. 1.5. REAS DE APLICACIN DE LA IA2 La Inteligencia Artificial se aplica en los sistemas reales en una gran variedad de ramas y problemas: Gestin y control: anlisis inteligente, fijacin de objetivos. Fabricacin: diseo, planificacin, programacin, monitorizacin, control, gestin de proyectos, robtica simplificada y visin computarizada. Educacin: adiestramiento prctico, exmenes y diagnstico. Ingeniera: diseo, control y anlisis. Equipamiento: diseo, diagnstico, adiestramiento, mantenimiento, configuracin, monitorizacin y ventas. Cartografa: interpretacin de fotografas, diseo, resolucin de problemas cartogrficos. Profesiones: abogaca, medicina, contabilidad, geologa, qumica.
37

Mg. Abraham Gamarra Moreno

Software: enseanza, especificacin, diseo, verificacin, mantenimiento. Sistemas de armamento: guerra electrnica, identificacin de objetivos, control adaptativo, proceso de imgenes, proceso de seales. Proceso de datos: educacin, interfase en lenguaje natural, acceso inteligente a datos y gestores de bases de datos, anlisis inteligente de datos. Finanzas: planificacin, anlisis, consultora. 1.6. APLICACIONES COMERCIALES DE LA INTELIGENCIA ARTIFICIAL2 Pero tambin la Inteligencia Artificial tiene numerosas aplicaciones comerciales en el mundo de hoy. Vase: Configuracin: seleccin de distribucin de los componentes de un sistema de computacin. Diagnosis: hardware informtico, redes de ordenadores, equipos mecnicos, problemas mdicos, averas telefnicas, instrumentacin electrnica, circuitos electrnicos, averas automovilsticas. Interpretacin y anlisis: datos geolgicos para prospeccin petrolfera, compuestos qumicos, anlisis de seales, problemas matemticos complejos, evaluacin de amenazas militares, anlisis de circuitos electrnicos, datos biolgicos (coronarios, cerebrales y respiratorios), informacin de radar, sonar e infrarrojos. Monitorizacin: equipos, monitorizacin de procesos, fabricacin y gestin de procesos cientficos, amenazas militares, funciones
Mg. Abraham Gamarra Moreno

38

vitales de pacientes hospitalizados, datos financieros en tiras de papel perforado por teleimpresora, informes industriales y gubernamentales. Planificacin: gestin de activo y pasivo, gestin de cartera, anlisis de crditos y prstamos, contratos, programacin de trabajos de taller, gestin de proyectos, planificacin de experimentos, produccin de tarjetas de circuito impreso. Interfaces inteligentes: hardware (fiscal) de instrumentacin, programas de computadora, bases de datos mltiples, paneles de control. Sistemas de lenguaje natural: interfaces con bases de datos en lenguaje natural, gestin de impuestos (ayudas para contabilidad), consultora en temas legales, planificacin de fincas, consultora de sistemas bancarios. Sistemas de diseo: integracin de microcircuitos en muy alta escala, sntesis de circuitos electrnicos, plantas qumicas, edificios, puentes y presas, sistemas de transporte. Sistemas de visin computarizada: seleccin de piezas y componentes, ensamblado, control de calidad. Desarrollo de software: programacin automtica. Programas de reconocimiento de voz para reservar billetes de avin para un vuelo. Sistemas expertos que controlan el correcto funcionamiento de un transbordador espacial. Sistemas expertos de diagnostico de enfermedades.
39

Mg. Abraham Gamarra Moreno

Proteccin de fraudes en tarjetas de crdito y cuentas a travs de sistemas de redes neuronales o sistemas expertos. Deteccin de pequeas anomalas invisibles al ojo humano en radiografias. Sistemas de mensajera de voz. En el mundo de los videojuegos. Rivales con comportamiento logico. Traduccin automtica de documentos. (GOOGLE)

Resumen La Inteligencia Artificial es un intento de reproducir el comportamiento de los humanos y llevarlo a las mquinas. Los primeros intentos se reflejan en la construccin de autmatas. Luego se intenta que las mquinas tengan algn tipo de razonamiento, para lo cual se desarrollan algunas tcnicas que permitan emular el comportamiento inteligente de los humanos. Indicadores de logro El lector es capaz de explicar las aplicaciones de la Inteligencia Artificial. Bibliografa Recomendada Planell Perez. Historia de la Inteligencia Artificial [en lnea]. Espaa: Ebooks gra-tis; 2008. [fecha de acceso 16 de noviembre de 2007]. URL disponible en: http://66.240.239.19/2/7/0/27068.ZIP. La ciencia y el hombre [en lnea]. Veracruz: Revista de divulgacin cientifica y tec-nologica de la Universidad Veracruzana;
Mg. Abraham Gamarra Moreno

40

2004. [fecha de acceso 18 de noviembre de 2007]. URL disponible /inteligencia/index.htm. en: http://www.uv.mx/cienciahombre/revistae/vol17num3/articulos

Nexo La siguiente unidad acadmica analiza la Representacin del Conocimiento.

Actividad Investigue sobre los ltimos avances de la Inteligencia Artificial y luego realice un resumen. Investigue sobre agentes inteligentes, sistemas multiagente y realice un resumen. Auto evaluacin formativa

Encuentre la solucin a los siguientes problemas:

PROBLEMA UNO

Cul es la diferencia entre Robtica e Inteligencia Artificial?

PROBLEMA DOS Qu es la Visin Artificial?


41

Mg. Abraham Gamarra Moreno

UNIDAD ACADMICA 2 REPRESENTACIN DEL CONOCIMIENTO

La representacin del conocimiento es un conjunto de convenciones sintcticas y semnticas que hacen posible el describir cosas, para que una mquina inteligente las utilice. La sintaxis son los smbolos y conjuntos de reglas para combinarlos. La semntica trata sobre significado de las expresiones construidas. En este libro mostraremos slo tres formas de representacin del conocimiento. 2.1. REPRESENTACIN LGICA PROPOSICIONAL La lgica proposicional es la ms antigua y simple de las formas de lgica. Utilizando una representacin primitiva del lenguaje, permite representar y manipular aserciones sobre el mundo que nos rodea. La lgica proposicional permite el razonamiento, a travs de un mecanismo que primero evala sentencias simples y luego sentencias complejas, formadas mediante el uso de conectivos proposicionales, por ejemplo Y (AND), O (OR). Este mecanismo determiMg. Abraham Gamarra Moreno

DEL

CONOCIMIENTO

MEDIANTE

42

na la veracidad de una sentencia compleja, analizando los valores de veracidad asignados a las sentencias simples que la conforman. Una proposicin es una sentencia simple que tiene un valor asociado ya sea de verdadero (V), o falso (F). Por ejemplo: Hoy es Viernes Ayer llovi Hace fro La lgica proposicional, permite la asignacin de un valor verdadero o falso para la sentencia completa, no tiene facilidad para analizar las palabras individuales que componen la sentencia. Por este motivo, la representacin de las sentencias del ejemplo, como proposiciones, sera: hoy_es_Viernes ayer_llovi hace_fro La proposiciones pueden combinarse para expresar conceptos ms complejos. Por ejemplo: hoy_es_Viernes y hace_fro. La lgica proposicional proporciona un mecanismo para asignar valores de veracidad a la proposicin compuesta, basado en los valores de veracidad de las proposiciones simples y en la naturaleza de los conectores lgicos involucrados. Los conectores bsicos de la lgica proposicional y sus tablas de verdad, se muestran en la tabla 3.1.

Mg. Abraham Gamarra Moreno

43

Tabla 2.1. Tablas de verdad para operadores lgicos. p q Disyuncin Conjuncin Negacin Implicacin Equivalencia pvq V V V F F V F F V V V F p^q V F F F ~p F F V V P => q V F V V p=q V F F V

El conector de implicacin, puede ser considerado como un condicional expresado de la siguiente forma: Si p => q va a ser verdadero, entonces toda vez que p sea verdadero, q debe ser siempre verdadero. Para los casos en los cuales p es falso, la expresin p => q, es siempre verdadera, independientemente de los valores lgicos que tome q, ya que el operador de implicacin no puede hacer inferencias acerca de los valores de q. En algunos casos, el ms importante de los conectores es la implicacin, y al principio su tabla de verdad puede parecer confusa debido a que no corresponde muy bien a nuestra manera intuitiva de concebir que P implique a Q o si P entonces Q. Para ilustrar la implicacin analicemos la regla siguiente dada para la primera fila (p=V y q=V) de la tabla de verdad: la batera no tiene carga el automvil no enciende
Mg. Abraham Gamarra Moreno

44

En la segunda fila (p=V y q=F) la implicacin es F porque la regla sera la batera no tiene carga el automvil enciende En la tercera fila (p=F y q=V) la implicacin es V porque la regla sera la batera tiene carga el automvil no enciende En la cuarta fila (p=F y q=F) la implicacin es V porque la regla sera la batera tiene carga el automvil enciende 2.2. REPRESENTACIN MEDIANTE LGICA DE PREDICADOS La principal debilidad de la lgica proposicional es su limitada habilidad para expresar conocimiento. Existen varias sentencias complejas que pierden mucho de su significado cuando se las representa en lgica proposicional. Por esto se desarroll una forma lgica ms general, capaz de representar todos los detalles expresados en las sentencias, esta es la lgica de predicados. La lgica de predicados est basada en la idea de las sentencias que realmente expresan relaciones entre objetos, as como tambin cualidades y atributos de tales objetos. Los objetos pueden ser personas, objetos fsicos, o conceptos. Tales cualidades, relaciones o atributos, se denominan predicados. Los objetos se conocen como argumentos o trminos del predicado. Al igual que las proposiciones, los predicados tienen un valor de veracidad, pero a diferencia de las preposiciones, su valor de veracidad, depende de sus trminos. Es decir, un predicado puede ser verdadero para un conjunto de trminos, pero falso para otro.
45

Mg. Abraham Gamarra Moreno

Por ejemplo, el siguiente predicado es verdadero: color (yerba, verde) el mismo predicado, pero con diferentes argumentos, puede no ser verdadero: color (yerba, azul) o color (cielo, verde) Los predicados tambin pueden ser utilizados para asignar una cualidad abstracta a sus trminos, o para representar acciones o relaciones de accin entre dos objetos. Por ejemplo: clima(martes, ave(gaviota) ama(roberto, lee(alex, mordio(boby, lluvioso) vanessa) novela) cartero)

Al construir los predicados se asume que su veracidad est basada en su relacin con el mundo real. Naturalmente, siendo prcticos, trataremos que los predicados que definimos estn de acuerdo con el mundo que conocemos, pero no es absolutamente necesario que as lo hagamos. En lgica de predicados el establecer como verdadero un predicado es suficiente para que as sea considerado. Demos el siguiente ejemplo, que indica que Ecuador est en Europa: parte_de(ecuador, europa) Obviamente, esto no es verdadero en el mundo real, pero la lgica de predicados no tiene razn de saber geografa y si el predicado es dado como verdadero, entonces es considerado como lgicamente verdadero. Tales predicados, establecidos y asumidos como lgicamente verdaderos se denominan axiomas, y no requieren de justificacin para establecer su verdad.
Mg. Abraham Gamarra Moreno

46

La lgica de predicados, se ocupa nicamente de mtodos de argumentacin slidos. Tales argumentaciones se denominan Reglas de Inferencia. Si se da un conjunto de axiomas que son aceptados como verdaderos, las reglas de inferencia garantizan que slo sern derivadas consecuencias verdaderas. Tanto los conectivos lgicos, como los operadores dados anteriormente para la lgica proposicional, son igualmente vlidos en lgica de predicados. De hecho, la lgica proposicional es un subconjunto de la lgica de predicados. Cada uno de los argumentos en los ejemplos de predicados dados anteriormente, representan a un objeto especfico. Tales argumentos se denominan constantes. Sin embargo, en la lgica de predicados se pueden tener argumentos que en determinado momento pueden ser desconocidos. Estos son los argumentos tipo variable. En el ejemplo: color (yerba, X), la variable X, puede tomar el valor de verde, haciendo que el predicado sea verdadero; o puede tomar el valor de azul, dando lugar a que el predicado sea falso. Las variables, tambin pueden ser cuantificadas. Los cuantificadores que tpicamente se utilizan en lgica de predicados son: El cuantificador universal; indica que la frmula bien forma-

da, dentro de su alcance, es verdadera para todos los valores posibles de la variable que es cuantificada. Por ejemplo:

Establece que "para todo X, es verdad que . . . " El cuantificador existencial; , indica que la frmula bien for-

mada, dentro de su alcance, es verdadera para algn valor o valores dentro del dominio. Por ejemplo:
47

Mg. Abraham Gamarra Moreno

... Establece que "existe un X, tal que . . . " A continuacin se dan algunos ejemplos de predicados cuantificados:

2.2.1.

UNIFICACIN

Cuando se tienen sentencias compuestas por predicados y conectivos lgicos, se debe evaluar la veracidad de cada uno de sus componentes para determinar si toda la sentencia es verdadera o falsa. Para ello, se busca en el conjunto de axiomas la forma de establecer la veracidad de los predicados componentes. Un predicado componente se dice que es verdadero si se identifica con un axioma de la base de informacin. En la lgica de predicados, este proceso es algo complicado ya que las sentencias pueden tener trminos variables. A los predicados que tienen variables por argumentos, se los denomina patrones. La unificacin es el proceso de computar las sustituciones apropiadas que permitan determinar si dos expresiones lgicas, ya sean predicados o patrones, coinciden. El proceso de unificacin involucra los siguientes pasos: Todo predicado que no contenga variables en sus argumentos, deben tener un axioma que se identifique totalmente, para considerarlo como verdadero.
48

Mg. Abraham Gamarra Moreno

Si un predicado contiene una variable, esta debe ser asociada a un valor determinado. Esta asociacin se realiza buscando en la base de axiomas y seleccionando todos aquellos que se identifican con el patrn en todo, excepto por la variable. La variable es asociada con el valor en la posicin correspondiente del axioma. Si ms de un axioma se identifica con el predicado dado, todos los valores asociados son considerados y son tratados separadamente. El proceso de identificacin contina asumiendo que el valor de la variable es el valor asociado, en cualquier lugar que esta aparezca. Los conectivos lgicos son aplicados a todos los predicados, para determinar la veracidad de la sentencia dada.

2.2.2.

INFERENCIA Y RAZONAMIENTO

Inferir es concluir o decidir a partir de algo conocido o asumido; llegar a una conclusin. A su vez, razonar es pensar coherente y lgicamente; establecer inferencias o conclusiones a partir de hechos conocidos o asumidos. El proceso de razonamiento, por lo tanto, involucra la realizacin de inferencias, a partir de hechos conocidos. Realizar inferencias significa derivar nuevos hechos a partir de un conjunto de hechos conocidos como verdaderos. La lgica de predicados proporciona un grupo de reglas slidas, con las cuales se pueden realizar inferencias.

2.2.3.

REGLAS DE INFERENCIA

Las principales Reglas de Inferencia son:


49

Mg. Abraham Gamarra Moreno

Modus ponens.- Es la ms importante, en los sistemas basados en conocimiento. Establece que: Si las sentencias p y (p ) se conocen que son verdaderas,

entonces se puede inferir que q tambin es verdadera. Modus tolens.- Esta regla establece que: Si la sentencia ( ) es verdadera y q es falsa, entonces se

puede inferir que p tambin es falsa. Resolucin.- Utiliza refutacin para comprobar una determinada sentencia. La refutacin intenta crear una contradiccin con la negacin de la sentencia original, demostrando, por lo tanto, que la sentencia original es verdadera. La resolucin es una tcnica poderosa para probar teoremas en lgica y constituye la tcnica bsica de inferencia en PROLOG, un lenguaje que manipula en forma computacional la lgica de predicados. Ejemplo:

Mg. Abraham Gamarra Moreno

50

AD es un teorema porque su negacin lleva a una contradiccin.

2.2.4.

MTODOS BSICOS DE RAZONAMIENTO

En lgica de predicados, existen tres mtodos bsicos de razonamiento: deductivo, abductivo e inductivo. Deduccin.- Es el razonamiento a partir de un principio conocido hacia un desconocido; de lo general, a lo especfico, o de la premisa a la conclusin lgica. La deduccin realiza inferencias lgicamente correctas. Esto significa que la deduccin a partir de premisas verdaderas, garantiza el resultado de conclusiones tambin verdaderas. La deduccin es el mtodo ms ampliamente comprendido, aceptado y reconocido de los tres indicados. Es la base tanto de la lgica proposicional, como de la lgica de predicados. A manera de ejemplo, el mtodo deductivo, se puede expresar, utilizando lgica de predicados, como sigue:

Abduccin.- Es un mtodo de razonamiento comnmente utilizado para generar explicaciones. A diferencia de la induccin, la abduccin no garantiza que se puedan lograr conclusiones verdaderas,
Mg. Abraham Gamarra Moreno

51

por lo tanto no es un mtodo slido de inferencia. La forma que tiene la abduccin es la siguiente: Si la sentencia ( ) es verdadera y B es verdadera, entonces A

es posiblemente verdadera. Ejemplo: X es un elefante X es un animal En abduccin, se empieza por una conclusin y se procede a derivar las condiciones que podran hacer a esta conclusin vlida. En otras palabras, se trata de encontrar una explicacin para la conclusin. Induccin.- Se define como el razonamiento a partir de hechos particulares o casos individuales, para llegar a una conclusin general. El mtodo inductivo es la base de la investigacin cientfica. La forma ms comn del mtodo inductivo es la siguiente: Si se conoce que P(a), P(b), ......, P(n) son verdaderos, entonces se puede concluir que La induccin es una forma de inferencia muy importante ya que el aprendizaje, la adquisicin de conocimiento y el descubrimiento estn basados en ella. Al igual que la abduccin, la induccin no es un mtodo slido de inferencia.

2.2.5.

EJEMPLO (2-1): BASE DE CONOCIMIENTO SOBRE

QUE PRODUCTOS PUEDEN COMPRAR UNA PERSONA La consulta que se realiza es: Qu producto puede comprar alguna persona? y esta implementado en visual prolog 5.2.

Mg. Abraham Gamarra Moreno

52

PREDICATES nondeterm person(symbol) nondeterm car(symbol) nondeterm likes(symbol, symbol) nondeterm for_sale(symbol) nondeterm can_buy(symbol,symbol) CLAUSES person(kelly). person(judy). person(ellen). person(mark). car(lemon). car(hot_rod). likes(kelly, hot_rod). likes(judy, pizza). likes(ellen, tennis). likes(mark, tennis). for_sale(pizza). for_sale(lemon). for_sale(hot_rod). can_buy(X,Y) :- person(X), car(Y), likes(X,Y), for_sale(Y). GOAL can_buy(PERSONA,PRODUCTO).

Mg. Abraham Gamarra Moreno

53

El resultado de la ejecucin es:

2.2.6.

EJEMPLO (2-2): PROGRAMA QUE REPRESENTA LA

ASOCIACIN DE LOS MIEMBROS DE UNA FAMILIA La figura 2.1 muestra la asociacin de los miembros en una familia a travs de una red asociativa.

Figura 2.1. Asociacin de los miembros en una familia a travs de una red asociativa

Solucin:
54

Mg. Abraham Gamarra Moreno

predicates nondeterm hermana_de (symbol,symbol) nondeterm esposa_de (symbol,symbol) nondeterm madre_de (symbol,symbol) nondeterm hijo_de (symbol,symbol) nondeterm padre_de (symbol,symbol) nondeterm abuelo_de (symbol,symbol) nondeterm son_esposos (symbol,symbol) clauses hermana_de (ana, carolina). esposa_de (ana,memo). esposa_de (carolina, david). esposa_de (susana, tomas). madre_de (ana, susana). madre_de (carolina, tomas). madre_de (susana, juan). padre_de (memo, susana). padre_de (david, tomas). padre_de (tomas, juan). hijo_de (X,Y):- madre_de (Y,X); padre_de (Y,X). abuelo_de (X,Y):- padre_de (X,Z), padre_de (Z,Y); padre_de (X,Z), madre_de(Z,Y). son_esposos (X,Y):- esposa_de(X,Y). goal /*hijo_de (susana, Quien).*/ abuelo_de (Abuelo, Nieto). /*son_esposos (Esposa,Esposo).*/

Mg. Abraham Gamarra Moreno

55

Para ejecutar el programa debemos activar una de las tres lneas que se encuentran debajo de goal. La ejecucin a la consulta de quienes son abuelos y quienes son sus nietos es: abuelo_de (Abuelo, Nieto). La salida es:

2.2.7.

EJEMPLO (2-3): PROGRAMA QUE REPRESENTA LA

DISPOSICIN DE UN SISTEMA DE BLOQUES La figura 2.2 muestra la disposicin de un sistema de bloques sobre una mesa.

Figura 2.2. Disposicin de un sistema de bloques. El programa que representa al sistema y que realiza la consulta A dnde se puede mover algn bloque?, se lista a continuacin:

Mg. Abraham Gamarra Moreno

56

predicates nondeterm arriba_de(symbol,symbol) nondeterm debajo_de(symbol,symbol) nondeterm mas_abajo_de(symbol,symbol) nondeterm libre(symbol) nondeterm mover(symbol,symbol) clauses arriba_de(b,a). arriba_de(a,mesa). arriba_de(c,mesa). arriba_de(d,mesa). libre(b). libre(c). libre(d). debajo_de(X,Y):-arriba_de(Y,X). mas_abajo_de(Z,X):-debajo_de(Y,X),debajo_de(Z,Y). mover(X,Y):-libre(X),libre(Y).

goal /*arriba_de(X,mesa).*/ /*debajo_de(a,b).*/ /*debajo_de(X,c).*/ /* que esta debajo de c*/ /*write("\ningrese nombre del bloque "),readln(Abajo), write("\n"),write(Abajo), write(" tiene arriba a los siguientes bloques:\n"), arriba_de(Arriba,Abajo).*/

Mg. Abraham Gamarra Moreno

57

/*mas_abajo_de(mesa,Arriba).*/

/*mover(Origen,Destino).*/

/*mover(Origen,Destino),Origen<>Destino.*/

write("\ningrese "),readln(Origen), write("\n"),

nombre

del

bloque

que

desea

mover

write(" se puede mover de la siguiente manera:\n"), mover(Origen,Destino),Origen<>Destino.

La ejecucin del programa muestra la siguiente salida:

Puede eliminar el par /* los una por vez.

*/ para ejecutar otras consultas, realice-

Mg. Abraham Gamarra Moreno

58

2.3. DIAPOSITIVAS SOBRE PROGRAMACIN LGICA CON PROLOG

PROGRAMACION LOGICA CON PROLOG


Recopilado por: Mg. Abraham Gamarra Moreno

Mg. Abraham Gamarra Moreno

59

Mg. Abraham Gamarra Moreno

60

Mg. Abraham Gamarra Moreno

61

Luego encuentra el sucesivo (resatisface la pregunta)

Mg. Abraham Gamarra Moreno

62

Mg. Abraham Gamarra Moreno

63

Mg. Abraham Gamarra Moreno

64

Mg. Abraham Gamarra Moreno

65

<>

juan <> pedro

Mg. Abraham Gamarra Moreno

66

predicates nondeterm varon(symbol) nondeterm hembra (symbol) nondeterm padres(symbol,symbol,symbol) nondeterm hermana_de(symbol,symbol)

Solucin ejercicios 1.

Clauses varon(alberto). varon(eduardo). hembra(alicia). hembra(victoria). padres(eduardo, victoria, alberto). padres(alicia, victoria, alberto). hermana_de(X,Y):hembra(X), padres(X,M,P), padres(Y,M,P),X<>Y. goal hermana_de(alicia,X).

predicates poblacion(symbol,real) superficie(symbol,real) densidad(symbol,real)

Ejemplo 2

clauses /* poblacion(Prov,Pob) <- la poblacin, en miles de habitantes, de la provincia Prov es Pob */ poblacion(alicante,1149). poblacion(castellon,432). poblacion(valencia,2066). /* superficie(Prov,Sup) <- la superficie, en miles de km2, de la provincia Prov es Sup */ superficie(alicante,6). superficie(castellon,7). superficie(valencia,11). /* densidad(Prov,Den) <- la densidad de poblacin, habitantes/km2, de la provincia Prov es Den */ densidad(X,Y) :- poblacion(X,P), superficie(X,S), Y=P/S. goal densidad(alicante, X).

Mg. Abraham Gamarra Moreno

67

predicates nondeterm animal(symbol) nondeterm gusta(symbol,symbol) nondeterm regalo(symbol,symbol) clauses /* animal(Anim) <- Anim es un animal */ animal(mono). animal(gallina). animal(araa). animal(mosca). animal(cocodrilo). /* gusta(X,Y) <- a X le gusta Y */ gusta(mono,banana). gusta(araa,mosca). gusta(alumno,logica). gusta(araa,hormiga). gusta(mosca,espejo). gusta(cocodrilo,X) :- animal(X). /* regalo(X,Y) <- Y es un buen regalo para X */ regalo(X,Y) :- animal(X), gusta(X,Y). goal write("\n los regalos (Y), para los animales (X) se"), write(" listan a continuacin: \n\n"), regalo(X,Y).

Ejemplo 3

predicates nondeterm hijo(string,string) clauses hijo(javier, luis). hijo(ana,luis). hijo(maria,luis). hijo(joseph,daniel). goal write("\ningrese nombre del padre: "),readln(Padre), write("\n"),write(Padre), write(" tiene los siguientes hijos:\n"), hijo(Hijo,Padre).

Ejemplo 4

Mg. Abraham Gamarra Moreno

68

Ejemplo 5: Representacin del sistema de bloques

B A C MESA D

Vea ejemplo9.pro

Resumen La representacin del conocimiento permite definir una representacin adecuada de este conocimiento para que los computadores las entiendan. Indicadores de logro El lector es capaz de utilizar la representacin del conocimiento utilizando lgica proposicional y lgica de predicados. Bibliografa Recomendada Rich E, Knight K. Inteligencia Artificial. 2da. Ed. Espaa: Mc Graw Hill; 1994. Russell S, Norvig Peter. Inteligencia Artificial. Mxico: Prentice Hall; 1996.
69

Mg. Abraham Gamarra Moreno

Winston P. Inteligencia Artificial. 3ra. ed. Wesley; 1994. Nexo

USA: Addison

La siguiente unidad acadmica analiza la Representacin del Conocimiento mediante reglas de produccin. Actividad Investigue sobre otras formas de representacin del conocimiento.

Auto evaluacin formativa Encuentre la solucin a los siguientes problemas:

PROBLEMA UNO

Se tiene la siguiente disposicin de aulas en una universidad:

izquierda Aula: A Arriba Cap: 30 Estado: Ocupado

Centro Aula: B Cap: 20 Estado: Disponible

Derecha Aula: C Cap: 40 Estado: Disponible

Aula: D Abajo Cap: 20 Estado: Ocupado


Mg. Abraham Gamarra Moreno

Aula: E Cap: 50 Estado: Disponible

Aula: F Cap: 70 Estado: Ocupado

70

En un programa en Prolog realice: a) Se pide representar el conocimiento de la figura con los siguientes predicados: - Capacidad( ) : Capacidad del aula.

- Estado() : Estado del aula (ocupado o disponible) - Ubicacin ( ) : Ubicacin del aula. b) Crear una regla que permita identificar que aulas estn una frente a la otra en forma vertical. c) Crear una regla que identifique si un aula esta a la izquierda.

PROBLEMA DOS

Se tiene la siguiente disposicin de tres robots:

Hab A

Hab B

Pa

Pb Fig 1. Ubicacin de los tres robots en las habitaciones. 2


71

Pc Hab D

Pd

Hab C
Mg. Abraham Gamarra Moreno

Se pide implementar en el prolog la base de conocimiento que muestre el estado actual de la fig 1, utilizando los predicados: esta_en (robot1, hab_a) /* Predicado que define que el robot1 esta en la habitacin a */ ... ingresa( hab_a, p_a) /* Predicado que define que a la habitacin a se ingresa por la puerta a*/ ... en_frente( hab_a, hab_c) /* Predicado que define que a la habitacin a esta al frente de la habitacin c*/ ... Adems debe crear las reglas para los siguientes predicados: a) sale () :-

Debe utilizar el predicado ingresa () y esta_en (), para identificar la puerta por la que un robot puede salir. b) esta_ocupado ( ):-

Debe utilizar el predicado esta_en(), para mencionar si una habitacin esta ocupado. c) puede_ir ( ):-

Debe utilizar algn predicado o regla anterior, para mencionar que un robot puede ir de una habitacin a otra, que esta desocupada.
Mg. Abraham Gamarra Moreno

72

d)

Realice las siguientes consultas:

Por qu puerta pueden salir los robots?

Qu habitaciones estn ocupadas?

A que habitacin pueden ir los robots?

Mg. Abraham Gamarra Moreno

73

UNIDAD ACADMICA 3

REPRESENTACIN DEL CONOCIMIENTO MEDIANTE REGLAS DE PRODUCCIN

Los sistemas basados en reglas son los ms comnmente utilizados. Su simplicidad y similitud con el razonamiento humano, han contribuido para su popularidad en diferentes dominios. Las reglas son un importante paradigma de representacin del conocimiento. Las reglas representan el conocimiento utilizando un formato SIENTONCES (IF-THEN), es decir tienen 2 partes: La parte SI (IF), es el antecedente, premisa, condicin o situacin; y La parte ENTONCES (THEN), es el consecuente, conclusin, accin o respuesta. Las reglas pueden ser utilizadas para expresar un amplio rango de asociaciones, por ejemplo:
74

Mg. Abraham Gamarra Moreno

SI est manejando un vehculo Y se aproxima una ambulancia, ENTONCES baje la velocidad Y hgase a un lado para permitir el paso de la ambulancia. SI su temperatura corporal es de 39 C, ENTONCES tiene fiebre. SI el drenaje del lavabo est tapado Y la llave de agua est abierta, ENTONCES se puede inundar el piso. 3.1. INFERENCIA BASADA EN REGLAS Un sistema basado en reglas utiliza el modus ponens para manipular las afirmaciones y las reglas durante el proceso de inferencia. Mediante tcnicas de bsqueda y procesos de unificacin, los sistemas basados en reglas automatizan sus mtodos de razonamiento y proporcionan una progresin lgica desde los datos iniciales, hasta las conclusiones deseadas. Esta progresin hace que se vayan conociendo nuevos hechos o descubriendo nuevas afirmaciones, a medida que va guiando hacia la solucin del problema. En consecuencia, el proceso de solucin de un problema en los sistemas basados en reglas va realizando una serie de inferencias que crean un sendero entre la definicin del problema y su solucin. Las inferencias estn concatenadas y se las realiza en forma progresiva, por lo que se lo que se dice que el proceso de solucin origina una cadena de inferencias. 3.2. EL PROCESO DE RAZONAMIENTO El proceso de razonamiento en un sistema basado en reglas es una progresin desde un conjunto inicial de afirmaciones y reglas hacia una solucin, respuesta o conclusin. Como se llega a obtener el resultado, sin embargo, puede variar significativamente:
75

Mg. Abraham Gamarra Moreno

Se puede seleccionar una posible solucin y tratar de probar su validez buscando evidencia que la apoye. Este proceso se denomina guiado por el objetivo o de encadenamiento hacia atrs (backward chainning). Se puede partir considerando todos los datos conocidos y luego ir progresivamente avanzando hacia la solucin. Este proceso se lo denomina guiado por los datos o de encadenamiento hacia adelante (forward chainning).

3.2.1.

ENCADENAMIENTO HACIA ATRS

El mecanismo de inferencia, o intrprete de reglas para el encadenamiento regresivo (encadenamiento hacia atrs), difiere significativamente del mecanismo de encadenamiento hacia adelante. Si bien es cierto ambos procesos involucran el examen y aplicacin de reglas, el encadenamiento hacia atrs empieza con la conclusin deseada y decide si los hechos que existen pueden dar lugar a la obtencin de un valor para esta conclusin. El encadenamiento hacia atrs sigue un proceso muy similar a la bsqueda primero en profundidad. El sistema empieza con un conjunto de hechos conocidos. Se proporciona una lista ordenada de objetivos (o conclusiones), para las cuales el sistema trata de derivar valores. El proceso de razonamiento hacia atrs utiliza esta lista de objetivos para coordinar su bsqueda a travs de las reglas de la base de conocimientos. Esta bsqueda consiste de los siguientes pasos: Conformar una pila inicialmente compuesta por todos los objetivos prioritarios definidos en el sistema.
76

Mg. Abraham Gamarra Moreno

Considerar el primer objetivo de la pila. Determinar todas las reglas capaces de satisfacer este objetivo, es decir aquellas que mencionen al objetivo en su conclusin. Para cada una de estas reglas examinar en turno sus antecedentes: Si todos los antecedentes de la regla son satisfechos (esto es, cada parmetro de la premisa tiene su valor especificado dentro de la base de datos), entonces ejecutar esta regla para derivar sus conclusiones. Debido a que se ha asignado un valor al objetivo actual, removerlo de la pila y retornar al paso (2). Si alguna premisa de la regla no puede ser satisfecha, buscar reglas que permitan derivar el valor especificado para el parmetro utilizado en esta premisa. Si en el paso (b) no se puede encontrar una regla para derivar el valor especificado para el parmetro actual, entonces preguntar al usuario por dicho valor y aadirlo a la base de datos. Si este valor satisface la premisa actual entonces continuar con la siguiente premisa de la regla. Si la premisa no es satisfecha, considerar la siguiente regla. Si todas las reglas que pueden satisfacer el objetivo actual se han probado y todas no han podido derivar un valor, entonces este objetivo quedar indeterminado. Removerlo de la pila y retornar al paso (2). Si la pila est vaca parar y anunciar que se ha terminado el proceso. La figura 3.3 representa una versin simplificada del encadenamiento hacia atrs:
77

Mg. Abraham Gamarra Moreno

Hechos iniciales
(2) Verificar

(1) Verificar

Objetivos
(3) Verificar

Reglas Consecuentes Antecedentes C1 CL CK


(4)

A1 AL AK

Figura 3.1 Razonamiento con encadenamiento regresivo.

En la figura 3.4 se muestra un ejemplo simple de la inferencia con encadenamiento regresivo:

P1 --> P2 (Regla 1) --> P2 --> P3 (Regla 2) --> P3 --> q3 (Regla 3) -->


R1 R2 R3

p1 ----> p2 -----> p3 -----> q3 ----> -----> ----->


Hecho verdadero objetivo 3er Obj 2do Obj

Direccin encadenamiento hacia atrs

Figura 3.2 Inferencia con encadenamiento regresivo o encadenamiento hacia atrs. Los ejemplos que se mencionan a continuacin son los mismos que se utilizaron en el encadenamiento hacia adelante, se evalan aqu para encontrar las diferencias con el encadenamiento hacia atrs. Ejemplo 1: Se tienen los siguientes hechos y reglas: Hechos = { a, b, d, e, g }
78

Mg. Abraham Gamarra Moreno

Reglas: r1: IF ( f and c and g ) THEN ( z ) r2: IF ( d and e ) THEN ( f ) r3: IF ( a and b ) THEN ( c ) OBJETIVO: Z , Para ver si el objetivo Z es verdadero debemos de probar sus antecedentes tal como se muestra en la figura 3.5.

d e a b

r2

f
r3 r1

z
objetivo

Subobjetivos: d e a b

g
Subobjetivos: f c g

Figura 3.3 Prueba del objetivo Z con encadenamiento regresivo (encadenamiento hacia atrs)

Ejemplo 2: Se tiene el siguiente conjunto de reglas: R1: IF (P y Q) THEN S R2: IF R THEN T R3: IF (S y T) THEN U R4: IF (S y R) THEN V HECHOS={P,Q,R}
79

Mg. Abraham Gamarra Moreno

Probar V (objetivo) Paso 1: Intentar probar V revisando si esta en hechos. Si no esta introduce a V como hiptesis 1 (H1). Paso 2: Se realiza una comparacin de H1 vs las reglas. H1 existe en la conclusin de R4. Paso 3: Intentar probar S (primer antecedente) revisando si esta en hechos. Si no esta introduce a S como hiptesis 2 (H2). Paso 4: Se realiza una comparacin de H2 vs las reglas. H2 existe en la conclusin de R1. Descubre que R1 puede ser (ejecutado) y se aade S a hechos. Verifica si S es la solucin, si no es continua. Las reglas y hechos quedan:

R1: IF (P y Q) THEN S (H2)(Ejecutado 1ro) R2: IF R THEN T R3: IF (S y T) THEN U


80

Mg. Abraham Gamarra Moreno

R4: IF (S y R) THEN V (H1) HECHOS={P, Q, R, S} Paso 4: Como continuacin del paso 3 se evala R (segundo antecedente) de la regla R4. Paso 5: Intenta probar R revisando si esta en hechos. Si esta!, entonces ejecuta R4 y aade V a hechos. Las reglas y hechos quedan:

R1: IF (P y Q) THEN S (Ejecutado 1ro) R2: IF R THEN T R3: IF (S y T) THEN U R4: IF (S y R) THEN V (Ejecutado 2do) HECHOS={P, Q, R, S, V} Paso 5: Verifica si V es la solucin (si es!) y finaliza. El razonamiento hacia atrs es mucho ms adecuado para aplicaciones que tienen mucho mayor nmero de entradas, que de soluciones posibles. La habilidad de la lgica regresiva para trazar desde las pocas conclusiones hacia las mltiples entradas la hace ms eficiente que el encadenamiento hacia adelante.
81

Mg. Abraham Gamarra Moreno

Una excelente aplicacin para el razonamiento hacia atrs es el diagnstico, donde el usuario dialoga directamente con el sistema basado en conocimiento y proporciona los datos a travs del teclado. Problemas de clasificacin tambin son adecuados para ser resuelto mediante el razonamiento hacia atrs.

3.2.2.

ENCADENAMIENTO HACIA ADELANTE

En el caso del encadenamiento hacia adelante, se empieza a partir de un conjunto de datos colectados a travs de observacin y se evoluciona hacia una conclusin. Se chequea cada una de las reglas para ver si los datos observados satisfacen las premisas de alguna de las reglas. Si una regla es satisfecha, es ejecutada derivando nuevos hechos que pueden ser utilizados por otras reglas para derivar hechos adicionales. Este proceso de chequear reglas para ver si pueden ser satisfechas se denomina interpretacin de reglas. La interpretacin de reglas es realizada por una mquina de inferencia en un sistema basado en conocimiento. La interpretacin de reglas, o inferencia, en el razonamiento hacia adelante involucra la repeticin de los pasos que se indican en la figura 3.6.

Mg. Abraham Gamarra Moreno

82

Figura 3.4 Proceso de Razonamiento Progresivo.

Unificacin (Matching).- En este paso, en las reglas en la base de conocimientos se prueban los hechos conocidos al momento para ver cules son las que resulten satisfechas. Para decir que una regla ha sido satisfecha, se requiere que todas las premisas o antecedentes de la regla resuelvan a verdadero. Resolucin de Conflictos.- Es posible que en la fase de unificacin resulten satisfechas varias reglas. La resolucin de conflictos involucra: - la seleccin de una regla de acuerdo al orden en que fueron creados, es decir, los que se crearon primero son las reglas que se deben elegir, - la seleccin aleatoria de una regla, - la seleccin de la regla que tenga la ms alta prioridad de entre el conjunto de reglas que han sido satisfechas. Ejecucin.- El ltimo paso en la interpretacin de reglas es la ejecucin de la regla. La ejecucin puede dar lugar a uno o dos resultados posibles: nuevo hecho (o hechos) pueden ser derivados y aadidos a la base de hechos, o una nueva regla (o reglas) pueden ser aadidas al conjunto de reglas (base de conocimiento) que el sistema considera para ejecucin. El conjunto de aplicaciones adecuadas para el razonamiento hacia adelante est formado por: diseo, planeamiento y calendarizacin, donde ocurre la sntesis de nuevos hechos basados en las conclusiones de las reglas. En estas aplicaciones hay potencialmente muchas soluciones que pueden ser derivadas de los datos de enMg. Abraham Gamarra Moreno

83

trada. Debido a que estas soluciones no pueden ser enumeradas, las reglas expresan conocimiento como patrones generales y las conexiones precisas entre estas reglas no pueden ser predeterminadas. El razonamiento progresivo infiere con la aplicacin de la regla de modus ponens Pq P ______ . . . q es verdadero es verdadero es verdadero

La figura 3.7 muestra como se aplica la regla modus ponens.

Encadenamiento hacia adelante P1 --> P2 (Regla 1) --> P2 --> P3 (Regla 2) --> P3 --> q3 (Regla 3) -->
R1

(Encadenamiento progresivo)

dado --> deducido --> P1--> Q3 P1-->


R2 R3

p1 ----> p2 -----> p3 -----> q3 ----> -----> ----->


Dado deducido deducido deducido

Direccin encadenamiento hacia adelante

Figura 3.5 Aplicacin de la regla modus ponens.

A continuacin se muestran dos ejemplos que utilizan el encadenamiento hacia adelante. Ejemplo 1: Se tienen los siguientes hechos y reglas: Hechos = { b, e, g, a, d }
Mg. Abraham Gamarra Moreno

84

Reglas: r1: IF ( f and c and g ) THEN ( z ) r2: IF ( d and e ) THEN ( f ) r3: IF ( a and b ) THEN ( c ) El siguiente rbol muestra el trabajo realizado por el encadenamiento progresivo.

d e a b

r2

f
r3 r1

z
deducido

g
deducidos: f c

Ejemplo 2: Se tiene el siguiente conjunto de reglas: R1: IF (P y Q) THEN S R2: IF R THEN T R3: IF (S y T) THEN U R4: IF (S y R) THEN V HECHOS={P,Q,R}
Mg. Abraham Gamarra Moreno

85

V=objetivo Paso 1: Realiza una comparacin de las hechos vs las reglas y busca que reglas se pueden ejecutar. R1 y R2 se pueden disparar (existe conflicto) Dispara R1 teniendo en cuenta que es la primera regla encontrada (podra tomarse otro criterio de seleccin), aade a S como hecho y memoriza que R1 fue ejecutada. Verifica si S es el objetivo, como no es prosigue. El estado de las reglas y hechos es: R1: IF (P y Q) THEN S (Ejecutado 1ro) R2: IF R THEN T R3: IF (S y T) THEN U R4: IF (S y R) THEN V HECHOS = {P,Q,R,S} Paso 2: Realiza una comparacin de los hechos vs las reglas y busca que reglas se pueden ejecutar. R2 y R4 se pueden disparar (existe conflicto) Dispara R2 teniendo en cuenta que es la primera regla encontrada (podra tomarse otro criterio de seleccin), aade a T como hecho y memoriza que R2 fue ejecutada. Verifica si T es el objetivo, como no es prosigue. El estado de las reglas y hechos es: R1: IF (P y Q) THEN S (Ejecutado 1ro)
Mg. Abraham Gamarra Moreno

86

R2: IF R THEN T (Ejecutado 2do) R3: IF (S y T) THEN U R4: IF (S y R) THEN V HECHOS = {P, Q, R, S, T} Paso 3: Realiza una comparacin de los hechos vs las reglas y busca que reglas se pueden ejecutar. R3 y R4 se pueden disparar (existe conflicto) Dispara R3 teniendo en cuenta que es la primera regla encontrada (podra tomarse otro criterio de seleccin), aade a U como hecho y memoriza que R3 fue ejecutada. Verifica si U es el objetivo, como no es prosigue. El estado de las reglas y hechos es: R1: IF (P y Q) THEN S (Ejecutado 1ro) R2: IF R THEN T (Ejecutado 2do) R3: IF (S y T) THEN U (Ejecutado 3ro) R4: IF (S y R) THEN V HECHOS = {P, Q, R, S, T, U} Paso 4: Realiza una comparacin de los hechos vs las reglas y busca que reglas se pueden ejecutar. R4 se puede disparar Dispara R4 y aade a V como hecho y memoriza que R4 fue ejecutada. Verifica si V es el objetivo, dado que si es, entonces finaliza.
Mg. Abraham Gamarra Moreno

87

El estado de las reglas y hechos es: R1: IF (P y Q) THEN S (Ejecutado 1ro) R2: IF R THEN T (Ejecutado 2do) R3: IF (S y T) THEN U (Ejecutado 3ro) R4: IF (S y R) THEN V (Ejecutado 4to) HECHOS = {P, Q, R, S, T, U, V}

Resumen La representacin del conocimiento mediante reglas de produccin permite utilizar la representacin IF...THEN. Indicadores de logro El lector es capaz de utilizar la representacin de reglas de produccin. Bibliografa Recomendada Arteaga R, Armijos J. Tutorial de Programacin Heurstica. Ecuador: Trabajo de monografa complementario al curso de pregrado dictado en la Universidad Central del Ecuador, para la obtencin del ttulo de Ingeniero en Informtica; 1998. Giarratano J, Riley G. Sistemas Expertos. 3ra. ed. Mxico: Internacional Thomson Editores; 1998. Sierra G. Sistemas Expertos en Contabilidad y Administracin de Empresas. USA: Addison Wesley; 1995. Nexo
Mg. Abraham Gamarra Moreno

88

La siguiente unidad acadmica analiza el diseo de sistemas basado en reglas con encadenamiento hacia atrs.

Actividad Muestre un ejemplo que utilice encadenamiento hacia atrs. Muestre un ejemplo que utilice encadenamiento hacia adelante. Auto evaluacin formativa Encuentre la solucin a los siguientes problemas:

PROBLEMA UNO Se tienen los siguientes hechos, reglas y objetivos: Hechos = { Q, R, S } Reglas: r1: IF ( N and P ) THEN ( M ) r2: IF ( Q ) THEN ( N ) r3: IF ( R and S ) THEN ( P ) OBJETIVO: M Se pide mostrar la ejecucin de las reglas con encadenamiento hacia atrs y tambin con encadenamiento hacia adelante.

Mg. Abraham Gamarra Moreno

89

UNIDAD ACADMICA 4

DISEO DE SISTEMAS BASADO EN REGLAS CON ENCADENAMIENTO HACIA ATRS

4.1. INTRODUCCIN En este tema se considerara las etapas que un ingeniero de conocimiento realiza para desarrollar un sistema experto basado en reglas con encadenamiento hacia atrs. Este proceso se ilustrara con un pequeo problema de planificacin de inversin personal.
90

Mg. Abraham Gamarra Moreno

4.2. METODOLOGA HACIA ATRS3

GENERAL

PARA

EL

DISEO

DE

SISTEMAS BASADO EN REGLAS CON ENCADENAMIENTO

La primera tarea antes de realizar el diseo de un sistema experto es el tener un conocimiento general del problema. Se debe determinar los objetivos del sistema, y obtener informacin del experto con el fin de tener recomendaciones validas. Una caracterstica comn al diseo de cualquier sistema experto es que es un proceso altamente iterativo. El proceso cclico continua en aumento mientras el sistema crece. Este estilo de desarrollo cclico es tpico cuando se construye un sistema con encadenamiento hacia atrs. Hay siete tareas principales que se realizan cuando se desarrolla un sistema con encadenamiento hacia atrs: Definir el problema Definir los objetivos Definir las reglas Expandir el sistema Refinar el sistema Diseo de la interfase Evaluacin del sistema De entrada estos pasos son aplicables a una pequea parte del sistema y luego mediante su iteracin se expanden a todo el sistema hasta que ha sido refinado y obtener el rendimiento de un experto.
3

Traduccin de: Durkin J. Expert Systems. USA: Ed. Macmillan; 1994

Mg. Abraham Gamarra Moreno

91

Para la explicacin de cmo trabaja el sistema con encadenamiento hacia atrs nos valdremos de un ejemplo aplicado a la cartera de inversiones.

4.2.1.

TAREA 1: DEFINICIN DEL PROBLEMA

El primer paso para el desarrollo de cualquier sistema experto debe ser aprender sobre el tema. Nuestra tarea en este caso ser desarrollar un sistema experto para ayudar a tomar decisiones financieras a un cliente que desea invertir. Para ello se debe reunir informacin acerca del como trabaja una bolsa de inversiones. Los reportes, documentos, libros son buenas fuentes de informacin para cualquier experto en proyectos. Estas fuentes nos proporcionan un buen nivel para lograr el entendimiento del tema y de su solucin. A pesar de ello, el de ser buenos puntos de partida, siempre es necesario contar con la ayuda de un experto. De tener la suerte de encontrar un buen experto, la siguiente tarea es sacarle informacin acerca del tema. Por ejemplo, en nuestro caso seria necesario que nos diga en que rubros se puede invertir. El experto nos podra indicar que la cartera de inversiones puede clasificarse en:

ACCIONES Transferencias BONOS Del tesoro FONDOS MUTUOS Efectivo


Mg. Abraham Gamarra Moreno

Empresas

Comunes

Corporaciones

Municipales

Bonos

Acciones
92

AHORROS Cuenta corriente Mercado monetario PRODUCCIN Agricultura Precio de metales INMUEBLES Comercial Residencial Terrenos Petrleo Cuentas de ahorro

Durante la explicacin de esta lista el experto podra incluir algunos comentarios de cmo formar la cartera de inversiones. No obstante, es preferible tomar la informacin por etapas. Consejo de diseo: Durante la etapa de definicin del problema, no se debe interrumpir al experto por problemas de detalles. Es preferible entender el problema en forma general. Los detalles se pueden obtener despus durante discusiones posteriores con el experto. Luego de elegir la cartera de inversiones es factible continuar con el anlisis de que medios de inversin se van usar dentro de cada categora, es decir, cuales son los mas adecuados para cada cliente. Estos mecanismos de refinamiento puede tratarse segn el nivel de profundidad a que se desee llegar en el anlisis.

4.2.2.

TAREA 2: DEFINICIN DE LOS OBJETIVOS

Lo primero es definir los objetivos que el sistema va alcanzar. Despus de alternar con el experto se puede llegar a la conclusin de que los dos objetivos principales a lograr son:
93

Mg. Abraham Gamarra Moreno

1. Determinacin de la composicin de la cartera de inversiones. 2. Determinacin de los medios de inversin dentro de cada categora. Para mantener la simplicidad de nuestro sistema, escogeremos solamente el primer objetivo y se asumir que el segundo objetivo podra ser alcanzado en una revisin futura del sistema. Una cartera de inversiones es simplemente la distribucin de la inversin en una o ms categoras generales. Un sistema de accesoria de inversiones podra necesitar una gran cantidad de recomendaciones. Manteniendo nuestro criterio de simplicidad, se asumir que slo se tiene cuatro posibles alternativas: Cartera 1: 100% de inversin en ahorros Cartera 2: 60% en acciones, 30% en bonos, 10% en ahorros Cartera 3: 20% en acciones, 40% en bonos, 40% en ahorros Cartera 4. 100% de inversin en acciones Consejo de diseo: Focalizar el diseo original en una pequea parte representativa del problema completo.

4.2.3.

TAREA 3: DISEO DE LAS REGLAS

Cada objetivo de nuestro sistema debe tener al menos una regla. Es necesario obtener el conjunto de premisas para satisfacer cada regla. La forma general de nuestras reglas ser la siguiente: IF AND . Premisas 1 Premisas 2 .0
94

Mg. Abraham Gamarra Moreno

. THEN

. Cartera_i

En base a las premisas el experto efecta la recomendacin de una cartera determinada. Estos antecedentes se obtienen luego de efectuar consultas al experto. Consideremos la siguiente interaccin entre el ingeniero de conocimiento (IC) y el experto en el rea (EA): IC: te? EA: Cada inversin tiene un riesgo asociado con ella, de modo, Cmo escoger la cartera de inversin correcta para el clien-

que yo necesito saber algo acerca del estado personal y financiero del cliente. Cada una de estas caractersticas es importante para recomendar una posicin agresiva o conservadora. IC: De modo que Ud. recomienda un tipo determinado de inver-

sin basado el perfil personal y financiero del cliente pensando en una posicin agresiva o conservadora? EA: IC: EA: S. No toma en cuenta otras consideraciones? Claro que s. Si el cliente solo desea invertir una pequea

cantidad de dinero, se asume que es realmente conservador, e inmediatamente se le recomienda invertir todo su dinero en ahorros. IC: EA: Que cantidad Ud. considera como pequea? Cualquier cantidad de dinero menor que $1000.

Esta discusin con el experto nos provee las principales consideraciones atener en cuenta cuando se recomienda una cartera de inversiones (nuestro objetivo):
Mg. Abraham Gamarra Moreno

95

Condicin personal del cliente (conservador o agresivo) Estado financiero del cliente (conservador o agresivo) Cantidad a invertir (pequea o grande) Ahora que se conoce las principales consideraciones, el siguiente paso ser determinar su relacin con la recomendacin correspondiente. Esto puede ser realizado a travs de discusiones con el experto, o elegirse otra tcnica que incluye una tabla de decisin.

Tablas de decisin Las tablas de decisin ofrecen una tcnica de adquisicin de conocimiento que evita problemas normalmente asociados con la tcnica de entrevistas. Una tabla de decisin provee un formato fcil de llenar que el experto puede usar para realizar su decisin (tabla 4.1).

Tabla 4.1. Tabla de decisin para las reglas objetivo. CANTIDAD A INVERTIR Pequea No Pequea Conservador No Pequea Conservador No Pequea No Pequea Agresivo Agresivo Conservador Agresivo Conservador Agresivo ESTADO ESTADO

PERSONAL FINANCIERO

CONSEJO

Cartera 1 Cartera 1 Cartera 2 Cartera 3 Cartera 4

Los factores de decisin para nuestras reglas se muestras en las etiquetas en el extremo superior de las primeras tres columnas. La
Mg. Abraham Gamarra Moreno

96

etiqueta en la ltima columna a la derecha es el consejo dado por el experto.

Reglas objetivo Podemos usar esta tabla para escribir nuestros objetivos. Si fuera muy grande la tabla, necesitaramos usar herramientas de induccin. Dado que esta tabla es pequea, se pueden escribir las reglas por simple inspeccin. Las siguientes reglas estn representadas por el siguiente seudo cdigo:

Regla 1 IF Cantidad de inversin del cliente 1000

THEN La sugerencia ES invertir el 100% en ahorros

Regla 2 IF Cantidad de inversin del cliente >= 1000 AND El estado personal del cliente sugiere \ una posicin conservadora AND El estado financiero del cliente sugiere \ una posicin conservadora THEN La sugerencia ES invertir el 100% en ahorros Regla 3 IF Cantidad de inversin del cliente >= 1000 AND El estado personal del cliente sugiere \ una posicin conservadora
Mg. Abraham Gamarra Moreno

97

AND El estado financiero del cliente sugiere \ una posicin agresiva THEN La sugerencia ES invertir el 60% en acciones, 30% en bonos y el 10% en ahorros Regla 4 IF Cantidad de inversin del cliente >= 1000 AND El estado personal del cliente sugiere \ una posicin agresiva AND El estado financiero del cliente sugiere \ una posicin conservadora THEN La sugerencia ES invertir el 20% en acciones, 40% en bonos y el 40% en ahorros Regla 5 IF Cantidad de inversin del cliente >= 1000 AND El estado personal del cliente sugiere \ una posicin agresiva AND El estado financiero del cliente sugiere \ una posicin agresiva THEN La sugerencia ES invertir el 100% en acciones Red de inferencia Incluso en los estados tempranos de un proyecto es til dibujar una red de inferencia de las reglas que se han hallado. La red de inferencia muestra las relaciones lgicas entre las informaciones representadas en las reglas (figura 4.1).

Mg. Abraham Gamarra Moreno

98

Cartera 1

Cartera 2

Cartera 3

Cartera 4

And Or And And And

Estado Inversin financiero = Agresivo Estado Inversin Estado personal = conservador Estado personal = Agresivo financiero = conservador

<

1000

>=1000

Figura 4.1. Red de inferencia de las reglas objetivo

Prueba de reglas Despus de formular las reglas del sistema, se deber probar el sistema. En general despus de formular cualquier nuevo conocimiento en un sistema experto, se deber inmediatamente probar el sistema. Consejo de diseo: Luego de la formulacin de cualquier nuevo conocimiento en un sistema experto, se deber inmediatamente probarlo, usando informacin especifica al nuevo conocimiento. Esto es particularmente importante durante las etapas tempranas del desarrollo del sistema cuando debe probarse exhaustivamente el sistema. Probar las reglas del sistema implica el correr varias veces el sistema para diferentes combinaciones de respuestas.
99

Mg. Abraham Gamarra Moreno

Orden de bsqueda Otro aspecto importante en la prueba del sistema, en las primeras etapas del proyecto, es el orden en que el sistema busca el conocimiento. La mayora de shells buscan reglas de competencia en el orden en que son ingresadas. En nuestro sistema esto implicara que la regla 1 es la que se debe buscar primero. Adems, la primera pregunta que el sistema debera realizar es que cantidad de dinero el cliente desea invertir. Por ello es necesario efectuar un buen ensamblaje de nuestros objetivos para que no se pierda tiempo en preguntas innecesarias cuando alguna pregunta clave del sistema podra estar dando resultados concretos.

Bsqueda exhaustiva versus bsqueda no exhaustiva Un sistema con encadenamiento hacia atrs se puede programar para que realice bsquedas exhaustivas o no exhaustivas. Una bsqueda exhaustiva continua buscando todas las reglas para alcanzar algn objetivo, incluso si el objetivo se ha establecido por el disparo de una de las reglas. Una bsqueda no exhaustiva se detiene despus de disparar slo una regla. El decidirse por alguna de estos procedimientos depende del tipo de sistema y del modo en que los expertos resuelvan los problemas en determinados campos. En nuestro caso, desearamos que si se descubre que el cliente tiene menos de $1000, entonces el sistema se detenga incluso cuando fueran posibles otras recomendaciones. La mayora de shells realizan por defecto una bsqueda no exhaustiva. Si nuestro problema fuera encontrar todas las recomendaciones de carteras posibles, entonces desearamos emplear tcnicas de bsqueda exhaustivas. Por ejemplo, si deseramos una lista de recomendaciones, y ordenarlas de acuerdo a un ranking asociado a
Mg. Abraham Gamarra Moreno

100

un grado de probabilidad, entonces seria necesario un tipo de bsqueda exhaustiva. En este caso, el sistema buscara los posibles valores para la cartera recomendada. Segn este procedimiento, un resultado que podra darse seria el siguiente:

Recomendacin de cartera de inversin 60 % stocks, 30 % bonos, 10 % ahorros 100 % de inversin en stocks 20 % stocks, 40 % bonos, 40 % ahorros 100 % de inversin en ahorros 4.2.4. TAREA 4: EXPANDIENDO EL SISTEMA

Probabilidad 90 % 85 % 70 % 60 %

En este punto nuestro sistema tiene cinco reglas y puede recomendar 4 carteras diferentes. Es totalmente funcional, pero no muy inteligente. El principal forma para mejorar la inteligencia de un sistema experto es expandir su conocimiento. Aqu, hay dos opciones disponibles: ampliando o profundizando el conocimiento del sistema. Se entiende por ampliar el conocimiento a ensear al sistema sobre problemas adicionales. En nuestro ejemplo, podemos ensearle otras mixturas de las carteras de inversiones. Este tipo de expansin es bastante fcil y usualmente reservada para ms adelante en el proyecto. La otra opcin de profundizar el conocimiento del sistema se entiende como: ensear ms acerca de los problemas ya conocidos. En nuestro ejemplo, deberamos ensearle como determinar las premisas de las reglas objetivo. Esto es una tcnica de expansin comnmente usada en las primeras etapas del proyecto. Para apreciar porque se da este caso, considere la siguiente respuesta al
Mg. Abraham Gamarra Moreno

101

sistema debido a la pregunta derivada de una de las reglas presentes en el conjunto de reglas actual: Sistema: Sugiere una posicin conservadora para el estado per-

sonal del cliente? Esto podra ser una pregunta difcil de contestar para el usuario porque requiere alguna especializacin en el problema. En general, durante el desarrollo entero del sistema basado en reglas, Ud. debera estar averiguando que puede expandirse en profundidad. Pregntese usted mismo (o aun mejor pregunte al usuario) si el usuario puede contestar eficazmente la pregunta planteada por el sistema. Si la respuesta es no, entonces aada conocimiento al sistema que fuerce a buscar ms informacin primitiva y fiable. En la actualidad, nuestro sistema tiene tres problemas que pueden ser expandidos en profundidad: La cantidad de inversin del cliente El estado personal del cliente El estado financiero del cliente La primera no necesita mayor expansin ya que el sistema requiere hacer una pregunta sobre la cantidad a invertir. Las otras, sin embargo, necesitan ser expandidas. Para lograrlo necesitamos consultar otra vez al experto. Consejo de diseo: Expanda un problema por vez. Esto permite al experto enfocarse en un slo problema y evita problemas comnmente encontrados cuando al experto se le pide dirigirle a mltiples problemas.
102

Mg. Abraham Gamarra Moreno

Expansin del estado personal Para expandir el estado personal tenemos dos preguntas para el experto, una para cada posible valor: conservador o agresivo. IC: Cmo Usted determina que el estado personal del cliente

tiene una posicin conservador? EA: Sugerira una posicin conservadora si el cliente es viejo o su

trabajo no es estable. Proporcionara la misma sugerencia si el cliente es joven, tiene trabajo estable, pero tiene hijos. Las dos heursticas se pueden representar por:

Regla 6 IF OR El cliente ES viejo El trabajo del cliente ES no estable una posicin conservadora Regla 7 IF AND AND El cliente ES joven El trabajo del cliente ES estable El cliente tiene \ nios una posicin conservadora

THEN El estado personal del cliente sugiere \

THEN El estado personal del cliente sugiere \

Ahora se tiene dos reglas de profundidad que conducen a una de las premisas de las reglas objetivos. La siguiente pregunta determina la posicin agresiva del cliente:
Mg. Abraham Gamarra Moreno

103

IC:

Cmo Usted determina que el estado personal del cliente

tiene una posicin agresiva? EA: Sugerira una posicin agresiva si el cliente es joven, su tra-

bajo es estable, pero no tiene hijos. La nueva informacin es capturada en la siguiente regla:

Regla 8 IF AND AND El cliente ES joven El trabajo del cliente ES estable El cliente tiene \ no nios una posicin agresiva De esta discusin con el experto se obtuvieron diferentes reglas para soportar el proceso de inferencia en profundidad. Sin embargo, tambin descubrimos nuevos problemas que necesitaran ser explorados: 1. Edad del cliente: Joven, viejo 2. Trabajo del cliente: Estable, no estable 3. Tiene hijos el cliente: Verdadero o falso Uno de ellos puede ser contestado directamente y no tiene que ser explorado. Sin embargo, expandiremos los otros dos, uno por vez.

THEN El estado personal del cliente sugiere \

Expansin de la edad Para expandir la edad preguntamos al experto: IC: EA: A que punto Usted considera a alguien viejo? 40 aos
104

Mg. Abraham Gamarra Moreno

IC: EA:

A que punto Usted considera a alguien joven? Alguien menor de 40 aos

De estas preguntas nosotros podemos escribir las siguientes reglas:

Regla 9 IF Edad del cliente < 40

THEN El cliente ES joven Regla 10 IF Edad del cliente >= 40

THEN El cliente ES viejo

Antes de continuar con la expansin de nuestro sistema, echemos una mirada a una peligro que comnmente caen muchos diseadores del sistema.

Problema con el else Muchos ingenieros del conocimiento tienen instruccin en la programacin tradicional. Antes de pasar al campo de los ingenieros de conocimiento, estos programadores fueron cuadriculados en la importancia de escribir procedimientos concisos: puede ser echo con una lnea de cdigo en vez de dos. Cuando desarrollamos un sistema experto no se esta codificando procedimientos sino codificando conocimientos. A menudo, intentar comprimir dos piezas de conocimiento en una regla puede causar problemas. Estos problemas se encuentran a menudo con el uso de la sentencia ELSE.
Mg. Abraham Gamarra Moreno

105

Para ilustrar este punto, consideremos el problema de la edad. Con la informacin proporcionada por el experto sobre este problema se puede capturar esta situacin como: IF Edad del cliente < 40 El cliente ES viejo

THEN El cliente ES joven ELSE

Superficialmente la regla no tiene ningn error y representa lgicamente el conocimiento del experto. Sin embargo, asumamos que usamos esta regla pero despus decidimos aadir la siguiente regla que introduce una nueva categora de edad:

IF AND

Edad del cliente < 50 Edad del cliente >= 40

THEN El cliente ES de-edad-media

Ahora, si nosotros encontramos una persona cuya edad es de 45, nuestro sistema concluir que l es tanto viejo como de edad media. El disparo de estas dos reglas es el resultado de las inconsistencias de las conclusiones. Reconocemos que la regla que contiene la parte ELSE siempre se dispara. Para evitar las inconsistencias del sistema es necesario llevar la cuenta de las reglas que usan ELSE. A menudo el uso de ELSE dificulta el mantenimiento del sistema por lo que debe evitar su uso. Consejo de diseo: Evitar la sentencia ELSE siempre que sea posible.

Expandiendo la estabilidad del trabajo


Mg. Abraham Gamarra Moreno

106

Para expandir la estabilidad hacemos dos preguntas al experto: IC: EA: Cmo Usted determina la estabilidad del trabajo del cliente? Usualmente considero dos cosas: los aos de servicio del

cliente en su actual compaa y la tasa de despidos que la compaa esta experimentando. Por ejemplo, si l ha trabajo en la compaa entre 3 y 10 aos, y la tasa de despidos es bajo, entonces asumo las cosas como estable. De hecho, si l ha trabajado all por ms de 10 aos, siento que las cosas estn bien. De estas dos respuestas escribimos las siguientes reglas:

Regla 11 IF Aos de servicio del cliente ES 10 aos o ms THEN El trabajo del cliente ES estable Regla 12 IF Aos de servicio del cliente ES entre 3 y 10 aos AND La tasa de despidos temporal ES baja

THEN El trabajo del cliente ES estable

Continuamos la discusin con el experto y le preguntamos: IC: te? EA: Si los aos de servicio del cliente es de 3 a 10 aos y la tasa Cmo Usted determina la inestabilidad del trabajo del clien-

de despidos es alta, entonces asumo las cosas como inestables. De echo, si l ha trabajado all por menos de 3 aos, siento que las cosas no son realmente estables.
107

Mg. Abraham Gamarra Moreno

De estas respuestas podemos escribir las siguientes dos reglas:

Regla 13

IF Aos de servicio del cliente ES entre

3 y 10 aos

AND

La tasa de despidos temporal ES alta

THEN El trabajo del cliente ES no estable

Regla 14

IF Aos de servicio del cliente ES menor

que 3 aos

THEN El trabajo del cliente ES no estable

Red de inferencia del estado personal

Podemos aadir las nuevas reglas a la red original de inferencia. La figura 4.2 muestra la parte de esta nueva red enfocado al estado personal del cliente.
108

Mg. Abraham Gamarra Moreno

Estado personal = conservador

Estado personal = Agresivo

Or

And

And

Cliente es viejo

Trabajo no estable

Cliente es joven

Trabajo estable

Cliente tiene hijos

Cliente no tiene hijos

Or >=40 And Servicio < 3

< 40 And Servicio > 10 Tasa de despidos alto Servicio 3 - 10 Tasa de despidos bajo

Figura 4.2. Red de inferencia para el estado personal Expandiendo el estado financiero Para expandir el estado financiero del cliente preguntamos al experto: IC: Cmo Usted sabe el estado financiero del cliente para suge-

rir una posicin conservadora? EA: Sugerira una posicin conservadora si el total de activos es

menor que su total de pasivos. Tambin, si su total de activos excede su total de pasivos pero son menor ... pienso ... aproximadamente dos veces sus pasivos ... y ... l tiene nios, entonces otra vez recomiendo una posicin conservadora. De estas respuestas podemos escribir las siguientes dos reglas:

Regla 15 IF Total de activos < Total de pasivos


Mg. Abraham Gamarra Moreno

109

THEN El estado financiero del cliente sugiere \ una posicin conservadora Regla 16 IF Total de activos > Total de pasivos AND Total de activos < 2 * Total de pasivos AND El cliente tiene \ nios THEN El estado financiero del cliente sugiere \ una posicin conservadora

Continuando nuestra discusin, preguntamos lo siguiente: IC: Cmo Usted sabe el estado financiero del cliente para suge-

rir una posicin agresiva? EA: Sugerira una posicin agresiva si el total de activos excede al

total de pasivos por un factor igual a 2. Adems, si su total de activos excede su total de pasivos, pero fue menor a dos veces esta cantidad, y l no tiene nios, entonces otra vez recomiendo una posicin agresiva. De esta discusin podemos escribir las siguientes reglas:

Regla 17 IF Total de activos > 2 * Total de pasivos una posicin agresiva Regla 18 IF AND AND Total de activos > Total de pasivos Total de activos < 2 * Total de pasivos El cliente tiene \ no nios
110

THEN El estado financiero del cliente sugiere \

Mg. Abraham Gamarra Moreno

THEN El estado financiero del cliente sugiere \ una posicin agresiva Red de inferencia del estado financiero Para mantener el registro del conocimiento recolectado, aadimos estas nuevas reglas a la red de inferencia. La parte asociada con el estado financiero es mostrada en la figura 4.3.

Estado financiero = conservador

Estado financiero = Agresivo

Or

And

Total activo < total pasivo Total activo < 2 * total pasivo

And Cliente no tiene hijos Cliente tiene hijos Total activo > 2 * total pasivo Total activo > total pasivo

Figura 4.3. Red de inferencia para el estado financiero 4.2.5. TAREA 5: REFINAR EL SISTEMA

En este punto se tiene ya un sistema completamente funcional que cumple con los objetivos iniciales. Pero se pueden aadir caractersticas adicionales que mejoren tanto el desempeo como el mantenimiento.

USO DE VARIABLES PARA NMEROS Frecuentemente durante el desarrollo de un sistema experto se necesitan emplear nmeros dentro de una regla. As en nuestro proMg. Abraham Gamarra Moreno

111

blema el experto consider una edad de 40 aos a ms para ser viejo. Se captur esta heurstica en la REGLA 10 donde este nmero se usa explcitamente dentro de la regla. En un sistema grande basado en reglas este mismo nmero puede aparecer muchas veces a travs de la base de conocimiento. Si luego existiera la necesidad de cambiar este nmero, ser necesario ubicar cada regla y hacer la correccin, esta tarea puede ser complicada y dificulta el mantenimiento del sistema. Un mejor enfoque es el de emplear variables para reemplazar los nmeros usados en las reglas, a las variables se le asigna un valor dentro de la porcin de inicializacin del programa. Este enfoque le permite ubicar fcilmente la variable que necesita ajuste y requiere un cambio solamente en la asignacin del valor a la variable y no en las reglas. En nuestro sistema ejemplo, los nmeros se emplearon para los siguientes elementos: Edad del cliente. Aos de servicio del cliente Relacin entre activos y pasivos Se puede reemplazar el uso explcito de los nmeros usados en estos asuntos con las siguientes variables y las asignaciones iniciales. As tenemos:

EDAD DEL CLIENTE Inicializar VEJEZ = 40 Regla 9 IF Edad del cliente < VEJEZ
112

Mg. Abraham Gamarra Moreno

THEN El cliente ES joven AOS DE SERVICIO DEL CLIENTE Inicializar SERVICIO_LARGO = 10 SERVICIO_CORTO = 3 Regla 11 IF Aos de servicio del cliente >= SERVICIO_LARGO THEN El trabajo del cliente ES estable ACTIVOS Y PASIVOS Inicializar FACTOR DE SEGURIDAD = 2 Regla 17 IF Total de activos > FACTOR DE SEGURIDAD * Total de pasivos THEN El estado financiero del cliente sugiere \ una posicin agresiva RED DE SEGURIDAD INTELIGENTE En las aplicaciones de programacin tradicional, el usuario probaba el cdigo para todas las posibles combinaciones de entrada para verificar su operacin. Esto es posible porque la cantidad de datos de entrada esta frecuentemente limitada a un nmero finito de posibilidades. Sin embargo, cuando se desarrolla un sistema experto, generalmente nos encontramos con un nmero grande de posibles combinaciones de entrada, que no permiten la prueba exhaustiva del sistema. En esta situacin, puede existir la posibilidad que el sistema no sea capaz de alcanzar una recomendacin final.
113

Mg. Abraham Gamarra Moreno

Para manejar este problema, se necesita desarrollar una red de seguridad para el sistema. Una red de seguridad es simplemente un curso de accin que el sistema toma si este falla al tratar de alcanzar una recomendacin. Este puede ser tan complejo como cargar otra base de conocimientos que tratara de corregir la situacin, o, tan simple, como una sentencia por defecto que le muestre al usuario su falla. Otro enfoque que podra elegirse es elaborar una red de seguridad inteligente. Por inteligente se entiende que le sistema le dice al usuario que se encontr algo que podra interesarle, aunque la recomendacin final no se alcanzo. La forma ms simple de alcanzar esto es a travs de la agenda de metas. Se necesita incluir una meta que el sistema persiga solo si la meta primaria no fue alcanzada. Esta meta deber ser la conclusin de una regla simple que se garantice se dispare y muestre la informacin apropiada. La premisa de la regla puede ser un hecho simple, previamente afirmada en la memoria de trabajo, el que acta slo para disparar la regla. Para nuestro sistema ejemplo, podemos elegir informar al usuario acerca del estado personal y financiero del cliente en la red de seguridad. Para cumplir con esto, primero tendramos que hacer el siguiente ajuste a nuestra agenda de metas: 1. La sugerencia de Portafolio ES QUE 2. Visualizar por defecto La primera meta, la que fue previamente desarrollada, se busca primero. Se necesita estar seguro que la segunda meta ser perseguida slo en el caso que la primera meta no se alcance.
114

Mg. Abraham Gamarra Moreno

Es necesario escribir la regla que visualice el texto por defecto al usuario:

Regla 18 IF Recomendacin se desconoce

THEN Visualizar por defecto AND DISPLAY TEXTO POR DEFECTO

La premisa de esta regla debe ser afirmada en la memoria de trabajo cuando la sesin comience usando alguna forma de la sentencia INIT (inicializar). Cuando esta regla se dispara, el texto asociado con la sentencia DISPLAY TEXTO POR DEFECTO debe ser mostrada al usuario. El texto debe informar al usuario que el sistema no logr alcanzar una recomendacin y para dar los hallazgos acerca del estado del cliente: DISPLAY TEXTO POR DEFECTO

Lo siento pero no pude determinar un portafolio que cumpla las necesidades del cliente. Sin embargo sobre la base del estado personal del cliente podra recomendar [Sugerencias al estado personal del cliente] y en el estado financiero [Sugerencias al estado financiero del cliente]. Cuando se visualice esto al usuario, los valores encontrados para Sugerencias al estado personal del cliente y Sugerencias al estado financiero del cliente debera presentarse. Aunque le sistema no tuvo xito, el usuario se puede beneficiar al obtener esta informacin.
115

Mg. Abraham Gamarra Moreno

PROVEER HALLAZGOS PRINCIPALES Algo que es cmodo para el usuario durante la consulta es mantenerlo informado acerca de los hallazgos principales y direcciones que el sistema toma. Existen varios lugares en el sistema donde se pueden elegir visualizar los hallazgos intermedios. Por ejemplo, si queremos visualizar la valoracin al estado personal del cliente. Sera necesario entonces aadir una sentencia a cada regla que concluya en este asunto, la sentencia debe mostrar la informacin adecuada. As se considera para la regla 6:

Regla 6 IF OR El cliente ES viejo El trabajo del cliente ES no estable

THEN El estado personal del cliente sugiere \ una posicin conservadora AND NAL DEL CLIENTE DISPLAY LA VALORACIN DEL ESTADO PERSO-

DISPLAY LA VALORACIN DEL ESTADO PERSONAL DEL CLIENTE Despus de considerar los asuntos personales del cliente, podra sugerir [Sugerencias al estado personal del cliente]. Continuare ahora con los aspectos financieros del cliente. La visualizacin no solo presenta los hallazgos actuales, tambin muestra la direccin que el sistema tomar prximamente.
116

Mg. Abraham Gamarra Moreno

4.2.6.

TAREA 6: DISEO DE INTERFAZ

El usuario tiene contacto con el sistema a travs de la interfaz del sistema. Muchas veces la aceptacin del sistema depende en como la interfaz se acomoda a las necesidades del usuario, los diferentes shells ofrecen ayuda en esta tarea. Podemos considerar varios aspectos que se deben considerar en esta tarea.

Visualizacin introductoria Cada sistema experto debera tener una visualizacin introductoria. Como mnimo se debera explicar acerca del propsito general del sistema. En el sistema de ejemplo deberamos visualizar una explicacin al usuario que le diga que el sistema dar una recomendacin de portafolio que rena las necesidades del cliente. Tambin podra adicionalmente explicar como el sistema llevar a cabo la tarea primaria, En nuestro caso, se explicar que el sistema explorar tanto asuntos personales como financieros para arribar a una recomendacin.

Preguntas adecuadas La mayora de los shells automticamente generan preguntas a partir de las primitivas encontradas en las reglas. Por ejemplo, en el aspecto de los Activos totales el sistema podra preguntar: SISTEMA: Activos Totales? Este tipo de preguntas a parte de ser fras puede confundir al usuario llevndolos a contestarlas equivocadamente. Ante tal pregunta, el usuario podra preguntarse Qu activos considero?, o, Ingreso las cantidades en dlares?.
117

Mg. Abraham Gamarra Moreno

La mayora de los shells permiten colocar las preguntas adecuadas al usuario, de tal manera que se reciban respuestas confiables. Considere el siguiente ejemplo: SISTEMA: Por favor dame la cantidad en dlares total de los activos que el cliente posee. Incluyendo la tenencia de cuentas bancarias, acciones, bonos, inmuebles, etc. Por favor ingrese la cantidad en dlares sin comas, por ejemplo 150000.

INDICACIONES DE PANTALLA Es importante dar instrucciones claras de cada pantalla presentada al usuario. Muestre claramente cualquier opcin disponible para la pantalla actual y las indicaciones de su uso. A continuacin se ilustra como dar instrucciones de pantallas claras.

Continuacin de la sesin Aqu se considera la tarea de continuar la sesin siguiendo lo que se muestra en algunos textos o grficos. Por ejemplo si se va a emplear la tecla ENTRAR o alguna otra tecla para continuar la sesin deberamos colocar, una descripcin corta como continuar. As por ejemplo Por favor presiones ENTRAR para continuar la sesin.

Respuesta a preguntas con mltiples respuestas Se puede ayudar al usuario cuando se tengan preguntas con varias opciones de respuesta. As se podra mostrar un men de opciones, por ejemplo
118

Mg. Abraham Gamarra Moreno

SISTEMA: Cul es el nivel de educacin del cliente? Seleccione tantos como sea necesario y presione F4 para continuar. Primaria Secundaria Bachillerato Ocupacional Tcnico Universitaria Maestra Ph. D. En este caso se le menciona al usuario que puede seleccionar ms de una opcin y lo que debe hacer para continuar.

Fin de sesin Cuando se visualice la pantalla final se presente al usuario, se debera explicar que opciones estn disponibles y como seleccionarlas. Las opciones tpicas son: SALIR COMO sin. QUE SI Ver que efectos en la presente recomendacin tendra el cambiar las respuestas previas. GUARDAR REINICIAR Almacenar la sesin actual Reiniciar la sesin
119

Parar/Salir del sistema. Obtener la lnea de razonamiento que llevo a la conclu-

Mg. Abraham Gamarra Moreno

Considere por ejemplo lo siguiente SISTEMA: Para salir del sistema presione F10. Si se desea reiniciar la sesin presione F3. Con instrucciones simples como estas el usuario, el usuario sabe que puede hacerse, y evita la frustracin obvia que resultara cuando las opciones de control no se presentan.

Visualizacin de Conclusiones La visualizacin de las conclusiones presenta al usuario los hallazgos del sistema. Para nuestro ejemplo, presentaremos el portafolio recomendado para el cliente. En muchas aplicaciones esta visualizacin limitada ser suficiente. Pero en otros casos se pude necesitar presentar un reporte ms detallado acerca del razonamiento detrs de la recomendacin. Una caracterstica de los sistemas expertos es la habilidad para explicar COMO (WHY) se derivaron las recomendaciones. La mayora de los shells ofrecen respuestas que muestras detalladamente todos los pasos seguidos por el sistema. En algunas aplicaciones estos detalles son necesarios para que los usuarios acepten las recomendaciones finales. Sin embargo, en otros casos, los usuarios estarn satisfechos con una visualizacin de alto nivel de los hallazgos importantes que llevaron a la recomendacin final. Para comodidad del usuario que slo requiere una visualizacin de alto nivel del razonamiento, el sistema podra mostrar una sugerencia que permita esta visualizacin de los hallazgos importantes. Estos hallazgos importantes son asuntos importantes que considera el sistema para determinar la recomendacin final. Para nuestro sistema podramos mostrar
120

Mg. Abraham Gamarra Moreno

DISPLAY RECOMENDACIN FINAL Recomendara que el cliente invierta el dinero en [Sugerencia del Portafolio]. Recomiendo est inversin porque encontr que el estado personal del cliente sugiere [Sugerencia al estado personal del cliente] y el estado financiero del cliente sugiere [Sugerencia al estado financiero del cliente]. Aqu el usuario recibe una recomendacin final y razones de alto nivel de porque la recomendacin se hizo.

4.2.7.

TAREA 7: EVALUACIN DEL SISTEMA

En este punto nuestro sistema prototipo esta completo. Todas las reglas se codifican en el sistema y se asume que la interfaz se ha diseado de acuerdo a las recomendaciones dadas en las secciones previas. Tambin se asume que el sistema ha pasado satisfactoriamente las pruebas desarrolladas con cada expansin. El paso que sigue es evaluar el sistema usado en el caso de pruebas reales. Este proceso comienza preguntndole al experto por uno de los casos pasados. Se asume que el caso involucra un cliente de 30 aos de edad, ha estado en una compaa 5 aos con una tasa de despido temporal pequea, tiene dos hijos, y quiere invertir $50,000. El cliente tambin tiene activos totales de $100,00 y pasivos totales de $20,000. Para este caso el experto recomend el Portafolio 2: 60% en acciones, 30% en bonos y 10% en ahorros. A continuacin se muestran las reglas para implementar el sistema: INIT INIT FACTOR DE SEGURIDAD = 2 VEJEZ = 40
121

Mg. Abraham Gamarra Moreno

INIT INIT INIT

SERVICIO_LARGO = 10 SERVICIO_CORTO = 3 Recomendacin se desconoce

La sugerencia ES Visualizar por defecto RULE IF THEN AND Visualizar por defecto Recomendacin se desconoce Visualizar por defecto DISPLAY TEXTO POR DEFECTO

-----------------------------------------Reglas de Sugerencia de Inversin -----------------------------------------RULE IF THEN AND RULE IF Sugerencia de 100% de inversin en el mercado de dinero poco dinero Cantidad de inversin del cliente DISPLAY RECOMENDACIN FINAL Sugerencia de 100% de inversin en el mercado de dinero Cantidad de inversin del cliente >= 1000 una posicin conservadora AND THEN AND El estado financiero del cliente sugiere \ una posicin conservadora La sugerencia ES invertir el 100% en ahorros DISPLAY RECOMENDACIN FINAL AND El estado personal del cliente sugiere \ 1000 La sugerencia ES invertir el 100% en ahorros

Mg. Abraham Gamarra Moreno

122

RULE IF

Sugerencia de invertir el 60% en acciones, 30% en bonos y el 10% en el mercado de dinero Cantidad de inversin del cliente >= 1000 una posicin conservadora

AND El estado personal del cliente sugiere \ AND THEN AND RULE IF El estado financiero del cliente sugiere \ una posicin agresiva La sugerencia ES invertir el 60% en acciones, 30% en bonos y el 10% en ahorros DISPLAY RECOMENDACIN FINAL Sugerencia de invertir el 20% en acciones, 40% en bonos y el 40% en el mercado de dinero Cantidad de inversin del cliente >= 1000 posicin agresiva AND THEN AND RULE IF El estado financiero del cliente sugiere \ una posicin conservadora La sugerencia ES invertir el 20% en acciones, 40% en bonos y el 40% en ahorros DISPLAY RECOMENDACIN FINAL Sugerencia de invertir el 100% en acciones Cantidad de inversin del cliente >= 1000 una posicin agresiva AND THEN AND El estado financiero del cliente sugiere \ una posicin agresiva La sugerencia ES invertir el 100% en acciones DISPLAY RECOMENDACIN FINAL AND El estado personal del cliente sugiere \ una

AND El estado personal del cliente sugiere \

-----------------------------------------Mg. Abraham Gamarra Moreno

123

Determinar el estado personal del cliente -----------------------------------------RULE IF OR THEN AND DEL CLIENTE RULE IF AND AND THEN AND DEL CLIENTE RULE IF AND AND THEN AND DEL
Mg. Abraham Gamarra Moreno

Inversiones conservadoras personales por la vejez o trabajo no estable El cliente ES viejo El trabajo del cliente ES no estable El estado personal del cliente sugiere \ una posicin conservadora DISPLAY LA VALORACIN DEL ESTADO PERSONAL

Inversiones conservadoras personales por ser joven y tener nios El cliente ES joven El trabajo del cliente ES estable El cliente tiene \ nios El estado personal del cliente sugiere \ una posicin conservadora DISPLAY LA VALORACIN DEL ESTADO PERSONAL

Inversiones agresivas personales por ser joven y no tener nios El cliente ES joven El trabajo del cliente ES estable El cliente tiene \ no nios El estado personal del cliente sugiere \ una posicin agresiva DISPLAY LA VALORACIN DEL ESTADO PERSONAL

124

CLIENTE -----------------------------------------Determinar el estado financiero del cliente -----------------------------------------RULE IF THEN AND DEL CLIENTE RULE IF AND AND THEN AND DEL CLIENTE RULE IF AND Inversin financiera agresiva porque existen suficientes activos y no se tiene nios Total de activos > Total de pasivos Total de activos < FACTOR DE SEGURIDAD * Total de pasivos
Mg. Abraham Gamarra Moreno

Inversin financiera conservadora porque los pasivos exceden a los activos Total de activos < Total de pasivos El estado financiero del cliente sugiere \ una posicin conservadora DISPLAY LA VALORACIN DEL ESTADO PERSONAL

Inversin financiera conservadora porque no existen suficientes activos para los nios Total de activos > Total de pasivos Total de activos < FACTOR DE SEGURIDAD * Total de pasivos El cliente tiene \ nios El estado financiero del cliente sugiere \ una posicin conservadora DISPLAY LA VALORACIN DEL ESTADO PERSONAL

125

AND THEN AND DEL

El cliente tiene \ no nios El estado financiero del cliente sugiere \ una posicin agresiva DISPLAY LA VALORACIN DEL ESTADO PERSONAL CLIENTE

RULE IF THEN AND DEL

Inversin financiera agresiva porque existen suficientes activos Total de activos > FACTOR DE SEGURIDAD * Total de pasivos El estado financiero del cliente sugiere \ una posicin agresiva DISPLAY LA VALORACIN DEL ESTADO PERSONAL CLIENTE

-----------------------------------------Determinar la edad del cliente -----------------------------------------RULE IF THEN RULE IF THEN El cliente ES joven Edad del cliente < VEJEZ El cliente ES joven El cliente ES viejo Edad del cliente >= VEJEZ El cliente ES viejo

-----------------------------------------Determinar la estabilidad del trabajo del cliente -----------------------------------------Mg. Abraham Gamarra Moreno

126

RULE

El trabajo ES estable a causa de los varios aos de servicio del cliente

IF THEN

Aos de servicio del cliente >= SERVICIO_LARGO El trabajo del cliente ES estable

RULE

El trabajo ES estable a causa de los aos de servicio moderado y baja tasa de despido tempo-

ral en la organizacin IF AND AND THEN Aos de servicio del cliente >= SERVICIO_CORTO Aos de servicio del cliente < SERVICIO_LARGO La tasa de despidos temporal ES baja El trabajo del cliente ES estable

RULE

El trabajo ES no estable a causa de los aos de servicio moderado y alta tasa de despido tempo-

ral en la organizacin IF AND AND THEN Aos de servicio del cliente >= SERVICIO_CORTO Aos de servicio del cliente < SERVICIO_LARGO La tasa de despidos temporal ES alta El trabajo del cliente ES no estable

RULE IF THEN

El trabajo ES no estable Aos de servicio del cliente < SERVICIO_CORTO El trabajo del cliente ES no estable

El sistema tambin incluye texto (que no se muestra) para mostrar la introduccin, preguntas, visualizaciones intermedias, y la visualiMg. Abraham Gamarra Moreno

127

zacin de conclusiones. La siguiente interaccin entre el sistema experto y el usuario ilustra la operacin del sistema:

PASO 1 SISTEMA: BIENVENIDO AL SISTEMA EXPERTO DE ASESORA DE INVERSIN Intentar determinar el portafolio de inversin para su cliente. Le har preguntas tanto personales como financieras acerca del cliente. A partir de esta informacin deber ser capaz de determinar una inversin ya sea conservadora o agresiva. Por favor presione ENTRAR para comenzar la sesin USUARIO: ENTRAR.

PASO 2 SISTEMA: Cunto dinero en dlares el cliente quiere invertir? Por favor ingrese la cantidad en dlares sin comas, por ejemplo, 10000. USUARIO: ENTRAR.

PASO 3 SISTEMA: Cul es la edad del cliente? USUARIO: 30

PASO 4
Mg. Abraham Gamarra Moreno

128

SISTEMA: Cuntos aos ha estado el cliente con la compaa actual? USUARIO: 5

PASO 5 SISTEMA: La tasa de despidos temporales en la organizacin es: Baja Alta USUARIO: Baja COMENTARIO: El usuario puede tener problemas al responder esta pregunta. Este es un problema tpico encontrado cuando se esta ejecutando el sistema las primeras veces en el proyecto. Sera necesario preguntar al experto cmo determina si los despidos temporales son bajos o altos, y aadir las reglas apropiadas a nuestro sistema PASO 6 SISTEMA: El cliente: tiene nios no tiene nios USUARIO: tiene nios

PASO 7
129

Mg. Abraham Gamarra Moreno

SISTEMA: Despus de considerar los aspectos personales del cliente, le sugiero una posicin conservadora. Ahora continuar con el anlisis de los aspectos financieros. Por favor presione ENTRAR para continuar la sesin USUARIO: ENTRAR

PASO 8 SISTEMA: Por favor dame la cantidad en dlares total de los activos que el cliente posee. Incluyendo la tenencia de cuentas bancarias, acciones, bonos, inmuebles, etc. Por favor ingrese la cantidad en dlares sin comas, por ejemplo, 150000. USUARIO: 100000

PASO 9 SISTEMA: Por favor dame la cantidad en dlares total de los pasivos que el cliente tiene. Incluyendo elementos como prstamos, hipotecas, etc. Por favor ingrese la cantidad en dlares sin comas, por ejemplo, 150000. USUARIO: 20000
130

Mg. Abraham Gamarra Moreno

PASO 10 SISTEMA: Despus de considerar los aspectos financieros del cliente, le sugiero una posicin agresiva. Ahora continuar con el anlisis de los aspectos financieros. Por favor presione ENTRAR para continuar la sesin. USUARIO: ENTRAR

PASO 11 SISTEMA: Recomendara que el cliente invierta el dinero en 60% de acciones, 30% en bonos y 10% en ahorros. Las razones principales por la que recomiendo esta inversin son porque se ha encontrado que el estado personal del cliente sugiere una posicin conservadora y el estado financiero sugiere una posicin agresiva. Para salir del sistema presione F10. Si gusta reiniciar la sesin presione F3.

Revisin de la sesin Lo primero que se debera observar que el sistema de la misma recomendacin que la hecha por el experto. Obtener un acuerdo entre los hallazgos del sistema y lo que dice el experto es uno de los asuntos crticos cuando se evala un sistema experto. Para un estudio de evaluacin real se probarn varios casos.
131

Mg. Abraham Gamarra Moreno

Otro aspecto que se debe notar en esta evaluacin es que el sistema result cmodo para el usuario a travs de toda la sesin.

Aspectos futuros Luego de tener este pequeo prototipo, se deberan extender sus capacidades. Por ejemplo se puede codificar el conocimiento en portafolios adicionales. O, se podra expandir el sistema para recomendar medios de inversin especfica dentro de cada una de las categoras de inversin general. La facilidad con la que estn expansiones se pueda realizar depender mucho de la flexibilidad del diseo del prototipo.

Recomendar Portafolios Adicionales Si se quiere considerar portafolios adicionales se requiere escribir reglas meta adicionales. No se necesitarn metas adicionales ya que el sistema ahora tiene una sentencia meta que es variable. Cada nueva regla meta que se ingrese debe recomendar uno de los nuevos portafolios. Las reglas meta actuales, consideran al recomendar un portafolio dos aspectos principales, el estado personal y financiero del cliente. Las reglas metas usan estos dos aspectos con los valores de conservadora y agresiva. Para ser capaz de distinguir entre portafolios adicionales, se deber expandir los valores introduciendo modificadores. Por ejemplo, se pueden usar valores como: conservadora ligeramente, conservadora moderadamente, y muy conservadora. Si se toma en cuenta estos valores, ser necesario desarrollar un conjunto de reglas ms profundas que podran inferir estos nuevos valores modificados.
132

Mg. Abraham Gamarra Moreno

Otro enfoque que se podra tomar al modificar las reglas meta existentes para incluir los portafolios adicionales sera el de aadir premisas adicionales. Por ejemplo, podramos considerar otros asuntos tales como los objetivos de inversin del cliente, periodo de inversin, o an condiciones financieras mundiales. Para este enfoque ser necesario desarrollar tambin un conjunto de reglas ms profundas que podran inferir estos nuevos valores modificados. En general, cuando se expanda el sistema para considerar metas adicionales (pero similares), se debe observar primero por las formas en la que se puede modificar las reglas meta presentes. Las modificaciones usualmente tomarn la forma de valores adicionales para los aspectos presentes, y/o la adicin nuevos aspectos. Estos tipos de modificaciones se ilustran en la siguiente regla:

IF AND AND

Estado personal del cliente valor nuevo Estado personal del cliente valor nuevo Nuevo aspecto nuevo portafolio Recomendacin de medios de inversin

THEN La sugerencia de portafolio ES

Se puede expandir el sistema para escoger el medio de inversin con cada categora de inversin general modificando primero la agenda meta de tal forma que esta tarea siga naturalmente la seleccin del portafolio. Esta modificacin se ilustra en la siguiente agenda meta, con la adicin de la metas multivalor Sugerencia de Medio: La sugerencia de Portafolio ES QUE 1.1. La sugerencia del medio ES QUE
Mg. Abraham Gamarra Moreno

133

Visualizar por defecto

Las reglas meta escritas para esta nueva meta (ejemplo, 1.1.) necesitarn informacin acerca de la recomendacin de portafolio. Para ello, primero se debe modificar las reglas del sistema y capturar las categoras de inversin general en una sentencia simblica multivalor y el porcentaje a ser invertido como se observa en la modificacin de la REGLA1: IF Cantidad de inversin del cliente 1000

THEN La sugerencia de portafolio ES invertir 100% en ahorros AND AND Categora de Inversin ES ahorros Porcentaje_de_ahorros = 100 Se puede entonces escribir las reglas en la siguiente forma general para determinar los medios de inversin especficos. IF AND Categora de Inversin ES ... .... .... THEN Sugerencia del medio ES ....

Las premisas dentro de estas reglas podra contener asuntos que pueden distinguir entre los varios medios dentro de cada categora. La cantidad actual a invertirse en algn medio sera decido usando informacin de la cantidad del total de la inversin y el porcentaje de la inversin para la categora de inversin general, tal como Porcentaje de ahorros.
134

Mg. Abraham Gamarra Moreno

4.3. RESUMN

DEL

DISEO

DE

UN

SISTEMA

CON

ENCADENAMIENTO HACIA ATRS El proceso de diseo de un Sistema con Encadenamiento hacia atrs es altamente cclico, donde el conocimiento se recolecta del experto, es codificado, es probado, luego refinado a travs interacciones adicionales con el experto. Existen algunos elementos claves para este proceso de diseo: El diseo de un sistema experto con encadenamiento hacia atrs es un proceso altamente iterativo. El sistema debera probarse inmediatamente despus de la introduccin de nuevas reglas. El sistema debera expandirse en un aspecto a la vez. Una tabla de decisin puede emplearse para adquirir fcilmente el conocimiento para la toma de decisiones del experto. El uso de la sentencia ELSE puede ocasionar problemas de mantenimiento del sistema. Un rbol de inferencia brinda un registro grfico de las reglas recolectadas. Los sistemas con encadenamiento hacia atrs pueden estar diseados para desarrollar bsqueda exhaustiva o no exhaustiva. Para las reglas que usan nmeros para las operaciones de relacin, mantengan los nmeros en la forma de variable que se le asignan en una seccin de inicializacin del programa. Es importante que una interfaz se disee para cumplir con las necesidades del usuario.

Mg. Abraham Gamarra Moreno

135

Resumen El diseo de sistemas basado en reglas con encadenamiento hacia atrs primero toma la conclusin de la regla y para saber si esta es verdadera, debe verificar que sus condiciones sean verdaderas. Indicadores de logro El lector es capaz de implementar un sistema basado en reglas con encadenamiento hacia atrs. Bibliografa Recomendada Durkin J. Expert Systems. USA: Ed. Macmillan; 1994.

Nexo La siguiente unidad acadmica analiza el diseo de sistemas basado en reglas con encadenamiento hacia adelante. Actividad Muestre un ejemplo que utilice encadenamiento hacia atrs. Auto evaluacin formativa Encuentre la solucin a los siguientes problemas:

PROBLEMA UNO Realice un sistema basado en reglas con encadenamiento hacia atrs que permita sugerir a un usuario uno de tres lugares tursticos que existen en el pas, teniendo en cuenta sus preferencias.

PROBLEMA DOS
136

Mg. Abraham Gamarra Moreno

Realice un sistema basado en reglas con encadenamiento hacia atrs que permita sugerir a un usuario uno de tres lenguajes de programacin, teniendo en cuenta sus necesidades.

Mg. Abraham Gamarra Moreno

137

UNIDAD ACADMICA 5 DISEO DE SISTEMAS BASADO EN REGLAS CON ENCADENAMIENTO HACIA ADELANTE

Esta gua permite mostrar una visin del diseo bsico y el proceso de desarrollo de una base de conocimiento con diagramas de dependencia. Las etapas para desarrollar un Sistema Basado en el Conocimiento (SBC) con diagramas de dependencia es: Etapa 1: Aislar el rea para desarrollar el SBC. Etapa 2: Precisar el problema del rea designada para el desarrollo del SBC. Etapa 3: Crear un diagrama de dependencia. Etapa 4: Crear tablas de decisin. Etapa 5: Escribir las reglas IF-THEN.
Mg. Abraham Gamarra Moreno

138

Etapa 6: Construir la interface de usuario.

5.1. ETAPA 1: AISLAR EL REA PARA DESARROLLAR EL SBC. Aislar el rea en estudio a travs de un diagrama de bloque. Para nuestro caso, el objetivo general del sistema experto es que ayude en la manutencin de la salud. La rpida subida de los costos en el cuidado de la salud, combinado con el incremento de la competencia en este rubro, ha generado un mtodo alternativo para el financiamiento y entrega de los servicios de cuidado de la salud. Muchas formas de entrega de servicios mdicos se han desarrollado para resolver los problemas del ascenso de los costos. Existen algunas instituciones que trabajan con el pago por adelantado ms que un pago por el servicio brindado. Una variacin importante en los servicios de pago por adelantado es la organizacin de la manutencin de la salud (OMS). Los OMS proporcionan servicios mdicos a sus miembros que realizan un pago por adelantado. Para que estos operen en forma lucrativa deben de reducir los costos. Generalmente la OMS debe tener xito en proporcionar una continua atencin basada en las necesidades de sus miembros. Estas organizaciones tienen que alcanzar bajos costos en hospitalizacin, tasas que son bajos en el sector que tiene el pago por el servicio brindado. Adems para reducir los costos la OMS debe racionalizar la disponibilidad de servicio ambulatorio. Para alcanzar el objetivo de asegurar que tan serio es el problema de la salud se obtienen prioridades de acceso al tratamiento sobre casos de prioridad baja. En este ejemplo utilizaremos un sistema
Mg. Abraham Gamarra Moreno

139

basado en el conocimiento que asistir a los usuarios en la toma de decisiones para la atencin de la salud. 5.2. ETAPA 2: PRECISAR EL PROBLEMA DEL REA

DESIGNADA PARA EL DESARROLLO DEL SBC Los clientes rutinariamente requieren apoyo mdico para nuevos casos o para seguimientos de casos. Mientras algunos clientes requieren informacin u otros servicios, los clientes que no son miembros son los primeros candidatos para solicitar la membresa a OMS. La decisin esta basado en los factores crticos que se muestra en el diagrama de bloques de la figura 5.1. Los tres factores crticos son: a) Estado OMS: Esta el cliente autorizado a los servicios de los miembros?, dos tems influencian la respuesta: la declaracin de membresa del cliente seguido de la verificacin del nmero de identificacin que tiene la membresa. b) Razn: Cul es la razn para venir a la OMS?, la respuesta esta dada por si es un nuevo caso, un seguimiento de caso, bsqueda de informacin u otra visita. c) Problema: Qu tan serio es la condicin actual del cliente?, dos tems influencian la respuesta. Una temperatura anormal u otro sntoma presentado que requiere servicio de atencin inmediata.

Mg. Abraham Gamarra Moreno

140

Recomendacin

Problema Temperatura Sntomas

Razn

Miembr

Figura 5.1. Diagrama de bloques del caso OMS

Mg. Abraham Gamarra Moreno

141

Recomendaciones que da el sistema De acuerdo a las respuestas del cliente se puede ofrecer los siguientes servicios: Ayuda de nivel 1, para miembros con casos serios. Ayuda de nivel 2, para miembros con nuevos casos que no son serios. Ayuda de nivel 3, para miembros con seguimiento de casos que no son serios. Informacin u otros servicios para miembros. Servicios para clientes que no son miembros. 5.3. ETAPA 3: CREAR UN DIAGRAMA DE DEPENDENCIA Un diagrama de dependencia indica las relaciones (dependencias) entre los factores crticos, interrogantes, reglas, valores y recomendaciones hechas por el sistema. El diagrama es una herramienta grafica que sirve para documentar la base de conocimientos. Para la creacin del diagrama de dependencia debemos basarnos en el diagrama de bloques. Las caractersticas del diagrama de dependencia son: Dibujar rectngulos con un tringulo abierto para cada factor crtico identificado en el diagrama de bloques. Dibujar una lnea recta que conecte a cada tringulo, escriba una frase que describa al tem que llega al tringulo, el cual influenciar en la salida del factor crtico. Adems bajo la lnea o entre parntesis escriba los valores que puede tomar el tem anterior.
Mg. Abraham Gamarra Moreno

142

En cada rectngulo escriba el nombre del factor crtico y debajo escriba los valores de este factor crtico. Realice lo mismo para el rectngulo que tiene a las recomendaciones o conclusiones.

El diagrama de dependencia para nuestro caso se muestra en la figura 5.2.

5.4. ETAPA 4: CREAR TABLAS DE DECISIN

En esta etapa se debe crear una tabla de decisin con la siguiente recomendacin:

Definir el nmero de filas que se necesita en la tabla. Este puede determinarse listando todos los factores, ahora llamado condiciones, que llegan al tringulo en consideracin.
143

Mg. Abraham Gamarra Moreno

Miembro (si, no) Identificacin valida (si, no)


Estado de membresa

Ok, no_ok

Razn (nuevo caso, seguimiento de caso, otra informacin)

Temperatura (Normal, anormal, desconocido) Problema

Otros sntomas (Si, No)

Serio No es serio

Figura 5.2.

Mg. Abraham Gamarra Moreno

144

La cantidad de filas para la tabla de decisin que tiene a las recomendaciones se muestra en la tabla 5.1.

Tabla 5.1

Condiciones Estado de membresa (Ok, no_ok) Razn (nuevo caso, seguimiento de caso, otra informacin) Problema (Serio, No es serio) Total de filas=2 x 3 x 2

Nmero de valores 2 3

2 12

La tabla de decisin para las recomendaciones se muestra en la tabla 5.2. La tabla de decisin reducida para las recomendaciones se muestra en la tabla 5.3. La reduccin de la tabla de decisin se debe a que algunas condiciones no tienen sentido. La cantidad de filas para la tabla de decisin que define el estado de membresa se muestra en la tabla 5.4. La tabla de decisin que define el estado de membresa se muestra en la tabla 5.5. La tabla de decisin reducida que define el estado de membresa se muestra en la tabla 5.6.
145

Mg. Abraham Gamarra Moreno

La cantidad de filas para la tabla de decisin que define el problema se muestra en la tabla 5.7.

Tabla 5.2 Regla Estado de Razn Problema Recomendacin

membresa A1 A2 Ok Ok Nuevo caso Nuevo caso Serio Nivel 1

No es se- Nivel 2 rio

A3

Ok

seguimiento de caso

Serio

Nivel 1

A4

Ok

seguimiento de caso

No es se- Nivel 3 rio Otra cin informainforma-

A5

Ok

Otra

infor- Serio

macin A6 Ok Otra

infor- No es se- Otra rio Serio cin

macin A7 A8 no_ok no_ok Nuevo caso nuevo caso

No es miembro

No es se- No es miembro rio

A9

no_ok

seguimiento de caso

Serio

No es miembro

A10

no_ok

seguimiento de caso

No es se- No es miembro rio No es miembro

A11

no_ok

Otra

infor- Serio

macin A12 no_ok Otra infor- No es se- No es miembro


146

Mg. Abraham Gamarra Moreno

macin Tabla 5.3 Regla Estado de Razn

rio

Problema

Recomendacin

membresa B1 B2 Ok Ok Nuevo caso Nuevo caso Serio Nivel 1

No es se- Nivel 2 rio

B3

Ok

seguimiento de caso

Serio

Nivel 1

B4

Ok

seguimiento de caso

No es se- Nivel 3 rio --Otra cin --No es miembro informa-

B5

Ok

Otra

infor-

macin B6 no_ok ---

Tabla 5.4 Condiciones Miembro (si, no) Identificacin valida(si, no) Total de filas = 2 x 2 Nmero de valores 2 2 4

Tabla 5.5 Reglas Miembro Identificacin valida Estado membresa


147

de

Mg. Abraham Gamarra Moreno

A1 A2 A3 A4

Si Si No No

Si No Si No

Ok No ok No ok No ok

Tabla 5.6 Reglas Miembro Identificacin valida B1 B2 B3 Si --No Si No --Estado membresa Ok No ok No ok de

Tabla 5.7 Condiciones Nmero de valores Temperatura (Normal, anormal, desconocido) Otros sntomas (Si, No) 2 3

Total de filas=3 x 2

La tabla de decisin que define el problema se muestra en la tabla 5.8.


Mg. Abraham Gamarra Moreno

148

La tabla de decisin reducida que define el problema se muestra en la tabla 5.9.

Tabla 5.8 Regla A1 A2 A3 A4 A5 A6 Temperatura Normal Normal Anormal Anormal Desconocido Desconocido Otros sntomas Si No Si No Si No Problema Serio No es serio Serio Serio Serio Serio

Tabla 5.9 Regla B1 B2 B3 B4 Temperatura Normal Normal Anormal Desconocido Otros sntomas Si No ----Problema Serio No es serio Serio Serio

Mg. Abraham Gamarra Moreno

149

5.5. ETAPA 5: ESCRIBIR LAS REGLAS IF THEN Las reglas para las tablas de decisin son:

Subject: ORGANIZACION DE LA MANUTENCION DE LA SALUD Author: EPG

Uses all non-redundant rules in data derivations. Probability System: 0 (false) or 1 (true) DISPLAY THRESHOLD: 1 QUALIFIERS: 1 ESTADO DE MEMBRESIA OK NO OK Display at end 2 LA RAZON POR LA QUE VINO EL CLIENTE ES NUEVO CASO SEGUIMIENTO DE CASO OTRA INFORMACION

Mg. Abraham Gamarra Moreno

150

Display at end 3 EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO NO ES SERIO Display at end 4 EL CLIENTE ES MIEMBRO NO SI Display at end 5 LA IDENTIFICACION DEL CLIENTE ES VALIDA SI NO Display at end 6 LA TEMPERATURA DEL CLIENTE ES NORMAL ANORMAL DESCONOCIDO Display at end 7 EL CLIENTE TIENE OTROS SINTOMAS

Mg. Abraham Gamarra Moreno

151

SI NO Display at end CHOICES: 1 LA RECOMENDACION ES AYUDA DE NIVEL 1 2 LA RECOMENDACION ES AYUDA DE NIVEL 2 3 LA RECOMENDACION ES AYUDA DE NIVEL 3 4 EL CLIENTE VINO POR OTRA INFORMACION 5 EL CLIENTE NO ES MIEMBRO RULES:

---------------------------------------RULE NUMBER: 1 IF: ESTADO DE MEMBRESIA OK and LA RAZON POR LA QUE VINO EL CLIENTE ES OTRA INFORMACION THEN: EL CLIENTE VINO POR OTRA INFORMACION - Confidence=1 and STOP

Mg. Abraham Gamarra Moreno

152

----------------------------------------

RULE NUMBER: 2 IF: ESTADO DE MEMBRESIA OK and LA RAZON POR LA QUE VINO EL CLIENTE ES NUEVO CASO and EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

THEN: LA RECOMENDACION ES AYUDA DE NIVEL 1 - Confidence=1 and STOP

----------------------------------------

RULE NUMBER: 3 IF: ESTADO DE MEMBRESIA OK and LA RAZON POR LA QUE VINO EL CLIENTE ES NUEVO CASO and EL PROBLEMA QUE TIENE EL CLIENTE NO ES SERIO

THEN: LA RECOMENDACION ES AYUDA DE NIVEL 2 - Confidence=1 and STOP

----------------------------------------

RULE NUMBER: 4 IF: ESTADO DE MEMBRESIA OK


Mg. Abraham Gamarra Moreno

153

and LA RAZON POR LA QUE VINO EL CLIENTE ES SEGUIMIENTO DE CASO and EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO THEN: LA RECOMENDACION ES AYUDA DE NIVEL 1 - Confidence=1 and STOP

---------------------------------------RULE NUMBER: 5 IF: ESTADO DE MEMBRESIA OK and LA RAZON POR LA QUE VINO EL CLIENTE ES SEGUIMIENTO DE CASO and EL PROBLEMA QUE TIENE EL CLIENTE NO ES SERIO THEN: LA RECOMENDACION ES AYUDA DE NIVEL 3 - Confidence=1 and STOP

---------------------------------------RULE NUMBER: 6 IF: ESTADO DE MEMBRESIA NO OK THEN: EL CLIENTE NO ES MIEMBRO - Confidence=1 and STOP
Mg. Abraham Gamarra Moreno

154

---------------------------------------RULE NUMBER: 7 IF: EL CLIENTE ES MIEMBRO NO THEN: ESTADO DE MEMBRESIA NO OK

---------------------------------------RULE NUMBER: 8 IF: LA IDENTIFICACION DEL CLIENTE ES VALIDA NO THEN: ESTADO DE MEMBRESIA NO OK

---------------------------------------RULE NUMBER: 9 IF: EL CLIENTE ES MIEMBRO SI and LA IDENTIFICACION DEL CLIENTE ES VALIDA SI THEN: ESTADO DE MEMBRESIA OK

Mg. Abraham Gamarra Moreno

155

---------------------------------------RULE NUMBER: 10 IF: LA TEMPERATURA DEL CLIENTE ES NORMAL and EL CLIENTE TIENE OTROS SINTOMAS SI THEN: EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

---------------------------------------RULE NUMBER: 11 IF: LA TEMPERATURA DEL CLIENTE ES NORMAL and EL CLIENTE TIENE OTROS SINTOMAS NO THEN: EL PROBLEMA QUE TIENE EL CLIENTE NO ES SERIO

---------------------------------------RULE NUMBER: 12 IF: LA TEMPERATURA DEL CLIENTE ES ANORMAL THEN: EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

Mg. Abraham Gamarra Moreno

156

---------------------------------------RULE NUMBER: 13 IF: LA TEMPERATURA DEL CLIENTE ES DESCONOCIDO THEN: EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

5.6. ETAPA 6: CONSTRUIR LA INTERFAZ DE USUARIO Se debe disear una interfaz adecuada que permita una interaccin con el usuario que sea lo ms amigable posible. Utilice las caractersticas de algn shell para construir la interfaz de usuario. Resumen El diseo de sistemas basado en reglas con encadenamiento hacia adelante, primero toma la condicin de la regla y si esta es verdadera infiere que la conclusin es verdadera. Indicadores de logro El lector es capaz de implementar un sistema basado en reglas con encadenamiento hacia adelante.

Bibliografa Recomendada Dologite D. Developing Knowledge-Based Systems using VPEXPERT. USA: Macmillan Publishing Company; 1993.
Mg. Abraham Gamarra Moreno

157

Nexo

La siguiente unidad acadmica analiza la primera parte del aprendizaje con redes neuronales artificiales.

Actividad

Muestre un ejemplo que utilice encadenamiento hacia adelante.

Auto evaluacin formativa

Encuentre la solucin a los siguientes problemas:

PROBLEMA UNO

Realice un sistema basado en reglas con encadenamiento hacia adelante que permita identificar la falla que tiene un sistema de cmputo, de acuerdo a sus sntomas.
158

Mg. Abraham Gamarra Moreno

UNIDAD ACADMICA 6 APRENDIZAJE CON REDES NEURONALES ARTIFICIALES PARTE 1

Una red neuronal artificial es, bsicamente, el resultado de los intentos por reproducir mediante computadores el funcionamiento del cerebro humano. Su principal aplicacin es en torno a las tareas en que los seres humanos fcilmente superan a los computadores tradicionales, como en procesamiento de seales, procesamiento de imgenes, procesamiento de voz, en robtica y otros. Nuestro cerebro est formado por miles de millones de neuronas interconectadas entre s en forma variable y compleja. Cada neurona recibe seales de las otras neuronas, o seales provenientes del exterior de la red, las procesa, ponderando o dndole distinta importancia a cada una de ellas, y genera una nica seal de salida que se transmite a las otras neuronas.
159

Mg. Abraham Gamarra Moreno

La informacin que procesa una red neuronal se encuentra dispersa entre todas sus interconexiones, lo que la hace fundamentalmente diferente a un computador tradicional, en que la informacin se encuentra totalmente localizada y no distribuida como en este caso. Esta cualidad hace que las redes neuronales posean una gran tolerancia a fallas.

6.1. FUNDAMENTOS BIOLGICOS La figura 6.1 muestra el modelo biolgico de la neurona, elemento base de las redes de neuronas.

Figura 6.1. Modelo de la Neurona Biolgica

Como se aprecia en esta figura, cada neurona en el cerebro est compuesta bsicamente por un cuerpo, axones y dendritas. Las dendritas forman un "cepillo filamentoso" muy fino que rodea el cuerpo de la neurona. El axn puede considerarse como un tubo largo y fino que se subdivide en numerosas ramas que terminan en pequeos bulbos, los cuales tienen contacto con las dendritas de las otras clulas. La pequea separacin entre una terminacin y
Mg. Abraham Gamarra Moreno

160

una dendrita es llamada sinapsis. El axn de una neurona puede formar conexiones sinpticas con muchas otras neuronas. Funcionalmente, las dendritas reciben seales desde otras clulas a travs de los puntos de conexin llamados sinapsis. La fuerza de una conexin dada es determinada por la eficiencia de la transmisin sinptica. Desde ah las seales son pasadas al cuerpo de la clula. Las seales que llegan de las dendritas pueden ser excitatorias o inhibitorias, y si la suma ponderada de stas, realizada dentro del cuerpo de la neurona, supera su "umbral de activacin" dentro de un tiempo suficiente, la neurona se disparar, enviando un impulso nervioso a travs de su axn.

6.2. LA NEURONA ARTIFICIAL En la figura 6.2 se presenta el esquema tpico de la neurona artificial.
X 1 W 1j

X 2

2j

Y j Z j= W ij X i F ( Z j )

: . :
X n W nj

Ax o n e s

S in a p s is

D e n d r ita s

C u e rp o

de

la

N e u ro n a

Ax n

Figura 6.2: Modelo de la Neurona Artificial

El cuerpo de la neurona ser a menudo representada por la suma ponderada de las entradas, Zj, seguida por una funcin lineal o no lineal, Yj = F( Zj). La eficiencia sinptica es representada por los "pesos de interconexin", Wij. La funcin F(Zj) es llamada "funcin de activacin", que usa los valores de entrada para determinar la
Mg. Abraham Gamarra Moreno

161

actividad de la neurona. El modelo de la neurona es llamado neurona de McCulloch-Pitts .

6.2.1.

PESOS DE INTERCONEXIN

Los pesos de interconexin, representan la fuerza de interconexin entre las neuronas, y pueden ser positivos (excitatorios) o negativos (inhibitorios); adems pueden ser fijos o adaptables. Las redes con pesos adaptables usan leyes de aprendizaje para ajustar los valores de la fuerza de interconexin. Si la red neuronal usa pesos fijos las tareas a ser ejecutadas deben estar bien definidas a priori.

6.2.2.

FUNCIONES DE ACTIVACIN

Existen distintos tipos de redes neuronales que usan diferentes funciones de activacin, F(Z), pero la estructura interna de la neurona , es decir la suma ponderada seguida por la funcin F(Z), es comn en la mayora de las redes. Entre las funciones de activacin ms usadas y conocidas se encuentran las que se muestran en la figura 6.3.

6.3. REDES DE NEURONAS Una red de neuronas consiste en varios de estos elementos (neuronas) trabajando juntos. Usualmente estos elementos se organizan en grupos conocidos con el nombre de capas. Una red tpica consiste en una sucesin de capas conectadas entre ellas en forma total o aleatoria. Estas redes poseen dos capas que tienen contacto con el exterior, que son la capa de entrada y la de salida. Las capas que no se conectan con el neuronas.
162

exterior reciben el nombre de capas

ocultas. La figura 6.4 presenta el esquema tpico de una red de

Mg. Abraham Gamarra Moreno

Figura 6.3. Funciones de Activacin

: : : : : :

C a p a d e e n tr a d a

C a p a e s c o n d id a

C a p a d e s a lid a

Mg. Abraham Gamarra Moreno

163

Figura 6.4 Esquema tpico de una red de neuronas

6.3.1.

REDES MONOCAPA (1 CAPA)

En las redes monocapa, como la red de HOPFIELD y la red BRAINSTATE-IN-A-BOX, se establecen conexiones laterales entre las neuronas que pertenecen a-la nica capa que constituye la red. Tambin pueden existir conexiones autorrecurrentes (salida de una neurona conectada a su propia entrada), aunque en algn modelo, como el de HOPFIELD, esta recurrencia no se utiliza. Una topologa equivalente a la de las redes de 1 capa es la denominada topologa crossbar (barras cruzadas). Una red de este tipo (por ejemplo, la red LEARNING MATRIX) consiste en una matriz de terminales (de entrada y salida) o barras que se cruzan en unos puntos a los que se les asocia un peso. Esta representacin crossbar suele utilizarse como etapa de transicin cuando se pretende implementar fsicamente una red monocapa, puesto que es relativamente sencillo desarrollar como hardware una estructura como la indicada (por ejemplo, las barras cruzadas seran cables, y los puntos de conexin, resistencias cuyos valores representaran los pesos de la red). Finalmente, hay que indicar que las redes monocapa se utilizan tpicamente en tareas relacionadas con lo que se conoce como autoasociacin; por ejemplo, para regenerar informaciones de entrada que se presentan a la red incompleta o distorsionada.
164

Mg. Abraham Gamarra Moreno

En la tabla 6.1 se muestran las caractersticas topolgicas de los modelos de redes monocapa ms conocidos.

Tabla 6.1. modelos de redes monocapa ms conocidos. TIPOS DE CONEXIONES CONEXIONES AUTORRECONEXIONES LATERALES EXPLCITAS NO AUTOCURRENTES MODELO DE RED BRAIN-STATE-IN-A-BOX ADDITIVE GROSSBERG (AG) SHUNTING GROSSBERG (SG) OPTIMAL LINEAR ASOCIATIVE MEMORY HOPFIELD

RECURRENTES BOLTZMANN MACHINE CAUCHY MACHINE CROSSBAR LEARNING MATRIX (LM)

La figura 6.5 muestra el modelo de red neuronal de Hopfield.

Mg. Abraham Gamarra Moreno

165

Figura 6.5 Red de Hopfield

6.3.2.

REDES NEURONALES MULTICAPAS

En el caso de las redes multicapas, sus unidades se clasifican en tres tipos: Unidades de entrada: al igual que el caso de la red de una sola capa, estas unidades son las que reciben el patrn de entrada directamente. Unidades ocultas o escondidas: estas no reciben entradas directamente y no poseen realimentacin directa. Ellas permiten tener una representacin interna del patrn en cuestin. Unidades de salida: estas son las que entregan el resultado de la red. Las redes multicapa son aquellas que disponen de conjuntos de neuronas agrupadas en varios (2, 3, etc.) niveles o capas. En estos casos, una forma para distinguir la capa a la que pertenece una neurona, consistira en fijarse en el origen de las seales que recibe a la entrada y, el destino de la seal de salida. Normalmente, todas las neuronas de una capa reciben seales de entrada de otra capa anterior, ms cercana a la entrada de la red, y envan las seales de salida a una capa posterior, ms cercana a la salida de la red. A estas conexiones se les denomina conexiones hacia adelante o feedforward (Fig. 6.6). Sin embargo, en un gran nmero de estas redes tambin existe la posibilidad de conectar las salidas de las neuronas de capa posteriores a las entradas de las capas anteriores, a estas conexiones se les denomina conexiones hacia atrs o feedback (Fig. 6.7).
166

Mg. Abraham Gamarra Moreno

Figura 6.6 Perceptron multinivel (red feedforward multicapa)

Figura 6.7. Red feedback

Un modelo de red neuronal multicapa es el Perceptron multinivel o multicapa (Figura 6.6), el cual es una red de tipo feedforward
Mg. Abraham Gamarra Moreno

167

compuesta de varias capas de neuronas entre la entrada y la salida de la misma. Las capacidades del Perceptron con dos tres y cuatro niveles o capas y con una nica neurona en el nivel de salida, se muestra en la figura 6.8.

Figura 6.8 Distintas formas de las regiones generadas por un perceptron multinivel

En la segunda columna se muestra el tipo de regin de decisin que se puede formar con cada una de las configuraciones. En la siguiente columna se indica el tipo de regin de decisin que se formara para el problema de la XOR. En las dos ltimas columnas se muestran las regiones formadas para resolver el problema de clases con regiones mezcladas y las formas de regiones ms generales para cada uno de los casos.
168

Mg. Abraham Gamarra Moreno

El Perceptron bsico de dos capas (la de entrada con neuronas lineales y la de salida) slo puede establecer dos regiones separadas por una frontera lineal en el espacio de patrones de entrada. Un Perceptron con tres niveles de neuronas puede formar cualquier regin convexa en este espacio. La regin de decisin resultante ser regiones convexas con un nmero de lados a lo sumo igual al nmero de neuronas de la segunda capa. Un Perceptron con cuatro capas puede formar regiones de decisin arbitrariamente complejas. El proceso de separacin en clases que se lleva a cabo consiste en la particin de la regin deseada en pequeos hipercubos (cuadrados para dos entradas de la red). El anlisis anterior demuestra que no se requieren ms de cuatro capas en una red de tipo Perceptron, pues, como se ha visto una red con cuatro niveles, puede generar regiones de decisin arbitrariamente complejas. El Perceptron es de inters histrico, dado que ha abierto el camino para el desarrollo de otras redes neuronales, entre ellos el BackPropagation, que se analizar ms adelante. 6.4. OPERACIN DE UNA RED NEURONAL Las redes neuronales operan en dos fases: aprendizaje y evocacin o recuerdo. El aprendizaje es el proceso en el cual se adaptan o modifican los pesos de las conexiones en respuesta a un estmulo que ha sido presentado en sus entradas y opcionalmente a su salida. El estmulo presentado a la salida corresponde a la salida deseada para una determinada entrada; esta salida deseada debe ser entregada por un "instructor". En tal caso se habla de un aprendizaje supervisado o entrenamiento supervisado.
Mg. Abraham Gamarra Moreno

169

La evocacin o recuerdo se refiere a cmo la red procesa los estmulos presentados en sus entradas y genera una respuesta en su salida. A menudo la evocacin o recuerdo es una parte del aprendizaje; esto sucede cuando la salida deseada debe ser comparada con la salida actual de la red para originar la seal de error. 6.5. ENTRENAMIENTO DE UNA RED NEURONAL El entrenamiento de una red es todo el proceso de aprendizaje que realiza una red neuronal. Su objetivo es lograr que la aplicacin de un conjunto de entradas produzca el conjunto de salidas deseadas (o uno al menos consistente). Dicho entrenamiento se realiza aplicando secuencialmente vectores de entrada (patrones de entrenamiento), a la vez que se ajustan los pesos de la red de acuerdo a un procedimiento predeterminado (cada modelo define su procedimiento), los cuales convergen gradualmente a valores tales que cada vector de entrada produce el vector de salida deseado. En cuanto a los tipos de aprendizaje, existen dos tipos: el aprendizaje supervisado y el no supervisado.

6.5.1.

ENTRENAMIENTO SUPERVISADO

Se selecciona un nmero suficientemente grande de vectores de entrada con sus correspondientes vectores de salida. Cada vector de entrada se aplica a la red calculndose la salida, la que posteriormente se compara con la salida deseada, determinando el error. Dicho error es realimentado a travs de la red, modificando los pesos de acuerdo a un algoritmo que lo minimice. Los vectores del conjunto de entrenamiento se aplican secuencialmente, calculando los errores y modificando los pesos hasta que el error del conjunto total de entrenamiento converja a un nivel aceptable.
Mg. Abraham Gamarra Moreno

170

A continuacin se muestra como se realiza el entrenamiento de una red neuronal multicapa:

Lo primero que necesitamos son patrones de entrenamiento (cada fila de la tabla) que contengan el conocimiento de algn dominio en particular. Para nuestro ejemplo (Tabla 6.2) tenemos patrones que permiten identificar si un animal es un mamfero (1) o un ave (0).

Ahora necesitamos una red neuronal que permita tomar los patrones de entrada y de salida para el entrenamiento, tal como se muestra en la figura 6.9.

Los 6 primeros patrones (patrones de entrada) debe suministrar a las neuronas que estn en la parte superior (neuronas de entrada) y la ltima columna se debe suministrarse como salida deseada.

Se puede elaborar un programa que permita entrenar la red neuronal y luego de este entrenamiento, se debe probar si el aprendizaje fue correcto o no.

Para el primer patrn de entrenamiento, la prueba consiste en ingresar el patrn de entrada (6 primeras columnas) y esperar que se tenga la salida deseada dada en el entrenamiento (ltima columna que debe ser igual o cercano a 1), vea la figura 6.10.

Para esta ejecucin se tiene que el valor devuelto por la red neuronal es muy cercano a 1, tal como se dio en el entrenamiento (la red neuronal aprendi).

Mg. Abraham Gamarra Moreno

171

Tabla 6.2 Patrones de entrenamiento que permiten identificar si un animal es un mamfero (1) o un ave (0)

Entrenamiento de una red neuronal


Entradas Salida
(1= Mamifer o 0=Ave)

Tiene pelo?

Toma leche?

Vuela?

Pone Tiene huevos? plumas?

Nada?

1 0 0 0 0 0

1 1 1 0 0 0

0 1 0 1 1 0

0 0 0 1 1 1

0 0 0 1 1 1

0 0 1 1 0 0

1 1 1 0 0 0

Entrenamiento de una red neuronal:


Tiene Pelo? Toma leche? Vuela? Pone Huevos? Tiene Plumas? Nada?

Salida

Mg. Abraham Gamarra Moreno

172

Figura 6.9 Red neuronal que permite tomar los patrones de la tabla 6.2.

Figura 6.10 Resultado que muestra un programa que contiene a la red neuronal entrenada de la figura 4.9.

Al ejecutar un programa que use el aprendizaje de esta red neuronal, con el ltimo patrn de entrenamiento, se tiene que la salida tambin es correcta (figura 6.11).

Mg. Abraham Gamarra Moreno

173

Figura 6.11 Resultados que muestra otra ejecucin del programa que contiene a la red neuronal entrenada de la figura 6.9.

Para salidas binarias (0 1), si la salida deseada es 1, un valor aceptable ser cuando la salida sea mayor que 0.9 (salida>0.9); de la misma manera si la salida deseada es 0, un valor aceptable ser cuando la salida sea menor que 0.1 (salida<0.1).

Lo que debemos probar ahora es la capacidad de generalizacin de la red neuronal. Para realizar esta prueba, suministramos a la red neuronal, slo la caracterstica toma leche y la red neuronal generaliza e identifica a este como un mamfero (valor cercano o igual a 1). Debemos notar que estas entradas no han sido dadas en el entrenamiento, por lo que la respuesta que se obtiene, es por generalizacin, vea la figura 6.12.

Mg. Abraham Gamarra Moreno

174

Figura 6.12 Resultados que muestra la genearlizacin del programa que contiene a la red neuronal entrenada de la figura 6.9.

6.5.2.

ENTRENAMIENTO NO SUPERVISADO

El aprendizaje no supervisado ocurre cuando la red es provista slo de los valores de entrada, y la red ajusta la fuerza de interconexin basada solamente en los valores de la entrada y la salida de la red en progresin. En otras palabras, el proceso de entrenamiento extrae las propiedades estadsticas del conjunto de entrenamiento y agrupa vectores familiares en clases. Puesto que no es posible determinar el patrn de salida especfico generado por una clase de vectores en forma previa al entrenamiento, se requiere transformar la salida generada por la red a una forma que sea comprensible. Este tipo de entrenamiento fue desarrollado por Kohonen (1984) y otros en lo que se conoce con el nombre de la teora de la "autoorganizacin". 6.6. TIPOS DE REDES NEURONALES MS IMPORTANTES La tabla 6.3 muestra el resumen de los tipos de redes ms conocidos, comentando esquemticamente las aplicaciones ms importantes de cada una, sus ventajas e inconvenientes y quin o quines fueron sus creadores y en qu ao. 6.7. APLICACIONES DE LAS REDES NEURONALES Las redes neuronales son una tecnologa computacional emergente que puede utilizarse en un gran nmero y variedad de aplicaciones, tanto comerciales como militares. Se pueden desarrollar redes neuronales en un perodo de tiempo razonable y pueden realizar tareas
Mg. Abraham Gamarra Moreno

175

concretas mejor que otras tecnologas convencionales, incluyendo los sistemas expertos. Cuando se implementan mediante hardware (redes neuronales en chips VLSI), presentan una alta tolerancia a fallos del sistema y proporcionan un grado de paralelismo en el proceso de datos muy grande. desarrollados. Eso har posible insertar redes neuronales de bajo coste en sistemas existentes y recientemente

Hay muchos tipos diferentes de redes neuronales, cada uno de los cuales tiene una aplicacin particular ms apropiada. Relacionamos ejemplos de algunas aplicaciones comerciales separndolas en grupos segn las distintas disciplinas:

Biologa

Aprender ms acerca del cerebro y otros sistemas.

Obtencin de modelos de la retina.

Mg. Abraham Gamarra Moreno

176

Tabla 6.3. Tipos de redes ms conocidos.4 Nombre de la red Avalancha 196 7 Ao Aplicaciones ms importantes Reconocimiento habla nua. Control brazos robot. Teora reso- 198 Reconocinancia adaptativa (ART) 6 miento dar, Sonar, etc.). ADALINE / MADALINE 196 0 Filtrado de Rpida, seales. Ecualizavo. Modems. plementar tos gicos VLSI. Slo es po- Bernand car espacios fcil de im- sible clasifi- Widrow. circui- linealmente anal- separados. o Sofisticada. Sensible a la Gail de Poco utilitranslacin, distorsin escala. Carpenter, y Stephen Gressberg. Ninguna Comentarios Limitaciones Inventada/ Desarrollada por No es fcil Stephen la Grossberg. o velocidad de red sencilla alterar

conti- puede esto.

hacer todo interpolar el movimiento.

patrones (ra- zada.

dor adaptati- con

Hilera J, Martinez V. Redes Neuronales Artificiales: Fundamentos, modelos y Aplicaciones. Espaa: Editorial RA-MA; 1995.

Mg. Abraham Gamarra Moreno

177

Back propa- 197 gation 485

Sntesis texto. Control de robots. Prediccin. Reconocimiento patrones. de

Red

ms Necesita mucho el

Paul Werbos, David

de voz desde popular.

Numerosas tiempo para Parker, aplicaciones con xito. Facilidad de aprendizaje. Potente. aprendi- David ejemzaje y mu- Rumelhart. chos plos.

Mg. Abraham Gamarra Moreno

178

Tabla 6.3. Tipos de redes ms conocidos (continuacin) Nombre de la red Ao Aplicaciones ms importantes Memoria asociativa bidireccional 198 5 Memoria heteroasociativa acceso contenido. Aprendide quitectura por simples. Comentarios Limitaciones Inventada/ Desarrollada por Baja capaci- Bart Kosko. macenamiento. Los datos deben ser codificados. Mquinas de 198 Cauchy Reconopatrones (imgenes, dar). cin. BrainEstate-in-aBox. 197 7 Extraccin de miento tos PosibleRealizacin James Anderson Redes sim- La mquina Jeffrey HinBoltz- ton, Terry cidad de mann nece- Sejnowski, sita un Harold Szu. de tiempo muy de largo aprendizaje.

za.je y ar- dad de al-

Boltzmann y 5-86 cimiento

de ples. Capa- de represenptima

sonar y ra- tacin Optimiza- patrones.

conoci- mente me- y potenciade jor realiza- les aplicaque ciones no redes estudiadas Hop- totalmente. las de field.

bases de da- cin

Mg. Abraham Gamarra Moreno

179

Tabla 6.3. Tipos de redes ms conocidos (continuacin)

Nombre de la red Cerebellatron

Ao Aplicaciones ms importantes 196 9 Control

Comentarios

Limitaciones

Inventada/ Desarrollada por

del Semejante a Avalan-

Requiere

David Marr,

movimiento zos de un

complicadas James Alentradas de bus, control. Numerosas conexiones. Andres Pellionez. Robert y HechtNielsen

de los bra- cha. robot. Counter198 Comprensin Combinade nes. Hopfield 198 2 Reconstrucimge- cin y TPM. Puede Perceptron propagation 6

de neuronas

im- Capacidad y John Hopfield

cin de pa- plementar- estabilidad. trones y op- se en VLSI. timizacin. Fcil lizar de conceptua-

Neocognitron

197

Reconocicaracteres manuscritos

Insensible lacin, tacin escala.

Requiere

K. Fukushima

8-84 miento

de a la Trans- muchos ro- elementos y de proceso, y niveles

conexiones. Perceptron 195 7 Reconocimiento caracteres impresos


Mg. Abraham Gamarra Moreno

La red ms No de antigua. Construida en HW.

puede Frank senblatt

Ro-

reconocer caracteres complejos.

180

Tabla 6.3. Tipos de redes ms conocidos (continuacin) Nombre de la red Ao Aplicaciones ms importantes SelfOrganizingMap (SOM). TopologyPreservingMap (TPM). 198 Reconocipatrones, codificacin de datos, optimizacin. Realiza mapas ticas munes los datos aprendidos. caracterscode Requiere de mucho entrenamiento. Comentarios Limitaciones Inventada/ Desarrollada por Teuvo Kohonen

0-84 miento de

Empresa Evaluacin de probabilidad de formaciones geolgicas y petrolferas. Identificacin de candidatos para posiciones especficas. Explotacin de bases de datos. Optimizacin de plazas y horarios en lneas de vuelo. Reconocimiento de caracteres escritos. Medio ambiente Analizar tendencias y patrones. Previsin del tiempo. Finanzas
181

Mg. Abraham Gamarra Moreno

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. Inspecci6n de la calidad.

Medicina Analizadores del habla para la ayuda de audicin de sordos profundos. Diagnstico y tratamiento a partir de sntomas y/o de datos analticos (electrocardiograma, encefalograma, anlisis sanguneo, etc.). Monitorizacin en ciruga. Prediccin de reacciones adversas a los medicamentos. Lectores de rayos X. Entendimiento de la causa de los ataques epilpticos. Militares Clasificacin de las seales de radar.
182

Mg. Abraham Gamarra Moreno

Creacin de armas inteligentes. Optimizacin del uso de recursos escasos. Reconocimiento y seguimiento en el tiro al blanco.

Podemos buscar hechos comunes en esta lista de aplicaciones; la mayora de ellas consisten en realizar un reconocimiento de patrones: buscar un patrn en una serie de ejemplos, clasificar patrones, completar una seal a partir de valores parciales o reconstruir el patrn correcto partiendo de uno distorsionado. Muchos de los ejemplos tienen que trabajar con datos sensoriales y de percepcin (seales visuales, auditivas y otras) y, otros realizan filtrado o mapeo de seales de entrada. denadores convencionales. 6.8. LA RED BACKPROPAGATION4 En 1986, Rumelhart, Hinton y Williams, basndose en los trabajos de otros investigadores formalizaron un mtodo para que una red neuronal aprendiera la asociacin que existe entre los patrones de entrada a la misma y las clases correspondientes, utilizando ms niveles de neuronas que los que utiliz Rosenblatt para desarrollar el Perceptron. Este mtodo, conocido en general como backpropagation (propagacin del error hacia atrs), est basado en la generalizacin de la regla delta y, a pesar de sus propias limitaciones, ha ampliado de forma considerable el rango de aplicaciones de las redes neuronales. El algoritmo de propagacin hacia atrs. o retropropagacin, es una regla de aprendizaje que se puede aplicar en modelos de redes con ms de dos capas de clulas. Una caracterstica importante de
Mg. Abraham Gamarra Moreno

En general, los ejemplos mostrados

indican que son caractersticos ms de las personas que de los or-

183

este algoritmo es la representacin interna del conocimiento que es capaz de organizar en la capa intermedia de las clulas para conseguir cualquier correspondencia entre la entrada y la salida de la red. Ya se ha mostrado en este captulo que en muchos casos, como la resolucin del problema de la OR exclusiva, es imposible encontrar los pesos adecuados para establecer la correspondencia entre la entrada y la salida mediante una red sin capas intermedias. Con una capa de neuronas ocultas, s es posible establecer dicha correspondencia. De forma simplificada, el funcionamiento de una red backpropagation (backpropagation net, BPN) consiste en un aprendizaje de un conjunto predefinido de pares de entradas-salidas dados como ejemplo, empleando un ciclo propagacin-adaptacin de dos fases: primero se aplica un patrn de entrada como estmulo para la primera capa de las neuronas de la red, se va propagando a travs de todas las capas superiores hasta generar una salida, se compara el resultado obtenido en las neuronas de salida con la salida que se desea obtener y se calcula un valor del error para cada neurona de salida. A continuacin, estos errores se transmiten hacia atrs, partiendo de la capa de salida, hacia todas las neuronas de la capa intermedia que contribuyan directamente a la salida, recibiendo el porcentaje de error aproximado a la participacin de la neurona intermedia en la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido un error que describa su aportacin relativa al error total. Basndose en el valor del error recibido, se reajustan los pesos de conexin de cada neurona. de manera que en la siguiente vez que se presente el mismo patrn, la salida est ms cercana a la deseada; es decir, el error disminuya. La importancia de la red backpropagation consiste en su capacidad de autoadaptar los pesos de las neuronas de las capas intermedias
Mg. Abraham Gamarra Moreno

184

para aprender la relacin que existe entre un conjunto de patrones dados como ejemplo y sus salidas correspondientes. Para poder aplicar esa misma relacin, despus del entrenamiento, a nuevos vectores de entrada con ruido o incompletas, dando una salida activa si la nueva entrada es parecida a las presentadas durante el aprendizaje. Esta caracterstica importante, que se exige a los sistemas de aprendizaje, es la capacidad de generalizacin, entendida como la facilidad de dar salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de entrenamiento. La red debe encontrar una representacin interna que le permita generar las salidas deseadas cuando se le dan las entradas de entrenamiento, y que pueda aplicar, adems, a entradas no presentadas durante la etapa de aprendizaje para clasificarlas segn las caractersticas que compartan con los ejemplos de entrenamiento.

6.8.1.

LA REGLA DELTA GENERALIZADA

La regla propuesta por Widrow en 1960 (regla delta) ha sido extendida a redes con capas intermedias (regla delta generalizada) con conexiones hacia adelante (feedforward) y cuyas clulas tienen funciones de activacin continuas (lineales o sigmoidales), dando lugar al algoritmo de retropropagacin (backpropagation). Estas funciones continuas son no decrecientes y derivables. La funcin sigmoidal pertenece a este tipo de funciones, a diferencia de la funcin escaln que se utiliza en el Perceptron, ya que esta ltima no es derivable en el punto en el que se encuentra la discontinuidad. Este algoritmo utiliza tambin una funcin o superficie de error asociada a la red, buscando el estado estable de mnima energa o de mnimo error a travs del camino descendente de la superficie del error. Por ello, realimenta el error del sistema para realizar la
Mg. Abraham Gamarra Moreno

185

modificacin de los pesos en un valor proporcional al gradiente decreciente de dicha funcin de error.

FUNCIONAMIENTO DEL ALGORITMO El mtodo que sigue la regla delta generalizada para ajustar los pesos es exactamente el mismo que el de la regla delta utilizada en el Perceptron y, ADALINE; es decir, los pesos se actualizan de forma proporcional a la delta, o diferencia entre la salida deseada y la obtenida ( = sal. deseada - sal. obtenida). Dada una neurona (unidad Ui) y la salida que produce, yi (Figura 6.13), el cambio que se produce en el peso de la conexin que une la salida de dicha neurona con la unidad U j (wji) para un patrn de aprendizaje p determinado es:

w ji t 1

pj

y pi

En donde el subndice p se refiere al patron de aprendizaje concreto, y es la constante o tasa de aprendizaje.

Mg. Abraham Gamarra Moreno

186

Figura 6.13 Conexin entre una neurona de una capa oculta con una neurona de salida. El punto en el que difieren la regla delta Generalizada de la regla delta es en el valor concreto de
pj.

Por otro lado, en las redes

multinivel, a diferencia de las redes sin neuronas ocultas, en principio no se puede conocer la salida deseada de las neuronas de las capas ocultas para poder determinar los pesos en funcin del error cometido. Sin embargo, inicialmente s podemos conocer la salida deseada de las neuronas de salida. Segn esto, si consideramos la unidad Uj de salida (Figura 6.13), entonces definimos

pj

d pj

y pj

f 1 net j

donde dpj es la salida deseada de la neurona j para el patrn p y netj es la entrada neta que recibe la neurona j. Esta frmula es como la de la regla delta, excepto en lo que se refiere a la derivada de la funcin de transferencia. Este trmino representa la modificacin que hay que realizar en la entrada que recibe la neurona j. En el caso de que dicha neurona no sea de salida, el error que se produce estar en funcin del error que se cometa en las neuronas que reciban como entrada la salida de dicha neurona. Esto es lo que se denomina procedimiento de propagacin del error hacia atrs. Segn esto, en el caso de que Uj no sea una neurona de salida (ver Figura 6.14), el error que se produce est en funcin del error que se comete en las neuronas que reciben como entrada la salida de Uj:

pj k
Mg. Abraham Gamarra Moreno

pk

wkj

f 1 net j
187

donde el rango de k cubre todas aquellas neuronas a las que est conectada la salida de Uj. De esta forma, el error que se produce en una neurona oculta es la suma de los errores que se producen en las neuronas a las que est conectada la salida de sta, multiplicando cada uno de ellos por el peso de la conexin.

Figura 6.14 Conexiones entre neuronas de la capa oculta con la capa de salida.

ADICIN DE UN MOMENTO EN LA REGLA DELTA GENERALIZADA El mtodo de retropropagacin del error, tambin conocido como del gradiente descendente, requiere un importante nmero de clculos para lograr el ajuste de los pesos de la red. En la implementacin del algoritmo, se toma una amplitud de paso que viene dada por la tasa de aprendizaje
Mg. Abraham Gamarra Moreno

. A mayor tasa de aprendizaje,


188

mayor es la modificacin de los pesos en cada iteracin, con lo que el aprendizaje ser ms rpido, pero, por otro lado. puede dar lugar a oscilaciones. Rumelhart, Hinton y Williams sugirieron que para filtrar estas oscilaciones se aada en la expresin del incremento de los pesos un trmino (momento), , de manera que dicha expresin quede:

w ji t 1

w ji t

pj

y pi

w ji t

w ji t 1

w ji t 1
donde

pj

y pi

w ji t

es una constante (momento) que determnale efecto en

t+1 del cambio de los pesos en el instante t. Con este momento se consigue la convergencia de la red en menor nmero de iteraciones, ya que si en t el incremento de un peso era positivo y en t+l tambin, entonces el descenso por la superficie de error en t+l es mayor. Sin embargo, si en t el incremento era positivo y en t+l es negativo, el paso que se da en t+1 es ms pequeo, lo cual es adecuado, ya que eso significa que se ha pasado por un mnimo y que los pasos deben ser menores para poder alcanzarlo. Resumiendo, el algoritmo backpropagation queda finalmente:

w ji t 1

w ji t

w ji t 1

w ji t 1
Mg. Abraham Gamarra Moreno

w ji t

pj

y pi

w ji t
189

donde:

pj

d pj

y pj

f 1 net j

si Uj es una neurona de salida y

pj k

pk

wkj

f 1 net j

si Uj no es una neurona de salida.

ESTRUCTURA Y APRENDIZAJE DE LA RED BACKPROPAGATION En una red backpropagation existe una capa de entrada con n neuronas y una capa de salida con m neuronas y al menos una capa oculta de neuronas internas. Cada neurona de una capa (excepto las de entrada) recibe entradas de todas las neuronas de la capa anterior y enva su salida a todas las neuronas de la capa posterior (excepto las de salida). No hay conexiones hacia atrs feedback ni laterales entre neuronas de la misma capa. La aplicacin del algoritmo backpropagation tiene dos fases, una hacia adelante y otra hacia atrs. Durante la primera fase el patrn de entrada es presentado a la red y propagado a travs de las capas hasta llegar a la capa de salida. Obtenidos los valores de salida de la red, se inicia la segunda fase, comparndose estos valores con la salida esperada para obtener el error. Se ajustan los pesos de la ltima capa proporcionalmente al error. Se pasa a la capa anterior con una retropropagacin del error (backpropagation), ajustando convenientemente los pesos y continuando con este proceso hasta llegar a la primera capa. De esta manera se han modificado los pesos de las conexiones de la red para cada ejemplo o patrn
Mg. Abraham Gamarra Moreno

190

de aprendizaje del problema, del que conocamos su valor de entrada y la salida deseada que debera generar la red ante dicho patrn (fig. 6.15).

A diferencia de la regla delta en el caso del Perceptron, la tcnica backpropagation o generalizacin de la regla delta, requiere el uso de neuronas cuya funcin de activacin sea continua, y por tanto, diferenciable. Generalmente, la funcin utilizada ser del tipo sigmoidal (Fig. 6.16).

A continuacin se presentan, a modo de sntesis. los pasos y frmulas a utilizar para aplicar el algoritmo de entrenamiento:

Paso 1

Inicializar los pesos de la red con valores pequeos aleatorios.

Paso 2

Presentar un patrn de entrada, Xp: xp1,.xp2,...,xpn, y especificar la salida deseada que debe generar la red: d1, d2,..., dM (si la red se utiliza como un clasificador, todas las salidas deseadas sern cero, salvo una, que ser la de la clase a la que pertenece el patrn de entrada).

Mg. Abraham Gamarra Moreno

191

Figura 6.15 Modelo de arquitectura de una red backpropagation. Pueden existir neuronas ficticias de salida y pesos umbral de entrada al resto de las neuronas de cada capa.

Mg. Abraham Gamarra Moreno

192

Figura 6.16 Funcin de activacin sigmoidal: y=1/1+e-x

Paso 3 Calcular la salida actual de la red, para ello presentamos las entradas a la red y vamos calculando la salida que presenta capa hasta llegar a la capa de salida sta ser la salida de la red y1, y2,...,yM. Los pasos son los siguientes: Se calculan las entradas netas para las neuronas ocultas procedentes de las neuronas de entrada. Para una neurona j oculta:
N

net

h pj i 1

wh ji

x pi

h j

en donde el ndice h se refiere a magnitudes de la capa oculta (hidden); el subndice p, al p-simo vector de entrenamiento, y j a la j-sima neurona oculta. El trmino pues acta como una entrada ms.
Mg. Abraham Gamarra Moreno

puede ser opcional,

193

Se calculan las salidas de las neuronas ocultas:

y pj

f jh net h pj

Se realizan los mismos clculos para obtener las salidas de las neuronas de salida (capa o: output)

net

o pk j 1

o wkj y pj

o k

y pk

f ko net o pk

Paso 4 Calcular los trminos de error para todas las neuronas. Si la neurona k es una neurona de la capa de salida, el valor de la delta es:

o pk

d pk

y pk

o1 k

net o pk

La funcin f, como se cit anteriormente, debe cumplir el requisito de ser derivable, lo que implica la imposibilidad de utilizar una funMg. Abraham Gamarra Moreno

194

cin escaln. En general, disponemos de dos formas de funcin de salida que nos pueden servir: la funcin lineal de salida (fk(netjk) = netjk) y la funcin sigmoidal representada en la figura 4.16 y definida por la expresin:

f k net jk

1 net 1 e jk

La seleccin de la funcin de salida depende de la forma en que se decida representar los datos de salida: si se desea que las neuronas de salida sean binarias, se utiliza la funcin sigmoidal, puesto que esta funcin es casi biestable y, adems, derivable. En otros casos es tan aplicable una funcin como otra.

Para la funcin lineal, tenemos: de una funcin f sigmoidal es:

f ko

mientras que la derivada

f ko
dan:

f ko 1 f ko

y pk 1 y pk

por lo que los trminos de error para las neuronas de salida que-

o pk
para la salida lineal, y

d pk

y pk

o pk

d pk

y pk

y pk 1 y pk

Mg. Abraham Gamarra Moreno

195

para la salida sigmoidal. Si la neurona j no es de salida, entonces la derivada parcial del error no puede ser evaluada directamente. Por tanto, se obtiene el desarrollo a partir de valores que son conocidos y otros que pueden ser evaluados. La expresin obtenida en este caso es:

h pj

h1 j

net h pj
k

o pk

o wkj

donde observamos que el error en las capas ocultas depende de todos los trminos de error de la capa de salida. De aqu surge el trmino de propagacin hacia atrs. En particular, para la funcin sigmoidal:
h pj o pk k o wkj

y pj 1 y pj

donde k se refiere a todas las neuronas de la capa superior a la de la neurona j. As, el error que se produce en una neurona oculta es proporcional a la suma de los errores conocidos que se producen en las neuronas a las que est conectada la salida de sta, multiplicado cada uno de ellos por el peso de la conexin. Los umbrales internos de las neuronas se adaptan de forma similar, considerando que estn conectados con pesos desde entradas auxiliares de valor constante. Paso 5 Actualizacin de los pesos
196

Mg. Abraham Gamarra Moreno

Para ello, utilizamos el algoritmo recursivo, comenzando por las neuronas de salida y trabajando hacia atrs hasta llegar a la capa de entrada, ajustando los pesos de la forma siguiente: Para los pesos de las neuronas de la capa de salida:

o wkj t 1

o wkj t

o wkj t 1

o wkj t 1

o pk

y pj

y para los pesos de las neuronas de la capa oculta:

wh t 1 ji wh t 1 ji

wh t ji
h pj

wh t 1 ji x pi

En ambos casos, para acelerar el proceso de aprendizaje, se puede aadir un trmino momento de valor: en el caso de la neurona de salida, y
o wkj t o wkj t 1

wh t ji

wh t 1 ji

cuando se trata de una neurona oculta. Paso 6 El proceso se repite hasta que el trmino de error
197

Mg. Abraham Gamarra Moreno

Ep

1 2 k 1

2 pk

resulta aceptablemente pequeo para cada uno de los patrones aprendidos.

Resumen Las redes neuronales artificiales permiten emular las neuronas biolgicas de nuestro cerebro. Para entrenar a una red neuronal se le debe suministrar un conjunto de filas con datos (patrones de entrenamiento). Uno de los algoritmos de aprendizaje de las redes neuronales es el backpropagation (retropropagacin). Indicadores de logro El lector es capaz de explicar el funcionamiento de las redes neuronales artificiales. Bibliografa Recomendada Freeman J, Skapura. Redes Neuronales. USA: Ed. Addison Wesley; 1993. Hian-Kang W. Neural Networks And Simulation Methods. USA: Editorial Marcel Dekker INC; 1994. Hilera J, Martinez V. Redes Neuronales Artificiales: Fundamentos, modelos y Aplicaciones. Espaa: Editorial RA-MA; 1995. Nexo
Mg. Abraham Gamarra Moreno

198

La siguiente unidad acadmica analiza la segunda parte del aprendizaje con redes neuronales artificiales.

Actividad

Cul es el uso de la red de hopfield?.

Muestre un ejemplo que utilice la red de hopfield.

Auto evaluacin formativa

Encuentre la solucin a los siguientes problemas:

PROBLEMA UNO

Cmo se calculan los pesos para la red de hopfield?.

Mg. Abraham Gamarra Moreno

199

UNIDAD ACADMICA 7 APRENDIZAJE CON REDES NEURONALES ARTIFICIALES PARTE 2

7.1. IMPLEMENTACIN NEURONALES

DE

APLICACIONES

CON

REDES

Para la implementacin de aplicaciones que utilicen redes neuronales artificiales, en este libro se utiliza el programa NEUROSHELL y el Visual Basic .NET.

7.1.1. ROBOT

DETECCIN DE OBSTCULOS POR MEDIO DE UN

Descripcin del problema5: Un robot es un dispositivo automtico que realiza acciones especficas, que dependen de las necesidades del proceso en que se encuentre involucrado, en este caso se tiene un robot que cuenta con cuatro sensores de proximidad en distintas ubicaciones que permanentemente detectan si hay objetos que se encuentren a una disMg. Abraham Gamarra Moreno

200

tancia superior o inferior a la preestablecida, con base en esto se decide si dar marcha adelante o atrs a cada uno de los dos motores que posee; en las lecturas de los sensores podran darse 16 posibles combinaciones (16=24) y para cada combinacin cada uno de los dos motores podra dar marcha adelante o marcha atrs (figura 7.1). El comportamiento del robot lo describe la tabla 7.1, cuando los sensores detecten un objeto que se encuentra a una distancia inferior a la predeterminada se dir que el objeto se encuentra cerca y esto se representa por medio de un 1 y cuando se detecte un objeto que se encuentra a una distancia mayor que la predeterminada se dir que el objeto esta lejos lo cual se indica con un 1; dependiendo de estas lecturas los motores podrn dar marcha adelante, lo que se representar por un 1 o dar marcha atrs con un 1.

Figura 7.1 Robot

Tabla 7.1 Comportamiento del robot S1 S2 S3 S4 M1 M2

Universidad Tecnolgica de Pereira. Colombia.

Mg. Abraham Gamarra Moreno

201

1 -1 1 -1 1 1 1

1 1 1 -1 -1 1 1

1 1 -1 -1 1 -1 1

1 1 -1 -1 1 1 -1

-1 -1 1 1 1 -1 1

-1 1 -1 1 -1 1 -1

Justificacin del tipo de red Este tipo de problema generalmente es resuelto suministrndole al robot una base de datos que contiene todas las posibles situaciones que se podran presentarse y sus respectivas soluciones, en este caso se necesitara almacenar las respuestas para ambos motores ante las 16 posibles combinaciones en las lecturas de los sensores, cuando el nmero de variables de entrada y el nmero de salidas es mucho mayor, la cantidad de datos necesarios para especificar cada posible situacin crece indefinidamente, debido a esto se requeriran dispositivos con gran capacidad de almacenamiento; en contraste una red neuronal puede entrenarse con un nmero representativo de patrones y aprender el comportamiento del sistema utilizando dispositivos de menos capacidad de almacenamiento y costo.

IMPLEMENTACION EN NEUROSHELL El ingreso al programa al NEUROSHELL se muestra en la figura 7.2.


Mg. Abraham Gamarra Moreno

202

Figura 7.2 Ingreso al Neuroshell

Luego del ingreso elija FILE, NEW e ingrese un nombre de archivo, como en la figura 7.3 (no escriba ninguna extensin para el archivo).

Figura 7.3.

Elija Beginners Neural Networks, realice click en el icono (figura 7.4).


Mg. Abraham Gamarra Moreno

203

Figura 7.4

Seleccione Data Entry (figura 7.5) e ingrese los datos de la tabla 7.1, para entrenar la red neuronal (figura 7.6). Se sugiere para el entrenamiento duplicar estos datos dos veces salvo el titulo de cada columna.

Mg. Abraham Gamarra Moreno

204

Figura 7.5

Figura 7.6

Luego de ingresar los datos cierre la ventana despus de haber grabado estos con File, Save File.

Ahora elija el icono

en la figura 7.5, en la lista desplegable

variable type selection elija input y haga clic debajo del nombre de cada entrada, este quedar marcado con I, luego elija Actual Output en la lista desplegable anterior y haga clic en el nombre de cada salida para la red neuronal. Ahora elija Settings y Compute mins/maxs. Cierre la ventana.
Mg. Abraham Gamarra Moreno

205

Las figuras 7.7 al 7.13 muestran el procedimiento a seguir hasta generar el cdigo fuente en C o Visual Basic.

En la figura 7.10 elija examinar datos para analizar los datos y los errores obtenidos a la salida.

El procedimiento de la figura 7.11 al 7.13 permite generar el cdigo fuente en C. Para nuestro caso elegiremos Visual Basic source code.

Figura 7.7

Mg. Abraham Gamarra Moreno

206

Figura 7.8

Figura 7.9

Mg. Abraham Gamarra Moreno

207

Figura 7.10

Figura 7.11

Mg. Abraham Gamarra Moreno

208

Figura 7.12

Figura 7.13

Mg. Abraham Gamarra Moreno

209

El cdigo generado en Visual Basic se genera en un archivo que tiene la extensin .VB y es un procedimiento en Visual Basic; que contiene el conocimiento en una red neuronal. Para nuestro caso el archivo es ROBOT.VB y se encuentra en la carpeta APLICACIN ROBOT del CD que acompaa al libro, cuyo contenido es:

'

Insert

this

code

into

your

VB

program

to

fire

the

D:\ABRAHAM\FILES2~2\EPG\MAESTA~1\IA\ROBOT network ' This code is designed to be simple and fast for porting to any machine. ' Therefore all code and weights are inline without looping or data storage ' which might be harder to port between compilers. Sub Fire_ROBOT (inarray(), outarray()) Dim netsum as double Static feature2(3) as double ' inarray(1) is S1 ' inarray(2) is S2 ' inarray(3) is S3 ' inarray(4) is S4 ' outarray(1) is M1 ' outarray(2) is M2 if (inarray(1)<-1) then inarray(1) = -1 if (inarray(1)> 1) then inarray(1) = 1 inarray(1) = (inarray(1) + 1) / 2 if (inarray(2)<-1) then inarray(2) = -1
Mg. Abraham Gamarra Moreno

210

if (inarray(2)> 1) then inarray(2) = 1 inarray(2) = (inarray(2) + 1) / 2 if (inarray(3)<-1) then inarray(3) = -1 if (inarray(3)> 1) then inarray(3) = 1 inarray(3) = (inarray(3) + 1) / 2 if (inarray(4)<-1) then inarray(4) = -1 if (inarray(4)> 1) then inarray(4) = 1 inarray(4) = (inarray(4) + 1) / 2 netsum = -.7532668 netsum = netsum + inarray(1) * 7.551737 netsum = netsum + inarray(2) * .2998328 netsum = netsum + inarray(3) * 7.341322 netsum = netsum + inarray(4) * -6.852577 feature2(1) = 1 / (1 + exp(-netsum)) netsum = -2.495483 netsum = netsum + inarray(1) * -5.648689 netsum = netsum + inarray(2) * 1.05053 netsum = netsum + inarray(3) * -5.979871 netsum = netsum + inarray(4) * 6.870361 feature2(2) = 1 / (1 + exp(-netsum)) netsum = -4.198974E-02 netsum = netsum + inarray(1) * 4.999131 netsum = netsum + inarray(2) * -3.897346 netsum = netsum + inarray(3) * 2.603323E-05 netsum = netsum + inarray(4) * -3.897321 feature2(3) = 1 / (1 + exp(-netsum))

Mg. Abraham Gamarra Moreno

211

netsum = .1287855 netsum = netsum + feature2(1) * -2.675452 netsum = netsum + feature2(2) * -2.65109 netsum = netsum + feature2(3) * 6.387748 outarray(1) = 1 / (1 + exp(-netsum))

netsum = 3.821959 netsum = netsum + feature2(1) * -6.030695 netsum = netsum + feature2(2) * 3.957484 netsum = netsum + feature2(3) * 8.61486E-03 outarray(2) = 1 / (1 + exp(-netsum))

outarray(1) = 2 * (outarray(1) - .1) / .8 + -1 if (outarray(1)<-1) then outarray(1) = -1 if (outarray(1)> 1) then outarray(1) = 1

outarray(2) = 2 * (outarray(2) - .1) / .8 + -1 if (outarray(2)<-1) then outarray(2) = -1 if (outarray(2)> 1) then outarray(2) = 1

End Sub

Ahora debemos generar una aplicacin en Visual Basic 6.0, que nos permita utilizar el cdigo que contiene a la red neuronal. Iniciamos creando un formulario que permita manipular las entradas y salidas que tiene la red neuronal (figura 7.14).

Mg. Abraham Gamarra Moreno

212

Figura 7.14. Formulario en Visual Basic que manipula las entradas y salidas de la red neuronal.

Luego modificamos el cdigo por defecto que tiene el formulario. El cdigo modificado debe quedar tal como se muestra en el listado siguiente: Private Sub Command1_Click() Dim e(4) As Double Dim s(2) As Double ' Asignacion de entradas e(1) = Val(Text1.Text) e(2) = Val(Text2.Text) e(3) = Val(Text3.Text) e(4) = Val(Text4.Text) ' llamada a la red neuronal Call Fire_ROBOT(e, s) ' mostrar salida

Mg. Abraham Gamarra Moreno

213

If (s(1) >= 0.9 And s(1) <= 1) Then Text5.Text = " motor gira hacia adelante" End If If (s(1) >= -1 And s(1) <= -0.9) Then Text5.Text = " motor gira hacia atrs" End If If (s(2) >= 0.9 And s(2) <= 1) Then Text6.Text = " motor gira hacia adelante" End If If (s(2) >= -1 And s(2) <= -0.9) Then Text6.Text = " motor gira hacia atrs" End If End Sub ' Insert this code into your VB program to fire the

D:\ABRAHAM\FILES2~2\EPG\MAESTA~1\IA\ROBOT network ' This code is designed to be simple and fast for porting to any machine. ' Therefore all code and weights are inline without looping or data storage ' which might be harder to port between compilers. Sub Fire_ROBOT(inarray() As Double, outarray() As Double) Dim netsum As Double Static feature2(3) As Double ' inarray(1) is S1 ' inarray(2) is S2 ' inarray(3) is S3 ' inarray(4) is S4 ' outarray(1) is M1
Mg. Abraham Gamarra Moreno

214

' outarray(2) is M2 If (inarray(1) < -1) Then inarray(1) = -1 If (inarray(1) > 1) Then inarray(1) = 1 inarray(1) = (inarray(1) + 1) / 2 If (inarray(2) < -1) Then inarray(2) = -1 If (inarray(2) > 1) Then inarray(2) = 1 inarray(2) = (inarray(2) + 1) / 2 If (inarray(3) < -1) Then inarray(3) = -1 If (inarray(3) > 1) Then inarray(3) = 1 inarray(3) = (inarray(3) + 1) / 2 If (inarray(4) < -1) Then inarray(4) = -1 If (inarray(4) > 1) Then inarray(4) = 1 inarray(4) = (inarray(4) + 1) / 2 netsum = -0.7532668 netsum = netsum + inarray(1) * 7.551737 netsum = netsum + inarray(2) * 0.2998328 netsum = netsum + inarray(3) * 7.341322 netsum = netsum + inarray(4) * -6.852577 feature2(1) = 1 / (1 + Exp(-netsum)) netsum = -2.495483 netsum = netsum + inarray(1) * -5.648689 netsum = netsum + inarray(2) * 1.05053 netsum = netsum + inarray(3) * -5.979871 netsum = netsum + inarray(4) * 6.870361 feature2(2) = 1 / (1 + Exp(-netsum))

Mg. Abraham Gamarra Moreno

215

netsum = -0.04198974 netsum = netsum + inarray(1) * 4.999131 netsum = netsum + inarray(2) * -3.897346 netsum = netsum + inarray(3) * 0.00002603323 netsum = netsum + inarray(4) * -3.897321 feature2(3) = 1 / (1 + Exp(-netsum)) netsum = 0.1287855 netsum = netsum + feature2(1) * -2.675452 netsum = netsum + feature2(2) * -2.65109 netsum = netsum + feature2(3) * 6.387748 outarray(1) = 1 / (1 + Exp(-netsum)) netsum = 3.821959 netsum = netsum + feature2(1) * -6.030695 netsum = netsum + feature2(2) * 3.957484 netsum = netsum + feature2(3) * 0.00861486 outarray(2) = 1 / (1 + Exp(-netsum)) outarray(1) = 2 * (outarray(1) - 0.1) / 0.8 + -1 If (outarray(1) < -1) Then outarray(1) = -1 If (outarray(1) > 1) Then outarray(1) = 1 outarray(2) = 2 * (outarray(2) - 0.1) / 0.8 + -1 If (outarray(2) < -1) Then outarray(2) = -1 If (outarray(2) > 1) Then outarray(2) = 1 End Sub Private Sub Command2_Click() End End Sub

Mg. Abraham Gamarra Moreno

216

Ntese que tambin se ha agregado el cdigo generado por el Neuroshell (contenido del archivo ROBOT.VB) Una vez modificado el cdigo ejecutamos el programa e ingresamos las entradas de la red neuronal y al presionar el boton Determinar la accion de los motores del robot con una red neuronal se debe obtener la salida que ofrece la red neuronal. Para nuestro caso se ha realizado la ejecucin con las entradas del ltimo patrn de entrenamiento de la tabla 7.1, esta ejecucin se muestra en la figura 7.15.

Figura 7.15. Ejecucin del programa que utiliza la red neuronal.

Cabe mencionar que las salidas de la red neuronal son cercanas o iguales a 1 -1 y se debe aproximar estas salidas a estos valores. Esta aproximacin se realiza a travs del siguiente cdigo:

If (s(1) >= 0.9 And s(1) <= 1) Then Text5.Text = " motor gira hacia adelante"
Mg. Abraham Gamarra Moreno

217

End If If (s(1) >= -1 And s(1) <= -0.9) Then Text5.Text = " motor gira hacia atrs" End If If (s(2) >= 0.9 And s(2) <= 1) Then Text6.Text = " motor gira hacia adelante" End If If (s(2) >= -1 And s(2) <= -0.9) Then Text6.Text = " motor gira hacia atrs" End If

7.1.2.

APLICACIN PARA SNTOMAS Y DIAGNSTICOS DE

AUTOMVILES Consideremos un ejemplo concreto de aplicacin de sntomas y diagnsticos. Emplearemos Como base para nuestro ejemplo una aplicacin de diagnstico para automviles. Concretamente, nos concentraremos en una aplicacin que diagnostique por qu no arranca un coche. Primero se definen los distintos sntomas que hay que considerar: No hace nada: no pasa nada cuando se hace girar la llave del contacto. Hace clic: cuando se da vuelta a la llave, se oyen fuertes chasquidos. Molinillo: cuando se da vuelta a la llave se oye un ruido parecido al de un molinillo. Arranque: el motor gira como si intentase arrancar, pero no es capaz de funcionar por s mismo.
Mg. Abraham Gamarra Moreno

218

Sin chispa: al sacar el cable de una buja y acercarlo al bloque cuando se intenta arrancar, en el motor no saltan chispas. Cable caliente: despus de intentar arrancar el motor, el cable que va de la batera a la bobina del motor de arranque est caliente. Sin gasolina: al sacar el tubo de gasolina del carburador (o inyector) e intentar arrancar el motor, no sale gasolina por el tubo. A continuacin, se consideran las posibles causas del problema, basndose en los sntomas: Batera: la batera est descargada Bobina del motor de arranque: falla la bobina del motor de arranque. Motor de arranque: falla el motor de arranque. Cables: fallan los cables del encendido. Distribuidor: el rotor o la tapa del distribuidor estn corrodos. Bomba de gasolina: falla la bomba de gasolina. Aunque nuestra lista no es una representacin Completa de todos los posibles problemas, los sntomas podran indicar alguno de estos problemas, o una combinacin de ellos. Para completar el ejemplo vamos a construir una matriz que indica la correspondencia de los sntomas con sus causas probables. La matriz se ha ilustrado en la tabla 7.2. Al inspeccionar la matriz se aprecia la variedad de problemas que puede indicar cualquier sntoma. La matriz tambin ilustra el problema que encontramos cuando se intenta programar un sistema
Mg. Abraham Gamarra Moreno

219

para llevar a cabo la funcin de diagnstico. Es raro que haya una correspondencia biunvoca entre sntomas y causas. Para tener xito, nuestro sistema automatizado debe ser capaz de correlacionar muchos sntomas distintos, y, en el caso de que alguno de los sntomas no se aprecie o est ausente, debe ser capaz de "llenar los espacios en blanco" del problema basndose solamente en los sntomas indicados.

Tabla 7.2. Para el problema de diagnsticos del automvil, se hacen corresponder los sntomas con las causas.

Causas probables Sntomas Batera Bobina Motor de Cables Distribuidor Bomba arranque de gasolina No hace X nada Clics X Molinillo Gira Sin chispa Cable caliente Sin solina gaX X X X X X X X X X X X X X

La solucin
220

Mg. Abraham Gamarra Moreno

Empleando los datos de nuestro ejemplo, ser necesaria una red con siete unidades de entrada y seis unidades de salida. Esto deja nicamente sin determinar el nmero de unidades internas (ocultas). En este caso, no hay nada que indique cuntas unidades ocultas se van a necesitar para resolver el problema, y no hay consideraciones de interfaz externa que vayan a limitar el nmero de unidades ocultas. Una ecuacin emprica segn Sierra6, para calcular el nmero de neuronas de una capa oculta es:

M 2* N
donde:

2*M N

M: Es el nmero de ejemplos con que vamos a entrenar a la red. N: Es el nmero de unidades de entradas. n: Es el nmero de neuronas que vamos a situar en capas intermedias El shell Neuroshell calcula la cantidad de neuronas ocultas para la red neuronal que se esta implementando. A continuacin, debemos definir los conjuntos de datos que sern utilizados para entrenar a la red. Volviendo de nuevo a la matriz de nuestro ejemplo, se pueden considerar los datos de los vectores fila de la matriz como tramas de entrada de siete dimensiones; esto es, para cada salida de causa probable que desearamos que aprendiera la red, hay siete sntomas posibles que indican el problema por su presencia o ausencia. Esta aproximacin proporcio1.
6

Sierra Molina, Guillermo y otros (1995). Sistemas Expertos en Contabilidad y Administracin de Empresas. Editorial Addison Wesley. USA.

Mg. Abraham Gamarra Moreno

221

nar siete pares de vectores de entrenamiento, cada uno de los cuales consta de una trama de sntomas de siete elementos y de una trama de indicacin de problema formada por seis elementos.

Haremos que la existencia de un sntoma quede indicada por un 1, y que la ausencia de un sntoma sea representada mediante un 0. Para cualquier vector de entrada dado, la causa o causas correctas se indican mediante un 1 lgico en la posicin correspondiente del vector de salida. Los pares de vectores de entrenamiento que se producen por la correspondencia de la matriz de sntomas y problemas para este ejemplo se muestran en la tabla 7.3. Si se comparan las tablas 7.2 y la tabla 7.3., se notarn pequeas diferencias.

Lo nico que queda ahora es entrenar a la red con estos pares de datos. Una vez que est entrenada, la red producir una salida que identifique a la causa probable indicada por el mapa de sntomas de entrada. La red har esto cuando la entrada sea equivalente a una de las entradas de entrenamiento, tal como se esperaba, y adems producir una salida, indicando la causa probable del problema, cuando la entrada sea parecida a alguna de las entradas de entrenamiento, pero distinta de todas ellas. Esta aplicacin ilustra la capacidad de la red para realizar la "mejor suposicin" (generalizacin) y pone de manifiesto la capacidad de la red para enfrentarse a entradas de datos con ruido o incompletas.

Tabla 7.3. Estos pares de vectores de entrenamiento se utilizan para el problema de diagnsticos del automvil.

Entrada de sntomas
Mg. Abraham Gamarra Moreno

Salida de causas probables


222

Bomba de gasoli0 0 1 1 0 0 1

Motor de arranque

Cable caliente

No hace nada

Sin gasolina

Distribuidor 0 0 1 1 1 0 0

Sin chispa

Molinillo

Batera

Bobina

Cables

Clics

Gira

1 0 0 0 0 0 0

0 1 0 0 0 0 0

0 0 1 0 0 0 0

0 0 0 1 0 0 0

0 0 0 0 1 0 0

0 0 0 0 0 1 0

0 0 0 0 0 0 1

1 1 0 0 0 0 0

0 1 0 0 0 1 0

0 1 1 0 0 1 0

0 0 1 1 1 0 0

Se puede utilizar el Neuroshell, para entrenar a la red neuronal con los datos de la tabla 7.3 y se debe obtener tambin el cdigo fuente en Visual Basic. La implementacion se encuentra en el CD que se adjunta al libro.

El formulario y la ejecucin del programa en Visual Basic 6.0, teniendo en cuenta el 4to patron de entrenamiento se muestra en la figura 7.16.

Mg. Abraham Gamarra Moreno

na
223

Figura 7.16. Ejecucin del programa en Visual Basic 6.0, teniendo en cuenta el 4 patron de entrenamiento de la tabla 7.3.

El cdigo del formulario debe ser modificado de la siguiente manera:

Private Sub Command1_Click() Dim e(7) As Double Dim s(6) As Double e(1) = Val(Text1.Text) e(2) = Val(Text2.Text) e(3) = Val(Text3.Text) e(4) = Val(Text4.Text) e(5) = Val(Text5.Text) e(6) = Val(Text6.Text) e(7) = Val(Text7.Text) Call Fire_DIAGNOST(e, s)
Mg. Abraham Gamarra Moreno

224

If (s(1) > 0.9 And s(1) <= 1) Then Text8.Text = "mal" End If If (s(1) >= 0 And s(1) < 0.1) Then Text8.Text = "bien" End If

If (s(2) > 0.9 And s(2) <= 1) Then Text9.Text = "mal" End If If (s(2) >= 0 And s(2) < 0.1) Then Text9.Text = "bien" End If If (s(3) > 0.9 And s(3) <= 1) Then Text10.Text = "mal" End If If (s(3) >= 0 And s(3) < 0.1) Then Text10.Text = "bien" End If If (s(4) > 0.9 And s(4) <= 1) Then Text11.Text = "mal" End If If (s(4) >= 0 And s(4) < 0.1) Then Text11.Text = "bien" End If If (s(5) > 0.9 And s(5) <= 1) Then Text12.Text = "mal"
Mg. Abraham Gamarra Moreno

225

End If If (s(5) >= 0 And s(5) < 0.1) Then Text12.Text = "bien" End If If (s(6) > 0.9 And s(6) <= 1) Then Text13.Text = "mal" End If If (s(6) >= 0 And s(6) < 0.1) Then Text13.Text = "bien" End If End Sub ' Insert this code into your VB program to fire the F:\FILES2~1\ANNOSA~1\ARCHIV~2\CAPITU~3\DIAGNO~1\DIAGN OST network ' This code is designed to be simple and fast for porting to any machine. ' Therefore all code and weights are inline without looping or data storage ' which might be harder to port between compilers. Sub Fire_DIAGNOST(inarray() As Double, outarray() As Double) Dim netsum As Double Static feature2(9) As Double ' inarray(1) is No_hace_Nada ' inarray(2) is Hace_Clics ' inarray(3) is Molinillo ' inarray(4) is Gira ' inarray(5) is Sin_chispa ' inarray(6) is Cable_caliente ' inarray(7) is Sin_gasolina
Mg. Abraham Gamarra Moreno

226

' outarray(1) is Batera ' outarray(2) is Bobina ' outarray(3) is Motor_de_arranque ' outarray(4) is Cables ' outarray(5) is Distribuidor ' outarray(6) is Bomba_de_gasolina If (inarray(1) < 0) Then inarray(1) = 0 If (inarray(1) > 1) Then inarray(1) = 1 inarray(1) = inarray(1) If (inarray(2) < 0) Then inarray(2) = 0 If (inarray(2) > 1) Then inarray(2) = 1 inarray(2) = inarray(2) If (inarray(3) < 0) Then inarray(3) = 0 If (inarray(3) > 1) Then inarray(3) = 1 inarray(3) = inarray(3) If (inarray(4) < 0) Then inarray(4) = 0 If (inarray(4) > 1) Then inarray(4) = 1 inarray(4) = inarray(4) If (inarray(5) < 0) Then inarray(5) = 0 If (inarray(5) > 1) Then inarray(5) = 1 inarray(5) = inarray(5) If (inarray(6) < 0) Then inarray(6) = 0 If (inarray(6) > 1) Then inarray(6) = 1 inarray(6) = inarray(6) If (inarray(7) < 0) Then inarray(7) = 0
Mg. Abraham Gamarra Moreno

227

If (inarray(7) > 1) Then inarray(7) = 1 inarray(7) = inarray(7) netsum = -0.3115481 netsum = netsum + inarray(1) * 0.7032344 netsum = netsum + inarray(2) * 0.1466639 netsum = netsum + inarray(3) * 2.036957 netsum = netsum + inarray(4) * -0.4733835 netsum = netsum + inarray(5) * -0.4653012 netsum = netsum + inarray(6) * -1.454124 netsum = netsum + inarray(7) * -0.7716009 feature2(1) = 1 / (1 + Exp(-netsum)) netsum = -0.007483043 netsum = netsum + inarray(1) * -0.7950581 netsum = netsum + inarray(2) * -1.6701 netsum = netsum + inarray(3) * 1.082342 netsum = netsum + inarray(4) * 0.8707346 netsum = netsum + inarray(5) * -0.3615806 netsum = netsum + inarray(6) * -0.6289499 netsum = netsum + inarray(7) * 0.9206671 feature2(2) = 1 / (1 + Exp(-netsum)) netsum = 0.3411922 netsum = netsum + inarray(1) * 1.407685 netsum = netsum + inarray(2) * 1.998027 netsum = netsum + inarray(3) * -1.747856 netsum = netsum + inarray(4) * -1.269704 netsum = netsum + inarray(5) * -2.329731 netsum = netsum + inarray(6) * 1.356552 netsum = netsum + inarray(7) * 1.647663 feature2(3) = 1 / (1 + Exp(-netsum))
Mg. Abraham Gamarra Moreno

228

netsum = -0.2768248 netsum = netsum + inarray(1) * 2.065744 netsum = netsum + inarray(2) * -1.146601 netsum = netsum + inarray(3) * -0.9325874 netsum = netsum + inarray(4) * -1.517177 netsum = netsum + inarray(5) * 0.2812504 netsum = netsum + inarray(6) * -0.6556798 netsum = netsum + inarray(7) * 1.173773 feature2(4) = 1 / (1 + Exp(-netsum)) netsum = -0.1239126 netsum = netsum + inarray(1) * -1.830723 netsum = netsum + inarray(2) * 0.8275196 netsum = netsum + inarray(3) * 0.2012251 netsum = netsum + inarray(4) * -0.7351373 netsum = netsum + inarray(5) * 0.5414248 netsum = netsum + inarray(6) * 2.384689 netsum = netsum + inarray(7) * -1.566727 feature2(5) = 1 / (1 + Exp(-netsum)) netsum = 0.0145554 netsum = netsum + inarray(1) * -0.4000922 netsum = netsum + inarray(2) * -1.257582 netsum = netsum + inarray(3) * 0.8750437 netsum = netsum + inarray(4) * 1.78116 netsum = netsum + inarray(5) * 1.741183 netsum = netsum + inarray(6) * -2.168171 netsum = netsum + inarray(7) * -0.9200088 feature2(6) = 1 / (1 + Exp(-netsum)) netsum = 0.3624522
Mg. Abraham Gamarra Moreno

229

netsum = netsum + inarray(1) * -1.666589 netsum = netsum + inarray(2) * -2.92119 netsum = netsum + inarray(3) * 1.415627 netsum = netsum + inarray(4) * 0.1193302 netsum = netsum + inarray(5) * 0.3643235 netsum = netsum + inarray(6) * 1.332756 netsum = netsum + inarray(7) * 1.651392 feature2(7) = 1 / (1 + Exp(-netsum)) netsum = -0.08557819 netsum = netsum + inarray(1) * 0.3886256 netsum = netsum + inarray(2) * -2.094244 netsum = netsum + inarray(3) * -1.564476 netsum = netsum + inarray(4) * 1.770092 netsum = netsum + inarray(5) * 0.9950833 netsum = netsum + inarray(6) * -1.562377 netsum = netsum + inarray(7) * 1.671334 feature2(8) = 1 / (1 + Exp(-netsum)) netsum = -0.2997127 netsum = netsum + inarray(1) * 1.399435 netsum = netsum + inarray(2) * -0.1395936 netsum = netsum + inarray(3) * -1.913407 netsum = netsum + inarray(4) * -0.9458458 netsum = netsum + inarray(5) * 2.404087 netsum = netsum + inarray(6) * 0.6442617 netsum = netsum + inarray(7) * -1.377198 feature2(9) = 1 / (1 + Exp(-netsum)) netsum = 0.8538765 netsum = netsum + feature2(1) * 1.642975 netsum = netsum + feature2(2) * -1.08525
Mg. Abraham Gamarra Moreno

230

netsum = netsum + feature2(3) * 1.692052 netsum = netsum + feature2(4) * 0.5226364 netsum = netsum + feature2(5) * -1.016138 netsum = netsum + feature2(6) * 0.3381723 netsum = netsum + feature2(7) * -4.312466 netsum = netsum + feature2(8) * -0.8845294 netsum = netsum + feature2(9) * 0.3042739 outarray(1) = 1 / (1 + Exp(-netsum)) netsum = 0.6356097 netsum = netsum + feature2(1) * -1.699543 netsum = netsum + feature2(2) * -0.8347372 netsum = netsum + feature2(3) * 1.740408 netsum = netsum + feature2(4) * -2.244962 netsum = netsum + feature2(5) * 2.778615 netsum = netsum + feature2(6) * -1.380548 netsum = netsum + feature2(7) * -1.0302 netsum = netsum + feature2(8) * -1.023457 netsum = netsum + feature2(9) * -0.1288214 outarray(2) = 1 / (1 + Exp(-netsum)) netsum = 0.8881556 netsum = netsum + feature2(1) * 1.621511 netsum = netsum + feature2(2) * -0.03661929 netsum = netsum + feature2(3) * 0.1688382 netsum = netsum + feature2(4) * -1.013181 netsum = netsum + feature2(5) * 2.699184 netsum = netsum + feature2(6) * -1.219513 netsum = netsum + feature2(7) * 0.4337809 netsum = netsum + feature2(8) * -3.760823 netsum = netsum + feature2(9) * -1.450161 outarray(3) = 1 / (1 + Exp(-netsum))
Mg. Abraham Gamarra Moreno

231

netsum = -0.1752312 netsum = netsum + feature2(1) * 0.7248147 netsum = netsum + feature2(2) * 0.4916552 netsum = netsum + feature2(3) * -3.363693 netsum = netsum + feature2(4) * -1.489237 netsum = netsum + feature2(5) * 0.3150889 netsum = netsum + feature2(6) * 2.669589 netsum = netsum + feature2(7) * 0.2992842 netsum = netsum + feature2(8) * 0.4325282 netsum = netsum + feature2(9) * 0.1342072 outarray(4) = 1 / (1 + Exp(-netsum)) netsum = -0.2363798 netsum = netsum + feature2(1) * 0.8358494 netsum = netsum + feature2(2) * 0.6256061 netsum = netsum + feature2(3) * -3.400938 netsum = netsum + feature2(4) * -1.574203 netsum = netsum + feature2(5) * 0.3605849 netsum = netsum + feature2(6) * 2.502021 netsum = netsum + feature2(7) * 0.2546888 netsum = netsum + feature2(8) * 0.5457298 netsum = netsum + feature2(9) * 0.2242781 outarray(5) = 1 / (1 + Exp(-netsum)) netsum = -0.1454982 netsum = netsum + feature2(1) * 0.7328083 netsum = netsum + feature2(2) * 1.886714 netsum = netsum + feature2(3) * 0.05207601 netsum = netsum + feature2(4) * -1.110788 netsum = netsum + feature2(5) * -1.82287 netsum = netsum + feature2(6) * 0.5481207
Mg. Abraham Gamarra Moreno

232

netsum = netsum + feature2(7) * 1.574738 netsum = netsum + feature2(8) * 1.149344 netsum = netsum + feature2(9) * -4.210217 outarray(6) = 1 / (1 + Exp(-netsum))

outarray(1) = (outarray(1) - 0.1) / 0.8 If (outarray(1) < 0) Then outarray(1) = 0 If (outarray(1) > 1) Then outarray(1) = 1

outarray(2) = (outarray(2) - 0.1) / 0.8 If (outarray(2) < 0) Then outarray(2) = 0 If (outarray(2) > 1) Then outarray(2) = 1

outarray(3) = (outarray(3) - 0.1) / 0.8 If (outarray(3) < 0) Then outarray(3) = 0 If (outarray(3) > 1) Then outarray(3) = 1

outarray(4) = (outarray(4) - 0.1) / 0.8 If (outarray(4) < 0) Then outarray(4) = 0 If (outarray(4) > 1) Then outarray(4) = 1

outarray(5) = (outarray(5) - 0.1) / 0.8 If (outarray(5) < 0) Then outarray(5) = 0 If (outarray(5) > 1) Then outarray(5) = 1

outarray(6) = (outarray(6) - 0.1) / 0.8 If (outarray(6) < 0) Then outarray(6) = 0 If (outarray(6) > 1) Then outarray(6) = 1

End Sub
Mg. Abraham Gamarra Moreno

233

7.1.3.

CONCESIN DE AYUDAS POR ESTUDIOS

El problema consiste en determinar cul es el tipo de ayuda, que se puede conceder por estudios a un trabajador en una empresa, en base a concesiones otorgadas en otros casos. Para la concesin se toman los siguientes atributos: salario del trabajador, tipo de estudios a realizar, y antigedad en la empresa. La empresa cuenta con la informacin de la tabla 7.4 referida a ayudas concedidas en ejercicios anteriores.

Tabla 7.4. Ayudas concedidas con ejercicios anteriores

Mg. Abraham Gamarra Moreno

234

Tabla 7.4. Ayudas concedidas con ejercicios anteriores (continuacin)

Mg. Abraham Gamarra Moreno

235

Tabla 7.4. Ayudas concedidas con ejercicios anteriores (continuacin)

Se puede utilizar el Neuroshell, para entrenar a la red neuronal con los datos de la tabla 7.4 y se debe obtener tambin el cdigo fuente en Visual Basic. La implementacin se encuentra en el CD que se adjunta al libro.

El formulario y la ejecucin del programa en Visual Basic 6.0, teniendo en cuenta el 16 avo patrn de entrenamiento se muestra en la figura 7.17.

Mg. Abraham Gamarra Moreno

236

Figura 7.17. Ejecucin del programa en Visual Basic 6.0, teniendo en cuenta el 16 avo patrn de entrenamiento de la tabla 4.7.

7.1.4.

IMPLEMENTACIN DE OTRAS APLICACIONES CON

REDES NEURONALES ARTIFICIALES En el CD se encuentra la implementacin del reconocimiento de los caracteres A y B, utilizando Neuroshell y Visual Basic .NET. Adems se implementa el ejemplo de la identificacin de animales de la tabla 6.2. Resumen El Neuroshell es un programa que permite generar cdigo fuente en C y en Visual Basic utilizando algunos datos de entrenamiento dispuestos en filas. Indicadores de logro
Mg. Abraham Gamarra Moreno

237

El lector es capaz de realizar aplicaciones con el uso de redes neuronales artificiales.

Bibliografa Recomendada Freeman J, Skapura. Redes Neuronales. USA: Ed. Addison Wesley; 1993. Hian-Kang W. Neural Networks And Simulation Methods. USA: Editorial Marcel Dekker INC; 1994. Hilera J, Martinez V. Redes Neuronales Artificiales: Fundamentos, modelos y Aplicaciones. Espaa: Editorial RA-MA; 1995. Nexo La siguiente unidad acadmica analiza el uso de la Lgica Difusa. Actividad Investigue sobre las aplicaciones de las redes neuronales artificiales. Auto evaluacin formativa Encuentre la solucin a los siguientes problemas:

PROBLEMA UNO Desarrolle 2 casos libres donde se implemente el uso de redes neuronales artificiales.

Mg. Abraham Gamarra Moreno

238

UNIDAD ACADMICA 8 LGICA DIFUSA

8.1. TEORA DE LA CERTEZA Una alternativa a la teora de la probabilidad para el razonamiento inexacto en los sistemas expertos, es la teora de la certeza. Los expertos a menudo toman juicios cuando resuelven un problema. La informacin que se tiene puede ser incompleta y el conocimiento utilizado para interpretar la informacin puede crear desconfianza en el resultado final. Una pregunta para un problema medico puede ser la siguiente : Tiene una fuerte jaqueca?. La respuesta es incierta, porque es subjetiva y requiere que el usuario elabore un juicio al contestar la
Mg. Abraham Gamarra Moreno

239

pregunta; por supuesto el usuario se siente mejor al contestar con verdadero o falso. Por otro lado, el usuario podra contestar asignando un nmero subjetivo a su respuesta entre 0 y 1, tal como 0.7, que significa 70% de certeza en su respuesta. El nmero no tiene base estadstica ni probabilstica, ms bien es el nivel de creencia de la respuesta dada.

8.1.1.

FACTOR DE CERTEZA

Medida de la creencia que tiene un experto humano en la ocurrencia de un hecho. Nmero que refleja el nivel de creencia de una hiptesis. La figura 8.1 muestra como se interpreta la teora de la certeza.

Falso

Verdadero

Factor de certeza

Figura 8.1. Factor de Certeza 8.2. FACTORES DE CERTEZA EN SISTEMAS BASADOS EN REGLAS Los sistemas basados en reglas utilizan la siguiente representacin: SI (CONDICION ) ENTONCES (CONCLUSION)

Aadiremos ahora el factor de certeza (FC) a los elementos de la regla de la siguiente forma:
Mg. Abraham Gamarra Moreno

240

Rx : SI p Y q ENTONCES r FCx FCp FCq FCr

Para obtener la certeza de la conclusin en una regla de condicin simple, se tiene que dado: Rx : SI p FCx FCp ENTONCES r FCr

El Factor de certeza de la conclusin es: FCr = FCp * FCx La certeza de una conclusin en reglas de condicin mltiple, se obtiene considerando si existe conjuncin o disyuncin. Para reglas donde exista conjuncin, se tiene que dado: Rx : SI p Y q Y r ..Y.. z ENTONCES c FCx FCp FCq FCr FCz FCc

El Factor de certeza de la conclusin es: FCc = min (FCp, FCq, FCr, ... , FCz)* FCx La funcin min retorna el mnimo valor del conjunto de nmeros. Para reglas donde exista disyuncin, se tiene que dado:
241

Mg. Abraham Gamarra Moreno

Rx : SI p O q O r ..O.. z ENTONCES c FCx FCp FCq FCr FCz FCc

El Factor de certeza de la conclusin es: FCc = max (FCp, FCq, FCr, ... , FCz)* FCx La funcin max retorna el mximo valor del conjunto de nmeros. Ejemplo: Encontrar el factor de certeza de x (FCx=?). Si se tienen las siguientes reglas: R1 : SI a Y b 0.9 0.8 0.85 ENTONCES c FCc ENTONCES e FCe ENTONCES x FCx

R2 : SI c O d 1.0 0.90

R3 : SI e Y f 0.8 Solucin: Hallando FCc 0.8

FCc = min(0.8, 0.85)*0.9 = 0.8*0.9 = 0.72 Hallando FCe FCe = max(FCc, 0.9)*1.0 = max(0.72, 0.9)*1.0 FCe = 0.9 * 1.0 = 0.9 Hallando FCx
242

Mg. Abraham Gamarra Moreno

FCx = min(FCe, 0.8)*0.8 = min(0.9, 0.8)*0.8 FCx = 0.8 * 0.8 = 0.64 (Respuesta)

Si las conclusiones son similares dado dos o ms reglas como se muestra a continuacin: Dados

R1 : SI a Y b FCR1 FCa

ENTONCES x FCx_R1 ENTONCES x FCx_R2

FCb

R2 : SI c O d FCR2 FCc FCd

El factor de certeza se calcula utilizando la siguiente expresin: FCx_R1_R2 = FCx_R1 + FCx_R2 FCx_R1 * FCx_R2 El clculo de FCx_R1 y FCx_R2 utiliza los procedimientos ya mencionados anteriormente. 8.3. LGICA DIFUSA

8.3.1.

HISTORA DE LA LGICA DIFUSA

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
Mg. Abraham Gamarra Moreno

243

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

Mg. Abraham Gamarra Moreno

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

8.3.2.

QUE ES LA LGICA DIFUSA?

Es una rama de la lgica que usa grados de membresa (pertenencia) a los conjuntos en lugar de pertenecer a ellos como verdadero o falso El trmino difuso procede de la palabra inglesa fuzz que sirve para denominar la pelusa que recubre el cuerpo de lo polluelos al poco de salir del huevo. Este trmino ingls significa confuso, borroso, indefinido o desenfocado. Este trmino se traduce por flou en frances y aimai en japones. Aunque la teora de conjuntos difusos presente cierta complejidad, el concepto bsico es fcilmente comprensible. Tomemos como ejemplo el concepto de mediana edad. Al escuchar el termino mediana edad, nuestra mente asocia automticamente la imagen de ciertas personas o tipos de personas. Pero este es un concepto con lmites imprecisos que no puede ser tratado por el programa de un ordenador, que ordinariamente exige que
Mg. Abraham Gamarra Moreno

245

las cosan sean definidas. Es aqu donde entra la Lgica Difusa. Supongamos que hemos llegado a la conclusin de que la edad mediana son los 45 aos. Sin embargo no podemos descartar a las personas de 35 o 55 aos como edad mediana. Por el contrario, los menores de 30 aos y los mayores de 60 tampoco se pueden considerar radicalmente como no de mediana edad. De tal forma creamos tres crculos. El primero, el de los jvenes va de los 0 hasta los treinta y cinco aos, el segundo el de la mediana edad va de los treinta hasta los cincuenta y cinco aos, y por ultimo el de la tercera edad que va de los cincuenta en adelante. Podemos observar que desde el punto de vista de los conjuntos difusos el periodo de edad de los treinta a los treinta y cinco puede considerarse tanto dentro del crculo joven como el de mediana edad. Otro tanto ocurre entre los cincuenta y los cincuenta y cinco aos que pueden concebirse dentro de la mediana edad y de la tercera edad. Estas transiciones de valoracin facilitan la expresin matemtica de las expresiones difusas o indefinidas, y con ello dan la posibilidad de hacer programas para ordenadores que interpreten las expresiones humanas que normalmente son imprecisas para la matemtica tradicional.

8.3.3.

VARIABLES LINGSTICAS

Los Conjuntos Difusos son capaces de captar por s mismos la vaguedad lingstica de palabras y frases comnmente aceptadas, como "gato pardo" o "ligero cambio". La habilidad humana de comunicarse mediante definiciones vagas o inciertas es un atributo importante de la inteligencia. Una Variable Lingstica es aquella variable cuyos valores son palabras o sentencias son vagas o imprecisas. Para estas variables linMg. Abraham Gamarra Moreno

246

gsticas se utilizar un nombre y un valor lingstico sobre un Universo de Discurso. Los Conjuntos Difusos pueden utilizarse para representar expresiones tales como: x es PEQUEO. (X es una variable lingstica) La velocidad es RPIDA. (velocidad es una variable lingstica) El ganso es CLARO. (ganso es una variable lingstica) Las expresiones anteriores pueden dar lugar a expresiones lingsticas ms complejas como: x no es PEQUEO. La velocidad es RPIDA pero no muy RPIDA. El ganso es CLARO y muy ALEGRE. Tambin se puede utilizar los distintos modificadores lingsticos como muy, poco, rpido, lento, etc.

8.3.4.

TEORA DE CONJUNTOS DIFUSOS

Una buena estrategia para presentar la teora de Conjuntos Difusos, consiste en recordar algunos aspectos de la teora de conjuntos convencionales (que llamaremos conjuntos concretos), y a partir de all hacer una extensin a los conjuntos difusos: Un conjunto concreto se define como una coleccin de elementos que existen dentro de un Universo. As, si el universo consta de los nmeros enteros no negativos menores que 10: U={0,1,2,3,4,5,6,7,8,9} entonces podemos definir algunos conjuntos como, por ejemplo:
Mg. Abraham Gamarra Moreno

247

A={0,2,4,6,8} B={1,3,5,7,9} C={1,4,7}, etc. Con estas definiciones hemos establecido que cada uno de los elementos del Universo pertenecen o no a un determinado conjunto. Por lo tanto, cada conjunto puede definirse completamente por una funcin de pertenencia, que opera sobre los elementos del Universo, y que le asigna un valor de 1 si el elemento pertenece al conjunto, y de 0 si no pertenece. Tomando como ejemplo el conjunto C enumerado arriba, su funcin de pertenencia uC(x) sera de la siguiente forma: uC(0)=0, uC(1)=1, uC(2)=0, uC(3)=0, uC(4)=1, uC(5)=0,

uC(6)=0, uC(7)=1, uC(8)=0, uC(9)=0 Ahora bien, un Conjunto Difuso se define de forma similar, con una diferencia conceptual importante: un elemento puede pertenecer parcialmente a un conjunto. De esta forma, un conjunto difuso D definido sobre el mismo universo U puede ser el siguiente: D={20%/1,50%/4,100%/7}7 La definicin anterior significa que el elemento 1 pertenece en un 20% al conjunto D (y por tanto pertenece en un 80% al complemento de D), en tanto que el elemento 4 pertenece en un 50%, y el elemento 7 en un 100% . En forma alternativa, diramos que la funcin de pertenencia uD(x) del conjunto D es la siguiente:
7

Se ha empleado una notacin frecuente, en donde el signo "/" no significa "dividido por". 248

Mg. Abraham Gamarra Moreno

uD(0)=0.0,

uD(1)=0.2,

uD(2)=0.0,

uD(3)=0.0,

uD(4)=0.5,

uD(5)=0.0, uD(6)=0.0, uD(7)=1.0, uD(8)=0.0, uD(9)=0.0 Las primeras diferencias que se hacen evidentes entre los Conjuntos Concretos y los Conjuntos Difusos son las siguientes: etos slo puede tener dos valores: 1 0, mientras que en los conjuntos difusos puede tener cualquier valor entre 0 y 1. njunto difuso y simultneamente pertenecer (parcialmente) al complemento de dicho conjunto. Lo anterior no es posible en los conjuntos concretos, ya que constituira una violacin al principio del tercer excluido. nto que las de un conjunto difuso son, precisamente, difusas, ya que existen elementos en las fronteras mismas, y estos elementos estn a la vez dentro y fuera del conjunto. Qu sentido puede tener el pertenecer parcialmente a un conjunto? En muchos casos puede tener ms sentido que pertenecer totalmente a un conjunto; veamos algunos ejemplos: Ejemplo 1: Supngase que se desea definir el conjunto de los estudiantes de la carrera de Ingeniera de Sistemas de la Universidad que estn cursando el quinto semestre de la carrera. Cmo clasificar a un estudiante que cursa dos materias de cuarto semestre, tres de quinto y una de sexto? y a otro que toma una materia de quinto semestre, y cinco de sexto? Evidentemente ambos son en parte miembros del conjunto Estudiantes de quinto semestre, pero slo lo son parcialmente.
249

Mg. Abraham Gamarra Moreno

Ejemplo 2: Supngase que se desea clasificar a los miembros de un equipo de ftbol segn su estatura en tres conjuntos, Bajos, Medianos y Altos. Podra plantearse que se es Bajo si se tiene una estatura inferior a, por ejemplo, 160 cm, que se es Mediano si la estatura es superior o igual a 160 cm e inferior a 180 cm, y se es alto si la estatura es superior o igual a 180 cm, con lo que se lograra una clasificacin en conjuntos concretos. Sin embargo, qu tan grande es la diferencia que existe entre dos jugadores del equipo, uno con estatura de 179.9 cm y otro de 180.0 cm? Ese milmetro de diferencia quizs no represente en la prctica algo significativo, y sin embargo los dos jugadores han quedado rotulados con etiquetas distintas: uno es Mediano y el otro es Alto. Si se optase por efectuar la misma clasificacin con conjuntos difusos estos cambios abruptos se evitaran, debidos a que las fronteras entre los conjuntos permitiran cambios graduales en la clasificacin. La figura 8.2 muestra cmo podra hacerse tal clasificacin: El universo de discurso sera el conjunto continuo de todas las posibles estaturas (el intervalo [130cm, 210]cm por ejemplo). Las funciones de pertenencia de cada uno de los tres conjuntos Bajo, Mediano y Alto se han graficado. La forma de estas funciones de pertenencia no debe ser necesariamente la de la ilustracin 2, pues depende de lo que se entienda por "Bajo", "Mediano" y "Alto". Las figuras 8.3 y 8.4 muestran otras alternativas para definir dichas funciones.

Mg. Abraham Gamarra Moreno

250

Figura 8.2 Funciones de pertenencia del ejemplo 2.

Figura 8.3 Representacin alternativa del ejemplo 2.

Figura 8.4 Representacin alternativa del ejemplo 2.

Mg. Abraham Gamarra Moreno

251

Ejemplo 3: Tmese un individuo x cuya edad sea de 20 aos. Como se puede observar en la figura 8.5, pertenece al Conjunto Difuso "Joven" y al Conjunto Difuso "Maduro".

Figura 8.5. Ejemplo de Conjuntos Difusos en el universo de la edad.

Se puede observar que posee un grado de pertenencia A(x) de 0.6 para el Conjunto Difuso "Joven" y un grado de 0.4 para el Conjunto Difuso "Maduro"; tambin posee un grado de 0 para "Viejo". De este ejemplo se puede deducir que un elemento puede pertenecer a varios Conjuntos Difusos a la vez aunque con distinto grado. As, nuestro individuo x tiene un grado de pertenencia mayor al conjunto "Joven " que al conjunto "Maduro"(0.6 > 0.4), pero no se puede decir, tratndose de Conjuntos Difusos, que x es joven o que x es maduro de manera rotunda.
252

Mg. Abraham Gamarra Moreno

8.3.5.

APROXIMACIN DE LAS FUNCIONES DE PERTENEN-

CIA EN LOS CONJUNTOS DIFUSOS Para realizar la aproximacin de las funciones de pertenencia de los conjuntos difusos, comenzaremos definiendo que conjuntos difusos formaran el universo de discurso. Supongamos la variable lingstica edad y sus conjuntos difusos joven y adulto, los cuales se obtuvieron en una encuesta a 10 personas para saber cual es el rango en aos para definir estas edades. Las preguntas utilizadas fueron: Cul es el rango en aos para un joven? Cul es el rango en aos para un adulto? Las respuestas se muestran en las tablas 3.12 y 3.13.

El valor de FREC. Difuso se calcula de acuerdo a la siguiente formula:

FREC _ DIFUSA

FREC MAXIMO _ FREC

Con el resultado de las tablas 8.1 y 8.2., realizamos una grafica con la EDAD y FREC DIFUSO que representan a las funciones de pertenencia. Las funciones de pertenencia se muestran en las figuras 8.6 y 8.7 para edad joven y edad adulta.

Mg. Abraham Gamarra Moreno

253

Tabla 8.1. Rango en aos para definir a un joven

Tabla 8.2 Rango en aos para definir a un adulto

Mg. Abraham Gamarra Moreno

254

1,2 1 0,8 0,6 0,4 0,2 0


15 18 21 24 27 30 33

Figura 8.6 Funcin de pertenencia de edad joven

Mg. Abraham Gamarra Moreno

255

1,2

0,8

0,6

0,4

0,2

0 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

Figura 8.7 Funcin de pertenencia de edad adulta

Una vez obtenidas las funciones podramos aproximarlos a una de las funciones estndar que tiene la lgica difusa.

8.3.6.

OPERACIONES ENTRE CONJUNTOS DIFUSOS

Los Conjuntos Difusos se pueden operar entre s del mismo modo que los conjuntos clsicos. Puesto que los primeros son una generalizacin de los segundos, es posible definir las operaciones de interseccin, unin y complemento haciendo uso de las mismas funciones de pertenencia: Interseccin: Unin: (u)=min( (u), (u), (u)) u

(u)=max(

(u)) u (u)) u
256

Complemento:

(u)=1-

(u),

Mg. Abraham Gamarra Moreno

Las ilustraciones de la interseccin, unin y complemento de la figura 8.8, se muestran en las figuras 8.9, 8.10 y 8.11 respectivamente.

Figura 8.8. Funciones de pertenencia del ejemplo 2

Figura 8.9 Interseccin de la figura 8.8.

Mg. Abraham Gamarra Moreno

257

Figura 8.10 Unin de la figura 8.8.

Figura 8.11 Complemento de la figura 8.8. 8.4. DESARROLLO DE UN SISTEMA DIFUSO BASADO EN REGLAS

8.4.1.

DEFINICIN DEL PROBLEMA

Se desea disear un sistema difuso para estimar las ventas mensuales de computadoras teniendo como datos de entrada el precio de la computadora y el nivel de ingresos del cliente.

8.4.2.

DEFINICIN DE LAS VARIABLES LINGSTICAS

Las variables son:


Mg. Abraham Gamarra Moreno

258

Precio de la computadora y Nivel de ingreso: Variables independientes. Ventas: Variables dependientes.

Precio

Sistema Difuso

Ventas

Nivel de Ingreso

El universo de discurso de cada variable ser: Precio de la computadora: $500 - $2500 Nivel de ingresos del cliente: $100 - $1000 Ventas mensuales de computadoras: $10 000 - $50 000

8.4.3.

DEFINICIN DE LOS CONJUNTOS DIFUSOS

Para cada una de las variables, definimos los conjuntos difusos, de acuerdo a los adjetivos tpicos utilizados en relacin con estas variables. A continuacin se muestra la definicin de los conjuntos difusos para cada variable:

VARIABLE
Mg. Abraham Gamarra Moreno

ADJETIVOS

RANGO
259

Barato Precio Accesible Caro Bajo Nivel de Ingreso ($) Medio Alto Baja Ventas Normal ($) Alta

500 - 1500 1000 2000 1500 - 2500 100 500 300 - 800 600 1000 10 30 (x 103) 10 50 (x 103) 30 50 (x 103)

La representacin de las funciones de pertenencia se muestra en las figuras 8.12, 8.13 y 8.14.

Accesible

Caro

Barato

500

1000

1500

2000

2500

Figura 8.12 Funciones de pertenencia para la variable Precio de la Computadora

Mg. Abraham Gamarra Moreno

260

Bajo

Medio

Alto

100

200

300

500

600

800 900 1000

Figura 8.13 Funciones de pertenencia para la variable Nivel de Ingreso del Cliente.

Baja

Normal

Alta

10

20

30

40

50

Figura 8.14 Funciones de pertenencia para la variable Ventas mensuales

Mg. Abraham Gamarra Moreno

261

8.4.4.

DEFINICIN DE LA REGLAS DIFUSAS

Para definir las reglas utilizamos la siguiente tabla de decisiones: VARIABLES DE ENTRADA VARIABLE DE SALIDA Precio (barato, accesible y caro) Nivel de ingreso (bajo, medio y alto) Barato Barato Barato Accesible Accesible Accesible Caro Caro Caro Bajo Medio Alto Bajo Medio Alto Bajo Medio Alto Baja Normal Alta Baja Baja Normal Baja Baja Normal Ventas (baja, normal y alta)

Las reglas sern: ---------------------------------------RULE NUMBER: 1 IF: PRECIO DE COMPUTADORA BARATO and NIVEL DE INGRESO CLIENTE BAJO THEN: VENTAS MENSUALES BAJA
Mg. Abraham Gamarra Moreno

262

---------------------------------------RULE NUMBER: 2 IF: PRECIO DE COMPUTADORA BARATO and NIVEL DE INGRESO CLIENTE MEDIO THEN: VENTAS MENSUALES NORMAL ---------------------------------------RULE NUMBER: 3 IF: PRECIO DE COMPUTADORA BARATO and NIVEL DE INGRESO CLIENTE ALTO THEN: VENTAS MENSUALES ALTA ---------------------------------------RULE NUMBER: 4 IF: PRECIO DE COMPUTADORA ACCESIBLE and NIVEL DE INGRESO CLIENTE BAJO THEN: VENTAS MENSUALES BAJA ---------------------------------------RULE NUMBER: 5 IF: PRECIO DE COMPUTADORA ACCESIBLE and NIVEL DE INGRESO CLIENTE MEDIO THEN: VENTAS MENSUALES BAJA ---------------------------------------RULE NUMBER: 6 IF: PRECIO DE COMPUTADORA ACCESIBLE
Mg. Abraham Gamarra Moreno

263

and NIVEL DE INGRESO CLIENTE ALTO THEN: VENTAS MENSUALES NORMAL ---------------------------------------RULE NUMBER: 7 IF: PRECIO DE COMPUTADORA CARO and NIVEL DE INGRESO CLIENTE BAJO THEN: VENTAS MENSUALES BAJA ---------------------------------------RULE NUMBER: 8 IF: PRECIO DE COMPUTADORA CARO and NIVEL DE INGRESO CLIENTE MEDIO THEN: VENTAS MENSUALES BAJA ---------------------------------------RULE NUMBER: 9 IF: PRECIO DE COMPUTADORA CARO and NIVEL DE INGRESO CLIENTE ALTO THEN: VENTAS MENSUALES NORMAL ---------------------------------------8.4.5. CONSTRUIR EL SISTEMA

Esta tarea involucra la codificacin de los conjuntos difusos, reglas y procedimientos para desarrollar funciones de lgica difusa tal como la inferencia difusa. Se puede construir el sistema utilizando un lenguaje de programacin o construir el sistema utilizando un Shell.
Mg. Abraham Gamarra Moreno

264

8.4.6.

PROBAR EL SISTEMA

Esta tarea sirve para ver si el sistema alcanza las especificaciones dados en la definicin del problema. Para el ejemplo que se esta desarrollando se probar con los siguientes datos de entrada: Precio de la computadora = 1400 y el Nivel de Ingreso del Cliente = 450 El grado de pertenencia para la variable Precio de la Computadora se muestra en la figura 8.15.

Barato

Accesible

Caro

500

1000

1500

2000

2500

1400 Figura 8.15 Grado de pertenencia para la variable Precio de la Computadora El grado de pertenencia a los conjuntos difusos del precio de la computadora es: barato(precio) = 0.2 accesible(precio) = 0.8

Obteniendo el grado de pertenencia de la variable Nivel de ingreso del cliente de acuerdo a la figura 8.16 se tiene:

Bajo
Mg. Abraham Gamarra Moreno

Medio

Alto 265

100

200

300

500

600

800 900 1000

450

Figura 8.16 Grado de pertenencia para la variable Nivel de Ingreso del Cliente.

El grado de pertenencia a los conjuntos difusos del Nivel de ingreso del cliente es: bajo(Nivel de ingreso) = 0.167 medio(Nivel de ingreso) = 0.5 Las reglas que se dispararn son las reglas 1, 2, 4 y 5 con las siguientes caractersticas:

---------------------------------------RULE NUMBER: 1 IF: PRECIO DE COMPUTADORA BARATO (0.2) and NIVEL DE INGRESO CLIENTE BAJO (0.167) THEN: VENTAS MENSUALES BAJA (FCvmb=0.167) ---------------------------------------RULE NUMBER: 2 IF: PRECIO DE COMPUTADORA BARATO (0.2)
Mg. Abraham Gamarra Moreno

266

and NIVEL DE INGRESO CLIENTE MEDIO (0.5) THEN: VENTAS MENSUALES NORMAL (FCvmn=0.2) ---------------------------------------RULE NUMBER: 4 IF: PRECIO DE COMPUTADORA ACCESIBLE (0.8) and NIVEL DE INGRESO CLIENTE BAJO (0.167) THEN: VENTAS MENSUALES BAJA (FCvmb=0.167) ---------------------------------------RULE NUMBER: 5 IF: PRECIO DE COMPUTADORA ACCESIBLE (0.8) and NIVEL DE INGRESO CLIENTE MEDIO (0.5) THEN: VENTAS MENSUALES BAJA (FCvmb=0.5) ----------------------------------------

El factor de certeza de las VENTAS MENSUALES NORMAL es FCvmn=0.2 (RESPUESTA) El factor de certeza de las VENTAS MENSUALES BAJA se calcula teniendo en cuenta las reglas 1, 4 y 5.

RULE NUMBER: 1 RULE NUMBER: 4


Mg. Abraham Gamarra Moreno

(FCR1=FCvmb=0.167) (FCR4=FCvmb=0.167)
267

----------------------------------------

---------------------------------------RULE NUMBER: 5 (FCR5=FCvmb=0.5)

----------------------------------------

Para calcular el Factor de certeza final FCvmb se tiene: FCR1R4 = FCR1 + FCR4 FCR1*FCR4 FCR1R4 = 0.167 + 0.167 - 0.167 * 0.167 = 0.3061 FCR1R4R5 = FCR1R4 + FCR5 FCR1R4 * FCR5 FCvmb = FCR1R4R5 = 0.3061 + 0.5 - 0.3061 * 0.5 FCvmb = FCR1R4R5 = 0.6530 (RESPUESTA) El sistema difuso arroja las siguientes conclusiones: Las Ventas Mensuales es BAJA (Factor de Certeza = 0.653) y es NORMAL (Factor de Certeza = 0.2)

8.4.7.

DEFUZZIFICACIN DE LA VARIABLE DE SALIDA

Para defuzzificar la variable de salida, se tiene en cuenta el grado de pertenencia de las conclusiones, de aquellas reglas que se dispararon. ---------------------------------------RULE NUMBER: 1 IF: PRECIO DE COMPUTADORA BARATO (0.2) and NIVEL DE INGRESO CLIENTE BAJO (0.167) THEN: VENTAS MENSUALES BAJA ((y1)=FCvmb=0.167)
Mg. Abraham Gamarra Moreno

268

---------------------------------------RULE NUMBER: 2 IF: PRECIO DE COMPUTADORA BARATO (0.2) and NIVEL DE INGRESO CLIENTE MEDIO (0.5) THEN: VENTAS MENSUALES NORMAL ((y2)=FCvmn=0.2)

---------------------------------------RULE NUMBER: 4 IF: PRECIO DE COMPUTADORA ACCESIBLE (0.8) and NIVEL DE INGRESO CLIENTE BAJO (0.167) THEN: VENTAS MENSUALES BAJA ((y3)=FCvmb=0.167)

---------------------------------------RULE NUMBER: 5 IF: PRECIO DE COMPUTADORA ACCESIBLE (0.8) and NIVEL DE INGRESO CLIENTE MEDIO (0.5) THEN: VENTAS MENSUALES BAJA ((y4)=FCvmb=0.5)

----------------------------------------

Mg. Abraham Gamarra Moreno

269

Una vez ubicado el grado de pertenencia de las conclusiones, se debe encontrar el centroide para los conjuntos difusos BAJA Y NORMAL. Este procedimiento se muestra en la figura 8.17. Para defuzzificar las ventas mensuales se utilizan la siguiente expresin:

YK VARIABLE
K 1 N

YK YK

K 1

Donde: YK = Centroide del conjunto difuso involucrado en la conclusin, cuando se dispara una regla. (YK)= Grado de pertenencia al conjunto difuso de la conclusin. Para el ejemplo que estamos desarrollando y1, y2, y3 y y4 son los centroides de los conjuntos difusos que estn en las conclusiones de las reglas 1, 2, 4 y 5 respectivamente.

Baja

Normal

Alta 270

Mg. Abraham Gamarra Moreno

10

20

30

40

50

Y1=Y3=Y4=Centroide BAJA=16.7

Y2=Centroide NORMAL = 30

Figura 8.17 Grado de pertenencia para la variable Ventas mensuales

La venta mensual es: Venta Mensual = y1*(y1)+ y2*(y2)+ y3*(y3)+ y4*(y4) (y1)+ (y2)+ (y3)+ (y4)

Venta Mensual

= 16.7*0.167+30*0.2+ 16.7*0.167+ 16.7*0.5 0.167 + 0.2 + 0.167 + 0.5

Venta Mensual

= 19.272534 x 103

Venta ta) Mensual

= 19272.5 = $ 19273

(Respues-

Mg. Abraham Gamarra Moreno

271

8.5. EJEMPLO 2 DEL USO DE LGICA DIFUSA Un ejemplo adicional se muestra en las siguientes diapositivas.

DESARROLLO DE UN SISTEMA DIFUSO BASADO EN REGLAS


Mg. Abraham Gamarra Moreno 18

DEFINICIN DEL PROBLEMA

Sistema de control para regular la velocidad de un ventilador en funci n de la temperatura ambiente. En este caso, la nica entrada del sistema sera el calor de la temperatura, por ejemplo en grados centgrados, y la nica salida, el valor, en revoluciones por minuto (rpm), de la velocidad necesaria del ventilador para conseguir una temperatura ideal.
Mg. Abraham Gamarra Moreno 19

Mg. Abraham Gamarra Moreno

272

DEFINICIN DE LAS VARIABLES LINGSTICAS


Temperatura SISTEMA DIFUSO Velocidad

El universo de discurso de cada variable ser: Temperatura (C) : 5 40 Velocidad (rpm) : 0 - 60


Mg. Abraham Gamarra Moreno 20

DEFINICIN DE LOS CONJUNTOS DIFUSOS

Conjuntos difusos para la temperatura


Mg. Abraham Gamarra Moreno 21

Mg. Abraham Gamarra Moreno

273

DEFINICIN DE LOS CONJUNTOS DIFUSOS

Conjuntos difusos para la velocidad del ventilador


Mg. Abraham Gamarra Moreno 22

DEFINICIN DE LA REGLAS DIFUSAS


RULE NUMBER: 1 IF: LA TEMPERATURA AMBIENTE ES FRIA THEN: LA VELOCIDAD DEL VENTILADOR ES PARADO
Mg. Abraham Gamarra Moreno 23

Mg. Abraham Gamarra Moreno

274

DEFINICIN DE LA REGLAS DIFUSAS


RULE NUMBER: 2 IF: LA TEMPERATURA AMBIENTE ES FRESCA THEN: LA VELOCIDAD DEL VENTILADOR ES LENTA
Mg. Abraham Gamarra Moreno 24

DEFINICIN DE LA REGLAS DIFUSAS


RULE NUMBER: 3 IF: LA TEMPERATURA AMBIENTE ES AGRADABLE THEN: LA VELOCIDAD DEL VENTILADOR ES MEDIA
Mg. Abraham Gamarra Moreno 25

Mg. Abraham Gamarra Moreno

275

DEFINICIN DE LA REGLAS DIFUSAS


RULE NUMBER: 4 IF: LA TEMPERATURA AMBIENTE ES CALIDA THEN: LA VELOCIDAD DEL VENTILADOR ES RAPIDA
Mg. Abraham Gamarra Moreno 26

DEFINICIN DE LA REGLAS DIFUSAS


RULE NUMBER: 5 IF: LA TEMPERATURA AMBIENTE ES TRRIDA THEN: LA VELOCIDAD DEL VENTILADOR ES MAXIMA
Mg. Abraham Gamarra Moreno 27

Mg. Abraham Gamarra Moreno

276

CONSTRUIR EL SISTEMA
Esta tarea involucra la codificacin de los conjuntos difusos, reglas y procedimientos para desarrollar funciones de lgica difusa tal como la inferencia difusa. Se puede construir el sistema utilizando un lenguaje de programacin o construir el sistema utilizando un Shell.
Mg. Abraham Gamarra Moreno 28

PROBAR EL SISTEMA
Esta tarea sirve para ver si el sistema alcanza las especificaciones dados en la definicin del problema. Para el ejemplo que se esta desarrollando se probar con los siguientes datos de entrada: Temperatura = 18 Evaluando el grado de pertenencia a los conjuntos difusos se tiene:
Mg. Abraham Gamarra Moreno 29

Mg. Abraham Gamarra Moreno

277

PROBAR EL SISTEMA

FRESCA(18) = 0.5 AGRADABLE(18) = 0.167


Mg. Abraham Gamarra Moreno 30

PROBAR EL SISTEMA
LAS REGLAS QUE SE DISPARARN SON: RULE NUMBER: 2 IF (LA TEMPERATURA AMBIENTE ES FRESCA)(0.5) THEN (LA VELOCIDAD DEL VENTILADOR ES LENTA) (0.5) RULE NUMBER: 3 IF (LA TEMPERATURA AMBIENTE ES AGRADABLE)(0.167) THEN (LA VELOCIDAD DEL VENTILADOR ES MEDIA) (0.167)
Mg. Abraham Gamarra Moreno 31

Mg. Abraham Gamarra Moreno

278

DEFUZZIFICACION DE LA VARIABLE DE SALIDA


Una vez ubicado el grado de pertenencia de las conclusiones, se debe encontrar el centroide para los conjuntos difusos LENTA Y MEDIA.

Mg. Abraham Gamarra Moreno

32

y1

y2

Conjuntos difusos para la velocidad del ventilador


Mg. Abraham Gamarra Moreno 33

Mg. Abraham Gamarra Moreno

279

DEFUZZIFICACION DE LA VARIABLE DE SALIDA


Para la defuzzificacin se utiliza la siguiente expresin: Donde:
Donde: YK = Centroide del conjunto difuso involucrado en la conclusin, cuando conclusi se dispara una regla. (YK)= Grado de pertenencia al conjunto difuso de la conclusin. conclusi
34

Mg. Abraham Gamarra Moreno

DEFUZZIFICACION DE LA VARIABLE DE SALIDA


La velocidad del ventilador es: Velocidad = y1*(y1)+ y2*(y2) (y1) + (y2) Velocidad = 20*0.5 + 30*0.167 0.5 + 0.167 Velocidad = 22.503 rpm
Mg. Abraham Gamarra Moreno 35

Resumen
Mg. Abraham Gamarra Moreno

280

La Lgica Difusa permite implementar Sistemas Expertos donde las condiciones y conclusiones no pertenecen conjunto. completamente a un conjunto, sino que tienen un cierto grado de pertenencia a este

Indicadores de logro

El lector es capaz de utilizar la lgica difusa.

Bibliografa Recomendada

Durkin J. Expert Systems. USA: Ed. Macmillan; 1994.

Escolano Francisco. Inteligencia Artificial. Modelos, Tcnicas y reas de Aplicacin. Espaa: Editorial ITES Paraninfo; 2003.

Actividad

Investigue sobre las aplicaciones de la lgica difusa.

Auto evaluacin formativa

Encuentre la solucin a los siguientes problemas:

PROBLEMA UNO

Realice 2 casos libres que utilicen lgica difusa.


281

Mg. Abraham Gamarra Moreno

Você também pode gostar