25-04 Inteligencia Artificial JGM

396
Mg. Juan Gamarra Moreno  17 CAPITULO UNO INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL 1.1 . DE FINI C IONES DE INTELIGENCIA A R TIFICIAL  Algunas definicion es sobre Inteligencia Artificial son :  La In teligencia Artificial es tudia cómo lograr que la s máquin as realicen ta- reas, que por el momento, son realizadas mejor por los seres humanos.  La In teligencia Artificial trata de encontrar las técn icas pa ra diseñ ar y pro- gramar máquinas -computadoras- que emulen nuestras capacidades men- tales.  La Inte ligencia A rtificial es el área que trata de analizar o estudiar el com- portamiento humano, y llevarlo a máquinas (computadores).  La In teligencia Artificial es la emulación de un comportamiento inteligente, como reacciona, como aprende. Se trata de dotar de esta inteligencia arti- ficial a seres no vivos (computadores), con el fin de ayudar a la humanidad.  Se denomina inteligencia a rtificial a la rama de la informática que de sarro- lla procesos que imitan a la inteligencia de los seres vivos. La principal aplicación de esta ciencia es la creación de máquinas para la automatiza- ción de tareas que requieran un comportamiento inteligente.

Transcript of 25-04 Inteligencia Artificial JGM

Page 1: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 1/395

Mg. Juan Gamarra Moreno  17 

CAPITULO UNOINTRODUCCIÓN A LA INTELIGENCIA

ARTIFICIAL

1.1. DEFINICIONES DE INTEL IGENCIA ARTIFICIAL

 Algunas definiciones sobre Inteligencia Artificial son:

La Inteligencia Artificial estudia cómo lograr que las máquinas realicen ta-reas, que por el momento, son realizadas mejor por los seres humanos.

La Inteligencia Artificial trata de encontrar las técnicas para diseñar y pro-gramar máquinas -computadoras- que emulen nuestras capacidades men-tales.

La Inteligencia Artificial es el área que trata de analizar o estudiar el com-portamiento humano, y llevarlo a máquinas (computadores).

La Inteligencia Artificial es la emulación de un comportamiento inteligente,como reacciona, como aprende. Se trata de dotar de esta inteligencia arti-ficial a seres no vivos (computadores), con el fin de ayudar a la humanidad.

Se denomina inteligencia artificial a la rama de la informática que desarro-lla procesos que imitan a la inteligencia de los seres vivos. La principalaplicación de esta ciencia es la creación de máquinas para la automatiza-ción de tareas que requieran un comportamiento inteligente.

Page 2: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 2/395

 

18  Tópicos y Aplicaciones de la Inteligencia Artificial 

1.2. PREHISTORIA DE LA INTELIGENCIA ARTIFICIAL 1  

La prehistoria de la inteligencia artificial abarca desde los primeros tiempos denuestra civilización hasta mediados del siglo XX. En este período se producenhechos que podemos agrupar en dos líneas:

una de ellas directamente relacionada con la construcción de autómatasque simulaban el comportamiento humano o animal, y que solían funcionar en ayuda de su amo.

la otra línea, referente a la información y automatización del razonamientológico y matemático.

1.2.1. CONSTRUCC IÓN DE AUTÓMATAS 

La inteligencia se ha asociado a los aparatos mecánicos complejos, como es elcaso de los autómatas. Mucho antes de que surgiera la inteligencia artificialcomo una disciplina autónoma, hubo una gran cantidad de consideracionescasi filosóficas sobre la posibilidad de reproducir el ser humano mediante má-quinas.

El nacimiento de la Inteligencia Artificial, y el concepto de máquinas inteligen-tes, debe ser buscado en la mitología griega. Los artefactos inteligentes apare-cen en la literatura desde entonces.

La primera mención de los autómatas aparece en la Ilíada escrita en el siglo

VIII a.C (canto XVIII), donde leemos que Vulcano fabricaba "veinte trípodesque debían permanecer arrimados a la pared del bien construido palacio y te-nían 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 eraayudado en su cojera por "dos estatuas de oro semejantes a vivientes jóvenes, pues tenían inteligencia, voz y fuerza" (V. 410-4234).

Por otra parte, la tradición judía creó el mito del "golem" en 1580 (figura 1.1),figura humanoide hecha de arcilla a la que un rabino podía dar vida propia,convirtiéndola en un perfecto criado (que, en leyendas posteriores, llega a es-capar del control de su amo). Hay que decir, sin embargo, que se requería la

intervención divina para conseguir estos espectaculares resultados. Al llegar el racionalista Descartes, siglo XVIII, las cosas fueron diferentes(1596-1650). Descartes había defendido la tesis del "animal-máquina": los se-res vivos, salvo el hombre, son meros mecanismos. La Mettrie, en 1747, vamás allá con su escandaloso "L' homme machine": también el hombre y sucomportamiento inteligente son explicables en términos exclusivamente mecá-nicos.

1 Planell Perez. Historia de la Inteligencia Artificial [en línea]. España: 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

Page 3: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 3/395

Mg. Juan Gamarra Moreno  19 

Ciertamente existían admirables mecanismos, por ejemplo, los de: el flautista(1737) que movía realmente los dedos para producir una melodía, 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 automático de tarjetas perforadas.

Figura 1.1. Figura del golem

Figura 1.2. Pato de Vaucanson 

El español Torres Quevedo construyó dos versiones del jugador ajedrecista.

Se trata de un autómata jugador de final de partidas de ajedrez: juega el rey ytorre blancos (máquina) contra el rey negro (jugador humano). El resultado(victoria de las blancas) del juego está determinado algorítmicamente. Parasimplificar el diseño, el autómata lograba siempre el jaque mate, si bien no por el camino más corto. El primer jugador fue construido en 1912 y expuesto enParís en 1914, ocasionando gran sensación. Disponía de un brazo mecánicopara mover las piezas, y de sensores eléctricos en el tablero para conocer suubicación. El segundo jugador (figura 1.3), de 1920, fue construido por su hijoGonzalo, y en él el movimiento de las piezas se consigue mediante imanesdispuestos bajo el tablero. Ambos ingenios eran de naturaleza electromecáni-ca, y se citan como precursores de la Inteligencia Artificial. Ciertamente, consti-tuyeron el primer intento exitoso de construir un autómata que jugase realmen-te a un juego humano, lo que se venía intentando desde el siglo XVIII.

Page 4: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 4/395

 

20 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 1.3. El segundo jugador de ajedrez

En 1929 se presentaba en Francia el "Philidog", que seguía el rayo luminosode una linterna y ladraba si la intensidad luminosa era excesiva.

El escritor Karel Kapek difunde en los años 20 una palabra destinada a tener un gran éxito: "robot". En su obra “R.U.R."(Rossum's Universal Robots) apare-cen unos seres creados para realizar las tareas que el hombre no quiere hacer,que acaban siendo más poderosos que el mismo hombre, llegando a poner enpeligro su existencia. Sin embargo, hasta la llegada de los ordenadores elec-trónicos no dispusieron los científicos y técnicos de una herramienta que per-

mitiera la ejecución de tareas más complejas por parte de dispositivos mecáni-cos, ni para la construcción de robots.

1.2.2. AUTOMATIZACIÓN DEL RAZONAMIENTO 

La segunda de las líneas es la automatización del razonamiento, y por tanto, laobtención de una formalización.

Encontramos en primer lugar a Ramon Llull y su "Ars Magna", donde describeuna gramática universal para cristianos, musulmanes y hebreos, es decir, “unmétodo científico” de discusión. Esta ciencia universal consiste en que los mís-ticos de las tres religiones del libro aceptan que Dios tiene unos atributos, quehay un cierto número de "nombres de Dios", Llull los describió y creó unas ta-

 

Page 5: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 5/395

Mg. Juan Gamarra Moreno  21 

blas que permitían que cada término pudiese combinarse con los demás, pues-to que todos eran equivalentes y creó una gramática universal con una lógicabinaria, combinatoria.

También encontramos a Leibniz que buscó un álgebra universal que permitiera

deducir todas las verdades, y así "si surgieran controversias no habría necesi-dad de mayor disputa entre dos filósofos que entre dos contables, pues basta-ría que, tomando en sus manos el lápiz, se sentaran frente a sus pizarras y sedijeran (con un amigo como testigo): calculemos", como antecesores de lossistemas formales y de la lógica que tan buen papel juegan en la inteligenciaartificial moderna.

Los estudios matemáticos de Rusell y Hilbert de comienzos de siglo permitie-ron por primera vez reducir el razonamiento (o un tipos de razonamiento) a lamanipulación abstracta de cadenas de símbolos, idea de gran fecundidad enlos mecanismos de la inferencia simbólica de la inteligencia artificial y también

en los sistemas de representación del conocimiento.

Las teorías de la computabilidad y de los autómatas proporcionan el vínculoentre la formalización del razonamiento y las máquinas que estaban a punto desurgir tras la Segunda Guerra Mundial. En este ambiente, no es extraña que laaparición de las primeras máquinas electrónicas de cómputo fuera seguidainmediatamente por los intentos de aplicarlas a lo que hoy llamamos Inteligen-cia Artificial.

1.2.3. CIBERNÉTICA

Un último elemento importante en la prehistoria de la Inteligencia Artificial, es la cibernética. En los primeros años de la informática era habitual hablar de “ ce-rebros electrónicos” y, de hecho, este era uno de los objetivos lejanos que r e-sultaban más del gusto de los pioneros como Von Neumann.

Más solidez han tenido las ideas que provenían de la cibernética. La nuevavisión, fruto de la inspiración de Norbert Wiener (figura 1.4), quedó publicada apartir de 1948 en su famoso libro “Cibernetics” y, más adelante, el mismo Wie-ner analizó las relaciones de la cibernética con la sociedad.

Cibernética es un término que ya había sido utilizado en el año 1834 por elfrancés Ampère, pero fue redefinido por Wiener como “el campo de la teoríadel control y la comunicación, tanto en las máquinas como en los animales”.En paralelo a la construcción de los primeros ordenadores electrónicos, la ci-bernética introdrujo nuevos conceptos como los de la retro-alimentación(feedback), el control y los sistemas auto-organizados.

La cibernética influyó en muchos campos debido a su naturaleza fundamen-talmente interdisciplinar, ligando entre sí la fisiología neuronal, la teoría de lainformación de Shannon, la lógica matemática y la naciente tecnología informá-tica. De esta forma, las ideas de los creadores de la cibernética llegaron a ser 

parte del espíritu del tiempo, e influyeron fuertemente en los primeros investi-gadores de la Inteligencia Artificial.

Page 6: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 6/395

 

22  Tópicos y Aplicaciones 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 Artificialdurante los primeros años de la era informática. Pero el fracaso de la mayoríade sus proyectos mostró que los problemas que intentaban resolver eran de-masiados complicados, tanto teórica como tecnológicamente.

En Julio de 1945 Vannevar Bush publicó “As We May Think” una visión del f u-turo en donde los ordenadores asistían a los humanos en muchas actividades.

En 1950 Alan Turing presentó un artículo sobre el tema de la Inteligencia Artifi-cial, titulado “Inteligencia y Funcionamiento de Máquinas” . En este trabajo pro-pone un "Test de Turing" para determinar el carácter inteligente o no de unamáquina. El test parte del juego donde un interrogador tiene que descubrir elsexo de dos participantes A y B situados en otra habitación, aunque los dosdicen ser mujeres, en verdad son un hombre y una mujer. En la propuesta ori-ginal de Turing, se trataba de sustituir a la mujer por un ordenador, y que elinterrogador descubriera quien era la máquina de los dos participantes, los dosdecían ser personas. Este objetivo había que cumplirlo incluso sabiendo quelos participantes no estaban obligados a decir la verdad y que, por ejemplo, la

máquina podía decidir dar un resultado erróneo en una multiplicación o decir elresultado lo suficientemente más tarde después de haberlo obtenido, para en-gañar al interlocutor sobre su propia habilidad calculista. En la hipótesis opti-mista del mismo Turing, más o menos alrededor del año 2000 se podría dispo-ner de ordenadores suficientemente potentes para conseguir que un interroga-dor normal no tuviera más del 70% de posibilidades de realizar la identifica-ción correcta a los cinco minutos del comienzo de las preguntas. Hay que decir que la predicción de Turing parece, ahora mismo, muy optimista.

Posteriormente, en 1955 fue creado un lenguaje de procesamiento (búsquedaheurística) 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).

Page 7: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 7/395

Mg. Juan Gamarra Moreno  23 

En el verano del 1956 tuvo lugar la “Conferencia del Da r mouth” en Hanover (New Hampshire) sobre Inteligencia Artificial, organizada por John McCarthy(Stanford), Marvin Minsky (MIT), Allen Newel y Herbert Simon, con el patrociniode la fundación Rockefeller, reunió a todos los que trabajaban en el recién es-trenado campo de la Inteligencia Artificial. A la Dartmouth Conference, Newell y

Simon ya disponían de un programa pro- Inteligencia Artificial, el “LogicTheorist” que reolvía problemas de búsqueda heurística, junto con los princi-pios matemáticos de Whitehead y Rusell. Gracias a esta conferencia se crea-ron diferentes grupos de estudio de especialidades en diversas universidadescomo el Instituto Tecnológico de Masachussets, MIT (Minsky), Stanford(McCarthy) y Carnegie-Mellon (Newell y Simon).

Destaquemos también que a mediados de los años 50 John McCarthy y poste-riormente el MIT, diseñaron el lenguaje LISP (List Processing).

De todas formas, la Conferencia del Darmouth acuñaba la expresión "Inteli-

gencia Artificial" y predecía que al cabo de 25 años los ordenadores haríantodo el trabajo de los seres humanos, y en 1958 Newell y Simon asegurabanque en 1968 un ordenador sería campeón mundial de ajedrez y habría demos-trado algún teorema importante de las matemáticas.

1.3.1. PERIODO 1956 - 1969 

En este periodo la Inteligencia Artificial es una actividad académica poco cono-cida fuera de los círculos especializados. Durante estos años la Inteligencia Artificial se caracteriza por una ambición exagerada en los objetivos que se

pretenden lograr, agravándose este hecho por las limitaciones reales del hard-ware y del software de la época. Esto abocaría en una gran decepción al finalde este periodo, debido a la dificultad de obtener resultados y a la constataciónteórica de la imposibilidad de obtenerlos en ciertos casos. Aun así en estaépoca se realizaron con éxito varios proyectos menos ambiciosos que supusie-ron un avance en el campo de la Inteligencia Artificial (LISP, SAINT, juego dedamas, ELIZA, Student, etc.).

Los proyectos mas ambiciosos de esta época fueron el intento del GeneralProblem Solver(GPS), el Perceptron, la Traducción Automática y la resolucióngeneralizada de problemas matemáticos.

Logic Theorist. 1956. El Logic Teorist fue programado por Alan Newell, Her-bert Simon y J.C. Shaw y buscaba las demostraciones de Teoremas Lógicos.Un teorema lógico tiene la siguiente forma: supuesto que o bien X o bien Y esverdadera, y supuesto que Y es de hecho falsa, entonces X es verdadera. ElLogic Theorist encontró la demostración de 38 de los 52 teoremas presentesen el capitulo II de los "Principia Mathematica" de Bertrand Russell y AlfredNorth Whitehead. Sirvió como base para el GPS.

General Problem Solver (GPS). El Solucionador General de Problemas fuellevado a cabo por Alan Newell, Herbert Simon y J.C. Shaw. La filosofía de

GPS era que las técnicas para solucionar un problema pueden separarse delconocimiento específico sobre el problema. Se trata de un programa que solo

Page 8: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 8/395

 

24 Tópicos y Aplicaciones de la Inteligencia Artificial 

resuelve problemas en un microcosmos formalizado. El programa es capaz deresolver problemas como el de las Torres de Hanoi. Exactamente del tipopuzzle en los que una vez que se ha descrito el objetivo y la posición final, ydado un listado de los medios disponibles, GPS puede realizar los ensayosnecesarios hasta alcanzar el objetivo (análisis medios-fines). También utiliza la

teoría de la retroalimentación de Wiener.

Perceptrón. Proyecto iniciado en el 1958 por Frank Rosenblatt. Su intenciónera ilustrar algunas propiedades fundamentales de los sistemas inteligentes engeneral, sin entrar en mayores detalles con respecto a condiciones específicasy desconocidas para organismos biológicos concretos. Rosenblatt creía que laconectividad existente en las redes biológicas tiene un elevado porcentaje dealeatoriedad y que la herramienta de análisis más apropiada era la teoría deprobabilidades. El Perceptrón que desarrollo Rosenbatt imitaba el funciona-miento del ojo humano, el fotoperceptrón como se le llamó era un dispositivoque respondía a señales ópticas.

El Perceptrón era inicialmente un dispositivo de aprendizaje, en su configura-ción inicial no estaba en capacidad de distinguir patrones de entrada muycomplejos, sin embargo mediante un proceso de aprendizaje era capaz de ad-quirir esta capacidad.

Mediante estas investigaciones se pudo demostrar que el Perceptrón era ca-paz de clasificar patrones correctamente, en lo que Rosenblatt denominaba unentorno diferenciado, en el cual cada clase estaba formada por patrones simi-lares. El Perceptrón también era capaz de responder de manera congruentefrente a patrones aleatorios, pero su precisión iba disminuyendo a medida que

aumentaba el número de patrones que intentaba aprender.

En 1969 Marvin Minsky y Seymour Papert publicaron su libro: "Perceptrons: Anintroduction to Computational Geometry", el cual para muchos significó el finalde las redes neuronales. En el se presentaba un análisis detallado del Per-ceptrón, en términos de sus capacidades y limitaciones, en especial en cuantoa las restricciones que existen para los problemas que una red tipo Perceptrónpuede resolver; la mayor desventaja de este tipo de redes es su incapacidadpara solucionar problemas que no sean linealmente separables.

 A pesar de esta limitación, el Perceptrón es aún hoy una red de gran importan-

cia, pues con base en su estructura se han desarrollado otros modelos de redneuronal como la red Adaline y las redes multicapa.

LISP (LISt Procesing). En 1958 John McCarthy anunció el desarrollo del len-guaje de programación LISP (LISt Procesing), este fue considerado desdeaquel momento como lenguaje de programación de los investigadores de I.A.El LISP es un lenguaje declarativo funcional.

SAINT (Symbolic Automatic INTegrator). Programa desarrollado por J. Sla-gle en 1961. Con el que se inicia la automatización de la integración simbólica.

GTP (Geometry Theorem Prover), Demostrador de Teoremas Geométricos,programa desarrollado por Herbert Gelernter y auspiciado por IBM para resol-

Page 9: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 9/395

Mg. Juan Gamarra Moreno  25 

ver problemas de geometría elemental. Se inicio en el 1958. Gelernter trabajódurante tres años, escribiendo y desarrollando las veinte mil introduccionesque componían el GPS, pero además tuvo que diseñar un nuevo lenguaje deprogramación. GPS funcionaba de atrás hacia delante (backward), primero seexpone el teorema a demostrar y el programa empieza a construir cadenas de

resultados intermedios que conducen al fin, a teoremas conocidos o a axio-mas.

Programa para jugar a las damas. Programa creado por Arthur Samuel (figu-ra 1.5) en 1962 y al igual que el proyecto GTP fue auspiciado por IBM. El pro-grama era capaz de aprender por si solo. Aprendía de la experiencia teniendoen cuenta sus errores y éxitos pasados para determinar su juego en partidasposteriores. Alex Bernstein, consiguió también un resultado similar para el aje-drez. Tras hacerse eco la prensa de estos logros, se creo un escándalo entrelos periodistas y accionistas de IBM en general al considerar que se estabagastando el dinero de investigación en unos objetivos tan frívolos. Con lo que

IBM no siguió aportando fondos para investigaciones en el campo de la Inteli-gencia Artificial.

Figura 1.5. Arthur Samuel (de pie)

Fracaso de la Traducción Automática, La CIA y otros organismos militares,tras ser conocedores de la utilización, por parte del ejercito británico, de orde-nadores en la Segunda Guerra Mundial para descifrar códigos secretos enemi-gos; pensaron que la traducción automática no seria más difícil, así podríanleer casi en el acto cualquier publicación del mundo, escrita en cualquier idio-ma. Después de gastar veinte años de investigación y casi veinticinco millonesde dólares en proyectos de este tipo la NRC (Consejo Nacional de Investiga-ción, de EE.UU.) puso fin a este tipo de investigaciones en todo los EstadosUnidos. Este hecho hizo que se paralizasen todas las investigaciones con in-versión pública respecto a Inteligencia Artificial., el ALPAC (Automated Lan-guage Processing Advisory Committee), Comité de Seguimiento del Procesa-miento Automático del Lenguaje, arrolló a todos los laboratorios en los que se

realizaban proyectos sobre investigación lingüística, afortunadamente, los cen-tros de investigación más importantes (MIT, Carnegie Mellon y Stanford) se

Page 10: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 10/395

 

26  Tópicos y Aplicaciones de la Inteligencia Artificial 

salvaron por no tener entre manos ningún proyecto asociado a la rama de laTraducción Automática.

Se reconocen las dificultades: concepción errónea de los proyectos, mal cono-cimiento del lenguaje, técnicas informáticas inadecuadas, etc. Sin embargo,

posteriormente comienzan a vislumbrarse importantes avances tanto en lin-güística teórica como en ciencia informática.

Como anécdota se tiene el resultado que se obtuvo al traducir primero del in-glés al ruso, y el resultado se tradujo de nuevo al inglés:

- Original en inglés: El espíritu es fuerte, pero la carne es débil.

- Resultado después de traducir al ruso y luego al inglés: 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 previosen visión artificial ante la dificultad que suponía realizar un proyecto de talmagnitud, en los que se intentaba conectar una cámara de televisión a un or-denador y hacer que la cámara describiera lo que veía. Minsky opto por llevarlaa cabo en un plano más reducido, los Micromundos de Bloques.

Los micromundos no eran otra cosa que "representaciones" de laboratorio dela vida real, con un aditivo muy especial, el sujeto que interaccionaría con larealidad sería un ordenador con forma de robot o de simple programa. Se crea-ron programas capaces de tratar con objetos geométricos (SHRDLU), robots

que manejaban cubos (Shakey) y diferentes programas que "entendían" el in-gles para sacar de las frases una determinada información (SIR y STUDENT).

Finalmente en 1969 el proyecto de los Micromundos también fracaso, pues su"sencillez" no tenía visos de ampliarse y cambiar el prefijo "micro" por uno conun significado más extenso. ARPA (Advanced Research Proyect Agency) dejode subvencionar el proyecto tras acabarse los plazos fijados y ver que no sehabía logrado ni un 25% de lo prometido.

STUDENT y SIR. 1964. Daniel Bobrow presentó como tesis doctoral a su pro-fesor, Marvin Minsky, un programa llamado STUDENT, este era capaz de en-

tender enunciados de problemas algebraicos escritos en inglés y responder asus preguntas. Los problemas característicos que podía solucionar STUDENTson similares al siguiente: "El tío de Guillermo es dos veces más viejo que elpadre de Guillermo. Dentro de dos años, el padre de Guillermo será tres vecesmás viejo que Guillermo .La suma de sus edades es 92. Averiguar la edad deGuillermo".

 A su vez, Bertram Raphael diseña SIR (Semantic Information Retrieval), Re-cuperación de información semántica, este programa comprendía oracionessencillas en inglés que describían situaciones acerca de pertenencias y rela-ciones parecidas. Por ejemplo, una conversación con SIR podría ser (de hecho

lo es) la siguiente:

Page 11: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 11/395

Mg. Juan Gamarra Moreno  27 

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 oración es ambigua, reformúlela, por favor.

Persona> Hay dos manos en cada persona

SIR> Entiendo

Persona>¿Cuántos dedos tiene Juan?

SIR> Esta oración es ambigua.

Persona> Juan es un muchacho

SIR> Entiendo

Persona>¿Cuántos dedos tiene Juan?

SIR> Esta oración es ambigua, pero supongo que (TIENE) significa (TIENECOMO PARTES). ¿Cuántos dedos hay en cada mano?

Persona> Cada mano tiene cinco dedos

SIR> Entiendo

Persona> Cuántos dedos tiene Juan?

SIR> La respuesta es 10.

Estos dos programas, SIR y ESTUDENT funcionan mediante la "comparaciónde patrones", es decir, cuando el programa detecta que unas palabras claveestán colocadas de una forma especial, toma la información necesaria de don-de el patrón le aconseja.

ELIZA (o DOCTOR). Hacia 1965, Weizenbaum trabajaba en el MIT, intentandoque los ordenadores hablaran en inglés con la gente. Pensó que los programasexistentes como STUDENT se basaban en dominios limitados, y los dominiosque describían esos programas estaban ligados a la propia estructura del pro-grama. Y dado que Weizenbaum se dio cuenta de que no podría conseguir esefin en tan poco tiempo, pensó en crear un programa con unas cuantas ideasque se le habían ocurrido. Una de esas ideas era que el conocimiento sobrelos dominios se encontrase en módulos ajenos al propio programa, así cambiar de tema seria tan fácil como cambiar de módulo. Uno de esos módulos, y elmás famoso, fue el que imitaba a un psicoanalista rogeriano (el psicoanalistaCarl Rogers ponía en funcionamiento una terapia que consistía simplemente

Page 12: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 12/395

 

28  Tópicos y Aplicaciones de la Inteligencia Artificial 

en animar a los pacientes a hablar de sus problemas, respondiendo a sus pre-guntas con otras preguntas). El programa en cuestión recibió el nombre deELIZA (ahora todo un mito de la historia de la Inteligencia Artificial). Aunque asimple vista ELIZA parece estar hablando animadamente con la persona que lecuenta sus problemas, la verdad es muy diferente. ELIZA hace creer a su inter-

locutor que se está hablando con "un ser" que razona y entiende, realmentetodo 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 transformán-dola en pregunta. Otro truco utilizado por este programa es insertar frases co-mo "ya veo" o "háblame más acerca de esto". Algo con lo que contaba a sufavor ELIZA era que el planteamiento de las conversaciones seguiría siempreun patrón común de los psicoanálisis rogelianos ¿en que otra conversación noiba a resultar extraño escuchar frases como esta "háblame algo más acerca delos coches rojos con motas verdes que apartan cerca de tu casa"?. A conti-nuación se muestra un ejemplo de una conversación con ELIZA:

PERSONA> Todos los hombres son iguales.

ELIZA> ¿De que forma?

PERSONA> Siempre nos están fastidiando de una forma u otra.

ELIZA>¿Se te ocurre algún ejemplo específico?

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

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> Háblame algo más acerca de tu familia.

PERSONA> Mi madre se preocupa por mí.

ELIZA> ¿Quién más se preocupa por ti en tu familia?

PERSONA> Mi padre

ELIZA> Tu padre

PERSONA> En algunas cosas te pareces a mi padre

Page 13: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 13/395

Mg. Juan Gamarra Moreno  29 

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 más se te ocurre cuando piensas en tu padre?

PERSONA> En matones.

ELIZA> ¿Tiene eso que ver con el hecho de que tu novio te hizo venir aquí?

 A más de una persona, le parecía que el programa seria capaz de superar elTest de Turing, pero realmente esto no es así, ya que la prueba de Turing de-bía de enfrentar a dos partes, una persona y un ordenador, ambas debían decomportarse de forma normal y habría que averiguar quien era la persona yquien el ordenador, este hecho quedaría al descubierto en cuanto ELIZA dijese

(por ejemplo): "Cuéntame algo más acerca de tu gusto por las películas enversión original", en una conversación normal no se utilizan esas expresiones.

SHAKEY. 1969. Un equipo de investigación de Stanford tuvo la atrevida ideade poner ruedas a su robot, enseguida el ejercito (norteamericano) se mostróinteresado por el proyecto, subvencionándolo por medio del ARPA (AvancedResearch Proyects Agency), la idea de este era convertir al robot de Stanforden un espía mecánico, capaz de infiltrarse en las líneas enemigas para conse-guir información. Pero la apariencia del robot no parecía capaz ni de cruzar laesquina: una caja cuadrada, con una cámara de televisión (de las del 69), untelémetro 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 unMicromundo de Bloques de tamaño natural, compuesto de siete habitacionesconectadas entre sí por ocho puertas, habiendo en las habitaciones cubos queShakey podía manipular, apilando y transportándolos de un lado a otro. Todoello siguiendo las instrucciones (en inglés) que le transmitían mediante un te-clado. Finalmente el fracaso de los Micromundos afecto a este proyecto ya que ARPA dejo de subvencionarlo.

Page 14: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 14/395

 

30 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 1.6. Robot fue bautizado como Shakey.

DENDRAL. El primer sistema experto. También en 1965 se inicia la investiga-ción en la universidad de Stanford de sistemas expertos en el programa Heu-ristic Programming Project.

En 1965 Feigenbaum entra a formar parte del departamento de informática deStanford. Allí conoció a Joshua Lederberg, el cual quería averiguar cual era laestructura de las moléculas orgánicas completas. Si se quiere estudiar uncompuesto químico, lo primero que tenemos que hacer es averiguar su fórmulaquímica. El método habitual de análisis consiste en dividir el problema en par-tes más pequeñas. El problema de Lederberg era que había demasiadas com-binaciones. Cada fragmento podía corresponder a varias subestructuras, perosolo una estructura molecular global se ajustaba a todas las restricciones delproblema. El descubrimiento de esa estructura global exigía buscar en un árbollas posibilidades. Fue por esta razón por la que pusieron al programa el nom-bre de DENDRAL, que significa en griego "árbol". Antes de DENDRAL losquímicos solo tenían una forma de resolver el problema, y esta era tomar unas

hipótesis relevantes como soluciones posibles, y someterlas a prueba compa-

Page 15: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 15/395

Mg. Juan Gamarra Moreno  31 

rándolas con los datos. La realización DENDRAL duró más de diez años (des-de 1965).

Conclusión de este periodo:

Desde el principio de esta joven ciencia, la gran mayoría de los propósitos yobjetivos eran anunciados con años de antelación como grandes éxitos, esmás se llegaba a anunciar con un plazo de meses, conceptos, como la Visión Artificial, cuando aún no se había puesto la primera letra sobre el papel. Estehecho, el de subestimar la dificultad de los proyectos, ha hecho mucho mal a laInteligencia Artificial desde sus comienzos, la razón no es otra que la "des-acreditaron" a la cual ha tenido que ser sometida por los medios de comunica-ción y científicos rivales (rivales o no partidarios de la Inteligencia Artificial),hasta el punto de perder subvenciones millonarias por los excesos de optimis-mo.

1.3.2. PERIODO 1970 - 1979 

Los problemas debidos al exceso de optimismo y ambición sufridos en el pe-riodo anterior, llevaron a un replanteamiento de los objetivos a perseguir y sepasó a tratar problemas más concretos. Como hecho mas destacado es el na-cimiento de los sistemas expertos y la recuperación que trajo dentro del campode la Inteligencia Artificial, ya que supuso el regreso de las inversiones. Lossistemas expertos o sistemas de producción con reglas tratan problemas res-tringidos o un entorno limitado. Dos de los sistemas expertos más popularesson el MYCIN y el PROSPECTOR.

En este periodo, también se inicia la institucionalización de la comunidad cien-tífica que trabaja en el campo de la Inteligencia Artificial con el Primer Congre-so Internacional de Inteligencia Artificial. Poco después, en el año 1970, apare-ce el primer número de la revista especializada Artificial Intelligence.

Otra de las diferencias con el periodo anterior es que la Inteligencia Artificial seextiende de los ámbitos académicos a los centros de investigación y a las uni-versidades, donde las aplicaciones ya no son tan teóricas y además de tratar problemas matemáticos y demostraciones de teoremas se realizan aplicacio-nes mas experimentales, como los sistemas expertos y la programación lógica.

Dentro de la programación lógica se logra uno de los avances más destacablescon la aparición en 1972 del Lenguaje PROLOG.

1976. MYCIN. Desarrollado por Eduard Feigenbaum, Bruce Buchanan en launiversidad de Stanford y documentado por Edward Shortliffe. MYCIN se trata-ba de un sistema experto para el diagnóstico de enfermedades infecciosas.Desde los resultados de análisis de sangre, cultivos bacterianos y demás da-tos, el programa era capaz de determinar, o en lo menos, sugerir el microorga-nismo que estaba causando la infección. Después de llegar a una conclusión,MYCIN prescribía una medicación que se adaptaba perfectamente a las carac-

terísticas del sujeto, tales como el peso corporal de este. Después del recono-cido éxito que tuvo MYCIN entre la comunidad científica de Inteligencia Artifi-

Page 16: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 16/395

 

32  Tópicos y Aplicaciones de la Inteligencia Artificial 

cial e investigadores de medicina, los autores del programa pusieron a disposi-ción de otros investigadores una versión de MYCIN que contenía el motor "in-ferencial" de este para que fueran los propios usuarios los que insertasen alprograma información respecto al tema a tratar; se podría decir que esta ver-sión "adaptada" del original MYCIN, era el primer entorno de desarrollo de sis-

temas expertos.

PROSPECTOR. Documentado por P. E. Hart (1978) y R.Duda (1979). Era unsistema experto para evaluar los yacimientos de minerales, en particular cobrey Uranio.

PROLOG (PROgramimg LOGic). Desarrollado en 1972 por la Universidad deMarseille bajo la dirección de Alan Colmerauer. Prolog se basa en la definicióny después en la resolución de formulas lógicas. Prolog al igual que LISP es unlenguaje declarativo, ya que el programa consiste en una lista de hechos y re-glas 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 delos ámbitos académicos y de los laboratorios de investigación.

DEC iba a lanzar al mercado una nueva serie de ordenadores, los llamadosVAX. Dado que todos los ordenadores tenían configuraciones distintas entre sí,la VAX estaba previendo el enorme cuello de botella que se iba a formar,cuando los ordenadores tuviesen fallos de configuración y hubiese que arreglar este problema uno por uno, con el consiguiente gasto de tiempo y dinero queeso suponía. Los directivos de la DEC contrataron a John McDertmott, con el

cometido de realizar un sistema experto que configurase todos los ordenado-res que saliesen de la DEC. El informe de viabilidad de McDermontt expusoresultados prometedores, y en diciembre de 1978 se empezó a trabajar en elproyecto. En abril de 1979 el equipo de investigación que lo había diseñado(con McDermott a la cabeza), pensó que ya estaba preparado para salir y "co-nocer el mundo", fue entonces cuando se hizo una prueba real, esperando re-solver positivamente un 95% de las configuraciones, este porcentaje tal altoanhelado por McDermontt y compañía se quedó en un 20% al ser contrastadocon la realidad; XCON volvió al laboratorio, donde fue revisado y a finales deese mismo año (1979) funcionó con resultados positivos en la DEC. En 1980XCON se instauró totalmente en DEC. Y en 1984, el XCOM había crecido has-

ta multiplicarse por diez. En 1986 la compañía había invertido más de cincuen-ta años/hombre en el programa, pero se estaba recuperando con creces de suinversión al ahorrarse cuarenta millones de dólares al año.

Conclusión de este periodo

Como conclusión a este periodo hay que destacar la revolución que se iniciocon los sistemas expertos. El éxito de XCON, MYCIN y PROSPECTOR con-venció a las más importantes empresas a invertir en sistemas expertos. Inclusopara los más conservadores y los radicales Anti- Inteligencia Artificial, algo sehacia evidente, mientras que los costes de desarrollo de los sistemas expertos

se hacían cada vez más bajos, el salario de los expertos humanos se haciamás alto. La formación de un futuro experto costaba mucho dinero y años de

Page 17: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 17/395

Mg. Juan Gamarra Moreno  33 

esfuerzo, mientras que una vez creado un sistema experto podía ser copiado ydistribuido tantas veces como necesario fuese. Además, el sistema expertonunca 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. AÑOS OCHENTA Y PRINCIPIOS DE LOS 90 

Este periodo viene marcado por el éxito de los sistemas expertos y durante losaños ochenta aparecen empresas y proyectos especializados en ofrecer solu-ciones comercializables basados en las técnicas de la Inteligencia Artificial. LaInteligencia Artificial se consolidó en cada vez más empresas que desarrollaronlas "máquinas lisp" ( ordenadores que ejecutaban programas en LISP con lamisma rapidez de un ordenador central ) y los SHELLS ( herramientas dedesarrollo de sistemas expertos). Ejemplos de sistemas expertos que se co-mercializaron en esta época son el DELTA, de la General Electric Company,

que ayudaba a los mecánicos en la reparación y en el diagnostico de locomo-toras diesel; el Aldo en Disco para la reparación de calderas hidroestáticas gi-ratorias usadas para la eliminación de bacterias y el EURISKO capaz de per-feccionar su propio cuerpo de leyes heurísticas por inducción.

Cada vez más el mantener la base de datos de reglas de los sistemas expertosactualizada era mas costoso. El XCON llego a tener 10.000 reglas con lo queDec tenía que gastar anualmente 2 millones de dólares en el mantenimiento dela Base de Conocimientos. Actualmente este mantenimiento supone una de lasactividades más importantes de la Inteligencia Artificial.

El Ministerio de Industria y Comercio Internacional de Japón impulsa desde1979 un proyecto (Quinta generación de ordenadores) conjunto de varias em-presas que pretendía desarrollar una nueva generación de ordenadores adap-tados a las necesidades que se preveían para la década de los 90 y que basa-rían su funcionamiento en técnicas de la Inteligencia Artificial.

Finalmente el proyecto finalizo en 1992, pero aunque se obtuvieron ciertosavances en procesamiento paralelo, procesamiento del lenguaje natural, pro-gramación lógica y en el tratamiento de la información, no supuso ninguna re-volución ni ningún gran cambio ni ventaja tecnológica. Seguidamente Japón selanzo a otro nuevo proyecto Real World Computing (RWC) Project, cuyas vías

de investigación, son las redes neuronales, los computadores ópticos y la faci-lidad de uso de los ordenadores.

Por aquel entonces, el proyecto japonés sirvió para estimular la inversión enInteligencia Artificial de otros países. Sobretodo a raiz de la publicación del li-bro The Fifth Generation de Feigenbaum y McCorduck en 1983 que advertíadel “peligro” de una superioridad del Japón en el futuro de la informática a tr a-vés del dominio de las técnicas de la Inteligencia Artificial.

En 1980 se crea el sistema experto matemático MAPLE. Mas tarde en 1988 secrea otro sistema experto matemático importante el Mathematica. Ambos sis-

temas permiten trabajar directamente, es decir sin tediosas programaciones,con expresiones simbólicas como polinomios, derivadas, integrales indefinidas,

Page 18: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 18/395

 

34 Tópicos y Aplicaciones de la Inteligencia Artificial 

matrices, tensores, grupos, funciones especiales, y métodos altamente sofisti-cados.

En 1982 se fundo el ECCAI (European Coordinating Committee for ArtificialIntelligence).

En 1985 la Nasa desarrolla CLIPS, es un generador de sistemas expertos queestá codificado en lenguaje C, y que implementa un lenguaje propio para desa-rrollar sistemas expertos. Como principal característica se puede citar quecuenta con tres paradigmas de programación: orientado a reglas, procedural yorientado a objetos. También en este mismo año 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 RedesNeuronales.

1987 supuso el fin de las “maquinas LISP”, debido a la aparición de los micr o-ordenadores de Apple e IBM con potencia parecida a las maquinas LISP, y laprogramación en C del software utilizado en Inteligencia Artificial para los nue-vos microordenadores.

En 1989 se constituye el Centro de Inteligencia Artificial (CIA), en España, mástarde, se formaría la Asociación Española Para la Inteligencia Artificial (AEPIA).

1.3.4. AÑOS 90 Y EL PRESENTE 

Uno de los hechos más populares que cualquiera conoce sobre la Inteligencia Artificial es la victoria de Deep Blue (computadora de IBM que jugaba al aje-drez), contra Kasparov en 1997 (figura 1.7).

Pero recientemente en la industria japonesa han aparecido diversos Robotsque han servido para ejemplificar el estado actual de la Inteligencia Artificial.Primero fue Honda con ASIMO (acrónimo de "Advanced Step in InnovativeMobility"- paso avanzado en movilidad innovadora), es un robot humanoidecreado en el año 2000 por la empresa Honda, un robot con forma humanoidecapaz de andar y subir escaleras (figura 1.8).

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

Page 19: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 19/395

Mg. Juan Gamarra Moreno  35 

Figura 1.7. Kasparov vs. Deep Blue

Figura 1.8. Robot ASIMO

Page 20: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 20/395

 

36  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 1.9. Robot AIBO

 Al robot AIBO se le han programado emociones e instintos. Actúa de modo queintentará satisfacer sus deseos originados en sus instintos. Si se los satisface,aumentarán sus niveles de alegría, en caso contrario, se pondrá triste o furio-so. Como todo ser viviente, Aibo aprenderá a lograr lo que "desea". En ocasio-nes, moverá sus patas con furia o mostrará otras señales de bronca si no reci-be de su amo la atención que requiere. De este modo, la manera en que elamo responde a las expresiones de emotividad de Aibo influirá en su persona-lidad y "crecimiento". El robot, tiene reconocimiento de voz, hasta 40 voces ypuede recordar el nombre que se le dé y responder. Es capaz de expresar emociones.

1.4. LA S ÁREAS DE INVESTIGACIÓN DE LA IA2  

Son muchas las áreas de la Inteligencia Artificial que se investigan hoy día.Entre ellas, tenemos las siguientes:

La representación del conocimiento, que busca en el descubrimiento demétodos expresivos y eficientes describir información sobre aspectos delmundo real.

Los métodos de aprendizaje automático, que extienden las técnicas esta-dísticas con el fin de posibilitar la identificación de un amplio rango de ten-dencias generales a partir de un conjunto de datos de entrenamiento.

El campo de la planificación, que enfrenta el desarrollo de algoritmos queconstruyen y ejecutan automáticamente secuencias de comandos primiti-vos con el fin de alcanzar ciertas metas de alto nivel.

2 La ciencia y el hombre [en línea]. Veracruz: Revista de divulgación cientifica y tec-nologica de la Universidad Veracruzana; 2004. [fecha de acceso 18 de noviembre de2007]. URL disponible en:http://www.uv.mx/cienciahombre/revistae/vol17num3/articulos/inteligencia/index.htm.

Page 21: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 21/395

Mg. Juan Gamarra Moreno  37 

Los trabajos en el área de razonamiento posible, que hacen uso de princi-pios estadísticos para desarrollar codificaciones de información incierta.

El estudio de las arquitecturas de agentes, que busca la integración deotras áreas de la I A con el objeto de crear agentes inteligentes, entidades

robustas capaces de comportamiento autónomo y en tiempo real.

La coordinación y colaboración multiagentes, que ha permitido el desarrollode técnicas para la representación de las capacidades de otros agentes yla especificación del conocimiento necesario para la colaboración entreellos.

El desarrollo de ontologías, que persigue la creación de catálogos de co-nocimiento explícito, formal y multipropósito, que puedan ser utilizados por sistemas inteligentes.

Los campos de procesamiento de voz y lenguaje, que buscan la creaciónde sistemas que se comunican con la gente en su lenguaje.

La síntesis y comprensión de imágenes, que conduce a la producción dealgoritmos para el análisis de fotografías, diagramas y videos, así comotambién de técnicas para el despliegue visual de información cuantitativa yestructurada.

1.5. ÁREAS DE APL ICACIÓN DE LA IA 2  

La Inteligencia Artificial se aplica en los sistemas reales en una gran variedadde ramas y problemas:

Gestión y control: análisis inteligente, fijación de objetivos.

Fabricación: diseño, planificación, programación, monitorización, control,gestión de proyectos, robótica simplificada y visión computarizada.

Educación: adiestramiento práctico, exámenes y diagnóstico.

Ingeniería: diseño, control y análisis.

Equipamiento: diseño, diagnóstico, adiestramiento, mantenimiento, confi-guración, monitorización y ventas.

Cartografía: interpretación de fotografías, diseño, resolución de problemascartográficos.

Profesiones: abogacía, medicina, contabilidad, geología, química.

Software: enseñanza, especificación, diseño, verificación, mantenimiento.

Sistemas de armamento: guerra electrónica, identificación de objetivos,

control adaptativo, proceso de imágenes, proceso de señales.

Page 22: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 22/395

 

38  Tópicos y Aplicaciones de la Inteligencia Artificial 

Proceso de datos: educación, interfase en lenguaje natural, acceso inteli-gente a datos y gestores de bases de datos, análisis inteligente de datos.

Finanzas: planificación, análisis, consultoría.

1.6. APLICACIONES COMERCIALES DE LA INTEL IGENCIAARTIFICIAL

2  

Pero también la Inteligencia Artificial tiene numerosas aplicaciones comercialesen el mundo de hoy. Véase:

Configuración: selección de distribución de los componentes de un sistemade computación.

Diagnosis: hardware informático, redes de ordenadores, equipos mecáni-

cos, problemas médicos, averías telefónicas, instrumentación electrónica,circuitos electrónicos, averías automovilísticas.

Interpretación y análisis: datos geológicos para prospección petrolífera,compuestos químicos, análisis de señales, problemas matemáticos com-plejos, evaluación de amenazas militares, análisis de circuitos electrónicos,datos biológicos (coronarios, cerebrales y respiratorios), información de ra-dar, sonar e infrarrojos.

Monitorización: equipos, monitorización de procesos, fabricación y gestiónde procesos científicos, amenazas militares, funciones vitales de pacientes

hospitalizados, datos financieros en tiras de papel perforado por teleimpre-sora, informes industriales y gubernamentales.

Planificación: gestión de activo y pasivo, gestión de cartera, análisis decréditos y préstamos, contratos, programación de trabajos de taller, gestiónde proyectos, planificación de experimentos, producción de tarjetas de cir-cuito impreso.

Interfaces inteligentes: hardware (fiscal) de instrumentación, programas decomputadora, bases de datos múltiples, paneles de control.

Sistemas de lenguaje natural: interfaces con bases de datos en lenguajenatural, gestión de impuestos (ayudas para contabilidad), consultoría entemas legales, planificación de fincas, consultoría de sistemas bancarios.

Sistemas de diseño: integración de microcircuitos en muy alta escala, sín-tesis de circuitos electrónicos, plantas químicas, edificios, puentes y pre-sas, sistemas de transporte.

Sistemas de visión computarizada: selección de piezas y componentes,ensamblado, control de calidad.

Desarrollo de software: programación automática.

Page 23: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 23/395

Mg. Juan Gamarra Moreno  39 

Programas de reconocimiento de voz para reservar billetes de avión paraun vuelo.

Sistemas expertos que controlan el correcto funcionamiento de un trans-bordador espacial.

Sistemas expertos de diagnostico de enfermedades.

Protección de fraudes en tarjetas de crédito y cuentas a través de siste-mas de redes neuronales o sistemas expertos.

Detección de pequeñas anomalías invisibles al ojo humano en radiografias.

Sistemas de mensajería de voz.

En el mundo de los videojuegos. Rivales con comportamiento logico.

Traducción automática de documentos. (GOOGLE)

Page 24: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 24/395

 

40 Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 25: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 25/395

Mg. Juan Gamarra Moreno  41 

CAPITULO DOSBÚSQUEDA

La solución de problemas de búsqueda permite encontrar una secuencia deestados y acciones que nos lleven a alcanzar una meta. Se puede considerar que las acciones son las causantes de la transición entre uno y otro estado;por ello, se tiene que determinar qué acciones permiten obtener el estado co-rrespondiente a una meta. Pero, para ello, primero tiene que decidir qué tipos

de acciones y estados habrá que tomar en consideración. A través de la historia los problemas de búsqueda se han utilizado en la solu-ción de rompecabezas y juegos. Para estos problemas se requiere la explora-ción de varias alternativas antes de elegir la siguiente acción.

2.1. FORMULACIÓN DE PROBLEMAS DE BÚSQUEDA

Un problema es un conjunto de información que se utiliza para decidir que de-bemos hacer. Los elementos básicos que configuran la definición de un pro-blema son los estados y las acciones. Para capturarlos formalmente necesi-

tamos lo siguiente:

  El estado inicial, es el estado donde se inicia la búsqueda.

El conjunto de las posibles acciones que el agente puede emprender. Eltérmino operador denota la descripción de una acción en función de lacual se alcanzará un estado al emprender una acción en un estado particu-lar. (Otra forma de definirlo es mediante la función subsecuente S. Tenien-do un estado particular  x, S(x) responde con un conjunto de estados obte-nibles a partir de x mediante una sola acción).

Los dos términos anteriores definen el espacio de estados del problema: elconjunto de todos los estados que pueden alcanzarse a partir del estado inicial

Page 26: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 26/395

 

42  Tópicos y Aplicaciones de la Inteligencia Artificial 

mediante cualquier secuencia de acciones. Una ruta del espacio de estados essimplemente cualquier secuencia de acciones que permiten pasar de un esta-do a otro. El siguiente elemento de un problema es:

La prueba de meta, es lo que el agente aplica a la descripción de un solo

estado para decidir si se trata de un estado meta. Hay ocasiones en lasque existe un conjunto explicito de posibles estados meta, y la prueba sólosirve para cerciorarse si hemos alcanzado alguno de ellos. A veces la me-ta se especifica mediante una propiedad abstracta, en vez de un conjuntode estados enumerados explícitamente. Por ejemplo, en el ajedrez la metaes alcanzar un estado denominado “jaque mate” en el que el rey del con-trincante se capturará en la siguiente jugada, haga lo que haga éste.

Por último, hay casos en los que una solución es preferible a la otra, no obs-tante que con ambas pueda lograrse la meta. Por ejemplo, son preferibles lasrutas que entrañan menos acciones o acciones menos costosas.

La función costo de ruta es una función mediante la que se asigna un costoa una ruta determinada. En todos los casos que consideraremos, estecosto es la suma de los costos de cada una de las acciones individualesque se emprendan a lo largo de la ruta.

Conjuntamente, el estado inicial, el conjunto del operador, la prueba de la metay la función costo de ruta definen un problema.

2.2. ¿CÓMO ESCOGER ESTADOS Y ACCIONES? 

Empezamos a través de un ejemplo sencillo: “Ir en auto de Arad a Bucarestutilizando las carreteras del mapa de la figura 2.1.

En un espacio de estados adecuado hay 20 estados, cada uno de les cualesse define exclusivamente por ubicación, especificada como una ciudad. Por lotanto, el estado inicial es "en Arad" y la prueba de meta es “¿aquí es Buc a-rest?” Los operadores consisten en manejar por las carreteras entre una ciu-dad y otra.

Una solución es la ruta que va de Arad a Sibiu, a Rimnicu Vilcea, a Pitesti y aBucharest. Son muchas las otras rutas que también son soluciones, por ejem-plo, vía Lugoj y Craiova. Para decidir cuál de estas soluciones es la mejor, hayque saber qué es lo que se está midiendo con la función costo de trayectoria:puede ser el kilometraje total o el tiempo de recorrido estimado. La función decosto que se utiliza en este caso será el kilometraje, así pues, la ruta que va de Arad a Sibiu, a Rimnicu Vilcea, a Pitesti y a Bucharest, tiene un costo de rutade 418 y es la mejor de las soluciones.

Page 27: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 27/395

Mg. Juan Gamarra Moreno  43 

Figura 2.1. Un mapa simplificado de Rumania

2.3. EJEMPLOS DE LA SOLUCIÓN DE PROBLEMAS DE BÚSQUEDA

2.3.1. EJEMPLO 1: 8 PUZZLE 

El problema consiste en colocar las fichas del puzzle desde el estado inicial alestado final (figura 2.2), utilizando el espacio vacio.

Estado inicial Estado final

Figura 2.2. Un estado inicial y el estado final para el 8-Puzzle.

Para encontrar la solución de este problema, se requiere la exploración de va-rias alternativas, para llegar al siguiente estado (figura 2.3). En la figura 2.3, a

cada disposición de las fichas corresponde un estado.

Page 28: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 28/395

 

44 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 2.3. Alternativas para encontrar el siguiente estado en el 8-Puzzle.

  Estados: Uno de los estados mostrados en la figura 2.3.

  Operadores: Desplazar ficha a la izquierda al vacio, desplazar ficha a laderecha al vacio, desplazar ficha hacia abajo al vacio y desplazar ficha ha-cia arriba al vacio.

  Prueba de meta: ¿Se encuentra en el estado final?

  Costo de ruta: Cada acción cuesta 1.

2.3.2. EJEMPLO 2: EL MUNDO DE LA ASPIRADORA

 A un agente se le encomienda limpiar con una aspiradora un piso sucio, con-tando con información completa. Se supone que el agente sabe en dónde estáasí como la ubicación de todas las piezas de mugre y que la aspiradora suc-ciona adecuadamente.

  Estados: Uno de los ocho estados mostrados en la figura 2.4.

  Operadores: Desplazarse a la izquierda, desplazarse a la derecha, aspi-rar.

  Prueba de meta: No hay mugre en ninguno de los cuadros.

  Costo de ruta: Cada acción cuesta 1.

En la figura 2.4, se muestra todo el espacio de estados así como la totalidad de

sus posibles rutas. Para resolver el problema a partir de cualquier estado tansólo hay que seguir las flechas hasta llegar al estado meta. Si bien este es el

Page 29: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 29/395

Mg. Juan Gamarra Moreno  45 

caso en todos los problemas, en la mayoría de ellos el espacio de estados esconsiderablemente más vasto y complicado.

Figura 2.4. Diagrama del espacio de estados simplificado de la aspiradora. Los arcos indican ac-ción. I = desplazarse a la izquierda, D = desplazarse a la derecha, A = aspirar.

2.4. MÉTODOS CIEGOS DE BÚSQUEDA 3  

Suponga que desea hallar una trayectoria de una ciudad a otra mediante unmapa de carreteras como el de la figura 2.5.

Su trayectoria deberá comenzar en la ciudad S, su punto inicial, y terminar enla ciudad G, su meta. Para hallar una trayectoria apropiada en el mapa, nece-sitará considerar dos costos distintos:

En primer lugar, el costo de cálculo para encontrar la trayectoria.

En segundo, el costo del viaje cuando se sigue la trayectoria.

Si necesita ir de S a G con frecuencia, entonces hallar una trayectoria realmen-te buena justifica la inversión del tiempo de búsqueda. Por otro lado, si requie-re hacer el viaje sólo una vez, y resulta difícil hallar cualquier trayectoria, talvez se sienta satisfecho en cuanto obtenga una, aun cuando podría encontrar algo mejor invirtiendo más tiempo en la búsqueda.

3 Winston P. Inteligencia Artificial. 3ra. ed. USA: Addison Wesley; 1994

Page 30: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 30/395

 

46  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 2.5. Problema de una búsqueda básica. Se debe encontrar una trayectoria desde el nodo inicial, S, al nodo meta, G. Los  procedimientos de búsqueda explo-

ran redes como ésta, enterándose de las conexiones y distancias mientras lohacen. 

La búsqueda de red es en realidad una búsqueda de árbol 

La manera más obvia de hallar una solución es considerar todas las trayecto-rias posibles. Por supuesto, usted deberá descartar las trayectorias que pasanmás de una vez por una ciudad en particular a fin de no quedar atrapado en unciclo, como sería el caso de S-A-D-S-A-D-S-A-D-...

Una vez eliminadas las trayectorias con ciclos, se puede ordenar todas las tra-yectorias posibles a partir del nodo inicial en un árbol de búsqueda, un tipoespecial de árbol semántico en el que cada nodo representa una trayectoria:

Un árbol de búsqueda es una representación, o sea, un árbol semántico en elque

los nodos representan trayectorias;

las ramas conectan trayectorias a extensiones de trayectoria de un solopaso.

Contiene escritores que

conectan una trayectoria a una descripción de trayectoria.

Contiene lectores que

producen una descripción de trayectoria.

En la figura 2.6 se muestra un árbol de búsqueda que consiste en nodos querepresentan las trayectorias posibles que salen del nodo inicial de la red de lafigura 2.5.

Page 31: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 31/395

Mg. Juan Gamarra Moreno  47 

Se observa que, aunque cada nodo de un árbol de búsqueda representa unatrayectoria, no hay espacio en los diagramas para escribir cada trayectoria decada nodo. En consecuencia, cada nodo está etiquetado sólo con el nodo ter-minal de la trayectoria que representa. Cada hijo representa una trayectoriaque es una extensión de una ciudad de la trayectoria representada por su pa-

dre. 

2.4.1. LA BÚSQUEDA EN PROFUNDIDAD INCURSIONA EN EL ÁRBOLDE BÚSQUEDA

Mediante la convención de intentar las alternativas de izquierda a derecha, loprimero que hay que hacer es trazar una línea punteada hasta la base del ár-bol, siguiendo las ramas ubicadas más a la izquierda, como se muestra en lafigura 2.7.

Figura 2.6 Árbol de búsqueda hecho a partir de una red. Cada nodo representa unatrayectoria. Cada nodo hijo representa una trayectoria que es una extensión de unpaso de la trayectoria representada por su padre. Usted convierte redes en árbolesde búsqueda trazando todas las trayectorias posibles hasta que ya no pueda extenderninguna de ellas sin crear un ciclo.

Page 32: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 32/395

 

48  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 2.7 Ejemplo de búsqueda en profundidad. Se escoge una al-ternativa y se le sigue en cada nodo hasta llegar a la meta o aun nodo en el que ya no es posible seguir hacia abajo. Cuandoya no se  puede seguir hacia abajo, la búsqueda se reinicia en el antecesor más cercano que posea hijos sin explorar.

Pero como la línea punteada conduce al nodo hoja C, sin encontrar a G, el si-guiente paso es volver al nodo antecesor más cercano que tenga una alternati-

va sin explorar. El nodo más cercano de este tipo es B. La alternativa quequeda en B es mejor, ya que finalmente permite obtener el éxito a través de E,a pesar de llegar a otro callejón sin salida en D. En la figura 2.7 se muestranlos nodos encontrados.

Si la trayectoria a través de E no hubiera funcionado, entonces el procedimien-to hubiera retrocedido aún más en el árbol, en busca de otro punto de decisiónviable desde el cual pudiera continuar hacia adelante. Al llegar a A, el proce-dimiento hubiera reanudado su movimiento hacia abajo, alcanzando la meta através de D.

Page 33: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 33/395

Mg. Juan Gamarra Moreno  49 

 Algoritmo de la búsqueda en profundidad 

Para llevar a cabo una búsqueda en profundidad,

forme una cola de un elemento consistente en una trayectoria de longitud

cero que contenga sólo al nodo raíz; hasta que la primera trayectoria de la fila termine en el nodo meta o se va-

cíe la cola,

elimine la primera trayectoria de la cola; cree nuevas trayectorias exten-diendo el primer paso a todos los vecinos del nodo terminal;

rechace todas las trayectorias nuevas con ciclos;

agregue las nuevas trayectorias, si las hay, al frente de la cola.

si el nodo meta se alcanza, mencione que hubo éxito; de otro modo, notifi-que el fracaso.

2.4.2. LA BÚSQUEDA EN AMPL ITUD SE EXTIENDE UNIFORMEMENTE EN EL ÁRBOL DE BÚSQUEDA

Como se muestra en la figura 2.8, la búsqueda en amplitud revisa todas lastrayectorias de una longitud dada antes de avanzar a una trayectoria más lar-ga. En el ejemplo, la búsqueda en amplitud encuentra una trayectoria completaal nodo G en el cuarto nivel a partir del nivel raíz.

Un procedimiento de búsqueda en amplitud se parece a uno de búsqueda enprofundidad, y difieren tan sólo en los puntos donde se agregan los nuevoselementos a la cola.

 Algoritmo de la búsqueda en amplitud 

forme una cola de un solo elemento consistente en una trayectoria de lon-gitud cero que contenga sólo al nodo raíz;

hasta que la primera trayectoria de la cola concluya en el nodo meta o sevacíe la cola,

elimine la primera trayectoria de la cola; cree nuevas trayectorias exten-diendo el primer paso a todos los vecinos del nodo terminal;

rechace las trayectorias nuevas con ciclos;

agregue las nuevas trayectorias, si las hay, al final de la cola.

si se halla el nodo meta, mencione que hubo éxito; si no, notifique el fraca-

so.

Page 34: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 34/395

 

50 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 2.8. Ejemplo de búsqueda en amplitud. El movimiento haciaabajo se efectúa nivel por nivel, hasta que se alcanza la meta.

2.5. REDES Y BÚSQUEDA ÓPTIMA

 

2.5.1. LA BÚSQUEDA DE RAMIFICACIÓN Y COTA EXPANDE LA TRA- YECTORIA PARCIAL DE MENOR COSTO 

Una forma de encontrar trayectorias óptimas con menos trabajo es usar labúsqueda de ramificación y cota. La idea básica es simple. Si se desea unasolución óptima para el mapa de carreteras que se muestra en la figura 2.5, setiene que este puede ser S-D-E-F-G.

No obstante, como sabe que la longitud de S-D-E-F-G es 13, puede ahorrarseuna parte del trabajo. Por ejemplo, como se muestra en la figura 2.9, no haynecesidad de tomar en cuenta las trayectorias que inician con S-D-A-B, puestoque la longitud de S-D-A-B ya es 13.

De manera más general, el esquema de ramificación y cota siempre se man-tiene al tanto de todas las trayectorias parciales que compiten para su conside-ración posterior. La más corta de ellas se extiende un nivel, creándose tantastrayectorias parciales nuevas como ramas existan. En seguida, se consideranestas nuevas trayectorias junto con las anteriores restantes: de nuevo, se ex-tiende la más corta. Este proceso se repite hasta llegar a la meta a través deuna trayectoria. Dado que la trayectoria más corta es la que siempre se esco-ge para su extensión, la trayectoria que primero encuentra la meta es probableque sea la óptima.

Page 35: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 35/395

Mg. Juan Gamarra Moreno  51 

Figura 2.9 La longitud de la trayectoria completa de S a G, S-D-E-F-G es 13. De manera pa-recida, la longitud de la trayectoria parcial S-D-A-B es también 13 y cualquier movimiento

adicional a lo largo de una rama la hará mayor que 13. En consecuencia, no hay necesidad deseguir por S-D-A-B, ya que cualquier trayectoria completa que comience con S-D-A-B tieneque ser mayor que la trayectoria completa ya conocida. Sólo las otras trayectorias que partende S y de S-D-E tienen que ser consideradas, ya que podrían dar una trayectoria más corta.

Para convertir lo probable en cierto, se tiene que extender todas las trayecto-rias parciales hasta que tengan una longitud igual o mayor que la trayectoriacompleta más corta. La razón es que el último paso para alcanzar la metapuede ser lo suficientemente largo para hacer que la supuesta solución resultemás larga que una o más trayectorias parciales. Puede ser que sólo un paso

pequeño extienda una de las trayectorias parciales al punto solución. Paraasegurarse de que esto no suceda, en lugar de terminar al encontrar una tra-yectoria, termine cuando la trayectoria parcial más corta tenga una longitudmayor que la trayectoria completa más corta.

 Algoritmo de búsqueda de ramificación y cota

forme una cola de un elemento consistente en una trayectoria de longitud

cero que contenga sólo al nodo raíz;

Page 36: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 36/395

 

52  Tópicos y Aplicaciones de la Inteligencia Artificial 

hasta que la primera trayectoria de la cola concluya en la meta o la colaquede vacía,

elimine la primera trayectoria de la cola; cree nuevas trayectorias exten-diendo la primera a todos los vecinos del nodo terminal; 

rechace todas las trayectorias nuevas con ciclos;

agrege las trayectorias nuevas restantes, si las hay, a la cola; 

ordene la cola completa por longitud de trayectoria con las trayectoriasde menor costo al frente.

si la meta se encuentra, mencione que hubo éxito; si no, notifique el fraca-so.

En el problema del recorrido del mapa se muestra cómo funciona la ramifica-ción y cota cuando se comienza sin trayectorias parciales. En la figura 2.10, semuestra la secuencia de la exploración. En el primer paso, la distancia de latrayectoria parcial S-A es 3, y la de S-D, 4; así pues, la trayectoria parcial S-Ase selecciona para su extensión. En seguida se generan S-A-B y S-A-D, a par-tir de S-A, con distancias de trayectoria parcial de 7 y 8.

 Ahora S-D, con una distancia de trayectoria parcial de 4, se extiende y condu-ce a las trayectorias parciales S-D-A y S-D-E. En este punto, existen cuatrotrayectorias parciales, de las cuales la más corta es S-D-E.

Después de realizar el séptimo paso, las trayectorias parciales S-A-D-E y S-D-E-F son las más cortas. Extender S-A-D-E conduce a trayectorias parcialesque concluyen en B y F. Extender S-D-E-F, a lo largo del lado derecho del ár-bol, lleva a la trayectoria completa S-D-E-F-G, con una distancia total de 13.Esta trayectoria es la más corta, pero si desea estar absolutamente seguro,debe extender dos trayectorias parciales: S-A-B-E, con una distancia parcial de12, y S-D-E-B, con una distancia parcial de 11. No hay necesidad de extender la trayectoria parcial S-D-A-B, ya que su distancia parcial de 13 coincide con lade la trayectoria completa. En este ejemplo en particular, es poco el trabajo

que se ahorra en relación con lo exhaustivo de la búsqueda.

2.6. FUNDAMENTOS DEL LENGUAJE LISP 

El uso del algoritmo de búsqueda de ramificación y cota, se puede implementar en el lenguaje LISP; este lenguaje proviene de procesamiento de listas (ListProcessing), fue creado por Jhon Mc Carthy en 1960. Es un Lenguaje Orienta-do a procesar símbolos, y asociarles información de manera sencilla.

Page 37: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 37/395

Mg. Juan Gamarra Moreno  53 

Figura 2.10 La búsqueda de ramificación y poda determina que la trayectoria S-D-E-F-G esóptima. Los números que se encuentran junto a los nodos son distancias acumuladas. Labúsqueda se detiene cuando todas las trayectorias parciales hacia nodos abiertos son de lamisma longitud o mayores que la trayectoria completa S-D-E-F-G.

Page 38: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 38/395

 

54 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 2.10. Continuación.

Page 39: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 39/395

Mg. Juan Gamarra Moreno  55 

Figura 2.10. Continuación.

Page 40: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 40/395

 

56  Tópicos y Aplicaciones de la Inteligencia Artificial 

2.6.1. ÁTOMOS 

Los átomos pueden ser:

números, como 34.56, -57, etc.

Símbolos, nombres o identificadores, formados por uno o más caracteres.Se excluyen los caracteres caracter blanco, paréntesis, punto y coma, co-millas dobles(“), comillas simples (´), el caracter de grave (`). 

Ejemplos:

PROMEDIO

edad

“mensaje” 

NOTA: LISP no distingue las letras mayúsculas de las minúsculas.

2.6.2. LISTAS 

Una lista puede ser una secuencia de átomos separados por un espacio y en-cerrados por paréntesis redondos, incluyendo la posibilidad de que una listacontenga una sublista que cumple con las mismas características.

Ejemplos:

()

(calificaciones 12 13)

(pedro (matematica 11 13) (historia 15 18))

2.6.3. COMENTARIOS 

Se utiliza el carácter punto y coma (;) para ignorar los caracteres que siguen aeste.

2.6.4. AS IGNACION CON SETQ 

Sintaxis:

(SETQ var1 F1 var2 F2 . . . varn Fn)

2.6.5. SALIDA CON PRINC Y PRINT 

Muestra la salida en la pantalla.

Page 41: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 41/395

Mg. Juan Gamarra Moreno  57 

Sintaxis:

(PRINC F) ; sin salto de línea

(PRINT F) ; con salto de línea

2.6.6. ENTRADA CON READ 

Lee una expresión sin evaluarla.

Sintaxis:

(READ)

2.6.7. FUNCIONES MATEMATICAS 

Dado n1, n2, . . . , nm como numéricos se tiene:

(+ n1 n2 … nm) ; suma n1+n2+ . . . +nm

(- n1 n2 … nm) ; resta n1-n2-. . . -nm

(* n1 n2 … nm) ; multiplica n1*n2* . . . *nm 

(/ n1 n2 … nm) ; divide n1/n2/. . . /nm 

(REM n1 n2) ; resto de la división n1 entre n2

2.6.8. DEFINICIÓN DE FUNCIONES DE USUARIO 

Una función es un identificador nf que se define con DEFUN mediante una lis-ta:

Sintaxis:

( DEFUN nf (p1 p2 . . . pk)

F1

F2

. . .

Fn

)

Donde:

nf : nombre de la función

Page 42: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 42/395

 

58  Tópicos y Aplicaciones de la Inteligencia Artificial 

(p1 p2 . . . pk) es una lista de símbolos p1, p2, . . ..pk, llamados parámetrosde nf.

F1, F2, . . ., Fn son las formas componentes de nf y constituyen el cuerpode instrucciones de la función.

Cuando se evalúa (nf arg1 … argn), siendo argi los argumentos que se pasana nf, tienen lugar el siguiente proceso:

Se evalúa cada argi y se copia su valor en el respectivo parámetro pi.

Se ejecuta o evalúa sucesivamente cada forma Fi.

La función nf retorna el valor de la última forma.

NOTA:

Usualmente cada Fi es a su vez otra función nfi

Obsérvese que, con excepción del valor de la última forma, no son toma-dos en cuenta los valores de las formas. La evaluación de estas formas sehace exclusivamente por sus efectos laterales, o sea por las acciones o ta-reas que ellas realizan.

Los símbolos pi son variables locales a nf, es decir, desaparecen cuandoterminan la ejecución de la función.

2.6.9. EJECUCIÓN DE UNA FUNCIÓN DEFINIDA POR EL USUARIO 

Escriba la función en un archivo con extensión .LSP y colóquelo en memoria através de la instrucción siguiente:

(RDS NOMBRE_ARCHIVO.LSP)

La función ahora esta en memoria y lo puede ejecutar mencionando su nombrey sus parámetros.

2.6.10. EJEMPLO (2-1): PROGRAMA QUE SUMA DOS NÚMEROS.

;Archivo: F1.LSP(DEFUN F1()

(PRINC "INGRESE PRIMER NUMERO: ")(SETQ N1 (READ))(PRINC "INGRESE SEGUNDO NUMERO: ")(SETQ N2 (READ))(SETQ SUMA (+ N1 N2))(PRINC "LA SUMA ES: ")(PRINT SUMA)(TERPRI)

)

(RDS)

Page 43: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 43/395

Mg. Juan Gamarra Moreno  59 

2.6.11. EJEMPLO (2-2): PROGRAMA QUE CALCULA EL ÁREA DE UN CUADRADO CON EL USO DE UNA FUNCIÓN.

;ARCHIVO: AREACUAD.LSP(DEFUN CUAD ()

(PRINC "PROGRAMA QUE CALCULA EL AREA DE UN

CUADRADO CON EL USO DE UNA FUNCION")(TERPRI)(PRINC "INGRESE LADO " )(SETQ L (READ))(SETQ A (AREA L))(PRINC "EL AREA DEL CUADRADO ES : ")(PRINT A)

(TERPRI)); FIN DEFUN CUAD

(DEFUN AREA (LADO)(* LADO LADO)

)

(RDS)

2.6.12. SIMBOLOS ESPECIALES NIL Y T 

El Lisp utiliza los símbolos predefinidos NIL y T para representar los valoresfalso y verdadero.

Page 44: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 44/395

 

60 Tópicos y Aplicaciones de la Inteligencia Artificial 

2.6.13. FUNCIONES LOGICAS 

Estas funciones comprueban si se cumple o no una determinada condición,devuelven NIL cuando la condición es falsa y un valor distinto de NIL si la con-dición es verdadera.

(ATOM F) : devuelve T si F es un átomo.

(LISTP F) : su valor es T si F es una lista.

(NULL F): retorna T si F es la lista vacía.

(NUMBERP F) : devuelve T si F es un número.

(EQUAL F G) : su valor es T si F y G tiene iguales valores.

  (MEMBER E L ‘EQUAL) : si E es un elemento de la lista L, esta fun-ción devuelve una lista como valor verdadero: la porción final de L que em-pieza en el primer E.

(SIMBOLP F) : devuelve T si F es un símbolo.

(FUNCTIONP F) : devuelve T si F es un nombre de función.

Los siguientes predicados se aplican a argumentos numéricos n1, n2, . . . , nm.

(= n1 n2 . . . nm) devuelve T si todos los números son iguales.

(/= n1 n2 . . . nm) devuelve T si existe un par de números distintos.

(< n1 n2 . . . nm) devuelve T si cada número es menor que el siguiente.

(> n1 n2 . . . nm) devuelve T si cada número es mayor que el siguiente.

(<= n1 n2 . . . nm) devuelve T si cada número es menor o igual que el si-guiente.

(>= n1 n2 . . . nm) devuelve T si cada número es mayor o igual que el si-guiente.

2.6.14. OPERACIONES LOGICAS 

(NOT F) devuelve T si el valor de F es NIL.

(AND F1 F2 . . . Fm) devuelve NIL si hay al menos una Fi con valor NIL; encaso contrario devuelve el valor de Fm. AND termina en el primer Fi quetenga valor NIL.

(OR F1 F2 . . . Fm) devuelve NIL si todas las Fi tienen valor NIL; en caso

contrario, OR termina y devuelve el resultado del primer Fi que resulte convalor no NIL.

Page 45: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 45/395

Mg. Juan Gamarra Moreno  61 

2.6.15. INSTRUCCIONES DE CONTROL

Estas funciones modifican el proceso de ejecución o evaluación de formas.

COND

Es una instrucción de selección múltiple.

Sintaxis:

( COND

L1

. . .

L2

)

siendo los Li listas, en donde se tratan los distintos casos de selección.

Efecto:

Selecciona la primera lista Li cuyo primer miembro es verdadero y procede aevaluar secuencialmente todos los miembros de Li devolviendo el valor de suúltimo elemento. Las restantes listas son ignoradas.

COND devuelve NIL si los primeros miembros de todas las listas tienen valoresNIL.

LOOP Y DO

Las instrucciones LOOP y DO ejecutan cero o más veces un bloque de formas.

Sintaxis de LOOP:

(LOOP

L1. . .

Ln

)

siendo Li listas (pi . . .) miembros del bloque de LOOP.

Efecto: LOOP repite el ciclo de instrucciones Li.

El procesamiento de una lista Li, que depende de su cabeza o primer elementopi, es el siguiente:

Page 46: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 46/395

 

62  Tópicos y Aplicaciones de la Inteligencia Artificial 

CASO 1: pi es un símbolo (nombre de función), o sea Li tiene la forma (función…), simplemente se evalua Li. 

CASO 2: pi es una lista (predicado de prueba o test), esto es Li es de la forma((función …)…).

Si el valor de pi es NIL, se ignoran los otros miembros de Li.

Si el valor de pi es verdadero, se procede a evaluar secuencialmente los res-tantes miembros de Li, y LOOP termina retornando el valor del último miembro.

 Así, LOOP se ejecuta hasta encontrar una lista Li cuya cabeza es una lista convalor verdadero.

Las listas del caso 2 se denominan listas de control y constituyen los lugarespor los cuales LOOP puede salir del ciclo o terminar su ejecución.

Sintaxis de la instrucción DO:

(DO

LVAR

L1

… 

Ln

)

Donde LVAR es una lista compuesta por elementos de la forma

(VARi Si Ai)

que definen las variables locales VARi, y Li son listas (pi …). 

Efecto: Primero DO asigna simultáneamente a cada VARi el valor de Si, y lue-go repite el ciclo:

Procesar L1

… 

procesar L2

actualizar VARi con el valor de Ai.

DO procesa cada lista Li de la misma manera en que lo hace LOOP.

Por tanto, cuando exista una forma Li cuyo primer miembro pi es una lista con

valor verdadero, pasa a evaluar los otros miembros y finaliza retornando el úl-timo valor.

Page 47: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 47/395

Mg. Juan Gamarra Moreno  63 

NOTA:

La lista de variables locales puede ser vacia: ()

En lugar de (VARi Si Ai) se admiten las expresiones:

(VARi Si) variable local con valor inicial pero sin expresión de actualiza-ción.

(VARi) variable local sin valor inicial ni valor de actualización.

LOOP es equivalente a DO sin variables locales, es decir, con la lista vacíade variables locales.

2.6.16. EJEMPLO (2-3): PROGRAMA QUE COMPARA DOS NÚMEROS.

;archivo: F2.LSP(DEFUN F2()

(PRINC "INGRESE PRIMER NUMERO: ")(SETQ N1 (READ))(PRINC "INGRESE SEGUNDO NUMERO: ")(SETQ N2 (READ))( COND((> N1 N2) (PRINC N1 )(PRINT " ES MAYOR"))((< N1 N2) (PRINC N2 )(PRINT " ES MAYOR"))('T (PRINC N1 )(PRINC "Y")(PRINC N2 )(PRINT " SON IGUALES"))

)(TERPRI)

)

(RDS)

Page 48: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 48/395

 

64 Tópicos y Aplicaciones de la Inteligencia Artificial 

2.6.17. EJEMPLO (2-4): PROGRAMA QUE IMPRIME LOS NÚMEROS DEL 1 AL 10 Y SUS RESPECTIVOS DOBL ES.

;archivo: PROG00.LSP

(DEFUN P00()

(SETQ N 1)(PRINC "NUMERO DOBLE ")(TERPRI)(LOOP((> N 10))(PRINC N)(PRINC " ")(PRINC (DOBLE N))(TERPRI)(SETQ N (+ N 1))

)

); FIN DEFUN

(defun doble (n)(SETQ D (+ n n))(RETURN D)

)

(rds)

2.6.18. PROCESAMIENTO DE LISTAS 

QUOTE

El valor de (QUOTE F) es la misma expresión sin evaluarla.

Se usa también (‘F). 

Page 49: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 49/395

Mg. Juan Gamarra Moreno  65 

CAR Y CDR

Si L es una lista (e1 e2 … en), entonces (CAR L) devuelve el primer elemento

e1 y (CDR L) devuelve la lista (e2 … en), que resulta de suprimir el primer elemento.

CXXR, CXXXR, CXXXXR

En estas funciones X es la letra A por CAR o D por CDR, que equivalen a apli-car sucesivamente varios CAR y CDR, y por tanto simplifican la escritura deesta clase de expresiones.

LIST

La función (LIST e1 e2 … en) devuelve la lista (e1  e2 … en) formada por los

elementos ei.

CONS

Si el valor de L es la lista (e1 e2 … en), y el valor de X es x, la función (CONSX L) devuelve la lista

(x e1 e2 … en) 

obtenida agregando x, como primer elemento, a la lista anterior.

APPEND

Se utiliza para formar una lista con los elementos de otras listas. De una mane-ra precisa, si los valores de L1, L2, … , Ln son listas, entonces el valor de

(APPEND L1,L2, … , Ln) 

es la lista formada por los elementos de la primera lista, seguidos por los ele-mentos de la segunda lista y así sucesivamente.

REVERSE

Invierte el orden de los elementos de una lista. Si L es la lista (e1 e2 … en),entonces el valor de (REVERSE L) es la lista (en en-1 … e2 e1). 

LAST

(LAST L) devuelve la lista (en), formada por el último elemento.

 A continuación se muestra el uso de estas funciones:

Page 50: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 50/395

 

66  Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 51: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 51/395

Mg. Juan Gamarra Moreno  67 

2.6.19. EJEMPLO (2-5): PROGRAMA QUE SEPARA LOS PARES E IM- 

PARES DE UNA LISTA EN OTRAS DOS LISTAS.

;ARCHIVO: PROG02.LSP

(DEFUN P02 ()(SETQ C 0)(SETQ PAR () IMP ())(SETQ L '(4 5 6 8 9 11))(PRINC "LISTA INICIAL : ")(PRINT L)(SETQ L (REVERSE L))(SETQ LONG (LENGTH L))(LOOP(SETQ C (+ C 1))

((> C LONG)(TERPRI))(COND( (= (REM (CAR L) 2) 0) (SETQ PAR (CONS (CAR L) PAR)) (SETQ L (CDR L)) )(T (SETQ IMP (CONS (CAR L) IMP)) (SETQ L (CDR L)) )

); FIN DE COND

); FIN DE LOOP

(PRINC "LISTA PAR ES : ")(PRINT PAR)(TERPRI)(PRINC "LISTA IMPAR ES : ")(PRINT IMP)(TERPRI)

); FIN DE DEFUN(RDS)

Page 52: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 52/395

 

68  Tópicos y Aplicaciones de la Inteligencia Artificial 

2.6.20. EJEMPLO (2-6): PROGRAMA QUE LEE NOMBRES Y SUS RES- 

PECTIVAS CAL IFICACIONES Y LUEGO MUESTRA QUIEN OB- TUVO LA MAYOR CALIFICACIÓN.

;archivo: PROG03.LSP(DEFUN P03 ()

(SETQ L () )(LOOP(PRINC "ING. NOMBRE(FIN PARA TERMINAR) : ")(SETQ NOMB (READ))(TERPRI)((EQUAL NOMB "FIN") (TERPRI))(PRINC "ING. NOTA(0-20) : ")(SETQ NOTA (READ))(TERPRI)(SETQ L (CONS (LIST NOMB NOTA) L))

);FIN LOOP (INGRESO DE DATOS)(SETQ L (REVERSE L))(PRINC "LISTA ES : ")(PRINT L)(TERPRI); COPIA DE LA LISTA(SETQ L1 L)

;LONGITUD DE LA LISTA(SETQ LONG (LENGTH L)); BUSQUEDA DE LA NOTA MAYOR(SETQ C 0)(SETQ MAY (CADR (CAR L)))

(LOOP(SETQ C (+ C 1))( (> C LONG) (TERPRI))(COND( (< MAY (CADR (CAR L))) (SETQ MAY (CADR (CAR

L))) )( (> MAY (CADR (CAR L)) ) (SETQ MAY MAY) )

);FIN DE COND(SETQ L (CDR L))

);FIN DE LOOP(PRINC "LA NOTA MAYOR ES: ")(PRINT MAY)

(TERPRI);BUSQUEDA DE LOS QUE TIENEN MAYOR NOTA

Page 53: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 53/395

Mg. Juan Gamarra Moreno  69 

(SETQ L L1)(SETQ C 0)(LOOP(SETQ C (+ C 1))( (> C LONG) (TERPRI))(COND( (= MAY (CADR (CAR L))) (PRINT (CAR L)) )

);FIN DE COND(SETQ L (CDR L))

);FIN DE LOOP(TERPRI)

);FIN DE DEFUN(RDS)

2.6.21. EJEMPLO (2-7): PROGRAMA QUE EVALÚA SI UNA ORACIÓN ES SINTÁCTICAMENTE CORRECTA .

;ARCHIVO: PROG04.LSP

(DEFUN P04 ()(SETQ LS '(PEDRO JUAN ANA))(SETQ LV '(COME ESTUDIA CORRE))(SETQ LA '(MUCHO POCO))(SETQ ERROR '())

(CLEAR-SCREEN)

(PRINC "INGRESE PALABRAS COMO UNA LISTA ")(SETQ LISTA (READ))

Page 54: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 54/395

 

70 Tópicos y Aplicaciones de la Inteligencia Artificial 

(SETQ L (ORACION LISTA))(COND((NULL L) (PRINC "LISTA SINTACTICAMENTE CORRECTA"))(T (PRINC "LISTA SINTACTICAMENTE INCORRECTA") )

); FIN COND(TERPRI)

);FIN DE DEFUN

;*****************(DEFUN ORACION (LI)

(SETQ LI (SUJETO LI))(SETQ LI (VERBO LI))(SETQ LI (COMP LI))

(RETURN ERROR));FIN DE ORACION

;********************(DEFUN SUJETO (LI)

( COND

((MEMBER (CAR LI) LS 'EQUAL) (RETURN (CDR LI)) )(T (PRINC "ERROR SUJETO") (TERPRI) (SETQ ERROR (CONS E1 ERROR)) (RETURN (CDR LI))))

); FIN SUJETO

;********************(DEFUN VERBO (LI)

( COND((MEMBER (CAR LI) LV 'EQUAL) (RETURN (CDR LI)) )(T (PRINC "ERROR VERBO") (TERPRI) (SETQ ERROR (CONS E2 ERROR)) (RETURN (CDR LI)))

)); FIN SUJETO

;********************(DEFUN COMP (LI)

( COND((MEMBER (CAR LI) LA 'EQUAL) (RETURN (CDR LI)) )(T (PRINC "ERROR ADVERBIO") (TERPRI) (SETQ ERROR (CONS E3 ERROR)) (RETURN (CDR

LI))))

); FIN SUJETO

;***********(RDS)

Page 55: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 55/395

Mg. Juan Gamarra Moreno  71 

2.7. EJEMPLO (2-8): PROGRAMA QUE REAL IZA UNABÚSQUEDA EN UN GRAFO UTILIZANDO ELALGORITMO DE RAMIFICACIÓN Y COTA .

Sea el grafo

La solución se da en el siguiente programa:

 ARCHIVO: BUSQRC.LSP

(DEFUN PP ()(SETQ LESP'( (A ((B 10) (C 8) (D 5)) )

(B ((C 5)) )(C ((E 7) (F 1)) )(D ((F 2)) )(E ((G 1)) )(F ((G 40)) )

))

(BUSCAR 'A 'G LESP)

)

(DEFUN BUSCAR (INICIO DESTINO ESPACIO)

; busca una ruta minima de INICIO a DESTINO segun

; datos del ESPACIOS=((n1 l1)(n2 l2) ... ); en donde li es una lista de pares (s,d), formando por sucesor s; de ni y d=distancia de ni a s

A

B

C

F

E

5

7

510

D

8

1

2

G

1

40

Page 56: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 56/395

 

72  Tópicos y Aplicaciones de la Inteligencia Artificial 

; Ejemplo: ESPACIO puede ser ; (; (A ((B 10) (C 5))); (B ((D 3) (E 6))); ); El programa usa una lista COLA formada por longitudes y; rutas (con elementos en orden invertido):

; COLA tiene la forma ((d1 en ... e1)(d2 fm ... f1)...); en donde d1 es la longitud de la ruta (e1 ... en); Asi para el ejemplo anterior algunos elementos; de COLA son (10 B A), (13 D B A)

(DO

((COLA (LIST (LIST 0 INICIO))); COLA=((0 INICIO))(VISITADO NIL); lista de nodos visitados(RUTA) ; ruta actual(LONG) ; longitud de ruta actual(LSUCD) ; lista de pares de sucesores con distancias(FINRUTA) ; nodo final de ruta actual

(NUEVASRUTAS); lista de nuevas rutas

); lista de variables locales

((NULL COLA) (PRINC "NO HAY RUTAS") (TERPRI))(SETQ RUTA (CAR COLA)) ; toma primera ruta de cola(SETQ FINRUTA (CADR RUTA)); segundo elemento=nodo final((EQUAL DESTINO FINRUTA) (REVERSE RUTA))

; si RUTA llega a DESTINO,(SETQ VISITADO (CONS FINRUTA VISITADO)); no agregar (SETQ COLA (CDR COLA)) ; reducir cola(SETQ LONG (CAR RUTA)); obtener longitud de cola(SETQ LSUCD (CADR (ASSOC FINRUTA ESPACIO)))

; buscar sucesores de FINRUTA(SETQ RUTA (CDR RUTA)); suprimir longitud=primer elemento(SETQ COLA (APPEND COLA (HALLARNRUTAS)))

(SETQ COLA (UBICARMINIMO)); coloca ruta minima al comienzo de la cola

); FIN DO); fin de funcion

(DEFUN HALLARNRUTAS (); devuelve (druta1 druta2) o NIL; drutai = se construye agregando a RUTA; un nodo de LSUCD que no este en

; VISITADO, y precedido por su longitud(DO

( (LRUTAS 'NIL) (NODO) (RUTAAUX)(DISTANCIA) (LONGTEMP)

); lista de variables de DO

((NULL LSUCD) LRUTAS); si no quedan sucesores retornar lista(SETQ NODO (CAAR LSUCD) ); tomar siguiente nodo(SETQ DISTANCIA (CADAR LSUCD)); y distancia(SETQ LONGTEMP (+ LONG DISTANCIA))(SETQ RUTAAUX (LIST LONGTEMP NODO))(SETQ RUTAAUX (LIST (APPEND RUTAAUX RUTA)))

; construir nueva ruta(COND

((NOT (MEMBER NODO VISITADO 'EQUAL));probar y agregar ruta al final(SETQ LRUTAS (APPEND LRUTAS RUTAAUX))

Page 57: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 57/395

Mg. Juan Gamarra Moreno  73 

)); fin de COND

(SETQ LSUCD (CDR LSUCD)) ; reducir lista de pares (dist suc)); fin DO

); fin de funcion

(DEFUN UBICARMINIMO ()(DO (

(RUTAMIN (CAR COLA)); ruta minima actual(LONGMIN (CAAR COLA)); longitud minima actual(COLARES (LIST (CAR COLA))); COLARES contiene primera ruta(COLATEMP (CDR COLA) (CDR COLATEMP));controla proceso(RUTATEMP)(LONGTEMP)); lista de variables de DO

((NULL COLATEMP) COLARES) ; si COLATEMP es vacia retornar COLARES(SETQ RUTATEMP (CAR COLATEMP)); tomar primera ruta de COLARES(SETQ LONGTEMP (CAR RUTATEMP)); y su longitud

(COND((< LONGTEMP LONGMIN) ;si es menor que minimo actual(SETQ LONGMIN LONGTEMP);actualizar longitud min(SETQ RUTAMIN RUTATEMP);y ruta minima(SETQ COLARES (CONS RUTAMIN COLARES))

; y poner ruta minima al comienzo de COLARES)('T (SETQ COLARES (APPEND COLARES (LIST RUTATEMP))))

; en caso contrario, agregar RUTATEMP al final); fin de COND

);fin de DO

); fin de funcion

(RDS)

El resultado de la ejecución es:

2.8. EJEMPLO (2-9): PROGRAMA QUE RESUELVE EL

PROBLEMA DEL MUNDO DE LA ASPIRADORA CON RAMIFICACION Y COTA

El enunciado para este problema se encuentra en el item 2.3.2.

Solución:

Considere los estados con cuaternas AsAs, donde A indica la presencia de la Aspiradora y s es la presencia de la suciedad. Para decir que no existe pre-sencia de la Aspiradora o suciedad utilizamos el carácter subrayado (_).

Por ejemplo si tiene

As_s

Page 58: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 58/395

 

74 Tópicos y Aplicaciones de la Inteligencia Artificial 

 As: Significa que al lado izquierdo esta la aspiradora y que también existe su-ciedad.

 _s: Significa que al lado derecho no esta la aspiradora y que existe suciedad.

En el programa del ejemplo anterior modifique en el programa principal, con elcodigo siguiente, así obtenemos una solución parcial. (Complete lo que seanecesario para una solución total)

(DEFUN PP ()(SETQ LESP'( (As_s ( (_sAs 1) (A__s 1) ) )

(A__s ( (__As 1) ) )(__As ( (__A_ 1) ) )

))

(BUSCAR 'As_s '__A_ LESP))

2.9. EJEMPLO (2-10)(PROPUESTO): PROGRAMA QUE RESUELVE EL PROBLEMA DE LOS MISIONEROS Y LOS CANÍBALES.

En la ribera A de un río se hallan tres misioneros y tres caníbales, quienesdesean trasladarse a la ribera B utilizando un bote. Puesto que en el bote sólopueden viajar dos personas a lo sumo, es preciso realizar varios viajes; sinembargo, en ninguna de las riberas el número de caníbales debe exceder al demisioneros.

Se requiere encontrar una sucesión de viajes de un lugar a otro que finalmentepermita transportar a todos a la ribera B.

Solución:

Considere los estados con ternas Rmn, donde R indica la ribera en la cual seencuentra el bote y m y n, los números de misioneros y caníbales, respectiva-mente, presentes allí.

Los estados sucesores de Rmn se forman teniendo en cuenta los presentes enla ribera opuesta S y los posibles viajes y restricciones.

Page 59: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 59/395

Mg. Juan Gamarra Moreno  75 

Rmn

1C 2C

1M

2M1M 1C

Page 60: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 60/395

 

76  Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 61: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 61/395

 

CAPITULO TRESREPRESENTACIÓN DEL CONOCIMIENTO

La representación del conocimiento es un conjunto de convenciones sintácti-cas y semánticas que hacen posible el describir cosas, para que una máquinainteligente las utilice. La sintaxis son los símbolos y conjuntos de reglas paracombinarlos. La semántica trata sobre significado de las expresiones construi-das.

En este libro mostraremos sólo tres formas de representación del conocimien-to.

3.1. REPRESENTACIÓN DEL CONOCIMIENTO MEDIANTE LÓGICA PROPOSICIONAL

La lógica proposicional es la más antigua y simple de las formas de lógica. Uti-lizando una representación primitiva del lenguaje, permite representar y mani-pular aserciones sobre el mundo que nos rodea. La lógica proposicional permi-te el razonamiento, a través de un mecanismo que primero evalúa sentencias

simples y luego sentencias complejas, formadas mediante el uso de conectivosproposicionales, por ejemplo Y (AND), O (OR). Este mecanismo determina laveracidad de una sentencia compleja, analizando los valores de veracidadasignados a las sentencias simples que la conforman.

Una proposición es una sentencia simple que tiene un valor asociado ya seade verdadero (V), o falso (F). Por ejemplo:

Hoy es Viernes

 Ayer llovió

Hace frío

Page 62: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 62/395

 

78  Tópicos y Aplicaciones de la Inteligencia Artificial 

La lógica proposicional, permite la asignación de un valor verdadero o falsopara la sentencia completa, no tiene facilidad para analizar las palabras indivi-duales que componen la sentencia. Por este motivo, la representación de lassentencias del ejemplo, como proposiciones, sería:

hoy_es_Viernes

ayer_llovió

hace_frío

La proposiciones pueden combinarse para expresar conceptos más complejos.Por ejemplo:

hoy_es_Viernes y hace_frío.

La lógica proposicional proporciona un mecanismo para asignar valores deveracidad a la proposición compuesta, basado en los valores de veracidad delas proposiciones simples y en la naturaleza de los conectores lógicos involu-crados.

Los conectores básicos de la lógica proposicional y sus tablas de verdad, semuestran en la tabla 3.1.

Tabla 3.1. Tablas de verdad para operadores lógicos.

p   q   Disyunción

p v q  

Conjunción

p ̂ q  

Negación

~p  

Implicación

P => q  

Equivalencia

p = q  

V V V V F V V

V F V F F F F

F V V F V V F

F F F F V V V

El conector de implicación, puede ser considerado como un condicional expre-sado de la siguiente forma:

Si p => q va a ser verdadero, entonces toda vez que p sea verdadero, q debeser siempre verdadero.

Page 63: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 63/395

Mg. Juan Gamarra Moreno  79 

Para los casos en los cuales p es falso, la expresión p => q, es siempre verda-dera, independientemente de los valores lógicos que tome q, ya que el opera-dor de implicación no puede hacer inferencias acerca de los valores de q.

En algunos casos, el más importante de los conectores es la implicación, y al

principio su tabla de verdad puede parecer confusa debido a que no corres-ponde muy bien a nuestra manera intuitiva de concebir que “P implique a Q” o“si P entonces Q”.

Para ilustrar la implicación analicemos la regla siguiente dada para la primerafila (p=V y q=V) de la tabla de verdad:

la batería no tiene carga  el automóvil no enciende

En la segunda fila (p=V y q=F) la implicación es F porque la regla sería

la batería no tiene carga  el automóvil enciende 

En la tercera fila (p=F y q=V) la implicación es V porque la regla sería

la batería tiene carga  el automóvil no enciende 

En la cuarta fila (p=F y q=F) la implicación es V porque la regla sería

la batería tiene carga  el automóvil enciende 

3.2. REPRESENTACIÓN MEDIANTE LÓGICA DE 

PREDICADOS 

La principal debilidad de la lógica proposicional es su limitada habilidad paraexpresar conocimiento. Existen varias sentencias complejas que pierden mu-cho de su significado cuando se las representa en lógica proposicional. Por esto se desarrolló una forma lógica más general, capaz de representar todoslos detalles expresados en las sentencias, esta es la lógica de predicado s .

La lógica de predicados está basada en la idea de las sentencias que realmen-te expresan relaciones entre objetos, así como también cualidades y atributosde tales objetos. Los objetos pueden ser personas, objetos físicos, o concep-

tos. Tales cualidades, relaciones o atributos, se denominan predicados . Losobjetos se conocen como argumentos o térm inos 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 sustérminos. Es decir, un predicado puede ser verdadero para un conjunto de tér-minos, pero falso para otro.

Por ejemplo, el siguiente predicado es verdadero:

color (yerba, verde)

el mismo predicado, pero con diferentes argumentos, puede no ser verdadero:

Page 64: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 64/395

 

80 Tópicos y Aplicaciones de la Inteligencia Artificial 

color (yerba, azul) o color (cielo, verde)

Los predicados también pueden ser utilizados para asignar una cualidad abs-tracta a sus términos, o para representar acciones o relaciones de acción entredos objetos.

Por ejemplo:

clima(martes, lluvioso) ave(gaviota) ama(roberto, vanessa) lee(alex, novela) mordio(boby, cartero)

 Al construir los predicados se asume que su veracidad está basada en su rela-ción con el mundo real. Naturalmente, siendo prácticos, trataremos que lospredicados que definimos estén de acuerdo con el mundo que conocemos,pero no es absolutamente necesario que así lo hagamos. En lógica de predi-

cados el establecer como verdadero un predicado es suficiente para que asísea considerado. Demos el siguiente ejemplo, que indica que Ecuador está enEuropa:

 parte_de(ecuador, europa)

Obviamente, esto no es verdadero en el mundo real, pero la lógica de predica-dos no tiene razón de saber geografía y si el predicado es dado como verdade-ro, entonces es considerado como lógicamente verdadero. Tales predicados,establecidos y asumidos como lógicamente verdaderos se denominan ax io- mas , y no requieren de justificación para establecer su verdad.

La lógica de predicados, se ocupa únicamente de métodos de argumentaciónsólidos. Tales argumentaciones se denominan Reglas de Inferencia . Si se daun conjunto de axiomas que son aceptados como verdaderos, las reglas deinferencia garantizan que sólo serán derivadas consecuencias verdaderas.

Tanto los conectivos lógicos, como los operadores dados anteriormente para lalógica proposicional, son igualmente válidos en lógica de predicados. De he-cho, la lógica proposicional es un subconjunto de la lógica de predicados.

Cada uno de los argumentos en los ejemplos de predicados dados anterior-mente, representan a un objeto específico. Tales argumentos se denominanconstantes. Sin embargo, en la lógica de predicados se pueden tener argu-mentos que en determinado momento pueden ser desconocidos. Estos son losargumentos 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 , dan-do lugar a que el predicado sea falso.

Las variables, también pueden ser cuantificadas. Los cuantificadores que típi-camente se utilizan en lógica de predicados son:

Page 65: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 65/395

Mg. Juan Gamarra Moreno  81 

El cuantificador universal;   indica que la fórmula bien formada, dentro desu alcance, es verdadera para todos los valores posibles de la variable quees cuantificada. Por ejemplo:

 X . . . . 

Establece que "para todo X, es verdad que . . . "

El cuantificador existencial;  , indica que la fórmula bien formada, dentrode su alcance, es verdadera para algún valor o valores dentro del dominio.Por ejemplo:

 X . . . . 

Establece que "existe un X, tal que . . . "

 A continuación se dan algunos ejemplos de predicados cuantificados:

 X, [niño (X) => le_gusta (X, helados)].

 Y, [mamífero (Y) => nace (Y, vivo)].

 Z, [cartero(Z) ^ mordió (boby, Z)].

3.2.1. UNIFICACIÓN 

Cuando se tienen sentencias compuestas por predicados y conectivos lógicos,

se debe evaluar la veracidad de cada uno de sus componentes para determi-nar si toda la sentencia es verdadera o falsa. Para ello, se busca en el conjuntode axiomas la forma de establecer la veracidad de los predicados componen-tes. Un predicado componente se dice que es verdadero si se identifica con unaxioma de la base de información. En la lógica de predicados, este proceso esalgo complicado ya que las sentencias pueden tener términos variables. A lospredicados que tienen variables por argumentos, se los denomina patrones .

La unif icación es el proceso de computar las sustituciones apropiadas quepermitan determinar si dos expresiones lógicas, ya sean predicados o patro-nes, coinciden.

El proceso de unificación involucra los siguientes pasos:

Todo predicado que no contenga variables en sus argumentos, deben te-ner un axioma que se identifique totalmente, para considerarlo como ver-dadero.

Si un predicado contiene una variable, esta debe ser asociada a un valor determinado. Esta asociación se realiza buscando en la base de axiomas yseleccionando todos aquellos que se identifican con el patrón en todo, ex-cepto por la variable. La variable es asociada con el valor en la posición

correspondiente del axioma. Si más de un axioma se identifica con el pre-

Page 66: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 66/395

 

82  Tópicos y Aplicaciones de la Inteligencia Artificial 

dicado dado, todos los valores asociados son considerados y son tratadosseparadamente.

El proceso de identificación continúa asumiendo que el valor de la variablees el valor asociado, en cualquier lugar que esta aparezca.

Los conectivos lógicos son aplicados a todos los predicados, para determi-nar la veracidad de la sentencia dada.

3.2.2. INFERENCIA Y RAZONAMIENTO 

Inferir es concluir o decidir a partir de algo conocido o asumido; llegar a unaconclusión. A su vez, razonar es pensar coherente y lógicamente; establecer inferencias o conclusiones a partir de hechos conocidos o asumidos.

El proceso de razonamiento, por lo tanto, involucra la realización de inferen-cias, a partir de hechos conocidos. Realizar inferencias significa derivar nuevoshechos a partir de un conjunto de hechos conocidos como verdaderos. La lógi-ca de predicados proporciona un grupo de reglas sólidas, con las cuales sepueden realizar inferencias.

3.2.3. REGLAS DE INFERENCIA

Las principales Reglas de Inferenc ia son:

  Modus po nens.- Es la más importante, en los sistemas basados en cono-cimiento. Establece que:

Si las sentencias p y (p q) se conocen que son verdaderas, entonces sepuede inferir que q también es verdadera.

  Modus to lens.- Esta regla establece que:

Si la sentencia (p q) es verdadera y q es falsa, entonces se puede infe-rir que p también es falsa.

  Resolución.- Utiliza refutación para comprobar una determinada senten-

cia. La refutación intenta crear una contradicción con la negación de lasentencia original, demostrando, por lo tanto, que la sentencia original esverdadera. La resolución es una técnica poderosa para probar teoremas enlógica y constituye la técnica básica de inferencia en PROLOG, un lengua- je que manipula en forma computacional la lógica de predicados. 

Ejemplo:

Page 67: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 67/395

Mg. Juan Gamarra Moreno  83 

 AD es un teorema porque su negación lleva a una contradicción.

3.2.4. MÉTODOS BÁSICOS DE RAZONAMIENTO 

En lógica de predicados, existen tres métodos básicos de razonamiento: de-ductivo, abductivo e inductivo.

Deducción.- Es el razonamiento a partir de un principio conocido hacia undesconocido; de lo general, a lo específico, o de la premisa a la conclusión ló-gica. La deducción realiza inferencias lógicamente correctas. Esto significa quela deducción a partir de premisas verdaderas, garantiza el resultado de conclu-siones también verdaderas.

La deducción es el método más ampliamente comprendido, aceptado y reco-nocido de los tres indicados. Es la base tanto de la lógica proposicional, como

de la lógica de predicados. A manera de ejemplo, el método deductivo, sepuede expresar, utilizando lógica de predicados, como sigue:

Page 68: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 68/395

 

84 Tópicos y Aplicaciones de la Inteligencia Artificial 

 A,  B,  C, [mayor (A, B) mayor (B, C)  mayor (A, C)] 

Abducc ión. - Es un método de razonamiento comúnmente utilizado para gene-rar explicaciones. A diferencia de la inducción, la abducción no garantiza quese puedan lograr conclusiones verdaderas, por lo tanto no es un método sólido

de inferencia. La forma que tiene la abducción es la siguiente:Si la sentencia ( A B  ) es verdadera y B es verdadera, entonces A es posiblemente verdade-ra.

Ejemplo:

 X es un elefante  X es un animal 

En abducción, se empieza por una conclusión y se procede a derivar las con-diciones que podrían hacer a esta conclusión válida. En otras palabras, se tratade encontrar una explicación para la conclusión.

Inducción.- Se define como el razonamiento a partir de hechos particulares ocasos individuales, para llegar a una conclusión general. El método inductivoes la base de la investigación científica. La forma más común del método in-ductivo es la siguiente:

Si se conoce que P(a), P(b), ......, P(n) son verdaderos, entonces se puede concluir que  X,P(X) es también verdadero.

La inducción es una forma de inferencia muy importante ya que el aprendizaje,la adquisición de conocimiento y el descubrimiento están basados en ella. Aligual que la abducción, la inducción no es un método sólido de inferencia.

3.2.5. EJEMPLO (3-1): BA SE DE CONOCIMIENTO SOBRE QUE PRO- DUCTOS PUEDEN COMPRAR UNA PERSONA

La consulta que se realiza es: ¿Qué producto puede comprar alguna persona?y esta implementado en visual prolog 5.2.

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

Page 69: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 69/395

Mg. Juan Gamarra Moreno  85 

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

GOALcan_buy(PERSONA,PRODUCTO).

El resultado de la ejecución es:

3.2.6. EJEMPLO (3-2): PROGRAMA QUE REPRESENTA LA ASOCIA- CIÓN DE LOS MIEMBROS DE UNA FAMILIA

La figura 3.1 muestra la asociación de los miembros en una familia a través deuna red asociativa.

Figura 3.1. Asociación de los miembros en una familia a través de una red asociativa

Page 70: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 70/395

 

86  Tópicos y Aplicaciones de la Inteligencia Artificial 

Solución:

predicatesnondeterm 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)

clauseshermana_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).*/

Para ejecutar el programa debemos activar una de las tres líneas que se en-cuentran debajo de goal.

La ejecución a la consulta de quienes son abuelos y quienes son sus nietos es:

abuelo_de (Abuelo, Nieto).

La salida es:

3.2.7. EJEMPLO (3-3): PROGRAMA QUE REPRESENTA LA DISPOSI- CIÓN DE UN SISTEMA DE BLOQUES 

La figura 3.2 muestra la disposición de un sistema de bloques sobre una mesa.

Page 71: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 71/395

Mg. Juan Gamarra Moreno  87 

Figura 3.2. Disposición de un sistema de bloques.

El programa que representa al sistema y que realiza la consulta ¿A dónde sepuede mover algún bloque?, se lista a continuación:

predicatesnondeterm arriba_de(symbol,symbol)nondeterm debajo_de(symbol,symbol)nondeterm mas_abajo_de(symbol,symbol)nondeterm libre(symbol)nondeterm mover(symbol,symbol)

clausesarriba_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).*/

/*mas_abajo_de(mesa,Arriba).*/

/*mover(Origen,Destino).*/

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

write("\ningrese nombre del bloque que desea mover "),readln(Origen),

write("\n"),write(" se puede mover de la siguiente manera:\n"),

Page 72: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 72/395

 

88  Tópicos y Aplicaciones de la Inteligencia Artificial 

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

La ejecución del programa muestra la siguiente salida:

Puede eliminar el par /* */ para ejecutar otras consultas, realicelos una por vez.

3.3. REPRESENTACIÓN MEDIANTE REGLAS DE PRODUCCIÓN 

Los sistemas basados en reglas son los más comúnmente utilizados. Su sim-plicidad y similitud con el razonamiento humano, han contribuido para su popu-laridad en diferentes dominios. Las reglas son un importante paradigma de re-presentación del conocimiento.

Las reglas representan el conocimiento utilizando un formato SI-ENTONCES  

(IF-THEN ), es decir tienen 2 partes:

La parte SI (IF ), es el antecedente, premisa, condición o situación; y

La parte ENTONCES (THEN ), es el consecuente, conclusión, acción orespuesta.

Las reglas pueden ser utilizadas para expresar un amplio rango de asociacio-nes, por ejemplo:

SI está manejando un vehículo Y se aproxima una ambulancia, ENTONCES  

baje la velocidad Y hágase 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, ENTON- CES se puede inundar el piso.

3.3.1. INFERENCIA BASADA EN REGLAS 

Un sistema basado en reglas utiliza el modus ponens para manipular las afir-maciones y las reglas durante el proceso de inferencia. Mediante técnicas debúsqueda y procesos de unificación, los sistemas basados en reglas automati-zan sus métodos de razonamiento y proporcionan una progresión lógica desde

Page 73: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 73/395

Mg. Juan Gamarra Moreno  89 

los datos iniciales, hasta las conclusiones deseadas. Esta progresión hace quese vayan conociendo nuevos hechos o descubriendo nuevas afirmaciones, amedida que va guiando hacia la solución del problema.

En consecuencia, el proceso de solución de un problema en los sistemas ba-

sados en reglas va realizando una serie de inferencias que crean un senderoentre la definición del problema y su solución. Las inferencias están concate-nadas y se las realiza en forma progresiva, por lo que se lo que se dice que elproceso de solución origina una cadena de inferencias.

3.3.2. EL PROCESO DE RAZONAMIENTO 

El proceso de razonamiento en un sistema basado en reglas es una progresióndesde un conjunto inicial de afirmaciones y reglas hacia una solución, respues-ta o conclusión. Como se llega a obtener el resultado, sin embargo, puede va-

riar significativamente: Se puede seleccionar una posible solución y tratar de probar su validez

buscando evidencia que la apoye. Este proceso se denomina guiado por el objetivo o de encadenamiento hacia atrás (backward chainning ).

Se puede partir considerando todos los datos conocidos y luego ir progre-sivamente avanzando hacia la solución. Este proceso se lo denominaguiado por los datos o de encadenamiento hacia adelante (forward chainning ).

Encadenamiento hacia atrás

El mecanismo de inferencia, o intérprete de reglas para el encadenamientoregresivo (encadenamiento hacia atrás), difiere significativamente del meca-nismo de encadenamiento hacia adelante. Si bien es cierto ambos procesosinvolucran el examen y aplicación de reglas, el encadenamiento hacia atrásempieza con la conclusión deseada y decide si los hechos que existen puedendar lugar a la obtención de un valor para esta conclusión. El encadenamientohacia atrás sigue un proceso muy similar a la búsqueda primero en profundi-dad.

El sistema empieza con un conjunto de hechos conocidos. Se proporciona unalista ordenada de objetivos (o conclusiones), para las cuales el sistema trata dederivar valores. El proceso de razonamiento hacia atrás utiliza esta lista de ob- jetivos para coordinar su búsqueda a través de las reglas de la base de cono-cimientos. Esta búsqueda consiste de los siguientes pasos:

Conformar una pila inicialmente compuesta por todos los objetivos priorita-rios definidos en el sistema.

Considerar el primer objetivo de la pila. Determinar todas las reglas capa-ces de satisfacer este objetivo, es decir aquellas que mencionen al objetivoen su conclusión.

Page 74: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 74/395

 

90 Tópicos y Aplicaciones de la Inteligencia Artificial 

Para cada una de estas reglas examinar en turno sus antecedentes:

Si todos los antecedentes de la regla son satisfechos (esto es,cada parámetro de la premisa tiene su valor especificado dentrode la base de datos), entonces ejecutar esta regla para derivar 

sus conclusiones. Debido a que se ha asignado un valor al obje-tivo actual, removerlo de la pila y retornar al paso (2).

Si alguna premisa de la regla no puede ser satisfecha, buscar re-glas que permitan derivar el valor especificado para el paráme-tro utilizado en esta premisa.

Si en el paso (b) no se puede encontrar una regla para derivar elvalor especificado para el parámetro actual, entonces preguntar al usuario por dicho valor y añadirlo a la base de datos. Si estevalor satisface la premisa actual entonces continuar con la si-

guiente premisa de la regla. Si la premisa no es satisfecha, con-siderar la siguiente regla.

Si todas las reglas que pueden satisfacer el objetivo actual se han probadoy todas no han podido derivar un valor, entonces este objetivo quedará in-determinado. Removerlo de la pila y retornar al paso (2). Si la pila está va-cía parar y anunciar que se ha terminado el proceso.

La figura 3.3 representa una versión simplificada del encadenamiento haciaatrás:

Hechos

inicialesObjetivos

Reglas

Consecuentes Antecedentes

C1 A1

…  … 

CL AL

CK AK 

(1) Verificar (1) Verificar 

(3) Verificar (3) Verificar 

(2) Verificar (2) Verificar 

((4)4) 

Figura 3.3 Razonamiento con encadenamiento regresivo.

En la figura 3.4 se muestra un ejemplo simple de la inferencia con encadena-miento regresivo:

Page 75: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 75/395

Mg. Juan Gamarra Moreno  91 

P1P1 ----> P2 (Regla 1)> P2 (Regla 1)

P2P2 ----> P3 (Regla 2)> P3 (Regla 2)

P3P3 ----> q3 (Regla 3)> q3 (Regla 3)

p1p1 --------> p2> p2 ----------> p3> p3 ----------> q3> q3

objetivo

2do Obj3er ObjHecho

verdadero

R3

R2

R1

Dirección encadenamiento hacia atrás

 

Figura 3.4 Inferencia con encadenamiento regresivo o encadenamiento hacia atrás.

Los ejemplos que se mencionan a continuación son los mismos que se utiliza-

ron en el encadenamiento hacia adelante, se evalúan aquí para encontrar lasdiferencias con el encadenamiento hacia atrás.

Ejemplo 1: Se tienen los siguientes hechos y reglas:

Hechos = { a, b, d, e, g }

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 susantecedentes tal como se muestra en la figura 3.5.

b

d

e

ac z

g

r1

r2

r3

objetivo

Subobjetivos: f c g

Subobjetivos: d e a b

 

Figura 3.5 Prueba del objetivo Z con encadenamiento regresivo (encadenamiento hacia atrás)

Page 76: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 76/395

 

92  Tópicos y Aplicaciones de la Inteligencia Artificial 

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}

Probar V (objetivo)

Paso 1:

Intentar probar V revisando si esta en hechos.

Si no esta introduce a V como hipótesis 1 (H1).

Paso 2:

Se realiza una comparación de H1 vs las reglas.

H1 existe en la conclusión de R4.

Paso 3:

Intentar probar S (primer antecedente) revisando si esta en hechos.Si no esta introduce a S como hipótesis 2 (H2).

Paso 4:

Se realiza una comparación de H2 vs las reglas.

H2 existe en la conclusión de R1.

Descubre que R1 puede ser (ejecutado) y se añade S a hechos.

Verifica si S es la solución, 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

R4: IF (S y R) THEN V (H1)

Page 77: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 77/395

Mg. Juan Gamarra Moreno  93 

HECHOS={P, Q, R, S}

Paso 4:

Como continuación del paso 3 se evalúa R (segundo antecedente) de la regla

R4.Paso 5:

Intenta probar R revisando si esta en hechos.

¡Si esta!, entonces ejecuta R4 y añade 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 solución (¡si es!) y finaliza.

El razonamiento hacia atrás es mucho más adecuado para aplicaciones quetienen mucho mayor número de entradas, que de soluciones posibles. La habi-lidad de la lógica regresiva para trazar desde las pocas conclusiones hacia lasmúltiples entradas la hace más eficiente que el encadenamiento hacia adelan-te.

Una excelente aplicación para el razonamiento hacia atrás es el diagnóstico,donde el usuario dialoga directamente con el sistema basado en conocimiento

y proporciona los datos a través del teclado. Problemas de clasificación tam-bién son adecuados para ser resuelto mediante el razonamiento hacia atrás.

Encadenamiento hacia adelante

En el caso del encadenamiento hacia adelante, se empieza a partir de un con- junto de datos colectados a través de observación y se evoluciona hacia unaconclusión. Se chequea cada una de las reglas para ver si los datos observa-dos satisfacen las premisas de alguna de las reglas. Si una regla es satisfecha,es ejecutada derivando nuevos hechos que pueden ser utilizados por otrasreglas para derivar hechos adicionales. Este proceso de chequear reglas paraver si pueden ser satisfechas se denomina interpretación de reglas.

Page 78: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 78/395

 

94 Tópicos y Aplicaciones de la Inteligencia Artificial 

La interpretación de reglas es realizada por una máquina de inferencia en unsistema basado en conocimiento. La interpretación de reglas, o inferencia, enel razonamiento hacia adelante involucra la repetición de los pasos que se in-dican en la figura 3.6.

Figura 3.6 Proceso d e Razonamiento Progresivo.

  Unificación (Matching ).- En este paso, en las reglas en la base de co-nocimientos se prueban los hechos conocidos al momento para ver cuá-les son las que resulten satisfechas. Para decir que una regla ha sido

satisfecha, se requiere que todas las premisas o antecedentes de la re-gla resuelvan a verdadero.

  Resolución de Conflictos.- Es posible que en la fase de unificación re-sulten satisfechas varias reglas. La resolución de conflictos involucra:

- la selección 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 selección aleatoria de una regla,

- la selección de la regla que tenga la más alta prioridad de entre el con- junto de reglas que han sido satisfechas.

  Ejecución.- El último paso en la interpretación de reglas es la ejecuciónde la regla. La ejecución puede dar lugar a uno o dos resultados posi-bles: nuevo hecho (o hechos) pueden ser derivados y añadidos a la ba-se de hechos, o una nueva regla (o reglas) pueden ser añadidas al con- junto de reglas (base de conocimiento) que el sistema considera paraejecución.

El conjunto de aplicaciones adecuadas para el razonamiento hacia adelanteestá formado por: diseño, planeamiento y calendarización, donde ocurre la sín-tesis de nuevos hechos basados en las conclusiones de las reglas. En estasaplicaciones hay potencialmente muchas soluciones que pueden ser derivadas

Page 79: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 79/395

Mg. Juan Gamarra Moreno  95 

de los datos de entrada. Debido a que estas soluciones no pueden ser enume-radas, las reglas expresan conocimiento como patrones generales y las cone-xiones precisas entre estas reglas no pueden ser predeterminadas.

El razonamiento progresivo infiere con la aplicación de la regla de modus po-

nensPq es verdaderoP es verdadero ______ 

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

P1P1 ----> P2 (Regla 1)> P2 (Regla 1) dadodado ----> deducido> deducido

P2P2 ----> P3 (Regla 2)> P3 (Regla 2) P1P1----> Q3> Q3

P3P3 ----> q3 (Regla 3)> q3 (Regla 3)

p1p1 --------> p2> p2 ----------> p3> p3 ----------> q3> q3

Encadenamiento haciaEncadenamiento hacia

adelanteadelante

deducido

deducidodeducidoDado

R3R2

R1

Dirección encadenamiento hacia adelante

 

Figura 3.7 Aplicación de la regla modus ponens.

 A continuación se muestran dos ejemplos que utilizan el encadenamiento haciaadelante.

Ejemplo 1: Se tienen los siguientes hechos y reglas:

Hechos = { b, e, g, a, d }

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 progresi-

vo.

.. . q es verdadero

(Encadenamientoprogresivo)

Page 80: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 80/395

 

96  Tópicos y Aplicaciones de la Inteligencia Artificial 

b

d

e

ac z

g

r1

r2

r3

deducido

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}

V=objetivo

Paso 1: Realiza una comparación de las hechos vs las reglas y busca que re-glas se pueden ejecutar.

R1 y R2 se pueden disparar (existe conflicto)

Dispara R1 teniendo en cuenta que es la primera regla encontrada (podría to-marse otro criterio de selección), añade a S como hecho y memoriza que R1fue 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

Page 81: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 81/395

Mg. Juan Gamarra Moreno  97 

R3: IF (S y T) THEN U

R4: IF (S y R) THEN V

HECHOS = {P,Q,R,S}

Paso 2: Realiza una comparación de los hechos vs las reglas y busca que re-glas se pueden ejecutar.

R2 y R4 se pueden disparar (existe conflicto)

Dispara R2 teniendo en cuenta que es la primera regla encontrada (podría to-marse otro criterio de selección), añade a T como hecho y memoriza que R2fue 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)

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 comparación de los hechos vs las reglas y busca que re-glas se pueden ejecutar.

R3 y R4 se pueden disparar (existe conflicto)

Dispara R3 teniendo en cuenta que es la primera regla encontrada (podría to-marse otro criterio de selección), añade a U como hecho y memoriza que R3fue 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}

Page 82: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 82/395

 

98  Tópicos y Aplicaciones de la Inteligencia Artificial 

Paso 4: Realiza una comparación de los hechos vs las reglas y busca que re-glas se pueden ejecutar.

R4 se puede disparar 

Dispara R4 y añade a V como hecho y memoriza que R4 fue ejecutada.Verifica si V es el objetivo, dado que si es, entonces finaliza.

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}

3.4. DISEÑO DE SISTEMAS BASADO EN REGLAS CON ENCADENAMIENTO HACIA ATRÁS 

3.4.1. INTRODUCCIÓN 

En este tema se considerara las etapas que un ingeniero de conocimiento rea-liza para desarrollar un sistema experto basado en reglas con encadenamientohacia atrás. Este proceso se ilustrara con un pequeño problema de planifica-ción de inversión personal.

3.4.2. METODOLOGÍA GENERAL PARA EL DISEÑO DE SISTEMAS BASADO EN REGLAS CON ENCADENAMIENTO HACIA ATRÁS 4  

La primera tarea antes de realizar el diseño de un sistema experto es el tener 

un conocimiento general del problema. Se debe determinar los objetivos delsistema, y obtener información del experto con el fin de tener recomendacionesvalidas.

Una característica común al diseño de cualquier sistema experto es que es unproceso altamente iterativo. El proceso cíclico continua en aumento mientras elsistema crece.

Este estilo de desarrollo cíclico es típico cuando se construye un sistema conencadenamiento hacia atrás.

4 Traducción de: Durkin J. Expert Systems. USA: Ed. Macmillan; 1994

Page 83: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 83/395

Mg. Juan Gamarra Moreno  99 

Hay siete tareas principales que se realizan cuando se desarrolla un sistemacon encadenamiento hacia atrás:

Definir el problema

Definir los objetivos

Definir las reglas

Expandir el sistema

Refinar el sistema

Diseño de la interfase

Evaluación del sistema

De entrada estos pasos son aplicables a una pequeña parte del sistema y lue-go mediante su iteración se expanden a todo el sistema hasta que ha sido refi-nado y obtener el rendimiento de un experto.

Para la explicación de cómo trabaja el sistema con encadenamiento haciaatrás nos valdremos de un ejemplo aplicado a la cartera de inversiones.

3.4.3. TAREA 1: DEFINICIÓN DEL PROBLEMA

El primer paso para el desarrollo de cualquier sistema experto debe ser apren-

der sobre el tema. Nuestra tarea en este caso será desarrollar un sistema ex-perto para ayudar a tomar decisiones financieras a un cliente que desea inver-tir. Para ello se debe reunir información acerca del como trabaja una bolsa deinversiones.

Los reportes, documentos, libros son buenas fuentes de información paracualquier experto en proyectos. Estas fuentes nos proporcionan un buen nivelpara lograr el entendimiento del tema y de su solución. A pesar de ello, el deser buenos puntos de partida, siempre es necesario contar con la ayuda de unexperto.

De tener la suerte de encontrar un buen experto, la siguiente tarea es sacarleinformación acerca del tema. Por ejemplo, en nuestro caso seria necesario quenos diga en que rubros se puede invertir.

El experto nos podría indicar que la cartera de inversiones puede clasificarseen:

ACCIONESTransferencias Empresas Comunes

BONOS Del tesoro Corporaciones Municipales

Page 84: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 84/395

 

100 Tópicos y Aplicaciones de la Inteligencia Artificial 

FONDOS MUTUOS Efectivo Bonos Acciones

AHORROS Cuenta corriente Mercado monetario Cuentas de ahorro

PRODUCCIÓN  Agricultura Precio de metales Petróleo

INMUEBLES Comercial Residencial Terrenos

Durante la explicación de esta lista el experto podría incluir algunos comenta-rios de cómo formar la cartera de inversiones. No obstante, es preferible tomar la información por etapas.

Consejo de diseño: Durante la etapa de definición del problema, no se debeinterrumpir al experto por problemas de detalles. Es preferible entender el pro-

blema en forma general. Los detalles se pueden obtener después durante dis-cusiones posteriores con el experto.

Luego de elegir la cartera de inversiones es factible continuar con el análisis deque medios de inversión se van usar dentro de cada categoría, es decir, cualesson los mas adecuados para cada cliente. Estos mecanismos de refinamientopuede tratarse según el nivel de profundidad a que se desee llegar en el análi-sis.

3.4.4. TAREA 2: DEFINICIÓN DE LOS OBJETIVOS 

Lo primero es definir los objetivos que el sistema va alcanzar. Después de al-ternar con el experto se puede llegar a la conclusión de que los dos objetivosprincipales a lograr son:

1. Determinación de la composición de la cartera de inversiones.

2. Determinación de los medios de inversión dentro de cada categoría.

Para mantener la simplicidad de nuestro sistema, escogeremos solamente elprimer objetivo y se asumirá que el segundo objetivo podría ser alcanzado en

una revisión futura del sistema.Una cartera de inversiones es simplemente la distribución de la inversión enuna o más categorías generales. Un sistema de accesoria de inversiones po-dría necesitar una gran cantidad de recomendaciones. Manteniendo nuestrocriterio de simplicidad, se asumirá que sólo se tiene cuatro posibles alternati-vas:

Cartera 1: 100% de inversión en ahorros

Cartera 2: 60% en acciones, 30% en bonos, 10% en ahorros

Cartera 3: 20% en acciones, 40% en bonos, 40% en ahorros

Page 85: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 85/395

Mg. Juan Gamarra Moreno  101 

Cartera 4. 100% de inversión en acciones

Consejo de diseño: Focalizar el diseño original en una pequeña parte repre-sentativa del problema completo.

3.4.5. TAREA 3: DISEÑO DE LAS REGLAS 

Cada objetivo de nuestro sistema debe tener al menos una regla. Es necesarioobtener el conjunto de premisas para satisfacer cada regla. La forma generalde nuestras reglas será la siguiente:

IF Premisas 1

 AND Premisas 2

. .0

. .

THEN Cartera_i

En base a las premisas el experto efectúa la recomendación de una carteradeterminada. Estos antecedentes se obtienen luego de efectuar consultas alexperto. Consideremos la siguiente interacción entre el ingeniero de conoci-miento (IC) y el experto en el área (EA):

IC: ¿Cómo escoger la cartera de inversión correcta para el cliente?

EA: Cada inversión tiene un riesgo asociado con ella, de modo, que yo ne-cesito saber algo acerca del estado personal y financiero del cliente. Cada unade estas características es importante para recomendar una posición agresivao conservadora.

IC: ¿De modo que Ud. recomienda un tipo determinado de inversión basa-do el perfil personal y financiero del cliente pensando en una posición agresivao conservadora?

EA: Sí.

IC: ¿No toma en cuenta otras consideraciones?

EA: Claro que sí. Si el cliente solo desea invertir una pequeña cantidad dedinero, se asume que es realmente conservador, e inmediatamente se le re-comienda invertir todo su dinero en ahorros.

IC: ¿Que cantidad Ud. considera como pequeña?

EA: Cualquier cantidad de dinero menor que $1000.

Esta discusión con el experto nos provee las principales consideraciones ate-ner en cuenta cuando se recomienda una cartera de inversiones (nuestro obje-tivo):

Page 86: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 86/395

 

102  Tópicos y Aplicaciones de la Inteligencia Artificial 

Condición personal del cliente (conservador o agresivo)

Estado financiero del cliente (conservador o agresivo)

Cantidad a invertir (pequeña o grande)

 Ahora que se conoce las principales consideraciones, el siguiente paso serádeterminar su relación con la recomendación correspondiente. Esto puede ser realizado a través de discusiones con el experto, o elegirse otra técnica queincluye una tabla de decisión.

Tablas de decisión

Las tablas de decisión ofrecen una técnica de adquisición de conocimiento queevita problemas normalmente asociados con la técnica de entrevistas.

Una tabla de decisión provee un formato fácil de llenar que el experto puedeusar para realizar su decisión (tabla 3.2).

Tabla 3.2. Tabla de decisión para las reglas objetivo.

CANTIDAD A INVERTIR 

ESTADOPERSONAL

ESTADOFINANCIERO

CONSEJO

Pequeña Cartera 1No Pequeña Conservador Conservador Cartera 1No Pequeña Conservador Agresivo Cartera 2No Pequeña  Agresivo Conservador Cartera 3No Pequeña  Agresivo Agresivo Cartera 4

Los factores de decisión para nuestras reglas se muestras en las etiquetas enel extremo superior de las primeras tres columnas. La etiqueta en la última co-lumna 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, necesitaríamos usar herramientas de inducción. Dado que esta tablaes pequeña, se pueden escribir las reglas por simple inspección. Las siguien-tes reglas están representadas por el siguiente seudo código:

Regla 1

IF Cantidad de inversión del cliente   1000THEN La sugerencia ES invertir el 100% en aho-rros

Page 87: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 87/395

Mg. Juan Gamarra Moreno  103 

Regla 2 

IF Cantidad de inversión del cliente >= 1000AND El estado personal del cliente sugiere \

una posición conservadora

AND El estado financiero del cliente sugiere \una posición conservadoraTHEN La sugerencia ES invertir el 100% en aho-rros

Regla 3 

IF Cantidad de inversión del cliente >= 1000AND El estado personal del cliente sugiere \

una posición conservadoraAND El estado financiero del cliente sugiere \

una posición agresivaTHEN La sugerencia ES invertir el 60% en accio-nes,

30% en bonos y el 10% en ahorros

Regla 4

IF Cantidad de inversión del cliente >= 1000AND El estado personal del cliente sugiere \

una posición agresivaAND El estado financiero del cliente sugiere \

una posición conservadoraTHEN La sugerencia ES invertir el 20% en accio-nes,

40% en bonos y el 40% en ahorros

Regla 5 

IF Cantidad de inversión del cliente >= 1000AND El estado personal del cliente sugiere \

una posición agresivaAND El estado financiero del cliente sugiere \

una posición agresiva

THEN La sugerencia ES invertir el 100% en ac-ciones

Red de inferencia

Incluso en los estados tempranos de un proyecto es útil dibujar una red de infe-rencia de las reglas que se han hallado. La red de inferencia muestra las rela-ciones lógicas entre las informaciones representadas en las reglas (figura 3.8).

Prueba de reglas

Page 88: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 88/395

 

104 Tópicos y Aplicaciones de la Inteligencia Artificial 

Después de formular las reglas del sistema, se deberá probar el sistema. Engeneral después de formular cualquier nuevo conocimiento en un sistema ex-perto, se deberá inmediatamente probar el sistema.

Consejo de diseño: Luego de la formulación de cualquier nuevo conocimiento

en un sistema experto, se deberá inmediatamente probarlo, usando informa-ción especifica al nuevo conocimiento.

Esto es particularmente importante durante las etapas tempranas del desarro-llo del sistema cuando debe probarse exhaustivamente el sistema. Probar lasreglas del sistema implica el correr varias veces el sistema para diferentescombinaciones de respuestas.

Orden de búsqueda

Otro aspecto importante en la prueba del sistema, en las primeras etapas delproyecto, es el orden en que el sistema busca el conocimiento. La mayoría deshells buscan reglas de competencia en el orden en que son ingresadas. Ennuestro sistema esto implicaría que la regla 1 es la que se debe buscar prime-ro. Además, la primera pregunta que el sistema debería realizar es que canti-dad de dinero el cliente desea invertir. Por ello es necesario efectuar un buenensamblaje de nuestros objetivos para que no se pierda tiempo en preguntasinnecesarias cuando alguna pregunta clave del sistema podría estar dandoresultados concretos.

Estado

personal =

Agresivo

Estado

personal =

conservador

Inversión 

>=1000 

Cartera

1

Inversión 

< 1000 

Cartera 

4

Cartera

Cartera

2

Or

And 

And 

And

And

Estado

financiero

= Agresivo

Estado

financiero =

conservador

Figura 3.8. Red de inferencia de las reglas objetivo

Page 89: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 89/395

Mg. Juan Gamarra Moreno  105 

Búsqueda exhaustiva versus búsqueda no exhaustiva

Un sistema con encadenamiento hacia atrás se puede programar para querealice búsquedas exhaustivas o no exhaustivas. Una búsqueda exhaustivacontinua buscando todas las reglas para alcanzar algún objetivo, incluso si el

objetivo se ha establecido por el disparo de una de las reglas. Una búsquedano exhaustiva se detiene después de disparar sólo una regla. El decidirse por alguna de estos procedimientos depende del tipo de sistema y del modo enque los expertos resuelvan los problemas en determinados campos.

En nuestro caso, desearíamos que si se descubre que el cliente tiene menosde $1000, entonces el sistema se detenga incluso cuando fueran posiblesotras recomendaciones. La mayoría de shells realizan por defecto una bús-queda no exhaustiva.

Si nuestro problema fuera encontrar todas las recomendaciones de carteras

posibles, entonces desearíamos emplear técnicas de búsqueda exhaustivas.Por ejemplo, si deseáramos una lista de recomendaciones, y ordenarlas deacuerdo a un ranking asociado a un grado de probabilidad, entonces seria ne-cesario un tipo de búsqueda exhaustiva.

En este caso, el sistema buscaría los posibles valores para la cartera reco-mendada. Según este procedimiento, un resultado que podría darse seria elsiguiente:

Recom endación de cartera de invers ión Probab il idad 

60 % stocks, 30 % bonos, 10 % ahorros 90 %100 % de inversión en stocks 85 %20 % stocks, 40 % bonos, 40 % ahorros 70 %100 % de inversión en ahorros 60 %

3.4.6. TAREA 4: EXPANDIENDO EL SISTEMA

En este punto nuestro sistema tiene cinco reglas y puede recomendar 4 carte-ras diferentes. Es totalmente funcional, pero no muy inteligente. El principalforma para mejorar la inteligencia de un sistema experto es expandir su cono-cimiento. Aquí, hay dos opciones disponibles: ampliando o profundizando el

conocimiento del sistema. Se entiende por ampliar el conocimiento a “enseñar”al sistema sobre problemas adicionales. En nuestro ejemplo, podemos ense-ñarle otras mixturas de las carteras de inversiones. Este tipo de expansión esbastante fácil y usualmente reservada para más adelante en el proyecto.

La otra opción de profundizar el conocimiento del sistema se entiende como:“enseñar” más acerca de los problemas ya conocidos. En nuestro ejemplo, de-beríamos enseñarle como determinar las premisas de las reglas objetivo. Estoes una técnica de expansión comúnmente usada en las primeras etapas delproyecto. Para apreciar porque se da este caso, considere la siguiente res-puesta al sistema debido a la pregunta derivada de una de las reglas presentes

en el conjunto de reglas actual:

Page 90: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 90/395

 

106  Tópicos y Aplicaciones de la Inteligencia Artificial 

Sistema: ¿Sugiere una posición conservadora para el estado personal delcliente?

Esto podría ser una pregunta difícil de contestar para el usuario porque requie-re alguna especialización en el problema.

En general, durante el desarrollo entero del sistema basado en reglas, Ud. de-bería estar averiguando que puede expandirse en profundidad. Pregúnteseusted mismo (o aun mejor pregunte al usuario) si el usuario puede contestar eficazmente la pregunta planteada por el sistema. Si la respuesta es no, en-tonces añada conocimiento al sistema que fuerce a buscar más informaciónprimitiva y fiable.

En la actualidad, nuestro sistema tiene tres problemas que pueden ser expan-didos en profundidad:

La cantidad de inversión del cliente El estado personal del cliente

El estado financiero del cliente

La primera no necesita mayor expansión ya que el sistema requiere hacer unapregunta sobre la cantidad a invertir. Las otras, sin embargo, necesitan ser ex-pandidas. Para lograrlo necesitamos consultar otra vez al experto.

Consejo de diseño: Expanda un problema por vez. Esto permite al experto en-

focarse en un sólo problema y evita problemas comúnmente encontradoscuando al experto se le pide dirigirle a múltiples problemas.

Expansión del estado personal

Para expandir el estado personal tenemos dos preguntas para el experto, unapara cada posible valor: conservador o agresivo.

IC: ¿Cómo Usted determina que el estado personal del cliente tiene unaposición conservador?

EA: Sugeriría una posición conservadora si el cliente es viejo o su trabajo noes estable. Proporcionaría la misma sugerencia si el cliente es joven, tiene tra-bajo estable, pero tiene hijos.

Las dos heurísticas se pueden representar por:

Regla 6 

IF El cliente ES viejoOR El trabajo del cliente ES no estable

THEN El estado personal del cliente sugiere \una posición conservadora

Page 91: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 91/395

Mg. Juan Gamarra Moreno  107 

Regla 7 

IF El cliente ES jovenAND El trabajo del cliente ES estableAND El cliente tiene \ niños

THEN El estado personal del cliente sugiere \una posición conservadora

 Ahora se tiene dos reglas de profundidad que conducen a una de las premisasde las reglas objetivos. La siguiente pregunta determina la posición agresivadel cliente:

IC: ¿Cómo Usted determina que el estado personal del cliente tiene unaposición agresiva?

EA: Sugeriría una posición agresiva si el cliente es joven, su trabajo es esta-ble, pero no tiene hijos.

La nueva información es capturada en la siguiente regla:

Regla 8 

IF El cliente ES jovenAND El trabajo del cliente ES estableAND El cliente tiene \ no niñosTHEN El estado personal del cliente sugiere \

una posición agresivaDe esta discusión con el experto se obtuvieron diferentes reglas para soportar el proceso de inferencia en profundidad. Sin embargo, también descubrimosnuevos problemas que necesitarían 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.

Expansión de la edad 

Para expandir la edad preguntamos al experto:

IC: ¿A que punto Usted considera a alguien viejo?

EA: 40 años

IC: ¿A que punto Usted considera a alguien joven?

Page 92: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 92/395

 

108  Tópicos y Aplicaciones de la Inteligencia Artificial 

EA: Alguien menor de 40 años

De estas preguntas nosotros podemos escribir las siguientes reglas:

Regla 9 

IF Edad del cliente < 40THEN El cliente ES joven

Regla 10

IF Edad del cliente >= 40THEN El cliente ES viejo

 Antes de continuar con la expansión de nuestro sistema, echemos una mirada

a una peligro que comúnmente caen muchos diseñadores del sistema.

Problema con else

Muchos ingenieros del conocimiento tienen instrucción en la programación tra-dicional.

 Antes de pasar al campo de los ingenieros de conocimiento, estos programa-dores fueron cuadriculados en la importancia de escribir procedimientos conci-sos: “puede ser echo con una línea de código en vez de dos”. Cuando desarr o-

llamos un sistema experto no se esta codificando procedimientos sino codifi-cando conocimientos. A menudo, intentar comprimir dos piezas de conocimien-to en una regla puede causar problemas. Estos problemas se encuentran amenudo con el uso de la sentencia ELSE.

Para ilustrar este punto, consideremos el problema de la edad. Con la informa-ción proporcionada por el experto sobre este problema se puede capturar estasituación como:

IF Edad del cliente < 40THEN El cliente ES joven

ELSE El cliente ES viejo

Superficialmente la regla no tiene ningún error y representa lógicamente el co-nocimiento del experto. Sin embargo, asumamos que usamos esta regla perodespués decidimos añadir la siguiente regla que introduce una nueva categoríade edad:

IF Edad del cliente < 50

AND Edad del cliente >= 40ELSE El cliente ES de-edad-media

Page 93: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 93/395

Mg. Juan Gamarra Moreno  109 

 Ahora, si nosotros encontramos una persona cuya edad es de 45, nuestro sis-tema concluirá que él es tanto viejo como de edad media. El disparo de estasdos reglas es el resultado de las inconsistencias de las conclusiones. Recono-

cemos que la regla que contiene la parte ELSE siempre se dispara.Para evitar las inconsistencias del sistema es necesario llevar la cuenta de lasreglas que usan ELSE. A menudo el uso de ELSE dificulta el mantenimientodel sistema por lo que debe evitar su uso.

Consejo de diseño: Evitar la sentencia ELSE siempre que sea posible.

Expandiendo la estabilidad del trabajo 

Para expandir la estabilidad hacemos dos preguntas al experto:

IC: ¿Cómo Usted determina la estabilidad del trabajo del cliente?

EA: Usualmente considero dos cosas: los años de servicio del cliente en suactual compañía y la tasa de despidos que la compañía esta experimentando.Por ejemplo, si él ha trabajo en la compañía entre 3 y 10 años, y la tasa dedespidos es bajo, entonces asumo las cosas como estable. De hecho, si él hatrabajado allí por más de 10 años, siento que las cosas están bien.

De estas dos respuestas escribimos las siguientes reglas:

Regla 11

IF Años de servicio del cliente ES 10 años omásTHEN El trabajo del cliente ES estable

Regla 12 

IF Años de servicio del cliente ES entre3 y 10 años

AND La tasa de despidos temporal ES bajaTHEN El trabajo del cliente ES estable

Continuamos la discusión con el experto y le preguntamos:

IC: ¿Cómo Usted determina la inestabilidad del trabajo del cliente?

EA: Si los años de servicio del cliente es de 3 a 10 años y la tasa de despi-dos es alta, entonces asumo las cosas como inestables. De echo, si él ha tra-bajado allí por menos de 3 años, siento que las cosas no son realmente esta-bles.

De estas respuestas podemos escribir las siguientes dos reglas:

Page 94: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 94/395

 

110 Tópicos y Aplicaciones de la Inteligencia Artificial 

Regla 13 

IF Años de servicio del cliente ES entre3 y 10 años

AND La tasa de despidos temporal ES alta

THEN El trabajo del cliente ES no estable

Regla 14

IF Años de servicio del cliente ES menor que 3 años

THEN El trabajo del cliente ES no estable

Red de inferencia del estado personal

Podemos añadir las nuevas reglas a la red original de inferencia. La figura 3.9muestra la parte de esta nueva red enfocado al estado personal del cliente.

Cliente es

viejo

>=40

Or 

Estado

 personal =

conservador 

Estado

 personal =

Agresivo

Trabajo no

estable

Cliente es

 joven

Trabajo

estable

Cliente

tiene hijos

Cliente no

tiene hijos

And And

Or 

Servicio

<

3 Tasa de

despidosalto

And

Servicio

3 - 10 Tasa de

despidos bajo

Servicio

>

10

< 40

And

Figura 3.9. Red de inferencia para el estado personal

Expandiendo el estado financiero 

Para expandir el estado financiero del cliente preguntamos al experto:

IC: ¿Cómo Usted sabe el estado financiero del cliente para sugerir una po-sición conservadora?

Page 95: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 95/395

Mg. Juan Gamarra Moreno  111 

EA: Sugeriría una posición conservadora si el total de activos es menor quesu total de pasivos. También, si su total de activos excede su total de pasivospero son menor ... pienso ... aproximadamente dos veces sus pasivos ... y ... éltiene niños, entonces otra vez recomiendo una posición conservadora.

De estas respuestas podemos escribir las siguientes dos reglas:

Regla 15 

IF Total de activos < Total de pasivosTHEN El estado financiero del cliente sugiere \

una posición conservadora

Regla 16 

IF Total de activos > Total de pasivosAND Total de activos < 2 * Total de pasivosAND El cliente tiene \ niñosTHEN El estado financiero del cliente sugiere \

una posición conservadora

Continuando nuestra discusión, preguntamos lo siguiente:

IC: ¿Cómo Usted sabe el estado financiero del cliente para sugerir una po-sición agresiva?

EA: Sugeriría una posición agresiva si el total de activos excede al total depasivos por un factor igual a 2. Además, si su total de activos excede su totalde pasivos, pero fue menor a dos veces esta cantidad, y él no tiene niños, en-tonces otra vez recomiendo una posición agresiva.

De esta discusión podemos escribir las siguientes reglas:

Regla 17 

IF Total de activos > 2 * Total de pasivos

THEN El estado financiero del cliente sugiere \una posición agresiva

Regla 18 

IF Total de activos > Total de pasivosAND Total de activos < 2 * Total de pasivosAND El cliente tiene \ no niñosTHEN El estado financiero del cliente sugiere \

una posición agresiva

Red de inferencia del estado financiero 

Page 96: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 96/395

 

112  Tópicos y Aplicaciones de la Inteligencia Artificial 

Para mantener el registro del conocimiento recolectado, añadimos estas nue-vas reglas a la red de inferencia. La parte asociada con el estado financiero esmostrada en la figura 3.10.

Totalactivo <

total

 pasivo

Or 

Estadofinanciero =

conservador 

Estadofinanciero =

Agresivo

Totalactivo < 2

* total

 pasivo

Cliente

tiene hijos

Totalactivo > 2

* total

 pasivo

Totalactivo >

total

 pasivo

Cliente no

tiene hijos

And

And

Figura 3.10. Red de inferencia para el estado financiero

3.4.7. TAREA 5: REFINAR EL SISTEMA

En este punto se tiene ya un sistema completamente funcional que cumple conlos objetivos iniciales. Pero se pueden añadir características adicionales quemejoren tanto el desempeño como el mantenimiento.

3.4.8. USO DE VARIABLES PARA NÚMEROS 

Frecuentemente durante el desarrollo de un sistema experto se necesitan em-plear números dentro de una regla. Así en nuestro problema el experto consi-deró una edad de 40 años a más para ser viejo. Se capturó esta heurística enla REGLA 10 donde este número se usa explícitamente dentro de la regla. Enun sistema grande basado en reglas este mismo número puede aparecer mu-chas veces a través de la base de conocimiento. Si luego existiera la necesi-dad de cambiar este número, será necesario ubicar cada regla y hacer la co-rrección, esta tarea puede ser complicada y dificulta el mantenimiento del sis-tema.

Un mejor enfoque es el de emplear variables para reemplazar los númerosusados en las reglas, a las variables se le asigna un valor dentro de la porciónde inicialización del programa. Este enfoque le permite ubicar fácilmente la va-riable que necesita ajuste y requiere un cambio solamente en la asignación delvalor a la variable y no en las reglas.

Page 97: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 97/395

Mg. Juan Gamarra Moreno  113 

En nuestro sistema ejemplo, los números se emplearon para los siguienteselementos:

Edad del cliente.

Años de servicio del cliente

Relación entre activos y pasivos

Se puede reemplazar el uso explícito de los números usados en estos asuntoscon las siguientes variables y las asignaciones iniciales. Así tenemos:

EDAD DEL CLIENTE 

Inicializar VEJEZ = 40

Regla 9 

IF Edad del cliente < VEJEZTHEN El cliente ES joven

 AÑOS DE SERVICIO DEL CLIENTE 

Inicializar SERVICIO_LARGO = 10SERVICIO_CORTO = 3

Regla 11

IF Años 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 posición agresiva

3.4.9. RED DE SEGURIDAD INTELIGENTE 

En las aplicaciones de programación tradicional, el usuario probaba el códigopara todas las posibles combinaciones de entrada para verificar su operación.Esto es posible porque la cantidad de datos de entrada esta frecuentementelimitada a un número finito de posibilidades. Sin embargo, cuando se desarrollaun sistema experto, generalmente nos encontramos con un número grande de

posibles combinaciones de entrada, que no permiten la prueba exhaustiva del

Page 98: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 98/395

 

114 Tópicos y Aplicaciones de la Inteligencia Artificial 

sistema. En esta situación, puede existir la posibilidad que el sistema no seacapaz de alcanzar una recomendación final.

Para manejar este problema, se necesita desarrollar una “red de seguridad”para el sistema. Una red de seguridad es simplemente un curso de acción que

el sistema toma si este falla al tratar de alcanzar una recomendación. Estepuede ser tan complejo como cargar otra base de conocimientos que tratara decorregir la situación, o, tan simple, como una sentencia por defecto que lemuestre al usuario su falla.

Otro enfoque que podría elegirse es elaborar una “red de seguridad inteligen-te”. Por inteligente se entiende que le sistema le dice al usuario que se encon-tró algo que podría interesarle, aunque la recomendación final no se alcanzo.

La forma más simple de alcanzar esto es a través de la agenda de metas. Senecesita incluir una meta que el sistema persiga solo si la meta primaria no fue

alcanzada. Esta meta deberá ser la conclusión de una regla simple que se ga-rantice se dispare y muestre la información apropiada. La premisa de la reglapuede ser un hecho simple, previamente afirmada en la memoria de trabajo, elque actúa sólo para disparar la regla.

Para nuestro sistema ejemplo, podemos elegir informar al usuario acerca delestado personal y financiero del cliente en la red de seguridad. Para cumplir con esto, primero tendríamos que hacer el siguiente ajuste a nuestra agendade metas:

1. La sugerencia de Portafolio ES QUE

2. Visualizar por defecto

La primera meta, la que fue previamente desarrollada, se busca primero. Senecesita estar seguro que la segunda meta será perseguida sólo en el casoque la primera meta no se alcance.

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

Regla 18 

IF Recomendación se desconoceTHEN Visualizar por defectoAND DISPLAY TEXTO POR DEFECTO 

La premisa de esta regla debe ser afirmada en la memoria de trabajo cuandola sesión comience usando alguna forma de la sentencia “INIT” (inicializar).Cuando esta regla se dispara, el texto asociado con la sentencia “DISPLAYTEXTO POR DEFECTO” debe ser mostrada al usuario. El texto debe informar al usuario que el sistema no logró alcanzar una recomendación y para dar loshallazgos acerca del estado del cliente:

DISPLAY TEXTO POR DEFECTO

Page 99: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 99/395

Mg. Juan Gamarra Moreno  115 

Lo siento pero no pude determinar un portafolio que cumpla las necesidadesdel cliente. Sin embargo sobre la base del estado personal del cliente podríarecomendar [Sugerencias al estado personal del cliente] y en el estado finan-

ciero [Sugerencias al estado financiero del cliente].

Cuando se visualice esto al usuario, los valores encontrados para “Sugeren-cias al estado personal del cliente” y “Sugerencias al estado financiero delcliente” debería presentarse. Aunque le sistema no tuvo éxito, el usuario sepuede beneficiar al obtener esta información.

3.4.10. PROVEER HALLAZGOS PRINCIPALES 

 Algo que es cómodo para el usuario durante la consulta es mantenerlo infor-

mado acerca de los hallazgos principales y direcciones que el sistema toma.Existen varios lugares en el sistema donde se pueden elegir visualizar los ha-llazgos intermedios. Por ejemplo, si queremos visualizar la valoración al estadopersonal del cliente. Sería necesario entonces añadir una sentencia a cadaregla que concluya en este asunto, la sentencia debe mostrar la informaciónadecuada. Así se considera para la regla 6:

Regla 6 

IF El cliente ES viejo

OR El trabajo del cliente ES no estableTHEN El estado personal del cliente sugiere \

una posición conservadoraAND DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL

DEL CLIENTE 

DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL

DEL CLIENTE

Después de considerar los asuntos personales del cliente, podría sugerir [Su-

gerencias al estado personal del cliente]. Continuare ahora con los aspectosfinancieros del cliente.

La visualización no solo presenta los hallazgos actuales, también muestra ladirección que el sistema tomará próximamente.

3.4.11. TAREA 6: DISEÑO DE INTERFAZ 

El usuario tiene contacto con el sistema a través de la interfaz del sistema. Mu-chas veces la aceptación del sistema depende en como la interfaz se acomoda

a las necesidades del usuario, los diferentes shells ofrecen ayuda en esta ta-

Page 100: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 100/395

 

116  Tópicos y Aplicaciones de la Inteligencia Artificial 

rea. Podemos considerar varios aspectos que se deben considerar en estatarea.

Visualización introductoria

Cada sistema experto debería tener una visualización introductoria. Como mí-nimo se debería explicar acerca del propósito general del sistema. En el siste-ma de ejemplo deberíamos visualizar una explicación al usuario que le digaque el sistema dará una recomendación de portafolio que reúna las necesida-des del cliente. También podría adicionalmente explicar como el sistema lleva-rá a cabo la tarea primaria, En nuestro caso, se explicará que el sistema explo-rará tanto asuntos personales como financieros para arribar a una recomenda-ción.

Preguntas adecuadas

La mayoría de los shells automáticamente generan preguntas a partir de lasprimitivas encontradas en las reglas. Por ejemplo, en el aspecto de los “Activostotales” el sistema podría preguntar: 

SISTEMA: ¿Activos Totales?

Este tipo de preguntas a parte de ser frías puede confundir al usuario llevándo-los a contestarlas equivocadamente. Ante tal pregunta, el usuario podría pre-guntarse “¿Qué activos considero?”, o, “¿Ingreso las cantidades en dólares?”. 

La mayoría de los shells permiten colocar las preguntas adecuadas al usuario,de tal manera que se reciban respuestas confiables. Considere el siguienteejemplo:

SISTEMA: Por favor dame la cantidad en dólares total de los activos que elcliente posee. Incluyendo la tenencia de cuentas bancarias, acciones, bonos,inmuebles, etc. Por favor ingrese la cantidad en dólares sin comas, por ejemplo150000.

3.4.12. INDICACIONES DE PANTALL A

Es importante dar instrucciones claras de cada pantalla presentada al usuario.Muestre claramente cualquier opción disponible para la pantalla actual y lasindicaciones de su uso. A continuación se ilustra como dar instrucciones depantallas claras.

Continuación de la sesión

 Aquí se considera la tarea de continuar la sesión siguiendo lo que se muestraen algunos textos o gráficos. Por ejemplo si se va a emplear la tecla ENTRAR

o alguna otra tecla para continuar la sesión deberíamos colocar, una descrip-ción corta como continuar. Así por ejemplo

Page 101: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 101/395

Mg. Juan Gamarra Moreno  117 

Por favor presiones ENTRAR para continuar la sesión.

Respuesta a preguntas con múltiples respuestas

Se puede ayudar al usuario cuando se tengan preguntas con varias opcionesde respuesta. Así se podría mostrar un menú de opciones, por ejemplo

SISTEMA: ¿Cuál es el nivel de educación del cliente? Seleccione tantos co-mo sea necesario y presione F4 para continuar.

Primaria

Secundaria

Bachillerato

Ocupacional 

Técnico

Universitaria

Maestría

Ph. D.

En este caso se le menciona al usuario que puede seleccionar más de una

opción y lo que debe hacer para continuar.

Fin de sesión

Cuando se visualice la pantalla final se presente al usuario, se debería explicar que opciones están disponibles y como seleccionarlas. Las opciones típicasson:

SALIR Parar/Salir del sistema.

COMO Obtener la línea de razonamiento que llevo a la conclusión.

QUE SI Ver que efectos en la presente recomendación tendría el cambiar las respuestas previas.

GUARDAR Almacenar la sesión actual

REINICIAR Reiniciar la sesión

Considere por ejemplo lo siguiente

SISTEMA: Para salir del sistema presione F10. Si se desea reiniciar la se-

sión presione F3.

Page 102: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 102/395

 

118  Tópicos y Aplicaciones de la Inteligencia Artificial 

Con instrucciones simples como estas el usuario, el usuario sabe que puedehacerse, y evita la frustración obvia que resultaría cuando las opciones de con-trol no se presentan.

Visualización de ConclusionesLa visualización de las conclusiones presenta al usuario los hallazgos del sis-tema. Para nuestro ejemplo, presentaremos el portafolio recomendado para elcliente. En muchas aplicaciones esta visualización limitada será suficiente. Pe-ro en otros casos se pude necesitar presentar un reporte más detallado acercadel razonamiento detrás de la recomendación.

Una característica de los sistemas expertos es la habilidad para explicar CO-MO (WHY) se derivaron las recomendaciones. La mayoría de los shells ofre-cen respuestas que muestras detalladamente todos los pasos seguidos por el

sistema. En algunas aplicaciones estos detalles son necesarios para que losusuarios acepten las recomendaciones finales. Sin embargo, en otros casos,los usuarios estarán satisfechos con una visualización de alto nivel de los ha-llazgos importantes que llevaron a la recomendación final.

Para comodidad del usuario que sólo requiere una visualización de alto niveldel razonamiento, el sistema podría mostrar una sugerencia que permita estavisualización de los hallazgos importantes. Estos hallazgos importantes sonasuntos importantes que considera el sistema para determinar la recomenda-ción final.

Para nuestro sistema podríamos mostrar DISPLAY RECOMENDACIÓN FINAL

Recomendaría que el cliente invierta el dinero en [Sugerencia del Portafolio].Recomiendo está inversión porque encontré que el estado personal del clientesugiere [Sugerencia al estado personal del cliente] y el estado financiero del cliente sugiere [Sugerencia al estado financiero del cliente].

 Aquí el usuario recibe una recomendación final y razones de alto nivel de por-que la recomendación se hizo.

3.4.13. TAREA 7: EVALUACIÓN DEL SISTEMA

En este punto nuestro sistema prototipo esta completo. Todas las reglas secodifican en el sistema y se asume que la interfaz se ha diseñado de acuerdo alas recomendaciones dadas en las secciones previas. También se asume queel sistema ha pasado satisfactoriamente las pruebas desarrolladas con cadaexpansión. El paso que sigue es evaluar el sistema usado en el caso de prue-bas reales.

Este proceso comienza preguntándole al experto por uno de los casos pasa-

dos. Se asume que el caso involucra un cliente de 30 años de edad, ha estadoen una compañía 5 años con una tasa de despido temporal pequeña, tiene dos

Page 103: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 103/395

Mg. Juan Gamarra Moreno  119 

hijos, y quiere invertir $50,000. El cliente también tiene activos totales de$100,00 y pasivos totales de $20,000. Para este caso el experto recomendó elPortafolio 2: 60% en acciones, 30% en bonos y 10% en ahorros.

 A continuación se muestran las reglas para implementar el sistema:

INIT FACTOR DE SEGURIDAD = 2INIT VEJEZ = 40INIT SERVICIO_LARGO = 10INIT SERVICIO_CORTO = 3INIT Recomendación se desconoce

La sugerencia ESVisualizar por defecto

RULE Visualizar por defectoIF Recomendación se desconoceTHEN Visualizar por defecto

 AND DISPLAY TEXTO POR DEFECTO

¡------------------------------------------¡Reglas de Sugerencia de Inversión¡------------------------------------------

RULE Sugerencia de 100% de inversión en el mercado dedinero – poco dinero

IF Cantidad de inversión del cliente 1000THEN La sugerencia ES invertir el 100% en ahorros AND DISPLAY RECOMENDACIÓN FINAL

RULE Sugerencia de 100% de inversión en el mercado

de dineroIF Cantidad de inversión del cliente >= 1000 AND El estado personal del cliente sugiere \

una posición conservadora AND El estado financiero del cliente sugiere \

una posición conservadoraTHEN La sugerencia ES invertir el 100% en ahorros AND DISPLAY RECOMENDACIÓN FINAL

RULE Sugerencia de invertir el 60% en acciones, 30% enbonos y el 10% en el mercado de dinero

IF Cantidad de inversión del cliente >= 1000 AND El estado personal del cliente sugiere \

una posición conservadora AND El estado financiero del cliente sugiere \

una posición agresivaTHEN La sugerencia ES invertir el 60% en acciones, 30%

en bonos y el 10% en ahorros AND DISPLAY RECOMENDACIÓN FINAL

RULE Sugerencia de invertir el 20% en acciones, 40% enbonos y el 40% en el mercado de dinero

IF Cantidad de inversión del cliente >= 1000 AND El estado personal del cliente sugiere \ una

posición agresiva AND El estado financiero del cliente sugiere \

una posición conservadoraTHEN La sugerencia ES invertir el 20% en acciones,

Page 104: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 104/395

 

120 Tópicos y Aplicaciones de la Inteligencia Artificial 

40% en bonos y el 40% en ahorros AND DISPLAY RECOMENDACIÓN FINAL

RULE Sugerencia de invertir el 100% en accionesIF Cantidad de inversión del cliente >= 1000 AND El estado personal del cliente sugiere \

una posición agresiva AND El estado financiero del cliente sugiere \

una posición agresivaTHEN La sugerencia ES invertir el 100% en acciones AND DISPLAY RECOMENDACIÓN FINAL

¡------------------------------------------¡Determinar el estado personal del cliente¡------------------------------------------

RULE Inversiones conservadoras personales por la vejezo trabajo no estable

IF El cliente ES viejo

OR El trabajo del cliente ES no estableTHEN El estado personal del cliente sugiere \

una posición conservadora AND DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL DEL

CLIENTE

RULE Inversiones conservadoras personales por ser joveny tener niños

IF El cliente ES joven AND El trabajo del cliente ES estable AND El cliente tiene \ niñosTHEN El estado personal del cliente sugiere \

una posición conservadora

 AND DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL DEL CLIENTE

RULE Inversiones agresivas personales por ser joven y notener niños

IF El cliente ES joven AND El trabajo del cliente ES estable AND El cliente tiene \ no niñosTHEN El estado personal del cliente sugiere \

una posición agresiva AND DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL DEL

CLIENTE

¡------------------------------------------

¡Determinar el estado financiero del cliente¡------------------------------------------

RULE Inversión financiera conservadora porque lospasivos exceden a los activos

IF Total de activos < Total de pasivosTHEN El estado financiero del cliente sugiere \

una posición conservadora AND DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL DEL

CLIENTE

RULE Inversión financiera conservadora porque no existensuficientes activos para los niños

IF Total de activos > Total de pasivos AND Total de activos < FACTOR DE SEGURIDAD *

Page 105: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 105/395

Mg. Juan Gamarra Moreno  121 

Total de pasivos AND El cliente tiene \ niñosTHEN El estado financiero del cliente sugiere \

una posición conservadora AND DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL DEL

CLIENTE

RULE Inversión financiera agresiva porque existensuficientes activos y no se tiene niños

IF Total de activos > Total de pasivos AND Total de activos < FACTOR DE SEGURIDAD *

Total de pasivos AND El cliente tiene \ no niñosTHEN El estado financiero del cliente sugiere \

una posición agresiva AND DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL DEL

CLIENTE

RULE Inversión financiera agresiva porque existen

suficientes activosIF Total de activos > FACTOR DE SEGURIDAD *

Total de pasivosTHEN El estado financiero del cliente sugiere \

una posición agresiva AND DISPLAY LA VALORACIÓN DEL ESTADO PERSONAL DEL

CLIENTE

¡------------------------------------------¡Determinar la edad del cliente¡------------------------------------------

RULE El cliente ES joven

IF Edad del cliente < VEJEZTHEN El cliente ES joven

RULE El cliente ES viejoIF Edad del cliente >= VEJEZTHEN El cliente ES viejo

¡------------------------------------------¡Determinar la estabilidad del trabajo del cliente¡------------------------------------------

RULE El trabajo ES estable a causa de los varios añosde servicio del cliente

IF Años de servicio del cliente >= SERVICIO_LARGOTHEN El trabajo del cliente ES estable

RULE El trabajo ES estable a causa de los años deservicio moderado y baja tasa de despido temporalen la organización

IF Años de servicio del cliente >= SERVICIO_CORTO AND Años de servicio del cliente < SERVICIO_LARGO AND La tasa de despidos temporal ES bajaTHEN El trabajo del cliente ES estable

RULE El trabajo ES no estable a causa de los años deservicio moderado y alta tasa de despido temporal

en la organizaciónIF Años de servicio del cliente >= SERVICIO_CORTO

Page 106: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 106/395

 

122  Tópicos y Aplicaciones de la Inteligencia Artificial 

 AND Años de servicio del cliente < SERVICIO_LARGO AND La tasa de despidos temporal ES altaTHEN El trabajo del cliente ES no estable

RULE El trabajo ES no estableIF Años de servicio del cliente < SERVICIO_CORTO

THEN El trabajo del cliente ES no estable

El sistema también incluye texto (que no se muestra) para mostrar la introduc-ción, preguntas, visualizaciones intermedias, y la visualización de conclusio-nes. La siguiente interacción entre el sistema experto y el usuario ilustra laoperación del sistema:

PASO 1

SISTEMA: Bienvenido al SISTEMA EXPERTO DE ASESORÍA DEINVERSIÓN

Intentaré determinar el portafolio de inversión para sucliente. Le haré preguntas tanto personales como financie-ras acerca del cliente. A partir de esta información deberéser capaz de determinar una inversión ya sea conservado-ra o agresiva.

Por favor presione ENTRAR para comenzar la sesión

USUARIO: ENTRAR.

PASO 2 

SISTEMA: ¿Cuánto dinero en dólares el cliente quiere invertir? Por favor ingrese la cantidad en dólares sin comas, por ejem-plo, 10000.

USUARIO: ENTRAR.

PASO 3 

SISTEMA: ¿Cuál es la edad del cliente?

USUARIO: 30

PASO 4

SISTEMA: ¿Cuántos años ha estado el cliente con la compañía ac-tual?

USUARIO: 5

Page 107: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 107/395

Mg. Juan Gamarra Moreno  123 

PASO 5 

SISTEMA: La tasa de despidos temporales en la organización es:

Baja

 Alta

USUARIO: Baja

COMENTARIO: El usuario puede tener proble-mas al responder esta pregunta. Este es unproblema típico encontrado cuando se estaejecutando el sistema las primeras vecesen el proyecto. Sería necesario preguntaral experto cómo determina si los despidos

temporales son “bajos” o “altos”, y añadirlas reglas apropiadas a nuestro sistema

PASO 6 

SISTEMA: El cliente:

tiene niños

no tiene niños

USUARIO: tiene niños

PASO 7 

SISTEMA: Después de considerar los aspectos personales del clien-te, le sugiero una posición conservadora. Ahora continuarécon el análisis de los aspectos financieros.

Por favor presione ENTRAR para continuar la sesión

USUARIO: ENTRAR

PASO 8 

SISTEMA: Por favor dame la cantidad en dólares total de los activosque el cliente posee. Incluyendo la tenencia de cuentasbancarias, acciones, bonos, inmuebles, etc.

Por favor ingrese la cantidad en dólares sin comas, por ejemplo, 150000.

USUARIO: 100000

Page 108: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 108/395

 

124 Tópicos y Aplicaciones de la Inteligencia Artificial 

PASO 9 

SISTEMA: Por favor dame la cantidad en dólares total de los pasivosque el cliente tiene. Incluyendo elementos como présta-mos, hipotecas, etc.

Por favor ingrese la cantidad en dólares sin comas, por ejemplo, 150000.

USUARIO: 20000

PASO 10

SISTEMA: Después de considerar los aspectos financieros del cliente,le sugiero una posición agresiva. Ahora continuaré con elanálisis de los aspectos financieros.

Por favor presione ENTRAR para continuar la sesión.

USUARIO: ENTRAR

PASO 11

SISTEMA: Recomendaría que el cliente invierta el dinero en 60% deacciones, 30% en bonos y 10% en ahorros.

Las razones principales por la que recomiendo esta inver-sión son porque se ha encontrado que el estado personaldel cliente sugiere una posición conservadora y el estadofinanciero sugiere una posición agresiva.

Para salir del sistema presione F10. Si gusta reiniciar lasesión presione F3.

Revisión de la sesión

Lo primero que se debería observar que el sistema de la misma recomenda-ción que la hecha por el experto. Obtener un acuerdo entre los hallazgos delsistema y lo que dice el experto es uno de los asuntos críticos cuando se eva-lúa un sistema experto. Para un estudio de evaluación real se probarán varioscasos.

Otro aspecto que se debe notar en esta evaluación es que el sistema resultócómodo para el usuario a través de toda la sesión.

 Apectos futuros

Page 109: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 109/395

Mg. Juan Gamarra Moreno  125 

Luego de tener este pequeño prototipo, se deberían extender sus capacidades.Por ejemplo se puede codificar el conocimiento en portafolios adicionales. O,se podría expandir el sistema para recomendar medios de inversión específicadentro de cada una de las categorías de inversión general. La facilidad con laque están expansiones se pueda realizar dependerá mucho de la flexibilidad

del diseño del prototipo.

Recomendar Portafolios Adicionales

Si se quiere considerar portafolios adicionales se requiere escribir reglas metaadicionales. No se necesitarán metas adicionales ya que el sistema ahora tieneuna sentencia meta que es variable. Cada nueva regla meta que se ingresedebe 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 usanestos dos aspectos con los valores de “conservadora” y “agresiva”. Para ser capaz de distinguir entre portafolios adicionales, se deberá expandir los valoresintroduciendo modificadores. Por ejemplo, se pueden usar valores como: con-servadora ligeramente, conservadora moderadamente, y muy conservadora. Sise toma en cuenta estos valores, será necesario desarrollar un conjunto dereglas más profundas que podrían inferir estos nuevos valores modificados.

Otro enfoque que se podría tomar al modificar las reglas meta existentes paraincluir los portafolios adicionales sería el de añadir premisas adicionales. Por ejemplo, podríamos considerar otros asuntos tales como los objetivos de inver-

sión del cliente, periodo de inversión, o aún condiciones financieras mundiales.Para este enfoque será necesario desarrollar también un conjunto de reglasmás profundas que podrían 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 puedemodificar las reglas meta presentes. Las modificaciones usualmente tomaránla forma de valores adicionales para los aspectos presentes, y/o la adiciónnuevos aspectos. Estos tipos de modificaciones se ilustran en la siguiente re-gla:

IF Estado personal del cliente valor nuevo  AND Estado personal del cliente valor nuevo  AND  Nuevo aspecto  THEN La sugerencia de portafolio ES 

nuevo portafolio  

Recomendación de medios de inversión

Se puede expandir el sistema para escoger el medio de inversión con cadacategoría de inversión general modificando primero la agenda meta de tal for-ma que esta tarea siga naturalmente la selección del portafolio. Esta modifica-

Page 110: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 110/395

 

126  Tópicos y Aplicaciones de la Inteligencia Artificial 

ción se ilustra en la siguiente agenda meta, con la adición de la metas multiva-lor “Sugerencia de Medio”: 

La sugerencia de Portafolio ES QUE 1.1. La sugerencia del medio ES QUE 

Visualizar por defecto

Las reglas meta escritas para esta nueva meta (ejemplo, 1.1.) necesitarán in-formación acerca de la recomendación de portafolio. Para ello, primero se de-be modificar las reglas del sistema y capturar las categorías de inversión gene-ral en una sentencia simbólica multivalor y el porcentaje a ser invertido comose observa en la modificación de la REGLA1:

IF Cantidad de inversión del cliente   1000THEN La sugerencia de portafolio ES invertir 

100%  en ahorrosAND Categoría de Inversión ES ahorrosAND Porcentaje_de_ahorros = 100

Se puede entonces escribir las reglas enla siguiente forma general para determinarlos medios de inversión específicos.

IF Categoría de Inversión ES ...AND ....

....

THEN Sugerencia del medio ES ....

Las premisas dentro de estas reglas podría contener asuntos que pueden dis-tinguir entre los varios medios dentro de cada categoría. La cantidad actual ainvertirse en algún medio sería decido usando información de la cantidad deltotal de la inversión y el porcentaje de la inversión para la categoría de inver-sión general, tal como “Porcentaje de ahorros”. 

3.4.14. RESUMÉN DEL DISEÑO DE UN SISTEMA CON ENCADENA - 

MIENTO HACIA ATRÁS 

El proceso de diseño de un Sistema con Encadenamiento hacia atrás es alta-mente cíclico, donde el conocimiento se recolecta del experto, es codificado,es probado, luego refinado a través interacciones adicionales con el experto.Existen algunos elementos claves para este proceso de diseño:

El diseño de un sistema experto con encadenamiento hacia atrás es unproceso altamente iterativo.

El sistema debería probarse inmediatamente después de la introducción de

nuevas reglas.

Page 111: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 111/395

Mg. Juan Gamarra Moreno  127 

El sistema debería expandirse en un aspecto a la vez.

Una tabla de decisión puede emplearse para adquirir fácilmente el cono-cimiento para la toma de decisiones del experto.

El uso de la sentencia ELSE puede ocasionar problemas de mantenimientodel sistema.

Un árbol de inferencia brinda un registro gráfico de la reglas recolectadas.

Los sistemas con encadenamiento hacia atrás pueden estar diseñados pa-ra desarrollar búsqueda exhaustiva o no exhaustiva.

Para las reglas que usan números para las operaciones de relación, man-tengan los números en la forma de variable que se le asignan en una sec-ción de inicialización del programa.

Es importante que una interfaz se diseñe para cumplir con las necesidadesdel usuario.

3.5. DISEÑO DE SISTEMAS BASADO EN ELCONOCIMIENTO CON ENCADENAMIENTO HACIAADELANTE A TRAVÉS DE DIAGRAMAS DE DEPENDENCIA

Esta guía permite mostrar una visión del diseño básico y el proceso de desa-

rrollo de una base de conocimiento con diagramas de dependencia.

Las etapas para desarrollar un Sistema Basado en el Conocimiento (SBC) es:

Etapa 1: Aislar el área para desarrollar el SBC.

Etapa 2: Precisar el problema del área designada para el desarrollo delSBC.

Etapa 3: Crear un diagrama de dependencia.

Etapa 4: Crear tablas de decisión. Etapa 5: Escribir las reglas IF-THEN.

Etapa 6: Construir la interface de usuario.

3.5.1. ETAPA 1: AISLAR EL ÁREA PARA DESARROLLAR EL SBC.

 Aislar el área bajo estudio a través de un diagrama de bloque.

Para nuestro caso, el objetivo general del sistema experto es que ayude en la

manutención de la salud. La rápida subida de los costos en el cuidado de lasalud, combinado con el incremento de la competencia en este rubro, ha gene-

Page 112: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 112/395

 

128  Tópicos y Aplicaciones de la Inteligencia Artificial 

rado un método alternativo para el financiamiento y entrega de los servicios decuidado de la salud. Muchas formas de entrega de servicios médicos se handesarrollado para resolver los problemas del ascenso de los costos. Existenalgunas instituciones que trabajan con el pago por adelantado más que un pa-go por el servicio brindado.

Una variación importante en los servicios de pago por adelantado es la organi-zación de la manutención de la salud (OMS). Los OMS proporcionan serviciosmédicos a sus miembros que realizan un pago por adelantado. Para que estosoperen en forma lucrativa deben de reducir los costos.

Generalmente la OMS debe tener éxito en proporcionar una continua atenciónbasada en las necesidades de sus miembros. Estas organizaciones tienen quealcanzar bajos costos en hospitalización, tasas que son bajos en el sector quetiene el pago por el servicio brindado. Además para reducir los costos la OMSdebe racionalizar la disponibilidad de servicio ambulatorio.

Para alcanzar el objetivo de asegurar que tan serio es el problema de la saludse obtienen prioridades de acceso al tratamiento sobre casos de prioridad baja.En este ejemplo utilizaremos un sistema basado en el conocimiento que asisti-rá a los usuarios en la toma de decisiones para la atención de la salud.

3.5.2. ETAPA 2: PRECISAR EL PROBLEMA DEL ÁREA DESIGNADAPARA EL DESARROLLO DEL SBC 

Los clientes rutinariamente requieren apoyo médico para nuevos casos o para

seguimientos de casos. Mientras algunos clientes requieren información uotros servicios, los clientes que no son miembros son los primeros candidatospara solicitar la membresía a OMS.

La decisión esta basado en los factores críticos que se muestra en el diagramade bloques de la figura 3.11. Los tres factores críticos son:

a) Estado OMS: ¿Esta el cliente autorizado a los servicios de los miembros?,dos ítems influencian la respuesta: la declaración de membresía del clienteseguido de la verificación del número de identificación que tiene la membresía.

Page 113: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 113/395

 

Figura 3.11. Diagrama de bloquesdel caso OMS

Recomendación

Estado OMSRazónProblema

Temperatura SíntomasMiembro ID

Page 114: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 114/395

 

b) Razón: ¿Cuál es la razón para venir a la OMS?, la respuesta esta dada por si es un nuevo caso, un seguimiento de caso, búsqueda de información u otravisita.

c) Problema: ¿Qué tan serio es la condición actual del cliente?, dos ítems in-

fluencian la respuesta. Una temperatura anormal u otro síntoma presentadoque requiere servicio de atención inmediata.

Recomendaciones que da el sistema

De acuerdo a las respuestas del cliente se puede ofrecer los siguientes servi-cios:

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 se-rios.

Información u otros servicios para miembros.

Servicios para clientes que no son miembros.

3.5.3. ETAPA 3: CREAR UN DIAGRAMA DE DEPENDENCIA

Un diagrama de dependencia indica las relaciones (dependencias) entre losfactores críticos, 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 creación del diagrama de dependencia debemos basarnos en el dia-grama de bloques. Las características del diagrama de dependencia son:

Dibujar rectángulos con un triángulo abierto para cada factor crítico identifi-cado en el diagrama de bloques.

Dibujar una línea recta que conecte a cada triángulo, escriba una frase quedescriba al ítem que llega al triángulo, el cual influenciará en la salida delfactor crítico. Además bajo la línea o entre paréntesis escriba los valoresque puede tomar el ítem anterior.

En cada rectángulo escriba el nombre del factor crítico y debajo escriba losvalores de este factor crítico. Realice lo mismo para el rectángulo que tienea las recomendaciones o conclusiones.

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

Page 115: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 115/395

 

Figura 3.12.

Recomendaciónde ayuda

Estado demembresía

Problema

Miembro

(si, no)

Identificación valida

(si, no)

Razón

(nuevo caso, seguimiento de caso, otra información)

- Nivel 1- Nivel 2- Nivel 3- Otra in-formación.- No esmiembro

SerioNo es serio

Temperatura

(Normal, anormal, desconocido)

Otros síntomas

(Si, No)

Ok, no_ok

Page 116: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 116/395

 

3.5.4. ETAPA 4: CREAR TAB LAS DE DECISIÓN 

En esta etapa se debe crear una tabla de decisión con la siguiente recomen-dación:

Definir el número de filas que se necesita en la tabla. Este puede determi-narse listando todos los factores, ahora llamado condiciones, que llegan altriángulo en consideración.

La cantidad de filas para la tabla de decisión que tiene a las recomendacionesse muestra en la tabla 3.3.

Tabla 3.3

Condiciones Número de valores

Estado de membresía (Ok,

no_ok)

2

Razón (nuevo caso, seguimiento de ca-

so, otra información)

3

Problema (Serio, No es serio) 2

Total de filas=2 x 3 x 2 12

La tabla de decisión para las recomendaciones se muestra en la tabla 3.4.

La tabla de decisión reducida para las recomendaciones se muestra en la tabla3.5.

La reducción de la tabla de decisión se debe a que algunas condiciones notienen sentido.

La cantidad de filas para la tabla de decisión que define el estado de membre-sía se muestra en la tabla 3.6.

La tabla de decisión que define el estado de membresía se muestra en la tabla

3.7.

Page 117: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 117/395

Mg. Juan Gamarra Moreno  133 

La tabla de decisión reducida que define el estado de membresía se muestraen la tabla 3.8.

La cantidad de filas para la tabla de decisión que define el problema se mues-tra en la tabla 3.9.

La tabla de decisión que define el problema se muestra en la tabla 3.10.

La tabla de decisión reducida que define el problema se muestra en la tabla3.11.

Tabla 3.4

Regla Estado de

membresía

Razón Problema  Recomendación

 A1 Ok Nuevo caso Serio  Nivel 1

 A2 Ok Nuevo caso No es serio  Nivel 2

 A3 Ok seguimientode caso

Serio  Nivel 1

 A4 Ok seguimientode caso

No es serio  Nivel 3

 A5 Ok Otra informa-

ción

Serio  Otra información

 A6 Ok Otra informa-ción

No es serio  Otra información

 A7 no_ok Nuevo caso Serio  No es miembro

 A8 no_ok nuevo caso No es serio  No es miembro

 A9 no_ok seguimientode caso

Serio  No es miembro

 A10 no_ok seguimientode caso

No es serio  No es miembro

 A11 no_ok Otra informa-ción

Serio  No es miembro

 A12 no_ok Otra informa-ción

No es serio  No es miembro

Page 118: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 118/395

 

134 Tópicos y Aplicaciones de la Inteligencia Artificial 

Tabla 3.5

Regla Estado demembresía

Razón Problema  Recomendación

B1 Ok Nuevo caso Serio  Nivel 1

B2 Ok Nuevo caso No es serio  Nivel 2

B3 Ok seguimientode caso

Serio  Nivel 1

B4 Ok seguimientode caso

No es serio  Nivel 3

B5 Ok Otra informa-ción

---  Otra información

B6 no_ok ---  ---  No es miembro

Tabla 3.6

Condiciones Número de valores

Miembro (si, no) 2

Identificación valida(si, no) 2

Total de filas = 2 x 2 4

Tabla 3.7

Reglas Miembro Identificación valida  Estado de membresía 

 A1 Si Si Ok

 A2 Si No No ok

 A3 No Si No ok

 A4 No No No ok

Tabla 3.8

Reglas Miembro Identificación valida  Estado de membresía 

B1 Si Si Ok

B2 --- No No ok

B3 No --- No ok

Page 119: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 119/395

Mg. Juan Gamarra Moreno  135 

Tabla 3.9

Condiciones Número de

valores

Temperatura (Normal, anormal, des-conocido)

3

Otros síntomas (Si, No) 2

Total de filas=3 x 2 6

Tabla 3.10

Regla Temperatura Otros síntomas Problema

 A1 Normal Si Serio

 A2 Normal No No es serio

 A3 Anormal Si Serio

 A4 Anormal No Serio

 A5 Desconocido Si Serio A6 Desconocido No Serio

Tabla 3.11

Regla Temperatura Otros síntomas Problema

B1 Normal Si Serio

B2 Normal No No es serio

B3 Anormal --- Serio

B4 Desconocido --- Serio

3.5.5. ETAPA 5: ESCRIBIR LAS REGLAS IF THEN 

Las reglas para las tablas de decisión son:

Page 120: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 120/395

 

136  Tópicos y Aplicaciones de la Inteligencia Artificial 

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 CASOSEGUIMIENTO DE CASOOTRA INFORMACION

Display at end

3 EL PROBLEMA QUE TIENE EL CLIENTE

ES SERIONO ES SERIO

Display at end

4 EL CLIENTE ES MIEMBRO

NOSI

Display at end

5 LA IDENTIFICACION DEL CLIENTE ES VALIDA

SINO

Display at end

6 LA TEMPERATURA DEL CLIENTE ES

NORMAL ANORMALDESCONOCIDODisplay at end

7 EL CLIENTE TIENE OTROS SINTOMAS

Page 121: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 121/395

Mg. Juan Gamarra Moreno  137 

SINO

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: 1IF:

ESTADO DE MEMBRESIA OKand LA RAZON POR LA QUE VINO EL CLIENTE ES OTRA INFORMACION

THEN:EL CLIENTE VINO POR OTRA INFORMACION - Confidence=1

and STOP

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

RULE NUMBER: 2IF:

ESTADO DE MEMBRESIA OKand LA RAZON POR LA QUE VINO EL CLIENTE ES NUEVO CASOand EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

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

and STOP

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

RULE NUMBER: 3IF:

ESTADO DE MEMBRESIA OKand LA RAZON POR LA QUE VINO EL CLIENTE ES NUEVO CASOand EL PROBLEMA QUE TIENE EL CLIENTE NO ES SERIO

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

and STOP

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

Page 122: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 122/395

 

138  Tópicos y Aplicaciones de la Inteligencia Artificial 

RULE NUMBER: 4IF:

ESTADO DE MEMBRESIA OKand LA RAZON POR LA QUE VINO EL CLIENTE ES SEGUIMIENTO DE CASOand EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

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

and STOP

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

RULE NUMBER: 5IF:

ESTADO DE MEMBRESIA OKand LA RAZON POR LA QUE VINO EL CLIENTE ES SEGUIMIENTO DE CASOand EL PROBLEMA QUE TIENE EL CLIENTE NO ES SERIO

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

and STOP

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

RULE NUMBER: 6IF:

ESTADO DE MEMBRESIA NO OK

THEN:EL CLIENTE NO ES MIEMBRO - Confidence=1

and STOP

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

RULE NUMBER: 7IF:

EL CLIENTE ES MIEMBRO NO

THEN:ESTADO DE MEMBRESIA NO OK

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

RULE NUMBER: 8IF:

LA IDENTIFICACION DEL CLIENTE ES VALIDA NO

THEN:ESTADO DE MEMBRESIA NO OK

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

RULE NUMBER: 9

IF:EL CLIENTE ES MIEMBRO SI

Page 123: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 123/395

Mg. Juan Gamarra Moreno  139 

and LA IDENTIFICACION DEL CLIENTE ES VALIDA SI

THEN:ESTADO DE MEMBRESIA OK

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

RULE NUMBER: 10IF:

LA TEMPERATURA DEL CLIENTE ES NORMALand EL CLIENTE TIENE OTROS SINTOMAS SI

THEN:EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

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

RULE NUMBER: 11IF:

LA TEMPERATURA DEL CLIENTE ES NORMALand EL CLIENTE TIENE OTROS SINTOMAS NO

THEN:EL PROBLEMA QUE TIENE EL CLIENTE NO ES SERIO

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

RULE NUMBER: 12IF:

LA TEMPERATURA DEL CLIENTE ES ANORMAL

THEN:EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

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

RULE NUMBER: 13IF:

LA TEMPERATURA DEL CLIENTE ES DESCONOCIDO

THEN:

EL PROBLEMA QUE TIENE EL CLIENTE ES SERIO

3.5.6. ETAPA 6: CONSTRUIR LA INTERFAZ DE USUARIO 

Se debe diseñar una interfaz adecuada que permita una interaccion con elusuario que sea lo más amigable posible.

Utilice las características de algun shell para construir la interfaz de usuario.

Page 124: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 124/395

 

140 Tópicos y Aplicaciones de la Inteligencia Artificial 

3.6. LÓGICA DIFUSA

3.6.1. TEORÍA DE LA CERTEZA

Una alternativa a la teoría de la probabilidad para el razonamiento inexacto enlos sistemas expertos es la teoría de la certeza.

Los expertos a menudo toman juicios cuando resuelven un problema. La in-formación que se tiene puede ser incompleta y el conocimiento utilizado parainterpretar la información puede crear desconfianza en el resultado final.

Una pregunta para un problema medico puede ser la siguiente : ¿Tiene unafuerte jaqueca?. La respuesta es incierta, porque es subjetiva y requiere que elusuario elabore un juicio al contestar la pregunta; por supuesto el usuario sesiente mejor al contestar con verdadero o falso. Por otro lado, el usuario po-

dría contestar asignando un número subjetivo a su respuesta entre 0 y 1, talcomo 0.7, que significa 70% de certeza en su respuesta. El número no tienebase estadística ni probabilística, más bien es el nivel de creencia de la res-puesta dada.

3.6.2. FACTOR DE CERTEZA

“Medida de la creencia que tiene un experto humano en la ocurrencia de unhecho”. 

“Número que refleja el nivel de creencia de una hipótesis”.

La figura 3.13 muestra como se interpreta la teoría de la certeza.

Figura 3.13. Factor de Certeza

3.6.3. FACTORES DE CERTEZA EN SISTEMAS BA SADOS EN RE- GLAS 

Los sistemas basados en reglas utilizan la siguiente representación:

SI (CONDICION ) ENTONCES (CONCLUSION)

Factor decerteza

Falso Verdadero

Page 125: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 125/395

Mg. Juan Gamarra Moreno  141 

 Añadiremos ahora el factor de certeza (FC) a los elementos de la regla de lasiguiente forma:

Rx : SI  p Y q  ENTONCES r

FCx FCp FCq FCr

Para obtener la certeza de la conclusión en una regla de condición simple,se tiene que dado:

Rx : SI  p ENTONCES r

FCx FCp FCr

El Factor de certeza de la conclusión es:

FCr = FCp * FCx

La certeza de una conclusión en reglas de condición múltiple, se obtieneconsiderando si existe conjunción o disyunción.

Para reglas donde exista conjunción, 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 conclusión es:

FCc = min (FCp, FCq, FCr, ... , FCz)* FCx

La función min retorna el mínimo valor del conjunto de números.

Para reglas donde exista disyunción, se tiene que dado:

Rx : SI  p O q  O r ..O.. z ENTONCES c

FCx FCp FCq FCr FCz FCc

El Factor de certeza de la conclusión es:

FCc = max (FCp, FCq, FCr, ... , FCz)* FCx

La función max retorna el máximo valor del conjunto de números.

Page 126: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 126/395

 

142  Tópicos y Aplicaciones de la Inteligencia Artificial 

Ejemplo: Encontrar el factor de certeza de x (FCx=?). Si se tienen las siguien-tes reglas:

R1 : SI a Y b ENTONCES c

0.9 0.8 0.85 FCc

R2 : SI c O d  ENTONCES e

1.0 0.90 FCe

R3 : SI e Y f ENTONCES x

0.8 0.8 FCx

Solución:

Hallando FCc

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

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 más reglas como se muestra acontinuación:

Dados

R1 : SI a Y b ENTONCES x

FCR1 FCa FCb FCx_R1

R2 : SI c O d  ENTONCES x

FCR2 FCc FCd FCx_R2

El factor de certeza se calcula utilizando la siguiente expresión:

Page 127: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 127/395

Mg. Juan Gamarra Moreno  143 

FCx_R1_R2 = FCx_R1 + FCx_R2 – FCx_R1 * FCx_R2

El cálculo de FCx_R1 y FCx_R2 utiliza los procedimientos ya mencionadosanteriormente.

3.6.4. LÓGICA DIFUSA

HISTORÍA DE LA LÓGICA DIFUSA 

Los conjuntos difusos fueron introducidos por primera vez en 1965; la crecientedisciplina de la lógica difusa provee por sí misma un medio para acoplar estastareas. En cierto nivel, la lógica difusa puede ser vista como un lenguaje quepermite trasladar sentencias sofisticadas en lenguaje natural a un lenguaje ma-temático formal. Mientras la motivación original fue ayudar a manejar aspectosimprecisos del mundo real, la práctica temprana de la lógica difusa permitió eldesarrollo de aplicaciones prácticas. Aparecieron numerosas publicacionesque presentaban los fundamentos básicos con aplicaciones potenciales. Estafrase marcó una fuerte necesidad de distinguir la lógica difusa de la teoría deprobabilidad. Tal como la entendemos ahora, la teoría de conjuntos difusos y lateoría de probabilidad tienen diferentes tipos de incertidumbre.

En 1994, la teoría de la lógica difusa se encontraba en la cumbre, pero estaidea no es nueva, para muchos, estuvo bajo el nombre de lógica difusa durante25 años, pero sus orígenes se remontan hasta 2,500 años. Aún Aristótelesconsideraba que existían ciertos grados de veracidad y falsedad. Platón habíaconsiderado ya grados de pertenencia.

En el siglo XVIII el filósofo y obispo anglicano Irlandés, George Berkeley y Da-vid Hume describieron que el núcleo de un concepto atrae conceptos similares.Hume en particular, creía en la lógica del sentido común, el razonamiento ba-sado en el conocimiento que la gente adquiere en forma ordinaria mediantevivencias en el mundo. En Alemania, Immanuel Kant, consideraba que solo losmatemáticos podían proveer definiciones claras, y muchos principios contradic-torios no tenían solución. Por ejemplo la materia podía ser dividida infinitamen-te y al mismo tiempo no podía ser dividida infinitamente. Particularmente laescuela americana de la filosofía llamada pragmatismo fundada a principios de

siglo por Charles Sanders Peirce, cuyas ideas se fundamentaron en estos con-ceptos, fue el primero en considerar ''vaguedades'', más que falso o verdadero,como forma de acercamiento al mundo y a la forma en que la gente funciona.

La idea de que la lógica produce contradicciones fue popularizada por el filóso-fo y matemático británico Bertrand Russell, a principios del siglo XX. Estudiolas vaguedades del lenguaje, concluyendo con precisión que la vaguedad esun grado. El filosofo austríaco Ludwing Wittgenstein estudió las formas en lasque una palabra puede ser empleada para muchas cosas que tienen algo encomún. La primera lógica de vaguedades fue desarrollada en 1920 por el filó-sofo Jan Lukasiewicz, visualizó los conjuntos con un posible grado de perte-

nencia con valores de 0 y 1, después los extendió a un número infinito de valo-res entre 0 y 1. En los años sesentas, Lofti Zadeh inventó la lógica difusa, que

Page 128: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 128/395

 

144 Tópicos y Aplicaciones de la Inteligencia Artificial 

combina los conceptos de la lógica y de los conjuntos de Lukasiewicz mediantela definición de grados de pertenencia.

¿QUE ES LA LÓGICA DIFUSA? 

Es una rama de la lógica que usa grados de membresía (pertenencia) a losconjuntos en lugar de pertenecer a ellos como verdadero o falso

El término “difuso” procede de la palabra inglesa “fuzz” que sirve para denomi-nar la pelusa que recubre el cuerpo de lo polluelos al poco de salir del huevo.Este término inglés significa “confuso, borroso, indefinido o desenfocado”. Estetérmino se traduce por “flou” en frances y “aimai” en japones. Aunque la teoríade conjuntos difusos presente cierta complejidad, el concepto básico es fácil-mente comprensible.

Tomemos como ejemplo el concepto de “mediana edad”. Al escuchar el ter-mino “mediana edad”, nuestra mente asocia automáticamente la imagen deciertas personas o tipos de personas. Pero este es un concepto con límitesimprecisos que no puede ser tratado por el programa de un ordenador, queordinariamente exige que las cosan sean definidas. Es aquí donde entra la Ló-gica Difusa. Supongamos que hemos llegado a la conclusión de que la edadmediana son los 45 años. Sin embargo no podemos descartar a las personasde 35 o 55 años como edad mediana. Por el contrario, los menores de 30 añosy los mayores de 60 tampoco se pueden considerar radicalmente como no demediana edad. De tal forma creamos tres círculos. El primero, el de los jóvenesva de los 0 hasta los treinta y cinco años, el segundo el de la “mediana edad”

va de los treinta hasta los cincuenta y cinco años, y por ultimo el de la terceraedad que va de los cincuenta en adelante. Podemos observar que desde elpunto de vista de los “conjuntos difusos” el periodo de edad de los treinta a lostreinta y cinco puede considerarse tanto dentro del círculo “joven” como el de“mediana edad”. Otro tanto ocurre entre los cincuenta y los cincuenta y cincoaños que pueden concebirse dentro de la “mediana edad” y de la “terceraedad”. 

Estas transiciones de valoración facilitan la expresión matemática de las ex-presiones difusas o indefinidas, y con ello dan la posibilidad de hacer progra-mas para ordenadores que interpreten las expresiones humanas que normal-

mente son imprecisas para la matemática tradicional.

3.6.5. VARIABLES L INGÜÍSTICAS 

Los Conjuntos Difusos son capaces de captar por sí mismos la vaguedad lin-güística de palabras y frases comúnmente aceptadas, como "gato pardo" o"ligero cambio". La habilidad humana de comunicarse mediante definicionesvagas o inciertas es un atributo importante de la inteligencia.

Una Variable Lingüística es aquella variable cuyos valores son palabras o sen-

tencias son vagas o imprecisas. Para estas variables lingüísticas se utilizará unnombre y un valor lingüístico sobre un Universo de Discurso.

Page 129: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 129/395

Mg. Juan Gamarra Moreno  145 

Los Conjuntos Difusos pueden utilizarse para representar expresiones talescomo:

x es PEQUEÑO. (X es una variable lingüística)

La velocidad es RÁPIDA. (velocidad es una variable lingüística)El ganso es CLARO. (ganso es una variable lingüística)

Las expresiones anteriores pueden dar lugar a expresiones lingüísticas máscomplejas como:

x no es PEQUEÑO.

La velocidad es RÁPIDA pero no muy RÁPIDA.

El ganso es CLARO y muy ALEGRE.

También se puede utilizar los distintos modificadores lingüísticos como muy,poco, rápido, lento, etc.

3.6.6. TEORÍA DE CONJUNTOS DIFUSOS 

Una buena estrategia para presentar la teoría de Conjuntos Difusos, consisteen recordar algunos aspectos de la teoría de conjuntos convencionales (quellamaremos conjuntos concretos), y a partir de allí hacer una extensión a losconjuntos difusos:

Un conjunto concreto se define como una colección de elementos que existendentro de un Universo. Así, si el universo consta de los números enteros nonegativos menores que 10:

U={0,1,2,3,4,5,6,7,8,9}

entonces podemos definir algunos conjuntos como, por ejemplo:

 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 delUniverso pertenecen o no a un determinado conjunto. Por lo tanto, cada con- junto puede definirse completamente por una función de pertenencia, que ope-ra sobre los elementos del Universo, y que le asigna un valor de 1 si el elemen-to pertenece al conjunto, y de 0 si no pertenece.

Tomando como ejemplo el conjunto C enumerado arriba, su función de perte-nencia uC(x) sería de la siguiente forma:

Page 130: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 130/395

 

146  Tópicos y Aplicaciones de la Inteligencia Artificial 

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 diferenciaconceptual importante: un elemento puede pertenecer parcialmente a un con-

 junto.De esta forma, un conjunto difuso D definido sobre el mismo universo U puedeser el siguiente:

D={20%/1,50%/4,100%/7}5 

La definición anterior significa que el elemento 1 pertenece en un 20% al con- junto D (y por tanto pertenece en un 80% al complemento de D), en tanto queel elemento 4 pertenece en un 50%, y el elemento 7 en un 100% .

En forma alternativa, diríamos que la función de pertenencia uD(x) del conjuntoD es la siguiente:

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 Concre-tos y los Conjuntos Difusos son las siguientes:

La función de pertenencia asociada a los conjuntos concretos sólo puede te-ner dos valores: 1 ó 0, mientras que en los conjuntos difusos puede tener cual-quier valor entre 0 y 1.

Un elemento puede pertenecer (parcialmente) a un conjunto difuso y simultá-neamente pertenecer (parcialmente) al complemento de dicho conjunto.

Lo anterior no es posible en los conjuntos concretos, ya que constituiría unaviolación al principio del tercer excluido.

Las fronteras de un conjunto concreto son exactas, en tanto que las de unconjunto difuso son, precisamente, difusas, ya que existen elementos en lasfronteras mismas, y estos elementos están a la vez dentro y fuera del conjunto.

¿Qué sentido puede tener el pertenecer parcialmente a un conjunto? En mu-chos casos puede tener más sentido que pertenecer totalmente a un conjunto;veamos algunos ejemplos:

Ejemplo 1: Supóngase que se desea definir el conjunto de los estudiantes de lacarrera de Ingeniería de Sistemas de la Universidad que están cursando elquinto semestre de la carrera. ¿Cómo clasificar a un estudiante que cursa dosmaterias de cuarto semestre, tres de quinto y una de sexto? ¿y a otro que to-ma una materia de quinto semestre, y cinco de sexto? Evidentemente ambosson en parte miembros del conjunto Estudiantes de quinto semestr e, pero sólo loson parcialmente.

5 Se ha empleado una notación frecuente, en donde el signo "/" no significa "dividido por". 

Page 131: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 131/395

Mg. Juan Gamarra Moreno  147 

Ejemplo 2: Supóngase que se desea clasificar a los miembros de un equipo defútbol según su estatura en tres conjuntos, Bajos, Medianos y Altos. Podríaplantearse que se es Bajo si se tiene una estatura inferior a, por ejemplo, 160cm, que se es Mediano si la estatura es superior o igual a 160 cm e inferior a180 cm, y se es alto si la estatura es superior o igual a 180 cm, con lo que se

lograría una clasificación en conjuntos concretos.

Sin embargo, qué tan grande es la diferencia que existe entre dos jugadoresdel equipo, uno con estatura de 179.9 cm y otro de 180.0 cm? Ese milímetrode diferencia quizás no represente en la práctica algo significativo, y sin em-bargo los dos jugadores han quedado rotulados con etiquetas distintas: uno esMediano y el otro es Alto. Si se optase por efectuar la misma clasificación conconjuntos difusos estos cambios abruptos se evitarían, debidos a que las fron-teras entre los conjuntos permitirían cambios graduales en la clasificación.

La figura 3.14 muestra cómo podría hacerse tal clasificación: El universo de

discurso sería el conjunto continuo de todas las posibles estaturas (el interva-lo [130cm, 210]cm por ejemplo). Las funciones de pertenencia de cada uno delos tres conjuntos Bajo, Mediano y Alto se han graficado. La forma de estasfunciones de pertenencia no debe ser necesariamente la de la ilustración 2,pues depende de lo que se entienda por "Bajo", "Mediano" y "Alto". Las figuras3.15 y 3.16 muestran otras alternativas para definir dichas funciones.

Page 132: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 132/395

 

148  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 3.14 Funciones de pertenencia del ejemplo 2.

Figura 3.15 Representación alternativa del ejemplo 2.

Figura 3.16 Representación alternativa del ejemplo 2.

Ejemplo 3: Tómese un individuo x cuya edad sea de 20 años. Como se puedeobservar en la figura 3.17, pertenece al Conjunto Difuso "Joven" y al ConjuntoDifuso "Maduro".

Page 133: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 133/395

Mg. Juan Gamarra Moreno  149 

Figura 3.17. 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 elConjunto Difuso "Joven" y un grado de 0.4 para el Conjunto Difuso "Maduro";

también 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 aunquecon distinto grado. Así, nuestro individuo x tiene un grado de pertenencia ma-yor al conjunto "Joven " que al conjunto "Maduro"(0.6 > 0.4), pero no se puededecir, tratándose de Conjuntos Difusos, que x es joven o que x es maduro demanera rotunda.

3.6.7. APROXIMACIÓN DE LA S FUNCIONES DE PERTENENC IA EN LOS CONJUNTOS DIFUSOS 

Para realizar la aproximación de las funciones de pertenencia de los conjuntosdifusos, comenzaremos definiendo que conjuntos difusos formaran el universode discurso.

Supongamos la variable lingüística edad y sus conjuntos difusos joven y adul-to, los cuales se obtuvieron en una encuesta a 10 personas para saber cual esel rango en años para definir estas edades. Las preguntas utilizadas fueron:

¿Cuál es el rango en años para un joven?

¿Cuál es el rango en años 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  MAXIMO

 FREC  DIFUSA FREC 

 _ 

 _   

Con el resultado de las tablas 3.12 y 3.13., realizamos una grafica con laEDAD y FREC DIFUSO que representan a las funciones de pertenencia. Lasfunciones de pertenencia se muestran en las figuras 3.18 y 3.19 para edad jo-ven y edad adulta.

Page 134: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 134/395

 

150 Tópicos y Aplicaciones de la Inteligencia Artificial 

Tabla 3.12. Rango en años para definir a un joven

Tabla 3.13 Rango en años para definir a un adulto

Page 135: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 135/395

Mg. Juan Gamarra Moreno  151 

Tabla 3.13 Rango en años para definir a un adulto (continuación)

0

0,2

0,4

0,6

0,8

1

1,2

  1   5   1   8    2  1    2  4    2   7    3   0    3   3

 

Figura 3.18 Función de pertenencia de edad joven

Page 136: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 136/395

 

152  Tópicos y Aplicaciones de la Inteligencia Artificial 

0

0,2

0,4

0,6

0,8

1

1,2

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 3.19 Función de pertenencia de edad adulta

Una vez obtenidas las funciones podríamos aproximarlos a una de las funcio-nes estándar que tiene la lógica difusa.

3.6.8. OPERACIONES ENTRE CONJUNTOS DIFUSOS  

Los Conjuntos Difusos se pueden operar entre sí del mismo modo que los con- juntos clásicos. Puesto que los primeros son una generalización de los segun-dos, es posible definir las operaciones de intersección, unión y complementohaciendo uso de las mismas funciones de pertenencia:

Intersección: (u)=min( (u), (u)) u

Unión: (u)=max( (u), (u)) u

Complemento: (u)=1- (u), (u)) u

Las ilustraciones de la intersección, unión y complemento de la figura 3.20, semuestran en las figuras 3.21, 3.22 y 3.23 respectivamente.

3.6.9. DESARROLLO DE UN SISTEMA DIFUSO BASADO EN REGLAS 

DEFINICIÓN DEL PROBLEMA 

Se desea diseñar un sistema difuso para estimar las ventas mensuales decomputadoras teniendo como datos de entrada el precio de la computadora yel nivel de ingresos del cliente.

Page 137: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 137/395

Mg. Juan Gamarra Moreno  153 

Figura 3.20. Funciones de pertenencia del ejemplo 2

Figura 3.21 Intersección de la figura 3.20.

Figura 3.22 Unión de la figura 3.20.

Page 138: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 138/395

 

154 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 3.23 Complemento de la figura 3.20.

DEFINICIÓN DE LAS VARIABLES LINGÜÍSTICAS 

Las variables son:

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

Ventas: Variables dependientes.

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

DEFINICIÓN DE LOS CONJUNTOS DIFUSOS 

Para cada una de las variables, definimos los conjuntos difusos, de acuerdo alos adjetivos típicos utilizados en relación con estas variables.

 A continuación se muestra la definición de los conjuntos difusos para cada va-

riable:

SistemaDifusoPrecio

Nivel deIngreso

Ventas

Page 139: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 139/395

Mg. Juan Gamarra Moreno  155 

VARIABLE ADJETIVOS RANGO

Precio

Barato 500 - 1500

Accesible 1000 – 2000

Caro 1500 - 2500

Nivel de Ingre-so ($)

Bajo 100 –500

Medio 300 - 800

Alto 600 – 1000

Ventas

($)

Baja 10 –30 (x 103)

Normal 10 –50 (x 103)

Alta 30 –50 (x 103)

La representación de las funciones de pertenencia se muestra en las figuras3.24, 3.25 y 3.26.

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

500 1000 1500 2000 2500

Barato

AccesibleCaro

Page 140: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 140/395

 

156  Tópicos y Aplicaciones de la Inteligencia Artificial 

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

Figura 3.26 Funciones de pertenencia para la variable Ventas mensuales

3.6.10. DEFINICIÓN DE LA REGLAS DIFUSAS 

Para definir las reglas utilizamos la siguiente tabla de decisiones:

10 20 30 40 50

100 200 300 500 600 800 900 1000

Bajo Medio Alto

Baja Normal Alta

Page 141: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 141/395

Mg. Juan Gamarra Moreno  157 

VARIABLES DE ENTRADA VARIABLE DE SA-LIDA

Precio

(barato, accesi-

 ble y caro)

 Nivel de ingre-so

(bajo, medio yalto)

 Ventas

(baja, normal y

alta)

Barato Bajo Baja

Barato Medio Normal

Barato Alto Alta

Accesible Bajo Baja

Accesible Medio Baja

Accesible Alto Normal

Caro Bajo Baja

Caro Medio Baja

Caro Alto Normal

Las reglas serán:

----------------------------------------RULE NUMBER: 1IF:

PRECIO DE COMPUTADORA BARATO and NIVEL DE INGRESO CLIENTE BAJO 

THEN:VENTAS MENSUALES BAJA 

----------------------------------------RULE NUMBER: 2IF:

PRECIO DE COMPUTADORA BARATO and NIVEL DE INGRESO CLIENTE MEDIO 

THEN:

VENTAS MENSUALES NORMAL----------------------------------------RULE NUMBER: 3IF:

PRECIO DE COMPUTADORA BARATO and NIVEL DE INGRESO CLIENTE ALTO 

THEN:VENTAS MENSUALES ALTA 

----------------------------------------RULE NUMBER: 4IF:

PRECIO DE COMPUTADORA ACCESIBLE and NIVEL DE INGRESO CLIENTE BAJO 

Page 142: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 142/395

 

158  Tópicos y Aplicaciones de la Inteligencia Artificial 

THEN:VENTAS MENSUALES BAJA 

----------------------------------------RULE NUMBER: 5IF:

PRECIO DE COMPUTADORA ACCESIBLE and NIVEL DE INGRESO CLIENTE MEDIO THEN:

VENTAS MENSUALES BAJA ----------------------------------------RULE NUMBER: 6 IF:

PRECIO DE COMPUTADORA ACCESIBLE 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: 8IF:

PRECIO DE COMPUTADORA CARO 

and NIVEL DE INGRESO CLIENTE MEDIO THEN:

VENTAS MENSUALES BAJA ----------------------------------------RULE NUMBER: 9IF:

PRECIO DE COMPUTADORA CARO and NIVEL DE INGRESO CLIENTE ALTO 

THEN:VENTAS MENSUALES NORMAL

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

3.6.11. CONSTRUIR EL SISTEMA

Esta tarea involucra la codificación de los conjuntos difusos, reglas y procedi-mientos para desarrollar funciones de lógica difusa tal como la inferencia difu-sa. Se puede construir el sistema utilizando un lenguaje de programación oconstruir el sistema utilizando un Shell.

3.6.12. PROBAR EL SISTEMA

Esta tarea sirve para ver si el sistema alcanza las especificaciones dados en ladefinición del problema.

Page 143: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 143/395

Mg. Juan Gamarra Moreno  159 

Para el ejemplo que se esta desarrollando se probará con los siguientes datosde entrada:

Precio de la computadora = 1400

Nivel de Ingreso del Cliente = 450El grado de pertenencia para la variable Precio de la Computadora se muestraen la figura 3.27

Figura 3.27 Grado de pertenencia para la variable Precio de la Computadora

El grado de pertenencia a los conjuntos difusos del precio de la computadoraes:

μbarato(precio) = 0.2

μaccesible(precio) = 0.8

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

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

500 1000 1500 2000 2500

100 200 300 500 600 800 900 1000

BaratoCaro

Bajo Medio Alto

Accesible

1400

450

Page 144: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 144/395

 

160 Tópicos y Aplicaciones de la Inteligencia Artificial 

El grado de pertenencia a los conjuntos difusos del Nivel de ingreso del clientees:

μbajo(Nivel de ingreso) = 0.167

μmedio(Nivel de ingreso) = 0.5Las reglas que se dispararán son las reglas 1, 2, 4 y 5 con las siguientes ca-racterísticas:

----------------------------------------RULE NUMBER: 1IF:

PRECIO DE COMPUTADORA BARATO (0.2) and NIVEL DE INGRESO CLIENTE BAJO (0.167) 

THEN:VENTAS MENSUALES BAJA (FCvmb=0.167) 

----------------------------------------RULE NUMBER: 2IF:

PRECIO DE COMPUTADORA BARATO (0.2) and NIVEL DE INGRESO CLIENTE MEDIO (0.5) 

THEN:VENTAS MENSUALES NORMAL (FCvmn=0.2) 

----------------------------------------RULE NUMBER: 4IF:

PRECIO DE COMPUTADORA ACCESIBLE (0.8) and NIVEL DE INGRESO CLIENTE BAJO (0.167) 

THEN:VENTAS MENSUALES BAJA (FCvmb=0.167) 

----------------------------------------RULE NUMBER: 5IF:

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 teniendoen cuenta las reglas 1, 4 y 5.

Page 145: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 145/395

Mg. Juan Gamarra Moreno  161 

RULE NUMBER: 1 (FCR1=FCvmb=0.167) ----------------------------------------RULE NUMBER: 4 (FCR4=FCvmb=0.167) ----------------------------------------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 Men suales es BAJA (Facto r de Certeza = 0.653) y es NORMAL(Facto r de Certeza = 0.2) 

3.6.13. DEFUZZIFICACIÓN DE LA VARIAB LE DE SALIDA

Para defuzzificar la variable de salida, se tiene en cuenta el grado de perte-nencia de las conclusiones, de aquellas reglas que se dispararon.

----------------------------------------RULE NUMBER: 1IF:

PRECIO DE COMPUTADORA BARATO (0.2) and NIVEL DE INGRESO CLIENTE BAJO (0.167) 

THEN:VENTAS MENSUALES BAJA ( μ (y1)=FCvmb=0.167) 

----------------------------------------RULE NUMBER: 2IF:

PRECIO DE COMPUTADORA BARATO (0.2) and NIVEL DE INGRESO CLIENTE MEDIO (0.5) 

THEN:VENTAS MENSUALES NORMAL ( μ (y2)=FCvmn=0.2) 

----------------------------------------RULE NUMBER: 4IF:

PRECIO DE COMPUTADORA ACCESIBLE (0.8) and NIVEL DE INGRESO CLIENTE BAJO (0.167) 

Page 146: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 146/395

 

162  Tópicos y Aplicaciones de la Inteligencia Artificial 

THEN:VENTAS MENSUALES BAJA ( μ (y3)=FCvmb=0.167) 

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

RULE NUMBER: 5IF:PRECIO DE COMPUTADORA ACCESIBLE (0.8) 

and NIVEL DE INGRESO CLIENTE MEDIO (0.5) THEN:

VENTAS MENSUALES BAJA ( μ (y4)=FCvmb=0.5) 

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

Una vez ubicado el grado de pertenencia de las conclusiones, se debe encon-trar el centroide para los conjuntos difusos BAJA Y NORMAL. Este procedi-miento se muestra en la figura 3.29.

Para defuzzificar las ventas mensuales se utilizan la siguiente expresión:

 N 

 K 

 K 

 N 

 K 

 K  K 

Y Y 

VARIABLE 

1

1

 

 

 

Donde:

YK = Centroide del conjunto difuso involucrado en la conclusión, cuando sedispara una regla.

μ(YK)= Grado de pertenencia al conjunto difuso de la conclusión.

Para el ejemplo que estamos desarrollando y1, y2, y3 y y4 son los centroidesde los conjuntos difusos que están en las conclusiones de las reglas 1, 2, 4 y 5respectivamente.

Page 147: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 147/395

Mg. Juan Gamarra Moreno  163 

Figura 3.29 Grado de pertenencia para la variable Ventas mensuales

La venta mensual es:

Venta = y1*μ(y1)+ y2*μ(y2)+ y3*μ(y3)+ y4*μ(y4)

Mensual μ(y1)+ μ(y2)+ μ(y3)+ μ(y4)

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

Mensual 0.167 + 0.2 + 0.167 + 0.5

Venta = 19.272534 x 103 

Mensual

 Venta = 19272.5 = $ 19273 (Respuesta)

 Mensual

3.6.14. EJEMPLO 2 DEL USO DE LÓGICA DIFUSA

Un ejemplo adicional se muestra en elapéndice B.

10 20 30 40 50

BajaNormal Alta

Y1=Y3=Y4=Centroide BAJA=16.7 Y2=Centroide NORMAL = 30

Page 148: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 148/395

 

164 Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 149: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 149/395

Mg. Juan Gamarra Moreno  165 

CAPITULO CUATROAPRENDIZAJE CON REDES NEURONALES

ARTIFICIALES

Una red neuronal artificial es, básicamente, el resultado de los intentos por re-producir mediante computadores el funcionamiento del cerebro humano. Suprincipal aplicación es en torno a las tareas en que los seres humanos fácil-mente superan a los computadores tradicionales, como en procesamiento de

señales, procesamiento de imágenes, procesamiento de voz, en robótica yotros.

Nuestro cerebro está formado por miles de millones de neuronas interconec-tadas entre sí en forma variable y compleja. Cada neurona recibe señales delas otras neuronas, o señales provenientes del exterior de la red, las procesa,ponderando o dándole distinta importancia a cada una de ellas, y genera unaúnica señal de salida que se transmite a las otras neuronas.

La información que procesa una red neuronal se encuentra dispersa entre to-das sus interconexiones, lo que la hace fundamentalmente diferente a un

computador tradicional, en que la información se encuentra totalmente locali-zada y no distribuida como en este caso. Esta cualidad hace que las redesneuronales posean una gran tolerancia a fallas.

4.1. FUNDAMENTOS B IOLÓGICOS 

La figura 4.1 muestra el modelo biológico de la neurona, elemento base de lasredes de neuronas.

Page 150: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 150/395

 

166  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 4.1. Modelo de la Neurona Biológica

Como se aprecia en esta figura, cada neurona en el cerebro está compuestabásicamente por un cuerpo, axones y dendritas. Las dendritas forman un "cepi-

llo filamentoso" muy fino que rodea el cuerpo de la neurona. El axón puedeconsiderarse como un tubo largo y fino que se subdivide en numerosas ramasque terminan en pequeños bulbos, los cuales tienen contacto con las dendritasde las otras células. La pequeña separación entre una terminación y una den-drita es llamada sinapsis. El axón de una neurona puede formar conexionessinápticas con muchas otras neuronas.

Funcionalmente, las dendritas reciben señales desde otras células a través delos puntos de conexión llamados sinapsis. La fuerza de una conexión dada esdeterminada por la eficiencia de la transmisión sináptica. Desde ahí las señalesson pasadas al cuerpo de la célula. Las señales que llegan de las dendritaspueden ser excitatorias o inhibitorias, y si la suma ponderada de éstas, realiza-da dentro del cuerpo de la neurona, supera su "umbral de activación" dentro deun tiempo suficiente, la neurona se disparará, enviando un impulso nervioso através de su axón.

4.2. LA NEURONA ARTIFICIAL

En la figura 4.2 se presenta el esquema típico de la neurona artificial.

W 1 j

W 2 j

W n j

Z j = W i jX i

X 1

X 2

X n

 A x o n e s S i n a p s i s D e n d r i t a s C u e r p o d e l a N e u r o n aA x ó

Y

.

:

: F ( Z j )

 

Figura 4.2: Modelo de la Neurona Artificial

Page 151: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 151/395

Mg. Juan Gamarra Moreno  167 

El cuerpo de la neurona será a menudo representada por la suma ponderadade las entradas, Zj, seguida por una función lineal o no lineal, Yj = F( Zj). Laeficiencia sináptica es representada por los "pesos de interconexión", Wij. Lafunción F(Zj) es llamada "función de activación", que usa los valores de entra-da para determinar la actividad de la neurona. El modelo de la neurona es lla-

mado neurona de McCulloch-Pitts .

4.2.1. PESOS DE INTERCONEXIÓN 

Los pesos de interconexión, representan la fuerza de interconexión entre lasneuronas, y pueden ser positivos (excitatorios) o negativos (inhibitorios); ade-más pueden ser fijos o adaptables. Las redes con pesos adaptables usan leyesde aprendizaje para ajustar los valores de la fuerza de interconexión. Si la redneuronal usa pesos fijos las tareas a ser ejecutadas deben estar bien definidasa priori.

4.2.2. FUNCIONES DE ACTIVACIÓN 

Existen distintos tipos de redes neuronales que usan diferentes funciones deactivación, F(Z), pero la estructura interna de la neurona , es decir la sumaponderada seguida por la función F(Z), es común en la mayoría de las redes.Entre las funciones de activación más usadas y conocidas se encuentran lasque se muestran en la figura 4.3.

Figura 4.3. Funciones de Activación

Page 152: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 152/395

 

168  Tópicos y Aplicaciones de la Inteligencia Artificial 

4.3. REDES DE NEURONAS 

Una red de neuronas consiste en varios de estos elementos (neuronas) traba- jando juntos. Usualmente estos elementos se organizan en grupos conocidoscon el nombre de capas. Una red típica consiste en una sucesión de capas

conectadas entre ellas en forma total o aleatoria. Estas redes poseen dos ca-pas que tienen contacto con el exterior, que son la capa de entrada y la de sa-lida. Las capas que no se conectan con el exterior reciben el nombre de capasocultas. La figura 4.4 presenta el esquema típico de una red de neuronas.

4.3.1. REDES MONOCAPA (1 CAPA ) 

En las redes monocapa, como la red de HOPFIELD y la red BRAIN-STATE-IN- A-BOX, se establecen conexiones laterales entre las neuronas que pertenecena-la única capa que constituye la red. También pueden existir conexiones au-

torrecurrentes (salida de una neurona conectada a su propia entrada), aunqueen algún modelo, como el de HOPFIELD, esta recurrencia no se utiliza.

:

:

:

:

:

:

C a p a d e e n t r a d a C a p a e s c o n d i d a C a p a d e s a l i d 

Figura 4.4 Esquema típico de una red de neuronas

Una topología equivalente a la de las redes de 1 capa es la denominada topo-logía crossbar (barras cruzadas). Una red de este tipo (por ejemplo, la redLEARNING MATRIX) consiste en una matriz de terminales (de entrada y sali-da) o barras que se cruzan en unos puntos a los que se les asocia un peso.Esta representación crossbar suele utilizarse como etapa de transición cuandose pretende implementar físicamente una red monocapa, puesto que es relati-vamente sencillo desarrollar como hardware una estructura como la indicada(por ejemplo, las barras cruzadas serían cables, y los puntos de conexión, re-sistencias cuyos valores representarían los pesos de la red).

Finalmente, hay que indicar que las redes monocapa se utilizan típicamente entareas relacionadas con lo que se conoce como autoasociación; por ejemplo,

Page 153: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 153/395

Mg. Juan Gamarra Moreno  169 

para regenerar informaciones de entrada que se presentan a la red incompletao distorsionada.

En la tabla 4.1 se muestran las características topológicas de los modelos deredes monocapa más conocidos.

Tabla 4.1. modelos de redes monocapa más conocidos.

TIPOS DE CONEXIONES MODELO DE RED

CONEXIONESLATERALESEXPLÍCITAS

CONEXIONESAUTORRE-CURRENTES

BRAIN-STATE-IN-A-BOXADDITIVE GROSSBERG (AG)SHUNTING GROSSBERG (SG)OPTIMAL LINEAR ASOCIATIVEMEMORY

NO AUTO-RECURRENTES

HOPFIELDBOLTZMANN MACHINECAUCHY MACHINE

CROSSBAR LEARNING MATRIX (LM)

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

Figura 4.5 Red de Hopfield

4.3.2. REDES NEURONALES MULTICAPAS 

En el caso de las redes multicapas, sus unidades se clasifican en tres tipos:

Page 154: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 154/395

 

170 Tópicos y Aplicaciones de la Inteligencia Artificial 

  Unidades de entrada: al igual que el caso de la red de una sola capa, estasunidades son las que reciben el patrón de entrada directamente.

  Unidades ocultas o escondidas: estas no reciben entradas directamente yno poseen realimentación directa. Ellas permiten tener una representación

interna del patrón en cuestión.

  Unidades de salida: estas son las que entregan el resultado de la red.

Las redes multicapa son aquellas que disponen de conjuntos de neuronasagrupadas en varios (2, 3, etc.) niveles o capas. En estos casos, una formapara distinguir la capa a la que pertenece una neurona, consistiría en fijarse enel origen de las señales que recibe a la entrada y, el destino de la señal de sa-lida. Normalmente, todas las neuronas de una capa reciben señales de entra-da de otra capa anterior, más cercana a la entrada de la red, y envían las se-ñales de salida a una capa posterior, más cercana a la salida de la red. A es-

tas conexiones se les denomina conexiones hacia adelante o feedforward (Fig.4.7).

Sin embargo, en un gran número de estas redes también existe la posibilidadde conectar las salidas de las neuronas de capa posteriores a las entradas delas capas anteriores, a estas conexiones se les denomina conexiones haciaatrás o feedback (Fig. 4.6).

Figura 4.6. Red feedback 

Un modelo de red neuronal multicapa es el Perceptron multinivel o multica-pa (Figura 4.7), el cual es una red de tipo feedforward compuesta de variascapas de neuronas entre la entrada y la salida de la misma.

Las capacidades del Perceptron con dos tres y cuatro niveles o capas y conuna única neurona en el nivel de salida, se muestra en la figura 4.8.

Page 155: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 155/395

Mg. Juan Gamarra Moreno  171 

Figura 4.7 Perceptron multinivel (red feedforward multicapa) 

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

En la segunda columna se muestra el tipo de región de decisión que se puedeformar con cada una de las configuraciones. En la siguiente columna se indicael tipo de región de decisión que se formaría para el problema de la XOR. En

las dos últimas columnas se muestran las regiones formadas para resolver el

Page 156: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 156/395

 

172  Tópicos y Aplicaciones de la Inteligencia Artificial 

problema de clases con regiones mezcladas y las formas de regiones más ge-nerales para cada uno de los casos.

El Perceptron básico de dos capas (la de entrada con neuronas lineales y la desalida) sólo 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 regiónconvexa en este espacio. La región de decisión resultante será regiones con-vexas con un número de lados a lo sumo igual al número de neuronas de lasegunda capa.

Un Perceptron con cuatro capas puede formar regiones de decisión arbitraria-mente complejas. El proceso de separación en clases que se lleva a cabo con-siste en la partición de la región deseada en pequeños hipercubos (cuadradospara dos entradas de la red).

El análisis anterior demuestra que no se requieren más de cuatro capas en unared de tipo Perceptron, pues, como se ha visto una red con cuatro niveles,puede generar regiones de decisión arbitrariamente complejas.

El Perceptron es de interés histórico, dado que ha abierto el camino para eldesarrollo de otras redes neuronales, entre ellos el BackPropagation, que seanalizará más adelante.

4.4. OPERACIÓN DE UNA RED NEURONAL

Las redes neuronales operan en dos fases: aprendizaje y evocación o recuer-do.

El aprendizaje es el proceso en el cual se adaptan o modifican los pesos de lasconexiones en respuesta a un estímulo que ha sido presentado en sus entra-das y opcionalmente a su salida. El estímulo presentado a la salida correspon-de a la salida deseada para una determinada entrada; esta salida deseada de-be ser entregada por un "instructor". En tal caso se habla de un aprendizajesupervisado o entrenamiento supervisado.

La evocación o recuerdo se refiere a cómo la red procesa los estímulos pre-

sentados en sus entradas y genera una respuesta en su salida. A menudo laevocación o recuerdo es una parte del aprendizaje; esto sucede cuando la sa-lida deseada debe ser comparada con la salida actual de la red para originar laseñal de error.

4.5. ENTRENAMIENTO DE UNA RED NEURONAL

El entrenamiento de una red es todo el proceso de aprendizaje que realiza unared neuronal. Su objetivo es lograr que la aplicación de un conjunto de entra-das produzca el conjunto de salidas deseadas (o uno al menos consistente).

Page 157: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 157/395

Mg. Juan Gamarra Moreno  173 

Dicho entrenamiento se realiza aplicando secuencialmente vectores de entra-da (patrones de entrenamiento), a la vez que se ajustan los pesos de la red deacuerdo a un procedimiento predeterminado (cada modelo define su procedi-miento), los cuales convergen gradualmente a valores tales que cada vector deentrada produce el vector de salida deseado.

En cuanto a los tipos de aprendizaje, existen dos tipos: el aprendizaje supervi-sado y el no supervisado.

4.5.1. ENTRENAMIENTO SUPERVISADO 

Se selecciona un número suficientemente grande de vectores de entrada consus correspondientes vectores de salida. Cada vector de entrada se aplica a lared calculándose la salida, la que posteriormente se compara con la salidadeseada, determinando el error. Dicho error es realimentado a través de la red,

modificando los pesos de acuerdo a un algoritmo que lo minimice. Los vectoresdel conjunto de entrenamiento se aplican secuencialmente, calculando loserrores y modificando los pesos hasta que el error del conjunto total de entre-namiento converja a un nivel aceptable.

 A continuación se muestra como se realiza el entrenamiento de una red neuro-nal multicapa:

Lo primero que necesitamos son patrones de entrenamiento (cada fila dela tabla) que contengan el conocimiento de algún dominio en particular. Pa-ra nuestro ejemplo (Tabla 4.2) tenemos patrones que permiten identificar si

un animal es un mamífero (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 figura4.9.

Los 6 primeros patrones (patrones de entrada) debe suministrar a las neuronasque están en la parte superior (neuronas de entrada) y la última columna sedebe 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 patrón de entrenamiento, la prueba consiste en ingresar el pa-trón de entrada (6 primeras columnas) y esperar que se tenga la salida desea-da dada en el entrenamiento (última columna que debe ser igual o cercano a1), vea la figura 4.10.

Para esta ejecución se tiene que el valor devuelto por la red neuronal es muycercano a 1, tal como se dio en el entrenamiento (la red neuronal aprendió).

Page 158: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 158/395

 

174 Tópicos y Aplicaciones de la Inteligencia Artificial 

Tabla 4.2 Patrones de entrenamiento que permiten identificar si un animal es un mamífero (1) o unave (0)

1100010

0011100

0

1

0

0

¿Nada?

011000

011100

100110

100011

¿Tiene

plumas?

¿Pone

huevos?

¿Vuela?¿Toma

leche?

¿Tiene

pelo?

Salida(1=

Mamifer 

o

0=Ave)

Entradas

Entrenamiento de una red neuronal

 

Entrenamiento de una red

neuronal:

¿Tiene

Pelo?¿Toma

leche?¿Vuela?

¿Pone

Huevos?¿Tiene

Plumas? ¿Nada?

Salida

 

Figura 4.9 Red neuronal que permite tomar los patrones de la tabla 4.2.

Page 159: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 159/395

Mg. Juan Gamarra Moreno  175 

 Al ejecutar un programa que use el aprendizaje de esta red neuronal, con elúltimo patrón de entrenamiento, se tiene que la salida también es correcta (fi-gura 4.11).

Figura 4.10 Resultado que muestra un programa que contiene a la red neuronal entrenada de lafigura 4.9.

Figura 4.11 Resultados que muestra otra ejecución del programa que contiene a la red neuronalentrenada de la figura 4.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 sa-lida 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 generalización de la red neu-ronal. Para realizar esta prueba, suministramos a la red neuronal, sólo la ca-racterística toma leche y la red neuronal generaliza e identifica a este como unmamífero (valor cercano o igual a 1). Debemos notar que estas entradas nohan sido dadas en el entrenamiento, por lo que la respuesta que se obtiene, es

por generalización, vea la figura 4.12.

Page 160: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 160/395

 

176  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 4.12 Resultados que muestra la genearlización del programa que contiene a la red neuronalentrenada de la figura 4.9.

4.5.2. ENTRENAMIENTO NO SUPERVISADO 

El aprendizaje no supervisado ocurre cuando la red es provista sólo de los va-lores de entrada, y la red ajusta la fuerza de interconexión basada solamenteen los valores de la entrada y la salida de la red en progresión. En otras pala-bras, el proceso de entrenamiento extrae las propiedades estadísticas del con- junto de entrenamiento y agrupa vectores familiares en clases. Puesto que noes posible determinar el patrón de salida específico generado por una clase devectores en forma previa al entrenamiento, se requiere transformar la salidagenerada por la red a una forma que sea comprensible. Este tipo de entrena-miento fue desarrollado por Kohonen (1984) y otros en lo que se conocecon el nombre de la teoría de la "autoorganización".

4.6. TIPOS DE REDES NEURONALES MÁS IMPORTANTES 

La tabla 4.3 muestra el resumen de los tipos de redes más conocidos, comen-

tando esquemáticamente las aplicaciones más importantes de cada una, susventajas e inconvenientes y quién o quiénes fueron sus creadores y en quéaño.

Page 161: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 161/395

Mg. Juan Gamarra Moreno  177 

Tabla 4.3. Tipos de redes más conocidos.6 

 Nombre de la red  

 Año   Aplicaciones más importantes 

Comentarios  Limitaciones  Inventada/ Desarrollada

 por 

 Avalancha  1967 Reconoci-miento de ha-bla continua.

Controlbrazos robot.

Ninguna redsencillapuede hacertodo esto.

No es fácilalterar lavelocidad ointerpolar elmovimiento.

StephenGrossberg.

Teoría reso-nancia adapta-tiva (ART) 

1986 Reconocimientode patrones (ra-dar,

Sonar, etc.).

Sofistica-da.Poco utili-

zada.

Sensible a latranslación,distorsión y

escala.

GailCarpenter,Stephen

Gressberg.

 ADALINE / MA-DALINE

1960 Filtradode señales.

Ecualiza-dor adaptati-vo.

Modems.

Rápida, fá-cil de im-plementarcon circui-tos analó-gicos oVLSI.

Sólo es posi-ble clasifi-car espacioslinealmenteseparados.

BernandWidrow.

Back propaga-

tion

1974-

85

Síntesis

de voz desde

texto.

Control de

robots.

Predic-

ción.

Reconoci-

miento de pa-

trones.

Red más popu-

lar. Numerosas

aplicacio-

nes con

éxito. Fa-

cilidad de

aprendiza-

je. Poten-

te.

Necesita mu-

cho tiempo

para el

aprendizaje y

muchos ejem-

plos.

Paul Werbos,

David Par-

ker,

David

Rumelhart.

6 Hilera J, Martinez V. Redes Neuronales Artificiales: Fundamentos, modelos y Aplicacio-nes. España: Editorial RA-MA; 1995.

Page 162: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 162/395

 

178  Tópicos y Aplicaciones de la Inteligencia Artificial 

Tabla 4.3. Tipos de redes más conocidos (continuación) Nombre de la red  

 Año   Aplicaciones más importantes 

Comentarios  Limitaciones  Inventada/ Desarrolla-da por 

 Memoria aso-

ciativa bidi-

reccional

1985 Memoria hete-

roasociativa

de acceso por

contenido.

Aprendi-

za.je y ar-

quitectura

simples.

Baja capaci-

dad de alma-

cenamiento.

Los datos

deben ser

codificados.

Bart Kosko.

 Máquinas de

Boltzmann y

Cauchy

1985-

86

Reconoci-

miento de

patrones

(imágenes,

sonar y ra-

dar).

Optimiza-

ción.

Redes sim-

ples. Capa-

cidad de

representa-

ción óptima

de patro-

nes.

La máquina de

Boltzmann

necesita un

tiempo muy

largo de

aprendizaje.

Jeffrey

Hinton,

Terry

Sejnowski,

Harold Szu.

Brain-Estate-in-a-Box. 1977 Extracción de

conocimiento

de bases de 

datos

Posiblemen-

te mejor

realización

que las re-

des de

Hopfield.

Realización y

potenciales

aplicaciones

no estudiadas

totalmente.

James

Anderson

Page 163: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 163/395

Mg. Juan Gamarra Moreno  179 

Tabla 4.3. Tipos de redes más conocidos (continuación)

 Nombre de la red  

 Año   Aplicaciones más importantes 

Comentarios  Limitaciones  Inventada/ Desarrolla-da por 

Cerebellatron  1969 Control del

movimiento de

los brazos de

un robot.

Semejante a

Avalancha.

Requiere com-

plicadas en-

tradas de

control.

David Marr,

James Al-

bus,

Andres

Pellionez.

Counter-

 propagation

1986 Comprensión

de imágenes.

Combinación

de Per-

ceptron y

TPM.

Numerosas

neuronas y

conexiones.

Robert He-

cht-

Nielsen

Hopfield   1982 Reconstruc-

ción de pa-

trones y

optimización.

Puede im-

plementarse

en VLSI.

Fácil de

conceptua-

lizar

Capacidad y

estabilidad.

John

Hopfield

 Neocognitron  1978-

84

Reconocimien-

to de carac-teres manus-critos

Insensible

a la Trans-lación, ro-tación yescala.

Requiere mu-

chos elemen-tos de proce-so, niveles yconexiones.

K. Fukushi-

ma

Perceptron  1957 Reconocimien-to de carac-teres impre-sos

La red másantigua.Construidaen HW.

No puede re-conocer ca-racteres com-plejos.

Frank Ro-senblatt

Page 164: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 164/395

 

180 Tópicos y Aplicaciones de la Inteligencia Artificial 

Tabla 4.3. Tipos de redes más conocidos (continuación)

 Nombre de la red  

 Año   Aplicaciones más importantes 

Comentarios  Limitaciones  Inventada/ Desarrolla-da por 

Self-Organizing-Map

(SOM). Topology-

Preserving-  Map (TPM). 

1980-84

Reconocimien-to de patro-nes, codifi-cación dedatos, opti-mización.

Realiza ma-pas de ca-racterísti-cas comunesde losdatosaprendidos.

Requiere mu-cho entrena-miento.

Teuvo Koho-nen

4.7. APL ICACIONES DE LAS REDES NEURONALES 

Las redes neuronales son una tecnología computacional emergente que puedeutilizarse en un gran número y variedad de aplicaciones, tanto comercialescomo militares. Se pueden desarrollar redes neuronales en un período detiempo razonable y pueden realizar tareas concretas mejor que otras tecnolo-gías convencionales, incluyendo los sistemas expertos. Cuando se implemen-tan mediante hardware (redes neuronales en chips VLSI), presentan una altatolerancia a fallos del sistema y proporcionan un grado de paralelismo en elproceso de datos muy grande. Eso hará posible insertar redes neuronales debajo coste en sistemas existentes y recientemente desarrollados.

Hay muchos tipos diferentes de redes neuronales, cada uno de los cuales tiene

una aplicación particular más apropiada. Relacionamos ejemplos de algunasaplicaciones comerciales separándolas en grupos según las distintas discipli-nas:

Biología

Aprender más acerca del cerebro y otros sistemas.

Obtención de modelos de la retina.

Empresa

Evaluación de probabilidad de formaciones geológicas y petrolíferas.

Identificación de candidatos para posiciones específicas.

Explotación de bases de datos.

Optimización de plazas y horarios en líneas de vuelo.

Reconocimiento de caracteres escritos.

Medio ambiente

Page 165: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 165/395

Mg. Juan Gamarra Moreno  181 

Analizar tendencias y patrones.

Previsión del tiempo.

Finanzas

Previsión de la evolución de los precios.

Valoración del riesgo de los créditos.

Identificación de falsificaciones.

Interpretación de firmas.

Manufacturación

Robots automatizados Y sistemas de control (visión artificial y sensoresde presión, temperatura, gas, etc.)

Control de producción en líneas de proceso.

Inspecci6n de la calidad.

Medicina

Analizadores del habla para la ayuda de audición de sordos profundos.

Diagnóstico y tratamiento a partir de síntomas y/o de datos analíticos(electrocardiograma, encefalograma, análisis sanguíneo, etc.).

Monitorización en cirugía.

Predicción de reacciones adversas a los medicamentos.

Lectores de rayos X.

Entendimiento de la causa de los ataques epilépticos.

Militares

Clasificación de las señales de radar.

Creación de armas inteligentes.

Optimización del uso de recursos escasos.

Reconocimiento y seguimiento en el tiro al blanco.

Podemos buscar hechos comunes en esta lista de aplicaciones; la mayoría deellas consisten en realizar un reconocimiento de patrones: buscar un patrón en

Page 166: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 166/395

 

182  Tópicos y Aplicaciones de la Inteligencia Artificial 

una serie de ejemplos, clasificar patrones, completar una señal a partir de valo-res parciales o reconstruir el patrón correcto partiendo de uno distorsionado.Muchos de los ejemplos tienen que trabajar con datos sensoriales y de per-cepción (señales visuales, auditivas y otras) y, otros realizan filtrado o mapeode señales de entrada. En general, los ejemplos mostrados indican que son

característicos más de las personas que de los ordenadores convencionales.

4.8. LA RED BACKPROPAGATION 6  

En 1986, Rumelhart, Hinton y Williams, basándose en los trabajos de otrosinvestigadores formalizaron un método para que una red neuronal aprendierala asociación que existe entre los patrones de entrada a la misma y las clasescorrespondientes, utilizando más niveles de neuronas que los que utilizó Ro-senblatt para desarrollar el Perceptron. Este método, conocido en general co-mo backpropagation (propagación del error hacia atrás), está basado en la ge-neralización de la regla delta y, a pesar de sus propias limitaciones, ha amplia-do de forma considerable el rango de aplicaciones de las redes neuronales.

El algoritmo de propagación hacia atrás. o retropropagación, es una regla deaprendizaje que se puede aplicar en modelos de redes con más de dos capasde células. Una característica importante de este algoritmo es la representa-ción interna del conocimiento que es capaz de organizar en la capa intermediade las células para conseguir cualquier correspondencia entre la entrada y lasalida de la red. Ya se ha mostrado en este capítulo que en muchos casos,como la resolución del problema de la OR exclusiva, es imposible encontrar lospesos adecuados para establecer la correspondencia entre la entrada y la sali-

da mediante una red sin capas intermedias. Con una capa de neuronas ocul-tas, sí es posible establecer dicha correspondencia.

De forma simplificada, el funcionamiento de una red backpropagation (back- propagation net, BPN) consiste en un aprendizaje de un conjunto predefinidode pares de entradas-salidas dados como ejemplo, empleando un ciclo propa-gación-adaptación de dos fases: primero se aplica un patrón de entrada comoestímulo para la primera capa de las neuronas de la red, se va propagando através de todas las capas superiores hasta generar una salida, se compara elresultado obtenido en las neuronas de salida con la salida que se desea obte-ner y se calcula un valor del error para cada neurona de salida. A continua-

ción, estos errores se transmiten hacia atrás, partiendo de la capa de salida,hacia todas las neuronas de la capa intermedia que contribuyan directamente ala salida, recibiendo el porcentaje de error aproximado a la participación de laneurona intermedia en la salida original. Este proceso se repite, capa por ca-pa, hasta que todas las neuronas de la red hayan recibido un error que descri-ba su aportación relativa al error total. Basándose en el valor del error recibi-do, se reajustan los pesos de conexión de cada neurona. de manera que en lasiguiente vez que se presente el mismo patrón, la salida esté más cercana a ladeseada; es decir, el error disminuya.

La importancia de la red backpropagation consiste en su capacidad de auto-

adaptar los pesos de las neuronas de las capas intermedias para aprender la relación que existe entre un conjunto de patrones dados como ejemplo y sus

Page 167: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 167/395

Mg. Juan Gamarra Moreno  183 

salidas correspondientes. Para poder aplicar esa misma relación, después delentrenamiento, a nuevos vectores de entrada con ruido o incompletas, dandouna salida activa si la nueva entrada es parecida a las presentadas durante elaprendizaje. Esta característica importante, que se exige a los sistemas deaprendizaje, es la capacidad de generalización, entendida como la facilidad de

dar salidas satisfactorias a entradas que el sistema no ha visto nunca en sufase de entrenamiento. La red debe encontrar una representación interna quele permita generar las salidas deseadas cuando se le dan las entradas de en-trenamiento, y que pueda aplicar, además, a entradas no presentadas durantela etapa de aprendizaje para clasificarlas según las características que com-partan con los ejemplos de entrenamiento.

4.8.1. LA REGLA DELTA GENERAL IZADA

La regla propuesta por Widrow en 1960 (regla delta) ha sido extendida a redes

con capas intermedias (regla delta generalizada) con conexiones hacia adelan-te (feedforward) y cuyas células tienen funciones de activación continuas (li-neales o sigmoidales), dando lugar al algoritmo de retropropagación (backpro- pagation). Estas funciones continuas son no decrecientes y derivables. Lafunción sigmoidal pertenece a este tipo de funciones, a diferencia de la funciónescalón que se utiliza en el Perceptron, ya que esta última no es derivable enel punto en el que se encuentra la discontinuidad.

Este algoritmo utiliza también una función o superficie de error asociada a lared, buscando el estado estable de mínima energía o de mínimo error a travésdel camino descendente de la superficie del error. Por ello, realimenta el error 

del sistema para realizar la modificación de los pesos en un valor proporcionalal gradiente decreciente de dicha función de error.

FUNCIONAMIENTO DEL ALGORITMO 

El método que sigue la regla delta generalizada para ajustar los pesos es exac-tamente el mismo que el de la regla delta utilizada en el Perceptron y, ADALI-NE; es decir, los pesos se actualizan de forma proporcional a la delta, o dife-rencia entre la salida deseada y la obtenida ( = sal. deseada - sal. obtenida).

Dada una neurona (unidad Ui) y la salida que produce, yi (Figura 4.13), el cam-bio que se produce en el peso de la conexión que une la salida de dicha neu-rona con la unidad U j (w ji) para un patrón de aprendizaje p determinado es:

pi pj  ji yt w  1  

En donde el subíndice p se refiere al patron de aprendizaje concreto, y es laconstante o tasa de aprendizaje.

Page 168: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 168/395

 

184 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 4.13 Conexión 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 elvalor concreto de pj. Por otro lado, en las redes multinivel, a diferencia de lasredes sin neuronas ocultas, en principio no se puede conocer la salida desea-da de las neuronas de las capas ocultas para poder determinar los pesos enfunción del error cometido. Sin embargo, inicialmente sí podemos conocer lasalida deseada de las neuronas de salida. Según esto, si consideramos launidad  U  j de salida (Figura 4.13), entonces definimos

  j pj pj pj net   f   yd  1  

donde dpj es la salida deseada de la neurona j para el patrón p y net  j  es la en-trada neta que recibe la neurona j.

Esta fórmula es como la de la regla delta, excepto en lo que se refiere a la de-rivada de la función de transferencia. Este término representa la modificaciónque hay que realizar en la entrada que recibe la neurona j. En el caso de quedicha neurona no sea de salida, el error que se produce estará en f unción delerror que se cometa en las neuronas que reciban como entrada la salida dedicha neurona. Esto es lo que se denomina procedimiento de propagación delerror hacia atrás.

Según esto, en el caso de que U  j  no sea una neurona de salida (ver Figura4.14), el error que se produce está en función del error que se comete en lasneuronas que reciben como entrada la salida de Uj:

 jkj

 pk  pj net  f  w 1 

  

   

donde el rango de k cubre todas aquellas neuronas a las que está conectada lasalida de U  j. 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á conec-

Page 169: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 169/395

Mg. Juan Gamarra Moreno  185 

tada la salida de ésta, multiplicando cada uno de ellos por el peso de la cone-xión.

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

 ADICIÓN DE UN MOMENTO EN LA REGLA DELTA GENERALIZADA 

El método de retropropagación del error, también conocido como del gradientedescendente, requiere un importante número de cálculos para lograr el ajustede los pesos de la red. En la implementación del algoritmo, se toma una ampli-tud de paso que viene dada por la tasa de aprendizaje . A mayor tasa deaprendizaje, mayor es la modificación de los pesos en cada iteración, con loque el aprendizaje será más rápido, pero, por otro lado. puede dar lugar a osci-laciones. Rumelhart, Hinton y Williams sugirieron que para filtrar estas oscila-ciones se añada en la expresión del incremento de los pesos un término (mo-

mento), , de manera que dicha expresión quede:

11 t wt w yt wt w   ji  ji pi pj  ji  ji  

 

t w yt w   ji pi pj  ji   1  

Page 170: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 170/395

 

186  Tópicos y Aplicaciones de la Inteligencia Artificial 

donde es una constante (momento) que determínale efecto en t+1 del cam-bio de los pesos en el instante t.

Con este momento se consigue la convergencia de la red en menor número deiteraciones, ya que si en t el incremento de un peso era positivo y en t+l tam-

bién, entonces el descenso por la superficie de error en t+l es mayor. Sin em-bargo, si en t el incremento era positivo y en t+l es negativo, el paso que se daen t+1 es más pequeño, lo cual es adecuado, ya que eso significa que se hapasado por un mínimo y que los pasos deben ser menores para poder alcan-zarlo.

Resumiendo, el algoritmo backpropagation queda finalmente:

11 t wt wt w  ji  ji  ji  

t w yt wt w  ji pi pj  ji  ji

  1

 

donde:

  j pj pj pj net   f   yd  1

 

si U j es una neurona de salida y

 jkj

 pk  pj net  f  w 1 

  

   

si U j 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 unacapa de salida con m neuronas y al menos una capa oculta de neuronas inter-nas. Cada neurona de una capa (excepto las de entrada) recibe entradas detodas las neuronas de la capa anterior y envía su salida a todas las neuronasde la capa posterior (excepto las de salida). No hay conexiones hacia atrásfeedback ni laterales entre neuronas de la misma capa.

La aplicación del algoritmo backpropagation tiene dos fases, una hacia adelan-te y otra hacia atrás. Durante la primera fase el patrón de entrada es presenta-do a la red y propagado a través de las capas hasta llegar a la capa de salida.Obtenidos los valores de salida de la red, se inicia la segunda fase, comparán-

dose estos valores con la salida esperada para obtener el error. Se ajustan lospesos de la última capa proporcionalmente al error. Se pasa a la capa anterior 

Page 171: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 171/395

Mg. Juan Gamarra Moreno  187 

con una retropropagación del error  (backpropagation ), ajustando conveniente-mente los pesos y continuando con este proceso hasta llegar a la primera ca-pa. De esta manera se han modificado los pesos de las conexiones de la redpara cada ejemplo o patrón de aprendizaje del problema, del que conocíamossu valor de entrada y la salida deseada que debería generar la red ante dicho

patrón (fig. 4.15).

 A diferencia de la regla delta en el caso del Perceptron, la técnica backpropa-gation o generalización de la regla delta, requiere el uso de neuronas cuya fun-ción de activación sea continua, y por tanto, diferenciable. Generalmente, lafunción utilizada será del tipo sigmoidal (Fig. 4.16).

 A continuación se presentan, a modo de síntesis. los pasos y fórmulas a utilizar para aplicar el algoritmo de entrenamiento:

Paso 1

Inicializar los pesos de la red con valores pequeños aleatorios.

Paso 2

Presentar un patrón de entrada, Xp: xp1,.xp2,...,xpn, y especificar la salidadeseada que debe generar la red: d1, d2,..., dM (si la red se utiliza como unclasificador, todas las salidas deseadas serán cero, salvo una, que será la dela clase a la que pertenece el patrón de entrada).

Paso 3

Calcular la salida actual de la red, para ello presentamos las entradas a la redy vamos calculando la salida que presenta capa hasta llegar a la capa de sali-da é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 delas neuronas de entrada.

Para una neurona j oculta:

 N 

i

h

 j pi

h

 ji

h

 pj xwnet 1

   

en donde el índice h se refiere a magnitudes de la capa oculta (hidden); elsubíndice p, al p-ésimo vector de entrenamiento, y j a la j-ésima neuronaoculta. El término puede ser opcional, pues actúa como una entradamás.

Page 172: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 172/395

 

188  Tópicos y Aplicaciones de la Inteligencia Artificial 

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

Page 173: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 173/395

Mg. Juan Gamarra Moreno  189 

Figura 4.16 Función de activación sigmoidal: y=1/1+e-x 

Se calculan las salidas de las neuronas ocultas:

h

 pj

h

 j pj net   f   y  

Se realizan los mismos cálculos para obtener las salidas de las neuronasde salida (capa o: output)

 L

 j

o

k  pj

o

kj

o

 pk  ywnet 1

   

o

 pk 

o

k  pk  net   f   y

 

Paso 4

Calcular los términos de error para todas las neuronas.

Si la neurona k es una neurona de la capa de salida, el valor de la delta es:

Page 174: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 174/395

 

190 Tópicos y Aplicaciones de la Inteligencia Artificial 

o

 pk 

o

k  pk  pk 

o

 pk  net   f   yd 1

 

La función f , como se citó anteriormente, debe cumplir el requisito de ser deri-vable, lo que implica la imposibilidad de utilizar una función escalón. En gene-ral, disponemos de dos formas de función de salida que nos pueden servir: lafunción lineal de salida (f k(net jk) = net jk) y la función sigmoidal representada enla figura 4.16 y definida por la expresión:

 jk net  jk k 

enet   f  

1

1

 

La selección de la función de salida depende de la forma en que se decida re-presentar los datos de salida: si se desea que las neuronas de salida sean bi-narias, se utiliza la función sigmoidal, puesto que esta función es casi biestabley, además, derivable. En otros casos es tan aplicable una función como otra.

Para la función lineal, tenemos: 11

o

k   f   mientras que la derivada de una

función f sigmoidal es:

 pk  pk 

o

o

o

k  y y  f    f    f   111

 

por lo que los términos de error para las neuronas de salida quedan:

 pk  pk 

o

 pk  yd   

para la salida lineal, y

 pk  pk  pk  pk 

o

 pk  y y yd  1  

para la salida sigmoidal.

Si la neurona j no es de salida, entonces la derivada parcial del error no puedeser evaluada directamente. Por tanto, se obtiene el desarrollo a partir de valo-res que son conocidos y otros que pueden ser evaluados.

La expresión obtenida en este caso es:

Page 175: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 175/395

Mg. Juan Gamarra Moreno  191 

o

kj

o

 pk 

h

 pj

h

 j

h

 pj wnet  f   1

 

donde observamos que el error en las capas ocultas depende de todos los

términos de error de la capa de salida. De aquí surge el término de propaga-ción hacia atrás. En particular, para la función sigmoidal:

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 sumade los errores conocidos que se producen en las neuronas a las que está co-nectada la salida de ésta, multiplicado cada uno de ellos por el peso de la co-

nexión. Los umbrales internos de las neuronas se adaptan de forma similar,considerando que están conectados con pesos desde entradas auxiliares devalor constante.

Paso 5

Actualización de los pesos

Para ello, utilizamos el algoritmo recursivo, comenzando por las neuronas desalida y trabajando hacia atrás hasta llegar a la capa de entrada, ajustando lospesos de la forma siguiente:

Para los pesos de las neuronas de la capa de salida:

11 t wt wt w o

kj

o

kj

o

kj  

pj

o

 pk 

o

kj yt w  1  

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

11 t wt wt w h

  ji

h

  ji

h

  ji  

pi

h

 pj

h

  ji xt w  1  

En ambos casos, para acelerar el proceso de aprendizaje, se puede añadir un

término momento de valor: 1

t wt wo

kj

o

kj    

o

kj

o

 pk  pj pj

h

 pj w y y 1

Page 176: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 176/395

 

192  Tópicos y Aplicaciones de la Inteligencia Artificial 

en el caso de la neurona de salida, y

1 t wt w h

  ji

h

  ji    

cuando se trata de una neurona oculta.

Paso 6

El proceso se repite hasta que el término de error 

 M 

 pk  p E 1

2

2

1

 

resulta aceptablemente pequeño para cada uno de los patrones aprendidos.

4.9. IMPLEMENTACIÓN DE APL ICACIONES CON REDES NEURONALES 

Para la implementación de aplicaciones se utiliza el shell NEUROSHELL y elVisual Basic .NET.

4.9.1. DETECCIÓN DE OBSTÁCULOS POR MEDIO DE UN ROBOT 

Descripción del problema7 :

Un robot es un dispositivo automático que realiza acciones específicas, quedependen de las necesidades del proceso en que se encuentre involucrado, eneste caso se tiene un robot que cuenta con cuatro sensores de proximidad endistintas ubicaciones que permanentemente detectan si hay objetos que seencuentren a una distancia superior o inferior a la preestablecida, con base enesto se decide si dar marcha adelante o atrás a cada uno de los dos motores

que posee; en las lecturas de los sensores podrían darse 16 posibles combi-naciones (16=24) y para cada combinación cada uno de los dos motores podríadar marcha adelante o marcha atrás (figura 4.17).

El comportamiento del robot lo describe la tabla 4.4, cuando los sensores de-tecten un objeto que se encuentra a una distancia inferior a la predeterminadase dirá que el objeto se encuentra cerca y esto se representa por medio de un1 y cuando se detecte un objeto que se encuentra a una distancia mayor que lapredeterminada se dirá que el objeto esta lejos lo cual se indica con un  –1; de-pendiendo de estas lecturas los motores podrán dar marcha adelante, lo quese representará por un 1 o dar marcha atrás con un –1.

7 Universidad Tecnológica de Pereira. Colombia.

Page 177: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 177/395

Mg. Juan Gamarra Moreno  193 

Figura 4.17 Robot

Tabla 4.4 Comportamiento del robot

S1  S2  S3  S4  M1  M2 

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 

Justificación del tipo de red 

Este tipo de problema generalmente es resuelto suministrándole al robot unabase de datos que contiene todas las posibles situaciones que se podrían pre-sentarse y sus respectivas soluciones, en este caso se necesitaría almacenar las respuestas para ambos motores ante las 16 posibles combinaciones en laslecturas de los sensores, cuando el número de variables de entrada y el núme-ro de salidas es mucho mayor, la cantidad de datos necesarios para especifi-car cada posible situación crece indefinidamente, debido a esto se requeriríandispositivos con gran capacidad de almacenamiento; en contraste una red neu-ronal puede entrenarse con un número representativo de patrones y aprender el comportamiento del sistema utilizando dispositivos de menos capacidad dealmacenamiento y costo. 

Page 178: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 178/395

 

194 Tópicos y Aplicaciones de la Inteligencia Artificial 

IMPLEMENTACION EN NEUROSHELL 

El ingreso al programa al NEUROSHELL se muestra en la figura 4.18.

Figura 4.18 Ingreso al Neuroshell

Luego del ingreso elija FILE, NEW e ingrese un nombre de archivo, como en lafigura 4.19 (no escriba ninguna extensión para el archivo).

Figura 4.19.

Elija Beginner´s Neural Networks, realice click en el icono (figura 4.20).

Page 179: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 179/395

Mg. Juan Gamarra Moreno  195 

Figura 4.20

Seleccione Data Entry (figura 4.21) e ingrese los datos de la tabla 4.4, paraentrenar la red neuronal (figura 4.22). Se sugiere para el entrenamiento dupli-car estos datos dos veces salvo el titulo de cada columna.

Figura 4.21

Page 180: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 180/395

 

196  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 4.22

Luego de ingresar los datos cierre la ventana después de haber grabado estoscon File, Save File.

 Ahora elija el icono en la figura 4.21, en la lista desplegable variabletype selection elija input y haga clic debajo del nombre de cada entrada, estequedará marcado con I, luego elija Actual Output en la lista desplegable ante-rior y haga clic en el nombre de cada salida para la red neuronal. Ahora elija

Settings y Compute mins/maxs. Cierre la ventana.

Las figuras 4.23 al 4.29 muestran el procedimiento a seguir hasta generar elcódigo fuente en C o Visual Basic.

En la figura 4.26 elija examinar datos para analizar los datos y los errores ge-nerados a la salida.

El procedimiento de la figura 4.27 al 4.29 permite generar el código fuente enC. Para nuestro caso elegiremos Visual Basic source code.

Page 181: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 181/395

Mg. Juan Gamarra Moreno  197 

Figura 4.23

Figura 4.24

Page 182: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 182/395

 

198  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 4.25

Figura 4.26

Page 183: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 183/395

Mg. Juan Gamarra Moreno  199 

Figura 4.27

Figura 4.28

Page 184: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 184/395

 

200 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 4.29

El codigo generado en Visual Basic se genera en un archivo que tiene la ex-tensión .VB y es un procedimiento en Visual Basic; que contiene el conoci-

miento en una red neuronal. Para nuestro caso el archivo es ROBOT.VB y seencuentra en la carpeta APLICACIÓN ROBOT del CD que acompaña al libro,cuyo contenido es:

' Insert this code into your VB program to fire theD:\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 doubleStatic 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) = 1inarray(1) = (inarray(1) + 1) / 2

Page 185: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 185/395

Mg. Juan Gamarra Moreno  201 

if (inarray(2)<-1) then inarray(2) = -1if (inarray(2)> 1) then inarray(2) = 1inarray(2) = (inarray(2) + 1) / 2

if (inarray(3)<-1) then inarray(3) = -1if (inarray(3)> 1) then inarray(3) = 1

inarray(3) = (inarray(3) + 1) / 2

if (inarray(4)<-1) then inarray(4) = -1if (inarray(4)> 1) then inarray(4) = 1inarray(4) = (inarray(4) + 1) / 2

netsum = -.7532668netsum = netsum + inarray(1) * 7.551737netsum = netsum + inarray(2) * .2998328netsum = netsum + inarray(3) * 7.341322netsum = netsum + inarray(4) * -6.852577feature2(1) = 1 / (1 + exp(-netsum))

netsum = -2.495483netsum = netsum + inarray(1) * -5.648689netsum = netsum + inarray(2) * 1.05053netsum = netsum + inarray(3) * -5.979871netsum = netsum + inarray(4) * 6.870361feature2(2) = 1 / (1 + exp(-netsum))

netsum = -4.198974E-02netsum = netsum + inarray(1) * 4.999131netsum = netsum + inarray(2) * -3.897346netsum = netsum + inarray(3) * 2.603323E-05netsum = netsum + inarray(4) * -3.897321feature2(3) = 1 / (1 + exp(-netsum))

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

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

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

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

End Sub

Page 186: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 186/395

 

202  Tópicos y Aplicaciones de la Inteligencia Artificial 

 Ahora debemos generar una aplicación en Visual Basic 6.0, que nos permitautilizar el código que contiene a la red neuronal.

Iniciamos creando un formulario que permita manipular las entradas y salidasque tiene la red neuronal (figura 4.30).

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

Luego modificamos el código por defecto que tiene el formulario. El códigomodificado debe quedar tal como se muestra en el listado siguiente:

Private Sub Command1_Click()Dim e(4) As DoubleDim s(2) As Double' Asignacion de entradase(1) = Val(Text1.Text)e(2) = Val(Text2.Text)e(3) = Val(Text3.Text)e(4) = Val(Text4.Text)

' llamada a la red neuronalCall Fire_ROBOT(e, s)

' mostrar salida

If (s(1) >= 0.9 And s(1) <= 1) ThenText5.Text = " motor gira hacia adelante"

End If If (s(1) >= -1 And s(1) <= -0.9) Then

Text5.Text = " motor gira hacia atrás"End If 

If (s(2) >= 0.9 And s(2) <= 1) ThenText6.Text = " motor gira hacia adelante"

End If 

Page 187: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 187/395

Mg. Juan Gamarra Moreno  203 

If (s(2) >= -1 And s(2) <= -0.9) ThenText6.Text = " motor gira hacia atrás"

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 DoubleStatic 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) = -1If (inarray(1) > 1) Then inarray(1) = 1inarray(1) = (inarray(1) + 1) / 2

If (inarray(2) < -1) Then inarray(2) = -1If (inarray(2) > 1) Then inarray(2) = 1inarray(2) = (inarray(2) + 1) / 2

If (inarray(3) < -1) Then inarray(3) = -1If (inarray(3) > 1) Then inarray(3) = 1

inarray(3) = (inarray(3) + 1) / 2

If (inarray(4) < -1) Then inarray(4) = -1If (inarray(4) > 1) Then inarray(4) = 1inarray(4) = (inarray(4) + 1) / 2

netsum = -0.7532668netsum = netsum + inarray(1) * 7.551737netsum = netsum + inarray(2) * 0.2998328netsum = netsum + inarray(3) * 7.341322netsum = netsum + inarray(4) * -6.852577feature2(1) = 1 / (1 + Exp(-netsum))

netsum = -2.495483netsum = netsum + inarray(1) * -5.648689netsum = netsum + inarray(2) * 1.05053netsum = netsum + inarray(3) * -5.979871netsum = netsum + inarray(4) * 6.870361feature2(2) = 1 / (1 + Exp(-netsum))

netsum = -0.04198974netsum = netsum + inarray(1) * 4.999131netsum = netsum + inarray(2) * -3.897346netsum = netsum + inarray(3) * 0.00002603323netsum = netsum + inarray(4) * -3.897321feature2(3) = 1 / (1 + Exp(-netsum))

netsum = 0.1287855

Page 188: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 188/395

 

204 Tópicos y Aplicaciones de la Inteligencia Artificial 

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

netsum = 3.821959

netsum = netsum + feature2(1) * -6.030695netsum = netsum + feature2(2) * 3.957484netsum = netsum + feature2(3) * 0.00861486outarray(2) = 1 / (1 + Exp(-netsum))

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

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

End SubPrivate Sub Command2_Click()

EndEnd Sub

Notese que también se ha agregado el código generado por el Neuroshell(contenido del archivo ROBOT.VB)

Una vez modificado el código ejecutamos el programa e ingresamos las entra-das de la red neuronal y al presionar el boton “Determinar la accion de los m o-

tores del robot con una red neuronal” se debe obtener la salida que ofrece lared neuronal. Para nuestro caso se ha realizado la ejecución con las entradasdel último patrón de entrenamiento de la tabla 4.4, esta ejecución se muestraen la figura 4.31.

Figura 4.31. Ejecución del programa que utiliza la red neuronal.

Page 189: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 189/395

Mg. Juan Gamarra Moreno  205 

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 aproximación serealiza a través del siguiente código:

If (s(1) >= 0.9 And s(1) <= 1) ThenText5.Text = " motor gira hacia adelante"

End If If (s(1) >= -1 And s(1) <= -0.9) Then

Text5.Text = " motor gira hacia atrás"End If 

If (s(2) >= 0.9 And s(2) <= 1) ThenText6.Text = " motor gira hacia adelante"

End If If (s(2) >= -1 And s(2) <= -0.9) Then

Text6.Text = " motor gira hacia atrás"

End If 

4.9.2. APL ICACIÓN PARA SÍNTOMAS Y DIAGNÓSTICOS DE AUTO- MÓVILES 

Consideremos un ejemplo concreto de aplicación de síntomas y diagnósticos.Emplearemos Como base para nuestro ejemplo una aplicación de diagnósticopara automóviles. Concretamente, nos concentraremos en una aplicación quediagnostique por qué no arranca un coche. Primero se definen los distintos sín-

tomas 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 unmolinillo.

Arranque: el motor gira como si intentase arrancar, pero no es capaz defuncionar por sí mismo.

Sin chispa: al sacar el cable de una bujía y acercarlo al bloque cuando seintenta arrancar, en el motor no saltan chispas.

Cable caliente: después de intentar arrancar el motor, el cable que va de labatería a la bobina del motor de arranque está caliente.

Sin gasolina: al sacar el tubo de gasolina del carburador (o inyector) e in-tentar arrancar el motor, no sale gasolina por el tubo.

 A continuación, se consideran las posibles causas del problema, basándose enlos síntomas:

Batería: la batería está descargada

Page 190: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 190/395

 

206  Tópicos y Aplicaciones de la Inteligencia Artificial 

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 están corroídos.

Bomba de gasolina: falla la bomba de gasolina.

 Aunque nuestra lista no es una representación Completa de todos los posiblesproblemas, los síntomas podrían indicar alguno de estos problemas, o unacombinación de ellos. Para completar el ejemplo vamos a construir una matrizque indica la correspondencia de los síntomas con sus causas probables. Lamatriz se ha ilustrado en la Tabla 4.5. 

 Al inspeccionar la matriz se aprecia la variedad de problemas que puede indi-car cualquier síntoma. La matriz también ilustra el problema que encontramoscuando se intenta programar un sistema para llevar a cabo la función de diag-nóstico. Es raro que haya una correspondencia biunívoca entre síntomas ycausas. Para tener éxito, nuestro sistema automatizado debe ser capaz de co-rrelacionar muchos síntomas distintos, y, en el caso de que alguno de los sín-tomas no se aprecie o esté ausente, debe ser capaz de "llenar los espacios enblanco" del problema basándose solamente en los síntomas indicados.

Tabla 4.5. Para el problema de diagnósticos del automóvil, se hacen corresponder los síntomas conlas causas.

Causas probables Síntomas Batería Bobina Motor de

arranqueCables Distribuidor Bomba de

gasolinaNo hace nada X

Clics X X XMolinillo X X X X

Gira X X XSin chispa X X

Cable caliente X XSin gasolina X

La solución

Empleando los datos de nuestro ejemplo, será necesaria una red con sieteunidades de entrada y seis unidades de salida. Esto deja únicamente sin de-terminar el número de unidades internas (ocultas). En este caso, no hay nadaque indique cuántas unidades ocultas se van a necesitar para resolver el pro-blema, y no hay consideraciones de interfaz externa que vayan a limitar el nú-mero de unidades ocultas.

Page 191: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 191/395

Mg. Juan Gamarra Moreno  207 

Una ecuación empírica según Sierra8, para calcular el número de neuronas deuna capa oculta es:

 N 

 M 

n N 

 M  *2

*2  

donde:

M: Es el número de ejemplos con que vamos a entrenar a la red.

N: Es el número de unidades de entradas.

n: Es el número de neuronas que vamos a situar en capas intermedias

El shell Neuroshell calcula la cantidad de neuronas ocultas para la red neuro-nal que se esta implementando.

 A continuación, debemos definir los conjuntos de datos que serán utilizadospara entrenar a la red. Volviendo de nuevo a la matriz de nuestro ejemplo, sepueden considerar los datos de los vectores fila de la matriz como tramas deentrada de siete dimensiones; esto es, para cada salida de causa probable quedesearíamos que aprendiera la red, hay siete síntomas posibles que indican elproblema por su presencia o ausencia. Esta aproximación proporcionará sietepares de vectores de entrenamiento, cada uno de los cuales consta de unatrama de síntomas de siete elementos y de una trama de indicación de pro-blema formada por seis elementos.

Haremos que la existencia de un síntoma quede indicada por un 1, y que laausencia de un síntoma sea representada mediante un 0. Para cualquier vec-tor de entrada dado, la causa o causas correctas se indican mediante un 1 ló-gico en la posición correspondiente del vector de salida. Los pares de vectoresde entrenamiento que se producen por la correspondencia de la matriz de sín-tomas y problemas para este ejemplo se muestran en la tabla 4.6. Si se com-paran las tablas 4.5 y la tabla 4.6., se notarán pequeñas diferencias.

Lo único que queda ahora es entrenar a la red con estos pares de datos. Unavez que está entrenada, la red producirá una salida que identifique a la causaprobable indicada por el mapa de síntomas de entrada. La red hará esto cuan-do la entrada sea equivalente a una de las entradas de entrenamiento, tal co-mo se esperaba, y además producirá una salida, indicando la causa probabledel problema, cuando la entrada sea parecida a alguna de las entradas de en-trenamiento, pero distinta de todas ellas. Esta aplicación ilustra la capacidad dela red para realizar la "mejor suposición" (generalización) y pone de manifiestola capacidad de la red para enfrentarse a entradas de datos con ruido o incom-pletas.

1.  8 Sierra Molina, Guillermo y otros (1995). “Sistemas Expertos en Contabilidad y Ad-ministración de Empresas”. Editorial Addison Wesley. USA. 

Page 192: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 192/395

 

208  Tópicos y Aplicaciones de la Inteligencia Artificial 

Tabla 4.6. Estos pares de vectores de entrenamiento se utilizan para el problema de diagnósticosdel automóvil.

Entrada de síntomas Salida de causas probables

Nohacenada

Clics

Molinillo

Gira

Sinchispa

Cablecaliente

Singasolina

Batería

Bobina

Motordearranque

Cables

Distribuidor

Bombadegasolina

1 0 0 0 0 0 0 1 0 0 0 0 00 1 0 0 0 0 0 1 1 1 0 0 00 0 1 0 0 0 0 0 0 1 1 1 10 0 0 1 0 0 0 0 0 0 1 1 1

0 0 0 0 1 0 0 0 0 0 1 1 00 0 0 0 0 1 0 0 1 1 0 0 00 0 0 0 0 0 1 0 0 0 0 0 1

Se puede utilizar el Neuroshell, para entrenar a la red neuronal con los datosde la tabla 4.6 y se debe obtener también el codigo fuente en Visual Basic. Laimplementacion se encuentra en el CD que se adjunta al libro.

El formulario y la ejecución del programa en Visual Basic 6.0, teniendo encuenta el 4to patron de entrenamiento se muestra en la figura 4.32.

Figura 4.32. Ejecución del programa en Visual Basic 6.0, teniendo en cuenta el 4 patron de entre-namiento de la tabla 4.6.

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

Page 193: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 193/395

Mg. Juan Gamarra Moreno  209 

Private Sub Command1_Click()Dim e(7) As DoubleDim 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)

If (s(1) > 0.9 And s(1) <= 1) ThenText8.Text = "mal"

End If 

If (s(1) >= 0 And s(1) < 0.1) ThenText8.Text = "bien"End If 

If (s(2) > 0.9 And s(2) <= 1) ThenText9.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) ThenText11.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) ThenText12.Text = "mal"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) ThenText13.Text = "mal"

End If If (s(6) >= 0 And s(6) < 0.1) Then

Text13.Text = "bien"End If 

End Sub

Page 194: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 194/395

 

210 Tópicos y Aplicaciones de la Inteligencia Artificial 

' Insert this code into your VB program to fire theF:\FILES2~1\ANNOSA~1\ARCHIV~2\CAPITU~3\DIAGNO~1\DIAGNOST 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 DoubleStatic 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' outarray(1) is Batería' 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) = 0If (inarray(1) > 1) Then inarray(1) = 1inarray(1) = inarray(1)

If (inarray(2) < 0) Then inarray(2) = 0If (inarray(2) > 1) Then inarray(2) = 1inarray(2) = inarray(2)

If (inarray(3) < 0) Then inarray(3) = 0If (inarray(3) > 1) Then inarray(3) = 1inarray(3) = inarray(3)

If (inarray(4) < 0) Then inarray(4) = 0If (inarray(4) > 1) Then inarray(4) = 1inarray(4) = inarray(4)

If (inarray(5) < 0) Then inarray(5) = 0If (inarray(5) > 1) Then inarray(5) = 1inarray(5) = inarray(5)

If (inarray(6) < 0) Then inarray(6) = 0

If (inarray(6) > 1) Then inarray(6) = 1inarray(6) = inarray(6)

If (inarray(7) < 0) Then inarray(7) = 0If (inarray(7) > 1) Then inarray(7) = 1inarray(7) = inarray(7)

netsum = -0.3115481netsum = netsum + inarray(1) * 0.7032344netsum = netsum + inarray(2) * 0.1466639netsum = netsum + inarray(3) * 2.036957netsum = netsum + inarray(4) * -0.4733835netsum = netsum + inarray(5) * -0.4653012

netsum = netsum + inarray(6) * -1.454124netsum = netsum + inarray(7) * -0.7716009

Page 195: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 195/395

Mg. Juan Gamarra Moreno  211 

feature2(1) = 1 / (1 + Exp(-netsum))

netsum = -0.007483043netsum = netsum + inarray(1) * -0.7950581netsum = netsum + inarray(2) * -1.6701netsum = netsum + inarray(3) * 1.082342

netsum = netsum + inarray(4) * 0.8707346netsum = netsum + inarray(5) * -0.3615806netsum = netsum + inarray(6) * -0.6289499netsum = netsum + inarray(7) * 0.9206671feature2(2) = 1 / (1 + Exp(-netsum))

netsum = 0.3411922netsum = netsum + inarray(1) * 1.407685netsum = netsum + inarray(2) * 1.998027netsum = netsum + inarray(3) * -1.747856netsum = netsum + inarray(4) * -1.269704netsum = netsum + inarray(5) * -2.329731netsum = netsum + inarray(6) * 1.356552

netsum = netsum + inarray(7) * 1.647663feature2(3) = 1 / (1 + Exp(-netsum))

netsum = -0.2768248netsum = netsum + inarray(1) * 2.065744netsum = netsum + inarray(2) * -1.146601netsum = netsum + inarray(3) * -0.9325874netsum = netsum + inarray(4) * -1.517177netsum = netsum + inarray(5) * 0.2812504netsum = netsum + inarray(6) * -0.6556798netsum = netsum + inarray(7) * 1.173773feature2(4) = 1 / (1 + Exp(-netsum))

netsum = -0.1239126netsum = netsum + inarray(1) * -1.830723netsum = netsum + inarray(2) * 0.8275196netsum = netsum + inarray(3) * 0.2012251netsum = netsum + inarray(4) * -0.7351373netsum = netsum + inarray(5) * 0.5414248netsum = netsum + inarray(6) * 2.384689netsum = netsum + inarray(7) * -1.566727feature2(5) = 1 / (1 + Exp(-netsum))

netsum = 0.0145554netsum = netsum + inarray(1) * -0.4000922netsum = netsum + inarray(2) * -1.257582

netsum = netsum + inarray(3) * 0.8750437netsum = netsum + inarray(4) * 1.78116netsum = netsum + inarray(5) * 1.741183netsum = netsum + inarray(6) * -2.168171netsum = netsum + inarray(7) * -0.9200088feature2(6) = 1 / (1 + Exp(-netsum))

netsum = 0.3624522netsum = netsum + inarray(1) * -1.666589netsum = netsum + inarray(2) * -2.92119netsum = netsum + inarray(3) * 1.415627netsum = netsum + inarray(4) * 0.1193302netsum = netsum + inarray(5) * 0.3643235

netsum = netsum + inarray(6) * 1.332756netsum = netsum + inarray(7) * 1.651392

Page 196: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 196/395

 

212  Tópicos y Aplicaciones de la Inteligencia Artificial 

feature2(7) = 1 / (1 + Exp(-netsum))

netsum = -0.08557819netsum = netsum + inarray(1) * 0.3886256netsum = netsum + inarray(2) * -2.094244netsum = netsum + inarray(3) * -1.564476

netsum = netsum + inarray(4) * 1.770092netsum = netsum + inarray(5) * 0.9950833netsum = netsum + inarray(6) * -1.562377netsum = netsum + inarray(7) * 1.671334feature2(8) = 1 / (1 + Exp(-netsum))

netsum = -0.2997127netsum = netsum + inarray(1) * 1.399435netsum = netsum + inarray(2) * -0.1395936netsum = netsum + inarray(3) * -1.913407netsum = netsum + inarray(4) * -0.9458458netsum = netsum + inarray(5) * 2.404087netsum = netsum + inarray(6) * 0.6442617

netsum = netsum + inarray(7) * -1.377198feature2(9) = 1 / (1 + Exp(-netsum))

netsum = 0.8538765netsum = netsum + feature2(1) * 1.642975netsum = netsum + feature2(2) * -1.08525netsum = netsum + feature2(3) * 1.692052netsum = netsum + feature2(4) * 0.5226364netsum = netsum + feature2(5) * -1.016138netsum = netsum + feature2(6) * 0.3381723netsum = netsum + feature2(7) * -4.312466netsum = netsum + feature2(8) * -0.8845294netsum = netsum + feature2(9) * 0.3042739

outarray(1) = 1 / (1 + Exp(-netsum))

netsum = 0.6356097netsum = netsum + feature2(1) * -1.699543netsum = netsum + feature2(2) * -0.8347372netsum = netsum + feature2(3) * 1.740408netsum = netsum + feature2(4) * -2.244962netsum = netsum + feature2(5) * 2.778615netsum = netsum + feature2(6) * -1.380548netsum = netsum + feature2(7) * -1.0302netsum = netsum + feature2(8) * -1.023457netsum = netsum + feature2(9) * -0.1288214outarray(2) = 1 / (1 + Exp(-netsum))

netsum = 0.8881556netsum = netsum + feature2(1) * 1.621511netsum = netsum + feature2(2) * -0.03661929netsum = netsum + feature2(3) * 0.1688382netsum = netsum + feature2(4) * -1.013181netsum = netsum + feature2(5) * 2.699184netsum = netsum + feature2(6) * -1.219513netsum = netsum + feature2(7) * 0.4337809netsum = netsum + feature2(8) * -3.760823netsum = netsum + feature2(9) * -1.450161outarray(3) = 1 / (1 + Exp(-netsum))

netsum = -0.1752312netsum = netsum + feature2(1) * 0.7248147

Page 197: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 197/395

Mg. Juan Gamarra Moreno  213 

netsum = netsum + feature2(2) * 0.4916552netsum = netsum + feature2(3) * -3.363693netsum = netsum + feature2(4) * -1.489237netsum = netsum + feature2(5) * 0.3150889netsum = netsum + feature2(6) * 2.669589netsum = netsum + feature2(7) * 0.2992842

netsum = netsum + feature2(8) * 0.4325282netsum = netsum + feature2(9) * 0.1342072outarray(4) = 1 / (1 + Exp(-netsum))

netsum = -0.2363798netsum = netsum + feature2(1) * 0.8358494netsum = netsum + feature2(2) * 0.6256061netsum = netsum + feature2(3) * -3.400938netsum = netsum + feature2(4) * -1.574203netsum = netsum + feature2(5) * 0.3605849netsum = netsum + feature2(6) * 2.502021netsum = netsum + feature2(7) * 0.2546888netsum = netsum + feature2(8) * 0.5457298

netsum = netsum + feature2(9) * 0.2242781outarray(5) = 1 / (1 + Exp(-netsum))

netsum = -0.1454982netsum = netsum + feature2(1) * 0.7328083netsum = netsum + feature2(2) * 1.886714netsum = netsum + feature2(3) * 0.05207601netsum = netsum + feature2(4) * -1.110788netsum = netsum + feature2(5) * -1.82287netsum = netsum + feature2(6) * 0.5481207netsum = netsum + feature2(7) * 1.574738netsum = netsum + feature2(8) * 1.149344netsum = netsum + feature2(9) * -4.210217

outarray(6) = 1 / (1 + Exp(-netsum))

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

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

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

If (outarray(3) > 1) Then outarray(3) = 1

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

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

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

End Sub

Page 198: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 198/395

 

214 Tópicos y Aplicaciones de la Inteligencia Artificial 

4.9.3. CONCESIÓN DE AYUDA S POR ESTUDIOS 

El problema consiste en determinar cuál es el tipo de ayuda, que se puedeconceder por estudios a un trabajador en una empresa, en base a concesionesotorgadas en otros casos.

Para la concesión se toman los siguientes atributos:

salario del trabajador,

tipo de estudios a realizar, y

antigüedad en la empresa.

La empresa cuenta con la información de la tabla 4.7 referida a ayudas conce-didas en ejercicios anteriores.

Tabla 4.7. Ayudas concedidas con ejercicios anteriores

Page 199: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 199/395

Mg. Juan Gamarra Moreno  215 

Tabla 4.7. Ayudas concedidas con ejercicios anteriores (continuación)

Tabla 4.7. Ayudas concedidas con ejercicios anteriores (continuación)

Page 200: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 200/395

 

216  Tópicos y Aplicaciones de la Inteligencia Artificial 

Se puede utilizar el Neuroshell, para entrenar a la red neuronal con los datosde la tabla 4.7 y se debe obtener también el codigo fuente en Visual Basic. Laimplementacion se encuentra en el CD que se adjunta al libro.

El formulario y la ejecución del programa en Visual Basic 6.0, teniendo en

cuenta el 16 avo patrón de entrenamiento se muestra en la figura 4.33.

Figura 4.33. Ejecución del programa en Visual Basic 6.0, teniendo en cuenta el 16 avo patrón de

entrenamiento de la tabla 4.7.

4.9.4. IMPLEMENTACIÓN DE OTRAS APL ICACIONES CON REDES NEURONALES A RTIFICIAL ES 

En el CD se encuentra la implementacióndel reconocimiento de los caracteres A yB, utilizando Neuroshell y Visual Basic.NET.

Además se implementa el ejemplo de laidentificación de animales de la tabla4.2.

Page 201: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 201/395

Mg. Abraham Gamarra Moreno  217 

CAPITULO CINCO

SISTEMAS DE APRENDIZAJE INDUCTIVO YÁRBOLES DE DECISIÓN

Para la aplicación de estos sistemas de aprendizaje inductivo se parte de unconjunto de ejemplos. Cada uno de ellos debe tener la misma estructura con-

sistente en una conclusión (o decisión) y un número de características o atribu-tos que definen esa conclusión o decisión

El sistema construye un árbol de decisión que representa la relación existenteentre la conclusión-decisión y sus atributos (figura 5.1.)

5.1. ÁRBOLES DE DECISIÓN 

Características:

Cada nodo corresponde a un atributo y cada rama al valor posible de ese

atributo.

Una hoja del árbol especifica el valor esperado de la decisión.

La explicación de una determinada decisión viene dada por la trayectoriadesde la raíz a la hoja de una decisión.

Page 202: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 202/395

 

218  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 5.1. Árbol de decisión que representa la relación existente entre la conclusión-decisión y susatributos.

5.2. CONSTRUCCIÓN DE ÁRBOLES DE DEC ISIÓN 

Para la construcción vamos a partir de un ejemplo:

El problema consiste en determinar cuál es el tipo de ayuda, que se puedeconceder por estudios a un trabajador en una empresa, en base a concesionesotorgadas en otros casos.

Para la concesión se toman los siguientes atributos:

salario del trabajador,

tipo de estudios a realizar, y

antigüedad en la empresa.

La empresa cuenta con la información de la tabla 5.1 referida a ayudas conce-didas en ejercicios anteriores.

Los datos serán los ejemplos que empleará el sistema de inducción para gene-rar el árbol de decisión.

Page 203: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 203/395

Mg. Abraham Gamarra Moreno  219 

Tabla 5.1. Ayudas concedidas con ejercicios anteriores

Tabla 5.1. Ayudas concedidas con ejercicios anteriores (continuación)

Page 204: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 204/395

 

220 Tópicos y Aplicaciones de la Inteligencia Artificial 

Tabla 5.1. Ayudas concedidas con ejercicios anteriores (continuación)

La construcción lleva a cabo el siguiente proceso

Paso 1:

Cálculo de la entropía de la distribución de probabilidad resultante de dividir elconjunto de ejemplos en función de la decisión.

La entropía se calcula:

E(P)=-(p1 log2(p1) + p2 log2(p2)+. . .+ pk log2(pk))

Donde:

p1, p2, ... , pk probabilidad de ocurrencia

Para el ejemplo dado el valor de la decisión se tiene:

Valor de la decisión No de casos

25 000 2

50 000 5

75 000 4

100 000 5

Page 205: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 205/395

Mg. Abraham Gamarra Moreno  221 

La entropía es:

E(P)=-(2/16 log2(2/16) + 5/16 log2(5/16)+

4/16 log2(4/16) + 5/16 log2(5/16))

E(P)=1,92379494

Paso 2:

División del conjunto de ejemplos en función de los valores de un determinadoatributo.

Para el ejemplo elegimos el atributo salario y procedemos a dividir el conjuntode ejemplos en función del mismo, obteniendo las siguientes clases:

- T1 (Salario< 1 500)

Valor de la decisión No de Casos

25 000 0

50 000 0

75 000 0100 000 5

- T2 (1 500 <Salario<2 500 )

Valor de la decisión No de Casos

25 000 050 000 2

75 000 4

100 000 0

Page 206: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 206/395

 

222  Tópicos y Aplicaciones de la Inteligencia Artificial 

- T3 (Salario>2 500)

Valor de la decisión No de Casos

25 000 2

50 000 3

75 000 0

100 000 0

Paso 3:

Determinación de la información necesaria para identificar la clase de un ele-mento del conjunto de ejemplos dividido en clases según el atributo considera-do en el paso anterior.

La información se determina por:

Info(Ti)=E(Pi)

Y también se calcula:

Info(X,T)=T1/T Info(T1)+

T2/T Info(T2)+ . . .+

Tk/T Info(Tk)

Para el ejemplo tenemos:

Info(T1)=-[1 Log2(1)]= 0

Info(T2)=-[2/6 Log2(2/6) + 4/6 Log2(4/6)]= 0.918295834

Info(T3)=-[2/5 Log2(2/5)+ 3/5 Log2(3/5)]= 0.970950594

Info(Salario,T)=5/16 Info(T1)+6/16 Info(T2)+5/16 Info(T3) = 0.647782997

Paso 4:

Calculo de la ganancia de la información debida al atributo elegido en el paso2.

Ganancia de información(X,T)=

E(P)- Info(X,T)

Page 207: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 207/395

Mg. Abraham Gamarra Moreno  223 

Para el ejemplo la ganancia de información es:

Ganancia de información(Salario,T)=

E(P)-Info(Salario,T)=

1.92379494-0.647782997=1.276011942

Debemos realizar los mismos pasos con los otros atributos.

Paso 2-Estudios

Elegimos el atributo Estudios y procedemos a dividir el conjunto de ejemplosen función del mismo, obteniendo las siguientes clases:

- T1 (Estudios=Especialización)

VALOR DE LA DECISION No. DE CASOS 

50 000  1 

75 000  2 

100 000  1 

- T2 (Estudios=Medios )

VALOR DE LA DECISION No. DE CASOS 

100 000  1 

50 000  2 

25 000  2 

- T3 (Estudios=Superiores)

VALOR DE LA DECISION No. DE CASOS 

100 000  3 

75 000  2 

50 000  2 

Page 208: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 208/395

 

224 Tópicos y Aplicaciones de la Inteligencia Artificial 

Paso 3 -Estudios

Determinación de la información necesaria para identificar la clase de un ele-

mento del conjunto de ejemplos dividido en clases según el atributo conside-rado en el paso anterior.

La información se determina por:

Info(Ti)=E(Pi)

Y también se calcula:

Info(X,T)=T1/T Info(T1)+

T2/T Info(T2)+ . . .+

Tk/T Info(Tk)

Para el ejemplo tenemos:

Info(T1)=-[1/4 Log2(1/4)+2/4 Log2(2/4) +1/4 Log2(1/4)]=1.500000000

Info(T2)=-[1/5 Log2(1/5) + 2/5 Log2(2/5) + 2/5 Log2(2/5)]=1.521928095

Info(T3)=-[3/7 Log2(3/7)+2/7 Log2(2/7) + 2/7 Log2(2/7)]=1.556656707

Info(Estudios,T)=4/16 Info(T1)+5/16 Info(T2)+7/16 Info(T3) =1.531639839Paso 4-Estudios

Calculo de la ganancia de la información debida al atributo elegido en el paso2.

Ganancia de información(X,T)=

E(P)- Info(X,T)

Para el ejemplo la ganancia de información es:

Ganancia de información(Estudios,T)=

E(P)-Info(Estudios,T)=

1.92379494-1.531639839=

=0.392155101

Paso 2-Antigüedad

Elegimos el atributo Antigüedad y procedemos a dividir el conjunto de ejemplosen función del mismo, obteniendo las siguientes clases:

Page 209: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 209/395

Mg. Abraham Gamarra Moreno  225 

- T1 (Antigüedad =Si)

VALOR DE LA DECISION No. DE CASOS 

100 00  3 

75 000  3 

50 000  1 

25 000  1 

- T2 (Antigüedad =No )

VALOR DE LA DECISION No. DE CASOS 

100 00  2 

75 000  1 

50 000  4 

25 000  1 

Paso 3 - Antigüedad

Determinación de la información necesaria para identificar la clase de un ele-mento del conjunto de ejemplos dividido en clases según el atributo conside-rado en el paso anterior.

La información se determina por:

Info(Ti)=E(Pi)

Y también se calcula:

Info(X,T)=T1/T Info(T1)+

T2/T Info(T2)+ . . .+

Tk/T Info(Tk)

Para el ejemplo tenemos:

Page 210: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 210/395

 

226  Tópicos y Aplicaciones de la Inteligencia Artificial 

Info(T1)=-[3/8 Log2(3/8)+3/8 Log2(3/8) +1/8 Log2(1/8) +

1/8 Log2(1/8)]=1.811278124

Info(T2)=-[2/8 Log2(2/8)+1/8 Log2(1/8) +4/8 Log2(4/8) +

1/8 Log2(1/8)]=1.750000000

Info(Antigüedad,T)=8/16 Info(T1)+8/16 Info(T2)=1.780639062

Paso 4 - Antigüedad 

Cálculo de la ganancia de la información debida al atributo elegido en el paso2.

Ganancia de información(X,T)=

E(P)- Info(X,T)

Para el ejemplo la ganancia de información es:

Ganancia de información(Antigüedad,T)=

E(P)-Info(Antigüedad,T)=

1.92379494-1.780639062=

=0.143155878

Elección de la ganancia de información

Ganancia de información(Salario,T)=

1.276011942

Ganancia de información(Estudios,T)=

0.392155101

Ganancia de Información (Antigüedad,T)= 0.143155878

Se elige Salario como nodo del árbol porque tiene mayor ganancia de informa-ción.

De la raíz salario saldrán tres nodos:

< 1 500 ,

1 500 a 2 500 y

2 500

Page 211: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 211/395

Mg. Abraham Gamarra Moreno  227 

Para el primer caso la ayuda es de 100000; pero en los casos 2 y 3 las ayudasconcedidas por la empresa son diferentes.

El árbol de decisión formado hasta aquí se muestra en la figura 5.2.

Figura 5.2. Árbol de decisión con el primer nodo encontrado.

El proceso anterior se repetirá para esas dos ramas en que no existe certi-dumbre respecto a la decisión habiendo considerado el atributo salario, si bienlos atributos a analizar serían solo los dos restantes (estudios y antigüedad).

Los resultados obtenidos serán:

Para el atributo salario rama 1500 a 2500 (elegir sólo las filas que tengan estevalor ):

Paso 1

Cálculo de la entropía de la distribución de probabilidad resultante de dividir elconjunto de ejemplos en función de la decisión.

La entropía se calcula:

Page 212: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 212/395

 

228  Tópicos y Aplicaciones de la Inteligencia Artificial 

E(P)=-(p1 log2(p1) + p2 log2(p2)+. . .+

pk log2(pk))

Donde:

p1, p2, ... , pk probabilidad de ocurrencia

Para el ejemplo dado el valor de la decisión se tiene:

Valor de la decisión No de casos

50 000 2

75 000 4

La entropía es:

E(P)=-(2/6 log2(2/6) + 4/6 log2(4/6))

E(P)=0.918295834

Paso 2-Estudios

Elegimos el atributo Estudios y procedemos a dividir el conjunto de ejemplosen función del mismo, obteniendo las siguientes clases:

- T1 (Estudios=Especialización)

VALOR DE LA DECISION No. DE CASOS 

75 000  2 

- T2 (Estudios=Medios )

VALOR DE LA DECISION No. DE CASOS 

50 000  2 

Page 213: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 213/395

Mg. Abraham Gamarra Moreno  229 

- T3 (Estudios=Superiores)

VALOR DE LA DECISION No. DE CASOS 

75 000  2 

Paso 3 -Estudios

Determinación de la información necesaria para identificar la clase de un ele-mento del conjunto de ejemplos dividido en clases según el atributo conside-rado en el paso anterior.

La información se determina por:Info(Ti)=E(Pi)

Y también se calcula:

Info(X,T)=T1/T Info(T1)+

T2/T Info(T2)+ . . .+

Tk/T Info(Tk)

Para el ejemplo tenemos:

Info(T1)=-[2/2 Log2(2/2)] =0

Info(T2)=-[2/2 Log2(2/2)] =0

Info(T3)=-[2/2 Log2(2/2)] =0

Info(Estudios,T)=2/6 Info(T1)+2/6 Info(T2)+2/6 Info(T3) =0

Paso 4 -Estudios

Calculo de la ganancia de la información debida al atributo elegido en el paso2.

Ganancia de información(X,T)=

E(P)- Info(X,T)

Para el ejemplo la ganancia de información es:

Ganancia de información(Estudios,T)=

E(P)-Info(Estudios,T)=

Page 214: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 214/395

 

230 Tópicos y Aplicaciones de la Inteligencia Artificial 

0.918295834 -0.0= 0.918295834

Paso 2-Antigüedad

Elegimos el atributo Antigüedad y procedemos a dividir el conjunto de ejemplosen función del mismo, obteniendo las siguientes clases:

- T1 (Antigüedad =Si)

VALOR DE LA DECISION No. DE CASOS 

75 000  3 

50 000  1 

- T2 (Antigüedad =No )

VALOR DE LA DECISION No. DE CASOS 

75 000  1 

50 000  1 

Paso 3 - Antigüedad

Determinación de la información necesaria para identificar la clase de un ele-mento del conjunto de ejemplos dividido en clases según el atributo conside-rado en el paso anterior.

La información se determina por:

Info(Ti)=E(Pi)

Y también se calcula:

Info(X,T)=T1/T Info(T1)+

T2/T Info(T2)+ . . .+

Tk/T Info(Tk)

Para el ejemplo tenemos:

Info(T1)=-[3/4 Log2(3/4)+1/4 Log2(1/4)]

Page 215: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 215/395

Mg. Abraham Gamarra Moreno  231 

=0.811278124

Info(T2)=-[1/2 Log2(1/2)+1/2 Log2(1/2)]

=1.000000000

Info(Antigüedad,T)=4/6 Info(T1)+2/6 Info(T2)=0.874185416

Paso 4 - Antigüedad

Calculo de la ganancia de la información debida al atributo elegido en el paso2.

Ganancia de información(X,T)= E(P)- Info(X,T)

Para el ejemplo la ganancia de información es:

Ganancia de información(Antigüedad,T)=

E(P)-Info(Antigüedad,T)=

0.918295834 -0.874185416

=0.044110418

Ganancia de información(Estudios,T)=

0.918295834

Ganancia de Información(Antigüedad,T)= 0.044110418

Se elige Estudios como nodo del árbol porque tiene mayor ganancia de infor-mación.

El árbol que se forma con el atributo estudios se muestra en la figura 5.3.

Para el atributo salario rama >2 500 (elegir sólo las filas que tengan este valor):

Paso 1

Cálculo de la entropía de la distribución de probabilidad resultante de dividir elconjunto de ejemplos en función de la decisión.

La entropía se calcula:

E(P)=-(p1 log2(p1) + p2 log2(p2)+. . .+pk log2(pk))

Donde:

p1, p2, ... , pk probabilidad de ocurrencia

Page 216: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 216/395

 

232  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 5.3. Árbol que se forma con el atributo estudios.

Para el ejemplo dado el valor de la decisión se tiene:

Valor de la decisión No de casos

50 000 3

25 000 2

La entropía es:

E(P)=-(3/5 log2(3/5) + 2/5 log2(2/5))

E(P)=0.970950594

Paso 2-Estudios

Elegimos el atributo Estudios y procedemos a dividir el conjunto de ejemplosen función del mismo, obteniendo las siguientes clases:

Page 217: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 217/395

Mg. Abraham Gamarra Moreno  233 

- T1 (Estudios=Especialización)

VALOR DE LA DECISION No. DE CASOS 

50 000  1 

- T2 (Estudios=Medios)

VALOR DE LA DECISION No. DE CASOS 

25 000  2 

- T3 (Estudios=Superiores)

VALOR DE LA DECISION No. DE CASOS 

50 000  2 

Paso 3 -Estudios

Determinación de la información necesaria para identificar la clase de un ele-mento del conjunto de ejemplos dividido en clases según el atributo conside-rado en el paso anterior.

La información se determina por:

Info(Ti)=E(Pi)

también se calcula:

Info(X,T)=T1/T Info(T1)+

T2/T Info(T2)+ . . .+

Tk/T Info(Tk)

Para el ejemplo tenemos:

Info(T1)=-[1/1 Log2(1/1)] =0

Info(T2)=-[2/2 Log2(2/2)] =0

Page 218: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 218/395

 

234 Tópicos y Aplicaciones de la Inteligencia Artificial 

Info(T3)=-[2/2 Log2(2/2)] =0

Info(Estudios,T)=2/6 Info(T1)+2/6 Info(T2)+2/6 Info(T3) =0

Paso 4 -Estudios

Calculo de la ganancia de la información debida al atributo elegido en el paso2.

Ganancia de información(X,T)=

E(P)- Info(X,T)

Para el ejemplo la ganancia de información es:

Ganancia de información(Estudios,T)=

E(P)-Info(Estudios,T)=

0.970950594-0.0= 0.970950594

Paso 2-Antigüedad

Elegimos el atributo Antigüedad y procedemos a dividir el conjunto de ejemplosen función del mismo, obteniendo las siguientes clases:

- T1 (Antigüedad =Si)VALOR DE LA DECISION No. DE CASOS 

25 000  1 

- T2 (Antigüedad =No)

VALOR DE LA DECISION No. DE CASOS 

25 000  1 

50 000  3 

Paso 3-Antigüedad

Determinación de la información necesaria para identificar la clase de un ele-mento del conjunto de ejemplos dividido en clases según el atributo conside-rado en el paso anterior.

La información se determina por:

Page 219: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 219/395

Mg. Abraham Gamarra Moreno  235 

Info(Ti)=E(Pi)

Y también se calcula:

Info(X,T)=T1/T Info(T1)+

T2/T Info(T2)+ . . .+

Tk/T Info(Tk)

Para el ejemplo tenemos:

Info(T1)=-[1/1 Log2(1/1)]=0.0

Info(T2)=-[1/4 Log2(1/4)+3/4 Log2(3/4)]

=0.811278124

Info(Antigüedad,T)=

1/5 Info(T1) + 4/5 Info(T2)

=0.649022500

Paso 4 - Antigüedad

Calculo de la ganancia de la información debida al atributo elegido en el paso2.

Ganancia de información(X,T)=

E(P)- Info(X,T)

Para el ejemplo la ganancia de información es:

Ganancia de información(Antigüedad,T)=

E(P)-Info(Antigüedad,T)=

0.970950594-0.649022500

=0.321928095

Elección de la ganancia de información

Ganancia de información(Estudios,T)=

0.970950594

Ganancia de Información(Antigüedad,T)= 0.321928095

Page 220: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 220/395

 

236  Tópicos y Aplicaciones de la Inteligencia Artificial 

Se elige Estudios como nodo del árbol porque tiene mayor ganancia de infor-mación.

El árbol que se forma con la inclusión del atributo estudios se muestra en lafigura 5.4.

Figura 5.4. Árbol formado con la inclusión del atributo estudios.

 Ahora debe ir el atributo Antigüedad luego de estudios, tanto en la rama salario1 500 a 2 500 y en la rama >2500.

 Añadiendo antigüedad al árbol se obtiene la figura 5.5.

Optimizando el árbol se obtiene el resultado de la figura 5.6.

5.3. HERRAMIENTAS PARA CREAR ÁRBOLES DE DECISIÓN DESDE DATOS H ISTÓRICOS 

Entre la variedad de herramientas que se puede utilizar para crear árboles dedecisión estan XPERTRULE y WEKA:

5.3.1. XPERTRULE 

Esta herramienta puede evaluarse desde el siguiente enlacehttp://www.xpertrule.com/ 

Page 221: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 221/395

Mg. Abraham Gamarra Moreno  237 

5.3.2. WEKA

Esta herramienta se encuentra en http://www.cs.waikato.ac.nz/~ml/weka/ 

Figura 5.5. Antigüedad añadido al árbol.

Page 222: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 222/395

 

238  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 5.6. Resultado de optimizar el árbol.

Page 223: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 223/395

Mg. Abraham Gamarra Moreno  239 

CAPITULO SEISAPRENDIZAJE EVOLUTIVO: ALGORITMOS

GENÉTICOS

En los últimos años, las técnicas de aprendizaje automático han ido alcanzan-do un creciente interés dentro de la comunidad científica informática. Muchoscientíficos piensan que los avances más importantes en inteligencia artificial seproducirán mediante métodos diseñados para permitir a los ordenadores

aprender por sí mismos. Dentro de estas técnicas, los algoritmos genéticos,cuyos primeros desarrollos se deben a Holland, han sido aplicados en un am-plio campo de problemas de aprendizaje de máquinas.

Como su propio nombre sugiere, los algoritmos genéticos tienen un paralelobiológico. Estos algoritmos comienzan con una colección de datos o patronesgenerados aleatoriamente y evolucionan posteriormente hacia una soluciónmediante técnicas de adaptación de los patrones iniciales. La solución no esnecesariamente óptima, pero puede estar muy cerca de ella.

Existen muchas variaciones posibles de los algoritmos genéticos, cada una de

las cuales es controlada por determinados parámetros, tales como los ratios decruce y mutación.

Estos algoritmos han sido aplicados en forma exitosa a una variada gama detareas de aprendizaje y a otros problemas de optimización. Por ejemplo, hansido utilizados para aprender una colección de reglas de control de un robot ypara optimizar la topología y los parámetros de una red neuronal.

Page 224: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 224/395

 

240 Tópicos y Aplicaciones de la Inteligencia Artificial 

6.1. FUNDAMENTO B IOLÓGICO 

6.1.1. CROMOSOMA

Todos los organismos vivos consisten de células. En cada célula hay el mismoconjunto de cromosomas. Los cromosomas son cadenas de ADN y sirve comoun modelo para el organismo completo.

Un cromosoma consiste de genes, bloques de ADN (figura 6.1). Cada gen co-difica una proteína particular. Básicamente podemos decir que cada gen codifi-ca una característica, por ejemplo color de ojos.

Figura 6.1. ADN (Ácido Desoxirribonucleico)

Cada gen tiene su propia posición en el cromosoma. El conjunto completo dematerial genético (todos los cromosomas) es llamado genoma. Un conjuntoparticular de genes en el genoma es llamado genotipo.

6.1.2. REPRODUCC IÓN 

Durante la reproducción, primero ocurre la recombinación (o cruce). Genes depadres forman un nuevo cromosoma completo. La nueva descendencia creada

puede entonces ser mutada. La mutación significa que los elementos de ADNes cambiado en una parte. Estos cambios son principalmente causados por errores en la copia de genes de los padres.

6.1.3. CAPACIDAD 

La capacidad de un organismo es medido por el éxito del organismo en estavida. En su obra magna, El origen de las especies, publicada en 1859, CharlesDarwin defendió el principio de la evolución mediante la selección natural, que,posteriormente, después de muchos argumentos acalorados, fue aceptado

universalmente entre los científicos:

Page 225: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 225/395

Mg. Abraham Gamarra Moreno  241 

Cada individuo tiende a transmitir rasgos a su progenie.

Sin embargo, la naturaleza produce individuos con rasgos diferentes.

Los individuos más adaptados, aquellos que poseen los rasgos más favo-

rables, tienden a tener más progenie que aquellos con rasgos no favora-bles, conduciendo, así, a la población como un todo hacia la obtención derasgos favorables.

Durante largos periodos se puede acumular la variación, produciendo es-pecies completamente nuevas cuyos rasgos las hacen especialmenteadaptadas a nichos ecológicos particulares.

6.2. ESTRUCTURA Y FUNCIONAMIENTO DE LOS ALGORITMOS GENÉTICOS 

Los algoritmos genéticos son una familia de métodos de búsqueda adaptativade soluciones, que reciben su nombre por su analogía con el cambio genéticoque se produce en las poblaciones naturales. Los algoritmos genéticos utilizanuna representación basada en las características de los individuos o sucesosmediante un conjunto de estructuras de conocimiento denominadas patrones.Utilizando una representación binaria, cada patrón puede representar la pre-sencia o ausencia (1 ó 0 respectivamente) de un conjunto de propiedades ocaracterísticas en un determinado individuo o ejemplo que permiten incremen-tar la experiencia del sistema al estudiarlo. Por ejemplo, al aprender a diag-nosticar mejor una enfermedad se puede establecer una lista de posibles sín-

tomas asociados a la misma, de forma que un determinado enfermo para unsíntoma concreto (fiebre) lo presente (1) o no (0). Esto permite representar todas las posibles combinaciones de síntomas como una serie de ceros y unos(001100100110), que indicarían posibles perfiles de enfermos. Los patronestambién tienen un peso asociado, denominado capacidad del patrón, que re-coge su representatividad o rendimiento en experiencias pasadas.

6.2.1. REPRESENTACIÓN DE CROMOSOMAS (PATRONES) 

La representación de cromosomas es uno de los problemas iniciales cuando

se utiliza algoritmos genéticos. El patrón depende del problema. A continuaciónse describen algunas representaciones utilizadas relacionadas con sus pro-blemas de aplicación.

Codificación binaria

Cada cromosoma es una cadena de bits 0 ó 1.

Cromosoma:

101100101100101011100101

Page 226: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 226/395

 

242  Tópicos y Aplicaciones de la Inteligencia Artificial 

Ejemplo de problema: Problema de la mochila. Hay objetos con valores y ta-maños dados. La mochila tiene una capacidad dada. Se necesita seleccionar objetos para maximizar el valor de los objetos en la mochila, pero no se debeampliar la capacidad de la mochila.

Patrón: Cada bit dice, sí el correspondiente objeto esta en la mochila.

Código de permutación

Este código puede ser usado en problemas de ordenamiento, optimización oproblemas de asignación.

Cada cromosoma es una cadena de números, que representa números en unasecuencia.

Cromosoma:

1 5 3 2 6 4 7 9 8

Ejemplo de problema: Problema del vendedor viajero (Travelling salesmanproblem-TSP). El Problema del agente vendedor viajero, es donde se tiene unvendedor que debe hacer una gira a lo largo del país visitando varias ciudadespara luego volver al punto de partida. El vendedor no puede ir más de una veza cualquier ciudad. La meta es inventar un plan de viaje (una gira) qué minimi-ce la distancia total viajada

Patrón: El cromosoma dice el orden de las ciudades que visitará el vendedor viajero.

Código de valor 

El código de valor directo puede ser utilizado en problemas, donde se tienealgunos valores complicados, tal como números reales. Usar código binariopara este tipo de problemas puede ser muy dificultoso.

En esta representación cada cromosoma es una cadena de algunos valores.Los valores forman números, números reales o caracteres para algunos obje-tos complicados.

Cromosoma A:

1.2324 5.3243 0.4556 2.3293Cromosoma B:

 ABDJEIFJDHDIERJFDLDFLFEGT

Page 227: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 227/395

Mg. Abraham Gamarra Moreno  243 

Cromosoma C:

(atrás), (atrás), (derecha), (adelante), (izquierda)

El código de valor es muy bueno para algunos problemas especiales. Por otraparte para esta representación es a menudo necesario desarrollar operacionesde cruce y mutación específicos para el problema.

Ejemplo de problema: Encontrar pesos para redes neuronales. Para algunasarquitecturas se necesita encontrar pesos para las neuronas de entrada con elobjetivo de entrenar la red y encontrar una salida deseada.

Patrón: Valores reales en la representación de los cromosomas que corres-pondan los pesos de las entradas.

Código de árbol

Es utilizado principalmente para desarrollar programas o expresiones, paraprogramación genética.

Cada cromosoma es un árbol de algunos objetos, tal como funciones o co-mandos de lenguaje de programación.

Cromosoma A:

( + x ( / 5 y ) )

Page 228: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 228/395

 

244 Tópicos y Aplicaciones de la Inteligencia Artificial 

Cromosoma B:

( do_until step wall )

Ejemplo de problema: Encontrando una función de valores dados. Algunos va-lores de entrada y salida son dados. La tarea es encontrar una función, quedará la mejor salida para todas las entradas.

Patrón: Los cromosomas son funciones representadas en árboles.

6.2.2. FUNCIÓN PARA LA CAPACIDAD 

Si nosotros resolvemos algún problema, usualmente vemos por alguna solu-

ción, estamos buscando alguna solución que será el mejor entre otras. El es-pacio de todas las soluciones factibles es llamado espacio de búsqueda.

Cada punto en el espacio de búsqueda representa una solución factible. Cadasolución factible puede ser “marcado” por este valor o su capacidad para elproblema. Nosotros vemos que nuestra solución, es un punto (o más) a travésde soluciones factibles en el espacio de búsqueda.

El buscar una solución es entonces igual a buscar para algún extremo (mínimoo máximo) en el espacio de búsqueda. La solución de un problema con algo-ritmos genéticos puede a menudo ser expresado como buscar el extremo deuna función (capacidad).

6.2.3. SELECCIÓN 

La selección consiste en elegir cromosomas de la población para ser padrespara el cruzamiento. El problema es como seleccionar estos cromosomas. Haymuchos métodos de cómo seleccionar los mejores cromosomas, algunos deellos se describen a continuación.

Selección de la rueda de ruleta

Page 229: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 229/395

Mg. Abraham Gamarra Moreno  245 

Los padres son seleccionados de acuerdo a sus capacidades. Los mejorescromosomas son los que tienen más opción de ser seleccionados. Imaginemosuna rueda de ruleta donde son colocados todos los cromosomas de la pobla-ción, estos son puestos de acuerdo a su función de capacidad, como se mues-tra en la Figura 6.2. 

Figura 6.2. Selección de la rueda de la ruleta.

Entonces una canica es tirada en la ruleta y selecciona el cromosoma. El cro-mosoma con mejor capacidad será seleccionado más veces.

Este puede ser simulado por el siguiente algoritmo:

[Suma] Calcula la suma de las capacidades de todos los cromosomas enla población.

[Seleccionar] Generar un número aleatorio (r) de intervalo (0,S).

[Ciclo] Ir a través de la población y sumar las capacidades de 0 a suma s.Cuando la suma s es mayor que r, parar y retornar el cromosoma dondeusted esta.

Por supuesto, el paso 1 es desarrollado una vez para cada población.

Selección por jerarquía

La selección anterior tiene problemas cuando las capacidades difieren mucho.Por ejemplo, si la capacidad del mejor cromosoma es 90%, todos los otroscromosomas tiene poca opción para ser seleccionados.

La selección por jerarquía primero ordena la población y entonces cada cro-

mosoma recibe capacidades de este ordenamiento. El peor tendrá capacidad1, el segundo peor tendrá capacidad 2, etc y el mejor tendrá capacidad N (nú-mero de cromosomas en la población).

En la Figura 6.3 y la Figura 6.4 se puede ver como cambia la situación des-pués de cambiar capacidades a número de orden.

Page 230: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 230/395

 

246  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 6.3. Situación antes de ordenar (grafico de capacidades)

Figura 6.4. Situación después de ordenar (gráfico de número de orden).

Después de esto todos los cromosomas tienen una opción para ser seleccio-nados. Pero este método puede guiar a una baja convergencia, porque los me- jores cromosomas no difieren muchos de los otros.

Selección de estado estable

La idea principal es que los de mayor capacidad deberían de sobrevivir para la

próxima generación.

En cada generación son seleccionados algunos cromosomas -con alta capaci-dad- para crear una nueva descendencia (hijos). Entonces algunos cromoso-mas con baja capacidad son removidos y reemplazados por los nuevos hijos.

El resto de la población sobrevive para la nueva generación.

Elitismo 

Elitismo es el nombre del método, que primero copia el cromosoma mejor (oalgunos cromosomas mejores) a la nueva población. El resto es hecho de for-ma clásica. El elitismo puede muy rápidamente incrementar el desempeño delos algoritmos genéticos, porque este previene la perdida de la mejor soluciónencontrada.

Page 231: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 231/395

Mg. Abraham Gamarra Moreno  247 

6.2.4. CRUZAMIENTO Y MUTACIÓN 

Código binario 

Cruzamiento

Cruzamiento de punto simple: Un punto simple de cruzamiento es selecciona-do, la cadena binaria del inicio del cromosoma al punto de cruzamiento es co-piado de un padre el resto es copiado del segundo padre.

11001011+11011111 = 11001111 

Dos puntos de cruzamiento: Dos puntos de cruzamiento son seleccionados, lacadena binaria del inicio del cromosoma al primer punto de cruzamiento escopiado de un padre, la parte del primer al segundo punto de cruzamiento es

copiado del segundo padre y el resto es copiado del primer padre.

11001011 + 11011111 = 11011111 

Cruzamiento uniforme: Los bits son aleatoriamente copiados del primer o delsegundo padre.

11001011 + 11011101 = 11011111

Cruzamiento aritmético: Algunas operaciones aritméticas es desarrollada paracrear un nuevo descendiente (hijo).

11001011 + 11011111 = 11001001 (AND)

Mutación

Inversión de bits: Seleccionar bits a ser invertidos.

11001001 10001001

Código de valor 

Cruzamiento

Todos los cruzamientos del código binario pueden ser utilizados.

Mutación

 Adicionando un pequeño número (para código de valores reales): Un númeropequeño es adicionado (o restado) a valores seleccionados del cromosoma.

(1.29 5.68 2.86 4.11 5.55) (1.29 5.68 2.73 4.22 5.55)

Hijo

Page 232: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 232/395

 

248  Tópicos y Aplicaciones de la Inteligencia Artificial 

Código de permutación

Cruzamiento

Simple punto de cruce. Un punto de cruce es seleccionado. En el cromosoma

descendiente se copia los números del primer padre desde el inicio al punto decruce, del segundo padre se añade los valores que no se encuentran en cro-mosoma descendiente hasta completar el cromosoma. Nota: hay más formasde cómo producir el resto del cromosoma después del punto de cruce. 

(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) =(1 2 3 4 5 6 8 9 7)

Mutación

Cambiar el orden. Dos números son seleccionados y son cambiados.

(1 2 3 4 5 6 8 9 7) (1 8 3 4 5 6 2 9 7).

Código de árbol

Cruzamiento

Se selecciona un punto de cruce de cada padre y el descendiente se genera aldividir los padres y cambiar las partes debajo del punto de cruce.

+

Page 233: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 233/395

Mg. Abraham Gamarra Moreno  249 

=

Mutación

Cambiar: operador, número. Los nodos seleccionados son cambiados.

6.2.5. ALGORITMOS 

 Algoritmo Uno 

El procedimiento que se utiliza para implementar programas con algoritmos

genéticos es el siguiente:

a) [Inicio]: Generar una población aleatoria de n cromosomas (solucionesconvenientes para el problema).

b) [Capacidad]: Evaluar la capacidad f(x) de cada cromosoma x en la po-blación.

c) [Nueva población]: Crear una nueva población repitiendo los pasossiguientes hasta que la nueva población este completa.

-[Selección]: Seleccionar dos cromosomas padres de la pobla-ción de acuerdo a su capacidad (la mejor capacidad, tiene la más gran-de opción para ser seleccionado).

-[Cruzamiento]: Con una probabilidad de cruce cruzar los padres pa-ra formar nuevos descendientes (hijos).

-[Mutación]: Con una probabilidad de mutación mutar nuevos hijos encada posición del cromosoma.

-[Aceptando]: Colocar los nuevos hijos en una nueva población.

d) [Reemplazando]: Usar la población nueva generada para una posterior ejecución del algoritmo.

Page 234: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 234/395

 

250 Tópicos y Aplicaciones de la Inteligencia Artificial 

e) [Evaluando]: Si el fin de la condición es satisfecho, parar, y retornar lamejor solución en la población actual.

f) [Ciclo]: Ir al paso b.

 Algoritmo Dos

El funcionamiento del algoritmo es el siguiente:

1. Representación del problema a resolver en una cadena de unos y ceros. Lacadena tendrá una longitud desde unos diez bits a varios cientos.

2. Generación aleatoria de una población de cadenas (patrones) de la longitudapropiada. El tamaño de la población estará comprendido entre 20 y 200 ca-denas.

3. Evaluación de la representatividad o rendimiento de cada patrón. Función deevaluación del rendimiento.

4. Selección de los individuos para la nueva generación basada en su rendi-miento. Por ejemplo, si se clasifica la población por rendimiento y se divide encuartiles, de cara a la nueva generación, el cuartil superior se duplicará, loscuartiles intermedios se mantendrán y el cuartil inferior será eliminado. El ta-maño de la población permanecerá constante.

5. Realización de cruces. Aleatoriamente se seleccionan dos individuos y unpunto de cruce (posición de la cadena a partir de la que se van a intercambiar 

los bits). Se intercambian los bits a la derecha del punto de cruce, creando in-dividuos modificados. La cantidad total de cruces realizados va a depender dela aplicación.

6. Realización de mutaciones. Se seleccionan aleatoriamente los patrones ylas posiciones sobre las que realizar la mutación. La mutación cambia un 1 por un 0, y viceversa. La cantidad total de mutaciones dependerá también de laaplicación.

7. Vuelta al paso número 3 y comienzo del ciclo otra vez. La población tenderáa múltiples copias de una sola cadena que tenga un rendimiento óptimo o cer-

cano a él.

Existe evidencia, tanto teórica como empírica, que demuestra que, incluso enespacios de búsquedas muy amplias y complejos, los algoritmos genéticospueden localizar rápidamente estructuras de conocimiento efectivas emplean-do entre 50 y 100 patrones.

Page 235: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 235/395

Mg. Abraham Gamarra Moreno  251 

 Algoritmo Tres

t0Inicializar P(t)Evaluar P(t)

Mientras (no condición de terminación)t=t+1Seleccione padres de P(t-1)alterar P(t)Evaluar P(t)

Fin_mientras

 Algoritmo Cuatro 

El procedimiento que se utiliza para implementar programas con algoritmos

genéticos es muestra en la Figura 6.5. En el diagrama de flujo Gen es el núme-ro de generación, M es el tamaño de la población, i es el índice del individuo enla población, Pr es la probabilidad de reproducción, Pc es la probabilidad decruce y Pm es la probabilidad de mutación.

6.2.6. OPERADORES GENÉTICOS AD ICIONALES 

Clonación

La clonación consiste en la duplicación de la estructura genética de un cromo-soma para la generación siguiente. Esto hace que ese ejemplar sobreviva in-tacto para competir en la nueva generación. La clonación se puede producir enforma:

Explícita.- Cuando el software de GA prevé que ante ciertas circunstancias uncromosoma se duplique a si mismo (figura 6.6).

Implícita.- Cuando el programa no prohíbe que en el proceso de cruce (crosso-ver), un cromosoma sea seleccionado como pareja de sí mismo para generar descendencia (figura 6.7).

Inversión

La inversión consiste en la operación contraria a la clonación. Puede ser:

Total.- Un cromosoma muta totalmente por su inverso. Ej.: Dado el cromo-soma 00011, su inverso será 11100 (figura 6.8).

Parcial.- Un gen o parte de un gen mutan por su inverso. Si la mutación esde un solo bit, el efecto es igual al de la mutación simple. De hecho, la mu-tación puede considerarse como un caso especial de la inversión (figura

6.9).

Page 236: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 236/395

 

252  Tópicos y Aplicaciones de la Inteligencia Artificial 

Inicio

Gen=0

Creación población

inicial

¿Criterio de

finalización

satisfecho?

Resultado

FinEvaluación de la capacidad

de cada individuo

Selección de la

operacion génetica,

probabilisticamente

¿I=M?

Si

gen=gen+1

No

Selección de los dos

individuos más idoneos

i=i+1

Cruce

Insertar hijos en la nueva

población

i=i+1

Selección del individuo más

idoneo

Reproducción

Copiar en la nueva

población

Selección del individuo más

idoneo

Mutación

Insertar mutante en la

nueva población

PmPr 

Pc

Si

No

 

Figura 6.5. Algoritmo básico para implementar algoritmos genéti-cos

Antes de la clonación 10000001Después de la clonación 10000001

Figura 6.6. Proceso de clonación explícita.

Page 237: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 237/395

Mg. Abraham Gamarra Moreno  253 

Antes de la clonación 1000000110000001 

Después de la clonación 10000001

(Ejemplar nueva generación)

Figura 6.7. Proceso de clonación implícita.

Antes de la inversión 11110001Después de la inversión 00001110

Figura 6.8. Inversión total.

Antes de la inversión 11110001Después de la inversión 00010001

Figura 6.9. Inversión parcial.

Reversión

La reversión consiste en la operación que cambia el cromosoma por sí mismoordenado de atrás para adelante. Esta operación no existe en la naturaleza ,pero se basa un la presunción de que algunos cromosomas poco competitivospodrían revertir su estado en el orden contrario. Al igual que con la inversión ,la reversión puede ser:

Total.- Un cromosoma se revierte totalmente. Ej.: Dado el cromosoma00011, su reverso será 11000 (figura 6.10).

Parcial.- Un gen o parte de un gen cambian por su reverso (figura 6.11).

Antes de la reversión 11110001

Después de la reversión 10001111

Figura 6.10. Reversión total.

Antes de la reversión 10111111Después de la reversión 11011111

Figura 6.11. Reversión parcial.

 Anulación o Pavlov 

Este operador ha sido inspirado en la metodología utilizada por el conocidomédico ruso, aunque su trabajo no tenga que ver en absoluto con los GA.

Page 238: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 238/395

 

254 Tópicos y Aplicaciones de la Inteligencia Artificial 

Pavlov investigó durante más de 20 años la fisiología de los mamíferos supe-riores, preponderantemente de los perros. Sus difundidos trabajos sobre refle- jos condicionados emanan de este hecho. Su metodología se basaba en laaislamiento de los componentes anatómicos a estudiar, con independencia delresto de la morfología. En otras palabras, el estudio se centraba en un órgano

u órganos específicos cada vez y se trataba de medir la influencia del entornoen este tejido en particular. Pavlov intentaba aislar alguna variable y medir elimpacto en la misma de cambios en el entorno. De esta manera, podía acos-tumbrar a un perro a estar a oscuras y sin sonidos para averiguar la preponde-rancia del olfato ante la estimulación de la comida en un perro privado del sen-tido visual. y auditivo. A algunos especimenes se les llegó a cortar las conexio-nes nerviosas (equivalente a anular las respuestas del órgano conectado) paralograr el mismo resultado.

El organismo del mamífero superior consta de una serie de sustancias quími-cas (asimilables a las variables de un sistema matemático) que interactúan

entre sí dinámicamente. Una postura integradora argumentaría que la investi-gación debe ser hecha sobre el cuerpo tomado como un todo, ya que todas lasvariables (las enzimas) están interrelacionadas. La posición de Pavlov fue con-traria, ya que basó su método en inferir el comportamiento de todo estudiandocaracterísticas de las partes o deducir el todo anulando alguna de ellas.

Este tipo de planteo es aplicable a los GA, que constan al igual que el cuerpode una serie de genes interdependientes. En los seres vivos existen general-mente mecanismos de compensación, en donde ciertos genes impulsan accio-nes en un sentido determinado y ciertos otros en sentido opuesto. La acciónfinal se produce como consecuencia de la medición de estas fuerzas La anula-

ción estructurada de alguno de ellos puede servir como base para el entendi-miento del comportamiento del resto del sistema. En el ámbito de la biologíaestos genes reciben el nombre de aleles o alelos. Si se identificaran y anularanalgunos de los genes que condicionan el valor esperado en sentido opuesto,esto representaría una mejora idéntica a la de mejorar los valores de los res-tantes.

Un operador Pavlov anulará sistemáticamente algunos de los bits del cromo-soma y medirá de esa manera el incremento o no del fitness del mismo.

Dado que el GA tiene los cromosomas estructurados como cadenas binarias,

la anulación se simplifica enormemente ya que para realizarla es suficiente concambiar los valores a "0" de los bits "1" o viceversa.

Antes de pavlov 11111111

Después de pavlov 00001111(El gen o el bit ha sido anulado)

Figura 6.12. Operador Pavloviano en un GA.

Page 239: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 239/395

Mg. Abraham Gamarra Moreno  255 

6.3. ¿CÓMO TRABAJAN LOS ALGORITMOS GENÉTICOS? 9  

En este ítem se discute las acciones de un algoritmo genético para un proble-ma de optimización con un parámetro. Se empieza con un comentario general;seguido de un ejemplo detallado.

Notaremos primero que, sin ninguna pérdida de generalidad, nosotros pode-mos asumir sólo problemas de maximización. Si el problema de optimizaciónes minimizar una función f, esto es equivalente a maximizar una función g,donde g = -f, es decir:

)(max)(maxmin x  f   x g  x  f   .

 Además, podemos suponer que la función objetivo f toma valores positivos ensu dominio; de lo contrario podemos añadir alguna constante positiva C, esdecir,

C  x g  x g  )(max)(max .

 Ahora supongamos que deseamos maximizar una función de k variables, k  x x f   ,,1 :  R R

k  . Supongamos que cada variable

i x , puede tomar valores

de un dominio Rba Diii , y 0,,1 k  x x  f   para todo

iiD x . Deseamos

optimizar la función f con alguna precisión requerida: supongamos que esdeseable seis lugares decimales para los valores de las variables.

Es claro que para lograr tal precisión cada dominioi

 D debería estar dentro de

610 ii ab rangos de tamaños iguales. Denotemos por  i

m al entero mas pe-queño tal como 1210

6

im

iiab . Entonces la representación que tiene

una variablei

 x codificado como una cadena binaria de longitudi

m claramente

satisface la precisión requerida. Adicionalmente, la siguiente fórmula interpretacada cadena:

12)0011001( 2

im

ii

ii

abdecimal a x  

donde )(2

cadenadecimal  representa el valor decimal de esa cadena binaria.

 Ahora, cada cromosoma (como una solución potencial) es representado por 

una cadena binaria de longitudi

imm

1

; los primeros1

m bits mapean un

valor dentro del rango 11,ba , el siguiente grupo de

2m bits mapea un valor 

dentro del rango 22 ,ba , y así sucesivamente; el último grupo

k m bits mapea

un valor dentro del rango k k 

ba , .

9 Traducido desde el libro: Michalewicz, Z. Genetic Algoritms + Data Structures = Evolu-tion Programs. USA: Editorial Springer; 1996.

Page 240: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 240/395

 

256  Tópicos y Aplicaciones de la Inteligencia Artificial 

Para inicializar una población, podemos simplemente fijar algún número tama-ño_pop de cromosomas en una forma binaria. Sin embargo, si nosotros tene-mos algún conocimiento a cerca de la distribución óptima potencial, podemosutilizar tal información para arreglar el conjunto inicial (potencial) de soluciones.

El resto del algoritmo es directo, en cada generación evaluamos cada cromo-soma (usando la función f en la secuencia decodificada de las variables), se-lecciona una nueva población con respecto a la probabilidad de distribuciónbasada en valores de la capacidad, y altera los cromosomas en la nueva po-blación con los operadores mutación o cruce. Después de algún número degeneraciones, cuando no se observa mejora significativa, el mejor cromosomarepresenta una solución óptima (posiblemente el global). Frecuentemente pa-ramos el algoritmo después de un número fijo de iteraciones dependiendo dela velocidad y el criterio del recurso.

Para el proceso de selección (selección de una nueva población con respecto

a la probabilidad de distribución basado en valores de la capacidad), una ruedade ruleta con tamaño de aberturas de acuerdo a la capacidad es usada. Cons-truimos tal rueda de ruleta como sigue (aquí asumimos que los valores de ca-pacidad son positivos).

1. Calcular el valor de la capacidad )(i

veval  para cada cromosoma( pobtamañoi _ ,,1 ).

2. Encontrar el total de la capacidad de la población:

size popi iveval  F  _ 

1 )(  

3. Calcular la probabilidad de una seleccióni

 p para cada cromosoma

( pobtamañoi _ ,,1 ):

 F veval  p ii /)(  

4. Calcular una probabilidad acumulada para cada cromosoma iv  

( pobtamañoi _ ,,1 ):

i

 j ji pq1

 

El proceso de selección esta basada en hacer girar la rueda de ruleta tama-ño_pop veces; cada vez seleccionamos un simple cromosoma para una nuevapoblación de la siguiente forma:

1. Generar un número aleatorio (flotante) r en el rango 10 .

2. Si r < q1, entonces se selecciona el primer cromosoma (v1); de otra maneraselecciona el i –avo cromosoma

iv ( poptamañoi _ 2 ) tal que ii qr q

1.

Page 241: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 241/395

Mg. Abraham Gamarra Moreno  257 

Obviamente, algunos cromosomas son seleccionados más de una vez. Estoes en concordancia con el Teorema del Esquema (vea el próximo capítulo);los mejores cromosomas obtienen mas copias, el promedio permanece parejoy el peor desaparece.

 Ahora estamos listos para aplicar el operador de recombinación, cruce, a losindividuos en la nueva población. Como lo mencionamos antes, uno de los pa-rámetros un sistema genético es la probabilidad de cruce

c p . Esta probabilidad

nos da el número esperado  pobtamaño pc _  de cromosomas los cuales se

someten a la operación de cruce. Procedemos de la siguiente forma:

Para cada cromosoma de la (nueva) población:

3. Generar un número aleatorio (flotante) r en el rango 10 ;

4. Sic pr 

, seleccionar el cromosoma dado para cruce. Ahora apareamos los cromosomas aleatoriamente seleccionados: para cadapar de parejas de cromosomas generamos un número entero aleatorio  pos del

rango 11 m (m es la longitud total – número de bits – en un cromosoma).El número  pos indica la posición del punto de cruce. Dos cromosomas

m pos pos bbbbb

121 y m pos pos ccccc

121  

son reemplazados por un par de sus descendientes:

m pos pos ccbbb 121

y m pos pos bbccc

121  

El siguiente operador, mutación, es realizado en base a un bit-a-bit. Otro pa-rámetro del sistema genético, probabilidad mutación

m p , nos da el número es-

perado de bits mutados  pobtamañom pm _  . Cada bit (en todos los cromoso-

mas de la población entera) tienen una igual oportunidad de igual de someter-se a la mutación, es decir, cambiar de 0 a 1 o viceversa. Así procedemos de lasiguiente forma:

Para cada cromosoma en la población actual (es decir, después del cruce) ypara cada bit dentro del cromosoma:

1. Generar un número aleatorio (flotante) r en el rango 10 .

2. Si r <m

 p , mutar el bit.

Siguiendo la selección, cruce y mutación; la nueva población está lista para lasiguiente evaluación. Esta evaluación esta usada para construir la probabilidad

de distribución (para el siguiente proceso de selección), es decir, para la cons-trucción de la rueda de la ruleta con el tamaño de las aberturas acorde a los

Page 242: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 242/395

 

258  Tópicos y Aplicaciones de la Inteligencia Artificial 

valores actuales de la capacidad. El resto de la evolución es simplemente unarepetición cíclica de los pasos anteriores (figura 6.13).

Figura 6.13.

El proceso entero es ilustrado por un ejemplo. Corremos una simulación de unalgoritmo genético para una función de optimización. Asumimos que el tamañode la población tamaño_pop = 20, y las probabilidades de los operadores ge-néticos son 25.0

c p y 01.0m p .

 Asumamos también que maximizamos la siguiente función:

)20()4(5.21),( 221121 x sen x x sen x x x  f        ,

donde: 8.51.41.120.321 x y x . El gráfico de la función f es dado en

la Figura 6.14.

 Asumamos además que la precisión requerida es de cuatro decimales paracada variable. El dominio de la variable x1 tiene longitud 15.1; la precisión re-

querida implica que el rango [-3.0,12.1] debería ser dividido en al menos en15.1*10000 rangos de igual tamaño. Esto significa que 18 bits son requeridoscomo la primera parte del cromosoma:

217151000218 

El dominio de la variable x2 tiene una longitud 1.7; el requerimiento de preci-sión implica que el rango [4.1,5.8] debería estar dividido en al menos1.7*10000 rangos de igual tamaño. Esto significa que 15 bits son requeridoscomo la segunda parte del cromosoma:

21417000215 

Page 243: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 243/395

Mg. Abraham Gamarra Moreno  259 

La longitud total de un cromosoma (vector solución) es entonces m=18+15=33bits, los primeros 18 bits codifican a x1 y los restantes 15 bits (19 - 30) codificana x2.

Figura 6.14. Gráfico de la función f(x1,x2)=21.5+x1 sen(4 π x1)+ x2 sen(20 π x2)  

Consideremos un cromosoma ejemplo:

(010001001011010000111110010100010)

Los primeros 18 bits,

010001001011010000

representa

12)0.3(1.12)110100000100010010(0.3

1821

decimal  x  

262143

1.15703520.3 052426.1052426.40.3  

Los siguientes 15 bits

111110010100010

Page 244: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 244/395

 

260 Tópicos y Aplicaciones de la Inteligencia Artificial 

representa

12

1.48.5)000101111100101(1.4

1522

decimal  x

755330.5655330.11.432767

7.1.319061.4  

 Así el cromosoma

(010001001011010000111110010100010)

corresponde a (x1,x2) = (1.052426,5.755330). El valor de capacidad para estecromosoma es:

20.252640.755330)1.052426,5(   f   .

Para optimizar la función f usando un algoritmo genético, creamos una pobla-ción de tamaño_pop=20 cromosomas. Todos los 33 bits en todos los cromo-somas son inicializados aleatoriamente.

 Asumir que después del proceso de iniciación corregimos la siguiente pobla-ción:

v1 = (100110100000001111111010011011111)

v2 = (111000100100110111001010100011010)

v3 = (000010000011001000001010111011101)

v4 = (100011000101101001111000001110010)

v5 = (000111011001010011010111111000101)

v6 = (000101000010010101001010111111011)

v7 = (001000100000110101111011011111011)

v8 = (100001100001110100010110101100111)

v9 = (010000000101100010110000001111100)

v10 = (000001111000110000011010000111011)

v11 = (011001111110110101100001101111000)

v12 = (110100010111101101000101010000000)

v13 = (111011111010001000110000001000110)

Page 245: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 245/395

Mg. Abraham Gamarra Moreno  261 

v14 = (010010011000001010100111100101001)

v15 = (111011101101110000100011111011110)

v16 = (110011110000011111100001101001011)

v17 = (011010111111001111010001101111101)

v18 = (011101000000001110100111110101101)

v19 = (000101010011111111110000110001100)

v20 = (101110010110011110011000101111110)

Durante la fase de evaluación decodificamos cada cromosoma y calculamoslos valores de la función de capacidad de (x1,x2) apenas decodificados. Obte-nemos:

Eval(v1) = f(6.084492, 5.652242) = 26.019600

Eval(v2) = f(10.348434, 4.380264) = 7.580015

Eval(v3) = f(-2.516603, 4.390381) = 19.526329

Eval(v4) = f(5.278638, 5.593460) = 17.406725

Eval(v5) = f(-1.225173, 4.734458) = 25.341160

Eval(v6) = f(-1.811725, 4.391937) = 18.100417Eval(v7) = f(-0.991471, 5.680258) = 16.020812

Eval(v8) = f(4.910618, 4.703018) = 17..959701

Eval(v9) = f(0.795406, 5.381472) = 16.127799

Eval(v10) = f(-2.554851, 4.793707) = 21.278435

Eval(v11) = f(3.130078, 4.996097) = 23.410669

Eval(v12) = f(9.356179, 4.239457) = 15.011619

Eval(v13) = f(11.134646, 5.378671) = 27.316702

Eval(v14) = f(1.335944, 5.151378) = 19.876294

Eval(v15) = f(11.089025, 5.054515) = 30.060205

Eval(v16) = f(9.211598, 4.993762) = 23.867227

Eval(v17) = f(3.367514, 4.571343) = 13.696165

Eval(v18) = f(3.843020, 5.182266) = 15.414128

Page 246: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 246/395

 

262  Tópicos y Aplicaciones de la Inteligencia Artificial 

Eval(v19) = f(-1.746635, 5.395584) = 20.095903

Eval(v20) = f(7.935998, 4.757338) = 13.666916

Es claro, el cromosoma v15 es el más fuerte, y el cromosoma v2 es el más dé-

bil. Ahora el sistema construye una rueda de ruleta para el proceso de selección.El total de capacidad de la población es:

20

1776822.387)(

i iveval  F   

La probabilidad de una selección i p ; para cada cromosoma i

v ( 20,,1i ) es :

p1=eval(v1)/F = 0.067099

p2=eval(v2)/F = 0.019547

p3=eval(v3)/F = 0.050355

p4=eval(v4)/F = 0.044889

p5=eval(v5)/F = 0.065350

p6=eval(v6)/F = 0.046677

p7=eval(v7)/F = 0.041315

p8=eval(v8)/F = 0.046315

p9=eval(v9)/F = 0.041590

p10=eval(v10)/F = 0.054873

p11=eval(v11)/F = 0.060372

p12=eval(v12)/F = 0.038712

p13=eval(v13)/F = 0.070444

p14=eval(v14)/F = 0.051257

p15=eval(v15)/F = 0.077519

p16=eval(v16)/F = 0.061549

p17=eval(v17)/F = 0.035320

p18=eval(v18)/F = 0.039750

p19=eval(v19)/F = 0.051823

p20=eval(v20)/F = 0.035244

Las probabilidades acumuladas iq para cada cromosoma iv ( 20,,1

i

) son:

q1= 0.067099

q2= 0.086647

q3= 0.137001

q4= 0.181890

q5= 0.247240

q6= 0.293917

q7= 0.335232

q8= 0.381546

q9= 0.423137

q10= 0.478009

Page 247: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 247/395

Mg. Abraham Gamarra Moreno  263 

q11= 0.538381

q12= 0.577093

q13= 0.647537

q14= 0.698794

q15= 0.776314

q16= 0.837863

q17= 0.873182

q18= 0.912932

q19= 0.964756

q20= 1.000000

 Ahora estamos listos para rodar la rueda de la ruleta 20 veces, cada vez selec-cionamos un solo cromosoma para la nueva población. Asumamos que la se-cuencia (aleatoria) de 20 números de rango [0..1] es:

0.513870

0.175741

0.308652

0.534534

0.947628

0.1717360.702231

0.226431

0.494773

0.424720

0.703899

0.389647

0.277226

0.368071

0.983437

0.005398

0.7656820.646473

0.767139

0.780237

El primer número r = 0.513870 es mayor que q 10 y menor que q11, significandoque el cromosoma v11 es seleccionado para la nueva población; el segundonúmero r = 0.175741 es mayor que q3 y menor que q4, significando que el cro-mosoma v4 es seleccionado para la nueva población.

Finalmente la nueva población consiste de los siguientes cromosomas:

v´1 = (011001111110110101100001101111000) (v11)

v´2 =(100011000101101001111000001110010) (v4)

v´3 =(001000100000110101111011011111011) (v7)

Page 248: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 248/395

 

264 Tópicos y Aplicaciones de la Inteligencia Artificial 

v´4 =(011001111110110101100001101111000) (v11)

v´5 =(000101010011111111110000110001100) (v19)

v´6 =(100011000101101001111000001110010) (v4)

v´7 =(111011101101110000100011111011110) (v15)

v´8 =(000111011001010011010111111000101) (v5)

v´9 =(011001111110110101100001101111000) (v11)

v´10 =(000010000011001000001010111011101) (v3)

v´11 =(111011101101110000100011111011110) (v15)

v´12 =(010000000101100010110000001111100) (v9)

v´13 =(000101000010010101001010111111011) (v6)

v´14 =(100001100001110100010110101100111) (v8)

v´15 =(101110010110011110011000101111110) (v20)

v´16 =(100110100000001111111010011011111) (v1)

v´17 =(000001111000110000011010000111011) (v10)

v´18 =(111011111010001000110000001000110) (v13)v´19 =(111011101101110000100011111011110) (v15)

v´20 =(110011110000011111100001101001011) (v16)

 Ahora estamos listos para aplicar el operador de recombinación, cruce, a losindividuos de la nueva población (vectores v´ i). La probabilidad de cruce es pc=0.25; así esperamos que (en promedio) el 25% de los cromosomas (es decir, 5de 20) se sometan al cruce. Procedemos de la siguiente manera: para cadacromosoma en la (nueva) población generamos un número aleatorio r en elrango [0...1]; si r < 0.25 seleccionamos el cromosoma dado para cruce.

 Asumamos que la secuencia de números aleatorios es:

0.822951

0.151932

0.625477

0.314685

0.346901

0.917204

0.519760

0.401154

0.606758

0.785402

Page 249: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 249/395

Mg. Abraham Gamarra Moreno  265 

0.031523

0.869921

0.166525

0.674520

0.758400

0.581893

0.389248

0.200232

0.355635

0.826927

Esto significa que los cromosomas v´2 , v´11 , v´13 y v´18 fueron seleccionadospara cruzarse (tuvimos suerte: el número de cromosomas seleccionados fuepar, así podemos aparearlos fácilmente. Si el número de cromosomas selec-cionado fue impar, deberíamos también adicionar cualquier cromosoma extra oeliminar uno de los cromosomas seleccionados  – esta selección es echo alea-toriamente también). Ahora apareamos los cromosomas seleccionados aleato-riamente: decimos, los primeros dos (es decir, v´2 y v´11) y los dos siguientes(es decir, v´13 y v´18) son completamente emparejados. Para cada una de estasdos parejas, generamos un número entero aleatorio pos en el rango [1..32] (33es longitud total - número de bits – en el cromosoma). El número pos indica laposición del punto de cruce. El primer par de cromosomas es:

v´2 =(100011000 | 101101001111000001110010)

v´11 =(111011101 | 101110000100011111011110)

y el número generado pos = 9 . Estos cromosomas son cortados después delnoveno bit y reemplazamos por una pareja de sus descendientes:

v´´2 = (100011000 | 101110000100011111011110)

v´´11 = (111011101 | 101101001111000001110010)

El segundo par de cromosomas es:

v´13 = (00010100001001010100 | 1010111111011)

v´18 = (11101111101000100011 | 0000001000110)y el número generado pos = 20. Estos cromosomas son reemplazados por unapareja de cromosomas de sus descendientes:

v´´13 = (00010100001001010100 | 0000001000110)

v´´18 = (11101111101000100011 | 1010111111011)

La versión actual de la población es:

v´1 = (011001111110110101100001101111000)

v´´2= (100011000101110000100011111011110)

Page 250: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 250/395

 

266  Tópicos y Aplicaciones de la Inteligencia Artificial 

v´3= (001000100000110101111011011111011)

v´4= (011001111110110101100001101111000)

v´5= (000101010011111111110000110001100)

v´6= (100011000101101001111000001110010)

v´7= (111011101101110000100011111011110)

v´8= (000111011001010011010111111000101)

v´9= (011001111110110101100001101111000)

v´10= (000010000011001000001010111011101)

v´´11= (111011101101101001111000001110010)

v´12= (010000000101100010110000001111100)

v´´13= (000101000010010101000000001000110)

v´14= (100001100001110100010110101100111)

v´15= (101110010110011110011000101111110)

v´16= (100110100000001111111010011011111)

v´17= (000001111000110000011010000111011)v´´18= (111011111010001000111010111111011)

v´19= (111011101101110000100011111011110)

v´20= (110011110000011111100001101001011)

El siguiente operador, mutación, es realizado en base bit a bit. La probabilidadde mutación Pm = 0.01, así nosotros esperamos que (en promedio) 1% de bitsse someterán a mutación. Hay m x tamaño_pob = 33 x 20 = 660 bits en la po-blación entera, esperamos (en promedio) 6.6 mutaciones por generación. Cadabit tiene igual oportunidad para ser mutado, así, para cada bit en la poblacióngeneramos un número aleatorio r del rango[0..1]; si r < 0,01, mutamos el bit.

Esto significa que tenemos que generar 660 números aleatorios. En una mues-tra corrida, 5 de estos números fueron más pequeños que 0.01, el número delbit y el número aleatorio son listados abajo:

Bit position Número Aleatorio

Page 251: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 251/395

Mg. Abraham Gamarra Moreno  267 

112

349

418

429

602

0.000213

0.009945

0.008809

0.005425

0.002836

La siguiente tabla traduce la posición del bit en el número de cromosoma y elnúmero de bit dentro del cromosoma:

Esto significa que 4 cromosomas son afectados por el operador de mutación,uno de los cromosomas (el 13avo) tiene dos bits cambiados.

La población final es listada abajo; los bits mutados, están en negrita.

Dejamos preparado para modificar los cromosomas: la población es listadacomo un nuevo vector v i:

v1 = (011001111110110101100001101111000)

v2= (100011000101110000100011111011110)

v3= (001000100000110101111011011111011)

v4= (011001111110010101100001101111000)

v5= (000101010011111111110000110001100)

Page 252: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 252/395

 

268  Tópicos y Aplicaciones de la Inteligencia Artificial 

v6= (100011000101101001111000001110010)

v7= (111011101101110000100011111011110)

v8= (000111011001010011010111111000101)

v9= (011001111110110101100001101111000)

v10= (000010000011001000001010111011101)

v11= (111011101101101001011000001110010)

v12= (010000000101100010110000001111100)

v13= (000101000010010101000100001000111)

v14= (100001100001110100010110101100111)

v15= (101110010110011110011000101111110)

v16= (100110100000001111111010011011111)

v17= (000001111000110000011010000111011)

v18= (111011111010001000111010111111011)

v19= (111011111101110000100011111011110)

v20= (110011110000011111100001101001011)Tenemos completada sólo una iteración (es decir, una generación) del buclewhile en el procedimiento genético (Figura 0.1 de la Introducción). Es intere-sante examinar el resultado del proceso de evaluación de la nueva población.Durante la fase de evaluación decodificamos cada cromosoma y calculamos lalos valores de la función de capacidad de (x1,x2) valores ya decodificados. Ob-tenemos:

Eval(v1)=f(3.130078, 4.996097) = 23.410669

Eval(v2)=f(5.279042, 5.054515) = 18.201083

Eval(v3)=f(-0.991471, 5.680258) = 16.020812

Eval(v4)=f(3.128235, 4.996097))=23.412613

Eval(v5)=f(-1.746635, 5.395584))=20.095903

Eval(v6)=f(5.278638, 5.593460))=17.406725

Eval(v7)=f(11.089025, 5.054515))=30.60205

Eval(v8)=f(-1.255173, 4.734458))=25.341160

Page 253: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 253/395

Mg. Abraham Gamarra Moreno  269 

Eval(v9)=f(3.130078, 4.996097))=23.410669

Eval(v10)=f(-2.516603, 4.390381))=19.526329

Eval(v11)=f(11.088621, 4.743434) =33.351874

Eval(v12)=f(0.795406, 5.381472))=16.127799

Eval(v13)=f(-1.811725, 4.209937))=22.692462

Eval(v14)=f(4.910618, 4.703018))=17.959701

Eval(v15)=f(7.935998, 4.757338))=13.666916

Eval(v16)=f(6.084492, 5.652242))=26.019600

Eval(v17)=f(-2.554851, 4.793707))=21.278435

Eval(v18)=f(11.134646, 5.65666976))=27.591064

Eval(v19)=f(11.059532, 5.054515))=27.608441

Eval(v20)= f(9.211598, 4.993762))=23.867227

Note que la capacidad total de la nueva población F es 447.049688, más altoque la capacidad total de la población anterior, 387.776822. También, el mejor cromosoma ahora (v11) tiene una mejor evaluación (33.135864) que el mejor cromosoma (v15) de la población anterior (30.060205).

 Ahora estamos listos para correr el proceso de selección otra vez y aplicar losoperadores genéticos, evalúar la siguiente generación, etc. Después de 1000generaciones la población es:

v1 = (111011110110011011100101010111011)

v2= (111001100110000100010101010111000)

v3= (111011110111011011100101010111011)

v4= (111001100010000110000101010111001)

v5= (111011110111011011100101010111011)

v6= (111001100110000100000100010100001)

v7= (110101100010010010001100010110000)

v8= (111101100010001010001101010010001)

v9= (111001100010010010001100010110001)

v10= (111011110111011011100101010111011)

Page 254: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 254/395

 

270 Tópicos y Aplicaciones de la Inteligencia Artificial 

v11= (110101100000010010001100010110000)

v12= (110101100010010010001100010110001)

v13= (111011110111011011100101010111011)

v14= (111001100110000100000101010111011)

v15= (111001101010111001010100110110001

v16= (111001100110000101000100010100001)

v17= (111001100110000100000101010111011)

v18= (111001100110000100000101010111001

v19= (111101100010001010001110000010001)

v20= (111001100110000100000101010111001)

Los valores de la capacidad son:

Eval(v1)=f(11.120940, 5.092514)=30.298543

Eval(v2)=f(10.588756, 4.667358)=26.86.9724

Eval(v3)=f(11.124627, 5.092514)=30.346567

Eval(v4)=f(10.574525, 4.242410)=31.933120Eval(v5)=f(11.124627, 5.092514)=30.316575

Eval(v6)=f(10.588756, 4.214603)=34.356125

Eval(v7)=f(9.631066, 4.427881)=35.458636

Eval(v8)=f(11.518106, 4.452835)=23.30.9078

Eval(v9)=f(10.574816, 4.427933)=34.393820

Eval(v10)=f(11.124627, 5.092514)=30.306575

Eval(v11)=f(9.623693, 4.427881)=35.477928

Eval(v12)=f(9.631066, 4.427933)=35.456066

Eval(v13)=f(11.124627, 5.092514)=30.316575

Eval(v14)=f(10.588756, 4.242514)=32.932098

Eval(v15)=f(10.606555, 4.653714)=30.746768

Eval(v16)=f(10.588814, 4.214603)=34.359545

Page 255: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 255/395

Mg. Abraham Gamarra Moreno  271 

Eval(v17)=f(10.588756, 4.242514)=32.932098

Eval(v18)=f(10.588756, 4.242410)=32.956664

Eval(v19)=f(11.518106, 4.472757)=19.669670

Eval(v20= f(10.588756, 4.242410)=32.956664

Sin embargo, si miramos cuidadosamente el progreso durante la corrida, po-demos descubrir que en las generaciones tempranas los valores de la capaci-dad de algunos cromosoma fueron mejores que el valor 35.477938 de el mejor cromosoma después de 1000 generaciones. Por ejemplo, el mejor cromosomaen la generación 396 tuvo el valor de 38.827953. Esto es debido al error esto-cástico del muestreo.

Es relativamente fácil guardar la pista del mejor individuo en la evolución del

proceso. Es costumbre (en aplicaciones de algoritmos genéticos) guardar elindividuo “el mejor de siempre” en una localización separada; de esta forma, elalgoritmo reportaría el mejor valor encontrado durante el proceso entero (enoposición al mejor valor en la población final).

6.4. EJEMPLO DE OPTIMIZACIÓN DE UNA FUNCIÓN CON C++ 

La función a opitimizar es:

0.1)*10sin(*)( x x x  f       

Utilizando el siguiente algoritmo:

t0Inicializar P(t)Evaluar P(t)Mientras (no condición de terminación)

t=t+1Seleccione padres de P(t-1)alterar P(t)Evaluar P(t)

Fin_mientras

Los parámetros utilizados son: tamaño de la población igual a 10, probabilidadde cruce es 0.25 y probabilidad de mutación es 0.01.

Para almacenar el dominio de  –1 a 2 con una cifra de precisión se necesita3*10 = 30, por lo que la longitud requerida es de 5 bits, porque 24=16 <= 30 <=25=32.

El programa termina después de 1000 generaciones y para cada generaciónque sea diferente al anterior se imprime el número de generación, el mejor va-

lor obtenido en esta generación, el mejor valor obtenido hasta la generaciónejecutada.

Page 256: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 256/395

 

272  Tópicos y Aplicaciones de la Inteligencia Artificial 

El código del programa en C++ es:

#include <math.h>#include <stdlib.h>#include <time.h>#include <stdio.h>

#include <iostream.h>

#define TAMANO_POB 10#define LONG_CROM 5#define PCRUCE 0.25#define PMUTACION 0.01

struct poblacion{double valor;unsigned int cromosoma[LONG_CROM];double capacidad;double frec;

double frec_ac;};

struct poblacion pob[TAMANO_POB],best,bestgen;struct poblacion nueva_pob[TAMANO_POB];

void initialize_poblacion();double funcion(double x);double valor(int indiv,int pos_ini,int pos_fin,

int lim_inf,int lim_sup);void evaluar();void mejor();float aleatorio();int alea_int(int lim_inf,int lim_sup);void seleccion();void cruce();void crossover(int parent1,int parent2);void mutacion();void mutation(int pos);

void main(){int t;double cap_ant;

t=0;initialize_poblacion();evaluar();printf("%10s %10s %10s %10s %10s\n",

"gen", "best val", "best cap", "b gen val","b gen cap");

printf("%10d %10.6f %10.6f %10.6f %10.6f\n",

t, best.valor, best.capacidad,bestgen.valor,bestgen.capacidad);

cap_ant=best.capacidad;while(t<1000){

t++;seleccion();cruce();mutacion();evaluar();

Page 257: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 257/395

Mg. Abraham Gamarra Moreno  273 

if(best.capacidad!=cap_ant){printf(

"%10d %10.6f %10.6f %10.6f %10.6f\n", t,best.valor, best.capacidad,bestgen.valor, bestgen.capacidad);cap_ant=best.capacidad;

}}

}

void initialize_poblacion(){int i,j;

srand( (unsigned)time( NULL ) );for(i=0;i<TAMANO_POB;i++)

for(j=0;j<LONG_CROM;j++)pob[i].cromosoma[j]=alea_int(0,1);

}

float aleatorio(){return (float) (rand()*10001/

(RAND_MAX-1))/10000;}

int alea_int(int lim_inf,int lim_sup){return (int) (aleatorio()*

(lim_sup-lim_inf+1))+lim_inf;}

void evaluar(){int i;double suma=0;

for(i=0;i<TAMANO_POB;i++){pob[i].valor=valor(i,0,LONG_CROM-1,-1,2);pob[i].capacidad=funcion(pob[i].valor);suma+=pob[i].capacidad;

}pob[0].frec=pob[0].capacidad/suma;pob[0].frec_ac=pob[0].frec;for(i=1;i<TAMANO_POB;i++){

pob[i].frec=pob[i].capacidad/suma;pob[i].frec_ac=pob[i-1].frec_ac +

pob[i].frec;}

mejor();}

double funcion(double x){return x*sin(x*10*3.1416)+1.0;

}

double valor(int indiv,int pos_ini,int pos_fin,int lim_inf,int lim_sup){

double factor,val;int i;

factor=1;val=0;

Page 258: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 258/395

 

274 Tópicos y Aplicaciones de la Inteligencia Artificial 

for(i=pos_fin;i>=pos_ini;i--){val+=

(pob[indiv].cromosoma[i] * factor);factor*=2;

}val=lim_inf +

(lim_sup-lim_inf) /(pow(2,pos_fin-pos_ini+1)-1) * val;

return val;}

void mejor(){int i;

i=0;best=pob[i];for(i=1;i<TAMANO_POB;i++)

if(best.capacidad<pob[i].capacidad)best=pob[i];

if(bestgen.capacidad<best.capacidad)bestgen=best;

}

void seleccion(){float aleat;int i,j;

for(i=0;i<TAMANO_POB;i++){aleat=aleatorio(); j=0;while(aleat>pob[j].frec_ac &&

 j<TAMANO_POB-1) j++;nueva_pob[i]=pob[j];

}for(i=0;i<TAMANO_POB;i++)

pob[i]=nueva_pob[i];}

void cruce(){int selec[TAMANO_POB],indice,i;float aleat;

indice=-1;for(i=0;i<TAMANO_POB;i++){

aleat=aleatorio();if(aleat<PCRUCE){

indice++;selec[indice]=i;

}}if(indice % 2) indice--;for(i=0;i<indice/2;i++)

crossover(selec[i],selec[indice/2+i]);}

void crossover(int padre1,int padre2){int punto_cruce,i;

unsigned int temp;

Page 259: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 259/395

Mg. Abraham Gamarra Moreno  275 

punto_cruce=alea_int(0,LONG_CROM-2);for(i=punto_cruce+1;i<LONG_CROM;i++){

temp=pob[padre1].cromosoma[i];pob[padre1].cromosoma[i]=

pob[padre2].cromosoma[i];pob[padre2].cromosoma[i]=temp;

}}

void mutacion(){int selec[TAMANO_POB],indice,i;float aleat;

indice=-1;for(i=0;i<TAMANO_POB;i++){

aleat=aleatorio();if(aleat<PMUTACION){

indice++;selec[indice]=i;

}}for(i=0;i<indice;i++) mutation(selec[i]);

}

void mutation(int pos){int punto;

punto=alea_int(0,LONG_CROM-1);pob[pos].cromosoma[punto]=

!pob[pos].cromosoma[punto];} 

La salida del programa es:

El mejor valor de de x= 1.419355 y el mejor valor para la función0.1)*10sin(*)( x x x  f      , luego de reemplazar x es 1.810954.

Page 260: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 260/395

 

276  Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 261: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 261/395

Mg. Abraham Gamarra Moreno  277 

CAPITULO SIETEPLANIFICACIÓN

La planificación en Ia Inteligencia Artificial es la capacidad de sintetizar se-cuencias de acciones con el objetivo de alcanzar una meta. Por lo tanto la re-solución de un problema de planificación consiste en determinar la secuenciade acciones que permiten, a partir de un estado inicial, alcanzar un estadoobjetivo o meta.

Otra definición es:

La planificación consiste en dar un área de dominio (conjunto de estados yoperadores) y un problema (estado inicial y conjunto de metas); y basado enlo anterior se obtiene un plan (conjunto de operadores y una ejecución de or-den parcial a través de estos), tal que, cuando se ejecuten, transforman el es-tado inicial a un estado donde todas las metas son alcanzadas.

Un ejemplo clásico del uso de planificación es la manipulación de bloques através de un brazo de robot (Figura 7.1). Los elementos que intervienen son:

Una superficie plana.

Una serie de bloques cúbicos.

Un brazo robotizado, que puede coger un bloque cada vez.

Un bloque puede estar sobre la mesa o apilado sobre otro bloque.

Page 262: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 262/395

 

278  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 7.1. Manipulación de bloques a través de un brazo de robot.

Otro ejemplo es el movimiento de un robot por una rejilla (Figura 7.2), donde elrobot ha de desplazarse, desde una posición inicial a una posición final. Loselementos son:

8 movimientos posibles: N, S, E, O, NO, NE, SO, SE.

En algunas de las rejillas existen obstaculos no franqueables.

Figura 7.2. Movimiento de un robot por una rejilla.

Entre las técnicas de planificación se tienen: Strips Algorithms (1970), PartialOrder Planning (1980), Graphplan Planning (1995), SAT Planning(1996), Heu-ristic Search Planning (1997) y Hierarchical Planning (1994).

Estado Inicial Estado Final

Page 263: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 263/395

Mg. Abraham Gamarra Moreno  279 

7.1. PLANIFICACIÓN MEDIANTE STRIPS 10  

El planteamiento STRIPS (STandford Research Institute Problem Solver) es unlenguaje para representar problemas de planificación. El análisis de la planifi-cación mediante STRIPS utiliza la Figura 7.1. 

7.1.1. REPRESENTACIÓN DE UN ESTADO EN STRIPS 

La Figura 7.3, muestra la representación de un estado, del ejemplo de la mani-pulación de bloques.

Figura 7.3. Representación de un estado, del ejemplo de la manipulación de bloques.

7.1.2. REPRESENTACIÓN DE OBJETIVOS EN STRIPS 

Un objetivo es la descripción de los estados finales. La Figura 7.4, muestraalgunos ejemplos de objetivos de la manipulación de bloques.

7.1.3. DESCRIPCIÓN DE ACCIONES EN STRIPS 

La descripción de la acción de un operador en estilo STRIPS, se representamediante:

10 Basado en los apuntes de: Ruiz José. Inteligencia Artificial I [en linea]. España:Universidad de Sevilla; 2007. [fecha de acceso 13 de diciembre de 2007]. URL dispo-nible en: http://www.cs.us.es/cursos/ia1-2006/

Page 264: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 264/395

 

280 Tópicos y Aplicaciones de la Inteligencia Artificial 

  Precondición: lista de literales que deben ser ciertos para que el operador pueda ser aplicado.

  Borrado: lista de átomos que dejan de ser ciertos una vez se ha aplicado eloperador.

   Adición: lista de átomos que pasan a ser ciertos una vez se ha aplicado eloperador.

Los operadores para la manipulación de bloques, se muestran en la figura Fi-gura 7.5 y Figura 7.6, donde P es la precondición, B es borrado y A es adición.

Figura 7.4. Ejemplos de objetivos de la manipulación de bloques.

Figura 7.5. Operadores para la manipulación de bloques I.

Page 265: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 265/395

Mg. Abraham Gamarra Moreno  281 

Figura 7.6. Operadores para la manipulación de bloques II.

7.1.4. APLICACIÓN DE LOS OPERADORES 

Si un estado satisface la precondición de un operador, se dice que este esaplicable.

Por ejemplo, hablaremos de DESAPILAR(B,A) para referirnos a DESAPI-LAR(x,y) con la sustitución {x=A,y=B}

Las Figura 7.7 y Figura 7.8 muestran algunos ejemplos de la aplicación deoperadores.

Figura 7.7. Ejemplo de la aplicación del operador DESAPILAR.

Page 266: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 266/395

 

282  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 7.8. Ejemplo de la aplicación del operador BAJAR.

7.2. EJEMPLO DE PLANIFICACIÓN MEDIANTE STRIPS: CAMB IO DE RUEDA PINCHADA

Para la planificación del cambio de una rueda pinchada se tienen los siguientes

objetos: RUEDA-REPUESTO, RUEDA-PINCHADA, EJE, MALETERO, SUELO

El predicado es: EN(-,-)

El estado inicial es: EN(RUEDA-PINCHADA,EJE), EN(RUEDA-REPUESTO,MALETERO)

El estado final es: EN(RUEDA-REPUESTO,EJE)

Las acciones en el cambio de rueda pinchada se muestran en la Figura 7.9. 

7.3. EJEMPLO DE PLANIFICACIÓN MEDIANTE STRIPS: REPRESENTACIÓN DEL PROBLEMA DEL MOV IMIENTO DE ROBOT POR UNA REJILLA

La planificación de la representación del problema del movimiento de robot,considera que un robot ha de desplazarse por una rejilla, desde una posicióninicial a una final (Figura 7.10).

Se tiene en consideración lo siguiente:

8 movimientos posibles: N, S, E, O, NO, NE, SO, SE

Page 267: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 267/395

Mg. Abraham Gamarra Moreno  283 

Figura 7.9. Acciones en el cambio de rueda pinchada.

Figura 7.10. Representación del problema del movimiento de robot.

Page 268: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 268/395

 

284 Tópicos y Aplicaciones de la Inteligencia Artificial 

En algunas de las rejillas existen obstáculos no franqueables

Se utiliza los predicados: ROBOT-EN(-,-) y LIBRE(-,-)

El estado inicial (casillas sin obstáculos y posición del robot) es:

LIBRE(1,1),..., LIBRE(6,2), LIBRE(11,2),..., LIBRE(12,12), ROBOT-EN(2,3).

El objetivo es: ROBOT-EN (10,11)

Una de las acciones es (las siete restantes son análogos):

MOVER-SE(x,y)

P: ROBOT-EN(x,y),LIBRE(x+1,y-1)

B: ROBOT-EN(x,y),LIBRE(x+1,y-1)

 A: ROBOT-EN(x+1,y-1),LIBRE(x,y)

7.4. PLANIFICACIÓN MEDIANTE ENCADENAMIENTO HACIAADELANTE 

La planificación mediante encadenamiento hacia adelante, trata de ubicar elestado que continua al estado actual (Figura 7.11).

Desgraciadamente, el planteamiento obliga a entablar una batalla contra elcrecimiento exponencial del árbol, una batalla que probablemente se perderíaen cualquier problema de tamaño razonable, dado que se puede producir mu-chas ramificaciones, inclusive para acciones irrelevantes.

7.5. PLANIFICACIÓN MEDIANTE ENCADENAMIENTO HACIAATRÁS 

La planificación mediante encadenamiento hacia atrás, trata de ubicar el esta-do anterior, que existe, con respecto estado actual (Figura 7.12).

La planificación mediante encadenamiento hacia atrás, comienza en un objeti-vo y en cada estado se generan todos los posibles predecesores. Se finalizacuando se alcanza un objetivo que es cierto en el estado inicial.

Page 269: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 269/395

Mg. Abraham Gamarra Moreno  285 

Figura 7.11. Planificación mediante encadenamiento hacia adelante.

Figura 7.12. Planificación mediante encadenamiento hacia atrás.

Page 270: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 270/395

 

286  Tópicos y Aplicaciones de la Inteligencia Artificial 

7.6. PLANIFICACIÓN CON PRODIGY 4.0 11  

Este ítem explica como utilizar el planificador Prodigy4.0. Un planificador es unprograma de ordenador que permite obtener planes para resolver problemas.Como ejemplo se utiliza un conocido dominio de planificación: la logística de

transporte. En este dominio se intentan resolver problemas en los que se dis-pone de varios medios de transporte, tales como camiones, barcos, aviones,etc, cuyo objetivo es transportar mercancías desde un lugar a otro. La solucióna cada problema viene dada por la secuencia de pasos y los medios de trans-porte que se usan en cada paso para transportar los objetos a su destino.

Un problema de planificación es un par (estado inicial, estado final), donde elestado inicial es la situación de la que se parte, y el estado final es el estado alque queremos llegar.

Un plan es la secuencia de pasos que hay que dar para transformar el estado

inicial en el estado final. En la Figura 7.13, se puede ver un problema sencilloen el dominio logístico, en el que hay que llevar un paquete que está en Bara- jas a Cuatro Vientos utilizando un avión que inicialmente está en Cuatro Vien-tos:

Figura 7.13. Dominio logístico: llevar un paquete que está en Barajas a Cuatro Vientos utilizandoun avión que inicialmente está en Cuatro Vientos.

La secuencia de pasos (o plan) a utilizar en el caso anterior sería:

Mover el avión de Cuatro Vientos a Barajas

Cargar la mercancía en el avión (en Barajas)

Mover el avión a Cuatro Vientos

Descargar la mercancía del avión (en Cuatro Vientos)

Los problemas de planificación de este tipo se pueden representar utilizandoestados y operadores. Los estados representan tanto el estado inicial comolos estados intermedios por los que hay que pasar hasta llegar a la solución.

Los estados se pueden representar utilizando lógica de predicados, de maneraque la situación inicial anterior se podría escribir como:

11 Basado en los apuntes de: Aler Ricardo. Tutorial de Prodigy4.0 [en linea]. España:Dpto. Inteligencia Artificial - UNED; 2007. [fecha de acceso 13 de diciembre de2007]. URL disponible en: http://www.ii.uned.es/superior/cuarto/IAIngCon/

Page 271: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 271/395

Mg. Abraham Gamarra Moreno  287 

Avión_situado_en (avión, Cuatro Vientos)

Mercancía_situada_en (mercancía, Barajas)

Los operadores representan los posibles pasos intermedios que se pueden

dar para cambiar un estado en otro. Por ejemplo, en el dominio logístico sedispone de los siguientes operadores:

Mover un avión de un aeropuerto a otro.

Mover un camión entre dos oficinas de correos, o entre una oficina y unaeropuerto.

Cargar mercancías en aviones o camiones.

Descargar mercancías de aviones o camiones.

Estos operadores se pueden representar en un formalismo parecido al de lasreglas SI ... ENTONCES de los sistemas de producción. Por ejemplo, el opera-dor para descargar un avión podría representarse como:

OPERADOR Descargar SI Avión_situado_en (<avión>, <lugar>)

Mercancía_cargada_en_avión (<mercancía>, <avión>)ENTONCES Quitar Mercancía_cargada_en_avión (<mercancía>, <avión>)

 Añadir Mercancía_situada_en (<mercancía>, <lugar>)

(donde <avión>, <lugar> y <mercancía> son variables)En caso de que se cumplan las condiciones de que un avión está situado enun lugar y ese mismo avión lleva cargada una mercancía, entonces el operador anterior podría cambiar el estado actual en otro estado (ver parte derecha de laregla) en el que se ha eliminado el hecho de que la mercancía estaba cargadaen el avión ("Quitar") y se ha añadido el hecho de que ahora la mercancía estásituada en el lugar ("Añadir"). Nótese que el anterior operador está parametri-zado: sus variables pueden tomar distintos valores en un mismo estado. Por ejemplo, si tuvieramos un estado con un avión en Barajas y otro en CuatroVientos y ambos llevaran una mercancía a bordo, las variables del operador de

descarga podría tener dos posibles asignaciones de valores. O bien:

Descargar (<avión> = primer avión,<lugar> = Cuatro Vientos,<mercancia> = primera mercancía)

o bien:

Descargar (<avión> = segundo avión,<lugar> = Barajas,<mercancia> = segunda mercancía)

Page 272: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 272/395

 

288  Tópicos y Aplicaciones de la Inteligencia Artificial 

Cuando a un operador parametrizado se le dan valores a sus variables, se diceque se ha instanciado. Por tanto, un plan consiste de una secuencia de ope-radores instanciados. En el ejemplo que nos ocupa, el plan sería;

Mover_avión (<avión>=avión, <desde>=Cuatro Vientos, <hasta>=Barajas)Cargar_avión (<mercancía>=mercancía, <avión>=avión)Mover_avión (<avión>=avión, <desde>=Barajas, <hasta>=Cuatro Vientos)Descargar_avión (<mercancía>=mercancía, <avión>=avión)

Si aplicamos esta secuencia de operadores al estado inicial, veremos que éstese transforma en el estado final.

En resumen, un problema de planificación consiste en un estado inicial delque se parte, y un estado final al que se quiere llegar. La solución consiste enencontrar una secuencia de operadores instanciados (o plan) que transfor-me el estado inicial en el estado final. Los estados se representan utilizando

lógica de predicados. Los operadores se representan utilizando reglas SiCondiciones ENTONCES Acciones que nos dicen bajo que condiciones pode-mos utilizar el operador, y en caso afirmativo, las acciones necesarias paracambiar el estado actual. Al conjunto de los predicados que se necesitan pararepresentar a los estados y a los operadores se lo denomina dominio. Un pla-nificador es un programa de ordenador que toma un dominio y un problema ydevuelve un plan.

Como se ha visto en teoría, existen diversas maneras de planificar. En particu-lar, Prodigy4.0 es un planificador no lineal que usa la heurística medios-fines.Es decir, parte de los fines (o metas u objetivos) que todavía no están resuel-

tos y determina que operadores pueden alcanzar esas metas (como haceSTRIPS). Una vez hecho eso, substituye la meta original por las precondicio-nes que son necesarias para aplicar (o ejecutar) el operador. Pero además,Prodigy4.0 también guarda el estado actual de planificación, que inicialmentees el estado inicial del problema a resolver. Si las precondiciones de algúnoperador elegido anteriormente son ciertas en dicho estado actual, Prodigy4.0puede tomar la decisión de aplicarlo, modificando así el estado actual. De estamanera, Prodigy4.0 es capaz de acercar el estado inicial hacia las metas, demanera que el mecanismo de medios-fines (que se mueve desde las metashacia el estado inicial) sea capaz de llegar antes al estado inicial. En ciertosentido, Prodigy4.0 avanza en dos direcciones: desde las metas hacia el esta-do inicial y desde el estado inicial hacia las metas. El problema se resolverácuando ambos frentes se junten.

7.6.1. ESPECIFICACIÓN DE DOMINIOS EN PRODIGY4.0 

Una vez comprendidos los conceptos básicos, es necesario saber como sepueden definir en la práctica dominios y problemas en Prodigy4.0. Se comen-zará por la descripción del dominio, es decir, predicados y operadores.

Tipos de las variables

Page 273: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 273/395

Mg. Abraham Gamarra Moreno  289 

En Prodigy4.0, las variables de los operadores pueden tener tipos, y estos ti-pos están organizados en una jerarquía de tipos. Por ejemplo, en el dominiologístico hay tipos de objetos: transportes, mercancías, ciudades y lugaresdentro de una ciudad. A su vez, los transportes pueden ser de dos tipos: ca-miones y aviones. Y los lugares pueden ser también de dos tipos: agencias de

transporte y aeropuertos. En el lenguaje de Prodigy4.0, esta jerarquía de tiposse especificaría así:

(ptype-of MERCANCIA :top-type)(ptype-of TRANSPORTE :top-type)(ptype-of CAMION TRANSPORTE)(ptype-of AVION TRANSPORTE)(ptype-of LUGAR :top-type)(ptype-of AEROPUERTO LUGAR)(ptype-of AGENCIA LUGAR)(ptype-of CIUDAD :top-type)

:top-type es el tipo de mayor nivel, y de él penden aquellos tipos que no tienenningún tipo superior (como MERCANCIA, TRANSPORTE, LUGAR y CIUDAD).(ptype-of tipoa tipob especifica que el tipoa es un subtipo del tipob 

En Prodigy4.0, los dominios se definen en un fichero llamado domain.lisp. Ca-da dominio distinto está en un directorio distinto. Aunque todavía no se disponede los conocimientos necesarios para construir un dominio completo, se puedeempezar a crear la jerarquía de directorios necesaria para Prodigy4.0, y para eldominio logístico en particular. Para empezar, crear en el directorio casa el di-rectorio mis-dominios, donde estarán contenidos todos los dominios. Dentro de

ese directorio, crear el subdirectorio logistica, donde estará contenida la infor-mación del dominio logístico. Dentro del directorio mis-dominios/logistica, crear el fichero domain.lisp, y dentro de él, colocar el texto:

;; Dominio logístico(in-package "USER")

(create-problem-space 'logistica :current t)

(ptype-of MERCANCIA :top-type)(ptype-of TRANSPORTE :top-type)(ptype-of CAMION TRANSPORTE)

(ptype-of AVION TRANSPORTE)(ptype-of LUGAR :top-type)(ptype-of AEROPUERTO LUGAR)(ptype-of AGENCIA LUGAR)(ptype-of CIUDAD :top-type)Los comandos anteriores no necesitan de más explicación, a excepción de losiguiente:

En el lenguaje de definición de dominios, lo que sigue a ; se considera co-mo un comentario. En realidad, el lenguaje de descripción de dominios esun subconjunto de LISP. Que el ; sea el carácter que indica comentario es

una de sus peculiaridades. El que todas las instrucciones vayan precedi-

Page 274: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 274/395

 

290 Tópicos y Aplicaciones de la Inteligencia Artificial 

das de un paréntesis de apertura y sucedidos de un paréntesis de cierre esotra.

(in-package "USER") y (create-problem-space 'logistica :current t) son am-bos necesarios en el fichero domain.lisp, pero no merece la pena entrar en

más detalles.

Definición de predicados

Recordemos que los predicados se utilizaban para representar los estados deplanificación (en particular, el estado inicial y el estado final). Como veremosmás adelante, también se utilizan para especificar las condiciones de los ope-radores de planificación. En el dominio logístico podríamos utlizar los siguien-tes predicados:

(camion-en CAMION LUGAR) (avion-en AVION AEROPUERTO)

(mercancia-en LUGAR)

(en-camion MERCANCIA CAMION)

(en-avion MERCANCIA AVION)

(misma-ciudad LUGAR LUGAR)

(en-ciudad (LUGAR o MERCANCIA o TRANSPORTE) CIUDAD)

 Aunque es útil para nosotros saber qué predicados vamos a utilizar en nuestrarepresentación, no es necesario decirselo explicitamente a Prodigy4.0, puestoque cada vez que aparezca un predicado en la definición de sus operadores deplanificación, Prodigy4.0 lo incluirá inmediatamente en su lista de predicados.

Definición de operadores

Los operadores representan los posibles cambios que se pueden efectuar so-

bre los estados. Para representarlos se utilizan reglas SI Condiciones EN-TONCES Acciones. Las condiciones dicen cuando el operador se puede apli-car. Las acciones indican como transformar el estado una vez ha sido aplicado(añadiendo o borrando hechos). Las condiciones están compuestas de fórmu-las basadas en lógica de predicados unidas por las conectivas AND, OR y ~(NOT). Además, pueden contener variables cuantificadas universal (para todox ...) o existencialmente (existe un x que ...). En Prodigy4.0, los operadorestienen las siguientes partes:

Declaración de los parámetros que utiliza el operador (params)

Page 275: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 275/395

Mg. Abraham Gamarra Moreno  291 

Precondiciones preconds. Es decir, aquellas condiciones que se tienenque cumplir para poder aplicar el operador). Aquí también se definen los ti-pos de los parámetros y variables usados en el operador.

Efectos (effects). Es decir, la lista de efectos que produce el operador 

(añadir hechos en el estado actual, o quitarlos de el). Algunos de los efec-tos pueden ser condicionales, es decir, sólo se producen si se cumple de-terminada condición.

 A continuación se muestra la estructura básica de un operador. Esta estructuraserá explicada en detalle a continuación.

(OPERATOR nombre_del_operador (params <parametro1> <parametro2> ...)(preconds;; Declaración de parámetros

((<variable o parametro 1> TIPO-DE-LA-VARIABLE1)(<variable o parametro 2> TIPO-DE-LA-VARIABLE2)...

);; Declaración de precondiciones(and

condición1condición2...

))(effects

((<variable-efectos-1> TIPO-VARIABLE1)(<variable-efectos-2> TIPO-VARIABLE2)...)(efecto1efecto2(if condicion

;; Aquí comienza la lista de efectos condicionales;; (puede haber varios)(efecto-condicional1

efecto-condicional2...)

)))

)

Parámetros de un operador (params)

Page 276: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 276/395

 

292  Tópicos y Aplicaciones de la Inteligencia Artificial 

En ellos se especifican las variables (o argumentos) del operador. Por ejemplo,el operador de cargar el camión podría tener dos variables: la mercancía acargar y el camión en el que se va a cargar. El lenguaje de Prodigy4.0 lo defini-ría esos parámetros así (nótese que en Prodigy4.0, las variables van entre < y>):

(params <mercancia> <camion>)

Precondiciones (preconds)

Son las condiciones que se tienen que cumplir para que se pueda aplicar unoperador. En el caso del operador de cargar el camión son dos: que el camiónesté físicamente en el lugar en el que se quiere realizar la carga, y que el obje-to esté en ese mismo lugar. Esto se expresaría así:

(and (camion-en <camion> <lugar>)(mercancia-en <mercancia> <lugar>)

)

 Antes de poner las precondiciones propiamente dichas, es necesario declarar el tipo de los parámetros y variables que utiliza el operador. Por tanto, las pre-condiciones completas de este operador serían:

(preconds

((<mercancia> MERCANCIA)(<camion> CAMION)(<lugar> LOCATION))(and

(camion-en <camion> <lugar>)(mercancia-en <mercancia> <lugar>)

))

De las precondiciones anteriores hay que señalar lo siguiente: sólo funcionan

si dos lugares distintos en dos ciudades distintas no pueden llamarse igual.Imaginemos que por ejemplo hubiera una agencia1 en Madrid y una agencia1en París. Además, supongamos que hay una mercancía en la agencia1 deMadrid y un camión en la agencia1 de París. Dada esta situación o estado, lasprecondiciones anteriores se cumplirían (comprobarlo) y ¡se podría cargar lamercancía que está en Madrid en el camión que está en París!. Una manerade solucionar este problema es añadiendo otro predicado que nos diga en quéciudad está un determinado lugar, y comprobando que la mercancía y el ca-mión están en la misma ciudad:

(preconds((<mercancia> MERCANCIA)

Page 277: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 277/395

Mg. Abraham Gamarra Moreno  293 

(<camion> CAMION)(<lugar> LOCATION)(<ciudad> CIUDAD)

)(and

(en-ciudad <camion> <ciudad>)

(en-ciudad <mercancia> <ciudad>)(camion-en <camion> <lugar>)(mercancia-en <mercancia> <lugar>)

))

Efectos del operador (effects)

Todavía tendríamos que añadir las acciones de este operador. En este casolos efectos del operador son dos:

La mercancía pasa a estar cargada en el camión.

La mercancía deja de estar directamente en el lugar (lo está, pero porqueel camión está en ese mismo lugar).

Esto se expresaría así:

(effects()((add (en-camion <mercancia> <camion>))(del (mercancia-en <mercancia> <lugar>))

)

)

Es decir, añadimos el hecho que dice que la mercancía está en el camión, yborramos el hecho que decía que la mercancía estaba directamente sobre ellugar.

Efectos condicionales

Si se desea, también se pueden añadir efectos condicionales, es decir, efec-tos que sólo tienen lugar si se cumple alguna condición. Por ejemplo, supon-gamos que se utiliza el predicado (al-lado mercancia1 mercancia2) para repre-sentar que una mercancía1 está al lado de otra mercancía2. Si cargamos mer-cancía1 en el camión, dejarán de estar en contacto y habrá que borrar el hecho(al-lado mercancia1 mercancia2). Pero sólo en ese caso. Esto se expresaríaasí:

(effects;; A continuación aparece la lista de variables y sus tipos;; que se utilizan sólo en la parte de efectos de la regla((<mercancia2> MERCANCIA)

)((add (en-camion <mercancia> <camion>))

Page 278: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 278/395

 

294 Tópicos y Aplicaciones de la Inteligencia Artificial 

(del (mercancia-en <mercancia> <lugar>))(if (al-lado <mercancia> <mercancia2>)

;; Aquí comienza la lista de efectos condicionales;; (puede haber varios)((del (al-lado <mercancia> <mercancia2>))

)))) 

 Al final, el operador de cargar el camión quedaría así:

(OPERATOR CARGAR-CAMION(params <mercancia> <camion>)(preconds((<mercancia> MERCANCIA)(<camion> CAMION)(<lugar> LOCATION)(<ciudad> CIUDAD))(and

(en-ciudad <camion> <ciudad>)(en-ciudad <mercancia> <ciudad>)(camion-en <camion> <lugar>)(mercancia-en <mercancia> <lugar>)

))(effects()((add (en-camion <mercancia> <camion>))(del (mercancia-en <mercancia> <lugar>)))

))

Y si pusieramos efectos condicionales (en caso de que se utilizara el predicadoal-lado):

(OPERATOR CARGAR-CAMION(params <mercancia> <camion>)(preconds

((<mercancia> MERCANCIA)(<camion> CAMION)(<lugar> LOCATION)(<ciudad> CIUDAD))(and

(en-ciudad <camion> <ciudad>)(en-ciudad <mercancia> <ciudad>)(camion-en <camion> <lugar>)(mercancia-en <mercancia> <lugar>)

))(effects

;; A continuación aparece la lista de variables y sus tipos;; que se utilizan sólo en la parte de efectos de la regla

Page 279: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 279/395

Mg. Abraham Gamarra Moreno  295 

((<mercancia2> MERCANCIA))((add (en-camion <mercancia> <camion>))(del (mercancia-en <mercancia> <lugar>))(if (al-lado <mercancia> <mercancia2>)

;; Aquí comienza la lista de efectos condicionales;; (puede haber varios)((del (al-lado <mercancia> <mercancia2>)))

)))

)

Restricciones a los valores de las variables (funciones)

El lenguaje de Prodigy4.0 permite restringir los valores que pueden tomar lasvariables del operador. Por ejemplo, supongamos que queremos escribir eloperador que mueve un camión de un lugar a otro. Con lo que ya sabemos,podríamos escribir algo como:

(OPERATOR MUEVE-CAMION(params <camion> <desde> <hasta>)(preconds((<camion> CAMION)

(<desde> LUGAR)(<hasta> LUGAR)(<ciudad> CIUDAD))(and(en-ciudad <desde> <ciudad>)(en-ciudad <hasta> <ciudad>)(camion-en <camion> <desde>)))

(effects()((del (camion-en <camion> <desde>))(add (camion-en <camion> <hasta>)))))

Lo único a destacar del operador MUEVE-CAMION es que para mover el ca-mión primero borramos el hecho de que el camión está en un determinado lu-gar y después añadimos el hecho de que el camión está en el otro lugar.

Este operador tiene un problema, y es que en ningún lugar se afirma que ellugar "desde" y el lugar "hasta" tengan que ser distintos. Por tanto, se podríaejecutar un MUEVE-CAMION que deja al camión donde estaba. Esto no seríaerróneo, pero si ineficiente. La solución consiste en añadir una restricción a losvalores de "hasta": que tienen que ser distintos de los valores de "desde". EnProdigy4.0 podemos añadir restricciones de este tipo mediante funciones escri-tas en LISP. Por ejemplo, para comprobar que dos cosas son distintas en LISPescribiríamos:

Page 280: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 280/395

 

296  Tópicos y Aplicaciones de la Inteligencia Artificial 

(not (eq <desde> <hasta>))

La función "eq" comprueba que dos cosas son idénticas, mientras que la fun-ción "not" niega lo que va a continuación. En particular, la definición de esafunción en LISP, a la que vamos a llamar "diff", se escribe como:

(defun diff (x y)(not (eq x y)))

La definición anterior habría que colocarla en el mismo fichero de dominio("domain.lisp"). Ahora ya sólo restaría colocar la llamada a la función en el lu-gar correspondiente. Este lugar es el mismo en que se definen los tipos de lasvariables. Se haría de la siguiente manera:

((<camion> CAMION)(<desde> LUGAR)(<hasta> (and LUGAR

(diff <desde> <hasta>))

)(<ciudad> CIUDAD)

)

Para escribir funciones más complicadas es necesario conocer LISP e incluso

el funcionamiento interno del planificador.

7.6.2. DEFINICIÓN DE PROBLEMAS DE PLANIFICACIÓN 

 Aunque no se ha terminado con el lenguaje de Prodigy4.0, con lo visto hastaahora se está en condiciones de definir dominios sencillos de planificación. Enparticular, un dominio logístico simple podría contener simplemente la declara-ción de tipos y los dos operadores ya vistos (CARGAR-CAMION y MOVER-

CAMION) más uno similar (DESCARGAR-CAMION). El dominio completo semuestra en el ítem 7.6.7. El lector debería copiar este dominio al fichero"F:\lisp.exe\mis-dominios\logistica\domain.lisp", o mejor aún, teclearlo para ir practicando la sintaxis.

Para poder comprobar si este dominio funciona, es necesario definir un pro-blema de planificación (es decir, un par (estado-inicial, estado-final).

Primero se define el nombre del problema (name)

A continuación los posibles objetos (valores de variables) (objects),

Page 281: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 281/395

Mg. Abraham Gamarra Moreno  297 

el estado inicial (state) y

el estado final (goal)

La definición de problemas en Prodigy4.0 sigue el siguiente patrón:

(setf (current-problem)(create-problem(name <nombre del problema>);; posibles valores de variables y sus tipos(objects(<valor1> <valor2> ... TIPO-DE-LOS-VALORES)(<valora> <valorb> ... TIPO-DE-LOS-VALORES)...);;Estado inicial(state(and

<predicado1><predicado2>....)

) ;; cierra state;;Estado objetivo(goal(and<predicado1><predicado2>...)

);; cierra goal

);; cierra create-problem)

Supongamos que queremos definir un problema llamado problema1, en el queaparecen una mercancía m1, dos agencias de transporte agencia1 y agencia2 ,y un camión camion1. Todos ellos están en París, pero el camión y la mercan-cía están en la agencia1, mientras que el objetivo es que dicha mercancía estéfísicamente en la agencia2. Obviamente bastaría con cargar la mercancía en elcamión, moverlo a la agencia2 y descargar la mercancía. Veamos primero co-mo se representaría toda esta información en Prodigy4.0: Primero, la declara-

ción objects (objetos y tipos) quedaría así:

(objects(m1 MERCANCIA)(Paris CIUDAD)(camion1 CAMION)(agencia1 agencia2 AGENCIA))

 Además, sabemos que:

  m1 está inicialmente en la agencia1: (en-ciudad camion1 Paris)

Page 282: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 282/395

 

298  Tópicos y Aplicaciones de la Inteligencia Artificial 

  camion1 está inicialmente en la agencia1: (camion-en camion1 agencia1)

Además, tenemos que decir en que ciudad está cada uno de sus compo-nentes:

- (en-ciudad camion1 Paris)- (en-ciudad m1 Paris)

- (en-ciudad agencia1 Paris)

- (en-ciudad agencia2 Paris)

Con todo esto, se podría representar el estado inicial como:

(state(and

(en-ciudad camion1 Paris)(en-ciudad m1 Paris)(en-ciudad agencia1 Paris)(en-ciudad agencia2 Paris)(mercancia-en m1 agencia1)(camion-en camion1 agencia1)))

Para acabar, el estado final es aquel en el que la mercancía está en la agen-cia2, luego:

(goal(and(mercancia-en m1 agencia2)))

Los problemas en Prodigy4.0 se almacenan en el directorio "F:\lisp.exe\mis-dominios\logistica\probs", luego editaremos el fichero "F:\lisp.exe\mis-dominios\logistica\probs\problema1.lisp" (nótese la extensión lisp) y escribiríamos en el

la siguiente declaración completa del problema:

(setf (current-problem)(create-problem(name problema1)(objects(m1 MERCANCIA)(Paris CIUDAD)(camion1 CAMION)(agencia1 agencia2 AGENCIA))

(state(and

Page 283: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 283/395

Mg. Abraham Gamarra Moreno  299 

(en-ciudad camion1 Paris)(en-ciudad m1 Paris)(en-ciudad agencia1 Paris)(en-ciudad agencia2 Paris)(mercancia-en m1 agencia1)(camion-en camion1 agencia1)

))(goal(and(mercancia-en m1 agencia2)))

))

7.6.3. EL SISTEMA PRODIGY4.0 

Ejecución de Prodigy4.0

 Ahora ya estamos en condiciones de ejecutar Prodigy4.0 con el dominio y pro-blema escritos anteriormente. Para ello, seguir el siguiente procedimiento Pro-digy (en nuestro caso la carpeta lisp.exe debe estar en F:\):

F:\>cd lisp.exe

F:\lisp.exe>lisp -M prodigy.mem

i i i i i i i ooooo o ooooooo ooooo oooooI I I I I I I 8 8 8 8 8 o 8 8I I I I I I I 8 8 8 8 8 8I I I I I I I 8 8 8 ooooo 8ooooI \ `+' / I 8 8 8 8 8\ `-+-' / 8 o 8 8 o 8 8`-__|__-' ooooo 8oooooo ooo8ooo ooooo 8

|------+------ Copyright (c) Bruno Haible, Michael Stoll 1992, 1993

Copyright (c) Bruno Haible, Marcus Daniels 1994-1997

> (setf *world-path* "f:/lisp.exe/mis-dominios/")"f:/lisp.exe/mis-dominios/"

> (domain 'logistica);; Loading file F:\lisp.exe\mis-dominios\logistica\domain.lisp ...;; Loading of file F:\lisp.exe\mis-dominios\logistica\domain.lisp is finished.Running load-domain.0.0156001> (problem 'problema1);; Loading file F:\lisp.exe\mis-dominios\logistica\probs\problema1.lisp ...;; Loading of file F:\lisp.exe\mis-dominios\logistica\probs\problema1.lisp is finished.T

Page 284: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 284/395

 

300 Tópicos y Aplicaciones de la Inteligencia Artificial 

> (run)Creating object M1 of type MERCANCIACreating object PARIS of type CIUDADCreating object CAMION1 of type CAMIONCreating objects (AGENCIA1 AGENCIA2) of type AGENCIA

2 n2 (done)4 n4 <*finish*>5 n5 (mercancia-en m1 agencia2)7 n7 <descargar-camion m1 camion1>8 n8 (en-camion m1 camion1) [1]10 n10 <cargar-camion m1 camion1> [1]11 n11 <CARGAR-CAMION M1 CAMION1> [1]12 n12 (camion-en camion1 agencia2)14 n14 <mueve-camion camion1 agencia1 agencia2>15 n15 <MUEVE-CAMION CAMION1 AGENCIA1 AGENCIA2>15 n16 <DESCARGAR-CAMION M1 CAMION1>

 Achieved top-level goals.

Solution:<cargar-camion m1 camion1><mueve-camion camion1 agencia1 agencia2><descargar-camion m1 camion1>

#<PRODIGY result: T, 0.0156001 secs, 16 nodes, 1 sol>>

El simbolo > es un prompt donde se deben escribir las instrucciones del planifi-cador.

Inicialmente, Prodigy4.0 nos indica que objetos está creando (los mismos quele dijimos en el fichero que contiene el problema). A continuación, el planifica-dor nos muestra la traza de la resolución del problema (las líneas numeradasdesde 2 hasta 15). Más adelante veremos como interpretarla. Finalmente, Pro-digy4.0 nos da la solución, que como era de esperar, consiste en cargar el ca-mión, moverlo a la agencia2, y descargarlo. Además, Prodigy4.0 nos da infor-mación acerca del tiempo que le costó encontrar la solución, los nodos quetuvo que expandir para conseguirlo y el número de soluciones encontradas:

7.6.4. EL ALGORITMO DE PRODIGY4.0 

 Antes de poder interpretar la traza, es necesario conocer cual es el algoritmode Prodigy4.0. Prodigy4.0 es un planificador que utiliza encadenamiento haciaatrás (el cual es parecido al encadenamiento hacia atrás de Prolog). Funcionaasí puesto que aplica la heurística medios-fines, es decir, primero determinacuales son sus metas u objetivos actuales y después intenta ver que operado-res podrían conseguir esos objetivos (al igual que STRIPS). A diferencia deSTRIPS, Prodigy4.0 es un planificador no lineal, lo que quiere decir que no ne-cesita resolver las metas en orden, sino que puede dejar de trabajar en unameta y ponerse a trabajar en otra. Es decir, mientras que STRIPS asume quelas metas son independientes, Prodigy4.0 no lo hace. De esta manera, Pro-

digy4.0 puede resolver problemas como el del cohete chino, mientras queSTRIPS no puede.

Page 285: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 285/395

Mg. Abraham Gamarra Moreno  301 

Prodigy4.0 mantiene en todo momento:

la lista de metas u objetivos que le quedan por resolver. Inicialmente, con-tiene las metas que hay que alcanzar en el estado final del problema deplanificación.

el estado actual de planificación. Inicialmente, contiene el estado inicial delproblema de planificación.

 Aunque el mecanismo principal de Prodigy4.0 es la heurística medios-fines(encadenamiento hacia atrás), el planificador también encadena hacia adelante(es decir, ejecuta o aplica operadores instanciados para cambiar el estado ac-tual de planificación). El objetivo del encadenamiento hacia atrás es acercar lasmetas hacia el estado actual, mientras que el encadenamiento hacia adelantees acercar el estado actual hacia las metas. En cuanto el estado actual y lasmetas se encuentran, el problema ha sido solucionado. Entrando más en deta-

lle, el algoritmo básico de Prodigy4.0 es el siguiente:

1. Si todas las metas pendientes son ciertas en el esta-do actual, parar y devolver el plan.

2. Elegir si encadenar hacia adelante (aplicar un opera-dor instanciado sobre el estado actual) o hacia atrás(heurística medios fines).

3. Si se decidió aplicar un operador instanciado, elegirun operador relevante. Es decir, elegir un operador

cuyas condiciones sean ciertas en el estado actual deplanificación y cuyas acciones sirvan para conseguiralguna de las metas pendientes. Volver al punto 1.

4. Si se decidió encadenar hacia atrás:

1. Elegir una de las metas pendientes

2. Elegir un operador que pueda conseguir dicha me-ta (heurística medios-fines)

3. Elegir valores para las variables/argumentos del

operador que todavía no tengan valores. A estepaso se le denomina elegir "bindings"

4. Substituir la meta que se quería alcanzar, porlas precondiciones del operador elegido

5. Volver a ejecutar al punto 1 

En ocasiones, Prodigy4.0 tiene que volver atrás (backtracking), debido a queha detectado que el camino actual es un callejón sin salida. Por ejemplo, Pro-digy4.0 puede detectar que:

Una nueva meta a resolver es idéntica a otra que ya está pendiente, luegono tiene sentido continuar por ese camino.

Page 286: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 286/395

 

302  Tópicos y Aplicaciones de la Inteligencia Artificial 

La aplicación de un operador lleva a una situación de planificación por laque ya ha pasado (luego el sistema se ha metido en un ciclo).

El árbol de búsqueda de Prodigy4.0 ha alcanzado la profundidad máximapermitida, por lo que hay que volver atrás.

etc.

La vuelta atrás consiste en volver al último de los puntos de decisión de Pro-digy4.0 (marcados en negrita en la descripción del algoritmo). Por ejemplo, sila última decisión que tomó fue elegir  una de las metas pendientes y Pro-digy4.0 detecta posteriormente que tiene que volver atrás, retrocedería hastaeste punto de decisión y elegiría otra meta, y continuaría trabajando a partir deella. Por supuesto, se puede volver múltiples veces al mismo punto de deci-sión, tomando una decisión distinta cada vez que se retorna a el. A continua-ción se describen con más detalle cada uno de los encadenamientos de Pro-

digy4.0. Prodigy4.0 hace dos tipos de encadenamiento:

  Hacia atrás, siguiendo la heurística medios-fines. Esdecir, para conseguir la meta que esté intentando re-solver en ese momento, utiliza un operador que puedaalcanzar la meta y substituye la meta a resolver poraquellas precondiciones que no sean todavía ciertasen el estado actual. Por ejemplo, si Prodigy4.0 quie-re conseguir la meta de que la mercancía esté cargadaen un camión, tiene que conseguir previamente que elcamión ocupe el mismo lugar que la mercancía. Esteencadenamiento consta de tres pasos:

1. Elige la meta en la que se va a trabajar a con-tinuación de entre aquellas que todavía no hayansido resueltas. Por ejemplo, Prodigy4.0 podríaelegir la meta (mercancia-en m1 agencia2).

2. Elige un operador cuya parte derecha pueda al-canzar dicha meta. Por ejemplo, el operador des-

cargar-camion, que en su parte derecha tiene (add

(mercancia-en <mercancia> <lugar>)).

3. Si quedan variables del operador que todavía notienen valor, elige valores para dichas varia-bles. Por ejemplo, el operador descargar-camion elegido en el paso anterior tiene dos argumentos(o variables): <mercancia> y <camion>. La variable<mercancia> ya tiene un valor: m1, puesto que esaes la mercancía que se desea depositar en laagencia2. Sin embargo, todavía no se ha determina-do desde que camión se va a descargar la mercan-cía. En principio, cualquier camión serviría pa-

ra descargar la mercancía, por lo que Prodigy4.0probaría con el binding <camion>=camion1. Si por

Page 287: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 287/395

Mg. Abraham Gamarra Moreno  303 

alguna razón tuviera que volver a este punto dedecisión (backtracking), probaría con el binding<camion>=camion2, y así sucesivamente, hasta quediera con el binding adecuado. Normalmente, Pro-digy4.0 prueba primero aquellos bindings que ha-

cen que sea cierto un número máximo de precondi-ciones del operador que se está intentando uti-lizar. Por ejemplo, si fuera cierto que en lasituación actual de planificación la mercancía m1 está cargada en el camión camión15 ((en-camion m1camión15)), entonces Prodigy4.0 elegiría el bin-ding <camion> = camion15, puesto que este bindinghace que sea cierta una de las precondicionesdel operador descargar-camion. Por supuesto, estadecisión podría provocar una vuelta atrás másadelante, por lo que Prodigy4.0 podría probar

con otro binding en el futuro en este mismo pun-to de decisión.

  Hacia adelante. En algunas ocasiones, Prodigy4.0 pue-de decidir aplicar un operador cuyas precondicionessean todas ciertas en el estado actual y que sea can-didato a resolver alguna de las metas pendientes (esdecir, lo que se denomina un operador instanciado re-levante). El resultado de aplicar un operador es lamodificación del estado actual. Por ejemplo, si escierto que una mercancía está en un camión en el es-

tado actual y el operador de descargar se quería usarpara alcanzar determinada meta (por ejemplo, que lamercancía esté depositada en una determinada agen-cia), se puede aplicar dicho operador, con lo que semodificará el estado actual (la mercancía pasará deestar cargada en el camión a estar depositada en laagencia).

El objetivo de ambos encadenamientos es el de acercar las metas hacia el es-tado inicial (encadenamiento hacia atrás) y el de acercar el estado inicial hacia

las metas (encadenamiento hacia adelante). Cuando se encuentren, el pro-blema habrá sido resuelto.

7.6.5. LA TRAZA DE PRODIGY4.0 

 A continuación se explicará el significado de la traza devuelta por Prodigy4.0tras resolver un problema. En el caso anterior, esta traza era:

5 n5 (mercancia-en m1 agencia2)7 n7 <descargar-camion m1 camion1>

8 n8 (en-camion m1 camion1) [1]10 n10 <cargar-camion m1 camion1> [1]

Page 288: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 288/395

 

304 Tópicos y Aplicaciones de la Inteligencia Artificial 

11 n11 <CARGAR-CAMION M1 CAMION1> [1]12 n12 (camion-en camion1 agencia2)14 n14 <mueve-camion camion1 agencia1 agencia2>15 n15 <MUEVE-CAMION CAMION1 AGENCIA1 AGENCIA2>15 n16 <DESCARGAR-CAMION M1 CAMION1>

Se parte, del objetivo a resolver: (mercancia-en m1 agencia2) (línea n5). Aho-ra Prodigy4.0 buscaría aquellos operadores que le permiten alcanzar esa me-ta. Sólo hay uno, el operador DESCARGAR-CAMION (línea n7), el cual nos permiti-ría descargar la mercancía m1 en la agencia2, caso de estar el camion1 en di-cha agencia. Es decir, para poder aplicar el operador  DESCARGAR-CAMION, esnecesario que se cumplan sus precondiciones:

(and(en-camion <mercancia> <camion>)(camion-en <camion> <lugar>)

)

Por tanto Prodigy4.0 substituye el objetivo de descargar la mercancía en laagencia2 por dos subobjetivos: el de tener  m1 en el camión y el de tener elcamión en el lugar apropiado (agencia2). Intenta resolver primero el de tener m1cargada en el camión, lo cual manifiesta en la línea n8.

La única manera de tener la mercancía cargada en el camión (de no estarloya) es cargarla con CARGAR-CAMION, y esto es lo que nos indica en la línea n10.Puesto que el camión y la mercancía ocupan la misma posición, la mercancía

será cargada en el camión, es decir, se aplicará el operador. Aplicar el opera-dor significa que el estado actual cambia al nuevo estado resultante de aplicar el operador. Esto queda indicado en la línea n11. Nótese que siempre queProdigy4.0 aplica un operador, lo indica con letras mayúsculas.

 Ahora intentará resolver el segundo subobjetivo que se había planteado ante-riormente (camion-en camion1 agencia2) (línea n12). Para conseguirlo, dis-pone del operador MUEVE-CAMION , cuyas precondiciones son ciertas. Por ellopuede aplicarlo inmediatamente en la línea n15 (nótese las mayúsculas). Eneste momento, el camión ya está en la agencia2 y dicho camión lleva m1 abordo, luego ya puede descargarla. Es decir, ya puede aplicar el operador DES-

CARGAR-CAMION , como se puede ver en la línea n16. Ahora mismo, el estadoactual contiene el predicado (mercancia-en m1 agencia2) , que era el que re-presentaba el estado final al que se quería llegar. Por tanto el problema ha sidoresuelto y Prodigy4.0 ya puede devolver la solución.

En la Figura 7.14 se puede ver el árbol de encadenamiento hacia atrás segui-do por Prodigy4.0. Aquellos nodos con algo entre paréntesis indican un objeti-vo que Prodigy4.0 quiere satisfacer. Aquellos nodos con algo entre <...> indi-can un posible operador instanciado que Prodigy4.0 quiere utilizar para alcan-zar un objetivo (es decir, el medio para obtener el fin). Si ese nodo está en ma-yúsculas, indica que Prodigy4.0 ha aplicado ese operador y por tanto, ha cam-

biado el estado actual. Las flechas indican el orden en el que Prodigy4.0 avan-

Page 289: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 289/395

Mg. Abraham Gamarra Moreno  305 

za por los nodos. Las líneas discontinuas unen un operador con la(s) meta(s)que es necesario que se cumplan para poder aplicar ese operador.

7.6.6. VUELTA ATRÁS O BACKTRACKING 

En el ejemplo anterior, Prodigy4.0 resolvió el problema inmediatamente sinequivocarse en ninguna de las decisiones que tomó. Por ejemplo, al substituir la meta (mercancia-en m1 agencia2) por las precondiciones:

(en-camion <mercancia> <camion>)(camion-en <camion> <lugar>)

Dichas precondiciones están escritas en el operador en el orden adecuado:primero hay que tener la mercancía cargada en el camión y después hay que

llevar el camión al lugar donde se va a efectuar la descarga. Pero ¿qué ocurresi ponemos al revés las precondiciones del operador DESCARGAR-CAMION ?:

(camion-en <camion> <lugar>)(en-camion <mercancia> <camion>)

El resultado sería el que aparece en la siguiente traza (tras haber salvado elnuevo dominio, ejecutado (domain 'logistica) , (problem 'problema1) y(run) ):

5 n5 (mercancia-en m1 agencia2)7 n7 <descargar-camion m1 camion1>8 n8 (camion-en camion1 agencia2) [1]

10 n10 <mueve-camion camion1 agencia1 agencia2>11 n11 <MUEVE-CAMION CAMION1 AGENCIA1 AGENCIA2> [1]12 n12 (en-camion m1 camion1)14 n14 <cargar-camion m1 camion1> [1]15 n15 (camion-en camion1 agencia1)17 n17 <mueve-camion camion1 agencia2 agencia1> ...applying leads to state loop.13 n13 cargar-camion14 n19 <cargar-camion m1 camion1> ...goal loop with node 510 n10 <mueve-camion camion1 agencia1 agencia2>11 n20 (en-camion m1 camion1)13 n22 <cargar-camion m1 camion1> [1]14 n23 <CARGAR-CAMION M1 CAMION1>15 n24 <MUEVE-CAMION CAMION1 AGENCIA1 AGENCIA2>15 n25 <DESCARGAR-CAMION M1 CAMION1>.

Page 290: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 290/395

 

306  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 7.14. Árbol de encadenamiento hacia atrás seguido por Prodigy4.0.

1>

Page 291: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 291/395

Mg. Abraham Gamarra Moreno  307 

 Achieved top-level goals

Solution:<cargar-camion m1 camion1>

<mueve-camion camion1 agencia1 agencia2><descargar-camion m1 camion1>

#<PRODIGY result: t, 0.06 secs, 25 nodes, 1 sol>

Vemos que Prodigy4.0 ha encontrado la solución a pesar de todo. En resumen,el razonamiento seguido por Prodigy4.0 ha sido:

Tengo que resolver la meta (mercancia-en m1 agencia2) 

5 n5 (mercancia-en m1 agencia2)

Una manera de hacerlo es descargando la mercancía m1 utilizando el ope-rador DESCARGAR-CAMION 

7 n7 <descargar-camion m1 camion1>

Pero para poder utilizarlo, tengo que resolver primero las metas:

- (camion-en camion1 agencia2) y

- (en-camion m1 camion1)

  Elijo la primera ((camion-en camion1 agencia2))

8 n8 (camion-en camion1 agencia2) [1]

Para poder conseguirla, puedo utilizar el operador MUEVE-CAMION, para mo-ver el camión a la agencia2 

10 n10<mueve-camion camion1 agencia1 agencia2>

  Como estoy en condiciones de aplicar el operador, elijo hacerlo, de mane-

ra que a partir de ahora, el camión está en la agencia2 (Nótese que esto eserroneo: no tiene sentido mover el camión al lugar de destino antes de car-gar la mercancía, pero Prodigy4.0 no se ha dado cuenta, puesto que re-suelve las metas o las precondiciones en el orden que se le dan. Más ade-lante, Prodigy4.0 tendrá que volver atrás (backtracking) hasta este punto,elegir no aplicar el operador, y preferir resolver la segunda meta pendiente(tener la mercancía en el camión), que es lo correcto)

11 n11 <MUEVE-CAMION CAMION1 AGENCIA1 AGENCIA2> [1]

Intento resolver ahora la segunda meta pendiente (en-camion m1 camion1) 

12 n12 (en-camion m1 camion1)

Page 292: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 292/395

 

308  Tópicos y Aplicaciones de la Inteligencia Artificial 

Puedo utilizar para ello el operador CARGAR-CAMION. Aunque dos de las va-riables del operador quedan fijadas (<mercancia>=m1 y <camion>=camion1,<lugar> no queda fijada, luego hay que decidir uno de los dos posiblesbindings. Elijo el primero <lugar>=agencia1. Caso de equivocarme, tendríaque volver a este punto de decisión y elegir el segundo binding (con laagencia2). Todo esto es lo que ha ocurrido en el nodo n14. El binding <lu-gar>=agencia1 no aparece puesto que es una variable interna del opera-dor. Si quisieramos que apareciera explícitamente, podríamos haber decla-rado la variable <lugar> en el <params> del operador CARGAR-CAMION 

14 n14 <cargar-camion m1 camion1> [1]

Por tanto, una de las precondiciones va a ser que el camión esté en laagencia1 

n15 (camion-en camion1 agencia1)

Pero para ello, me tengo que traer el camión de vuelta a agencia1.

15 n15 (camion-en camion1 agencia1)

17 n17 <mueve-camion camion1 agencia2 agencia1> ...applying leads tostate loop.

Desgraciadamente, si aplicara el operador MUEVE-CAMION, esto me llevaría

a volver a tener el camión camion1 en la agencia1, estado que ya era ciertoinicialmente. He entrado en un ciclo (...applying leads to state loop).

17 n17 <mueve-camion camion1 agencia2 agencia1> ...applying leads tostate loop.

Por tanto, he estado perdiendo el tiempo. Tengo que volver al último puntode decisión y tomar una decisión distinta a la que había tomado. Este últi-mo punto de decisión es cuando elegí el binding <lugar>=agencia1 para eloperador CARGAR-CAMION. Recordar que dicho operador exigía que la mer-cancía y el camión estuvieran en el mismo lugar, pero había que decidir 

qué lugar era ese. Había decidido que ese lugar era la agencia1. Ahoraelegiré el binding <lugar>=agencia2. Con ese binding, la primera precondi-ción de CARGAR-CAMION ((camion-en camion1 agencia2)) ya es cierta, pues-to que el camión está en la agencia2 (lo hemos movido allí hace un mo-mento). Luego intentaré hacer cumplir la segunda: (mercancia-en m1

agencia2). Sin embargo, esta es la misma meta que intentabamos conse-guir en el nodo n5, por lo que he entrado en un ciclo: he estado perdiendoel tiempo ("goal loop with node 5").

14 n19 <cargar-camion m1 camion1> ...goal loop with node 5

Tendré que volver al anterior punto de decisión. En ese punto de decisiónhabía intentado aplicar el operador que movía el camión a la agencia2. En

Page 293: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 293/395

Mg. Abraham Gamarra Moreno  309 

lugar de aplicar el operador, ahora decidiré no aplicarlo y seguir trabajandoen otra meta. Tiempo habrá de aplicarlo en el futuro. Por tanto, el camiónvuelve a estar en agencia1 puesto que no se ha movido. Ahora intentaréresolver la segunda meta de MUEVE-CAMION que tenía pendiente: (en-

camion m1 camion1) y que había sido originada al intentar utilizar el opera-

dor MUEVE-CAMION:

10 n10 <mueve-camion camion1 agencia1 agencia2>

11 n20 (en-camion m1 camion1)

Para ello, puedo utilizar el operador CARGAR-CAMION 

13 n22 <cargar-camion m1 camion1> [1]

Las precondiciones de dicho operador son ciertas en la situación inicial,

por lo que puedo aplicarlo:14 n23 <CARGAR-CAMION M1 CAMION1>

También son ciertas las precondiciones de MUEVE-CAMION. Voy a probar aaplicarlo (aunque antes me equivoqué).

15 n24 <MUEVE-CAMION CAMION1 AGENCIA1 AGENCIA2>

Finalmente, las precondiciones de DESCARGAR-CAMION ya son ciertas,por lo que ya puedo aplicar dicho operador.

15 n25 <DESCARGAR-CAMION M1 CAMION1>

En este momento, no quedan metas, por lo que mi trabajo ha concluido.Devuelvo el plan y acabo.

7.6.7. DOMINIO LOGÍSTICO SIMPLE 

;; Dominio logístico;; Este fichero debería llamarse F:\lisp.exe\mis-dominios\logistica/domain.lisp

(in-package "USER")

(create-problem-space 'logistica :current t)

(ptype-of MERCANCIA :top-type)(ptype-of TRANSPORTE :top-type)(ptype-of CAMION TRANSPORTE)(ptype-of AVION TRANSPORTE)(ptype-of LUGAR :top-type)(ptype-of AEROPUERTO LUGAR)

(ptype-of AGENCIA LUGAR)(ptype-of CIUDAD :top-type)

Page 294: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 294/395

 

310 Tópicos y Aplicaciones de la Inteligencia Artificial 

(OPERATOR CARGAR-CAMION(params <mercancia> <camion>)(preconds((<mercancia> MERCANCIA)(<camion> CAMION)

(<lugar> LUGAR)(<ciudad> CIUDAD))(and

(en-ciudad <mercancia> <ciudad>)(en-ciudad <camion> <ciudad>)(camion-en <camion> <lugar>)(mercancia-en <mercancia> <lugar>)

))(effects()((add (en-camion <mercancia> <camion>))

(del (mercancia-en <mercancia> <lugar>))))

)

(OPERATOR DESCARGAR-CAMION(params <mercancia> <camion>)(preconds((<mercancia> MERCANCIA)(<camion> CAMION)(<lugar> LUGAR))(and

(en-camion <mercancia> <camion>)(camion-en <camion> <lugar>)

))(effects()((del (en-camion <mercancia> <camion>))(add (mercancia-en <mercancia> <lugar>)))

))

(OPERATOR MUEVE-CAMION

(params <camion> <desde> <hasta>)(preconds((<camion> CAMION)(<desde> LUGAR)(<hasta> (and LUGAR

(diff <desde> <hasta>))

)(<ciudad> CIUDAD))(and(en-ciudad <desde> <ciudad>)

(en-ciudad <hasta> <ciudad>)(camion-en <camion> <desde>)))

Page 295: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 295/395

Mg. Abraham Gamarra Moreno  311 

(effects()((del (camion-en <camion> <desde>))(add (camion-en <camion> <hasta>)))))

;; Función para comprobar que dos cosas son diferentes.

(defun diff (x y)(not (eq x y)))

7.6.8. PROBLEMA LOGÍSTICO SIMPLE 

(setf (current-problem)(create-problem(name problema1)(objects(m1 MERCANCIA)(Paris CIUDAD)

(camion1 CAMION)(agencia1 agencia2 AGENCIA))

(state(and(en-ciudad camion1 Paris)(en-ciudad m1 Paris)(en-ciudad agencia1 Paris)(en-ciudad agencia2 Paris)(mercancia-en m1 agencia1)(camion-en camion1 agencia1))

)(goal(and(mercancia-en m1 agencia2)))

)) ; Cierra setf 

7.6.9. OPCIONES DE EJECUCIÓN DE PRODIGY4.0 

Carga del dominio 

Ejecutar el comando "prodigy". Después, hay que darle valor a la variable queindica dónde están los dominios:

(setf *world-path* "~/mis-dominios/")

Es importante poner la última barra (/) en el nombre del directorio.

Para cargar el dominio:

Page 296: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 296/395

 

312  Tópicos y Aplicaciones de la Inteligencia Artificial 

(domain '<nombre dominio>)(ejemplo: (domain 'logistica))

La carga del dominio involucra la carga del fichero "domain.lisp" del dominiocorrespondiente. Si queremos que Prodigy4.0 se ejecute más rápido, se puedepre-compilar el dominio:

(domain '<nombre dominio> :compile: t)

Carga del problema

El comando

(problem '<nombre de problema>)

carga el problema. Todos los problemas deben estar en un subdirectorio deldominio llamado "probs". Por ejemplo, pueden estar en:

F:/lisp.exe/mis-dominios/logistica/probs/

Ejecutando Prodigy4.0

Una vez cargado el dominio y un problema, se puede ejecutar Prodigy4.0 conel comando:

(run)

Prodigy4.0 expande un árbol cuya profundidad máxima por omisión es de 30.Si durante el proceso alcanza la profundidad máxima, realiza un retroceso (ba-cktracking). En ocasiones, la profundidad necesaria para encontrar la soluciónes mayor de 30, por lo que hay que cambiarla. Esto se puede hacer ejecutandoProdigy4.0 con:

(run :depth-bound 50)

Para que la profundidad sea mayor (50 en este caso). También podemos limi-tar a Prodigy4.0 en el tiempo máximo que tiene disponible para solucionar el

problema:(run :time-bound 100)

El comando anterior ejecutaría a Prodigy4.0 durante 100 segundos. Si en esetiempo no encuentra una solución, devolvería fallo. Por supuesto, podemosusar ambas opciones al mismo tiempo:

(run :depth-bound 50 :time-bound 100)

Es interesante saber que si el plan que devuelve Prodigy4.0 tiene 10 pasos(es decir, la aplicación de 10 operadores instanciados), el árbol que debe ex-

Page 297: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 297/395

Mg. Abraham Gamarra Moreno  313 

plorar Prodigy4.0 tiene una profundidad de, al menos, 3+(4*10). Es decir, si lasolución tiene n pasos, la profundidad del árbol tiene que ser de al menos3+(4*n). Si a Prodigy4.0 le ponemos un depth-bound menor de esa cantidad,será incapaz de encontrar la solución.

En ocasiones no queremos ver la traza, sólo la solución (el plan). Eso se con-sigue con:

(run :output-level 1)

7.7. EJEMPLOS PROPUESTOS: 

Considérese la tarea simple de ir a buscar una caja de una habitación contiguacon un vehículo robot. Sea el estado inicial del modelo del mundo del robot elmostrado en la figura 7.15 .

Suponga que existe dos operadores IR_A_TRAVES y EMPUJAR_A_TRAVEScon la siguiente descripción:

IR_A_TRAVES(d,r1,r2). El robot pasa por la puerta d desde la ha-

bitación r1 hasta la habitación r2.

Precondición: ENHABITACION(ROBOT,r1) and CONE-XION(d,r1,r2) el robot está en la habitación r1 y la puerta d conectaa las habitaciones r1,r2.

Lista de borrado: ENHABITACION(ROBOT,S) para cualquier valor de S.

Lista de añadidos: ENHABITACION(ROBOT,r2).

EMPUJAR_A_TRAVES(b,d,r1,r2): El robot empuja el objeto b a

través de la puerta d desde la habitación r1 hasta la habitación r2.

Precondición: ENHABITACION(b,r1) and ENHABITA-CION(ROBOT,r1) and CONEXION(d,r1,r2).

Lista de borrado: ENHABITACION(ROBOT,S), ENHABITA-CION(b,S).

Lista de añadidos: ENHABITACION(ROBOT,r2), ENHABITA-CION(b,r2).

Si se tiene la disposición inicial siguiente:

ENHABITACION(ROBOT,r1)

CONEXION(d1,r1,r2)

CONEXION(d2,r2,r3)

Page 298: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 298/395

 

314 Tópicos y Aplicaciones de la Inteligencia Artificial 

BOX(b1)

ENHABITACION(b1,r2)

Y se desea alcanzar el siguiente objetivo final

BOX(b1) and ENHABITACION(b1,r1)

Realice la solución.

Figura 7.15 Modelo del mundo inicial

Puertad1

Puertad2

robot

HABITACION R1 HABITACION R2

HABITACION R3

Caja b1

Page 299: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 299/395

Mg. Abraham Gamarra Moreno  315 

SOLUCION:

BOX(b1) and

ENHABITACION(b1,r1)

ENHABITACION(ROBOT,r1)

CONEXION(d1,r1,r2)

CONEXION(d2,r2,r3)

BOX(b1)ENHABITACION(b1,r2) Realice la

soluciónutilizandoPRODIGY

Page 300: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 300/395

 

316  Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 301: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 301/395

Mg. Abraham Gamarra Moreno  317 

CAPITULO OCHOFUNDAMENTOS DE LA VISIÓN ARTIFICIAL

 Al igual que sucede en el ser humano, la capacidad de visión dota al robot conun sofisticado mecanismo de percepción que permite a la máquina responder asu entorno de una forma inteligente y flexible. El uso de la visión y otros es-quemas de percepción, están motivados por la constante necesidad de aumen-tar la flexibilidad y los campos de aplicación de los sistemas de robótica. Así

como la percepción de la proximidad del contacto juega un papel significativoen el perfeccionamiento del comportamiento del robot, la visión se consideracomo la más potente capacidad sensorial de un robot. Como es de suponer,los sensores, conceptos y hardware de proceso asociados con la visión artifi-cial son considerablemente más complejos que los asociados con las capaci-dades de percepción con sensores de proximidad, contacto, etc.

La visión artificial puede ser definida como los procesos de obtención, caracte-rización e interpretación de información de imágenes tomadas de un mundotridimensional. Estos procesos, también habitualmente llamados visión por computadora, pueden a su vez ser subdivididos en seis áreas principales: 1)

captación, 2) preprocesamiento, 3) segmentación, 4) descripción, 5) reconoci-miento, 6) interpretación. La captación es el proceso a través del cual se obtie-ne una imagen visual. El preprocesamiento incluye técnicas tales como la re-ducción de ruido y realce de detalles. La segmentación es el proceso que divi-de una imagen en objetos que sean de nuestro interés. Mediante los procesosde descripción se obtienen características (por ejemplo, tamaño, forma) con-venientes para diferenciar un tipo de objeto de otro. El reconocimiento es elproceso que identifica estos objetos (por ejemplo, una llave inglesa, un tornillo,un soporte de motor). Finalmente, la interpretación le asocia un significado aun conjunto de objetos reconocidos.

Es conveniente agrupar estas diversas áreas de acuerdo con la complicación ydelicadeza que lleva aparejada su implementación. Consideraremos tres nive-

Page 302: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 302/395

 

318  Tópicos y Aplicaciones de la Inteligencia Artificial 

les de procesamiento: visión de bajo, medio y de alto nivel. Debido a que noexisten unas fronteras claras entre estos tres niveles, nos ceñiremos a un mar-co de trabajo útil para categorizar los diversos procesamientos que componenun sistema de visión artificial. Así asociaremos a la visión de bajo nivel aque-llos procesos que son primarios en el sentido de que pueden ser considerados

«reacciones automáticas» sin requerir ningún tipo de inteligencia. En esta pre-sentación trataremos la percepción y el preprocesamiento como funciones devisión de bajo nivel. Partiendo del proceso de formación de la imagen en sí,pasaremos a compensaciones, tales como la reducción de ruido, para final-mente estudiar la obtención de características de la imagen primitiva tales co-mo las discontinuidades de intensidad. Esta sucesión de procesamiento puedeser comparada con los procesos de percepción y adaptación que un hombrelleva a cabo cuando intenta encontrar un asiento en un teatro oscuro, inmedia-tamente después de haber estado paseando durante una tarde soleada. Elproceso inteligente de conseguir una butaca desocupada no podrá dar co-mienzo hasta que no esté disponible una imagen adecuada.

 Asociaremos a la visión de nivel intermedio aquellos procesos que extraen,caracterizan y etiquetan componentes de la imagen que se obtiene de la visiónde bajo nivel. En términos de nuestra división en seis apartados, trataremos lasegmentación, la descripción y el reconocimiento de objetos individuales comofunciones de visión de nivel intermedio. La visión de alto nivel se refiere a pro-cesamientos que tratan de emular la cognición. Mientras que los algoritmospara la visión de bajo y medio nivel conllevan un espectro de actividades bas-tante bien definidas, nuestro conocimiento y comprensión de los procesos devisión de alto nivel son considerablemente más difusos y especulativos.

Las categorías y subdivisiones antes presentadas están basadas en la formaen que son implementados la gran mayoría de los sistemas de visión artificial.Ello no implica que estas subdivisiones sirvan también de modelo para la visiónhumana ni que puedan llevarse a cabo unas independientes de otras. Sabe-mos, por ejemplo, que el reconocimiento y la interpretación son funciones al-tamente interrelacionadas en el ser humano. Estas relaciones, de todas for-mas, no son aún bien entendidas hasta el punto de que pueden ser modeladasanalíticamente. Así pues, la subdivisión de funciones que se ha presentadoanteriormente puede ser vista como un esquema práctico para llevar a cabonuevas realizaciones de sistemas de visión artificial, usando nuestro nivel deconocimiento y las herramientas analíticas que suelen emplearse en este cam-po.

An tes de emp ezar con el análisis d e la Visión A rt if ic i al se recom ienda leer los arc hiv os q ue se encu entran en el CD, qu e permiten manejar imágenes en Visual B asic .NET 

Page 303: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 303/395

Mg. Abraham Gamarra Moreno  319 

8.1. ADQUISICIÓN DE IMÁGENES 12  

La información visual se convierte en señales eléctricas por los sensores visua-les. Cuando estas señales eléctricas se muestran espacialmente, y se cuantifi-can en amplitud, obtendremos de ellas una imagen digital.

Los principales dispositivos usados para la visión artificial son las cámaras detelevisión, que están compuestas por un sensor basado en dispositivo de esta-do sólido o válvulas electrónicas y electrónica asociada. Aunque un tratamientoen profundidad de estos dispositivos está más allá del objetivo de la presenteobra. Aquí presentamos los principios de funcionamiento de los sensores deimagen de estado sólido a través del estudio de los dispositivos de acopla-miento de carga (CCD), los cuales son uno de los principales exponentes deesta tecnología. Los dispositivos de tratamiento de imagen de estado sólidonos ofrecen gran número de ventajas sobre las cámaras de tubos, como sonsu menor peso, menor tamaño, más larga vida y menor consumo de potencia.

No obstante, la resolución de algunos tubos está todavía por encima de lascapacidades de las cámaras de dispositivos de estado sólido.

8.1.1. DISPOSITIVOS CCD 

 A la hora de tratar los dispositivos CCD es conveniente dividir los sensores endos categorías: sensores de exploración de línea y sensores de área. El com-ponente básico de un sensor CCD de exploración de línea es una hilera deelementos de silicio llamado photosites. Los fotones de la imagen pasan a tra-vés de una estructura transparente policristalina de silicio y son absorbidos en

el cristal de silicio, creando así pares electrón-hueco. Los fotoelectrones queasí se obtienen son recogidos en los photosites, siendo la cantidad de cargaacumulada en cada photosite proporcional a la intensidad lumínica en ese pun-to. Según se muestra en la figura 8.1a., un sensor de exploración de línea típi-co esta compuesto por una fila de los elementos de imagen, dos puertas detransferencias usadas para registrar los contenidos de los elementos de ima-gen en los así llamados registros de transporte y una puerta de salida usadapara transferir los contenidos de los registros de transporte a un amplificador cuya salida es una señal de tensión proporcional a los contenidos de la hilerade photosites.

Los sensores de área son similares a los de exploración de línea, con la dife-rencia de que los photosites están reunidos en forma de matriz y existe un con- junto de registros de transporte y puertas para cada columna de photosites,según se observa en la figura 8.1b. Los contenidos de los photosites imparesson secuencialmente transferidos a los registros verticales de transporte y pos-teriormente al registro horizontal de transporte. El contenido de este registro esenviado a un amplificador cuya salida es una línea de vídeo, Repitiendo esteprocedimiento para las líneas pares completamos el segundo campo de uncuadro de televisión. Este «mecanismo de exploración» se repite 30 veces por segundo.

12 Fu K, Gonzalez R, Lee C. Robótica: Control, Detección, Visión e Inteligencia. España:Mc Graw Hill; 1988.

Page 304: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 304/395

 

320 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 8.1. a) Sensor exploración de línea b) Sensor área CCD.

De las cámaras de exploración de línea se obtendrá obviamente una línea por cada imagen de entrada. Estos dispositivos se ajustan muy bien para aplica-ciones en las cuales los objetos se mueven enfrentándose al sensor (como enlas cintas transportadoras). El movimiento de un objeto en la dirección perpen-dicular al sensor produce una. imagen bidimensional. La resolución de los sen-sores de exploración de líneas normales oscilan entre los 256 y los 2048 ele-mentos. La resolución de los sensores de áreas varia entre 32 x 32 elementospara un sensor de baja resolución y 256 x 256 elementos para los sensores deresolución media. Los dispositivos de resolución más alta actualmente en elmercado incluyen del orden de 480 x 380 elementos y los sensores CCD expe-rimentales son capaces de obtener resoluciones de 1024 x 1024 elementos omayores.

Page 305: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 305/395

Mg. Abraham Gamarra Moreno  321 

 A través de esta obra, usaremos f(x,y) para indicar la imagen bidimensionalque se obtiene con una cámara de televisión u otro dispositivo de imagen,donde x e y indican las coordenadas espaciales (esto es, el plano de la ima-gen) y el valor de f en cualquier punto (x,y) es proporcional al brillo (intensidad)de la imagen en ese punto. La figura 8.2 ilustra este concepto, así como el

convenio de coordenadas en el cual estará basado nuestro estudio. Se usará amenudo la variable z para indicar las variaciones de intensidad en una imagencuando la localización espacial de estas variaciones no es de interés.

Para estar en condiciones adecuadas para el procesamiento por computadora,una función de imagen f(x, y) debe ser digitalizada espacialmente y en ampli-tud (intensidad). La digitalización de las coordenadas espaciales (x,y) se de-nominará muestreo de imagen, mientras que la digitalización de amplitud sellamará cuantización de intensidad o nivel de gris. Este último término es apli-cable a las imágenes monocromas y refleja el hecho de que estas imágenesvarían del negro al blanco en tonos del gris. Los términos intensidad y nivel de

gris se usarán indistintamente.

Figura 8.2. Convenio de coordenadas para representación de imagen. El valor de cualquier punto(x, y) viene dado por el valor (intensidad) de f en ese punto.

Supóngase que una imagen continua se muestrea uniformemente obteniéndo-se una matriz de N filas y M columnas, donde cada muestra está cuantizada enintensidad. Esta matriz, llamada imagen digital, puede ser representada como

Page 306: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 306/395

 

322  Tópicos y Aplicaciones de la Inteligencia Artificial 

donde x e y son ahora variables discretas: x=0, 1, 2,..., N—1; y=0, l, 2, … , M—1. Cada elemento de la matriz se llama elemento de imagen o píxel. Tomandocomo referencia la matriz anterior, se observa que f(0,0) representa el pixel del

origen de la imagen, f(0,1) el pixel que se encuentra a su derecha, y así suce-sivamente. Es una práctica habitual hacer que N, M y el nümero de niveles dis-cretos de intensidad de cada pixel cuantizado sean potencias enteras de 2.

En la figura 8.3 podemos observar los efectos del muestreo y la cuantización.

En la parte a) de esta figura se muestra una imagen muestreada en una matrizde N x N pixels con N = 512, y la intensidad de cada pixel está cuantizada enuno de 256 niveles discretos. La figura 8.3b a e nos muestra la misma imagen,pero tomando N = 256, 128, 64 y 32. En todos los casos se mantiene el núme-ro de niveles de intensidad en 256. Como el área de pantalla usada para cada

imagen es la misma (512 x 512 puntos de pantalla), los pixels de las imágenesde más baja resolución están duplicados con objeto de llenar completamente elespacio de pantalla. Esto produce un efecto de tablero de damas que es parti-cularmente visible en las imágenes de baja resolución. Es de destacar que laimagen de 256 x 256 es razonablemente parecida a la figura 8.3a, pero la cali-dad de la imagen se deteriora rápidamente para otros valores de N.

La figura 8.4 lustra el efecto producido por la reducción del número del nivel deintensidad manteniendo constante la resolución espacial en 512 x 512 Lasimágenes de 256, 128 y 64 niveles son de una calidad aceptable. La imagende 32 niveles muestra una ligera degradación (particularmente en las zonas

con poca variación de intensidad) debido al uso de demasiado pocos nivelespara representar cada pixel. Este efecto es considerablemente más visible enla imagen obtenida por 16 niveles, y posteriormente se incrementa mucho, ob-teniéndose estructuras en forma de cresta (llamados contornos falsos).

El número de niveles de intensidad y muestras necesarias para producir unareproducción útil (en el sentido de visión artificial) de una imagen original de-pende de la imagen misma y de la aplicación para la que se usará. Como basede comparación, los requerimientos para obtener una calidad comparable a lade las imágenes de la televisión monocroma son del orden de 512 x 512 pixelscon 128 niveles de intensidad. Como regla un sistema de trabajo de visión arti-

ficial de uso general debe tener una capacidad de resolución del orden de 256x 256 pixels con 64 niveles.

Page 307: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 307/395

Mg. Abraham Gamarra Moreno  323 

Figura 8.3. Efectos de la reducción del tamaño de la rejilla muestreadota. a) 512 x 512. b) 256 x256. c) 128 x 128. d) 64 x 64. e) 32 x 32.

Page 308: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 308/395

 

324 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 8.4. Una imagen 512 x 512 visualizada con 256, 28, 64, 32, 16, 8,4 y 2 niveles.

8.1.2. TECNICAS DE ILUMINAC IÓN 

La iluminación de la imagen es un factor importante que suele afectar a lacomplejidad de los algoritmos de visión. La iluminación arbitraria del entorno no

Page 309: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 309/395

Mg. Abraham Gamarra Moreno  325 

suele ser aceptable ya que se obtienen imágenes con bajo contraste, reflexio-nes especulares, sombras y detalles espúreos. Un sistema de luces bien dise-ñado ilumina una imagen de forma que la complejidad del gráfico que se obtie-ne sea mínima, aumentándose a su vez la información necesaria para la de-tección y extracción del objeto.

En la figura 8.5 se muestran cuatro de las principales técnicas usadas parailuminar el área de trabajo del robot. El uso de la iluminación difusa presentadoen la figura 8.5a se puede utilizar para objetos caracterizados por superficiessuaves y regulares. Esta forma de iluminación se suele emplear en aplicacio-nes donde las características de la superficie son importantes. En la figura 8.6se puede observar un ejemplo. La iluminación desde la parte posterior del ob- jeto, mostrada en la figura 8.5b, produce imágenes en blanco y negro (sin ma-tices). Esta técnica se adapta muy bien a aplicaciones en las cuales las silue-tas de los objetos son suficientes para el reconocimiento u otras medidas. Lafigura 8.7 es un ejemplo de las imágenes obtenidas usando esta técnica.

Figura 8.5 Cuatro sistemas de iluminación básico.

Page 310: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 310/395

 

326  Tópicos y Aplicaciones de la Inteligencia Artificial 

La técnica de iluminación estructural que se muestra en la figura 8.5c se sirvede la proyección de puntos, franjas o rejillas sobre la superficie de trabajo. Conesta técnica tenemos dos ventajas importantes. En primer lugar establece unpatrón de luz conocido sobre la superficie de trabajo y las diferencias con estepatrón indican la presencia de un objeto, simplificándose así el problema de

detección del objeto. En segundo lugar, analizando la forma en que el patrónde luz es distorsionado, es posible obtener información de las característicastridimensionales del objeto. En la figura 8.8 se pueden observar dos ejemplosdel uso de esta técnica de iluminación. El primero de ellos nos muestra un pa-ralelepípedo iluminado por planos paralelos de luz que se convierten en franjasde iluminación al intersectar con una superficie plana. El ejemplo que se mues-tra en la figura 8.8b usa dos planos de luz proyectados sobre diferentes direc-ciones, pero convergentes sobre una única franja en la superficie, como sepuede observar en la figura 8.9.

Una cámara de exploración de línea, situada por encima de la superficie y en-

focada hacia la franja, detectaría una línea continua de luz en la ausencia deobjetos. Esta línea seria interrumpida por un objeto que atravesase simultá-neamente ambos planos de luz. Esta técnica se adapta muy bien para objetosque se muevan en una cinta transportadora enfrentada a la cámara. Se usandos fuentes de luz para garantizar que el objeto fragmentará la franja de luzsólo cuando esté directamente debajo de la cámara. Es interesante destacar que la cámara de exploración de línea ve sólo la línea en la cual los dos planosde luz convergen, pero la información bidimensional puede ir acumulándosemientras el objeto se mueve por delante de la cámara.

La técnica de iluminación direccional mostrada en la figura 8.5d es útil, en prin-

cipio, para la inspección de la superficie de los objetos. Los defectos en la su-perficie tales como hoyos y arañazos, pueden ser detectados usando un hazde luz altamente direccional (por ejemplo, un haz láser) y medir el grado dedispersión. Para superficies sin desperfectos se difumina un poco de luz endirección hacia la cámara. Por otro lado, la presencia de un desperfecto sueleincrementar la cantidad de luz dispersada hacia la cámara, facilitando así ladetección del defecto. Se muestra un ejemplo en la figura 8.10.

Figura 8.6. Ejemplo de iluminación difusa.

Page 311: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 311/395

Mg. Abraham Gamarra Moreno  327 

Figura 8.7. Ejemplo de retroiluminación.

Figura 8.8. Dos ejemplos de iluminación estructurada.

Page 312: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 312/395

 

328  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 8.9. a) Vista superior de dos pianos de luz que se intersectan en una línea de luz. b) El obje-

to se verá por la cámara solamente cuando inlerrumpa ambos planos de luz.

Page 313: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 313/395

Mg. Abraham Gamarra Moreno  329 

Figura 8.10. Ejemplo de iluminación direccional.

8.2. PREPROCESAMIENTO 12  

En esta sección veremos diversas técnicas de procesamiento usadas en sis-temas de visión artificial. Aunque el número de técnicas disponibles para elprocesamiento general de datos de imagen es elevado, sólo una parte de es-tos métodos satisface los requerimientos de velocidad de procesamiento y bajocoste de implementación, los cuales son características esenciales de un sis-

tema industrial de visión. El conjunto de técnicas de proceso tratadas en estasección son métodos de uso habitual que satisfacen estos requerimientos.

8.2.1. ALGUNAS RELACIONES BÁSICAS ENTRE PIXELS 

En esta sección veremos algunas relaciones básicas, pero importantes, entrelos pixels de una imagen digital. Dado que una imagen viene dada por f(x,y), alreferirnos a un pixel particular usaremos letras minúsculas, tales como p y q.Un subconjunto de pixels de f(x,y) se notará por S.

Vecinos de un. pixel

Un pixel p de coordenadas (x,y) tiene cuatro vecinos horizontales y verticalescuyas coordenadas vienen dadas por 

(x+1,y) (x—l,y) (x,y+1)

(x,y—1)

Este conjunto de pixels, llamados los 4-vecinos de p, será llamado N4(p). Cadauno de estos cuatro pixels se encuentra a una distancia unitaria de (x,y) y al-

gunos de los vecinos de p se encontrarán fuera de la imagen digital si (x,y) es-tá en el borde de la imagen.

Page 314: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 314/395

 

330 Tópicos y Aplicaciones de la Inteligencia Artificial 

Los cuatro vecinos diagonales de p tienen coordenadas

(x+l,y+1) (x+l,y—1) (x—1,y+1)

(x—l,y—1)

y nos referiremos a ellos como ND(p) Estos puntos, junto con los 4 definidosantes, se llaman los 8-vecinos de p, y se les nombra N8(p). Como antes, algu-nos de los puntos de ND(p) y N8(p) se encontrarán fuera de la imagen si (x,y)está en el borde de la imagen.

La figura 8.11 muestra una vecindad de 3x3 para N8(p).

8.2.2. SUAVIZADO 

Las operaciones de suavizado se usan para reducir ruido y otros efectos espú-

reos que pueden estar presentes en una imagen como resultado del mues-treado, cuantización, transmisión o perturbaciones en el entorno durante elproceso de obtención de la imagen. En esta sección consideraremos algunosmétodos rápidos de suavizado que son apropiados para su uso en un sistemade visión de un robot

Filtración de la mediana

Otros métodos desdibujan los contornos y otros detalles de forma. Este desdi-bujamiento se suele reducir, en gran medida, usando los llamados filtros de la

mediana, en los cuales sustituimos la media de las intensidades por la media-na en un entorno de vecindad predefinido de cada pixel.

Recordemos que la mediana M de un conjunto de valores es tal que la mitadde los valores del conjunto son menores que M y la mitad de los valores sonmayores que M. Con el objeto de realizar una filtración de la mediana en elentorno de vecindad de cada pixel, ordenamos los valores de intensidad decada pixel y sus vecinos, determinamos la mediana y asignamos esta última ala Intensidad del pixel. Por ejemplo, en un entorno de vecindad de 3 x 3 la me-diana es el quinto valor más grande, en un entorno de 5 x 5 la mediana es ell3o, valor más grande y así sucesivamente. Cuando varios pixels en el entorno

de vecindad tienen el mismo valor, los agrupamos de la siguiente forma: Su-póngase que un entono de vecindad 3x3 tiene valores(10,20,20,20,l5,20,20,25,100). Estos valores se ordenarán(l0,15,20,20,20,20,20,25,100), obteniéndose el valor 20 de mediana. Si pen-samos un poco nos daremos cuenta de que la principal función de la filtraciónde la mediana es hacer que los puntos con intensidades muy distintas se ha-gan más parecidos a sus vecinos, eliminando así los picos de intensidad queaparezcan aislados en el área de la máscara del filtro.

Ejemplo: La figura 8.12a. muestra la imagen original y la figura 8.12b muestrala misma imagen pero con aproximadamente el 20 por 100 de los pixels distor-sionados por “ruido de impulso”. El resultado del promediado del entorno devecindad -no tratado en esta obra- sobre un área de 5 x 5 se muestra en la

Page 315: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 315/395

Mg. Abraham Gamarra Moreno  331 

figura 8.12c y el resultado de la filtración de la mediana también sobre un área5 x 5 se muestra en la figura 8.12d. La superioridad de la filtración de la me-diana sobre la media del entorno de vecindad no necesita explicación adicio-nal. Los tres puntos brillantes que permanecen en la figura 8.12d son el resul-tado de una gran concentración de ruido en estos puntos, haciendo variar los

cálculos de las medianas. Dos o más pasadas con un filtro demediana elimina-rían estos puntos.

Figura 8.11. Una vecindad 3 x 3 alrededor de un punto (x,y) en una imagen.

Page 316: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 316/395

 

332  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 8.12. a) Imagen original. b) Imagen deteriorada por ruido de impulso. c) Resultado de pro-mediar la vecindad 5 x 5. d) Resultado de la filtración de mediana 5 x 5.

8.2.3. EJEMPLO DE SUAVIZADO CON FILTRACIÓN DE LA MEDIANA .

Vea el proyecto de Visual Basic .Net llamado suavizado para ver el uso de es-tas funciones.

Ejecución y código para el botón Suavizado.

Page 317: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 317/395

Mg. Abraham Gamarra Moreno  333 

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim g As Graphics = Me.CreateGraphicsDim mipunto As New Point(0, 0)' Create a Bitmap object from an image file.Dim myBitmap, mybitmapf As Bitmap' Get the color of a pixel within myBitmap.Dim pixelColor, pixelColor1 As Color

Dim resx, resy, x, y, xi, yi As IntegerDim archivo As StringDim alfa(25), rojo(25), verde(25), azul(25) As Integer

Dim i As Integer

archivo = "..\"

Select Case ListBox1.SelectedItemCase "imagen1.bmp"

archivo = archivo + "imagen1.bmp"Case "imagen2.bmp"

archivo = archivo + "imagen2.bmp"Case "imagen3.bmp"

archivo = archivo + "imagen3.bmp"

End Select

'dibujar imagenmyBitmap = Bitmap.FromFile(archivo)g.DrawImage(myBitmap, mipunto)

' copiar mapa de bits

Page 318: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 318/395

 

334 Tópicos y Aplicaciones de la Inteligencia Artificial 

mybitmapf = myBitmap

'encontrar dimensiones en pixelesresy = myBitmap.Heightresx = myBitmap.Width

For x = 2 To resx - 3For y = 2 To resy - 3

'llenar arreglos con intensidades de colorFor i = 1 To 25

Select Case iCase 1

xi = x - 2yi = y - 2

Case 2xi = x - 1yi = y - 2

Case 3xi = xyi = y - 2

Case 4xi = x + 1yi = y - 2

Case 5xi = x + 2yi = y - 2

Case 6xi = x - 2yi = y - 1

Case 7xi = x - 1yi = y - 1

Case 8xi = xyi = y - 1

Case 9xi = x + 1yi = y - 1

Case 10xi = x + 2yi = y - 1

Case 11xi = x - 2yi = y

Case 12xi = x - 1yi = y

Case 13xi = xyi = y

Case 14xi = x + 1yi = y

Case 15xi = x + 2yi = y

Case 16

xi = x - 2yi = y + 1

Page 319: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 319/395

Mg. Abraham Gamarra Moreno  335 

Case 17xi = x - 1yi = y + 1

Case 18xi = xyi = y + 1

Case 19xi = x + 1yi = y + 1

Case 20xi = x + 2yi = y + 1

Case 21xi = x - 2yi = y + 2

Case 22xi = x - 1yi = y + 2

Case 23

xi = xyi = y + 2Case 24

xi = x + 1yi = y + 2

Case 25xi = x + 2yi = y + 2

End Select

pixelColor = myBitmap.GetPixel(xi, yi)alfa(i) = pixelColor.Aazul(i) = pixelColor.Bverde(i) = pixelColor.Grojo(i) = pixelColor.R

Next i

'ordenar arreglos

Array.Sort(alfa)Array.Sort(azul)Array.Sort(rojo)Array.Sort(verde)

mybitmapf.SetPixel(x, y, pixelCo-lor1.FromArgb(alfa(13), rojo(13), verde(13), azul(13)))

NextNextg.Clear(Color.Cyan)g.DrawImage(mybitmapf, mipunto)

End Sub 

Page 320: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 320/395

 

336  Tópicos y Aplicaciones de la Inteligencia Artificial 

8.2.4. REALCE 12  

Una de las mayores dificultades de muchas tareas de visión de bajo nivel es lade conseguir la adaptación automática a los cambios de iluminación. La capa-cidad de compensar efectos tales como las sombras y de eliminar falsos refle-

 jos suelen desempeñar un papel importante en el funcionamiento correcto delos algoritmos de procesamiento posteriores.

REALCE LOCAL 

Utilizaremos el realce local con las intensidades de los pixels incluidos en elentorno de vecindad. Dos de estas propiedades que se usan frecuentemente acausa de su importancia sobre el aspecto de la imagen son la media de inten-sidad y la varianza (o desviación estándar). La media nos da una medida delbrillo medio y la varianza una medida del contraste. La transformación local

más típica basada en estos conceptos usa los valores de intensidad de unaimagen de entrada f(x, y) para obtener los valores de intensidad de la nuevaimagen g(x, y) llevando a cabo la siguiente transformación en cada posición depixel (x, y):

en esta ecuación, m(x, y) y σ(x, y) son la media de intensidad y la desviaciónestándar calculadas sobre un entorno de vecindad centrado en (x,y), M nos lamedia global de f(x,y) y k es una constante que toma valores en el intervalo (0,1).

Los valores de A, m y σ son cantidades variables que dependen del entorno devecindad de (x, y) predefinido. La aplicación del factor ocal de ganancia A(x, y)a la diferencia entre f(x, y) y la media local amplifica las variaciones locales.Debido a que A(x, y) es inversamente proporcional a la desviación estándar dela intensidad, a las zonas de bajo contraste se les aplica una ganancia mayor.La media se vuelve a sumar para restaurar el nivel de intensidad media de laimagen en la región local. En la práctica se suele sumar nada más que unafracción de la media local y se suele también restringir las variaciones de A(x,y)entre dos limites [Amin,Amax] para equilibrar las grandes variaciones de inten-sidad en las regiones aisladas.

Page 321: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 321/395

Mg. Abraham Gamarra Moreno  337 

8.2.5. EJEMPLO CON REALCE LOCA L

Vea el proyecto de Visual Basic .Net llamado suavizado para ver el uso de es-tas funciones.

Ejecución y código del botón Realce local.

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

Dim g As Graphics = Me.CreateGraphicsDim mipunto As New Point(0, 0)' Create a Bitmap object from an image file.Dim myBitmap, mybitmapf As Bitmap' Get the color of a pixel within myBitmap.

Dim pixelColor, pixelColor1 As ColorDim resx, resy, x, y, xi, yi As IntegerDim archivo As StringDim alfa(25), rojo(25), verde(25), azul(25) As Integer

Dim i As IntegerDim salfa, srojo, sverde, sazul As DoubleDim salfa2, srojo2, sverde2, sazul2 As DoubleDim malfa, mrojo, mverde, mazul As DoubleDim dealfa, derojo, deverde, deazul As DoubleDim mgalfa, mgrojo, mgverde, mgazul As DoubleDim Axyalfa, Axyazul, Axyverde, Axyrojo, k As DoubleDim gxyalfa, gxyazul, gxyverde, gxyrojo As DoubleDim gxyalfai, gxyazuli, gxyverdei, gxyrojoi As Integer

Page 322: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 322/395

 

338  Tópicos y Aplicaciones de la Inteligencia Artificial 

archivo = "..\"

Select Case ListBox1.SelectedItemCase "imagen1.bmp"

archivo = archivo + "imagen1.bmp"Case "imagen2.bmp"

archivo = archivo + "imagen2.bmp"Case "imagen3.bmp"archivo = archivo + "imagen3.bmp"

End Select

'dibujar imagenmyBitmap = Bitmap.FromFile(archivo)g.DrawImage(myBitmap, mipunto)

' copiar mapa de bitsmybitmapf = myBitmap

'encontrar dimensiones en pixelesresy = myBitmap.Heightresx = myBitmap.Width

'calcular media globalsalfa = 0srojo = 0sverde = 0sazul = 0For x = 0 To resx - 1

For y = 0 To resy - 1'obtener intensidades de color y sumarlospixelColor = myBitmap.GetPixel(x, y)salfa = salfa + pixelColor.Asazul = sazul + pixelColor.Bsverde = sverde + pixelColor.Gsrojo = srojo + pixelColor.R

NextNext

'calcular medias globales

mgalfa = salfa / (resx * resy)mgrojo = srojo / (resx * resy)mgverde = sverde / (resx * resy)mgazul = sazul / (resx * resy)

'***************************' calcular medias y desviación estandar para la' vecindad de 5 x 5

For x = 2 To resx - 3For y = 2 To resy - 3

'llenar arreglos con intensidades de colorFor i = 1 To 25

Select Case iCase 1

xi = x - 2

yi = y - 2Case 2

Page 323: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 323/395

Mg. Abraham Gamarra Moreno  339 

xi = x - 1yi = y - 2

Case 3xi = xyi = y - 2

Case 4

xi = x + 1yi = y - 2Case 5

xi = x + 2yi = y - 2

Case 6xi = x - 2yi = y - 1

Case 7xi = x - 1yi = y - 1

Case 8xi = x

yi = y - 1Case 9xi = x + 1yi = y - 1

Case 10xi = x + 2yi = y - 1

Case 11xi = x - 2yi = y

Case 12xi = x - 1yi = y

Case 13xi = xyi = y

Case 14xi = x + 1yi = y

Case 15xi = x + 2yi = y

Case 16xi = x - 2yi = y + 1

Case 17xi = x - 1yi = y + 1

Case 18xi = xyi = y + 1

Case 19xi = x + 1yi = y + 1

Case 20xi = x + 2yi = y + 1

Case 21xi = x - 2yi = y + 2

Case 22xi = x - 1

Page 324: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 324/395

 

340 Tópicos y Aplicaciones de la Inteligencia Artificial 

yi = y + 2Case 23

xi = xyi = y + 2

Case 24xi = x + 1

yi = y + 2Case 25xi = x + 2yi = y + 2

End Select

pixelColor = myBitmap.GetPixel(xi, yi)alfa(i) = pixelColor.Aazul(i) = pixelColor.Bverde(i) = pixelColor.Grojo(i) = pixelColor.R

Next i

'calcular medias punto x,ysalfa = 0srojo = 0sverde = 0sazul = 0

For i = 1 To 25salfa = salfa + alfa(i)sazul = sazul + azul(i)sverde = sverde + verde(i)srojo = srojo + rojo(i)

Next

malfa = salfa / 25

mrojo = srojo / 25mverde = sverde / 25mazul = sazul / 25

'calcular desviación estandar punto x,y

salfa2 = 0srojo2 = 0sverde2 = 0sazul2 = 0

For i = 1 To 25salfa2 = salfa2 + (alfa(i) - malfa) * (alfa(i) -

malfa)sazul2 = sazul2 + (azul(i) - mazul) * (azul(i) -

mazul)sverde2 = sverde2 + (verde(i) - mverde) * (ver-

de(i) - mverde)srojo2 = srojo2 + (rojo(i) - mrojo) * (rojo(i) -

mrojo)Next

'condicionales para evitar la divisiión entre cero

If salfa2 = 0 Then salfa2 = 0.00001If sazul2 = 0 Then sazul2 = 0.00001

Page 325: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 325/395

Mg. Abraham Gamarra Moreno  341 

If sverde2 = 0 Then sverde2 = 0.00001If srojo2 = 0 Then srojo2 = 0.00001

dealfa = Math.Sqrt(salfa2 / 24)deazul = Math.Sqrt(sazul2 / 24)deverde = Math.Sqrt(sverde2 / 24)

derojo = Math.Sqrt(srojo2 / 24)k = 0.7Axyalfa = k * mgalfa / dealfaAxyazul = k * mgazul / deazulAxyverde = k * mgverde / deverdeAxyrojo = k * mgrojo / derojogxyalfa = Axyalfa * (alfa(13) - malfa) + malfagxyazul = Axyazul * (azul(13) - mazul) + mazulgxyverde = Axyverde * (verde(13) - mverde) + mverdegxyrojo = Axyrojo * (rojo(13) - mrojo) + mrojo

If gxyalfa > 255 Thengxyalfa = 255

End IfIf gxyazul > 255 Thengxyazul = 255

End IfIf gxyverde > 255 Then

gxyverde = 255End IfIf gxyrojo > 255 Then

gxyrojo = 255End If

If gxyalfa < 0 Thengxyalfa = 0

End IfIf gxyazul < 0 Then

gxyazul = 0End IfIf gxyverde < 0 Then

gxyverde = 0End IfIf gxyrojo < 0 Then

gxyrojo = 0End Ifgxyalfai = CInt(gxyalfa)gxyazuli = CInt(gxyazul)gxyverdei = CInt(gxyverde)gxyrojoi = CInt(gxyrojo)

mybitmapf.SetPixel(x, y, pixelCol-or1.FromArgb(gxyalfai, gxyrojoi, gxyverdei, gxyazuli))

NextNextg.Clear(Color.Cyan)g.DrawImage(mybitmapf, mipunto)

End Sub

Page 326: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 326/395

 

342  Tópicos y Aplicaciones de la Inteligencia Artificial 

8.3. SEGMENTACIÓN 12  

8.3.1. DETECCIÓN DE BORDES 

La detección de bordes juega un papel muy importante en la visión artificial,sirviendo como el paso inicial de preprocesamiento previo a muchos algoritmosde identificación de objetos.

Operadores de gradiente.

El gradiente de una imagen f(x, y) en un punto (x, y) se define como un vector bidimensional

Por la teoría de vectores sabemos que el vector G apunta a la dirección de va-riación máxima de f en el punto (x, y). Para la detección de bordes resulta de

gran interés conocer el valor de este vector, al que nombraremos gradiente yrepresentaremos como G[f(x,y)], donde

Usando un entorno de vecindad de 3 x 3 pixels centrado en (x,y) se obtiene Gxy Gy de la siguiente forma:

y

Page 327: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 327/395

Mg. Abraham Gamarra Moreno  343 

donde se han usado las letras de la a a la i para representar a los vecinos delpunto (x,y).

Existen muchas maneras para generar una imagen de salida, g(x, y), basadasen el cómputo del gradiente. El método más simple es suponer que el valor deg en las coordenadas (x,y) es igual al gradiente de la imagen de entrada f enese punto; esto es,

Otra técnica consiste en crear una imagen binaria usando la siguiente relación:

en donde T es un valor de umbral no negativo. En este caso, sólo los pixels decontorno cuyos gradientes excedan del valor T se consideran importantes.

8.3.2. EJEMPLO DE BORDES CON GRADIENTE 

La ejecución y código para el botón Bordes Gradiente, se lista a continuación.

Page 328: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 328/395

 

344 Tópicos y Aplicaciones de la Inteligencia Artificial 

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

Dim g As Graphics = Me.CreateGraphicsDim mipunto As New Point(0, 0)' Create a Bitmap object from an image file.

Dim myBitmap, mybitmapf As Bitmap' Get the color of a pixel within myBitmap.Dim pixelColor, pixelColor1 As ColorDim Gxalfa, Gxazul, Gxrojo, Gxverde As IntegerDim Gyalfa, Gyazul, Gyrojo, Gyverde As IntegerDim Galfa, Gazul, Grojo, Gverde As Integer

Dim resx, resy, x, y, xi, yi As IntegerDim archivo As StringDim i As Integer

archivo = "..\"

Select Case ListBox1.SelectedItemCase "imagen1.bmp"

archivo = archivo + "imagen1.bmp"Case "imagen2.bmp"

archivo = archivo + "imagen2.bmp"Case "imagen3.bmp"

archivo = archivo + "imagen3.bmp"

End Select

'dibujar imagenmyBitmap = Bitmap.FromFile(archivo)g.DrawImage(myBitmap, mipunto)

Page 329: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 329/395

Mg. Abraham Gamarra Moreno  345 

' copiar mapa de bitsmybitmapf = myBitmap

'encontrar dimensiones en pixelesresy = myBitmap.Heightresx = myBitmap.Width

For x = 2 To resx - 3For y = 2 To resy - 3

Gxalfa = 0Gxazul = 0Gxverde = 0Gxrojo = 0

Gyalfa = 0Gyazul = 0Gyverde = 0

Gyrojo = 0'obtener Gx para cada colorpixelColor = myBitmap.GetPixel(x + 1, y - 1)Gxalfa = Gxalfa + pixelColor.AGxazul = Gxazul + pixelColor.BGxverde = Gxverde + pixelColor.GGxrojo = Gxrojo + pixelColor.R

pixelColor = myBitmap.GetPixel(x + 1, y)Gxalfa = Gxalfa + 2 * pixelColor.AGxazul = Gxazul + 2 * pixelColor.BGxverde = Gxverde + 2 * pixelColor.GGxrojo = Gxrojo + 2 * pixelColor.R

pixelColor = myBitmap.GetPixel(x + 1, y + 1)Gxalfa = Gxalfa + pixelColor.AGxazul = Gxazul + pixelColor.BGxverde = Gxverde + pixelColor.GGxrojo = Gxrojo + pixelColor.R

pixelColor = myBitmap.GetPixel(x - 1, y - 1)Gxalfa = Gxalfa - pixelColor.AGxazul = Gxazul - pixelColor.BGxverde = Gxverde - pixelColor.GGxrojo = Gxrojo - pixelColor.R

pixelColor = myBitmap.GetPixel(x - 1, y)Gxalfa = Gxalfa - 2 * pixelColor.AGxazul = Gxazul - 2 * pixelColor.BGxverde = Gxverde - 2 * pixelColor.GGxrojo = Gxrojo - 2 * pixelColor.R

pixelColor = myBitmap.GetPixel(x - 1, y + 1)Gxalfa = Gxalfa - pixelColor.AGxazul = Gxazul - pixelColor.BGxverde = Gxverde - pixelColor.GGxrojo = Gxrojo - pixelColor.R

'obtener Gy para cada color

pixelColor = myBitmap.GetPixel(x - 1, y + 1)Gyalfa = Gyalfa + pixelColor.A

Page 330: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 330/395

 

346  Tópicos y Aplicaciones de la Inteligencia Artificial 

Gyazul = Gyazul + pixelColor.BGyverde = Gyverde + pixelColor.GGyrojo = Gyrojo + pixelColor.R

pixelColor = myBitmap.GetPixel(x, y + 1)Gyalfa = Gyalfa + 2 * pixelColor.A

Gyazul = Gyazul + 2 * pixelColor.BGyverde = Gyverde + 2 * pixelColor.GGyrojo = Gyrojo + 2 * pixelColor.R

pixelColor = myBitmap.GetPixel(x + 1, y + 1)Gyalfa = Gyalfa + pixelColor.AGyazul = Gyazul + pixelColor.BGyverde = Gyverde + pixelColor.GGyrojo = Gyrojo + pixelColor.R

pixelColor = myBitmap.GetPixel(x - 1, y - 1)Gyalfa = Gyalfa - pixelColor.AGyazul = Gyazul - pixelColor.B

Gyverde = Gyverde - pixelColor.GGyrojo = Gyrojo - pixelColor.R

pixelColor = myBitmap.GetPixel(x, y - 1)Gyalfa = Gyalfa - 2 * pixelColor.AGyazul = Gyazul - 2 * pixelColor.BGyverde = Gyverde - 2 * pixelColor.GGyrojo = Gyrojo - 2 * pixelColor.R

pixelColor = myBitmap.GetPixel(x + 1, y - 1)Gyalfa = Gyalfa - pixelColor.AGyazul = Gyazul - pixelColor.BGyverde = Gyverde - pixelColor.GGyrojo = Gyrojo - pixelColor.R

Galfa = CInt(Math.Sqrt(Math.Pow(Gxalfa, 2) +Math.Pow(Gyalfa, 2)))

Gazul = CInt(Math.Sqrt(Math.Pow(Gxazul, 2) +Math.Pow(Gyazul, 2)))

Gverde = CInt(Math.Sqrt(Math.Pow(Gxverde, 2) +Math.Pow(Gyverde, 2)))

Grojo = CInt(Math.Sqrt(Math.Pow(Gxrojo, 2) +Math.Pow(Gyrojo, 2)))

If Galfa > 255 Then Galfa = 255If Gazul > 255 Then Gazul = 255If Gverde > 255 Then Gverde = 255If Grojo > 255 Then Grojo = 255

mybitmapf.SetPixel(x, y, pixelColor1.FromArgb(Grojo,Gverde, Gazul))

NextNextg.Clear(Color.Cyan)g.DrawImage(mybitmapf, mipunto)

End Sub

Page 331: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 331/395

Mg. Abraham Gamarra Moreno  347 

8.3.3. BORDES CON GRADIENTE Y UMBRAL

Ejecución y código para el botón Bordesgradiente y umbral.

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

Dim g As Graphics = Me.CreateGraphicsDim mipunto As New Point(0, 0)' Create a Bitmap object from an image file.Dim myBitmap, mybitmapf As Bitmap' Get the color of a pixel within myBitmap.Dim pixelColor, pixelColor1 As ColorDim Gxalfa, Gxazul, Gxrojo, Gxverde As IntegerDim Gyalfa, Gyazul, Gyrojo, Gyverde As IntegerDim Galfa, Gazul, Grojo, Gverde As IntegerDim cad As StringDim T As Integer 'T umbral

Dim resx, resy, x, y, xi, yi As IntegerDim archivo As StringDim i As Integer

archivo = "..\"

Select Case ListBox1.SelectedItemCase "imagen1.bmp"

archivo = archivo + "imagen1.bmp"Case "imagen2.bmp"

archivo = archivo + "imagen2.bmp"Case "imagen3.bmp"

archivo = archivo + "imagen3.bmp"

End Select

'dibujar imagenmyBitmap = Bitmap.FromFile(archivo)

g.DrawImage(myBitmap, mipunto)

Page 332: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 332/395

 

348  Tópicos y Aplicaciones de la Inteligencia Artificial 

' copiar mapa de bitsmybitmapf = myBitmap

'encontrar dimensiones en pixelesresy = myBitmap.Heightresx = myBitmap.Width

cad = InputBox("ingrese un valor de 1 a 255 ", , , , )T = Val(cad)

For x = 2 To resx - 3For y = 2 To resy - 3

Gxalfa = 0Gxazul = 0Gxverde = 0Gxrojo = 0

Gyalfa = 0

Gyazul = 0Gyverde = 0Gyrojo = 0

'obtener Gx para cada colorpixelColor = myBitmap.GetPixel(x + 1, y - 1)Gxalfa = Gxalfa + pixelColor.AGxazul = Gxazul + pixelColor.BGxverde = Gxverde + pixelColor.GGxrojo = Gxrojo + pixelColor.R

pixelColor = myBitmap.GetPixel(x + 1, y)Gxalfa = Gxalfa + 2 * pixelColor.AGxazul = Gxazul + 2 * pixelColor.BGxverde = Gxverde + 2 * pixelColor.GGxrojo = Gxrojo + 2 * pixelColor.R

pixelColor = myBitmap.GetPixel(x + 1, y + 1)Gxalfa = Gxalfa + pixelColor.AGxazul = Gxazul + pixelColor.BGxverde = Gxverde + pixelColor.GGxrojo = Gxrojo + pixelColor.R

pixelColor = myBitmap.GetPixel(x - 1, y - 1)Gxalfa = Gxalfa - pixelColor.AGxazul = Gxazul - pixelColor.BGxverde = Gxverde - pixelColor.GGxrojo = Gxrojo - pixelColor.R

pixelColor = myBitmap.GetPixel(x - 1, y)Gxalfa = Gxalfa - 2 * pixelColor.AGxazul = Gxazul - 2 * pixelColor.BGxverde = Gxverde - 2 * pixelColor.GGxrojo = Gxrojo - 2 * pixelColor.R

pixelColor = myBitmap.GetPixel(x - 1, y + 1)Gxalfa = Gxalfa - pixelColor.AGxazul = Gxazul - pixelColor.BGxverde = Gxverde - pixelColor.GGxrojo = Gxrojo - pixelColor.R

'obtener Gy para cada color

Page 333: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 333/395

Mg. Abraham Gamarra Moreno  349 

pixelColor = myBitmap.GetPixel(x - 1, y + 1)Gyalfa = Gyalfa + pixelColor.AGyazul = Gyazul + pixelColor.BGyverde = Gyverde + pixelColor.GGyrojo = Gyrojo + pixelColor.R

pixelColor = myBitmap.GetPixel(x, y + 1)Gyalfa = Gyalfa + 2 * pixelColor.AGyazul = Gyazul + 2 * pixelColor.BGyverde = Gyverde + 2 * pixelColor.GGyrojo = Gyrojo + 2 * pixelColor.R

pixelColor = myBitmap.GetPixel(x + 1, y + 1)Gyalfa = Gyalfa + pixelColor.AGyazul = Gyazul + pixelColor.BGyverde = Gyverde + pixelColor.GGyrojo = Gyrojo + pixelColor.R

pixelColor = myBitmap.GetPixel(x - 1, y - 1)

Gyalfa = Gyalfa - pixelColor.AGyazul = Gyazul - pixelColor.BGyverde = Gyverde - pixelColor.GGyrojo = Gyrojo - pixelColor.R

pixelColor = myBitmap.GetPixel(x, y - 1)Gyalfa = Gyalfa - 2 * pixelColor.AGyazul = Gyazul - 2 * pixelColor.BGyverde = Gyverde - 2 * pixelColor.GGyrojo = Gyrojo - 2 * pixelColor.R

pixelColor = myBitmap.GetPixel(x + 1, y - 1)Gyalfa = Gyalfa - pixelColor.AGyazul = Gyazul - pixelColor.BGyverde = Gyverde - pixelColor.GGyrojo = Gyrojo - pixelColor.R

Galfa = CInt(Math.Sqrt(Math.Pow(Gxalfa, 2) +Math.Pow(Gyalfa, 2)))

Gazul = CInt(Math.Sqrt(Math.Pow(Gxazul, 2) +Math.Pow(Gyazul, 2)))

Gverde = CInt(Math.Sqrt(Math.Pow(Gxverde, 2) +Math.Pow(Gyverde, 2)))

Grojo = CInt(Math.Sqrt(Math.Pow(Gxrojo, 2) +Math.Pow(Gyrojo, 2)))

If Gazul > T And Gverde > T And Grojo > T ThenGalfa = 255Gazul = 255Gverde = 255Grojo = 255

ElseGalfa = 0Gazul = 0Gverde = 0Grojo = 0

End If

mybitmapf.SetPixel(x, y, pixelColor1.FromArgb(Grojo,Gverde, Gazul))

Next

Page 334: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 334/395

 

350 Tópicos y Aplicaciones de la Inteligencia Artificial 

Nextg.Clear(Color.Cyan)g.DrawImage(mybitmapf, mipunto)

End Sub

8.3.4. DETECCIÓN BORDES Y FRONTERA CON UMBRAL

El uso de los umbrales en el tratamiento de imágenes es una de las principalestécnicas usadas por los sistemas de visión industrial para la detección de obje-tos, especialmente en la que requieran una cantidad elevada de datos. En estasección trataremos aspectos del uso de los umbrales que caen dentro de lacategoría de procesamiento de bajo nivel.

Una forma de extraer los objetos del entorno es seleccionar un nivel T que se-pare los dos tonos de intensidad. De esta forma, un punto (x, y) para el cual

f(x,y) > T será un punto del objeto; en caso contrario, el punto será del entorno.

Crearemos una nueva imagen g(x,y) definiendo

Examinando g(x,y) vemos que los pixels a los que se les asigna valor 1 (ocualquier otro nivel de intensidad según el caso) corresponden a los objetos,mientras que los pixels, a los que se les asigna un 0 Corresponden al entorno.Cuando T depende sólo de f(x,y), el umbral se llama global.

8.3.5. EJEMPLO DE DETECCIÓN DE UMBRAL

La ejecución y código del botón Bordes umbral se lista a continuación:

Page 335: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 335/395

Mg. Abraham Gamarra Moreno  351 

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click

Dim g As Graphics = Me.CreateGraphicsDim mipunto As New Point(0, 0)' Create a Bitmap object from an image file.Dim myBitmap, mybitmapf As Bitmap

' Get the color of a pixel within myBitmap.Dim pixelColor, pixelColor1 As ColorDim alfa, azul, rojo, verde As IntegerDim Galfa, Gazul, Grojo, Gverde As IntegerDim cad As StringDim T As Integer 'T umbral

Dim resx, resy, x, y, xi, yi As IntegerDim archivo As StringDim i As Integer

archivo = "..\"

Select Case ListBox1.SelectedItemCase "imagen1.bmp"archivo = archivo + "imagen1.bmp"

Case "imagen2.bmp"archivo = archivo + "imagen2.bmp"

Case "imagen3.bmp"archivo = archivo + "imagen3.bmp"

End Select

'dibujar imagenmyBitmap = Bitmap.FromFile(archivo)g.DrawImage(myBitmap, mipunto)

' copiar mapa de bitsmybitmapf = myBitmap

Page 336: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 336/395

 

352  Tópicos y Aplicaciones de la Inteligencia Artificial 

'encontrar dimensiones en pixelesresy = myBitmap.Heightresx = myBitmap.Width

cad = InputBox("ingrese un valor de 1 a 255 ", , , , )

T = Val(cad)

For x = 2 To resx - 3For y = 2 To resy - 3

'obtener colorpixelColor = myBitmap.GetPixel(x, y)alfa = pixelColor.Aazul = pixelColor.Bverde = pixelColor.Grojo = pixelColor.R

If azul > T And verde > T And rojo > T Then

alfa = 255azul = 255verde = 255rojo = 255

Elsealfa = 0azul = 0verde = 0rojo = 0

End If

mybitmapf.SetPixel(x, y, pixelColor1.FromArgb(rojo,verde, azul))

NextNextg.Clear(Color.Cyan)g.DrawImage(mybitmapf, mipunto)

End Sub

8.4. DESCRIPCIÓN, RECONOCIMIENTO E INTERPRETACIÓN 

 Al inicio de este capítulo se mencionó que mediante los procesos de descrip-ción se obtienen características (por ejemplo, tamaño, forma) convenientespara diferenciar un tipo de objeto de otro. Además se mencionó que el recono-cimiento es el proceso que identifica estos objetos (por ejemplo, una llave in-glesa, un tornillo, un soporte de motor). Y finalmente, se dijo que la interpreta-ción le asocia un significado a un conjunto de objetos reconocidos.

Existen varios algoritmos propuestos para cada una de estas áreas; pero eneste libro se trata de reemplazar estas áreas, con el reconocimiento de objetosa través de redes neuronales.

Page 337: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 337/395

Mg. Abraham Gamarra Moreno  353 

8.5. RECONOCIMIENTO A TRAVÉS DE REDES NEURONALES 

Page 338: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 338/395

Page 339: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 339/395

Mg. Abraham Gamarra Moreno  355 

CAPITULO NUEVEROBÓTICA

9.1. ORÍGENES Y DESARROLLO DE LA ROBÓTICA

La robótica es el intento por reproducir la forma y el comportamiento de losseres vivos.

Nace con la necesidad de disponer de siervos o esclavos para realizar tareastediosas o desagradables.

En 1923 el escritor checo Karel Capek escribe la obra Rossum’s Universal Ro-bots de la que surge la palabra robot.

La palabra robot deriva de “robotnik” que en checo significa siervo. 

9.2. ROBÓTICA INDUSTRIAL

“El robot industrial es una máquina que puede efectuar un número diverso detrabajos, automáticamente, mediante la programación previa. Tiene la peculia-ridad de tener una estructura en forma de brazo y es capaz de tomar decisio-nes en función de la información procedente del exter ior”. 

Las figuras 9.1, 9.2 y 9.3, destacan las principales características de la produc-ción automatizada y la forma como evolucionó.

Los robots industriales son utilizados para el aumento de la productividad, lamejora de la flexibilidad, potenciar el rendimiento de otras máquinas, una rápi-da amortización de la inversión, la mejora de la calidad, la realización de traba-

 jos peligrosos, la disminución de stocks y plazos de entrega.

Page 340: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 340/395

 

356  Tópicos y Aplicaciones de la Inteligencia Artificial 

Las tecnologías usadas en la robótica industrial se muestran en la figura 9.4.

La estructura general de un robot industrial se muestra en la figura 9.5

Los tipos de aplicaciones de la robótica industrial se muestran en la figura 9.6.

Las figuras 9.7 y 9.8 muestran dos aplicaciones concretas de la robótica indus-trial.

Figura 9.1. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 341: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 341/395

Mg. Abraham Gamarra Moreno  357 

Figura 9.2. . (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Figura 9.3. . (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Figura 9.4. . (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 342: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 342/395

 

358  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 9.5. . (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 343: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 343/395

Mg. Abraham Gamarra Moreno  359 

Figura 9.6. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 344: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 344/395

 

360 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 9.7. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 345: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 345/395

Mg. Abraham Gamarra Moreno  361 

Figura 9.8. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

9.3. ROBOTS PARA FORMACIÓN E INVESTIGACIÓN 

Los robots para formación e investigación son de menor tamaño que los robots

industriales y nos permiten analizar sus características, así como programarlospara diversos tarabajos. Estos robots son utilizados por los estudiantes de lasuniversidades o de los centros de formación que están relacionados con la ro-bótica.

Los robots móviles o microbots son utilizados también como robots de forma-ción e investigación; e inclusive se realizan concursos entre universidadesdonde se pone a prueba la destreza de la programación de estos robots.

Las figuras 9.9, 9.10 y 9.11; muestran algunos robots de formación e investiga-ción

Page 346: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 346/395

 

362  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 9.9. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Figura 9.10. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 347: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 347/395

Mg. Abraham Gamarra Moreno  363 

Figura 9.11. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

9.4. ¿LOS MICROBOTS SON UN JUGUETE? 

Los microbots son más que un juguete, aunque la primera impresión nos pu-diera hacer pensar lo contrario. Pueden tener forma de vehículo, de animal, decriatura robótica… pero todos tienen una característica común; la inteligencianecesaria para realizar tareas en un entorno que pueden variar y al cual sepueden adaptar. La ciencia que estudia los microbots es la Microbótica.

9.5. SENSORES 

Los microbots utilizan sensores, que emulan nuestros sentidos, estos sirvenpara tomar alguna decisión o para realizar alguna acción.

9.5.1. SENSOR DE GOLPE O BUMPER 

Entre los sensores que podemos utilizar se encuentran los sensores de golpe obumper, que permiten emular el tacto de las personas. Este sensor detecta sihemos realizado contacto con un objeto o chocado con ese objeto. Las figuras9.12 y 9.13 muestran un bumper.

Page 348: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 348/395

 

364 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 9.12. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Figura 9.13. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 349: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 349/395

Mg. Abraham Gamarra Moreno  365 

9.5.2. SENSOR DE RAYOS INFRARROJOS 

Otro sensor que se utiliza es el sensor de rayos infrarrojos, que permite reco-nocer colores claros o colores oscuros. Este sensor emula la vista pero en for-ma muy rudimentaria. En microbótica es muy utilizada para que los robots

puedan seguir una línea negra o blanca. Las figuras 9.14 y 9.15 muestran elsensor de rayos infrarrojos.

Figura 9.14. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 350: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 350/395

 

366  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 9.15. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

9.5.3. SENSOR DE LUM INOSIDAD 

Este sensor permite detectar la presencia de luz en el ambiente. La figura 9.16muestra un sensor de luminosidad.

Page 351: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 351/395

Mg. Abraham Gamarra Moreno  367 

Figura 9.16. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

9.5.4. MICROCÁMARAS DE VISIÓN 

Estas microcámaras permiten obtener imágenes que pueden ser utilizados por los algoritmos de visión artificial.

La figura 9.17 muestra algunos modelos de microcámaras.

9.6. CONSTRUCCIÓN DE LOS MICROBOTS 

Metal, plástico, madera, PVC, cartón y todos los materiales valen en la cons-trucción de microbots. El motor de juguetes o artefactos electricos, los engra-najes de la vieja impresora, el panel solar de la calculadora, etc.

Page 352: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 352/395

 

368  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 9.17. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

En la figura 9.18 se muestra el uso de los motores y ruedas de un avión a con-trol remoto, así como la tapa de un porta CD.

Figura 9.18.

Page 353: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 353/395

Mg. Abraham Gamarra Moreno  369 

9.7. COMPONENTES DE UN MICROBOT 

Los componentes básicos de un microbot son:

La estructura o armazon del robot móvil.

Motores.

Ruedas o patas para la locomoción.

Baterías para un movimiento autónomo.

Sensores.

Una tarjeta microcontroladora que tiene al circuito integrado programable(PIC) o microcontrolador.

Una tarjeta de potencia que permite elevar la potencia para mover los mo-tores.

La figura 9.19 muestra estos componentes.

Figura 9.19. Componentes de un robot móvil. (Fuente: El robot Pathfinder. Madrid: F y G edito-res; 2003.)

El PIC o microcontrolador es un componente esencial para la programación dela robótica móvil. Los microcontroladores se encuentran en varias modelos ymarcas (figura 9.20).

Page 354: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 354/395

 

370 Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 9.20. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Un detalle importante es que un microcontrolador tiene un computador comple-to en el chip tal como se muestra en la figura 9.21, por eso se pueden grabar los programas para el robot móvil en este microcontrolador.

La figura 9.22 muestra la diferencia de un microprocesador con respecto a unmicroconrolador.

Figura 9.21. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 355: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 355/395

Mg. Abraham Gamarra Moreno  371 

Figura 9.22. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

9.8. PROGRAMACIÓN DE LOS MICROBOTS 

Se puede programar en Basic para PIC, pero no es la única opción. Hay varioslenguajes preparados para el trabajo con microcontroladores, y muchos su-blenguajes cuyas características precisas dependen del fabricante. Así por ejemplo tenemos el Basic, el Pascal y el C como lenguajes de alto nivel, todosellos en su versión para microcontroladores, y el ensamblador como lenguajemás cercano a la máquina.

 A la hora de elegir un lenguaje de programación son importantes varios aspec-tos. Lo primero es pensar en el microcontrolador con el que se va a trabajar,tanto en el fabricante como en el modelo.

Los robots MINDSTORMS NXT de Lego, tiene el programa LEGO MINDS-TORMS NXT SOFTWARE (figura 9.23) que permite programar sus robots enforma gráfica. Otro producto para programar robots móviles es MICROSOFTROBOTICS DEVELOPER STUDIO 2008.

Page 356: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 356/395

 

372  Tópicos y Aplicaciones de la Inteligencia Artificial 

Figura 9.23. Programa LEGO MINDSTORMS NXT SOFTWARE.

9.8.1. GRABAC IÓN DEL PROGRAMA

El fin último es que el microbot tenga el programa grabado en el microcontrola-dor para que pueda realizar su función de forma autónoma. Las formas dedescargar dicho programa son muy variadas. Algunos microbots no tienen in-ternamente circuito grabador, de modo que necesitan un sistema independien-te para que realice esta función. Otros, sin embargo, sólo precisan conectarseal ordenador con un cable para que el programa pase de uno a otro. Estatransferencia puede ser para la grabación del microcontrolador o para la des-carga del programa en una memoria auxiliar de donde el microcontrolador leelas instrucciones posteriormente (figura 9.24). En microbots más sofisticadoslas instrucciones llegan al microbot por rayos infrarrojos o con la lectura de tar- jetas chip previamente grabadas (figura 9.25).

9.9. APLICACIONES DE LA ROBÓTICA

Existen cuatro áreas en las que la robótica va a propiciar una explosión de po-sibilidades y ventajas.

1. Robots de mantenimiento e inspección.

2. Robots de servicio.

3. Robots para medicina.

4. Microbots.

Page 357: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 357/395

Mg. Abraham Gamarra Moreno  373 

Figura 9.24. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Figura 9.25. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 358: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 358/395

 

374 Tópicos y Aplicaciones de la Inteligencia Artificial 

9.9.1. ROBOTS DE INSPECCIÓN Y MANTENIMIENTO 

Todos los sistemas productivos requieren labores de inspección y manteni-miento. En el mantenimiento de reactores nucleares, su montaje y reparación,se utilizan desde hace mucho tiempo robots industriales. También se aprecia

un notable incremento de su aplicación en la inspección automática de aerona-ves y en las aplicaciones subacuáticas. La figura 9.26 muestra un robot de ins-pección de piezas fundidas.

Figura 9.26. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

9.9.2. ROBOTS DE SERVICIO 

La IFR (International Federation of Robotics) ha acuñado el término “robot deservicio” para los robots que funcionan de manera total o parcialmente autó-noma para proporcionar servicios de utilidad al ser humano o en instalacionesy equipos, excluyendo las operaciones de fabricación. Entre los servicios al ser humano destacan los de atención sanitaria y entretenimiento. En cuanto a ser-

vicios de utilidad en instalaciones y equipos se citan la limpieza, el manteni-miento, la reparación y la vigilancia. La figura 9.27 muestra algunos usos de losrobots de servicio.

9.9.3. LOS ROBOTS EN LA MEDICINA

Especialmente en cirugía los robots conllevan importantes ventajas: no tiem-blan, son muy precisos y se pueden gobernar desde un Lugar remoto. Lasprincipales tareas que realizan Los robots en este campo son:

• Se encargan de mover las cámaras endoscópicas. 

Page 359: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 359/395

Mg. Abraham Gamarra Moreno  375 

• Manejan diversos instrumentos quirúrgicos. 

• Se encargan del fresado y modelado de la prótesis de cadera. 

• Colaboran en intervenciones de rótula. 

• Posicionamiento de microscopios en operaciones de neurocirugía.

• Manipuladores ligeros para sillas de ruedas y labores sencillas para discapa-citados.

Figura 9.27. Usos de los robots de servicio. (Fuente: El robot Pathfinder. Madrid: F y G editores;2003.)

9.9.4. MICROBOTS 

Son pequeños robots móviles que realizan una sencilla tarea con precisión yvelocidad. Dado su pequeño volumen y precio, y teniendo en cuenta que supotencia casi se duplica cada año al incorporar los avances tecnológicos másavanzados, es previsible una invasión mundial de estas bestiecillas para fina-les de la primera década del presente siglo.

Las misiones más interesantes que desarrollan los microbots son:

Limpieza de hogares, oficinas y fábricas.

Vigilancia y supervisión.

Page 360: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 360/395

 

376  Tópicos y Aplicaciones de la Inteligencia Artificial 

Conserjes para acompañamiento de visitantes.

Activar y desactivar mandos para gobierno de puertas, ventanas, etc.

Cuidado y limpieza de jardines y huertas.

Cortadores de césped (figura 9.28).

Las misiones más interesantes que desarrollan los microbots son:

Aplicaciones militares.

Recoger información en ambientes hostiles y peligrosos.

  Participar en torneos diversos,  como partidos de fútbol, tenis, sumo,  etc(figura 9.29).

Mascotas y compañeros (figura 9.30)

Figura 9.28. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 361: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 361/395

Mg. Abraham Gamarra Moreno  377 

Figura 9.29. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Figura 9.30. (Fuente: El robot Pathfinder. Madrid: F y G editores; 2003.)

Page 362: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 362/395

 

378  Tópicos y Aplicaciones de la Inteligencia Artificial 

9.10. CONSTRUCCIÓN DE A LGUNOS MODELOS DE MICROBOTS 

En el CD se encuentra un archivo de Power Point, llamado MIS MICRO-BOTS.PPT, que muestra una visión rápida de la construcción de dos micro-

bots.

En el CD también está el video del comportamiento del microbot llamado FIS-BOT y el programa para seguir una línea negra, implementado en Ensambla-dor para PIC, el cuál se lista a continuación:

;************************************************************************************; LINEA NEGRA;; Hace que el microbot se mueva siguiendo una trayectoria marcada en el suelomediante;te una línea negra a modo de pista.

;

LIST P=16C84 ;Tipo de procesador LISTC=132 ;Nº de caracteres por líneaLISTN=66 ;Nº de líneas por página

include "Regx84.inc" ;Definición de registrosinclude "Macros.inc" ;Inclusión de macros

#DEFINE J0 PORTB,0 ;Sensor de posición 1#DEFINE J1 PORTB,1 ;Sensor de posición 2#DEFINE J2 PORTB,2 ;Sensor de obstáulo dcho.#DEFINE J3 PORTB,3 ;Sensor de obstáculo izdo.

org 0x00goto Reset ;Vector de RESET

org 0x05

Reset: clrf PORTAbsf STATUS,RP0 ;Selección de página 1movlw b'00010000'movwf TRISA ;RA0-RA3 salidas, RA4 entradamovlw b'11111111'movwf TRISB ;RB0-RB3 entradasmovlw b'11110000'movwf OPTION_REG ;RA4 clock del TMR0bcf STATUS,RP0 ;Página 0bcf INTCON,GIE ;Interrupciones OFF

;Se espera a que se accione cualquier bumper delantero para iniciar la secuecia

;Wait clrwdt; Stop ;Situación inicial de parada; btfss J2 ;Sensor de obsáculo dcho. ON ??; goto Loop ;Si, inicio; btfscJ3 ;Sensor de obstáculo izdo ON ??; goto Wait ;Si, inicio

;Bucle principal

Page 363: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 363/395

Mg. Abraham Gamarra Moreno  379 

Loop: clrwdt; btfss J2 ;Sensor de obsáculo dcho. ON ??; goto Parada ;Si, parada; btfscJ3 ;Sensor de obstáculo izdo ON ??; goto No_Obstaculo ;No, arranque;Parada Stop ;Parar motores

; goto Loop

No_Obstaculo btfscJ1 ;Ha salido por la izquierda ?goto No_Izda ;NoDcha ;Si, movimiento a la derechagoto Loop

No_Izda btfscJ0 ;Ha salido por la derecha ?goto No_Dcha ;NoIzda ;Si, movimiento a la izquierdagoto Loop

No_Dcha Adelante ;Avance del microbot

goto Loop

end

 Además en el CD está el video del comportamiento del microbot llamado FIS-TANK y el programa para evitar obstáculos, implementado en Ensamblador para PIC y se lista a continuación:

;***************************************************************************;Programa de robot explorador. Avanza y cada vez que se choca con un obstáculo (bumpers),

;corrige su trayectoria. En función de con qué bumper se choque, reproduce un mensaje;diferente grabado en su chip de voz. Es necesario introducir dos mensajes (duración;máxima 4 segundos), durante los ocho primeros segundos de grabación del chip de voz.;Posteriormente el robot se encargará de reproducir cada submensaje de cuatro segundos;en función de qué bumper se haya activado.;; MOTORES;RB0 Y RB1 son para el motor central;RBO: 1;RB1: 0 -> Robot gira hacia la derecha;RB2 y RB3 son para el motor de la rueda izquierda;RB2: 0;RB3: 1 -> Robot avanza;RB4 y RB5 son para el motor de la rueda derecha;RB4: 1;RB5: 0 -> Robot avanza;; SENSORES;Cuando los sensores envían un '1' es que ven negro. Si se lee un '0' es que hay blanco;RC0: Sensor de la izquierda;RC1: Sensor de la derecha;RC2: Sensor central;RA1 y RA2: Bumpers;RA1: Bumper izquierdo (JP7);RA2: Bumper derecho (JP8);***************************************************************************

list p=16F870 ;Definición del tipo de dispositivo

Page 364: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 364/395

 

380 Tópicos y Aplicaciones de la Inteligencia Artificial 

include "P16F870.inc" ;Librería con los registros de control

;Variables del programa que serán utilizadas como registros (memoria RAM del Pic)TEMPO EQU 0x20 ;Variable auxiliar para la modulación de anchura de pulsoscon el Timer0 AUX EQU 0x21 ;Variable auxiliar para operaciones matemáticas

DELAY_VAR EQU 0x24TEMPO2 EQU 0x25TIEMPO1 EQU 0x26TIEMPO2 EQU 0x27TIEMPO3 EQU 0x28;Definiciones de valores para algunos parámetros del programaTON_AVANCE EQU .5TOFF_AVANCE EQU .8TON_CENTRAL EQU .5TOFF_CENTRAL EQU .10CORRIGE_CENTRAL EQU .10

org 0xB0

;***************************************************************************;***************** COMIENZO DEL PROGRAMA PRINCIPAL *************************;***************************************************************************INICIO:

bsf STATUS, 5 ;Banco 1clrf PORTB ;PuertaB como salida para los sensoresmovlw 0x07movwf ADCON0 ;PuertaA como entrada digitalmovlw 0xff movwf PORTAmovlw b'00000111'movwf PORTC

movlw b'00000001'movwf TMR0 ;Preescaler. Mediante él se escoge la frecuencia de la

señal de modulación de anchura de pulsosbcf STATUS, 5 ;Banco 0movlw b'00100000'movwf PORTCbcf INTCON, 7 ;Se deshabilitan las interrupcionesclrf PORTBmovlw TOFF_AVANCEmovwf TEMPOmovlw TOFF_CENTRALmovwf TEMPO2call DELAY

SITUAR_MOTOR_CENTRAL:btfscPORTC, 2goto BUCLEcall AVANCE_CENTRAL_DERECHAgoto SITUAR_MOTOR_CENTRALbsf PORTB, 0 ;Se mueve un poco el motor centralbcf PORTB, 1call DELAY

;***************************************************************************;Bucle principal del programaBUCLE: bcf PORTB, 0 ;Se para el motor central

bcf PORTB, 1call MOTORES_AVANCE

Page 365: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 365/395

Mg. Abraham Gamarra Moreno  381 

btfscPORTA, 2goto BUMPER_DER_ONbtfscPORTA, 1goto BUMPER_IZQ_ONgoto BUCLE

BUMPER_DER_ON:call DELAYbtfssPORTA, 2goto BUCLEcall DELAYbtfssPORTA, 2goto BUCLEgoto SENSOR_DERECHA_ON

BUMPER_IZQ_ON:call DELAYbtfssPORTA, 1goto BUCLE

call DELAYbtfssPORTA, 1goto BUCLEgoto SENSOR_IZQUIERDA_ON

;******************************************************************************;Rutina a ejecutar cuando se ha activado el bumper de la izquierdaSENSOR_DERECHA_ON:

bcf PORTC, 6bcf PORTC, 7bcf PORTC, 5clrf PORTB ;Se paran los motores y se espera a que se reproduzca el

mensaje

call DELAY2bsf PORTC, 5clrf TIEMPO1clrf TIEMPO2movlw .3movwf TIEMPO3

ESPERA_RETROCESO_DERECHA:call MOTORES_RETROCESOdecfsz TIEMPO1,1goto ESPERA_RETROCESO_DERECHAdecfsz TIEMPO2,1goto ESPERA_RETROCESO_DERECHAdecfsz TIEMPO3,1

goto ESPERA_RETROCESO_DERECHACENTRAL_ENBLANCO_IZQ:

call AVANCE_CENTRAL_IZQUIERDAbtfssPORTC, 2goto CENTRAL_ENBLANCO_IZQ

ENNEGRO_IZQ:call AVANCE_CENTRAL_IZQUIERDAbtfscPORTC, 2goto ENNEGRO_IZQbcf PORTB, 0 ;Se para el motor centralbcf PORTB, 1clrf TIEMPO1clrf TIEMPO2

movlw .3movwf TIEMPO3

Page 366: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 366/395

 

382  Tópicos y Aplicaciones de la Inteligencia Artificial 

ESPERA_AVANCE_DERECHA:call MOTORES_AVANCEdecfsz TIEMPO1,1goto ESPERA_AVANCE_DERECHAdecfsz TIEMPO2,1goto ESPERA_AVANCE_DERECHA

decfsz TIEMPO3,1goto ESPERA_AVANCE_DERECHA

CORRIGE_DERECHA:call AVANCE_CENTRAL_DERECHAbtfssPORTC, 2goto CORRIGE_DERECHAbsf PORTB, 0 ;Se mueve un poco el motor centralbcf PORTB, 1call DELAYbcf PORTB, 0 ;Se para el motor centralbcf PORTB, 1goto BUCLE

;******************************************************************************;Rutina a ejecutar cuando se ha activado el bumper de la izquierdaSENSOR_IZQUIERDA_ON:

bsf PORTC, 6bcf PORTC, 7bcf PORTC, 5clrf PORTB ;Se paran los motores y se espera a que se reproduzca el

mensajecall DELAY2bsf PORTC, 5clrf TIEMPO1clrf TIEMPO2movlw .3

movwf TIEMPO3ESPERA_RETROCESO_IZQUIERDA:

call MOTORES_RETROCESOdecfsz TIEMPO1,1goto ESPERA_RETROCESO_IZQUIERDAdecfsz TIEMPO2,1goto ESPERA_RETROCESO_IZQUIERDAdecfsz TIEMPO3,1goto ESPERA_RETROCESO_IZQUIERDA

CENTRAL_ENBLANCO_DER:call AVANCE_CENTRAL_DERECHAbtfssPORTC, 2goto CENTRAL_ENBLANCO_DER

ENNEGRO_DER:call AVANCE_CENTRAL_DERECHAbtfscPORTC, 2goto ENNEGRO_DERbcf PORTB, 0 ;Se para el motor centralbcf PORTB, 1clrf TIEMPO1clrf TIEMPO2movlw .3movwf TIEMPO3

ESPERA_AVANCE_IZQUIERDA:call MOTORES_AVANCEdecfsz TIEMPO1,1

goto ESPERA_AVANCE_IZQUIERDAdecfsz TIEMPO2,1

Page 367: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 367/395

Mg. Abraham Gamarra Moreno  383 

goto ESPERA_AVANCE_IZQUIERDAdecfsz TIEMPO3,1goto ESPERA_AVANCE_IZQUIERDA

CORRIGE_IZQUIERDA:call AVANCE_CENTRAL_IZQUIERDAbtfssPORTC, 2

goto CORRIGE_IZQUIERDAbcf PORTB, 0 ;Se mueve un poco el motor centralbsf PORTB, 1call DELAYbcf PORTB, 0 ;Se para el motor centralbcf PORTB, 1goto BUCLE

;************************************************************************;Función que se encarga del avance de los motores traseros. A través de esta rutina;se controla la velocidad de avance del robot mediante modulación de anchura de pulsosMOTORES_AVANCE:;Control de la modulación de anchura de pulsos para los motores de avance del robot

btfssINTCON, 2 ;Desbordamiento del Timer returnbcf INTCON, 2

MOTORES_TRACCION_AUX:decfsz TEMPO, 1returnmovf PORTB, 0andlw b'00111100'movwf AUXmovlw 0subwf AUX, 0btfssSTATUS, 2goto APAGAR_MOTORES

goto ENCENDER_MOTORES;Mediante el valor introducido en la variable TEMPO en las rutinas de ENCENDER_MOTORESy APAGAR_MOTORES;se puede seleccionar el Duty Cicle que se desee para la señal, cuya frecuencia a su veztambién es seleccionable;mediante el preescaler.ENCENDER_MOTORES:

bcf PORTB, 2bsf PORTB, 3bsf PORTB, 4bcf PORTB, 5movlw TON_AVANCEmovwf TEMPO

return APAGAR_MOTORES:

bcf PORTB, 2bcf PORTB, 3bcf PORTB, 4bcf PORTB, 5movlw TOFF_AVANCEmovwf TEMPOreturn

;Rutina para el retroceso del robot con modulación de anchura de pulsosMOTORES_RETROCESO:;Control de la modulación de anchura de pulsos para los motores de avance del robot

btfssINTCON, 2 ;Desbordamiento del Timer 

returnbcf INTCON, 2

Page 368: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 368/395

 

384 Tópicos y Aplicaciones de la Inteligencia Artificial 

decfsz TEMPO, 1returnmovf PORTB, 0andlw b'00111100'movwf AUXmovlw 0

subwf AUX, 0btfssSTATUS, 2goto APAGAR_MOTORES2goto ENCENDER_MOTORES2

;Mediante el valor introducido en la variable TEMPO en las rutinas de ENCENDER_MOTORESy APAGAR_MOTORES;se puede seleccionar el Duty Cicle que se desee para la señal, cuya frecuencia a su veztambién es seleccionable;mediante el preescaler.ENCENDER_MOTORES2:

bsf PORTB, 2bcf PORTB, 3bcf PORTB, 4

bsf PORTB, 5movlw TON_AVANCEmovwf TEMPOreturn

 APAGAR_MOTORES2:bcf PORTB, 2bcf PORTB, 3bcf PORTB, 4bcf PORTB, 5movlw TOFF_AVANCEmovwf TEMPOreturn

;**********************************************************;Función para el avance del motor central cuando este gira hacia la derecha AVANCE_CENTRAL_DERECHA:;Control de la modulación de anchura de pulsos para los motores de avance del robot

btfssINTCON, 2 ;Desbordamiento del Timer returnbcf INTCON, 2call MOTORES_TRACCION_AUXdecfsz TEMPO2, 1returnmovf PORTB, 0andlw b'00000011'movwf AUX

movlw 0subwf AUX, 0btfssSTATUS, 2goto APAGAR_MOTOR_CENTRAL_DERgoto ENCENDER_MOTOR_CENTRAL_DER

;Mediante el valor introducido en la variable TEMPO en las rutinas de ENCENDER_MOTORESy APAGAR_MOTORES;se puede seleccionar el Duty Cicle que se desee para la señal, cuya frecuencia a su veztambién es seleccionable;mediante el preescaler.ENCENDER_MOTOR_CENTRAL_DER:

bsf PORTB, 0 ;Se mueve un poco el motor centralbcf PORTB, 1

movlw TON_CENTRALmovwf TEMPO2

Page 369: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 369/395

Mg. Abraham Gamarra Moreno  385 

return APAGAR_MOTOR_CENTRAL_DER:

clrf PORTBmovlw TOFF_CENTRALmovwf TEMPO2return

;Función para el control del motor central cuando éste gira hacia la izquierda AVANCE_CENTRAL_IZQUIERDA:;Control de la modulación de anchura de pulsos para los motores de avance del robot

btfssINTCON, 2 ;Desbordamiento del Timer returnbcf INTCON, 2call MOTORES_TRACCION_AUXdecfsz TEMPO2, 1returnmovf PORTB, 0andlw b'00000011'movwf AUX

movlw 0subwf AUX, 0btfssSTATUS, 2goto APAGAR_MOTOR_CENTRAL_IZQgoto ENCENDER_MOTOR_CENTRAL_IZQ

;Mediante el valor introducido en la variable TEMPO en las rutinas de ENCENDER_MOTORESy APAGAR_MOTORES;se puede seleccionar el Duty Cicle que se desee para la señal, cuya frecuencia a su veztambién es seleccionable;mediante el preescaler.ENCENDER_MOTOR_CENTRAL_IZQ:

bcf PORTB, 0 ;Se mueve un poco el motor centralbsf PORTB, 1

movlw TON_CENTRALmovwf TEMPO2return

 APAGAR_MOTOR_CENTRAL_IZQ:clrf PORTBmovlw TOFF_CENTRALmovwf TEMPO2return

;**************************************************************;Funcion de temporización empleada por el programaDELAY:

bsf STATUS, 5

movlw b'00000001'movwf TMR0bcf STATUS, 5movlw CORRIGE_CENTRALmovwf DELAY_VAR

DEL: btfssINTCON, 2goto DELbcf INTCON, 2decfsz DELAY_VAR,1goto DELbsf STATUS, 5movlw b'00000001'movwf TMR0 ;Preescaler para la modulación de anchura de pulsos de los

motoresbcf STATUS, 5

Page 370: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 370/395

 

386  Tópicos y Aplicaciones de la Inteligencia Artificial 

return

DELAY2: bsf STATUS, 5movlw b'00000111'movwf TMR0bcf STATUS, 5

movlw .100movwf DELAY_VAR

DEL2: btfssINTCON, 2goto DEL2bcf INTCON, 2decfsz DELAY_VAR,1goto DEL2bsf STATUS, 5movlw b'00000001'movwf TMR0 ;Preescaler para la modulación de anchura de pulsos de los

motoresbcf STATUS, 5return

END ;Fin del programa;***************************************************************************

Page 371: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 371/395

Mg. Abraham Gamarra Moreno  387 

APÉNDICES

Page 372: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 372/395

 

388  Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 373: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 373/395

Mg. Abraham Gamarra Moreno  389 

APÉNDICE A

DIAPOSITIVAS DE PROGRAMACIÓN LÓGICA CON PROLOG

PROGRAMACION LOGICA CONPROLOG

Recopilado por:

Mg. Abraham Gamarra Moreno

 

Page 374: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 374/395

 

390 Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 375: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 375/395

Mg. Abraham Gamarra Moreno  391 

Page 376: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 376/395

 

392  Tópicos y Aplicaciones de la Inteligencia Artificial 

Luego encuentra el sucesivo

(resatisface la pregunta)

 

Page 377: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 377/395

Mg. Abraham Gamarra Moreno  393 

Page 378: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 378/395

 

394 Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 379: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 379/395

Mg. Abraham Gamarra Moreno  395 

Page 380: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 380/395

 

396  Tópicos y Aplicaciones de la Inteligencia Artificial 

<>

 juan <> pedro

1

 

Page 381: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 381/395

Mg. Abraham Gamarra Moreno  397 

Soluciónejercicios 1.

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

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

goalhermana_de(alicia,X).

 

predicatespoblacion(symbol,real)superficie(symbol,real)densidad(symbol,real)

clauses/* poblacion(Prov,Pob) <- la población, 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 laprovincia Prov es Sup */superficie(alicante,6).superficie(castellon,7).superficie(valencia,11)./* densidad(Prov,Den) <- la densidad de población, habitantes/km2,de la provincia Prov es Den */

densidad(X,Y) :- poblacion(X,P),superficie(X,S), Y=P/S.goaldensidad(alicante, X).

Ejemplo 2

Page 382: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 382/395

 

398  Tópicos y Aplicaciones de la Inteligencia Artificial 

predicatesnondeterm animal(symbol)nondeterm gusta(symbol,symbol)nondeterm regalo(symbol,symbol)clauses /* animal(Anim) <- Anim es un animal */

animal(mono).animal(gallina).animal(araña).animal(mosca).animal(cocodrilo). /* gusta(X,Y) <- a X le gusta Y */gusta(mono,banana).gusta(araña,mosca).gusta(alumno,logica).gusta(araña,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).

goalwrite("\n los regalos (Y), para los animales (X) se"),write(" listan a continuación: \n\n"), regalo(X,Y).

Ejemplo 3

predicatesnondeterm hijo(string,string)

clauseshijo(javier, luis).

hijo(ana,luis).hijo(maria,luis).hijo(joseph,daniel).

goalwrite("\ningrese nombre del padre: "),readln(Padre),write("\n"),write(Padre),write(" tiene los siguientes hijos:\n"),hijo(Hijo,Padre).

Ejemplo 4

Page 383: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 383/395

Mg. Abraham Gamarra Moreno  399 

Ejemplo 5: Representacióndel sistema de bloques

DC

B

 A

MESA

 Vea ejemplo9.pro

 

Page 384: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 384/395

 

400 Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 385: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 385/395

Mg. Abraham Gamarra Moreno  401 

APÉNDICE B

DIAPOSITIVAS DEL EJEMPLO 2 DE LÓGICA DIFUSA

Mg. Abraham Gamarra Moreno 18

DESARROLLO DE UN

SISTEMA DIFUSO BASADO

EN REGLAS

 

Mg. Abraham Gamarra Moreno 19

DEFINICIÓN DEL PROBLEMA 

Sistema de control para regular laSistema de control para regular lavelocidad de un ventilador en funcivelocidad de un ventilador en funcióónnde la temperatura ambiente.de la temperatura ambiente.

En este caso, laEn este caso, la úúnica entrada delnica entrada delsistema sersistema serí í a el calor de laa el calor de latemperatura, por ejemplo en gradostemperatura, por ejemplo en grados

centcentí í grados, y lagrados, y la úúnica salida, el valor,nica salida, el valor,en revoluciones por minuto (en revoluciones por minuto (rpmrpm), de), dela velocidad necesaria del ventiladorla velocidad necesaria del ventiladorpara conseguir una temperatura ideal.para conseguir una temperatura ideal.

 

Page 386: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 386/395

 

402  Tópicos y Aplicaciones de la Inteligencia Artificial 

Mg. Abraham Gamarra Moreno 20

DEFINICIÓN DE LAS

 VARIABLES LINGÜÍSTICAS

El universo de discurso de cadal universo de discurso de cada

variable serariable será:

Temperatura (emperatura (°C)) : 55 – 400

Velocidad (elocidad (rpmpm ) : 00 - 600

SISTEMADIFUSO

Temperatura  Velocidad

 

Mg. Abraham Gamarra Moreno 21

DEFINICIÓN DE LOS

CONJUNTOS DIFUSOS

Conjuntos difusos para la temperatura

 

Page 387: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 387/395

Mg. Abraham Gamarra Moreno  403 

Mg. Abraham Gamarra Moreno 22

DEFINICIÓN DE LOS

CONJUNTOS DIFUSOS

Conjuntos difusos para la velocidaddel ventilador

 

Mg. Abraham Gamarra Moreno 23

DEFINICIÓN DE LA REGLAS

DIFUSAS

RULERULE NUMBER: 1 NUMBER: 1IF:IF:

LA TEMPERATURA AMBIENTE ESLA TEMPERATURA AMBIENTE ESFRIA FRIA 

THEN:THEN:

LA VELOCIDAD DEL VENTILADOR LA VELOCIDAD DEL VENTILADOR 

ES PARADOES PARADO

 

Page 388: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 388/395

 

404 Tópicos y Aplicaciones de la Inteligencia Artificial 

Mg. Abraham Gamarra Moreno 24

DEFINICIÓN DE LA REGLAS

DIFUSAS

RULERULE NUMBER: 2 NUMBER: 2

IF:IF:

LA TEMPERATURA AMBIENTE ESLA TEMPERATURA AMBIENTE ES

FRESCA FRESCA 

THEN:THEN:

LA VELOCIDAD DEL VENTILADOR LA VELOCIDAD DEL VENTILADOR 

ES LENTA ES LENTA 

 

Mg. Abraham Gamarra Moreno 25

DEFINICIÓN DE LA REGLAS

DIFUSAS

RULERULE NUMBER: 3 NUMBER: 3IF:IF:

LA TEMPERATURA LA TEMPERATURA  AMBIENTE ES AGRADABLE AMBIENTE ES AGRADABLE

THEN:THEN:

LA VELOCIDAD DELLA VELOCIDAD DEL

 VENTILADOR ES MEDIA  VENTILADOR ES MEDIA 

 

Page 389: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 389/395

Mg. Abraham Gamarra Moreno  405 

Mg. Abraham Gamarra Moreno 26

DEFINICIÓN DE LA REGLAS

DIFUSAS

RULERULE NUMBER: 4 NUMBER: 4

IF:IF:

LA TEMPERATURA LA TEMPERATURA 

 AMBIENTE ES CALIDA  AMBIENTE ES CALIDA 

THEN:THEN:

LA VELOCIDAD DELLA VELOCIDAD DEL

 VENTILADOR ES RAPIDA  VENTILADOR ES RAPIDA 

 

Mg. Abraham Gamarra Moreno 27

DEFINICIÓN DE LA REGLAS

DIFUSAS

RULERULE NUMBER: 5 NUMBER: 5IF:IF:

LA TEMPERATURA LA TEMPERATURA  AMBIENTE ES T AMBIENTE ES TÓÓRRIDA RRIDA 

THEN:THEN:

LA VELOCIDAD DELLA VELOCIDAD DEL

 VENTILADOR ES MAXIMA  VENTILADOR ES MAXIMA 

 

Page 390: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 390/395

 

406  Tópicos y Aplicaciones de la Inteligencia Artificial 

Mg. Abraham Gamarra Moreno 28

CONSTRUIR EL CONSTRUIR EL 

SISTEMA SISTEMA 

Esta tarea involucra la codificacista tarea involucra la codificación de losde losconjuntos difusos, reglas yonjuntos difusos, reglas yprocedimientos para desarrollarrocedimientos para desarrollarfunciones de lunciones de lógica difusa tal como laica difusa tal como lainferencia difusa. Se puede construir elnferencia difusa. Se puede construir elsistema utilizando un lenguaje deistema utilizando un lenguaje deprogramacirogramación o construir el sistemao construir el sistemautilizando untilizando un Shellhell.

 

Mg. Abraham Gamarra Moreno 29

PROBAR EL SISTEMA 

Esta tarea sirve para ver si el sistemasta tarea sirve para ver si el sistemaalcanza las especificaciones dados en lalcanza las especificaciones dados en ladefiniciefinición del problema.del problema.

Para el ejemplo que se esta desarrollandoara el ejemplo que se esta desarrollandose probare probará con los siguientes datos deon los siguientes datos deentrada:ntrada:

Tem peratura = 18emperatura = 18 °

Evaluando el grado de pertenencia a losvaluando el grado de pertenencia a losconjuntos difusos se tiene:onjuntos difusos se tiene:

 

Page 391: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 391/395

Mg. Abraham Gamarra Moreno  407 

Mg. Abraham Gamarra Moreno 30

PROBAR EL SISTEMA 

FRESCA(18°) = 0.5

 AGRADABLE(18°) = 0.167

 

Mg. Abraham Gamarra Moreno 31

PROBAR EL SISTEMA 

LAS REGLAS QUE SE DISPARAR LAS REGLAS QUE SE DISPARAR  Á  Á  N SON: N SON:

RULERULE NUMBER: 2 NUMBER: 2IFIF ((LA TEMPERATURA AMBIENTE ESLA TEMPERATURA AMBIENTE ESFRESCA FRESCA ))(0.5)(0.5)

THENTHEN ((LA VELOCIDAD DEL VENTILADOR ESLA VELOCIDAD DEL VENTILADOR ESLENTA LENTA )) (0.5)(0.5)

RULERULE NUMBER: 3 NUMBER: 3

IFIF ((LA TEMPERATURA AMBIENTE ESLA TEMPERATURA AMBIENTE ES AGRADABLE AGRADABLE))(0.167)(0.167)

THENTHEN ((LA VELOCIDAD DEL VENTILADOR ESLA VELOCIDAD DEL VENTILADOR ES MEDIA  MEDIA )) (0.167)(0.167)

 

Page 392: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 392/395

 

408  Tópicos y Aplicaciones de la Inteligencia Artificial 

Mg. Abraham Gamarra Moreno 32

DEFUZZIFICACION DE LA 

 VARIABLE DE SALIDA 

Una vez ubicado el grado dena vez ubicado el grado de

pertenencia de lasertenencia de las

conclusiones, se debeonclusiones, se debe

encontrar elncontrar el centroideentroide para losara los

conjuntos difusos LENTA Yonjuntos difusos LENTA Y

MEDIA.EDIA.

Mg. Abraham Gamarra Moreno 33

Conjuntos difusos para la velocidaddel ventilador

y1 y2

 

Page 393: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 393/395

Mg. Abraham Gamarra Moreno  409 

Mg. Abraham Gamarra Moreno 34

DEFUZZIFICACION DE LA 

 VARIABLE DE SALIDA 

Para laara la defuzzificaciefuzzificación se utiliza lae utiliza la

siguiente expresiiguiente expresión::Donde:onde:

YK = Centroideentroide delelconjunto difusoonjunto difusoinvolucrado en lanvolucrado en laconclusionclusión, cuando, cuandose dispara unae dispara unaregla.egla.

μμ(Y K)= Grado de= Grado de

pertenencia alertenencia alconjunto difuso deonjunto difuso dela conclusia conclusión..

 

Mg. Abraham Gamarra Moreno 35

La velocidad del ventilador es:a velocidad del ventilador es:Velocidad =elocidad = y1*1*μμ(y1)+ y2*y1)+ y2*μμ(y2)y2)

μμ(y1) +y1) + μμ(y2)y2)

Velocidad =elocidad = 20*0.5 + 30*0.1670*0.5 + 30*0.167

0.5.5 + 0.1670.167

Velocidad =elocidad = 22.5032.503 rpmpm

DEFUZZIFICACION DE LA 

 VARIABLE DE SALIDA 

 

Page 394: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 394/395

 

410 Tópicos y Aplicaciones de la Inteligencia Artificial 

Page 395: 25-04 Inteligencia Artificial JGM

7/16/2019 25-04 Inteligencia Artificial JGM

http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 395/395

BIBLIOGRAFÍA

1. Arteaga R, Armijos J. Tutorial de Programación Heurística. Ecuador: Tra-bajo de monografía complementario al curso de pregrado dictado en laUniversidad Central del Ecuador, para la obtención del título de Ingenieroen Informática; 1998.

2. Angulo J, Romero S, Angulo I. Microbótica. España: Editorial ITES Para-ninfo;. 2001.

3. Benchimol G, Levine P, Pomerol J. Los sistemas expertos en la empresa.México: Ed. Macrobit; 1990.

4. Dologite D. Developing Knowledge-Based Systems using VP-EXPERT.USA: Macmillan Publishing Company; 1993.

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

6. Escolano Francisco. Inteligencia Artificial. Modelos, Técnicas y Áreas de Aplicación. España: Editorial ITES Paraninfo; 2003.

7. EXSYS Inc. Manual del EXSYS Professional for Windowed Environments.USA: EXSYS Inc; 1983-1996.