Upload
carolina-huamanciza-gironda
View
365
Download
10
Embed Size (px)
Citation preview
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.
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
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.
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-
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.
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).
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
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-
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
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:
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
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
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.
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-
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-
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
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,
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.
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
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.
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.
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.
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)
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
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
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.
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.
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
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
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.
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.
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.
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.
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
3
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.
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;
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.
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.
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.
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.
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.
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
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)
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.
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.
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:
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.
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)
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).
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:
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
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)
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
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))
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)
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
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))
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
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.
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
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
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
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.
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:
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:
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-
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:
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:
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).
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
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.
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"),
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
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.
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:
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
f
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)
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)
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.
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
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)
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
f
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
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}
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
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
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
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):
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
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
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
3
Cartera
2
Or
And
And
And
And
Estado
financiero
= Agresivo
Estado
financiero =
conservador
Figura 3.8. Red de inferencia de las reglas objetivo
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:
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
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?
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
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:
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?
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
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.
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
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
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-
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
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.
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
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,
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 *
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
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
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
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
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-
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.
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-
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.
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
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.
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
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.
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
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
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:
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
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
----------------------------------------
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
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.
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
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.
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:
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
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.
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:
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".
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.
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".
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.
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
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
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.
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.
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
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
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
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
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.
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
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.
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)
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 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.
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
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
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.
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
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
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,
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:
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.
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
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).
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ó).
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.
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.
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.
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.
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
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
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
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
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
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.
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
k
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-
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
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
k
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
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.
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.
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:
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
k
o
k
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:
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
k
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
k
o
pk pj pj
h
pj w y y 1
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
k
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.
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.
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).
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
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.
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
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
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
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
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
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
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
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.
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
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.
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.
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:
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
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
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
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
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
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
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)
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.
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.
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.
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)
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
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
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)
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
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:
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:
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
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:
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
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)=
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)]
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
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:
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
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:
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
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/
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.
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.
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.
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:
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
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
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 ) )
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
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.
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.
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
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.
+
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.
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.
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).
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.
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.
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.
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
k
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.
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.
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
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
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
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)
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
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
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)
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
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)
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
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)
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
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)
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
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.
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();
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;
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;
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.
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
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.
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
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/
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.
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.
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
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.
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.
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.
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/
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)
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
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-
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)
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)
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)
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>))
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
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:
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),
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)
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
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
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.
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.
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
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]
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-
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>.
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>
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)
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
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)
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>)))
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:
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-
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)
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
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
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
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-
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
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.
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.
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
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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
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
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
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.
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
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
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
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
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
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
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.
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)
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
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
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)
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
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
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:
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
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.
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
7/16/2019 25-04 Inteligencia Artificial JGM
http://slidepdf.com/reader/full/25-04-inteligencia-artificial-jgm 338/395
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.
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.)
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.)
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.)
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.)
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.)
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
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.)
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.
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.)
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.)
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.
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.
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.
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).
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.)
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.
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.
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.)
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.
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.
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.)
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.)
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
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
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
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
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
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
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
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
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;***************************************************************************
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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.
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
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
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
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
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:
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)
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
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
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
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.