2

CAPÍTULO 1
Antropología Histórica de la Inteligencia Artificial
1.1 Prehistoria
Tan antiguo como la humanidad es tanto el deseo de agilizar y simplificar el
esfuerzo mental que los cálculos aritméticos demandan, como el emular la
inteligencia humana.
En computación se empezó con piedrecillas, nudos y marcas, para llegar con el
tiempo al ábaco (instrumento aún en uso frecuente en países como la India, China
y J apón, y antigua Unión Soviética).
En Inteligencia Artificial se comenzó por bien sea la construcción o por la
referencia literaria, de figuras animadas que constituyen los ancestros de los
actuales robots.
Es en la mitología griega donde aparecen las primeras referencias a los robots.
La más antigua, se refiere a Thalos, gigantesco robot, obra de Dédalo, quien
defendía a Creta de sus enemigos. La más famosa aparece en la ILIADA,
inmortal obra de Homero, en cuya rapsodia XVIII, titulada la fabricación de las
armas, se cuenta la visita que la diosa Tetis – madre de Aquiles- realiza al taller de
Hefestos, dios del fuego, para pedirle una nueva armadura para su hijo, que
deponiendo su cólera contra Agamenón, decide intervenir en la guerra de Troya
para vengar la muerte de su amigo Patroclo, muerto por Héctor, príncipe de los
troyanos.
Lo interesante que nos cuenta Homero en esta rapsodia, es lo siguiente: “Tomó
(Hefestos) el fornido cetro y salió cojeando, apoyado en dos estatuas de oro que
eran semejantes a vivientes jóvenes, pues tenían inteligencia, voz y fuerza y
hallábanse ejercitadas en las obras propias de los inmortales Dioses”.
Avanzada la Edad Media, cuando progresó la técnica de los alquimistas, estos
afirmaron la posibilidad de crear un ser humano entero, el llamado “homúnculo”.
El médico medieval Paracelso dio una receta alquímica para crear uno.
Es a mediados del siglo XVI cuando aparece el arquetipo de autómata homínido:
EL GOLEM. La palabra GOLEM es talmúdica, se refiere a todo lo incompleto o sin
3
forma. Se dice que hacia 1550, Eliyah de Chelm creó un hombre artificial, llamado
GOLEM, con la ayuda del nombre de Dios, las cuatro letras hebreas
correspondientes a YHWH. Según la leyenda, el GOLEM se convirtió en un
monstruo que amenazaba al mundo, hasta que le quitaron el nombre sagrado.
Treinta años después nació otra leyenda sobre un GOLEM. Se supone que este
último fue obra del gran rabino de Praga J udah Ben Loew.
Según la leyenda, Loew y dos ayudantes que querían proteger a su pueblo de los
gentiles fueron de noche al río Moldava y de la arcilla de la orilla dieron forma a
una figura humana.
Un ayudante dio siete vueltas a la figura de izquierda a derecha. Loew pronunció
un conjuro y el GOLEM se encendió.
El otro ayudante empezó entonces sus conjuros, y mientras daba siete vueltas de
derecha a izquierda el fuego se apagó, creció pelo sobre la cabeza de la figura y
crecieron uñas sobre los dedos.
Entonces le tocó a Loew dar siete vueltas a la figura mientras los tres entonaban
palabras del Génesis. Cuando Loew implantó el sagrado nombre de Dios sobre la
frente de GOLEM, éste abrió sus ojos y nació a la vida.
El GOLEM no podía hablar, pero su fuerza era sobrehumana. Esto le hizo útil para
defender a los judíos de Praga contra los gentiles. Sólo Loew podía controlarlo
pero al final el GOLEM se hizo incontrolable. Tuvo un ataque de furia y agredió a su
creador. Finalmente LOEW lo engañó para que se arrodillara delante suyo y le
arrancó de la frente el nombre sagrado. El GOLEM quedó de nuevo reducido
mágicamente a arcilla.
A partir del siglo XIV se vio en Europa un florecimiento en la construcción de
ayudas para varios tipos de cálculos, tanto aritméticos como astronómicos. J ohn
Napier dedicó buena parte de su vida a la búsqueda de métodos computacionales
más ágiles. Su invención de los logaritmos no deja de ser un hito en la historia de
la computación. Su uso simplificó enormemente las operaciones de multiplicación
y división.
Como consecuencia del avance científico y técnico iniciado en el Renacimiento,
aparecieron los primeros intentos de mecanizar ciertos procesos computacionales,
entre éstos las operaciones aritméticas. La idea central estaba enfocada a la
construcción de máquinas capaces de llegar a los resultados de las operaciones,
automáticamente – sin la ayuda del hombre - salvo la introducción de los datos
iniciales.
4
En 1642, Blaise Pascal inventó y construyó lo que se considera como la primera
máquina calculadora que operó exitosamente. La máquina consistía en una serie
de ruedas dentadas, dispuestas de tal forma que diez revoluciones de cualquiera
de ellas inducían una revolución a la situada a su derecha. Cada rueda tenía
impreso en sus dientes los dígitos 0 a 9. La máquina permitía la adición o
sustracción automática de cantidades hasta de seis cifras.
Leibnitz perfeccionó la máquina de Pascal, introduciendo un mecanismo especial
que permitía la multiplicación y la división. La máquina diseñada y construida por
Leibnitz efectuaba la multiplicación por medio de repetidas vueltas de una
manivela.
El principio en que se basó la máquina de Leibnitz siguió en uso hasta hace poco,
en las hoy obsoletas calculadoras de escritorio.
Los trabajos de Pascal y Leibnitz fueron ayudados por la técnica de la relojería,
por esa época en pleno florecimiento.
El avance en las técnicas de relojería permitió la aparición de varios fabricantes de
autómatas. Estos autómatas, construidos con intrincados mecanismos de relojería
y sistema de levas, eran en cierto modo una magia disfrazada, una manera de
hacer aceptable lo que en realidad todavía era imposible.
Uno de los fabricantes más famosos fue J acques de Vaucason en el sigo XVIII.
Entre otras cosas construyó un pato capaz de graznar, batir las alas, chapotear en
el agua, comer, beber y hasta excretar. También construyó dos androides, ambos
músicos. Uno era el “Tocador de flauta”, reproducción del “Sátiro tocando la
flauta” de Coysevox, y el otro tocaba un tambor.
El tocador de flauta era un androide que mediante un sistema de fuelle le permitía
liberar aire por la boca, con el cual accionaba la flauta y podía tocar un repertorio
de doce melodías moviendo los dedos sobre los agujeros del instrumento. La
gente de su tiempo no podía creer que el flautista tocara de verdad en lugar de
producir los sonidos musicales con un conjunto oculto de instrumentos.
En 1769 el inventor húngaro barón Von Kemmpelen construyó una máquina
jugadora de ajedrez. Era una máquina en forma de turco, con turbante y mostach
o,sentado detrás de un armario de madera que al parecer contenía el mecanismo.
El maniquí cogía las piezas de ajedrez con gran chirrido de ruedas y hacía sus
jugadas. Este invento entusiasmó a la emperatriz María Teresa de Austria, y
enfureció a Napoleón Bonaparte al perder todas las partidas de ajedrez en las que
tomó parte. En realidad era un fraude, pues en el cajón en el que supuestamente
se ubicaban los mecanismos de relojería, en verdad se hallaba un enano que era
campeón de ajedrez en Hungría.
5
Sin embargo antes que se detectara el fraude, este “autómata” se había paseado
por las cortes europeas, impresionando a muchos. Hasta un escritor como Edgar
Allan Poe, después de ver una demostración, se puso en la tarea de construir una
prueba lógica de que no era auténtico.
Entre 1770 y 1773 una pareja de colaboradores, padre e hijo, Pierre y Henri –
Louis J aquet – Droz, presentaron tres asombrosas figuras humanas llamadas el
escriba, el dibujante, y el músico. Los tres funcionaban con mecanismos de
relojería y contenían un intrincado mecanismo de levas.
En el siglo XIX se dan importantes pasos en Inteligencia Artificial y en
computación, siendo los avances en I.A. fundamentalmente literarios.
En 1817 se encuentran en una villa a orillas de un lago suizo, los dos grandes
poetas románticos ingleses Lord Byron y Percy Shelley. Es durante esta estancia
que Mary, esposa de Shelley, escribe su célebre novela Frankenstein, que sería
inmortalizada en el cine.
Mary Shelley tuvo la oportunidad en Suiza de ver los autómatas de J aquet – Droz,
y como estaba familiarizada con la tradición del GOLEM de Praga, su historia fue
una puesta al día de la leyenda del GOLEM, no obstante, su monstruo no nació
gracias a la alquimia sino merced a la tecnología en eclosión en su época: la
electricidad.
El éxito alcanzado por Frankenstein en el cine, ha llevado a varios directores a
tratar de explotar más a fondo el tema, y es así como en la década de los años 80,
películas como Gothic (dirigida por Ken Russell) y Remando Al Viento, tratan de
recrear las relaciones entre Byron y los Shelley y las circunstancias que rodearon
el alumbramiento de tan fantástica criatura.
Si bien es cierto que los avances técnicos reales en Inteligencia Artificial tendrían
que esperar hasta el siglo XX y muy probablemente su madurez como ciencia sólo
se alcance en el siglo XXI, es de resaltar que no sucedió lo mismo con la
computación. A comienzos del siglo XIX, la revolución industrial en sus albores ya
ofrecía una infraestructura mecánica apropiada para servir de soporte a la
construcción de las primeras máquinas calculadoras.
En Francia, la industria textil entraba en un periodo de gran automatización.
Usando tarjetas perforadas, el telar de J acquard logró automatizar el proceso de
fabricación de tejidos.
Los bancos como entidades financieras y las compañías de seguros estaban
consolidadas en Inglaterra.
6
La navegación, a consecuencia del comercio entre Europa y sus colonias, había
crecido enormemente. Tanto en la banca como en la navegación eran
indispensables tablas numéricas de distinta índole con un proceso de elaboración
tedioso. Frente a este estado de cosas, Charles Babbage propuso a la sociedad
astronómica real, la construcción de una máquina de diferencias, cuyo objetivo
central sería el cálculo de tablas logarítmicas, trigonométricas, actuariales, etc. Un
modelo a escala de su primera máquina fue presentado a la sociedad en 1822.
Babbage confiaba en que su máquina no sólo calcularía tablas numéricas, sino
también imprimiría sus resultados.
Por discrepancias con el gobierno y con J oseph Clement, el constructor de las
piezas metálicas, y por la imposibilidad de asumir por sí solo el costo del proyecto,
Babbage decidió no continuar la construcción de la máquina de diferencias.
Su primer fracaso no fue motivo que le impidiera seguir trabajando en lo que sería
la obsesión de toda su vida: la construcción de una máquina analítica. La
máquina de diferencias era un computador de un solo propósito – elaboración de
tablas numéricas -, mientras que la máquina analítica tendría que ser un
computador de múltiples usos. A partir de 1833, y por 40 años Babbage dedicó
todas sus energías al diseño y construcción de su fabulosa máquina. Con
recursos económicos propios, se construyeron partes y se diseñaron planos y
maquetas. La máquina analítica estaba diseñada con base en unidades de
procesamiento, control y almacenamiento. Para introducir las instrucciones y la
información que sería procesada se utilizarían tarjetas perforadas, en la misma
forma que en el telar de J acquard. Desafortunadamente para Babbage, la
ingeniería mecánica de aquel tiempo no tenía aún la madurez requerida para
construir piezas de alta precisión indispensable en un equipo de tal sofisticación.
La labor de Babbage fue continuada en Suecia por Pehr Georg Schutz y su hijo,
quienes después de estudiar los trabajos de Babbage lograron construir una
máquina de diferencias que entró en funcionamiento en 1853.
En el siglo XX un continuador de Babbage fue el español Leonardo Torres y
Quevedo. Sus esfuerzos se concentraron en el diseño y construcción de un sin
número de artefactos y dispositivos automáticos de distinta índole. Torres y
Quevedo construyó en 1912 una máquina para jugar ajedrez. Podía jugar una
final de rey y torre contra rey. Esta fue probablemente la primera máquina
utilizada para tomar decisiones.
También construyó en 1920 una calculadora, que puso de manifiesto la factibilidad
del proyecto de usar partes electromecánicas en la elaboración de una máquina
analítica.
7
La calculadora de Torres y Quevedo estaba conectada a una máquina de escribir
que hacía las veces de unidad de entrada y simultáneamente servía como unidad
impresora de los resultados obtenidos por la calculadora.
A finales del siglo XX, la compañía alemana SIEMENS logró la construcción de la
máquina analítica de Babbage, tal como éste la había concebido. La tecnología
del siglo XX permitió, con el uso de aleaciones especiales de metales, la
construcción de las piezas mecánicas que hicieron realidad el sueño de Babbage.
Es de resaltar la labor desempeñada por Augusta Ada, hija de Lord Byron, y
compañera de Babbage, como impulsora del proyecto y reconocida como la
primera programadora de la historia. El lenguaje de programación llamado “Ada”
es en su honor.
En 1921 el escritor checo Karel Capek escribe una obra teatral llamada R.U.R que
significa Robots Universales de Rossum.
En R.U.R. es la primera vez que se utiliza la palabra Robot, que procede de
Robota, palabra de origen checo y que significa trabajo, teniendo connotaciones
de esclavitud o trabajo forzado. R.U.R. es una obra sobre hombres y mujeres
artificiales, cuyo diseño se ha simplificado para que la fabricación sea rápida. Esto
ha supuesto dejar de lado atributos humanos como los sentimientos y las
emociones, sólo les queda la capacidad de trabajar. Los Robots se venden como
obreros para todo, y a su debido tiempo se utilizan como soldados en la guerra.
Luego uno de los socios de Rossum descubre un sistema para instalar el dolor y
las emociones en los Robots. Los Robots provistos de estas cualidades se
enfrentan contra los humanos, conquistan el mundo y exterminan virtualmente a la
raza humana. Pero entonces surge un problema entre los Robots, porque al
parecer no consiguen fabricar más representantes de su raza, sin embargo al final
de la obra dos de ellos se enamoran.
Esta obra dio origen a una serie de obras escritas y de películas dirigidas en tono
semejante, entre ellas una película clásica de 1926, Metrópolis de Fritz Lang.
Nuevamente aparecen los robots en escena, en este caso una robot femenina,
“María”, que actúa como una agitadora, cuando realmente es una espía.
El enfrentamiento entre las máquinas y los seres humanos es un tema reiterativo,
ampliamente explotado por el cine, desde películas como “Tiempos Modernos”
protagonizada por Chaplin, hasta “Terminator” protagonizada por Schwazeneger,
pasando por muchas versiones de “Frankenstein”. La visión apocalíptica del
mundo controlado por máquinas infernales y robots ha representado un filón muy
importante que la gente del cine ha sabido aprovechar.
En 1942 un joven escritor de ciencia ficción, Isaac Asimov, en una historia titulada
“Las cavernas de acero” propuso las tres leyes de la robótica:
8
1. Un robot no puede perjudicar a un ser humano, ni con su inacción permitir que
un ser humano sufra daño.
2. Un robot ha de obedecer las órdenes recibidas de un ser humano, excepto si
tales órdenes entran en conflicto con la primera ley.
3. Un robot debe proteger su propia existencia, mientras que tal protección no
entre en conflicto con las leyes anteriores.
1.2 Historia de la Inteligencia Artificial
Los precursores de la Inteligencia Artificial integran el grupo de científicos que con
sus contribuciones dieron origen a los campos de la teoría de la información y del
control, que Norbert Wiener llamó cibernética.
En 1943 se publican tres artículos fundamentales, relativos a los aspectos teóricos
de la cibernética. En el primero, Wiener, Rosenblueth y Bigelow en el Instituto
Tecnológico de Masachussetts (M.I.T.) sugirieron distintas formas de conferir fines
y propósitos a las máquinas.
En el segundo Warren Mcculloch, del Colegio de Medicina de la Universidad de
Illinois, y Walter Pitts, matemático del M.I.T., pusieron de manifiesto de qué modo
las máquinas podían emplear los conceptos de la lógica y la abstracción y
demostraron cómo cualquier ley de entrada – salida podía modelizarse como una
red neuronal.
Finalmente Craik de la Universidad de Cambridge, propuso que las máquinas
empleasen modelos y analogías en la solución de problemas.
Posteriormente, en 1950, Claude Shannon del M.I.T., escribió el artículo “Una
máquina para jugar al ajedrez”. En él decía que los computadores podrían jugar
un buen ajedrez (aunque no perfecto) estudiando un gran número de jugadas y
secuencias de jugadas, y luego escogiendo la mejor.
Por esta misma época, Arthur Samuel de IBM, desarrolló un programa para jugar
“Checkers”, una variante anglosajona del juego de Damas, que aprendía de la
experiencia. El programa de Samuel, reproduciendo el enfoque propuesto por
Shannon para el ajedrez, podía evaluar las jugadas, las contrajugadas y las
probables respuestas de sus contrincantes, como si fuera un jugador humano,
adelantándose en varias jugadas a la actual.
En 1956, el matemático J ohn McCarthy del Darthmouth College, junto con
Shannon y Marvin Minsky (en aquel entonces matemático de Harvard) habían
9
enviado una propuesta a la fundación Rockefeller: “Proponemos que se lleve a
cabo un estudio de dos meses con diez personas sobre la Inteligencia Artificial…”.
Esta fue la primera vez que se utilizó la expresión “Inteligencia Artificial”; la había
acuñado McCarthy. El estudio tuvo lugar aquel verano. Asistieron Samuel, Alan
Newell de Rand Corporation y Hebert Simon, de Carnegie Tech (hoy la
Universidad de Carnegie - Mellon).
Lo más novedoso de la reunión lo constituyó la presentación por parte de Newell y
Simon de un programa para computador que podía demostrar los teoremas de
principia Mathematica de Russell y Whitehead y que llamaron el Teórico – Lógico.
Estos cientificos, además de Cliff Shaw, desarrollaron el solucionador general de
problemas, diseñado para aplicar ciertos procesos generales a la solución de
problemas, incluyendo el análisis de medios y fines y la planificación.
1.3 Historia Contemporánea
En la reunión de 1956 hubo representantes de las universidades que
posteriormente se convirtieron en líderes en el área de Inteligencia Artificial y
afines. Por ejemplo, McCarthy y Minsky que crearon el laboratorio de máquinas
inteligentes del M.I.T. Newell y Simon que formaron un equipo de investigación en
la Universidad Carnegie – Mellon. Samuels que iría a hacer lo propio en la
Universidad de Stanford. Después de la reunión de 1956, los investigadores se
aglutinaron alrededor de dos líneas básicas de investigación; la primera conocida
con los nombres de conexionismo o redes neuronales, y la segunda con el nombre
de ingeniería del conocimiento.
En el primer enfoque, sus investigadores pretenden emular al cerebro, incluyendo
su estructura. En el segundo enfoque, sus investigadores se orientan al
modelamiento de los aspectos cognitivos asociados al comportamiento inteligente.
Podríamos decir que uno apunta hacia un “Hardware Cerebral” y el otro hacia un
“Software Cerebral”.
Ambos enfoques son necesarios y complementarios. Por una parte, el
entendimiento del cerebro humano y su simulación. Por otra, la modelación y
ejecución de sus funciones por computador. Según Cuena
1
en la ingeniería del
conocimiento cabe diferenciar tres etapas:
1. Etapa primaria de creación de las técnicas básicas para representar el
comportamiento inteligente tanto a nivel de métodos como lenguajes. Esta
etapa va desde 1956 hasta 1970.

1
J osé Cuena y otros, Inteligencia Artificial: Sistemas Expertos, Alianza Editorial, Madrid, 1986, Página 11.
10
2. Etapa de prototipos en que se desarrollaron proyectos más complejos pero
todavía limitados a laboratorios. Esta etapa va desde 1971 hasta 1981.
3. Etapa de Difusión Industrial. Desde 1981.
En la etapa primaria se desarrollaron dos líneas de investigación: los métodos de
búsqueda heurística y los métodos de demostración automática.
En la primera línea se trabaja en la solución de problemas mediante sistemas
basados en reglas de producción. El concepto original de regla de producción se
remonta a 1943 cuando el matemático Emil Post, crea un sistema de reglas de
reescritura llamadas producciones, y que se conoce con el nombre de máquina de
Post.
Newell y Simon extienden las máquinas de Post y proponen una arquitectura para
la solución de problemas basada en las reglas de producción y que se conoce con
el nombre de solucionador general de problemas, en inglés GPS (General
Problem Solver). La solución de un problema se concibe como la búsqueda en un
espacio de estados posibles de una secuencia de operaciones de transformación
de estados, representados por reglas de producción, que conducen de un estado
inicial del problema a un estado meta u objetivo.
En la segunda línea se trabaja en la solución de problemas mediante el cálculo de
predicados de primer orden. Solucionar un problema, es en esta línea equivalente
a demostrar un teorema. La demostración automática se realiza especificando las
premisas del problema mediante la lógica de primer orden y efectuando un
proceso de demostración indirecta por contradicción o reducción al absurdo, que
consiste en transformar las especificaciones (premisas y objetivos) en un conjunto
de cláusulas que contienen una cláusula que representa la negación lógica de lo
que se quiere demostrar y en detectar una contradicción, puesta de manifiesto por
la existencia de una resolvente vacía. Esto se basa fundamentalmente en el uso
de la regla universal de la inferencia de resolución y unificación de Alan Robinson
de 1965, que permite reducir el problema de deducción automática a una
búsqueda de resoluciones entre cláusulas.
Es de resaltar que el desarrollo de técnicas heurísticas de la primera línea, se
desarrolló fundamentalmente alrededor de juegos, puzzles y problemas
combinatorios que fueron decisivos en el desarrollo de estrategias de búsqueda.
La segunda línea daría origen más adelante al lenguaje de programación lógica
llamado Prolog (Programming Logic). Sin embargo, en esta etapa el lenguaje
predominante es Lisp (List Processing).
En la etapa de prototipos se pasa de lo fútil a lo útil. En la etapa anterior las
aplicaciones desarrolladas eran fundamentalmente juegos y puzzles. Por esta
razón y por los fracasos en la elaboración de traductores automáticos, la
11
Inteligencia Artificial no fue bien considerada en la etapa inicial. Es en la etapa de
prototipos cuando la Inteligencia Artificial comienza a mostrar sus posibilidades de
aplicación industrial. Se trabaja en proyectos de mayor complejidad y se empieza
a mostrar resultados prácticos.
La etapa primaria es importante porque es la que permite la creación y
maduración de las técnicas básicas, que van a permitir en la etapa de prototipos
pasar de programas para jugar triqui, damas, ajedrez, etc., a sistemas expertos,
planificadores inteligentes de robots, sistemas de comprensión del lenguaje
natural, entornos LISP, primeras versiones de Prolog, etc.
En la etapa de prototipos, se desarrollaron los primeros prototipos de sistemas
expertos o de sistemas basados en el conocimiento. Sistemas como Mycin,
Dendral, Prospector, marcan un hito histórico en el desarrollo de la computación y
se convierten en los paradigmas de las aplicaciones de la Inteligencia Artificial.
Mycin es reconocido como el primer sistema experto, es un sistema de diagnóstico
de enfermedades infecciosas de la sangre, desarrollado en 1974 en la universidad
de Stanford.
Dendral es un sistema de ayuda en la configuración de estructuras químicas, fue
desarrollado por Edward Feigembaum y su equipo en 1977. De la misma época
son Prospector e Internist.
Los avances logrados en búsquedas heurísticas y en sistemas basados en reglas
de producción, posibilitaron la construcción de los primeros sistemas expertos.
Estos sistemas incorporan el conocimiento heurístico de un experto humano en
alguna área del saber, formalizado mediante alguna técnica de representación del
conocimiento.
Los sistemas expertos exhiben las habilidades y competencias propias de los
seres humanos expertos.
Existen diversas formas de representación del conocimiento de los expertos, que
facilitan su almacenamiento, recuperación y sobre todo su uso en procesos
inferenciales. La más conocida es la de las reglas de producción, pero no es la
única. Es de resaltar que los trabajos de lingüistas como Noam Chomsky,
Fillmore, Quillian, etc., permitieron desde la década de los años 50 hasta la de los
70, la elaboración de técnicas de representación del conocimiento más ricas
semánticamente, menos matemáticas y con un mayor grado de flexibilidad,
permitiendo mayor expresividad lingüística. Aparecen entonces las Redes
Semánticas de Quillian, las Redes particionadas de Hendrix, los Marcos de
Minsky, etc., como sistemas alternativos a las reglas de producción y a la lógica de
primer orden, para la representación e inferencia de conocimiento.
12
Los trabajos de Robinson en la etapa inicial darían sus frutos en 1975 con la
aparición de la primera versión del lenguaje de programación lógica, llamado
PROLOG, realizado por Colmerauer, Rusell y Kowalski. En las universidades de
Marsella (Francia) y de Edimburgo (Escocia) se desarrollan los primeros
compiladores de este lenguaje que se convirtió en una alternativa de LISP, para el
desarrollo de sistemas y aplicaciones de Inteligencia Artificial.
Es de resaltar también en esta etapa de prototipos los esfuerzos de Terry
Winograd en el tratamiento automático del lenguaje natural. Su sistema “Shrdlu”
de 1972, marcó un alentador avance en las investigaciones con el lenguaje
natural.
El sistema SHRDLU se opera en un micromundo de objetos geométricos al que el
sistema es capaz de contestar las preguntas en lenguaje natural, deduciendo las
respuestas o detectando las contradicciones y ambigüedades y formulando los
oportunos mensajes.
La etapa de difusión industrial se caracteriza por el paso de prototipos a
aplicaciones industriales. La difusión y auge de proyectos de Inteligencia Artificial
en esta etapa ha generado una dinámica comercial y económica caracterizada por
la aparición de muchas empresas que desarrollan software y aplicaciones
específicas de esta área.
Por otra parte, el Conexionismo es una abstracción matemática de las
asociaciones que realizan humanos y animales cuando están aprendiendo. Tiene
su fundamento en la creencia de los psicólogos conductistas de que la estructura
asociativa del aprendizaje reside en la microestructura neuronal de los
organismos.
Así que el conexionismo también recibe los nombres de redes neuronales
artificiales o simplemente redes neuronales, procesamiento paralelo distribuido,
sistemas neuromórficos o neuromiméticos.
La historia del conexionismo comienza con el grupo de cibernética del M.I.T.,
desde la década de 1940.
Se inicia con el trabajo de McCulloch y Pitts sobre la representación matemática
de las neuronas, y el trabajo de Rosenblatt sobre el perceptron (una máquina
capaz de aprender).
Posteriormente aparece el clásico trabajo de Minsky y Paper donde se muestran
las limitaciones del perceptron.
Luego surgen trabajos sobre sistemas adaptativos entroncados con el dominio del
Reconocimiento de formas.
13
La teoría de redes neuronales crece desde los años 60 con las aportaciones del
biólogo Hebb, o el algoritmo de los mínimos cuadrados de Widrow.
Trabajos más recientes se deben a Hopfield, que desarrolló el principio de
Liapunov o estabilidad de redes simétricas, en 1982. También Rumelhart,
McClelland, Sejnowski, Feldman y especialmente Grossberg y Kohonen.
Es importante el desarrollo del concepto de memoria asociativa desde Anderson
hasta Kohonen.
En la actualidad hay un gran interés en el conexionismo debido al desarrollo de
nuevas topologías para las redes y de nuevos algoritmos de aprendizaje.
También lo hay en los neurocomputadores, que son implantaciones eléctricas y
ópticas de redes neuronales.
Los neurocomputadores presentan varias ventajas frente a los convencionales
(arquitectura Von Neumann): almacenan gran cantidad de patrones complejos
(sonidos, escenas visuales, movimientos de robots, comportamiento espacio –
temporal, comportamiento social, etc.) y clasifican nuevos patrones a patrones ya
almacenados. Es decir, asocian patrones de entrada a los patrones almacenados
más próximos en forma inmediata.
Para las redes neuronales simuladas por software se han desarrollado gran
cantidad de algoritmos de aprendizaje o entrenamiento que se enmarcan en dos
grandes tendencias. La primera es el denominado aprendizaje supervisado, que
consiste en términos generales en un proceso iterativo mediante el cual un patrón
de entrada es procesado para producir un patrón de salida que es comparado con
un patrón tipo, retroalimentándose la red con ese patrón de salida hasta que un
determinado paso produzca un patrón de salida que se puede clasificar en un
patrón tipo. El aprendizaje es supervisado porque el algoritmo en cada iteración
va alternando unos valores o pesos que se van ajustando de tal manera que los
patrones de salida se parezcan cada vez más a los patrones tipo. Por ejemplo, el
algoritmo podría calcular la distancia o la medida de similaridad entre un patrón de
salida y el patrón tipo, ajustando valores mediante una sencilla fórmula que
representa una ecuación en diferencias finitas. Está garantizado que el
procedimiento es convergente mediante el adecuado entrenamiento del sistema,
que consiste en el ajuste de varios parámetros. Para tal propósito las redes y sus
algoritmos de aprendizaje supervisado actúan como memorias asociativas y
clasificadores. Ejemplo de esta tendencia son las redes de Hopfield, los
Perceptrones, las redes de Hamming y los algoritmos como Backpropagation.
La segunda tendencia es la denominada aprendizaje no supervisado, que también
es un proceso iterativo mediante el cual el patrón de entrada es procesado para
14
producir un patrón de salida, pero a diferencia de la tendencia anterior no es
comparado con un patrón tipo, es decir, durante el entrenamiento no hay
información concerniente a la correcta clasificación de patrón.
Las redes y algoritmos de aprendizaje no supervisado actúan como vectores de
cuantización o para formar clusters. Ejemplos de esta tendencia son las redes de
Carpenter-Grossberg y las redes auto-organizadas de Teuvo Kohonen.
1.4 Ejercicios
1. Realice un cuadro sinóptico que resuma el proceso histórico de la Inteligencia
Artificial.
2. ¿En qué enfoques se divide la Inteligencia Artificial?
3. A grandes rasgos ¿qué características tienen los enfoques de la Inteligencia
Artificial?
4. ¿Cuáles son las leyes de la robótica formuladas por Asimov?
5. Describa las etapas de la Ingeniería del Conocimiento.
15
CAPÍTULO 2
Áreas de la Inteligencia Artificial
La inteligencia artificial tiene muchas aplicaciones e incide directamente en
muchos campos o dominios del saber y se divide en varias áreas de investigación
y aplicación; algunas de las cuales exploraremos en este capítulo.
2.1 Sistemas Expertos
De manera muy simple podemos caracterizar los sistemas expertos como un
conjunto integrado de programas, con un nivel de competencias profesionales,
equiparable al de un experto humano en una determinada área del saber.
Los sistemas expertos exhiben un comportamiento “inteligente”, en el sentido de
que poseen habilidades, que, aplicadas a profesionales humanos no dudaríamos
en calificarlas de “inteligentes”. Así por ejemplo, si un médico es muy acertado en
sus diagnósticos y tratamientos, con lo cual ha adquirido fama de competente, o
inteligente; también un sistema experto de diagnóstico médico con iguales
capacidades de acierto, merece el calificativo de “competente” o “inteligente”.
Estos sistemas capturan conocimiento de uno o más expertos humanos, lo que les
confiere la capacidad de responder preguntas, solucionar problemas y tomar
decisiones en un determinado dominio del saber.
Sin embargo, cuando hablamos de conocimiento nos referimos a un tipo en
especial, llamado “heurístico”. Este es el conocimiento derivado primariamente de
la experiencia, es un “fruto” de la experiencia en el mundo real, no generado a
partir de libros, manuales, etc.
El conocimiento heurístico “encapsula” ese saber, producto de muchos años de
ejercicio profesional, o de experiencia de trabajo, y que es extremadamente útil
porque está íntimamente ligado al diario vivir, a sus retos, problemas y soluciones.
Los sistemas expertos son un caso particular de unos sistemas más generales,
denominados “Sistemas basados en el conocimiento”, que deben su generalidad
al uso de muchas fuentes de conocimiento, y por lo tanto no se circunscriben
específicamente al uso de conocimiento heurístico.
16
Una de las virtudes más importantes de los sistemas expertos, es la de lograr
“perpetuar” el conocimiento y la experiencia humanos. Estos sistemas permiten
hacer persistente el conocimiento heurístico, un bien valioso, difícil de cosechar y
que requiere muchos años de gestación en un ser humano, después de un
costoso proceso de educación, aprendizaje, experiencias, etc. El lograr que esa
experiencia sobreviva y trascienda al gestor humano y continúe siendo útil, es una
forma bella de percibir las bondades de estos sistemas más allá de la fría técnica.
Otra virtud importante de los sistemas expertos brota de sus capacidades de
empaquetamiento y almacenamiento de conocimiento, que les permite duplicar y
exportar ese conocimiento, llegando a muchos lugares donde no era disponible.
Así por ejemplo un sistema experto de diagnóstico médico obtenido a partir de un
especialista, puede ser utilizado en lugares donde esos especialistas no están
presentes (pueblos, centros de salud, hospitales de bajo nivel, etc.).
2.1.1 Sistemas Expertos Vs. Programación Convencional
La solución de problemas mediante programas tradicionales es algorítmica, esto
es, para cualquier entrada hay un camino computacional que se sigue siempre y
hay un mecanismo simple capaz de producir la salida correcta a partir de esa
entrada. Este modelo de solución de problemas es inflexible y determinístico, el
algoritmo es fijo .
La solución de problemas mediante sistemas expertos no es algorítmica, es
conocida como programación simbólica. Los símbolos son usados para
representar objetos, conceptos, ideas, hechos, juicios, relaciones, reglas y otras
formas de conocimiento humano. La información simbólica es usada para formar
una base de conocimiento la cual es utilizada para resolver problemas o tomar
decisiones en el dominio del saber considerado.
De esta manera podemos señalar que la principal diferencia entre los programas
convencionales y los sistemas expertos, radica en que en éstos el modelo de
solución de problemas está explícitamente considerado en la “base de
conocimiento”, mientras que en los programas tradicionales, dicho modelo
aparece sólo implícitamente formando parte del código del programa.
La manipulación de la base de conocimiento es análoga al pensamiento y el
razonamiento y es realizada por una estrategia de control que permite tomar
decisiones sobre cómo usar el conocimiento específico que se tiene acerca del
problema en curso de solución, otorgando una gran flexibilidad.
La estrategia de control posee en sí misma varias estrategias para usar el
conocimiento representado en forma simbólica. Típicamente, el procesamiento
simbólico utiliza unas estrategias de inferencia, de búsqueda y de resolución de
conflictos, acompañadas de técnicas de equiparación de patrones.
17
La estrategia de control, globalmente, mira en la base de conocimiento en busca
de patrones o secuencias lógicas de conocimiento, en un proceso dinámico de
solución de un problema.
Aunque la programación tradicional y la simbólica son diferentes, debemos tener
en cuenta que los programas simbólicos son finalmente implementados con
algoritmos. Sin embargo existen lenguajes que se adaptan mejor a las
necesidades y usos de la inteligencia artificial, como por ejemplo Lisp, Prolog,
Scheme, etc.
2.1.2 Arquitectura de Sistemas Expertos
Se entiende por arquitectura de un sistema experto a la ciencia y método de
diseño que determina las estructuras de dicho sistema.
A partir de los casos de estudio desarrollados en el dominio de la construcción de
sistemas expertos han empezado a surgir algunos principios arquitecturales
comúnmente aceptados. La figura 2.1 ilustra una arquitectura típica.
Figura 2.1 Arquitectura típica de un sistema experto
Hechos
Reglas
Metas
Reglas
MEMORIA
AUXILIAR
B
A
S
E

D
E
L
C
O
N
O
C
I
M
I
E
N
T
O
SUBSISTEMA DE ADQUISICIÓN DEL
CONOCIMIENTO
SUBSISTEMA
DE INFERENCIA
SUBSISTEMA
DE CONTROL
MOTOR DE
INFERENCIA
MODULO DE EXPLICACIONES
I
N
T
E
R
F
A
S
E
Ing. del
conocimient
o
USUARIO
18
2.1.2.1 Base de Conocimiento
El corazón de cualquier sistema experto es su base de conocimiento, y hay
muchas maneras diferentes para representar conocimiento. El diseñador puede
escoger entre cálculo de predicados, reglas de producción, redes semánticas,
redes particionadas de Hendrix, marcos, guiones.
La base de conocimiento tiene dos tipos de saberes: los primeros, denominados
asercionales o factuales, que describen situaciones establecidas o a establecer,
es decir, los hechos y las hipótesis de trabajo que, eventualmente, se convertirán
en hechos. Por esta razón a la parte de la base de conocimiento que contiene
este conocimiento, también se le denomina “base de hechos”. Los segundos,
llamados procedimentales u operatorios, representan el saber “hacer” que se tiene
del dominio, es decir, es en ellos que se encuentra codificado el conocimiento
heurístico del experto humano. A esta parte de la Base de conocimiento se le
conoce con el nombre de Base de reglas, porque coloquialmente al conocimiento
heurístico se le denomina “Reglas del pulgar”. Sin embargo es bueno aclarar que
esto no significa que la representación de ese conocimiento se esté realizando
mediante reglas de producción. Ese conocimiento puede estar codificado
mediante las otras representaciones.
2.1.2.2 Motor de Inferencia
Si la base del conocimiento es el corazón de un sistema experto, el motor de
inferencia es el cerebro.
El motor de inferencia es el programa que construye los razonamientos a partir de
la base de conocimientos.
La función del motor de inferencia o máquina deductiva es probar hipótesis, es
decir, cuando se le realiza una pregunta o consulta, él toma los hechos relevantes
y los contrasta con la base de reglas, generando nuevos hechos, y encadena
estos nuevos hechos con nuevos elementos de la base de reglas, construyendo
un plan de solución de problemas.
El motor de inferencia utiliza tres estrategias básicas: estrategia de inferencia,
estrategia de búsqueda y estrategia de resolución de conflictos. La estrategia de
inferencia señala el modo de razonamiento, que no es otra cosa que la orientación
de los encadenamientos que realiza el motor de inferencia en sus ciclos de
trabajo. Existen dos modos o estrategias básicos de inferencia: encadenamiento
hacia delante (en inglés, forward chaining) y encadenamientos hacia atrás (en
inglés, backward chaining). En el encadenamiento hacia delante se equiparan los
19
hechos con las unidades del “Saber-Hacer” y se encadenan hasta alcanzar una
meta u objetivo, o señalar el fracaso del intento. En el encadenamiento hacia
atrás, se parte de la meta que se equipara con las unidades “saber-hacer” y se
encadenan reemplazando la meta inicial por unas submetas hasta que éstas sean
hechos verificados en la base de conocimiento. Este proceso se detallará en el
capítulo de sistemas basados en reglas.
En el proceso de equiparación con las unidades del “saber-hacer” puede surgir un
conjunto conflicto, esto es, un conjunto de dichas unidades que son utilizables en
el proceso de encadenamiento. Se hace necesario seleccionar una de dichas
unidades mediante una estrategia denominada resolución de conflictos y también
utilizar una estrategia que dirija el proceso de búsqueda de la meta, por ejemplo.
2.1.2.3 Subsistema de Adquisición del Conocimiento
El conocimiento normalmente se obtiene por interacción entre el experto y el
ingeniero del conocimiento. La labor del ingeniero del conocimiento es ayudar al
experto en el proceso de hacer explícito el conocimiento heurístico que éste
posee. La técnica habitual es la entrevista directa, en la cual el ingeniero de
conocimiento plantea un problema o escenario específico al experto y comienza a
establecer los principios subyacentes en la solución que éste le da al problema.
Esta técnica presenta dificultades, porque como muy bien lo señalan algunos
autores y desarrolladores, surge una paradoja que consiste en que entre más
competente es un experto humano, más dificultad le cuesta hacer explícitos sus
procesos mentales conducentes a la solución de problemas. Esto ha llevado a la
búsqueda de técnicas alternativas, procurando una manera automática de
sintetizar conocimiento heurístico, como por ejemplo sistemas de inducción o
sistemas de educación.
Los sistemas de adquisición de conocimiento para el caso directo, consisten
simplemente en una interfase de ayuda a la creación de la base de conocimiento,
que puede constar de un editor de bases de conocimiento, un editor gráfico,
facilidades de manejo e interacción y módulos especiales como depuradores,
verificadores de consistencia, etc.
2.1.2.4. Interfase de Usuario Final
Una vez el sistema experto ha sido construido, su utilización depende en gran
parte de la interfase del usuario final.
Lo que se busca es que el usuario no experto pueda seguir el razonamiento del
sistema en un lenguaje que le es natural, plantear interrogantes y exigir
20
explicaciones, sin tener necesidad de adquirir un conocimiento profundo de los
sistemas expertos o de informática. Por lo tanto la interfase debe permitir un
diálogo interactivo.
La interfase interactúa con el módulo de explicaciones en dos modos básicos:
“¿Cómo?” y “¿Por qué?”.
El modo “¿Cómo?” le permite al usuario interrogar al sistema preguntándole cómo
fue que llegó a determinada conclusión y el sistema mostrará la línea de
razonamiento que le llevó a esa conclusión.
El modo “¿Por qué?” le permite al usuario interrogar al sistema de por qué le
solicita determinada información y el sistema le indicará que dicha información es
necesaria para activar cierto conocimiento de la base y poder obtener
determinadas conclusiones.
2.1.3. Características de los Sistemas Expertos
Se considera que un sistema experto debe poseer las siguientes cualidades:
1. EXPERIENCIA: Una característica esencial en los sistemas expertos es su
incorporación de experiencia mediante la codificación del conocimiento
heurístico de los expertos. Sin la incorporación de ese “saber-hacer” de los
expertos humanos en el sistema, no podríamos realmente hablar de sistemas
expertos. No es suficiente la incorporación de hechos y principios generales,
como los encontrados en libros y manuales, se requiere el conocimiento
especializado que distingue a los expertos humanos. De lo contrario, a lo
sumo tendríamos un sistema basado en el conocimiento y no un sistema
experto.
2. CAPACIDAD DE RESOLVER PROBLEMAS: La incorporación de conocimiento
heurístico y no heurístico al sistema experto tiene un propósito fundamental: la
solución de problemas. Si no es así nos encontramos con una acumulación
inútil de conocimiento.
El apelativo de “inteligentes” que se les aplica a los sistemas expertos deriva
de sus capacidades para solucionar problemas y de la calidad de estas
soluciones. Por esta razón denominábamos al motor de inferencia como el
“cerebro” del sistema, porque sobre él recae la responsabilidad de ser eficaz y
eficiente en la elaboración de la solución de un problema.
3. MANIPULACIÓN SIMBÓLICA: El éxito en la solución de problemas por parte de un
sistema experto, en gran medida se debe a la capacidad de formular y
representar el problema.
21
Representar adecuadamente “cosas del mundo” descansa básicamente en la
capacidad de representar simbólicamente esos hechos del mundo.
Como lo señalábamos anteriormente, una distinción importante entre los
sistemas expertos y la programación convencional, es la capacidad de
manipulación simbólica que le permite a los sistemas expertos “razonar”.
4. RAZONAR SOBRE SÍ MISMO: Una de las características interesantes de los
sistemas expertos es la capacidad que tienen de razonar sobre sí mismos, es
decir, de considerar sus propios procesos de inferencia, recomponiendo toda la
cadena causal que los conduce a decisiones o conclusiones. Esto lo
señalábamos anteriormente cuando explicábamos la arquitectura del sistema y
mencionábamos los modos “¿Cómo?” y “¿Por qué?”.
En esta tarea juega un papel muy importante la memoria auxiliar, que es una
bitácora en la que se consigna toda la información relevante en el ciclo de
trabajo del motor de inferencia, y que es la que permite la reconstrucción y
explicación de toda la labor de encadenamiento y deducción.
5. ADICIONALES: Otras características deseables en los sistemas expertos son:
a) La portabilidad del conocimiento.
b) La capacidad de aprender de su propia experiencia.
c) Facilidades de modificación de la base de conocimiento.
d) Manejar incertidumbre.
2.1.4. Tareas de los Sistemas Expertos
Los sistemas expertos son una herramienta de gran ayuda en los siguientes tipos
de tareas:
1. DIAGNÓSTICO: El sistema busca encontrar fallas en un sistema, o determinar un
estado de enfermedad en una persona. De esta manera no sólo hablamos de
sistemas de diagnóstico médico, sino también de un sistema de diagnóstico
electro-mecánico.
2. INTERPRETACIÓN: El sistema realiza un análisis de datos o de patrones para
determinar su significado. Por ejemplo, un sistema capaz de interpretar un
electrocardiograma o un electroencefalograma.
3. MONITORIZACIÓN: El sistema interpreta señales continuamente y pone en
funcionamiento alarmas cuando se necesita una intervención. Por ejemplo,
monitorizar una planta industrial.
22
4. PREDICCIÓN: El sistema prevé un comportamiento futuro con base en un
modelo de comportamiento del pasado y del presente. Por ejemplo, predecir el
comportamiento en un mercado de capitales.
5. DISEÑO: El sistema propone configuraciones para crear objetos con una
funcionalidad determinada. Por ejemplo, diseñar circuitos digitales.
2.2 Robótica
Recordemos que en la antropología histórica de la Inteligencia Artificial, se
indicaba que desde la antigüedad se construyeron e imaginaron artefactos
capaces de realizar muchas tareas, algunas de ellas como ayudar a nuestras
labores, otras más osadas como amplificaciones de las capacidades humanas,
incluyendo el intelecto.
Hoy en día inventamos máquinas que nos ayudan a hacer nuestro trabajo más
rápido y más fácil. Sin embargo, también pensamos en máquinas que pueden
reemplazarnos totalmente, al menos en algunas tareas.
Desde la revolución industrial se ha incentivado la creación de máquinas capaces
de transformar materia prima en productos terminados, sin o con el mínimo de
intervención humana. Este proceso se denomina automatización.
La automatización ha estimulado la concepción de máquinas más flexibles y
universales. De tal manera que en vez de crear una máquina especial diseñada
para hacer sólo unas pocas operaciones, se están construyendo máquinas que
pueden ejecutar muchas de las funciones físicas de los seres humanos. Esto nos
conduce al concepto de robot.
Un robot es una máquina con la capacidad de duplicar o emular las capacidades
físicas de una persona.
Así como la inteligencia artificial emula muchas actividades intelectuales, el robot
emula las actividades manipulativas.
El cine y el teatro han estimulado la visión apocalíptica de un mundo controlado y
manipulado por robots inteligentes que contienden con la especie humana. Sin
embargo, la mayoría de los robots reales son máquinas que están lejos de esas
capacidades e intencionalidades. Son máquinas que no pueden pensar, razonar,
o tomar decisiones. Ejecutan alguna función, que les es completamente
programada, sin el menor atisbo de “Inteligencia”.
23
Tales robots preprogramados son útiles, pero muy limitados en la clase de tareas
que pueden realizar. Ellos pueden reemplazarnos solamente en tareas especiales
repetitivas, o inmersos en ambientes peligrosos para los seres humanos, como por
ejemplo en centrales nucleares, hornos de altas temperaturas, etc. En general
ellos no tienen autonomía, es decir, la capacidad de adaptarse a su entorno.
En un principio los robots eran operados mediante servomecanismos, sistemas
electromecánicos simples. Sin embargo en la actualidad cada vez son más los
que son operados y controlados por computador. Aunque estos robots no son
realmente inteligentes, el computador los dota de una mucho mayor flexibilidad
que les permite adaptarse a cambios de condiciones o a nuevas aplicaciones. De
la mano de la Inteligencia Artificial los robots controlados por computador
adquieren la habilidad de pensar, razonar, tomar decisiones, adaptarse
inteligentemente a un entorno, solucionar problemas complejos, “sentir” los
cambios.
El uso de sensores en los robots les permite percibir señales que son procesadas
computacionalmente, diciéndoles qué deben hacer. Esto le permite al robot
razonar y adaptarse a una situación dada.
Los sensores pueden ser de muchos tipos: sistemas de visión computacional,
sensores de temperatura, presión, etc.
2.2.1. Aplicaciones y Beneficios de los Robots
Hay tres justificaciones principales para el uso de robots. La primera es la mejora
de la productividad. La ventaja fundamental de los robots que son incorporados
por ejemplo en una línea de ensamble, es que pueden realizar esas tareas
repetitivas, una y otra vez, sin protestar, sin vacaciones, sin cansarse, sin estar
afectados emocionalmente, sin parar la producción. Ellos simplemente hacen su
trabajo día tras día.
La segunda justificación es que muchas tareas en la industria son peligrosas para
los seres humanos. Muchos trabajadores son expuestos a sustancias tóxicas,
como químicos y sustancias radioactivas, elevadas temperaturas, altos niveles de
ruido, materiales pesados, materiales cortopunzantes, etc. En estas condiciones
especiales en las que robots puedan realizar esas tareas manipulando materiales
peligrosos o sobreviviendo a esos ambientes hostiles, ellos representan una
excelente alternativa.
La tercera justificación es económica. La alta inversión que inicialmente hay que
hacer en un proceso de robotización industrial, se reditúa ampliamente con el
tiempo.
24
Hay muchas aplicaciones de los robots en la industria. La aplicación más
conocida de brazos robots en la manufactura es la soldadura. La industria
automotriz hace un uso intensivo de robots soldadores. La soldadura es una
actividad peligrosa, que requiere precisión y concentración. Para un brazo robot
programado esto es fácil de realizar.
Otra aplicación conocida es la de la transferencia de materiales de un lugar a otro
usando brazos robots. Esta labor puede ejecutarse en bodegas y en lugares de
almacenamiento importantes.
En muchas aplicaciones de manufactura, robots realizan tareas de ensamble de
alguna máquina o dispositivo. Los componentes individuales son manipulados y
ordenados en la secuencia apropiada para formar el dispositivo. Es típico el uso
de robots en la industria de los circuitos integrados y componentes electrónicas.
Otra aplicación importante de los robots es la utilización de brazos robot para
pintar mediante el uso de sprays. La cantidad de pintura puede ser controlada
precisamente. Sin embargo no sólo es pintura lo que el brazo robot puede
esparcir, también puede hacerlo con aceite para propósitos de lubricación por
ejemplo, o de sustancias químicas para prevenir corrosión o en general para
procesos de barnizado, etc.
2.2.2 Robots Industriales
En la industria se encuentran dos tipos de robots básicos. El primer tipo son los
brazos robot fijos. El segundo tipo son los robots móviles.
Los brazos robot fijos están montados sobre una base, cerca del lugar donde
realizan su trabajo. Normalmente la base está fijada a una superficie y no es
móvil.
Los materiales que manipulan los brazos robot están muy cercanos a él. El brazo
del robot ejecuta una serie de movimientos dependiendo de su programación.
En algunas aplicaciones especiales, los brazos robot se pueden hacer móviles,
por ejemplo montándolos sobre rieles, de tal manera que se puedan desplazar a lo
largo de una línea de producción.
La figura 2.2 ilustra un brazo robot típico.
25
Figura 2.2 Brazo robot fijo típico
Los robots están diseñados para actuar como brazos humanos. El brazo puede
rotar o deslizarse para mayor flexibilidad. Al final del brazo tenemos una muñeca
con la capacidad de rotar y con varios grados de libertad suministrados por un
articulador, al final del cual se encuentra el mecanismo de sujeción.
El mecanismo de sujeción más sencillo es una garra, que simula los dedos y su
capacidad de coger y agarrar. Versiones mas elaboradas usan tres o más “dedos”
para proporcionar más flexibilidad.
Hay varios tipos de brazos robot, dependiendo del método de acceso a un punto
dado dentro del espacio definido por su alcance. Los nombres de esos tipos
dependen del sistema de coordenadas utilizado: cartesianas, cilíndricas, esféricas,
polares.
Dependiendo del tipo de brazo robot y de los movimientos de la muñeca,
hablamos de grados de libertad. La palabra grados de libertad se refiere al
número de variables independientes usadas para describir el posicionamiento del
brazo (coordenadas).
La energía necesaria para mover el brazo puede provenir de diferentes fuentes de
potencia: eléctricas, hidráulicas y neumáticas.
La fuente de potencia eléctrica es un motor eléctrico de corriente continua o
alterna que provee rotación o movimiento en las partes.
.
.
.
.
Codo
J unta
Muñeca
Mecanismo
de sujeción
Base
Montaje
Rotatorio
Hombro
Cable del
computador
o
Controlador
26
La fuente de potencia hidráulica es un gato hidráulico que presiona un líquido de
tal manera que por el uso de válvulas y otros mecanismos puede controlar todos
los movimientos del brazo.
Algunos robots utilizan un sistema neumático como fuente de potencia. El aire
comprimido es conducido para generar movimiento.
Para que la fuente de potencia mueva un brazo robot a una posición específica y
realice una tarea concreta, es necesario que exista un controlador que envíe
señales a la fuente de potencia para que realice su labor. Los controladores son
usualmente circuitos electrónicos, que programados, le dan al brazo robot una
secuencia de instrucciones.
Cada vez más se utilizan computadores digitales como controladores.
Los robots móviles tienen la capacidad de desplazarse en su entorno, de tal
manera que sus brazos manipuladores están montados sobre plataformas que
actúan como vehículos propulsores. Sin embargo hay diferentes estrategias de
locomoción, desde los robots con ruedas y con patas hasta los acuáticos.
Muchos robots móviles son teleoperados mediante señales de radio, pero otros lo
son por cables largos. En estos robots teleoperados, en algunos casos el
operador humano puede ver la ejecución de tareas por parte del robot y realizar
los ajustes y controles apropiados, pero en otros casos no es así, haciéndose
necesario que el robot esté dotado de dispositivos como cámaras de televisión
para recibir información visual que le permita al operador dirigir al robot hacia las
acciones pertinentes. En algunos casos los robots tienen la capacidad de enviar
señales como luces infrarrojas o ultrasonidos que son reflejados por el entorno y
percibidos por sensores de robots, produciéndose retroalimentación que le permite
al operador humano manejar adecuadamente al robot.
La ventaja fundamental de los robots móviles radica en que estos pueden
desplazarse hasta el lugar donde hay que ejecutar el trabajo. Esto los hace
idóneos para reemplazar los seres humanos en ambientes o tareas peligrosos.
Pueden ser enviados a plantas nucleares, fondo de los océanos, cuevas,
desiertos, espacio exterior, etc. Pueden realizar tareas peligrosas como
manipulación de sustancias tóxicas, desactivación de bombas o artefactos
explosivos, etc.
2.2.3 Robots Inteligentes
Los robots descritos anteriormente no pueden pensar o adaptarse a su entorno.
Ellos simplemente llevan a cabo una serie de tareas preprogramadas. Son útiles
27
en labores donde la inteligencia, toma de decisiones y adaptabilidad no son
requeridas.
Los robots son más útiles en la medida que exhiben comportamientos y
cualidades que ordinariamente consideramos como inteligentes. Cuando ellos
perciben un entorno mediante sensores que actúan como sus órganos de los
sentidos, procesan esa información, toman decisiones, se adaptan al entorno
modificando sus acciones frente a él dependiendo de la situación, es decir, en
resumen comportándose de manera autónoma.
La Inteligencia Artificial es la gran responsable de ese paso de los robots
industriales a los robots inteligentes, pues algunas de sus ramas son las que
permiten dotar a los robots desde percepciones sensoriales hasta razonamiento y
toma de decisiones.
Cuando un robot industrial es programado para realizar una tarea, se exige que el
posicionamiento del objeto de manipulación por parte del robot sea muy preciso.
Si la pieza a ser manipulada no aparece en la posición correcta, el robot fallará en
su tarea.
Teniendo en cuenta las imperfecciones propias de nuestro mundo, es muy
importante que el robot sea capaz de enfrentarse y adaptarse a situaciones no
planeadas, como variaciones en las condiciones del entorno de operación, errores,
desórdenes, daños, etc. Es decir, con un sinfín de contingencias posibles.
La real utilidad de un robot dependerá en gran medida de su capacidad de
responder a las eventualidades del mundo. su grado de flexibilidad y adaptación,
a su capacidad de percibir, evaluar y compensar los problemas inherentes a las
imperfecciones de su entorno de trabajo.
Para lograr que un robot tome decisiones y actúe adecuadamente en
circunstancias impredecibles, es necesario dotarlo de sensores y de la capacidad
de razonamiento y toma de decisiones.
Si un robot tiene la capacidad de “ver”, o “escuchar”, o “tocar”, o “gustar”, u “oler”,
percibirá mejor su entorno y podrá hacer mejor su trabajo.
Es importante que los robots puedan tener los mismo sentidos que nosotros
tenemos, como una aproximación básica esencial al mundo, para que exhiban
comportamientos con esas cualidades de inteligencia que esperamos.
La visión es el sentido más importante en humanos y en robots. Mucha
información del entorno es obtenida por este sentido, más que por ningún otro.
28
Dotar a un robot del sentido de la visión no es fácil. Sin embargo no lo es, porque
el problema va más allá de montar una cámara de vídeo que capte un ambiente o
se enfoque en una pieza de trabajo. Lograr la visión es más complejo que
capturar una imagen. La cámara y los dispositivos ópticos son sólo órganos
aferentes en el proceso de visión, la visión no se produce con ellos, hace falta un
“cerebro” capaz de asociar la imagen con un marco conceptual elaborado a partir
de la experiencia, producto de un aprendizaje.
Para hablar de visión debemos distinguir dos fases. La primera relacionada con la
obtención de la imagen. El posicionamiento de la cámara es crítico para obtener
la mejor vista posible, y su movilidad también es muy importante. En algunos
casos se hacen necesarias dos o más cámaras, por ejemplo para obtener visión
estereoscópica, o para calcular distancias por triangulación.
La segunda está relacionada con el procesamiento de la imagen, es decir, con la
visión propiamente dicha. En el caso de los seres humanos esta labor la realiza el
área de la corteza cerebral dedicada a la visión, con la intervención de otros
órganos y áreas corticales que conforman la capacidad de asociación. En el caso
del robot esta labor depende de un motor de inferencia con una base de
conocimiento asociada.
Esta labor de percepción inteligente es aplicable a todos los demás sentidos.
El segundo sentido más importante es el del tacto. Este sentido le permite al robot
estar en contacto con la pieza de trabajo. Más aún, le permite saber cuánta
presión le está ejerciendo a la pieza de trabajo. Una garra aplicará una cantidad
fija de presión a la pieza. Si ésta no es suficiente, el objeto caerá, por el contrario
si es demasiada lo podrá dañar. Esto hace necesario ajustar la fuerza correcta, lo
cual se realiza mediante unos transductores de presión, que permiten controlar la
cantidad de presión en la garra o pinza.
El sentido de “escuchar” no es tan importante como el de “ver” y “tocar”. Sin
embargo en algunas situaciones la habilidad de escuchar puede ser muy útil.
Nuevamente “escuchar” no es simplemente percibir una señal acústica mediante
un micrófono y a lo sumo amplificarla, hace falta un sistema reconocedor de
sonidos, por ejemplo un reconocedor de voz, que como veremos más adelante es
algo complejo.
Los sentidos del “olfato” y el “gusto” rara vez se necesitan y utilizan.
En los seres humanos la corteza cerebral es el centro de procesamiento sensorial
que nos permite “ver”, “escuchar”, etc. En los robots es una arquitectura con una
configuración especial la que permite asociar percepción con inteligencia. La
Figura 2.3 ilustra la arquitectura para un robot inteligente.
29
Figura 2.3 Arquitectura para un Robot Inteligente
2.3 Visión Computacional
La visión en los seres humanos representa una tarea formidable, en la que se
encuentran implicados una docena de centros cerebrales que constituyen el 60%
de la corteza cerebral. La retina, provista de cien millones de conos y bastones y
de cuatro capas de neuronas suplementarias, efectúa diez mil millones de
operaciones por segundo antes de que la “representación” de la escena
observada llegue al nervio óptico.
CPU
Interfase de
Salida
Interfase de
Entrada
Programa de
Control
Base de
Datos
Motor de
Inferencia
Base de
Conocimiento
RAM
COMPUTADOR
BRAZO
ROBOT
Ambiente de
Trabajo
Sensores
Pre-
Procesamiento
30
Pero toda esta información aún no es suficiente: la imagen que se forma en
nuestra retina es una imagen bidimensional que, a continuación, nuestro cerebro
interpreta en forma tridimensional.
Esta transformación es un proceso complejo que podría ocasionar muchas
ambigüedades. Esta es una de las dificultades grandes para la visión artificial o
visión computacional. Lograr distinguir un objeto plano de uno con volumen, una
cerámica o porcelana o estatua de un animal de uno vivo, no confundirse con las
sombras, etc. Sin embargo nosotros no tenemos esas dificultades. ¿Cómo los
sistemas de visión artificial lo pueden lograr? ¿Qué procesos computacionales hay
que utilizar para deducir de la percepción de la realidad (imagen), una
interpretación simbólica (objetos reconocidos, modelo de entorno, etc.)? Además
reduciendo la enorme cantidad de cómputo necesaria para el tratamiento de
cantidades de información tan importantes.
Estos son los retos fundamentales a los que responden los sistemas
computacionales de visión artificial.
Las aplicaciones de estos sistema son muchas y como lo señalábamos en la parte
de robótica, son esenciales en robótica inteligente.
Los sistemas de inspección visual han constituido la primera aplicación de la visión
artificial. Esto se debe a que las tareas de inspección y control, ocupan a un
porcentaje alto de obreros en el mundo de la producción de bienes.
Tareas como la selección de piezas mecánicas, control de los defectos en piezas
de motor o de componentes electrónicos, entre otras, son aplicaciones cotidianas
de estos sistemas.
Un sistema de visión artificial es una combinación de sensores y de computación.
Los primeros miden las intensidades luminosas de la escena observada; el
sistema computacional trata y analiza estos datos, de los que extrae una
descripción simbólica del entorno. Así pues, los sensores son los elementos
intermediarios entre el mundo real y el sistema de tratamiento de la imagen.
Un sistema computacional de visión artificial opera mediante un proceso que
consta de cuatro pasos: adquisición de la imagen, procesamiento de la imagen,
análisis de la imagen y entendimiento de la imagen.
Consideremos cada uno de esos pasos con más detalle.
2.3.1 Adquisición de la Imagen.
31
La mayoría de las veces, la adquisición de imágenes se realiza con ayuda de
sensores de tipo cámara de televisión, que suministran una señal de vídeo
estándar, posteriormente numerizada.
Básicamente el proceso consiste en capturar la imagen mediante la cámara que
además traslada la escena a ser analizada en una señal análoga. Luego esa
señal es digitalizada mediante un convertidor análogo a digital, que la convierte en
formato binario. Los números binarios son almacenados y posteriormente
procesados por el computador.
Las cámaras principalmente son de dos tipos: cámaras de tubos y cámaras de
semiconductores.
Cámaras de tubos son las que se han utilizado durante muchos años,
principalmente en televisión.
Estas cámaras son en esencia un tubo de rayos catódicos que posee una fuente
emisora de electrones (cátodo), los cuales son acelerados en el cañón del tubo
mediante un campo electromagnético, y colisionando perpendicularmente contra
un objetivo fotosensible.
Las cámaras de semiconductores están constituidas por fotodiodos integrados en
sustratos de silicio. La versión más moderna de las cámaras de semiconductores
son los dispositivos de carga acoplada (CCD en inglés, iniciales que corresponden
a Charged Coupled Devices). Un dispositivo de estos es un circuito integrado
sensible a la luz y diseñado para convertir una imagen visual rectangular en una
señal eléctrica de vídeo. Una lente enfoca la escena sobre un sustrato
fotoconductor. Este dispositivo absorbe la luz y almacena su carga en miles de
pequeños condensadores cuadrados.
Para “leer” la escena, se aplican voltajes a los electrodos de los condensadores en
secuencia de derecha a izquierda, produciéndose una descarga en los
condensadores y con ella una transferencia de una señal análoga.
Las cámaras de carga acoplada son las preferidas para visión computacional.
Son más pequeñas, más sensibles y distorsionan mucho menos.
Cada vez que una señal de vídeo es escaneada por un convertidor análogo a
digital, decimos que un pixel ha sido creado. Un pixel es el valor de la intensidad
de luz en un punto en particular sobre una línea escaneada. Por lo tanto cada
pixel es el elemento más pequeño en el que descomponemos una imagen
escaneada.
A mayor número de pixeles por línea, mayor definición.
32
Todas las escenas son representadas como filas y columnas de pixeles, en una
escala de grises.
El número de bits de salida del convertidor análogo a digital determina el número
total de niveles de grises a ser representados.
Las vídeo cámaras no ven en tres dimensiones. Lo que se obtiene es una
representación bidimensional. Sin información de profundidad o visión
estereoscópica, es muy difícil determinar la distancia entre la cámara y los objetos
observados. Además es difícil determinar las distancias entre diferentes objetos
en la escena. Todo esto es muy importante porque ayuda a comprender mejor la
escena.
Para obtener imágenes tridimensionales, la misma escena es vista por dos
cámaras. Las cámaras son usualmente localizadas en puntos fijos y separados a
distancias conocidas. Luego, las escenas de las dos cámaras son digitalizadas y
almacenadas en memoria. Una vez los objetos en las escenas han sido
identificados, el computador ejecuta varias operaciones matemáticas para ayudar
a calcular las distancias a los objetos y las distancias entre los objetos, por el
conocido proceso de la triangularización [2],[6].
2.3.2. Procesamiento de Imágenes
Cuando los sensores han obtenido datos, la imagen se halla almacenada en la
memoria del computador en forma de un cuadro o matriz de números que indican
su luminosidad (nivel de gris) o bien su reparto en tres colores fundamentales:
azul, verde y rojo. El sistema de visión artificial aborda entonces la siguiente etapa
de su trabajo: el procesamiento de imagen.
Dicho procesamiento tiene como objetivo mejorar la calidad de la imagen. Y
cualquier cosa que se haga para que ésta sea más clara simplificará el análisis y
mejorará el entendimiento.
Desde el mismo instante en que la luz reflejada por una escena entra a un sistema
de visión computacional, es distorsionada. Por ejemplo, las lentes de la cámara
producen alguna distorsión. Inconsistencias en el objetivo fotosensible o en el
dispositivo de carga acoplada producirán disparidades en las intensidades
luminosas. No linealidades en el proceso de escaneo también producirán
distorsión. Finalmente, el proceso de conversión de análogo a digital introduce
imperfecciones llamadas errores de cuantización.
Hay otros problemas adicionarles. Niveles de luz extremadamente bajos pueden
producir una escena difícil de captar para la cámara. La cámara misma puede no
33
ser lo suficientemente sensible para capturar con toda su definición la escena.
También hay problemas con escenas extremadamente brillantes.
Los movimientos de la cámara pueden producir así mismo distorsiones.
Otro problema es el ruido, en una señal eléctrica, el ruido son adiciones no
deseadas que oscurecen la señal buscada.
Considerando el tipo de degradación de la señal, las técnicas de procesamiento se
utilizan para eliminar o minimizar esos problemas.
Una de las técnicas más utilizadas para ayudar a eliminar el ruido y la distorsión
es la de promedio de imágenes. En esta técnica, el sistema de visión artificial
captura vistas secuenciales de la escena y luego las promedia. Variaciones
menores pueden ocurrir de una escena a otra. Por ejemplo, si la posición de la luz
cambia o si el objeto se mueve, sus reflexiones variarán. Es más, en muchos
casos estos movimientos son deliberados para proporcionar diferentes vistas de
los mismos objetos. Puesto que este ruido es aleatorio, la técnica del promediado
los reduce a un nivel muy bajo [2],[6].
Otra técnica de procesamiento consiste en iluminar o en oscurecer la escena. Es
llamada modificación de la escala de grises. Dependiendo de la necesidad, la
modificación es hecha, agregando, restando, multiplicando o dividiendo los valores
de los pixel por una constante. El efecto es iluminar algunos pixel y oscurecer
otros. También existe la técnica del contraste, que como su nombre lo indica,
contrasta los valores de los pixel de la imagen en el rango entre la brillantez y la
oscuridad.
Otra técnica empleada se conoce con el nombre de aplanamiento de histograma.
Un histograma puede ser construido de la imagen binaria, contando el número de
veces que cada nivel de gris ocurre. Con este histograma un programa puede
determinar si hay excesivos valores altos o bajos procediendo a equilibrar esos
valores, lo que se refleja en un aplanamiento del histograma.
Dado que una imagen puede ser digitalizada y llevada a un formato binario, el
computador puede virtualmente ejecutar cualquier operación matemática,
manipulando los pixel de una imagen de muchas formas.
2.3.3. Análisis de Imagen
El análisis de la imagen consiste en extraer de ésta cierto número de
características que permitirán preparar una representación condensada y
estructurada. Esta representación es una síntesis de la información presente en la
escena observada, descripción en la que intervienen parámetros físicos o
34
geométricos bien definidos, como regiones, fronteras o bordes. Se fundamenta en
conceptos matemáticos como grafos, que permiten representar relaciones
geométricas (posiciones relativas) o topológicas (proximidad, inclusión…) entre las
características extraídas [2].
El primer paso en un análisis de imágenes consiste en localizar todos los bordes y
fronteras. Los bordes representan fronteras de dos superficies próximas.
También identifican la interfase entre dos superficies diferentes o entre un objeto y
un soporte. Un borde también se forma entre dos objetos cuando uno está
enfrente o detrás del otro.
Bordes y regiones o superficies definen completamente la escena. Las regiones
son grandes áreas planas de objetos o escenas que tienen la misma intensidad y
ocurren entre varios bordes y líneas de frontera.
Varias técnicas matemáticas han sido desarrolladas para detectar bordes y
superficies. Esas técnicas son el corazón del análisis de imágenes.
Las superficies son fáciles de identificar porque son relativamente uniformes en
intensidad luminosa. Los pixel adyacentes dentro de la superficie tendrán valores
iguales o muy próximos entre ellos. Los valores pueden cambiar gradualmente
sobre la superficie debido al sombreado causado por el posicionamiento de la
fuente de luz.
Las superficies son a menudo suavizadas, quitándoles irregularidades o
sombreando antes de que se detecten bordes. Después de esto se inicia el
proceso de detección de bordes. Esto se realiza con un programa que escanea a
través de todos los números binarios que representan pixel para determinar
cuándo esos pixeles caen en la frontera entre dos superficies. Esto se hace
comparando la intensidad de pixeles adyacentes. Si la diferencia entre los valores
es muy pequeña, las intensidades de los dos pixeles forman parte de una gran
superficie. Una gran diferencia, por otro lado, indica un borde o frontera.
El programa de detección de bordes utiliza un umbral de valores que le permite
estimar si una diferencia es lo suficientemente grande para que se considere el
reconocimiento de un borde. Si la diferencia en los valores del pixel supera el
umbral, entonces un borde ha sido detectado cuando las fronteras de todos los
objetos en la escena han sido identificadas, se esqueletizan dibujando una línea
mediana. La parte de entendimiento de la imagen del sistema de visión
computacional, utiliza estos esqueletos para hacer la identificación final de los
objetos.
35
2.3.4 Comprensión de la Imagen
El paso final en el proceso de visión computacional consiste en identificar objetos
específicos y sus interrelaciones. Esta es la parte del proceso que utiliza
inteligencia artificial. Los pasos previos fueron realizados con algoritmos, ahora
para entender la escena se utilizará un procesamiento simbólico.
Entender lo que es una escena requiere equiparación de patrones. El computador
es preprogramado con imágenes binarias pre-almacenadas, o patrones, que
representan objetos específicos. Usando un programa de búsqueda y técnicas de
equiparación de patrones, el computador mira a través de la información binaria
que representa la escena y la compara con varios patrones. Cuando la
equiparación es exitosa, un objeto es identificado. Este proceso de equiparación
continúa hasta que toda la información en la escena ha sido analizada y todos los
objetos han sido identificados. El computador sabe entonces qué es lo que esta
viendo.
La técnica de equiparación de patrones compara un modelo de un objeto
conocido, almacenado como una imagen binaria, contra la imagen binaria de la
escena que se está percibiendo. La base de comparación es el esqueleto
obtenido al final del paso de análisis de imagen. Tanto la escena como el patrón
son almacenados como esqueletos.
La comparación usualmente se hace, pixel a pixel. Los valores de los pixeles de
las dos imágenes son restados por ejemplo, obteniéndose un valor de diferencia.
Si la diferencia es cero, la equiparación es exitosa, lo que significa que son
iguales. Pequeñas diferencias ponen de manifiesto una equiparación muy
aproximada. Por el contrario, diferencias altas revelan una gran disparidad en las
figuras.
Es difícil equiparar una forma conocida a una forma percibida porque el patrón
almacenado en memoria es fijo en tamaño y orientación. Por lo tanto, para lograr
una equiparación, el patrón debe ser manipulado. Por ejemplo, modificar escalas
de tamaños, o rotar el patrón para lograr una mejor aproximación al objeto en la
escena.
Se pueden efectuar muchos cálculos antes de obtener una buena aproximación.
Después de cada re-orientación o modificación de escala del patrón, se realiza
una nueva equiparación.
Si no ocurre la equiparación, el computador no puede entender la escena. No
puede reconocer objetos ni acerca de qué es la escena. Si el patrón no se
encuentra en el computador, ese objeto nunca se podrá identificar. Esta es una
de las principales limitaciones de los sistemas de visión computacional.
36
Es importante tener en cuenta que la base de conocimiento para un sistema de
visión computacional es un conjunto de patrones de varias formas.
El proceso de equiparación de patrones es la base de la mayoría de los sistemas
industriales de visión computacional.
Hay otras técnicas de entendimiento o comprensión de la imagen, que también
involucran búsqueda y equiparación de patrones, pero a un nivel diferente. Por
ejemplo, en vez de almacenar objetos enteros o formas como patrones, el
computador puede almacenar bits y piezas de objetos en su base de
conocimiento. Al nivel más bajo, el computador puede almacenar un segmento de
línea, al cual manipula para equiparar contra las líneas del esqueleto. Lo mismo
vale para cuadrados, rectángulos, círculos y elipses.
El problema de la comprensión en el mundo real es extremadamente difícil y
complejo. De hecho son pocos los sistemas de visión computacional que son
capaces de comprender imágenes. Esto ha conducido a investigar la visión
computacional en entornos más reducidos, llamados mundo de bloques.
Un mundo de bloques es un entorno donde múltiples bloques de diferentes formas
geométricas son usados como objetos para formar una escena a ser identificada.
Los objetos coloreados son apilados unos al lado del otro para formar un ambiente
limitado y controlado. Luego es experimentado el sistema de visión computacional
en este mundo de bloques, produciéndose sobre él identificación de objetos.
La identificación de objetos en un simple mundo de bloques es relativamente fácil.
Usualmente es del 100%.
2.4. Reconocimiento de Voz
Las ventajas que se esperan de la comunicación hombre-máquina oral son
múltiples. Mientras que una gran cantidad de comunicaciones se lleva a cabo por
el procedimiento de escribir palabras, son solamente una pequeña fracción de
nuestras comunicaciones diarias por la voz. Las comunicaciones orales no son
solamente más naturales, sino también más rápidas. Esto repercute en las
comunicaciones hombre-máquina, pues si se dan a nivel oral, le permiten al ser
humano concentrar los ojos y las manos en otras actividades.
Con un sistema de reconocimiento de voz se pueden dar órdenes (comandos de
control) e ingresar datos. Por ejemplo, decirle al computador personal que le
muestre los archivos, o dictarle a un procesador de palabras, o ingresar oralmente
los datos de una hoja de cálculo, etc.
37
Consideremos una situación donde un computador controla varias máquinas y
procesos en una empresa. Los usuarios de tales sistemas están frecuentemente
ocupados observando los procesos, manipulando manualmente materiales o
controlando otras máquinas. En tales casos, es inconveniente escribir comandos
en el computador para ejecutar funciones de control.
Si se usa un sistema de reconocimiento de voz, el usuario se puede concentrar en
la observación y manejo de operaciones, controlando aun la maquinaria mediante
órdenes orales. Muchas máquinas podrían recibir comandos orales tan simples
como: “arranque”, “pare”, etc.
Existen múltiples aplicaciones potenciales de estos sistemas de reconocimiento de
voz. Desde sistemas de transcripción automática de dictado, hasta el control de
aparatos complejos mediante la voz.
Un ejemplo simple de aplicación es un sistema de control de inventarios que le
permite al usuario tener los ojos y las manos libres para manipular los objetos que
se están contando, mientras que la voz permite identificar y contar verbalmente el
objeto.
Una aplicación interesante es una cabina telefónica totalmente controlada por la
voz, en donde el reconocimiento y la síntesis de la misma permiten la
comunicación telefónica de manos libres, en la que no hay necesidad de los
aparatos mecánicos tradicionales, con ventajas como por ejemplo permitir su uso
por parte de minusválidos, y de ser menos vulnerables a vandalismo.
Algunas aplicaciones son mostradas en el cine y la televisión, donde se muestran
“carros fantásticos” que entre otras cosas permiten el control vocal, que presenta
la ventaja de no obligar al conductor a dejar el volante ni apartar la mirada de la
carretera. Muchos fabricantes de automóviles están interesados en la
incorporación de esta tecnología, que permite controlar con la voz desde el
arranque hasta los accesorios como el radio, pasando por las luces, aire
acondicionado, etc.
Los sistemas militares desde el control de armas hasta el pilotaje de aviones de
combate, comienzan a incorporar sistemas reconocedores de voz, que le permiten
al usuario liberar las manos o los ojos.
Dado que la voz de cada persona tiene unas características propias (intensidad,
tono, timbre), un uso adicional de los sistemas reconocedores de voz se encuentra
en el campo de la seguridad, ya que las características aludidas permiten
considerar una especie de firma oral, que identifica a cada persona. Esto es
utilizado como base para un sistema de seguridad que limita el acceso de
individuos a una determinada área. Por ejemplo, para abrir una puerta, la persona
pronuncia una frase especial o santo y seña en un micrófono, el sistema
38
reconocedor de voz equipara la firma vocal y si se encuentra entre las aceptadas o
reconocidas, abre la puerta. De otra manera el acceso es negado.
Los reconocedores de voz son clasificados de diversas maneras. La primera
consiste en que hay sistemas que reconocen palabras individuales y otros que
reconocen discurso continuo. La segunda consiste en que hay sistemas
dependientes o independientes del hablante [3],[11].
Un reconocedor de palabras, como su nombre lo indica, es un reconocedor de voz
que identifica palabras individuales. Tales sistemas son capaces de reconocer
solamente un pequeño vocabulario de palabras simples o frases simples. Para
transmitir comandos o datos a un computador usando uno de esos sistemas, se
debe especificar la información de entrada en un formato de palabras simples
dadas unas después de otras. Se deben definir pausas entre las palabras, no son
continuas.
Crear el hardware y el software que reconozca la voz humana es difícil. Los
primeros reconocedores de voz fueron del tipo de reconocedores de palabras. Es
más, los sistemas pioneros fueron aún más simples, en el sentido de que ellos
reconocían solamente letras individualmente de un alfabeto y números.
Los inicios de los trabajos sobre el reconocimiento de palabras se remontan a
1939. Un investigador de los laboratorios Bell, M. Dudley, construyó un aparato
llamado Vocoder (una contracción de voice coder, que significa “codificador de
voz”), que permitía codificar electrónicamente la señal vocal en una serie limitada
de parámetros, antes de transmitirla con un flujo reducido de informaciones y
reproducirla en un sistema de síntesis que efectuaba la operación inversa del
Vocoder.
Los reconocedores de discurso continuo, reconocen un flujo continuo de palabras.
Se les puede hablar frases completas, que serán reconocidas y entendidas. Los
reconocedores de discurso continuo son más difíciles de construir. La dificultad
estriba en separar una palabra de otra en una frase continua. Cuando hablamos
normalmente, la mayoría de las palabras fluyen juntas en un chorro continuo, lo
cual hace difícil para un reconocedor establecer dónde termina una palabra y
comienza otra.
A pesar de los numerosos años de investigación no son muchos los sistemas
reconocedores de discurso continuo que lo hacen en tiempo real; y menos aún los
que hacen reconocimiento independiente de los hablantes. Sin embargo
comienzan a aparecer en el mercado reconocedores con vocabularios limitados y
entrenados con redes neuronales artificiales.
Un sistema dependiente del hablante significa que el sistema ha sido entrenado
con la voz de un individuo particular. Dadas las diferencias en la voz de una
39
persona a otra, es difícil construir un sistema electrónico y computacional que
reconozca múltiples voces. Limitar el sistema a la voz de una persona no
solamente lo hace más simple sino más accesible.
Un sistema independiente del hablante, es un sistema reconocedor de voz
diseñado para ser completamente versátil, hasta tal punto que a pesar de las
diferencias en la voz de una persona a otra, el sistema pueda reconocerlas.
En síntesis, el lenguaje hablado naturalmente presenta un cierto número de
características que hacen muy complejo su tratamiento.
La ausencia de silencios entre las palabras plantea un problema muy difícil de
segmentación de un flujo continuo de palabras encadenadas. La variabilidad tan
grande que puede presentar un mismo discurso según la manera de hablar del
“hablante”, que puede cantar, gritar, murmurar, estar ronco o resfriado, y también
según el propio hablante (hombre, mujer, niño, voz nasal, diferencias de timbre,
etc.), sin hablar de los acentos regionales. Las perturbaciones aportadas por los
micrófonos (según el tipo, la distancia, la orientación) y el ambiente (ruido,
reverberación), complican aún más el problema. Además, el hecho de que la
palabra sea el resultado de una combinación de informaciones de caracteres muy
diferentes, que se sitúan a los niveles fonéticos (los sonidos elementales utilizados
por una lengua), fonológico (la manera en que se influyen entre sí en una palabra
o en una frase), sintáctico (la estructura de la frase), semántico (el sentido del
discurso) y pragmático (la adecuación al contexto real), multiplica los criterios de
decisión.
Las estrategias para la realización de reconocedores de voz depende del tipo de
reconocedor. Una cosa es construir un reconocedor capaz de reconocer
globalmente palabras aisladas (separadas por lo menos 200 milisegundos)
pertenecientes a vocabularios reducidos o pronunciadas por una sola persona; y
otra muy diferente construir el reconocedor capaz de reconocer el discurso
continuo y además independiente del hablante. Para este segundo caso la
estrategia procede en dos etapas: la primera, el reconocimiento de los sonidos
elementales que componen la lengua (los fonemas, y se habla de reconocimiento
fonético o analítico); la segunda, la explotación de información a nivel superior (el
léxico de las palabras posibles, la estructura de las frases enunciables) para
reconocer la frase efectivamente pronunciada a pesar de los errores cometidos al
nivel inferior sobre los sonidos que la componen.
40
Tanto si el reconocimiento es global como analítico, el proceso de reconocimiento
de voz comienza por el análisis de una señal vocal, previamente convertida en una
señal eléctrica mediante un micrófono. Ésta, que al principio se presenta como
una señal que varía continuamente en función del tiempo (se habla de señal
analógica) se convierte a continuación en una señal digital, es decir, en una serie
de números que representan la amplitud de la señal a intervalos próximos (una
diezmilésima de segundo). Esta señal codificada numéricamente, puede ser
manejada directamente por el dispositivo, sin embargo, normalmente se prefiere
trabajar sobre una representación “espectral” de la señal, obtenida midiendo
durante intervalos más prolongados (unos 10 milisegundos) los elementos de
frecuencias distintas que la componen y su amplitud (se trata de la frecuencia
fundamental, producida en primer análisis por las cuerdas vocales y sus diferentes
armónicos, con modulaciones introducidas por las cavidades buconasales, cuyos
principales rasgos se llaman formatos de la señal); este tipo de descomposición
se titula “análisis amplitud-tiempo-frecuencia”. Esta parametrización permite
reducir de forma considerable, aproximadamente en una factor de 10, el flujo de
informaciones representado por la señal vocal, y eliminar las redundancias que
hay en ella.
Es muy conocido el uso de las transformadas rápidas de Fourier para esta labor
de descomposición espectral.
El análisis acústico antes referido, y que proporciona una parametrización
numérica de la frase pronunciada, constituye la primera fase de un total de cuatro
que conforman el llamado módulo acústico. La siguiente fase de este módulo es
la segmentación, que descompone la señal en una serie de sonidos elementales
distintos y que precede a otra etapa muy importante: la extracción de las
características claves (en inglés, Features) que servirán para el reconocimiento de
los diferentes segmentos detectados. La elección de estas características no está
perfectamente definida: en los casos más corrientes, se trata de una descripción
condensada del espectro (composición de frecuencia) de la señal en los
momentos de mayor estabilidad de los segmentos, o bien por el contrario, en los
momentos de transición. En paralelo, otra operación realizada a veces por el
módulo de descodificación acústica es la extracción de las informaciones
“prosódicas”, o sea las relacionadas con particularidades de pronunciación. Estas
informaciones son de tres tipos: la variación de la frecuencia fundamental de la
voz, la intensidad de ésta y su ritmo (duración de las sílabas). Estos datos se
transmiten a un “módulo prosódico” especializado, eventualmente capaz de
detectar en ellos información que se añadirá al resultado del análisis de los
fonemas (insistencia, interrogación, etc.).
Aparte del módulo de descodificación acústica, los sistemas analíticos emplean
una sucesión de otros módulos, en cuyo interior, el proceso de reconocimiento
progresa gracias a la intervención de fuentes de conocimiento de niveles cada vez
41
más elevados: módulo fonético, fonológico, lexicológico, sintáctico, semántico y
pragmático.
La Figura 2.4 ilustra la interrelación de los módulos de un reconocedor de voz
analítico [11]:
Figura 2.4 Interrelación de Módulos
El módulo fonético desempeña un papel esencial: tiene la función de traducir la
lista de características claves determinada previamente en una serie de fonemas.
Pero la traducción en forma de fonemas no es sencilla: de hecho, la producción
de la palabra es un proceso dinámico en el que se articula un fonema preparando
ya la emisión del siguiente. En estas condiciones, no siempre es posible precisar
qué fenómeno corresponde a un sonido dado, sino sólo dar una serie de fonemas
posibles, con probabilidades. Entonces no se consigue una lista única de
fonemas, sino una lista de grupos de fonemas–candidatos que ofrecen numerosas
posibilidades de combinación, entre las cuales habrá que elegir utilizando las
informaciones de los niveles superiores al nivel fonético.
El primero de estos niveles es el fonológico: se refiere a los fenómenos de la
lengua que se traducen por el hecho de que el contenido fonético teórico de las
palabras es modificado en una articulación rápida o bien en función del contexto.
En el siguiente nivel, el lexicológico, intervienen las informaciones sobre las
palabras. Esto implica no solamente las palabras comunes, sino también las
flexiones de las palabras, como la conjugación de los verbos en los diferentes
Módulo
Módulo
Acústico
Módulo
Fonético
Módulo
Lexicológico y
Fonológico
Módulo
Sintáctico y
Semántico
Módulo
Pragmático
Rasgos
Acústico
Fonemas
Palabras
Frases
Diccionario
Fonético y reglas
Fonéticas
Léxico +
Reglas
Fonológicas
Sintaxis y
Semántica
Conocimientos
sobre la
aplicación y la
estructura del
diálogo
42
modos, tiempos y personas. Además hay que añadir los nombres propios y las
palabras raras, como las de los vocabularios técnicos. Cada una de estas
palabras puede tener una o varias pronunciaciones, en función de reglas
morfológicas que están representadas por su escritura fonética.
En los sistemas que reconocen el lenguaje natural, el nivel de grado superior,
llamado sintáctico, se supone que reafirma las reglas de la gramática que permiten
describir y analizar el lenguaje, en términos gramaticales y funcionales.
El nivel semántico, trata del o de los sentidos de las palabras como las que
pueden encontrarse en un diccionario, de las relaciones entre ellas. Debería
contener información que permitiese comprender el sentido de una frase, como lo
hace un ser humano.
Finalmente, el último nivel, llamado pragmático, tiene la misión de determinar el
sentido de una frase en el contexto de la aplicación. Así, dará un sentido diferente
a la palabra “letra” según que la acción suceda en un banco o en una imprenta.
De la misma manera, en el contexto de una conversación, deberá relacionar los
términos que describen un mismo elemento.
2.5. Tratamiento del Lenguaje Natural
La comunicación habitual con el computador es a través de lenguajes de
programación o de códigos especiales. El uso de teclado es indispensable para
decirle qué es lo que deseamos y él nos responde con mensajes cortos que
visualizamos en la pantalla del computador.
Para comunicarnos con el computador debemos aprender comandos, lenguajes y
toda la parafernalia asociada a ellos, que dista mucho del lenguaje humano que
llamamos lenguaje natural. Muchos esfuerzos se realizan en hacer los
computadores más “amigables”, mejorando las interfases hombre-máquina,
mediante pantallas de diálogo con menús, iconos, ventanas y con dispositivos
como ratones, lápices ópticos, pantallas sensibles al tacto, etc. Pero aun con ello
no se alcanza la comunicación no oral en lenguaje natural.
Muchas dificultades y barreras podrían ser minimizadas o aun eliminadas si
pudiéramos comunicarnos con el computador en nuestro propio lenguaje. No
seria necesario aprender comandos especiales, ni lenguajes extraños, basta dar
las instrucciones o la información en un formato conveniente, pero en español o en
inglés, o en la lengua que sea. Lo importante es que el computador tendría la
suficiente inteligencia para interpretar nuestros mensajes o instrucciones en ese
formato.
43
Los sistemas de procesamiento o tratamiento del lenguaje natural forman parte de
las aplicaciones de la inteligencia artificial, porque ellos son una forma de sistemas
basados en el conocimiento.
Para entender un requerimiento en lenguaje natural, un computador debe analizar
conocimiento, interpretarlo. Debe entender la gramática y las definiciones de las
palabras. Las técnicas de Inteligencia Artificial se utilizan para representar el
conocimiento interno y procesar las entradas. Las técnicas clásicas de búsqueda
y de equiparación de patrones son utilizadas junto con el conocimiento para
proveer entendimiento. Una vez el computador entiende la entrada, puede tomar
la acción deseada, y luego proporciona una respuesta que idealmente también
debería ser en lenguaje natural.
Ahora daremos algunas definiciones básicas necesarias.
Un lenguaje es un sistema para comunicarnos. Él implica expresiones tanto
verbales como escritas que nos ayudan a comunicar nuestros pensamientos y
sentimientos. Los lenguajes usan un amplio rango de sonidos, signos y símbolos
para crear palabras, frases, parágrafos, etc.
Los lenguajes naturales son el producto de muchos siglos de evolución de la
comunicación entre los seres humanos, son un producto cultural que refleja los
cambios en las sociedades, en las costumbres, en los desarrollos tecnológicos, en
la construcción de civilización.
También existen lenguajes que llamaremos formales como contraposición a los
lenguajes naturales.
Los lenguajes formales o artificiales son lenguajes restringidos deliberadamente
desarrollados para un propósito especial, como por ejemplo los lenguajes de
programación de computadores.
Un vocabulario es el conjunto de todas las palabras y frases que son usadas en un
lenguaje particular.
El vocabulario define todas las palabras usadas y entendidas por todas las
personas que usan un lenguaje específico. Debemos saber cómo estructurar esas
palabras en pensamientos completos.
El sistema de reglas para organizar las palabras para formar oraciones completas
y pensamientos es lo que se denomina gramática. La gramática se compone de
dos partes: sintaxis y semántica.
La sintaxis se refiere a la forma en la que las palabras se estructuran para formar
frases y oraciones. Esta parte de la gramática es la que se encarga con la mezcla
44
y secuenciación de diferentes clases de palabras en el lenguaje, tales como
sustantivos, verbos, adjetivos, etc. En la sintaxis se especifica un método para
poner las palabras en un orden determinado de tal manera que tengan la forma
correcta de acuerdo con el lenguaje.
La semántica se refiere al significado en el lenguaje. Estudia las interrelaciones
entre las palabras y la forma en que son ensambladas para representar un
pensamiento particular. La semántica nos proporciona maneras de analizar e
interpretar lo que se dice.
Cada oración expresa un sentido o pensamiento completo. El conjunto de
oraciones juntas forman un parágrafo. Como un todo, el parágrafo tiene sentido.
Pero si tomamos una oración y la sacamos del parágrafo y la miramos de forma
aislada, su significado puede no ser completamente entendido. Decimos que la
oración está fuera de contexto.
El contenido se refiere a la idea completa o pensamiento subyacente a cualquier
oración en el parágrafo. J untas, todas las oraciones agregan significado.
Aisladas, cada oración contiene solamente una parte del todo y requieren
interpretación. Cuando se miran como un todo las oraciones no requieren
interpretación.
El contexto clarifica el significado, explica circunstancias e interrelaciones.
La pragmática se refiere a lo que la gente realmente quiere decir, frente a lo que
ellos dicen o escriben. A menudo, decimos o escribimos una cosa, pero realmente
queremos decir otra.
La pragmática trata de obtener el verdadero significado o sentir, expresado en el
lenguaje.
Tanto el contexto como la pragmática juegan un papel importante en el
entendimiento. Ellas llenan el vacío que a menudo hay entre la sintaxis y la
semántica. Porque una cosa es comunicar y otra saber el significado real del
mensaje.
Teniendo en cuenta todos los elementos léxicos, sintácticos, semánticos y
pragmáticos asociados al lenguaje, la pregunta fundamental es: ¿Cómo lograr que
un computador analice el lenguaje natural, lo entienda, y tome entonces las
decisiones apropiadas?
Lo primero que el computador debe hacer es una búsqueda de palabras claves y
luego un análisis sintáctico y semántico.
45
El primer programa de un sistema de entendimiento del lenguaje natural, es un
procesador de palabras claves. En este proceso el programa busca en una
sentencia de entrada, palabras claves o frases.
El programa es capaz de identificar o conocer solamente las palabras y frases
seleccionadas. Una vez una palabra clave o frase es reconocida, el programa
responde basado en una réplica asociada con la palabra clave o selecciona frases
de la entrada.
El programa reconoce entradas muy específicas, las cuales usa para construir una
respuesta o para iniciar alguna otra acción.
Toda palabra o frase que se desea que el programa reconozca debe inicialmente
ser almacenada como parte del programa. También es necesario almacenar
variaciones o sinónimos de esas palabras.
Cada palabra en el texto de entrada es equiparada contra las palabras claves
almacenadas en un directorio o vocabulario. Es importante tener en cuenta el
tamaño del vocabulario. La mayoría de programas reconocedores del lenguaje
natural que usan esta técnica tienen un vocabulario limitado, y por ende el número
de respuestas apropiadas que se almacenan también es limitado.
El enfoque de palabras claves es muy limitado. Por esa razón lo más lógico es
ejecutar un análisis sintáctico y semántico detallado. Sin embargo realizar esto no
es nada fácil.
Para entender la complejidad del procesamiento del lenguaje natural, es
importante revisar las unidades básicas que conforman las oraciones de un
lenguaje natural. Las oraciones están formadas de unas unidades llamadas
palabras. Las palabras tienen significado y cuando son unidas, sus interrelaciones
representan ideas, pensamientos e imágenes visuales.
Cada palabra en sí misma posee un significado. Sin embargo hay el
inconveniente de que una palabra puede tener más de un significado y puede ser
clasificada en diferentes tipos. Por lo tanto el verdadero significado de la palabra
depende de cómo es usada en la oración, esto es de cómo se relaciona con las
otras palabras en la oración.
Esto causa muchas dificultades. Obviamente la gramática se encarga de
especificar las reglas que permiten estructurar las oraciones, ensamblando unas
palabras con otras, con lo cual se colabora en el proceso de aclarar significado.
Usualmente se dice que una oración está formada básicamente por un sujeto y un
predicado. El sujeto, también referido como Sintagma Nominal, identifica una
46
persona, objeto o cosa que es el foco principal de la oración. El predicado o
Sintagma Verbal, propone alguna acción que el sujeto realiza.
Para analizar una oración de entrada, el software descompone la oración en
palabras individuales. El programa escanea la frase en busca de espacios y
marcas de puntuación para identificar las palabras individuales. Pero los
analizadores sintácticos y semánticos van un poco más allá. Ellos descomponen
la palabra de entrada en unas unidades más pequeñas llamadas morfemas. En
realidad el morfema es la unidad más pequeña del lenguaje. Un morfema puede
ser la palabra misma, en cuyo caso es llamado un morfema libre. Por ejemplo la
palabra computador es un morfema, mientras que la palabra computadores consta
de dos morfemas, la palabra raíz computador es el primero y el sufijo “es” el
segundo. Los prefijos y sufijos son morfemas que acotan la palabra raíz para
modificar su significado.
La subdivisión de las palabras de esta manera, hace más fácil analizar la palabra y
decir cómo está siendo usada.
Un sistema de reconocimiento del lenguaje natural que utiliza análisis sintáctico y
semántico, presenta en su arquitectura cinco componentes principales que son el
analizador sintáctico, el diccionario, el entendedor, la base de conocimiento y el
generador (Ver Figura 2.5).
El analizador sintáctico es el elemento más importante del sistema de tratamiento
del lenguaje natural. Como su nombre lo indica él analiza sintácticamente una
frase de entrada. El analizador sintáctico descompone la frase representándola
mediante una estructura llamada de árbol sintáctico. El árbol muestra el
significado de todas las palabras y cómo están ensambladas.
El analizador sintáctico identifica el sintagma nominal y el sintagma verbal y
además los rompe en otros elementos. Este análisis sintáctico es el primer paso
hacia la extracción de significado de la frase.
Figura 2.5 Arquitectura de un Reconocedor del Lenguaje Natural
Analizador
Sintáctico
Entendedor Generador
Diccionario
Base del
Conocimiento
Texto de
Entrada
Salida
47
El trabajo del analizador sintáctico es examinar cada palabra en una frase y crear
el análisis sintáctico que identifica todas las palabras y las pone juntas en la forma
correcta, teniendo en cuenta que en general una sentencia o frase (F) está
compuesta de un sujeto o Sintagma Nominal (SN) y de un predicado o Sintagma
Verbal (SV), que expresamos como:
F =SN +SV
El sintagma nominal puede ser un sustantivo simple, aunque usualmente se
descompone en varias partes como un artículo (AR) o un determinador (D) como
un, una, esta, o un adjetivo (AD) o dos y el sustantivo principal (S), que
expresamos como,
SN =AR +AD +S
El sintagma verbal está compuesto de un verbo (V) y a menudo del objeto del
verbo, el cual es usualmente otro sustantivo (S) y su determinador (D), que
expresamos como,
SV =V +S +D
Por ejemplo consideremos la frase, “El Elefante Gris Come Un Maní”, el árbol
sintáctico para la frase es:
El analizador sintáctico se apoya en el diccionario para realizar su labor. El
diccionario contiene todas las palabras que el programa es capaz de reconocer.
El diccionario también contiene la correcta pronunciación de cada palabra y
denota su parte fonética. Para palabras que pueden tener más de un significado,
el diccionario lista todos los significados permitidos por el sistema. Por ejemplo
consideremos la frase “la vendedora entró colada al estadio”; en ella la palabra
“colada” puede significar un alimento, pero también puede significar ingresar
furtivamente, por lo que la frase puede significar que la vendedora introdujo un
alimento al estadio, o que la vendedora entró a escondidas al estadio. Una forma
de evitar la polisemia es limitar el diccionario para que sólo permita ciertos
términos. Sin embargo si todas las posibilidades son permitidas, es labor del
EL
ARTICULO
ELEFANTE
SUSTANTIVO
GRIS
ADJ ETIVO
SUJ ETO
(Sintagma Nominal)
COME
VERBO
UN
DETERMINADOR
MANÍ
SUSTANTIVO
PREDICADO
(Sintagma Verbal)
FRASE
48
entendedor y de la base de conocimiento en última instancia aclarar el significado,
aunque en muchos casos los analizadores sintácticos pueden autónomamente
resolver el problema mediante un análisis de morfemas. Ellos descomponen cada
palabra en sus morfemas individuales. El diccionario contiene todas las variantes
de los morfemas, permitiendo en muchos casos precisar el significado. Otros
sistemas en cambio lo que hacen es almacenar todas las posibles variaciones de
la palabra raíz, llegándose finalmente al mismo resultado.
En términos operativos, el analizador sintáctico es un equiparador. Una vez que la
palabra individual ha sido identificada, el analizador busca en el diccionario
comparando cada palabra de entrada con todas las palabras almacenadas. Si la
comparación o cotejación es exitosa, la palabra es complementada con otra
información léxica como significados, fonética, etc. Luego el analizador procede a
analizar el resto de palabras y al final construye el árbol sintáctico.
El analizador sintáctico en su proceso de equiparación realiza una cotejación lo
más próxima posible a las palabras existentes en el diccionario, pero con la
suficiente flexibilidad como para darse cuenta que una cotejación aproximada
puede revelar errores de escritura, o también olvidos, en cuyos casos tendrán la
capacidad de solicitar clarificaciones a los usuarios o de notificarles errores.
Una vez que el árbol sintáctico ha sido construido, el sistema está listo para
realizar el análisis semántico en procura de obtener mayor significado.
El entendedor trabaja en asocio de la base de conocimiento para determinar el
significado de una frase. Para determinar lo que una frase de entrada significa, el
sistema debe conocer cosas acerca de las palabras y cómo ellas se juntan para
formar oraciones cargadas de significado. La base de conocimiento es la base
primaria de los significados.
Como se señaló en la parte de sistemas expertos, hay múltiples técnicas de
representación del conocimiento que se almacena en la base de conocimiento,
como por ejemplo, las reglas de producción, cláusulas lógicas, redes semánticas,
redes particionadas de Hendrix, marcos y guiones, todas ellas útiles para crear
bases de conocimiento en sistemas reconocedores del lenguaje natural.
El propósito del entendedor es usar el árbol sintáctico para referenciar la base de
conocimiento. El entendedor puede responder una pregunta usando la base de
conocimiento. Si la sentencia de entrada es una oración, el entendedor
determinará el significado mirando palabras y frases en la base de conocimiento.
Las reglas pueden ser disparadas, los marcos y guiones referenciados, las redes
semánticas equiparadas.
El entendedor también puede derivar inferencias a partir de las oraciones de
entrada, mediante un sistema de análisis de causalidad entre los eventos
49
encadenados en una historia, lo que le permite responder a preguntas sobre
situaciones no expresadas explícitamente en la historia.
El generador usa el entendedor para crear una salida útil. El entendedor crea otra
estructura de datos que representa el significado y el entendimiento de la oración y
la almacena en memoria. La estructura de datos puede entonces ser utilizada
para crear códigos especiales que controlan otra pieza de software, como por
ejemplo realizar una búsqueda de información, o consultar una base de datos; o
ejecutar una acción que puede ser la generación de una respuesta de salida tal
como una frase o una pregunta.
En su forma más simple, el generador suministra al usuario respuestas pre-
almacenadas basadas en el significado extraído de la entrada.
2.6 Ejercicios
1. ¿Qué es sistema experto?
2. ¿Qué diferencias hay entre sistemas expertos y la programación
convencional?
3. Dibuje y explique la arquitectura básica de un sistema experto.
4. ¿Qué diferencias hay entre un sistema experto y un sistema basado en el
conocimiento?
5. ¿Qué cualidades debe poseer un sistema experto?
6. ¿Qué es un robot?
7. Señale tres justificaciones para el uso de robots.
8. Señale tres aplicaciones importantes de los robots.
9. ¿Cuáles son los componentes de un brazo robot típico?
10. ¿Qué diferencias hay entre robots industriales y robots inteligentes?
11. Explique el proceso de adquisición de imágenes por parte de un sistema de
visión artificial.
12. Explique el procesamiento de imágenes por parte de un sistema de visión
artificial.
13. Explique el análisis de imágenes por parte de un sistema de visión artificial.
14. Explique la comprensión de imágenes por parte de un sistema de visión
artificial.
15. Señale algunas aplicaciones de los sistemas de visión artificial.
16. ¿Cómo se clasifican los reconocedores de voz?
17. ¿Qué es un reconocedor de palabras?
18. ¿Qué es un reconocedor de discurso continuo?
19. ¿Qué es el reconocimiento global y analítico de la voz?
20. ¿Cuáles son y en qué consisten los módulos de un reconocedor de voz
analítico?
50
21. ¿Qué diferencias hay entre los lenguajes naturales y los lenguajes formales?
22. ¿Qué es la sintaxis y la semántica?
23. ¿Qué es la pragmática?
24. ¿Qué es un morfema?
25. ¿Cuáles son y en qué consisten los componentes principales de un sistema
de reconocimiento del lenguaje natural?
51
CAPÍTULO 3
Técnicas Básicas de Inteligencia Artificial
3.1 Problemas y Espacios de Búsqueda
En Inteligencia Artificial un problema que llamaremos P, se define formalmente
como una cuaterna, M e O E P , , ,
0
= , en donde E es el espacio de estados del
problema, es decir, el conjunto de todas las posibles configuraciones o estados del
problema, O es el conjunto de operadores o transformaciones que se aplican
sobre el espacio de estados obteniéndose otros estados y que formalmente se
expresa como, E O E → × . M es el conjunto de estados que se aceptan como
metas u objetivos;
0
e
es un estado privilegiado de E, denominado estado inicial.
Los operadores se denominan destructivos si al aplicarlos no aumentan el número
de estados, es decir, los disminuyen o los mantienen; y se denominan creativos si
aumentan el número de estados o alternativas.
Se dice que un estado ‘e′ ’ es sucesor de un estado ‘e’, si ‘e′ ’ es alcanzable desde
‘e’ por aplicación de una secuencia de operadores. Si ‘e′ ’ puede ser alcanzado
desde ‘e’ por la aplicación de un solo operador, decimos que ‘e′ ’ es el sucesor
inmediato o el adyacente de ‘e’. Al conjunto de todos los sucesores de un estado
‘e’, lo representamos por Se.
Denominamos espacio de búsqueda de un problema P al conjunto de todos los
estados que pueden ser alcanzados por la aplicación de secuencias de
operadores, comenzando en el estado inicial. En otras palabras el espacio de
búsqueda es
0
Se .
Es importante distinguir entre espacio de estados y espacio de búsqueda. El
espacio de estados representa un universo de estados, es decir, es un referente
de todos los posibles estados; mientras que el espacio de búsqueda es un
subconjunto de espacio de estados, que representa el conjunto de estados
sucesores del estado inicial, es decir, un conjunto de estados que se generan
realmente.
52
Decimos que un problema P es solucionable, si y sólo si, φ ≠ M Se !
0
. En otras
palabras, un problema tiene solución, si al menos uno de los estados reconocidos
como meta del problema es alcanzable a partir del estado inicial por la aplicación
de una secuencia de operadores.
Si P es un problema solucionable, denominamos solución de P a cualquier
trayectoria en el espacio de búsqueda que vaya desde
0
e
hasta una meta m de M.
Uno de los propósitos de las técnicas de Inteligencia Artificial que veremos más
adelante, es lograr reducir los tamaños de los espacios de búsqueda en el proceso
dinámico de alcanzar una meta. La idea es evitar en lo posible que los espacios
de búsqueda lleguen a igualarse al espacio de estados. Esto no sería grave si el
tamaño del espacio de estados fuera pequeño. Pero en muchos problemas se
produce una explosión combinatoria de estados (por ejemplo, en juegos como el
ajedrez y el go), generándose espacios de estados inmanejables
computacionalmente. Esto hace necesario el uso de estrategias de búsqueda que
limiten drásticamente el tamaño del espacio de búsqueda.
Dados dos problemas M e O E P , , ,
0
= y M e O E P ′ ′ ′ ′ = ′ , , ,
0
, decimos que P es
homomorfo a P′ , lo que simbolizamos por P P ′ ≅ , si existe una función f,
O E O E f ′ ′ → " " : tal que:
i. ( ) E E f ′ ⊆ y ( ) O O f ′ ⊆ .
ii. ( )
0 0
e e f ′ = y ( ) M M f ′ ⊆ .
Si f es biyectiva, es decir, si se cumple que P P ≅ ′ , entonces decimos que P y P'
son isomorfos, lo que simbolizamos por
P P ′ ≈
.
Estas definiciones que permiten comparar diferentes problemas y establecer si
son homomorfos o isomorfos, son la base de una rama de la Inteligencia Artificial
que se denomina razonamiento por analogía. El razonar por analogía es una
cualidad humana muy importante, que ha llevado a muchos investigadores de
Inteligencia Artificial a buscar que los computadores logren emularla.
Investigadores como J aime Carbonell J r. de Carnegie-Mellon han logrado avances
significativos en esta área.
Los problemas en general se representan mediante grafos, en donde los nodos
del grafo representan los estados del problema y los arcos los operadores. El
grafo de un problema tiene un nodo raíz que representa el estado inicial y unos
nodos terminales que serán las metas cuando se ha encontrado una solución al
problema.
53
Por ejemplo, consideremos un juego, el llamado 8-puzzle. La solución de este
rompecabezas consiste en reordenar, a partir de una configuración inicial dada de
ocho elementos numerados móviles situados sobre un tablero 3x3, los elementos
en una configuración final dada. El ordenamiento de los elementos sólo puede
hacerse desplazando uno de los elementos hacia el lugar vacío desde una
posición ortogonalmente adyacente.
Consideremos las siguientes configuraciones como sus estados inicial y meta
respectivamente
Estado inicial
1 2 3
5 6
4 7 8
Estado meta
1 2 3
4 5 6
7 8
La figura 3.1 muestra un grafo que describe una solución para el 8-puzzle, con los
estados inicial y meta dados anteriormente.
Estado inicial
1 2 3
5 6
4 7 8
2 3
1 5 6
4 7 8
1 2 3
4 5 6
7 8
1 2 3
5 6
4 7 8
1 2 3
5 6
4 7 8
1 2 3
4 5 6
7 8
1 2 3
4 6
7 5 8
1 2 3
4 5 6
7 8
Estado Meta
1 2 3
4 5 6
7 8
0
1
0
1
0
1
0
2
0
3
0
3
0
3
0
4
Figura 3.1 Grafo de Búsqueda
54
En la Figura 3.1 aparecen etiquetando los arcos, los operadores O
1
, O
2
, O
3
y O
4
,
que se definen sencillamente como:
O
1
: Mover el blanco (vacío) hacia arriba
O
2
: Mover el blanco (vacío) hacia abajo
O
3
: Mover el blanco (vacío) hacia la derecha
O
4
: Mover el blanco (vacío) hacia la izquierda
El efecto de cada uno de estos operadores es mover el número de la casilla
adyacente a la casilla vacía o blanca, en sentido contrario al movimiento de la
casilla vacía. Así por ejemplo, mover el blanco arriba en el estado inicial, significa
mover la casilla que se encuentra arriba del blanco, en este caso la numerada con
el número 1 hacia abajo.
La figura muestra una solución al problema que viene dada por la trayectoria
03 , 03 , 02 , que señala la secuencia de operadores que se debe aplicar al estado
inicial para alcanzar el estado meta. Obviamente, en general, un problema puede
tener varias soluciones. Por ejemplo en este caso, la trayectoria 03 , 03 , 02 , 04 , 03
que no está reflejada en la figura, también es una solución para el problema.
Pueden existir además trayectorias que conducen a bucles infinitos. Ese es el
caso cuando se generan estados repetidos, es decir, estados idénticos a
ancestros de ellos. En nuestro ejemplo, la trayectoria 01 , 02 nos conduce
nuevamente al estado inicial.
La razón de ser de las estrategias de búsqueda que veremos más adelante, se
relaciona con varias cosas que hemos mencionado. Por un lado generar un árbol
de búsqueda (espacio de búsqueda) lo más óptimo posible (la trayectoria de la
solución es lo más corta posible) y por otro soslayar estados muertos, es decir
configuraciones que no poseen sucesores, y que conllevan a un fracaso en la
búsqueda; o configuraciones que implican quedarse en un ciclo repetitivo.
Consideremos a modo de ilustración el siguiente ejemplo de un problema y su
solución:
“Dado un envase de 5 litros de capacidad lleno de agua y un envase de 2 litros
vacío, ambos sin marcas, ¿cómo puede uno obtener en forma precisa un litro en el
envase de 2 litros? El agua puede ser derramada o vaciada de un envase a otro;
sin embargo, no se dispone de más de los 5 litros de agua”.
La solución parte de identificar, representar y simbolizar cada uno de los
elementos del problema. Sea v
1
=Envase de 5 litros y v
2
=Envase de 2 litros.
55
Estado del problema =(x, y), en donde, x =cantidad de litros en v
1
, y y =cantidad
de litros en v
2
.
Sea { }
4 3 2 1
, , , o o o o O = tal que,
o
1
=vaciar v
1
.
o
2
=vaciar v
2
.
o
3
=vaciar de v
1
a v
2
.
o
4
=vaciar de v
2
a v
1
.
En consecuencia tenemos un problema cuyos estados inicial y meta son,
e
0
=(5, 0) y M =(0,1) respectivamente.
Un grafo (árbol Figura 3.2), que representa el espacio de búsqueda con una
solución al problema, viene dado por:
(5,0) (Estado Inicial)
(0,0)
(Estado muerto)
(3,2)
(0,2) (5,0)
Estado Repetido) (3,0)
(0,0) (2,0) (0,0) (1,2)
(0,0) (0,2) (0,2) (3,0) (1,0)
(0,0) (1,0)
Estado Meta
Figura 3.2
La solución reflejada en el árbol es la trayectoria,
3 2 3 2 3
, , , , o o o o o .
Este problema tiene solución única.
Nótese que de los cuatro operadores definidos únicamente se necesitan dos, los
correspondientes a los operadores o
2
y o
3
. Los operadores o
1
y o
4
no intervienen
o
1
o
3
o
1
o
4
o
2
o
2 o
4
o
1 o
3
o
1
o
3
o
1 o
2 o
4
o
1 o
3
56
en la solución. El operador o
1
porque genera estados muertos (bota el agua,
recurso no recuperable de acuerdo con las condiciones del problema) y el
operador o
4
porque genera estados repetidos.
3.2 Estrategias De Búsqueda
Existen básicamente dos categorías en las estrategias de búsqueda: Búsquedas
ciegas o sin información y Búsquedas informadas o con heurísticas.
En las búsquedas ciegas, la búsqueda no está dirigida hacia la meta, por lo que
se trata de una búsqueda exhaustiva.
En las búsquedas informadas, se dispone de una función de evaluación o función
heurística, que permite medir la aproximación a la meta, por lo que podemos dirigir
o enfocar la búsqueda hacia la meta, seleccionando estados con mayor
proximidad a la meta.
La función de evaluación aplicada a un estado, actúa como una especie de
medida de distancia entre el estado evaluado y la meta.
Una evaluación de cero, señala que el estado evaluado es el estado meta.
Estas búsquedas se representan mediante estructuras de datos conocidas como
árboles o listas.
3.2.1 Búsquedas Ciegas
Existen dos técnicas básicas de búsquedas ciegas, denominadas primero-
amplitud y primero-profundidad.
La búsqueda en primero-amplitud se refleja en un árbol, cuya raíz es un nodo
inicial que representa el estado inicial y que luego se expande generando los
nodos sucesores correspondientes al mismo nivel. Luego a su vez, estos nodos
sucesores se expanden de igual forma.
La estrategia se denomina primero en amplitud, porque se procede a generar los
nodos nivel por nivel, es decir, que la estrategia primero procede en amplitud o a
lo ancho, generando todos los nodos de un nivel y luego procede al siguiente
nivel. Esto significa que la estrategia es mixta, es decir, que primero procede en
amplitud y luego en profundidad. Pero su nombre se deriva del hecho de que
primero realiza la generación de nodos en amplitud.
57
La Figura 3.3 ilustra el proceso.
Figura 3.3
En previsión de que se pueda transitar indefinidamente a lo largo de un camino
infructuoso, se impone un límite de profundidad, de tal manera que los nodos con
profundidad mayor que ese límite no se generan nunca.
En la búsqueda en primero-profundidad, se parte del nodo inicial que representa el
estado inicial y se genera un nodo sucesor que representa un estado sucesor y
luego se genera un sucesor de este y así sucesivamente hasta alcanzar el nivel
máximo de profundidad permitido, o hasta que haya una condición que nos
obligue a retroceder hasta el antecesor más inmediato que se pueda expandir,
generándose sucesores nuevamente en profundidad. Se repite el proceso hasta
generar todo el árbol de búsqueda.
Nuevamente, esta estrategia es mixta, pero en este caso procede primero en
profundidad y luego en amplitud. Sin embargo, en esta estrategia se incorpora un
mecanismo de facilitación de búsqueda, que es el retroceso (en inglés,
Backtraking) que se aplica en los siguientes casos:
1. Cuando se alcanza el nivel máximo de profundidad permitido
2. Cuando es un estado muerto (no hay sucesores)
3. Cuando se generan estados repetidos.
La búsqueda en primero-profundidad tiene potencialmente varias ventajas sobre la
búsqueda en primero-amplitud. En primer lugar es más fácil su manejo en
términos computacionales, ya que su implementación vía apuntadores por
ejemplo, es directa y además porque implica un manejo más óptimo de la
Nodo Inicial
Nivel 1
Nivel 2
Nivel 3
Nivel 4
58
memoria, en la medida que considera un espacio de búsqueda más limitado para
alcanzar un determinado nivel.
En segundo lugar, para problemas que tienen soluciones profundas encontrará
una solución más rápida que la búsqueda en primero-amplitud.
La búsqueda en primero-profundidad también tiene desventajas. Por ejemplo, si
la búsqueda de un camino se suspende antes de alcanzar su final, entonces no se
hallará la solución aunque exista alguna. También si se ubica el camino solución
no hay garantía alguna de que dicho camino sea el más corto.
La Figura 3.4 ilustra el proceso de búsqueda en primero-profundidad.
Figura 3.4
Para ilustrar las estrategias, consideremos el juego de 8-puzzle. La búsqueda en
profundidad y amplitud con profundidad máxima de 6 se observa en las Figuras
3.5 y 3.6.
Nodo Inicial
Nivel 1
Nivel 2
Nivel 3
Nivel 4
59
Inicio
2 8 3
1 6 4
7 5
2 8 3
1 6 4
7 5
2 8 3
1 4
7 6 5
2 8 3
6 4
1 7 5
2 8 3
1 4
7 6 5
2 3
1 8 4
7 6 5
8 3
2 6 4
1 7 5
2 8 3
6 4
1 7 5
8 3
2 1 4
7 6 5
2 8 3
7 1 4
6 5
2 3
1 8 4
7 6 5
8 3
2 6 4
1 7 5
2 3
6 8 4
1 7 5
2 8 3
6 4
1 7 5
2 8 3
6 7 4
1 5
8 3
2 1 4
7 6 5
2 8 3
7 1 4
6 5
1 2 3
8 4
7 6 5
8 3
2 6 4
1 7 5
8 6 3
2 4
1 7 5
2 3
6 8 4
1 7 5
2 3
6 8 4
1 7 5
2 8
6 4 3
1 7 5
2 8 3
6 4 5
1 7
2 8 3
6 7 4
1 5
2 8 3
6 7 4
1 5
8 3
2 1 4
7 6 5
8 1 3
2 4
7 6 5
2 8 3
7 4
6 1 5
2 8 3
7 1 4
6 5
1 2 3
8 4
7 6 5
Meta
Figura 3.5 Búsqueda en Profundidad
60
2 8 3
1 6 4
7 5
2 8 3
1 6 4
7 5
2 8 3
1 4
7 6 5
2 8 3
1 6 4
7 5
2 8 3
6 4
1 7 5
2 8 3
1 4
7 6 5
2 3
1 8 4
7 6 5
2 8 3
1 4
7 6 5
2 8 3
1 6
7 5 4
8 3
2 6 4
1 7 5
2 8 3
6 4
1 7 5
8 3
2 1 4
7 6 5
2 8 3
7 1 4
6 5
2 3
1 8 4
7 6 5
2 3
1 8 4
7 6 5
2 8
1 4 3
7 6 5
2 8 3
1 4 5
7 6
2 8 3
1 6
7 5 4
2 8
1 6 3
7 5 4
9 3
2 6 4
1 7 5
2 3
6 8 4
1 7 5
2 8 3
6 4
1 7 5
2 8 3
6 7 4
1 5
8 3
2 1 4
7 6 5
2 8 3
7 1 4
6 5
1 2 3
8 4
7 6 5
2 3 4
1 8
7 6 5
2 8
1 4 3
7 6 5
2 8 3
1 4 5
7 6
2 8 3
1 6
7 5 4
2 3
1 8 6
7 5 4
2 8 3
1 5 6
7 4
2 8
1 6 3
7 5 4
8 3
2 6 4
1 7 5
8 6 3
2 4
1 7 5
2 3
6 8 4
1 7 5
2 3
6 8 4
1 7 5
2 8
6 4 3
1 7 5
2 8 3
6 4 5
1 7
2 8 3
6 7 4
1 5
2 8 3
6 7 4
1 5
8 3
2 1 4
7 6 5
8 1 3
2 4
7 6 5
2 8 3
7 4
6 1 5
2 8 3
7 1 4
6 5
1 2 3
8 4
7 6 5
Meta
Figura 3.6 Búsqueda en Amplitud
61
Consideremos el siguiente problema: “Un pastor quiere cruzar un río acompañado
de un lobo, una oveja y una col. Desafortunadamente para él, el bote de que
dispone sólo puede contener al pastor y uno de los tres, animales o vegetal, que lo
acompañan. Pero además, sin la presencia del pastor, la oveja se comería la col y
el lobo se comería la oveja. De este modo, el pastor no puede dejar solos al lobo
y la oveja, y a la oveja y la col. Sin embargo puede dejar tranquilamente al lobo y
la col.
Para resolver un problema es muy importante la representación. Un estado se
puede representar de varias formas. Vamos a adoptar como representación los
vectores de estado. De esta manera vamos a reflejar la situación en las dos
orillas.
Estado = w z y x , , , y w z y x ′ ′ ′ ′ , , , en donde, x =presencia o no del hombre en la
margen izquierda del río (la escogencia de esa margen es arbitraria).
Similarmente y =presencia o no del lobo en la margen izquierda del río, z =
presencia o no de la oveja en la margen izquierda del río, w =presencia o no de la
col en la margen izquierda del río.
Análogamente definimos x′ , y′ , z′ , w′ para la margen derecha del río.
Las variables son booleanas, toman el valor de 1 si está presente y 0 si no lo está.
De esta manera tenemos: ( ) ( ) 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1
0
= e y ( ) ( ) 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 = m .
Los operadores son:
01: pasar el pastor solo
02: pasar el pastor y el lobo
03: pasar el pastor y la oveja
04: pasar el pastor y la col
Restricciones: No están permitidos los estados que contengan (0,1,1,0), (0,0,1,1) ,
(0,1,1,1).
El árbol de búsqueda en amplitud se observa en la Figura 3.7
62
( ) ( ) 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1
03
( ) ( ) 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0
01
( ) ( ) 0 , 1 , 0 , 0 , 1 , 0 , 1 , 1
02 04
( ) ( ) 0 , 1 , 1 , 1 , 1 , 0 , 0 , 0 ( ) ( ) 1 , 1 , 0 , 1 , 0 , 0 , 1 , 0
03 03
( ) ( ) 0 , 0 , 1 , 0 , 1 , 1 , 0 , 1 ( ) ( ) 1 , 0 , 0 , 0 , 0 , 1 , 1 , 1
04
( ) ( ) 1 , 0 , 1 , 1 , 0 , 1 , 0 , 0
01
( ) ( ) 1 , 0 , 1 , 0 , 0 , 1 , 0 , 1
03
( ) ( ) 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0
META
Figura 3.7
3.2.2 Búsquedas con Información
En el proceso de búsqueda de la meta, sería de gran utilidad el poder estimar
numéricamente la valía de un nodo y con base en ello decidir por cual nodo es
más conveniente orientar la búsqueda.
En general, lo prometedor de un nodo como un apoyo a la búsqueda se puede
estimar numéricamente mediante una función de evaluación f cuya aplicación
sobre el nodo n, f(n), señala por ejemplo, cuán próximo se encuentra el estado o
configuración representado por el nodo al estado meta.
El disponer de una función de evaluación ayuda mucho en el proceso de
búsqueda. Sin embargo, la dificultad se traslada a la obtención de la función de
evaluación misma. En general, la obtención de f puede depender de la
descripción del nodo, de la descripción de la meta, de la información obtenida por
la búsqueda hasta ese momento, y de cualquier conocimiento extra acerca del
problema.
Como se señaló anteriormente (en 3.2), la función de evaluación actúa como una
especie de métrica o distancia que ayuda a guiar el proceso de búsqueda hacia la
meta, por ejemplo, generando estados (nodos) sucesores con valoraciones más
cercanas a la de la meta, es decir, aproximándose a cero.
63
Existen numerosas estrategias de búsqueda con información y variantes de ellas.
Sin embargo, vamos a utilizar únicamente dos : Técnica de escalada y la de m-
mejores.
Para explicar la técnica de escalada, consideremos la siguiente situación :
supongamos que estamos escalando una montaña y que nuestra meta es
alcanzar la cima. También supongamos que por la intensa niebla no es posible
ver directamente la cima, y que por lo tanto nos valemos de dos instrumentos que
nos guíen en nuestro ascenso. Esos instrumentos son una brújula y un altímetro.
De tal manera que si nos encontramos en una posición P del ascenso, como lo
señala la Figura 3.8, la técnica de escalada apoyada en los instrumentos consiste
en que a partir de P, con la ayuda de la brújula consideramos varios
desplazamientos cortos en diferentes direcciones, que nos sitúan en varios puntos
′ P , sobre los cuales procedemos a realizar mediciones de altura; de tal manera
que finalmente nos decidimos por el desplazamiento que significa una mayor
ganancia de altura respecto al punto P. La idea es que estos desplazamientos
nos conducirán finalmente a la cima que representa el punto de mayor altura.
Figura 3.8
Esta analogía nos permite entender cómo funciona la estrategia de escalada. Si
disponemos de una función de evaluación, que es el análogo al altímetro, ya que
nos permite evaluar localmente los nodos, y de tal manera que el estado meta
tiene el valor máximo asociado a la función; entonces a partir de un estado dado
con evaluación conocida, podemos considerar todos sus posibles sucesores, lo
que es análogo a usar la brújula, y efectuar sus respectivas evaluaciones, para
decidirse finalmente por el estado con un valor de la función más próximo al
estado meta.
P
P’ ’
64
Figura 3.9
La Figura 3.9 ilustra un proceso de escalada, en donde los nodos marcados con
“X”, representan los nodos seleccionados porque sus valoraciones son las mejores
en sus respectivos niveles. Esto significa que,
V
2
=máx (V
1
, V
2
, V
3
) y V
5
=máx (V
4
, V
5
), y V
6
=máx (V
6
, V
7
) y V
9
=máx (V
8
, V
9
)
La técnica de escalada presenta algunos inconvenientes:
a) Máximos locales : Un máximo local, es un estado que es mejor que todos sus
vecinos, pero que no es mejor que algún otro estado más alejado.

En nuestra analogía con la escalada de una montaña, los máximos locales
representan cimas de montañas más pequeñas que se interponen en el
ascenso a nuestra cima principal que representa el máximo absoluto, como lo
refleja la Figura 3.10.
v
9
Meta
v
8
v
7
v
6
v
5
v
4
v
3
v
2
v
1
v
0
Inicio
65

Figura 3.10

b) Altiplanicies : Una altiplanicie, es un área llana del espacio de búsqueda
separando las “cumbres”, por lo cual existe un conjunto completo de estados
vecinos que tienen la misma valoración.

La Figura 3.11 refleja esta situación.


Figura 3.11
Para ilustrar la técnica de escalada, consideremos el juego del 8-puzzle, con
estado inicial,
2 8 3
1 6 4
7 5
y estado meta
1 2 3
8 4
7 6 5
P
66
Al 8-puzzle le podemos definir las siguientes funciones de evaluación o funciones
heurísticas :
f
1
(n) =- (número de elementos mal colocados del estado n respecto al estado
meta)
f
2
(n) = - (suma de las distancias horizontales y verticales que llevarían los
elementos mal colocados del estado n a las posiciones correctas respecto
al estado meta)
Por ejemplo, f
1
(estado inicial) =-4, ya que los elementos 2, 8, 1 y 6 están mal
colocados. f
2
(estado inicial) =-5, porque el elemento 2 debe recorrer 1 casilla
horizontal para alcanzar la posición correcta; el elemento 8 debe recorrer 2
casillas, una horizontal y una vertical; el elemento 1 debe recorrer 1 casilla vertical
y el elemento 6 una vertical.
La función f
2
, se conoce con el nombre de función manhattan.
Un ejemplo de escalada para el 8-puzzle con los estados inicial y meta definidos
anteriormente y con función de evaluación f
1
, es el de la Figura 3.12.
Inicio
2 8 3
1 6 4 (-4)
7 5
2 8 3 2 8 3 2 8 3
(-5) 1 6 4 (-3) 1 4 (-5) 1 6 4
7 5 7 6 5 7 5
2 8 3 2 3 2 8 3
(-3) 1 4 (-3) 1 8 4 (-4) 1 4
7 6 5 7 6 5 7 6 5
2 3 2 3
(-2) 1 8 4 1 8 4 (-4)
7 6 5 7 6 5
1 2 3
(-1) 8 4
7 6 5
1 2 3 1 2 3
(-2) 7 8 4 8 4 (0)
6 5 7 6 5
1.5 Me
ta
67
Figura 3.12
La otra técnica es la búsqueda dirigida conocida con el nombre de m-mejores. Es
una búsqueda similar a la búsqueda primero - amplitud, porque progresa nivel por
nivel, pero se diferencia en que en este caso sólo se desarrollan los “m” nodos
mejores de cada nivel.
El número de nodos explorados es manejable, incluso si existe un gran número de
ramas y la búsqueda es profunda. Si se desarrollan los “m” mejores nodos de
cada nivel y el factor de ramificación es “b”, sólo habrá que considerar “mb”
nodos.
Podemos considerar la técnica de escalada como un caso particular de la
búsqueda m-mejores, en donde m =1. Por otra parte ésta técnica de m - mejores
es un caso particular de la estrategia primero amplitud, en la cual se desarrollan
todos los nodos del nivel. Por lo tanto, podemos decir que esta técnica es más
flexible, en la medida que podemos variar m, y que por lo cual vamos a oscilar
entre una escalada (m =1) y una amplitud (m =todos los nodos.)
Con un m =1 tendríamos los inconvenientes de la escalada y con m =todos,
tendríamos una búsqueda exhaustiva, con lo que no tendría sentido usar una
función de evaluación. Resultados experimentales sugieren que lo más
conveniente es usar un m =3 ó 4.
Consideremos nuevamente el 8-puzzle del ejemplo anterior con una función f
1
y
m=2 (Figura 3.13).
m
(Escalada) Todos (Amplitud)
1
68
Inicio
2 8 3
1 6 4 (-4)
7 5
2 8 3 2 8 3 2 8 3
(-5) 1 6 4 (-3) 1 4 (-5) 1 6 4
7 5 7 6 5 7 5
2 8 3 2 3 2 8 3 2 8 3
(-4) 1 4 (-3) 1 8 4 (-3) 1 4 (-6) 1 6
7 6 5 7 6 5 7 6 5 7 5 4
2 3 2 3 8 3 2 8 3
(-2) 1 8 4 (-4) 1 8 4 (-3) 2 1 4 (-4) 7 1 4
7 6 5 7 6 5 7 6 5 6 5
1 2 3 8 3
(-1) 8 4 (-3) 2 1 4
7 6 5 7 6 5
1 2 3 1 2 3
(-2) 7 8 4 8 4 (0)
6 5 7 6 5
1.6 Meta
Figura 3.13
3.3 Estrategias para Juegos con Adversarios
Los juegos en los que se enfrentan dos contrincantes requieren estrategias
diferentes a las vistas anteriormente. Nos estamos refiriendo a juegos con las
siguientes características :
1. Se enfrentan dos jugadores
2. Cada jugador realiza su jugada alternativamente, siguiendo un turno.
3. Son juegos con información completa, es decir que cada jugador conoce lo que
ambos contrincantes han hecho hasta un determinado momento y lo que
pueden hacer a partir de ese momento.
4. El azar no interviene en el juego.
69
Estos juegos se representan mediante árboles alternados. Estos árboles se
caracterizan porque cada nivel del árbol corresponde a uno de los adversarios y el
siguiente nivel al otro adversario, y así alternativamente.
Cada nodo del árbol representa una posición del juego, y los arcos los
movimientos o jugadas que se realizan conforme a un conjunto de reglas. Los
sucesores de un nodo representan las posiciones a las que se puede acceder a
partir de la posición que representa ese nodo, teniendo en cuenta el abanico de
posibles movimientos o jugadas permitidos o lícitos, que están conformes con las
reglas del juego.
Consideraremos las dos estrategias más importantes: procedimiento mini-máx, y
poda alfa-beta.
3.3.1 PROCEDIMIENTO MINI-MAX
El procedimiento mini-máx es una estrategia de juego que utiliza una función de
evaluación para ponderar numéricamente las posiciones del juego, de tal manera
que un número positivo indica que el valor es a favor de uno de los jugadores, y un
número negativo es a favor del adversario.
El jugador de números positivos se denomina “maximizante”, y su adversario, el
de números negativos, “minimizante”. El maximizante buscará caminos que lleven
a números positivos altos, sabiendo que su contrincante intentará forzar el juego a
posiciones con evaluaciones muy negativas.
En esta estrategia se asume que el adversario jugará inteligentemente, esto
significa que se espera que se decida por jugadas que son mejores para él y
peores para su contrincante. Esto se traduce en los valores numéricos, cuando se
espera que el adversario busque jugadas con valoraciones muy negativas para su
contrincante (Figura 3.14).
Figura 3.14
Consideremos el juego del “tres en línea”, también conocido con los nombres de
“triqui”, “tic-tac-toe”. Supongamos que un jugador A marca equis (X) y que un
jugador B marca círculos (O) y que le corresponde marcar a A.
Nivel Maximizante
Nivel Minimizante
Nivel Maximizante
70
Se desarrolla una búsqueda por niveles hasta que se generan los nodos de nivel 2
y entonces, se aplica una función de evaluación estática a las posiciones de juego
representadas por esos nodos: Esta función de evaluación e(P) para una posición
P, viene dada por las tres posibilidades siguientes:
1. Si P no es ganadora para cualquiera de los jugadores, entonces,
e(P) = Número de filas, columnas o diagonales aún abiertas para A menos
números de filas, columnas o diagonales aún abiertas para B.
Es decir, número de líneas que no contienen un “O” menos, número de líneas que
no contienen una “X”.
2. Si P es ganadora para A, e(P) =+∞
3. Si P es ganadora para B, e(P) =-∞
Así, si P es:
O
X
e(P) =6 – 4 =2
Haciendo uso de las simetrías para generar posiciones subsiguientes a una dada,
los estados simétricos se consideran idénticos.
Las simetrías son:
a.) Vertical:
O O
b.) Horizontal:
O
O
Eje de simetría
71
c.) Diagonal
O O
O O
Teniendo en cuenta el uso de las simetrías los siguientes estados se consideran
idénticos:
O O
X X X X
O O
Las simetrías permiten establecer clases de equivalencia para las casillas del
tablero de juego y las correspondientes jugadas en esas casillas. De esta manera
surgen tres clases: la representada por la casilla central únicamente, la
representada por las cuatro casillas de las esquinas, la representada por las
cuatro casillas que se encuentran entre las casillas esquineras.
Como las casillas de cada clase son equivalentes, la simetría permite mantener
bajo el factor de ramificación del árbol de juego, ya que en los primeros niveles
podemos valernos de la simetría para reducir el número de posiciones y
posteriormente se conserva bajo por reducido número de casillas sin ocupar.
Hay que tener cuidado con las simetrías, ellas se pueden utilizar sin problema
hasta el nivel 4, pero a partir del nivel 5, pueden inducir a error. Por ejemplo,
consideramos la siguiente posición de nivel 4,
O X
X
Teniendo en cuenta las simetrías al siguiente nivel, las posiciones,
O x O X
X y X
O O
72
son simétricas y poseen la misma evaluación, sin embargo, estratégicamente son
muy diferentes.
El procedimiento minimax consiste en:
1. Generar todos los nodos sucesores del nodo inicial, que conforman el nivel 2
del árbol, que es el primer nivel maximizante.
2. Para el nodo del nivel 2 que se encuentre más a la izquierda, generamos todos
sus sucesores que van a formar parte del nivel 3, que es el primer nivel
minimizante. Los sucesores constituyen las posibles réplicas del adversario a
la jugada del nivel maximizante.
3. Evaluamos los nodos generados en el paso anterior, mediante la función de
evaluación estática y desde el punto de vista del jugador del nivel maximizante.
4. Obtenemos el mínimo de esos valores y se lo asignamos al nodo del nivel
maximizante. Ese valor se denomina retroactivo y se encierra en un círculo.
5. Para el siguiente hacia la derecha en el nivel 2, repetimos los pasos 2, 3 y 4.
Hacemos esto hasta agotar todos los nodos del nivel 2.
6. Cada nodo del nivel 2 tiene un valor retroactivo. Seleccionamos como jugada
la representada por el nodo cuyo valor sea el máximo de los de su nivel.
7. Si ambos jugadores utilizan el procedimiento minimax, entonces tomamos
como nuevo nodo inicial el nodo seleccionado en 6 y repetimos el proceso. En
caso contrario, esperamos a que el adversario seleccione una jugada como
réplica a la de 6, la tomamos como nodo inicial y repetimos todo el proceso.
Apliquemos el procedimiento del minimax al juego de tres en línea, con la función
de evaluación conocida y teniendo en cuenta las simetrías (Figura 3.15).
73
Inicio
-1 X 1 -2
X X
X X X O O O
O X X X O X X
O O O
-1 1 0 1 2 -2 0 -1
1 O X O 0
X X X
O X O X O X O O O O
X X O X X X O X X X X
O O O
1 1 2 0 1 0
Figura 3.15 Árbol parcial del triqui con estrategia minimax
74
O X
X
O
- ∞ O X 0 O X -∞ O X
X X X X X
O O O X
O X O X O X O O X O X O X O X O X O X
O X X X X X X X X X X O X X O X X O X
O O O O O O O O O O X O X O O X
- ∞ 0 0 1 0 1 - ∞ 0 1
-1 O X X 0 O X 0 O X
X X O X X O X X O
O O X O X
O X X O X X O O X O X O X O O X
X X O X X O X X O X X O X X O X X O
O O O O O X O X O O O X O X
-1 0 0 1 0 0
O O X O X X
X X O X X O
O X X O X O
Empate Gana X
75
3.3.2 Poda Al fa-Beta
El procedimiento minimax que vimos anteriormente puede ser mejorado pero
presenta algunos inconvenientes. En primer lugar separa por completo el proceso
de generación del árbol alternado de exploración y la evaluación de las posiciones.
Esto significa que sólo después de completar la generación del árbol se comienza
la evaluación lo cual genera ineficiencia, porque es posible realizar
simultáneamente la generación del árbol y las evaluaciones, trayéndose los
valores retroactivos de forma más dinámica, con lo que se puede descubrir una
buena jugada sin necesidad de haber generado y evaluado todos los nodos,
consiguiéndose un ahorro importante en el esfuerzo de exploración.
La reducción en el esfuerzo de exploración se logra llevando cuenta de las cotas
de los valores calculados y de los valores retroactivos.
Las cotas que se consideran son cotas inferiores y cotas superiores, que son
almacenadas en unas variables alfa (α) y beta (β) respectivamente.
Como α es una cota inferior, los valores que toma la variable nunca pueden
decrecer, siempre crecerán.
Por el contrario como β es una cota superior, los valores que toma la variable
nunca pueden crecer, siempre decrecerán.
El manejo de estos valores asociados a las variables α y β, permiten que se
puedan efectuar cortes o podas en el árbol de exploración (de ahí se deriva el
nombre de poda alfa – beta) mediante un procedimiento que describimos a
continuación.
1. Partiendo del nodo inicial, generamos todos los sucesores de segundo nivel
que constituyen el primer nivel maximizante.
2. Para el nodo del nivel 2 que se encuentra más a la izquierda, generamos todos
sus sucesores que van a formar parte del nivel 3, que es el primer nivel
minimizante. Los sucesores constituyen las posibles réplicas del adversario a
la jugada del nivel minimizante.
3. Evaluamos los nodos generados en el paso anterior, mediante la función de
evaluación estática y desde el punto de vista del jugador del nivel maximizante.
4. Obtenemos el mínimo de esos valores y se lo asignamos al nodo del nivel
maximizante. Ese valor se denomina retroactivo.
Como se puede apreciar, estos primeros 4 pasos del procedimiento de poda alfa-
beta son exactamente los mismos primeros 4 pasos del procedimiento minimax.
Las diferencias se comienzan a dar en el paso siguiente.
76
5. El valor retroactivo calculado en 4, es el primer valor retroactivo conocido del
nivel maximizante. Dicho valor se convierte en el primer valor de la variable α
y se vuelve a representar en el ancestro del nodo (en este caso el nodo inicial).
La Figura 3.16 refleja estos primeros cinco pasos:
Figura 3.16
para el tres en línea tendríamos, como lo muestra la Figura 3.17:
α =-1
-1 X
X X
X X X
O
O O
-1 1 0
Figura 3.17
6. Continuamos con el siguiente nodo hacia la derecha del nivel maximizante. A
este nodo le generamos un único sucesor en el nivel minimizante y lo
evaluamos. Ese valor se convierte en el primer valor de la variable β, que se
suele representar en el ancestro del nodo (en este caso el nodo del nivel
maximizante).
v = α
Inicio
v
3
v
2
v
1
v
v =mín (v
1
, v
2
, v
3
,)
77
7. Si α β ≤ , entonces se produce un corte o poda en el árbol. Eso se debe a que
el valor máximo (cota superior) que podría tomar el nodo del nivel maximizante
no es superior al valor de α, que representa la cota inferior para ese nivel. Esto
significa que no hay necesidad de generar y evaluar más sucesores del nodo
del nivel maximizante.
Si β >α y ∞ ≠ β , entonces es necesario generar y evaluar un segundo sucesor.
Si ese valor es menor que el valor actual en β, entonces eliminamos el valor
anterior y lo reemplazamos por este nuevo valor. Recuerde que los valores de
β no pueden crecer (es una cota superior), pero sí pueden decrecer.
Comparamos nuevamente β con α, repitiéndose el proceso, es decir que, si
α β ≤ entonces se producirá el corte, y en caso contrario la generación y
evaluación de un nuevo sucesor. Si la valoración de un sucesor arroja un valor
mayor o igual que el valor actual en β, no modificamos β y generamos y
evaluamos el siguiente sucesor.
Repetimos este proceso hasta que el nodo del nivel maximizante no tenga más
sucesores, en cuyo caso nuestra estrategia se convierte hasta ese momento
en un procedimiento minimax (no hay podas) y en ese caso β se puede tomar
como un valor retroactivo para el nodo.
Si +∞ = β , aún cuando es mayor que α, se produce un corte porque es una
situación ganadora, y además +∞ = β se convierte en un valor retroactivo.
Consideremos parcialmente el tres en línea (Figura 3.18)
78
Figura 3.18
α =-1
-1 X X β =-2 β =1
X
X X X X O O
O O X X
O O
-1 1 0 -2 1 2
79
Nótese que para β =-2 se producen cortes en el árbol. Por el contrario para β
=1, no hay cortes (se cae en un minimax) y por lo tanto el valor β =1 termina
convertido en un valor retroactivo.
Podemos comenzar a darnos cuenta que la poda alfa-beta depende del orden
en la generación de nodos en el nivel maximizante. Es decir, si el nodo de más
a la izquierda fuera el que tiene la X en la casilla central, se hubiera producido
un valor inicial para α de +1 y no de –1. Obviamente entre mayor sea α, mayor
la posibilidad de cortes. Por el contrario, si el nodo de más a la izquierda, fuera
uno con una X en las casillas situadas entre las esquinas, se hubiera producido
un valor inicial para α de –2 y no de –1. En este caso, estaríamos más
próximos a un minimax.
Sin embargo aún no hemos terminado con el procedimiento y como veremos a
continuación, aún en los peores casos, en los cuales β >α, la estrategia
reacomoda los valores de α, para que de ahí en adelante crezca la posibilidad
de cortes en el árbol.
8. Si el valor β de un nodo maximizante se convierte en un valor retroactivo mayor
que el valor actual en α, entonces eliminamos el valor actual en α y lo
reemplazamos por el valor retroactivo β mayor que él. Recordemos que los
valores de α no pueden decrecer (es una cota inferior), pero sí pueden crecer.
9. Repetimos el proceso para los siguientes nodos de más a la derecha del nivel
maximizante.
10. Cada nodo del nivel 2 tiene un valor retroactivo o un valor β. Seleccionamos
como jugada, la representada por el nodo cuyo valor sea el máximo de los de
su nivel (entre valores retroactivos y valores β).
11. Si ambos jugadores utilizan el procedimiento de poda alfa-beta, entonces
tomamos como nuevo nodo inicial el nodo seleccionado en 10 y repetimos el
proceso. En caso contrario, esperamos a que el adversario seleccione una
jugada como réplica a la de 10, tomamos esa jugada como nodo inicial y
repetimos todo el proceso.
Apliquemos el procedimiento completo a tres en línea (Figura 3.19).
80
Inicio
α =1
1 β =-1 X β =-2 X
X
O O α =1 X X
X X O O
2 1 -1 -2
O X O β =0
X X X
α =0 O X O X O X O
X X O X X X O
O O
1 1 2 0
0 O X β =-∞ O X O X β =- ∞
X X X X X
O O O X
O O X O X O X O X α =- ∞ O X
X X X X O X X O X X α =1 O X
O O O O O O X
1 0 1 -∞ -∞
Figura 3.19 Árbol parcial para el triqui, con estrategia poda alfa-beta
81
O X α =- ∞
X X
O O
- ∞ O X X O X β =1 O X β =+∞
X X X X X X X
O O O X O O O Gana X
-∞
O X X O X X O O X O X O X
X X O X X X X X X O X X X
O O O O O O X O O X O O O O
0 -∞ 1 1 +∞
82
En este ejemplo tenemos una situación de corte ocasionada por un +∞ = β
3.4 Ejercicios
1. Representar y resolver el siguiente problema: Tenemos dos baldes de agua
vacíos, uno con capacidad de 6 galones y otro con capacidad de 8 galones.
Teniendo en cuenta que podemos llenar cada uno de los baldes como
queramos, ¿Cómo podríamos llenar el balde de los 8 galones exactamente
hasta la mitad? Supongamos que no existe ninguna marca de medidas en
ninguno de los baldes.
2. Resolver el 8-puzzle utilizando la técnica de escalada con función manhattan y
cuyo estado inicial es,
2 8 3
1 6 4
7 5
Y cuyo estado meta es :
1 2 3
8 4
7 6 5
3. Resover el 8 puzzle utilizando la técnica de m-mejores con función manhattan
y con m=2 y cuyos estados son los mismos anteriores.
4. Aplicar el procedimiento de poda alfa-beta al juego del tres en línea,
considerando un orden diferente en la generación de estados.
5. Recordemos que para el tres en línea disponemos de la siguiente función de
evaluación:
e(P)=
+∞, Si el que evalúa gana.
- ∞, Si el que evalúa pierde.
Número de filas, columnas o diagonales aún abiertas para el que
evalúa, menos el número de filas, columnas o diagonales aún
abiertas para el adversario.
Esta función de evaluación presenta el inconveniente de que a las situaciones
de juego simétricas desde el punto de vista geométrico, les hace corresponder
la misma evaluación, por ejemplo:
83
X O X X O
X y
5-4=+1 5-4=+1
Sin embargo estratégicamente son diferentes y sus evaluaciones deberían ser
distintas.
Defina una nueva función de evaluación que le haga corresponder
evaluaciones diferentes a situaciones de juego que, aunque simétricas
geométricamente, estratégicamente no lo son. Y que a posiciones estratégicas
mejores les correspondan evaluaciones mejores.
6. Represente y resuelva, utilizando las estrategias de primero-profundidad y
primero-amplitud, el siguiente problema:
Se tienen tres pivotes, en el primero de los cuales hay tres discos ordenados
de diámetro menor a mayor; el problema consiste en pasar los discos al tercer
pivote y que queden en el mismo orden, utilizando para ello el segundo pivote y
teniendo en cuenta las siguientes restricciones:
a. En cada jugada sólo es posible mover un disco de un pivote a otro.
b. Sólo se puede trasladar el disco de la cima.
c. No se puede colocar en un pivote un disco de diámetro mayor sobre uno de
diámetro menor.
d. Un disco no puede quedar suspendido en el aire.
7. Consideremos un juego con fichas, con la siguiente configuración inicial:
N N B B V
Hay dos fichas negras (N), dos blancas (B) y una casilla vacía (V). El juego
tiene los siguientes movimientos:
P
1
P
2
P
3
84
a. Una ficha puede moverse a una casilla vacía adyacente.
b. Una ficha puede saltar sobre otras dos como máximo hasta una casilla
vacía.
El objetivo del juego es llegar a tener todas las fichas blancas a la izquierda de
todas las negras y precedidas de la casilla vacía.
Resolver el juego definiendo una función de valuación y utilizando la técnica de
escalada.
85
CAPÍTULO 4
Sistemas Basados en Reglas
Como se señaló anteriormente cuando hablamos de las características de los
sistemas expertos, el éxito en la solución de problemas por parte de un sistema
experto, en gran medida se debe a la capacidad de formular y representar el
problema. Y representar adecuadamente “cosas del mundo” descansa
básicamente en la capacidad de representar simbólicamente esos hechos del
mundo.
Existen dos grandes categorías en las técnicas de representación del
conocimiento: las procedimentales y las declarativas.
Las representaciones procedimentales del conocimiento heurístico del experto,
codifican el conocimiento en unas unidades operatorias conformadas por dos
partes, una de precondiciones y otra de conclusiones o acciones; de tal manera
que si se satisfacen las precondiciones la unidad se activa o se dispara. A esta
categoría pertenecen representaciones como las reglas de producción y el cálculo
de predicados de primer orden.
Las representaciones declarativas del conocimiento heurístico del experto,
codifican el conocimiento en estructuras cuyas conexiones reflejan asociaciones
que involucran un rico contenido semántico. A esta categoría pertenecen
representaciones como Redes Semánticas y Redes de Hendrix. También existen
representaciones híbridas entre lo procedimental y lo declarativo, tal es el caso de
los marcos y los guiones.
Este capítulo va a estar dedicado a la representación de conocimiento mediante
reglas de producción, que constituyen la técnica de representación del
conocimiento más utilizada.
4.1 Sistemas de Post
El origen de los sistemas de reglas de producción se remonta a 1943, cuando el
lógico Emil Post desarrolló un modelo para representar cualquier sistema formal
en el que se realizan deducciones lógicas. Post pensó que cualquier sistema de
86
este tipo debe consistir en una colección de axiomas y una colección finita de
reglas de inferencia.
Las reglas especifican los caminos en que las declaraciones válidas, o teoremas,
pueden ser deducidos de los axiomas. Abstractamente, los axiomas son cadenas
de símbolos sobre algún alfabeto, y las reglas de inferencia son medios para
especificar que ciertas cadenas son derivables de otras.
Las cadenas que pueden ser derivadas en un número finito de pasos de los
axiomas, son los teoremas demostrables del sistema y los pasos de las
secuencias de deducción constituyen pruebas de estos teoremas.
Es importante notar que las ideas precedentes, de ninguna manera dependen de
la semántica de los axiomas y teoremas. El sistema propuesto por Post es
equivalente a la máquina de Turing en su capacidad computacional. El sistema de
reglas de producción de Post es una clase finita de reglas de reescritura aplicable
a cadenas de símbolos. Estas reglas denominadas producciones (de ahí el
nombre de sistema de reglas de producción), se parecen a las reglas de las
gramáticas formales, pero contienen, además de símbolos terminales y no
terminales, cadenas variables que representan cadenas arbitrarias de letras
terminales que pueden aparecer en derivaciones permitidas por el sistema.
Formalmente un sistema de producción de Post, también conocido con el nombre
de máquina de Post, es una cuaterna MP=<T, U, V, R>en donde T es un conjunto
finito de símbolos terminales (el alfabeto del sistema), que simbolizaremos en
forma genérica por letras minúsculas, T={a, b, c,…,n}; U es un conjunto finito de
símbolos auxiliares (es un alfabeto de símbolos delimitadores), que
simbolizaremos en forma genérica por letras mayúsculas, U={A, B, C,…,N}; V es
un conjunto finito de variables de cadenas de símbolos del alfabeto, que
simbolizaremos en forma genérica por letras del alfabeto griego, V={ γ β α , , ,…}; R
es un conjunto finito de reglas de reescritura, cada una de las cuales es un par
ordenado de cadenas en ∗ ∪ ∪ ) ( V U T , en donde ∗ es el cierre de Kleene. Si
) , ( β α es una regla perteneciente a R, escribimos β α → , estableciéndose que
cada regla es de la forma B A B A β α → , con lo que la cadena α podría ser
reemplazada por la cadena β en el contexto de A y B.
Análogamente al modo en que las reglas de una gramática formal permiten la
derivación de cadenas terminales a partir de un símbolo de comienzo, las reglas
de producción permiten que, a partir de un conjunto de axiomas (cadenas de
símbolos sobre algún alfabeto), se deduzcan teoremas (cadenas que pueden ser
derivadas en un número finito de pasos a partir de los axiomas).
87
Por ejemplo, consideremos una máquina de Post que sume números enteros
expresados como cadenas de unos. MP=<T, U, V, R> con T={1,+,=}, U=φ ,
V={ γ β α , , }, R={p
1
, p
2
}en donde,
p
1
: α +β =γ →α1 +β =γ 1
p
2
: α +β =γ →α +β1 =γ 1
Consideremos el axioma: 1+1=11 y el teorema o cadena a derivar,
11+111=11111. Los pasos de la derivación son,
Consideremos una máquina de Post que convierta un número binario (cadenas de
unos y ceros).
Representaremos en las reglas de reescritura, el algoritmo estándar para convertir
un número binario: dividir el número por 2, sucesivamente, y conservar la
secuencia de restos. Cuando el número está representado en unario, dividir por 2
consiste en descartar cada segundo uno. Recordemos que la división es una
resta abreviada. Es decir, si reflejamos el proceso de conversión como restas
para números en notación decimal, tendríamos por ejemplo, si el número es 6,
6 – 2 =4
4 – 2 =2
2 – 2 =0
tenemos un residuo de 0 y como restamos 3 veces, continuamos,
3 – 2 =1 y 1 <2
tenemos un residuo de 1 y como restamos 1 vez, continuamos,
1 – 2 no es posible
tenemos un residuo de 1 y como restamos cero veces, paramos.
11111 111 11
p
1111 11 11
p
111 1 11
p
11 1 1
2
2
1
= +

= +

= +

= +
88
0 1 2
2 0 2 1 2 1 6 ⋅ + ⋅ + ⋅ =
Una máquina de Post que refleja apropiadamente este proceso para números
enteros expresados en notación unaria es la siguiente,
T={1, 0, =}, U={A, B, C}, V={ δ γ β α , , , }, R={p
1
, p
2
, p
3
, p
4
, p
5
}con,
β α β α
β γ α β γ α
β γ α β γ α
β δ γ α β δ γ α
α α α
= → =
→ =
→ =
→ =
→ =
ABC p
C AB C B A p
C AB BC A p
C B A C B A p
C AB p
5
4
3
2
1
1 1
0
1 11
La regla p
1
comienza con un axioma dado α y crea la cadena C ABα α , en la que
se puede notar dos copias de α . La primera, la de más a la izquierda, conserva el
valor inicial de α que corresponde al axioma y se utiliza para expresar la
respuesta final en p
5
. La segunda es la copia que se encuentra entre los
símbolos auxiliares B y C, y que será sometida a sucesivas transformaciones.
La regla p
2
es la encargada de efectuar la división por 2, es decir, de restar 2, que
significa tomar la cadena de unos de α y reemplazarla por una cadena que estará
reducida en una cadena de dos unos, respecto a la cadena α que fue tomada por
p
2
. Además la regla p
2
incrementa la cadena γ que está entre A y B, agregándole
un 1. Esto equivale a establecer un contador que nos representa el número de
veces que se ha restado.
Si los símbolos B y C llegan a ser adyacentes después de repetidas las
aplicaciones de la regla p
2
, la cadena original contenía un número par de unos y
por lo tanto la regla p
3
registra que el residuo es cero y mueve B atrás al principio
de la cadena entre A y C, con lo cual la cadena γ que registraba el número de
veces que se había restado, se convierte en la nueva cadena a ser sometida en el
proceso de reducción, mediante p
2
.
La regla p
4
es la análoga a la regla p
3,
para el caso en el que el residuo de la
división es 1. La regla p
5
detecta el caso en el que los símbolos auxiliares A, B y
C son adyacentes, con lo cual se finaliza el proceso porque no hay cadenas a
reducir; y en consecuencia se expresa la conversión completa a binario.
Consideremos como ejemplo de aplicación de esta máquina de Post, el caso en el
que el axioma es la cadena 111111 y el teorema o cadena a derivar es, 111111 =
110, que expresa la conversión a binario
89
C AB
p
111111 111111
111111
1

= α
C B A
p
C B A
p
11 11 111111
1111 1 111111
2
2


0 111 111111
111 111111
3
2
C AB
p
BC A
p


10 1 111111
0 1 1 111111
4
2
C AB
p
C B A
p


110 111111
110 111111
5
4
=


p
ABC
p
Los sistemas de Post poseen las siguientes características:
• No hay control.
• Las producciones son simplemente reglas de reescritura.
• Un sistema de Post no describe un proceso sino que define un conjunto de
cadenas de caracteres.
• Si se añade control, un sistema de Post puede utilizarse para describir
procesos:
− Aparecen caracteres de control y órdenes.
− Desaparecen los axiomas (pues se describe un proceso).
En los años 60, algunos investigadores como Newell y Simon, utilizaron los
sistemas de Post en una versión generalizada para modelar procesos
cognoscitivos humanos, especialmente en el análisis de juegos y problemas de
criptoaritmética o aritmética codificada.
Un problema típico de criptoaritmética es:
90
RAMON
JUAN
PEPE
+

En estos problemas, las palabras representan números. Cada letra del alfabeto
que aparece en un problema de criptoaritmética, representa un dígito decimal
distinto, pero cada aparición de la misma letra representa el mismo dígito. La
solución habitual de un problema de criptoaritmética es encontrar qué dígitos
pueden sustituir a las letras con objeto de producir una posible solución. Es decir,
para el problema típico de criptoaritmética planteado arriba, ¿qué dígitos deben
sustituir las letras A, E, M, N, O, P, R, J y U para que la suma sea correcta? En
este caso una solución es:
P=8, E=0, J=9, U=3, A=7, N=2, R=1, M=4, O=5
El interés de Newell y Simon en la utilización de sistemas de Post generalizados,
se debe a que estos sistemas tienen las siguientes características relevantes:
1. Tienen la generalidad computacional de las máquinas de Turing (recordemos
que las máquinas de Post y las máquinas de Turing son equipotentes, es
decir, que todo problema que es solucionable con una máquina de Turing, lo
es con una máquina de Post, y viceversa, y por tanto son un buen modelo
para el procesamiento de información del tipo de la dirigida por los datos, que
poseen las acciones inteligentes.
2. Puesto que las reglas de producción tienden a representar componentes
independientes del comportamiento (unidades del saber hacer), la creación y
adición de reglas puede ser incremental.
3. Las reglas (Figura 4.1) de producción proporcionan un posible modelo de la
memoria humana, que podemos esquematizar mediante:
Figura 4.1
Conocimiento
activo
Conocimiento
no activo
Procesador
conceptual
Inf. de
control
Inf. de
situación
Memoria de
trabajo
Base de conocimiento
Información
sensorial
Información
efectora
Memoria de
largo plazo
Memoria de
corto plazo
91
4.2 Sistemas basados en reglas de producción (Estado Actual)
Aunque los sistemas basados en reglas de producción en su versión actual, tienen
como antecesores los sistemas de Post, se han distanciado de estos hasta el
punto que se parecen poco.
En los sistemas basados en reglas de producción actuales, a diferencia de los de
Post, las reglas no son reglas de reescritura. Actualmente se entiende por
producción una regla que consta de dos partes: un lado izquierdo denominado
condición o antecedente, y un lado derecho denominado acción o consecuente.
Habitualmente las reglas se definen como: IF <condición> THEN <acción> o
<conclusión>, que se suelen expresar simbólicamente como,
<condición>! <acción>
El lado izquierdo o condición es una lista de cosas a verificar y el lado derecho
otra lista de cosas a hacer.
La condición normalmente es la conjunción de una secuencia de condiciones
elementales, que usualmente son una terna o tripla <objeto, atributo, valor>. La
acción es una secuencia de acciones elementales, en donde cada acción
elemental puede ser un procedimiento o una conclusión. El procedimiento se
activa o se ejecuta cuando se verifican las condiciones exigidas por la regla. La
conclusión también se expresa en el formato de terna <objeto, atributo, valor>.
Las conclusiones pueden ser vistas como un caso particular de acción, porque en
ellas está implícito un cambio en el contenido de la base de hechos. Es decir,
cada vez que se activen o disparen reglas, si los consecuentes de éstas son
conclusiones, se produce un incremento de nuevos hechos en la base de hechos.
Un lenguaje para expresar las reglas se define mediante la siguiente sintaxis en la
forma Backus-Naur (BNF):
<Regla>::=IF <Premisa>THEN <Acción>[ELSE<Acción >]
<Premisa>::=(AND{<Condición>}
+
)
<Condición >::=(OR{<Tripleta>}
+
)
<Tripleta >::=(<Objeto><Atributo><Valor>)
<Acción >::={<Consecuente>}
+
/{<Procedimiento>
+
}
<Consecuente >::=(<Tripleta ><Factor de Certeza>)
92
Los elementos fundamentales o unidades básicas dentro de las premisas de las
reglas son las triplas o tripletas, que representan afirmaciones acerca de los
objetos del dominio de aplicación y que por lo tanto se constituyen también en las
unidades básicas de la base de hechos y de la memoria de trabajo.
Las tripletas pueden aparecer en varias formas:
1. El <atributo>de <objeto>es <valor>como por ejemplo en:
“La identidad de la infección es desconocida”
2. El <objeto>tiene <atributo>de <valor>como por ejemplo en:
“El organismo tiene forma de bastón”
3. A veces el objeto o el atributo están implícitos, como por ejemplo en:
“La cuenca geológica es el sudeste de Irán”
Allí hay un atributo implícito que es el lugar.
Ejemplos de reglas de producción son las siguientes:
Una regla extraída de Mycin es:
IF (el lugar de cultivo del organismo es la sangre) y
(el organismo es gramnegativo) y
(el organismo tiene forma de bastón) y
(el paciente es un huésped con riesgo)
THEN (hay una evidencia de 0,6 de que el organismo es el pseudomonas
aeruginosa)
Otra regla extraída de Mycin es:
IF (la infección es bacteriemia primaria) y
(la toma del material cultivado es una toma estéril) y
(se cree que la puerta de entrada del organismo es el tracto gastrointestinal)
THEN (hay bastante evidencia (0,7) de que la identidad del organismo sea
bacteroides)
atributo objeto valor
atributo valor objeto
93
Una regla extraída de Litho es:
IF (la cuenca geológica es el sudeste de Irán) y
(el período estatigráfico es el J urásico)
THEN (hay una evidencia de 0,4 de que hay petróleo en la zona) y
(hay una evidencia de 0,2 de que la formación geológica sea globalmente
compacta)
Las reglas de producción también pueden utilizar el formalismo de la lógica de
predicados de primer orden:
(∀x)(mamífero(x)∧carnívoro(x) ∧color(x,leonado) ∧tiene_rayas(x,negras)) !
tigre(x)
En un sistema basado en reglas, se espera que la base de conocimientos tenga
las siguientes características:
a) INDEPENDENCIA: las reglas de producción deben ser independientes unas de
otras, en el sentido de que ninguna regla puede referenciar directamente a otra
regla de la base de conocimiento. La comunicación entre reglas sólo puede
hacerse a través de la base de hechos. Es decir, si por ejemplo, una regla se
activa o dispara, entonces se produce una modificación en la base de hechos,
que a su vez permite que se activen nuevas reglas.
b) CARÁCTER APROXIMATIVO: como se puede observar en los ejemplos, las reglas
de producción suelen tener asociado un factor de certeza en la conclusión.
Esto significa que las reglas de producción que recogen el conocimiento
heurístico de un experto, no reflejan implicaciones lógicas, sino más bien
apreciaciones o convicciones del experto. Esto se suele expresar
numéricamente asociándole a la conclusión un factor de certidumbre o
coeficiente de verosimilitud que refleja el mayor o menor grado de confianza
que el experto concede a alcanzar esa conclusión asociada a la regla,
habiéndole cumplido las condiciones de la misma.
c) CARÁCTER VERSÁTIL: los saberes que forman la base de conocimiento son de
naturaleza versátil, es decir, no prejuzgan el uso que se les dará. Por ejemplo,
el enunciado: “un osmyladae es un neuróptero sin cuello, cuyas nervaduras
están claramente bifurcadas en el borde de las alas, las cuales a su vez están
jaspeadas y cuya envergadura es superior a 40 mm” no prejuzga una
utilización particular. Este enunciado permite responder a preguntas tan
diversas como: ¿es éste espécimen un osmyladae?, ¿un osmyladae tiene alas
jaspeadas?, ¿cuál es la envergadura de un osmyladae?
En la actualidad podemos definir formalmente un sistema basado en reglas de
producción como una terna, SP=<MT, BR, I>siendo MT la memoria de trabajo, BR
94
la base de reglas e I el intérprete. De esta manera podemos considerar la
arquitectura de un sistema basado en reglas de producción semejante a la de un
sistema experto con algunos cambios en la terminología.
La memoria de trabajo debe contener siempre información adecuada para una
tarea en particular: es decir, los datos y hechos establecidos y las metas a
alcanzar. Algunas partes de la memoria de trabajo pueden ser permanentes,
mientras que otras pueden pertenecer sólo a la solución del problema en curso y,
en consecuencia, ser temporales.
La MT es el foco de atención de las reglas de producción. Como sabemos, el lado
izquierdo de las producciones representa una o varias condiciones que deben
estar presentes en los hechos antes de que una de esas producciones pueda
dispararse. Por su parte, el lado derecho de las reglas o producciones contiene
una o varias acciones que lo único que hacen, al menos en una primera
aproximación, es modificar; o sea, añadir, eliminar o cambiar los hechos de tal
modo que otras reglas satisfagan su parte de condición y sean susceptibles de
activarse (Figura 4.2).
Figura 4.2
Base de Reglas
• Reglas
• Meta-reglas
Intérprete
• Filtrado de reglas
• Ciclo de trabajo
Memoria de Trabajo
• Datos y hechos
• Lista de subproblemas
• Reglas en espera
95
El intérprete de un sistema de producción es el núcleo del sistema, de modo que,
alimentado por una memoria de trabajo, construye dinámicamente una solución,
diciendo qué reglas disparar y en qué orden.
En resumen, el intérprete es un motor de inferencia específico para la activación
de reglas. Las reglas son activables cuando los hechos o hipótesis de un
determinado problema satisfacen las condiciones del antecedente de la regla, o
también cuando una regla concluye algo que se buscaba establecer, dependiendo
del modo de razonamiento que se utilice, como veremos más adelante.
El intérprete debe ser lo más general posible para que pueda aplicarse a distintos
dominios del conocimiento, y tan eficiente como se pueda.
Los intérpretes deben cumplir tres requisitos básicos:
1) Conducir a una solución.
2) Utilizar una estrategia no aleatoria.
3) Ser eficiente computacionalmente.
En el punto 4.3 estudiaremos en detalle los ciclos de trabajo de los intérpretes.
La base de reglas contiene las reglas de producción y en algunos casos unas
reglas especiales llamadas meta-reglas. Las meta-reglas son reglas de
producción acerca de las reglas de producción. Es decir, son reglas que le
permiten al intérprete decidirse por una regla u otra, en caso de que haya más de
una regla activable frente a un conjunto de datos y hechos presentes en la
memoria de trabajo.
4.3 Ciclo de Trabajo de un Intérprete
El intérprete de un sistema basado en reglas de producción posee dos niveles: el
modo de razonamiento y la estrategia de control.
Dado que el intérprete es un motor de inferencia, es decir una máquina deductiva,
él posee una estrategia de inferencia o modo de razonamiento, que es obviamente
deductivo, y que en términos prácticos expresa un modo de encadenamiento de
las reglas. Básicamente existen dos modos de razonamiento, denominados
“encadenamiento hacia adelante” y “encadenamiento hacia atrás”. Al primero se
le asocia el significado de “dirigido por los datos”, es decir, va a ser el
conocimiento de ciertos datos lo que provoque la activación de una regla de
inferencia; y al segundo se le asocia el significado de “dirigido por la meta”, es
decir, que es justamente para establecer esa meta por lo que se activa una regla.
96
Por ejemplo, consideremos una base de conocimiento (Figura 4.4) que contiene:
Hechos conocidos: A, G, Meta: H y las siguientes reglas:
R
1
: Si A y B y C entonces D
R
2
: Si B y E entonces F
R
3
: Si G y D entonces F
R
4
: Si A entonces X
R
5
: Si B entonces C
R
6
: Si F y X entonces H
R
7
: Si G entonces B
R
8
: Si X y G entonces F
R
9
: Si X y A entonces B
Los árboles siguientes reflejan un razonamiento hacia adelante (dirigido por los
datos o hechos) (Figura 4.3)
A, G
R
4
R
7
1.18 A,
G
R
7
R
8
R
9
1.17 A, G,
X B
R
5
R
9
R
8
1.16 A, G, X, B,
C
R
9
R
8
R
1
1.15 A, G, X, B, C, D
R
8
R
1
R
3
1.14 A, G, X, B, C, D,
F
R
8
R
9
R
6
1.12 A, G, X, B, C, D,
F
A, G, X, B, C, D, F, H
meta
97
Figura 4.3
Figura 4.4
El primer árbol refleja además del encadenamiento hacia adelante, una estrategia
en la que se selecciona la primera regla aplicable en el orden de su numeración.
Esta estrategia forma parte de la estrategia de control que veremos
posteriormente.
El segundo árbol (mucho más corto) refleja además del encadenamiento hacia
adelante, una estrategia en la que se selecciona aquella regla que posea el mayor
número de condiciones y cuando dos o más reglas tienen igual número de
condiciones, se elige la primera.
La selección de reglas se denomina estrategia de resolución de conflictos y forma
parte de la estrategia de control.
Retomando la base anterior, el razonamiento hacia atrás tiene lugar a partir de la
meta H, intentando introducir submetas equivalentes. El árbol de la Figura 4.5
refleja la situación.
1.9
R
4
R
7
1.8 A,
G
R
8
R
7
R
9
1.6 A, G,
X F
R
6
R
9
R
7
A, G, X, F, H
meta
98
Figura 4.5
En primer lugar debemos decir que este árbol es de un tipo especial de árboles,
que se conocen con el nombre de árboles y/o (en inglés and/or).
Las ramas del árbol que tienen horqueta, se utilizan para representar la conjunción
“y” de condiciones. Así por ejemplo la horqueta asociada a la regla R
6
, representa
que para establecer o verificar la meta H, es necesario verificar tanto la submeta X
como la submeta F.
Las ramas del árbol que se desprenden independientemente a partir de un nodo,
se utilizan para representar la disyunción “o” de condiciones. Así por ejemplo las
tres ramas que se desprenden del nodo F del árbol, ponen de manifiesto las tres
reglas (R
2
, R
3
, R
8
) que independientemente se pueden utilizar como caminos en el
proceso de verificación de la submeta F.
Como se puede observar, en el árbol existen ramas que se quedan sin explorar.
Esto es debido a que la estrategia utilizada aquí es la más simple posible, y
consiste en utilizar la primera regla aplicable, en el orden de numeración, para, a
continuación, intentar verificar una detrás de otra las nuevas metas producidas.
Esta exploración de la arborescencia se realiza en profundidad. En caso de
fracaso, aquí, por ejemplo, la submeta E no puede deducirse de ninguna manera,
H
X F
G
D
B C A
B E
A
G R
9
R
1
R
5
B
R
7
R
8
R
4
R
3
R
6
Verificado
Verificado
Verificado Verificado
Verificado
99
por lo que es necesario aplicar el procedimiento de retroceso y la última regla
dejada de lado se ensaya. La exploración se detiene cuando la meta inicial se
demuestra como en nuestro ejemplo, o cuando todas las posibilidades se han
explorado sin éxito.
Los árboles de nuestro ejemplo representan primariamente lo que denominamos
modo de razonamiento. Sin embargo en ellos encontramos algunos elementos
adicionales, que forman parte realmente de lo que globalmente conocemos con el
nombre de estrategia de control. En ellos observamos que se prefieren unas
ramas (reglas) a otras por ejemplo, lo que constituye una estrategia en sí misma,
denominada resolución de conflictos; también mencionamos arborescencias en
profundidad y procedimientos de retroceso, que como sabemos forman parte de
las estrategias de búsqueda.
La estrategia de control contiene el conocimiento de control y no es otra cosa que
un “modelo general de solución de problemas”. Esta estrategia es la encargada
de encadenar los ciclos de trabajo del intérprete. Cada ciclo posee dos fases
perfectamente diferenciadas: la de decisión o selección de reglas y la de
activación o ejecución de las reglas elegidas.
Es de resaltar que esta modalidad operatoria de las estrategias de control es
válida para intérpretes secuenciales, es decir, que la secuencialidad de la máquina
y de los algoritmos o programas obliga a que en cada ciclo sólo se pueda activar o
disparar una regla y por lo tanto sólo una debe ser seleccionada. Sin embargo, es
posible contar con intérpretes paralelos que permitan la selección y ejecución
simultánea de más de una regla de producción. Pero asumiremos la situación
más usual de contar con unos intérpretes secuenciales.
Cuando la estrategia de control se pone en marcha, la base de datos y la base de
reglas contienen las informaciones representativas del enunciado del problema a
tratar; es decir, la expresión de los hechos comprobados o a probar y los
conocimientos operatorios sobre el dominio en cuestión.
La detención del intérprete puede hacerse en la fase de decisión o en la fase de
ejecución. Revisaremos los ciclos de trabajo conforme a los modos de
razonamiento.
4.3.1 Ciclo de un intérprete con encadenamiento hacia adelante
a) FASE DE DECISIÓN: En la situación más general, la fase de decisión consta de
tres etapas: a) etapa de filtrado: consiste en restringir o filtrar el número de reglas
y de hechos que intervienen en el proceso. La idea es que frente a un
requerimiento o solicitud, el intérprete pueda seleccionar un subconjunto de reglas
de la base de datos que sean relevantes a la solución del problema. Es decir, lo
que se busca es no traerse a la memoria de trabajo todas las reglas e
100
informaciones almacenadas, siendo muchas de ellas irrelevantes al problema y
que no sólo no aportan a la solución sino que además recargan innecesariamente
el sistema, haciéndolo lento e ineficiente.
Para realizar el filtrado, es necesario que la base de conocimiento haya sido
particionada convenientemente como fruto de un proceso de diseño, por ejemplo.
Existen dos categorías básicas de particionamiento de una base de reglas, que
denomino con los nombres de sintácticas y semánticas.
Un particionamiento sintáctico podría conseguirse definiendo una relación de
conexión entre las reglas. La idea es definir inicialmente una relación de
adyacencia entre reglas, por ejemplo, decimos que R
i
es adyacente a R
j
(lo que
podemos simbolizar por R
i
~R
j
), si R
i
∩ R
j
≠ ∅. Es decir, que podemos considerar
que dos reglas son adyacentes, si tienen alguna condición o conclusión en común.
La relación de adyacencia así definida es reflexiva y simétrica, pero no transitiva.
Con base en la relación de conexión entre R
i
y R
j
(que simbolizamos por R
i
≈ R
j
)
definida como: R
i
≈ R
j
sí R
i
~R
j
, o si existe una secuencia de reglas, {R
1
, R
2
,…, R
n
}
tal que, R
i
~R
1
~R
2
~…~R
n
~R
j
. La relación de conexión así definida es una
relación de equivalencia (reflexiva, simétrica y transitiva), que permite particionar
la base de reglas en clases de equivalencia, que pueden ser aprovechadas en el
proceso de filtrado.
Un particionamiento semántico podría conseguirse definiendo agrupamientos de
reglas mediante criterios de clasificación o de modelamiento conceptual,
aportados por los expertos.
La etapa de filtrado sólo se aplica en el primer ciclo de trabajo.
b) EQUIPARACIÓN: Una vez finalizada la etapa de filtrado, la estrategia de control
examina la base de datos con el fin de seleccionar el conjunto de reglas
candidatas a dispararse; es decir, aquellas cuya expresión es compatible con la
base de datos, por intermedio de mecanismos de cotejación.
El proceso de cotejación en un encadenamiento hacia adelante consiste en
contrastar los hechos de la base de datos contra todos los condicionales de todas
las reglas previamente seleccionadas en la etapa de filtrado. Obviamente este
proceso es muy costoso computacionalmente hablando, por lo que es necesario
contar con algoritmos de equiparación eficientes. El algoritmo de equiparación
eficiente más conocido fue desarrollado en la universidad de Carnegie-Mellon en
el marco de un entorno de desarrollo de sistemas expertos basados en reglas de
producción, llamado OPS5, que posee el algoritmo de Rete (Rete es una palabra
del inglés antiguo que significa Red).
101
c) RESOLUCIÓN DE CONFLICTOS: El proceso de equiparación puede arrojar que
haya un conjunto de reglas susceptibles de ser activadas, dado que los hechos de
la base de datos satisfacen las condiciones de un grupo de reglas. A tal conjunto
de reglas se le conoce con el nombre de conjunto conflicto y dado que en la fase
de decisión se debe seleccionar únicamente una regla, es necesario que la
estrategia de control utilice una estrategia de resolución de conflictos que permita
decidirse por una regla. La estrategia consiste en una secuencia de criterios que
van restringiendo en cada paso un número de reglas candidatas en la selección,
hasta que finalmente sólo quede una. Los criterios que usualmente se utilizan
son:
1) La primera regla que equipara el contexto. Esta primera se define en términos
de algún ordenamiento explícito de la base de reglas.
2) La regla de más alta prioridad. Las prioridades son definidas por los expertos y
se suelen expresar mediante niveles de prioridad, de tal manera que podemos
hablar de reglas de nivel 100, 200, etc.
3) La regla más específica. Es decir, aquella que es conjunción de más
condiciones.
4) La regla que concierne al elemento añadido más recientemente a la memoria
de trabajo.
5) Arbitrariamente una regla.
d) FASE DE EJ ECUCIÓN: La regla seleccionada en la fase anterior es activada o
disparada, esto significa ejecutar la acción de la regla o añadir una nueva
conclusión a la base de hechos.
Este ciclo se repite (salvo la etapa de filtrado) hasta que el hecho que se ha fijado
como meta se añada a la base de hechos, o cesa de efectuarse cuando ya no
puede aplicarse ninguna regla. Este proceso es manejado por el intérprete, que
además de utilizar la estrategia de control, se vale de las estrategias de búsqueda
y de los mecanismos de retroceso para dirigir los encadenamientos de los ciclos.
Es decir, en su forma más simple, los encadenamientos son guiados mediante
estrategias de primero-profundidad y primero-amplitud, acompañadas del
mecanismo de retroceso que es aplicado en tres situaciones:
1. Cuando se alcanza el límite de profundidad prefijado (número máximo de ciclos
permitidos) y no se ha alcanzado la meta y quedaron reglas pendientes.
2. Cuando no hay más reglas que equiparen (conjunto conflicto vacío), no se ha
alcanzado la meta y quedaron reglas pendientes.
102
3. Cuando no se generen nuevos hechos (bucle), no se ha alcanzado la meta y
quedaron reglas pendientes.
En los tres casos tenemos reglas pendientes, es decir que no fueron
seleccionadas en la etapa de resolución de conflictos.
Cuando la regla seleccionada no conduce a la meta (camino de fracaso) el
intérprete tiene que devolverse hasta el ancestro más inmediato en el que
quedaron, reglas pendientes, y luego, debe encadenar un nuevo ciclo en el que se
selecciona una de las reglas pendientes y se repite el proceso hasta llegar a la
fase de ejecución.
Cuando la activación de una regla (disparo) no conduce a la meta y en ninguno de
sus ancestros hay reglas pendientes, entonces el ciclo completo del intérprete
termina con fracaso, es decir, que la meta no se puede establecer como un hecho.
Como se puede apreciar, el mecanismo de retroceso es muy importante para
establecer las condiciones de terminación del ciclo de trabajo de un intérprete. En
todo este proceso es fundamental llevar un historial de todos los cambios que se
van sucediendo en la memoria de trabajo.
Si en un ciclo j se selecciona una regla y al finalizar, esta regla no conduce a la
meta (situación de retroceso) quedaron reglas pendientes en un ciclo j-n, entonces
el ciclo j+1 comienza en la etapa de resolución de conflictos del ciclo j-n,
seleccionando una regla diferente. Pero lo más importante es que la memoria de
trabajo que se considera es la que entró al ciclo j-n desde su ciclo anterior y por lo
tanto al finalizar el ciclo j+1 tendremos los hechos que entraron a j-n más los
agregados por el disparo de la regla.
Consideremos el siguiente ejemplo, en el que simulamos un intérprete con estas
características:
Modo de razonamiento: Encadenamiento hacia delante.
Estrategia de búsqueda: Primero-Profundidad.
Estrategia de resolución de conflictos: La regla con identificador más bajo (por
ejemplo, si compiten las reglas R
5
y R
8
, se selecciona R
5
)
Consideremos la siguiente base de reglas BR={R
1
, R
2
, R
3
, R
4
, R
5
, R
6
}con,
R
1
: A → B, C, D
R
2
: E, B → C, F
R
3
: C, L → G, H
R
4
: E → G, A
R
5
: D → M, C
103
R
6
: K → L, E
Consideremos la siguiente base de hechos, BH ={B, G, α, K}. Sea Meta ={M}.
Ciclo 1: Fase : Decisión.
Etapa: Filtrado, Reglas: R
1
, R
2
, R
3
, R
4
, R
5
, R
6
Hechos: B, G, K
Etapa: Equiparación, conjunto conflicto: R
6
Etapa: Resolución de conflictos, seleccionamos R
6
Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
6
, Hechos: B, G, K, L, E
Como M no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 2: Fase: Decisión.
Etapa: Equiparación, conjunto conflicto: R
2
, R
4
Etapa: Resolución de conflictos, seleccionamos R
2
Reglas pendientes: R
4
Fase: Ejecución
Disparamos R
2
, Hechos: B, G, K, L, E, C, F
Como M no pertenece a Hechos, encadenamos con un nuevo ciclo
Ciclo 3: Fase: Decisión
Etapa: Equiparación, conjunto conflicto: R
3
, R
4
Etapa: Resolución de conflictos, seleccionamos R
3
Reglas pendientes: R
4
Fase: Ejecución
Disparamos R
3
, Hechos: B, G, K, L, E, C, F, H
Como M no pertenece a Hechos, encadenamos con un nuevo ciclo
Ciclo 4: Fase: Decisión
Etapa: Equiparación, conjunto conflicto: R
4
Etapa: Resolución de conflictos, seleccionamos R
4
Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
4
, Hechos: B, G, K, L, E, C, F, H, A
Como M no pertenece a Hechos, encadenamos con un nuevo ciclo
Ciclo 5: Fase: Decisión
104
Etapa: Equiparación, conjunto conflicto: R
1
Etapa: Resolución de conflictos, seleccionamos R
1
Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
1
, Hechos: B, G, K, L, E, C, F, H, A, D
Como M no pertenece a Hechos, encadenamos con un nuevo ciclo
Ciclo 6: Fase: Decisión
Etapa: Equiparación, conjunto conflicto: R
5
Etapa: Resolución de conflictos, seleccionamos R
5
Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
5
, Hechos: B, G, K, L, E, C, F, H, A, D, M
Como M pertenece a hechos, terminamos con éxito.
4.3.2 Ciclo de un intérprete con encadenamiento hacia atrás
El ciclo de trabajo de un intérprete con encadenamiento hacia atrás presenta las
mismas fases de selección y ejecución que el ciclo con encadenamiento hacia
adelante.
La etapa de filtrado es idéntica al ciclo hacia adelante. La etapa de equiparación
se realiza equiparando la meta con los lados derechos de las reglas.
La etapa de resolución de conflictos es similar.
La fase de ejecución consiste en reemplazar una meta por submetas equivalentes.
La condición de terminación es, ¿Metas ⊆ Hechos? Si la respuesta es Sí,
terminamos con salida exitosa, si la respuesta es No, encadenamos con un nuevo
ciclo.
Consideremos el mismo ejemplo, con las mismas reglas y hechos, pero con un
intérprete que razona hacia atrás. Nuevamente consideremos como estrategia de
búsqueda primero-profundidad y como estrategia de resolución de conflictos, la
regla con identificador menor.
Ciclo 1: Fase: Decisión
Etapa: Filtrado, Hechos: B, G, K, Reglas: R
1
, R
2
, R
3
, R
4
, R
5
, R
6
, Metas: M
Etapa: Equiparación, conjunto conflicto R
5
105
Etapa: Resolución de conflictos, seleccionamos R
5
Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
1
, esto significa que reemplazamos la meta M por D. Metas: D
Como D no pertenece a Hechos, encadenamos con un nuevo ciclo
Ciclo 2: Fase: Decisión
Etapa: Equiparación, conjunto conflicto: R
1
Etapa: Resolución de conflictos, seleccionamos R
1
Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
1
, Metas: A
Como A no pertenece a Hechos, encadenamos con un nuevo ciclo
Ciclo 3: Fase: Decisión
Etapa: Equiparación, conjunto conflicto: R
4
Etapa: Resolución de conflictos, seleccionamos R
4
Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
4
, Metas: E
Como E no pertenece a Hechos, encadenamos con un nuevo ciclo
Ciclo 4: Fase: Decisión
Etapa: Equiparación, conjunto conflicto: R
6
Etapa: Resolución de conflictos, seleccionamos R
6
Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
6
, Metas: K
Como K pertenece a Hechos, terminamos con éxito.
4.4 Problemas y Reglas de Producción
Los sistemas basados en reglas de producción son una buena manera para
describir las operaciones que pueden llevarse a cabo en una búsqueda de
solución de un problema.
Un problema ‘P’ lo podemos modelar y resolver mediante un sistema de
producción, considerando las operaciones como reglas de producción y los
106
estados como elementos de la memoria de trabajo. El estado inicial es un hecho
de la memoria de trabajo y el estado meta es un elemento de la memoria, del que
se trata de establecer si es un hecho o no.
El intérprete se convierte entonces en un solucionador de problemas con sus
estrategias de inferencia, de búsqueda y control (que incorpora la estrategia de
resolución de conflictos y el mecanismo de retroceso que es fundamental en los
intentos de solucionar el problema).
Anteriormente, cuando definíamos un problema P, indicábamos que lo podíamos
modelar como una cuaterna conformada por un espacio de estados, un conjunto
de operadores y unos estados especiales o distinguidos, que son el estado inicial
y el estado meta. Sin embargo el nivel de representación es todavía muy vago, en
la medida en que no precisemos la representación de las operaciones. Por
ejemplo referido al 8-puzzle, señalábamos cuatro operaciones: 0
1
(mover blanco
arriba), 0
2
(mover blanco abajo), 0
3
(mover blanco a la derecha), 0
4
(mover blanco
a la izquierda). Desde el punto de vista humano, es entendible el significado de
las operaciones, pero desde el punto de vista de la máquina no. Es decir, que si
pretendemos que un computador juegue al 8-puzzle, no es suficiente con
representar formalmente los estados del problema mediante estructuras de datos
manipulables por él (como arreglos, listas, etc.) si las operaciones no están
expresadas en un nivel de representación equivalente. Esto implica la necesidad
de contar con un lenguaje formal, que permita expresar las acciones de las reglas
como transformadores de estados, a un nivel manejable por el computador. Las
reglas de producción constituyen una buena solución, no sólo por la capacidad de
expresar la acción (transformación del estado), sino por la capacidad de expresar
las precondiciones que los estados del problema deben satisfacer para que se
ejecute la acción.
Las reglas de producción utilizadas en la solución de problemas, se convierten en
unas parejas precondición-acción.
Consideremos nuevamente el problema de los envases con agua del Capítulo 3.
Sea v
1
el envase de 5 litros y v
2
el envase de 2 litros.
Sea (x, y) un estado del problema, en donde, x =cantidad de litros en v
1
y y =
cantidad de litros en v
2
.
Estado inicial es e
0
=(5,0) y meta M=(0, 1). Los operadores que se definieron en el
Capítulo 3 son O={o
1
, o
2
, o
3
, o
4
}tal que:
O
1
=vaciar v
1
O
2
=vaciar v
2
O
3
=vaciar de v
1
a v
2
O
4
=vaciar de v
2
a v
1
107
Podemos formalizar estas operaciones mediante reglas de producción, de tal
manera que sus precondiciones actúan como filtros de los estados y cuyas
acciones transforman los estados, modificando la base de hechos.
Una propuesta de formalización en la que no incluimos el operador o
4
, podría ser
la siguiente:
R
1
(Vaciar de v
1
a v
2
hasta que v
2
quede lleno):
IF estado=(x, y) ∧ (x >0) ∧ (y <2) ∧ (x +y ≥ 2)
THEN estado =(x – (2-y), 2)
R
2
(Vaciar de v
1
a v
2
hasta que v
1
quede vacío y v
2
no quede lleno):
IF estado=(x, y) ∧ (x >0) ∧ (x +y <2) THEN estado =(0, x+y)
R
3
(Vaciar v
1
):
IF estado=(x, y) ∧ x >0 THEN estado =(0, y)
R
4
(Vaciar v
2
):
IF estado=(x, y) ∧ y >0 THEN estado =(x, 0)
Consideremos un intérprete con las siguientes características: Modo de
razonamiento =hacia adelante, Estrategia de búsqueda =primero-profundidad,
Estrategia de resolución de conflictos =seleccionar primero las reglas con mayor
número de precondiciones y en caso de empate preferir las reglas con
identificador menor.
Ciclo 1: Fase: Decisión
Etapa: Filtrado, Reglas: R
1
, R
2
, R
3
, R
4
, Hechos: (5,0)
Etapa: Equiparación, Conjunto conflicto: R
1
, R
3
Etapa: Resolución de conflictos, seleccionamos R
1
, Reglas pendientes: R
3
Fase: Ejecución
Disparamos R
1
, Hechos: (5,0), (3,2)
Como (0,1) no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 2: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: R
3
, R
4
Etapa: Resolución de conflictos, seleccionamos R
3
, Reglas pendientes: R
4
Fase: Ejecución
Disparamos R
1
, Hechos: (5,0), (3,2), (0,2)
Como (0,1) no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 3: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: R
4
Etapa: Resolución de conflictos, seleccionamos R
4
, Reglas pendientes: ∅
Fase: Ejecución
108
Disparamos R
4
, Hechos: (5,0), (3,2), (0,2), (0,0)
Como (0,1) no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 4: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: ∅
Debemos retroceder al ciclo 2 donde quedó pendiente la regla R
4
Ciclo 5: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: R
3
, R
4
Etapa: Resolución de conflictos, seleccionamos R
4
, Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
4
, Hechos: (5,0), (3,2), (3,0)
Como (0,1) no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 6: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: R
1
, R
3
Etapa: Resolución de conflictos, seleccionamos R
1
, Reglas pendientes: R
3
Fase: Ejecución
Disparamos R
1
, Hechos: (5,0), (3,2), (3,0), (1,2)
Como (0,1) no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 7: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: R
3
, R
4
Etapa: Resolución de conflictos, seleccionamos R
3
, Reglas pendientes: R
4
Fase: Ejecución
Disparamos R
3
, Hechos: (5,0), (3,2), (3,0), (1,2), (0,2)
Como (0,1) no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 8: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: R
4
Etapa: Resolución de conflictos, seleccionamos R
4
, Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
3
, Hechos: (5,0), (3,2), (3,0), (1,2), (0,2), (0,0)
Como (0,1) no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 9: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: ∅
Debemos retroceder al ciclo 7 donde quedó pendiente R
4
.
Ciclo 10: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: R
3
, R
4
Etapa: Resolución de conflictos, seleccionamos R
4
, Reglas pendientes: ∅
Fase: Ejecución
Disparamos R
4
, Hechos: (5,0), (3,2), (3,0), (1,2), (1,0)
109
Como (0,1) no pertenece a Hechos, encadenamos con un nuevo ciclo.
Ciclo 11: Fase: Decisión
Etapa: Equiparación, Conjunto conflicto: R
2
, R
3
Etapa: Resolución de conflictos, seleccionamos R
2
, Reglas pendientes: R
3
Fase: Ejecución
Disparamos R
2
, Hechos: (5,0), (3,2), (3,0), (1,2), (1,0), (0,1)
Como (0,1) pertenece a Hechos, terminamos con éxito la secuencia de estados
(5,0), (3,2), (3,0), (1,2), (1,0), (0,1) muestra la trayectoria de solución del problema,
determinada por la secuencia de reglas R
1
, R
4
, R
1
, R
4
, R
2
.
Consideremos ahora un problema con un grado de dificultad mayor, en donde lo
interesante no está en los ciclos de trabajo del interprete, sino en la representación
formal de los elementos del problema y en especial en las reglas de producción.
El enunciado del problema es el siguiente:
“En la orilla izquierda de un río se encuentran tres misioneros y tres caníbales que
tratan de pasar a la orilla derecha del río. Para lo cual, cuentan con una barca que
sólo tiene capacidad para transportar a dos personas. Con la restricción de que
en ningún momento pueden estar juntos, en cualquiera de las orillas, más
caníbales que misioneros (los caníbales se comerían a los misioneros)”.
Una propuesta de formalización podría ser la siguiente:
Estado <(M
1
, C
1
), (M
2
, C
2
), (M
3
, C
3
), B>en donde,
M
1
=Cantidad de misioneros en la orilla izquierda.
M
2
=Cantidad de misioneros en la barca.
M
3
=Cantidad de misioneros en la orilla derecha.
C
1
=Cantidad de caníbales en la orilla izquierda.
C
2
=Cantidad de caníbales en la barca.
C
3
=Cantidad de caníbales en la orilla derecha.
B= Posición de la barca. Sin pérdida de generalidad asumimos que si B=1
entonces la barca se encuentra en la orilla izquierda y si B=0 se encuentra en la
orilla derecha.
Con estos elementos podemos representar:
Estado inicial, e
0
=<(3, 3), (0, 0), (0, 0), 1>,
Estado meta, m=<(0, 0), (0, 0), (3, 3), 0>,
Y las siguientes reglas:
R
1
(Embarcar un misionero en la orilla izquierda):
110
IF estado =<(M
1
, C
1
), (M
2
, C
2
), (M
3
, C
3
), B >∧ (M
1
≠ 0) ∧ (M
1
–1 ≥ C
1
) ∧ (1≥
M
2
+C
2
) ∧ (B=1) THEN estado=<(M
1
-1,C
1
), (M
2
+1, C
2
), (M
3
, C
3
), B>
R
2
(Embarcar un caníbal en la orilla izquierda):
IF estado =<(M
1
, C
1
), (M
2
, C
2
), (M
3
, C
3
), B >∧ (C
1
≠0) ∧ (1≥ M
2
+C
2
) ∧ (B=1) THEN
estado=<(M
1
,C
1
-1), (M
2
, C
2
+1), (M
3
, C
3
), B>
R
3
(Desembarcar un misionero en la orilla derecha):
IF estado =<(M
1
, C
1
), (M
2
, C
2
), (M
3
, C
3
), B >∧ (M
2
≥ 1) ∧ (M
3
+1≥ C
3
) ∧ (B=0)
THEN estado=<(M
1
, C
1
), (M
2
-1, C
2
), (M
3
+1, C
3
), B>
R
4
(Desembarcar un caníbal en la orilla derecha):
IF estado =<(M
1
, C
1
), (M
2
, C
2
), (M
3
, C
3
), B >∧ (C
2
≥ 1) ∧ (B=0) ∧
((M
3
≥ C
3
+1) ⊕ M
3
=0) THEN estado=<(M
1
,C
1
), (M
2
, C
2
-1), (M
3
, C
3
+1), B>
R5 (Atravesar el río):
IF estado =<(M
1
, C
1
), (M
2
, C
2
), (M
3
, C
3
), B >∧ (M
2
+C
2
≠ 0)
THEN estado=<(M
1
,C
1
), (M
2
, C
2
), (M
3
, C
3
), 1-B>
Estas cinco reglas son suficientes para plantear una solución al problema. Nótese
que con estas cinco reglas no son necesarios embarques por la derecha y
desembarque por la izquierda.
El símbolo ⊕ representa un ó-exclusivo.
4.5 Ejercicios
1. Construya una máquina de post que convierta un número entero positivo mayor
que 1 (expresado como una cadena de unos), en su equivalente en base 3.
2. Construya una máquina post que reste dos números enteros mayores que cero,
representados como secuencias de unos.
3. Sean A y B dos números enteros positivos mayores que cero, expresados como
cadenas de unos y tal que A >B. Construya una máquina de post que calcule
el cociente de la división A ÷ B.
4. Represente formalmente mediante reglas de producción los cuatro operadores
del 8-puzzle.
5. Solucione el problema de misioneros y caníbales, teniendo en cuenta la
formalización propuesta en el libro, que contiene las cinco reglas definidas y
con un intérprete con las siguientes características:
111
Modo de razonamiento: Hacia adelante
Estrategia de búsqueda: Primero-Profundidad
Estrategia de resolución de conflictos: Defina su propia estrategia
6. Represente y solucione mediante un sistema basado en reglas de producción,
el siguiente problema:
“Tenemos dos baldes de agua vacíos, uno con capacidad de 6 galones.
Teniendo en cuenta que podemos llenar cada uno de los baldes como
queramos, ¿cómo podríamos llenar el balde de los 8 galones exactamente
hasta la mitad? Supongamos que no existe ninguna marca de medidas en
ninguno de los baldes”.
Defina las características del intérprete con el que va a solucionar el problema.
7. Represente y solucione mediante un sistema basado en reglas de producción,
el siguiente problema:
“Tres hombres que viajan en compañía de sus esposas llegan a la margen
izquierda de un río. Allí se encuentra un bote en el que sólo caben dos
personas al mismo tiempo. Como los maridos son sobremanera celosos,
ninguna mujer puede quedarse en compañía de un hombre a menos que su
esposo esté presente. ¿Cómo hacen para cruzar el río y llegar a la margen
derecha?”
Defina las características del intérprete con el que va a solucionar el problema.
8. Represente y solucione mediante un sistema basado en reglas de producción,
el siguiente problema:
“Un pastor quiere cruzar un río acompañado de un lobo, una oveja y una col.
Desgraciadamente para él, el bote de que dispone sólo puede contener al
pastor y uno de los tres, animales o vegetal que lo acompañan. Pero lo peor es
que sin la presencia humana, la oveja se comería la col y el lobo se comería a
la oveja, y la oveja a la col. Sin embargo puede dejar tranquilamente al lobo y
la col. ¿Cómo hacen para cruzar el río?”
Defina las características del intérprete con el que va a solucionar el problema.
112
CAPÍTULO 5
Solución de Problemas por Resolución – Refutación
5.1 Cálculo de Predicados de Primer Orden
El cálculo de predicados de primer orden es un lenguaje que consta de:
ALFABETO: El alfabeto para el cálculo de predicados de primer orden consta de
predicados, variables, funciones, constantes, conectivos, cuantificadores y
delimitadores tales como paréntesis y comas.
CONSTANTES: Un símbolo constante, el componente más sencillo en la lógica de
predicados, se usa para representar un elemento específico del dominio. Este
elemento puede ser cualquier objeto señalado de interés, incluyendo los objetos
físicos y las abstracciones tales como ideas, etc. Ejemplo: Piolín.
VARIABLES: Un símbolo variable se emplea para representar un conjunto de
elementos del dominio sin especificar elemento alguno en concreto. Ejemplo:
canarios, colores.
FUNCIONES: Una función describe un elemento identificándolo como el resultado
único de la aplicación de una transformación entre otros elementos del dominio.
Los argumentos pueden ser cualquier término válido, donde un término es una
forma de identificar un elemento del dominio. Un término se define inductivamente
como una variable, una constante o una función. Por ejemplo: padre (J uan), una
invocación a una función que especifica el elemento único, en este caso un
hombre, que es el padre de J uan.
PREDICADOS: Los predicados se emplean para representar relaciones o
propiedades. Cuando se emplean para representar relaciones dentro del dominio,
ellos indican que un elemento se relaciona con otros en alguna forma específica.
Cuando se emplean para representar propiedades, ellos indican una clase de
objetos a la que pertenecen los elementos (constantes). Un predicado tiene valor
de verdadero si los elementos dados están relacionados de modo específico, o si
pertenecen a la clase que representa el predicado; y de falso si no están
relacionados o si no pertenecen a la clase. Por ejemplo Canario (Piolín) es un
predicado que señala que Piolín es un canario. El predicado Padre (J uan, María)
señala que J uan es el padre de María.
113
NOTACIÓN: De ahora en adelante adoptaremos la siguiente notación. Para las
constantes las primeras letras del alfabeto en mayúsculas, A, B, C, D, …
Para las variables las últimas letras del alfabeto en minúsculas, x, y, z, …
Para las funciones utilizaremos minúsculas como f, g, h, …
Para los predicados utilizaremos las mayúsculas como P, Q, R, S, …
Esto permite distinguir predicados unarios que expresan propiedades de
funciones. Por ejemplo, el predicado PADRE(J UAN) que expresa que J uan es
padre, de la función padre(J UAN) que devuelve el valor del objeto único que es el
padre de J uan.
CONECTORES: Sirven para combinar fórmulas produciendo fórmulas más
complejas. Los conectivos con sus respectivos símbolos son: y (∧), ó (∨), implica
(⇒), equivalente (⇔), negación (¬).
CUANTIFICADORES: La lógica proposicional es un subconjunto del cálculo de
predicados de primer orden, en el que excluimos el uso de variables. Para ayudar
a conformar dichas expresiones, empleamos cuantificadores que indican la
frecuencia con la cual los elementos del dominio se relacionan o tienen la
propiedad indicada.
El cuantificador universal se simboliza por ‘∀’, y se lee “Para todo”, “Para cada”,
“Para cualquiera”, u otras formas equivalentes. Y se utiliza para aseverar que una
fórmula es verdadera para todos los valores de la variable asociada. Así por
ejemplo, la expresión (∀x) (x es mortal), se lee “Para todo x, x es mortal”, o “Cada
x es mortal”, etc. En general, una expresión de la forma (∀x) P(x), en donde P(x)
denota una propiedad del elemento x, indica que todos los elementos del dominio
satisfacen la propiedad P.
El cuantificador existencial se simboliza por ‘∃’, y se lee “Existe por lo menos un”, o
“Para algún” o de otras formas equivalentes. Y se utiliza para aseverar que por lo
menos existe alguna asignación para la variable asociada, que hará que la fórmula
sea verdadera. Así por ejemplo, la expresión (∃x) (x es mortal), se lee “Existe por
lo menos un x tal que x es mortal”, o “Para algún x, x es mortal”.
En general una expresión de la forma (∃x) P(x), en donde P(x) denota una
propiedad del elemento x, indica que por lo menos un elemento del dominio
satisface la propiedad P.
INTERPRETACIONES: El valor de verdad de expresiones como (∀x) P(x) o (∃x) P(x),
depende de la interpretación, la cual incluye el dominio y el significado del
114
predicado P. Por ejemplo, si el dominio es el conjunto D={amarillo, azul, rojo}, el
enunciado (∀x) COLOR_PRIMARIO(x) es verdadero, porque cada uno de los
elementos del dominio es un color primario. Pero si el dominio es el conjunto
D={amarillo, azul, rojo, naranja, café}la afirmación (∀x) COLOR_PRIMARIO(x) es
falsa, porque el color Naranja o el color Café, aunque pertenecen al dominio no
son colores primarios. Sin embargo, la expresión (∃x) COLOR_PRIMARIO(x) es
verdadera.
El lenguaje: El lenguaje formal asociado con la lógica de predicados de primer
orden, es el conjunto de todas las fórmulas que se pueden construir legalmente a
partir del alfabeto de símbolos.
Los argumentos de las funciones son los términos (constantes, variables y
funciones).
Los argumentos de los predicados pueden ser inicialmente predicados y/o
términos. Cuando son únicamente términos, entonces se trata de una fórmula
atómica. Por ejemplo, la expresión AMA(J UAN, AMA(x, MARIA)) no es una
fórmula atómica pues la expresión AMA(x, MARIA) no es término, es un
predicado.
Una fórmula legalmente construida en el lenguaje se llama una fórmula bien
definida, y se define inductivamente como sigue:
1. Una fórmula atómica es una fórmula bien definida (FBD).
2. Si F y G son FBD, también lo son (¬F), (F∧G), (F∨G), (F⇒G).
3. Si F es una FBD y x es una variable, también son FBD, (∀x) (F(x)) y (∃x) (F(x))
4. Si F es una FBD también lo son (F), [F], {F}.
5. Unicamente son fórmulas bien definidas las expresiones que se obtienen
iterativamente por la aplicación de las reglas anteriores.
No son fórmulas bien definidas, expresiones como, (∀x) (P(A)) ó (∃f) (P(f (x)))
porque no se permite la cuantificación sobre los predicados o funciones. Es decir,
estamos en una lógica de primer orden. La expresión (∀x) [AMA(J UAN,AMA(x,
MARIA))], no es una fórmula bien definida, pero es equivalente a la fórmula bien
definida, (∀x) [AMA(x, MARIA)⇒ AMA(J UAN, x)].
El cálculo de predicados puede utilizarse como representación del conocimiento,
siguiendo estos pasos:
1. Formular el conocimiento como enunciados en español.
2. Separar los enunciados en sus partes constitutivas.
3. Escoger los símbolos para representar los elementos y relaciones en cada
componente.
115
4. Definir el dominio.
5. Construir fórmulas bien definidas, empleando los símbolos anteriores, que
representen los enunciados.
Ejemplo: Representar, “Nerón es un perro negro”. La estructura de esta frase se
clarifica mediante la estructuración de dos oraciones:
1. “Nerón es un perro” y
2. “Nerón es negro”.
La fórmula bien definida es en consecuencia: PERRO(NERÓN) ∧ NEGRO
(NERÓN).
Ejemplo: Representar, “Las águilas vuelan”. Si el dominio de la interpretación es
por ejemplo el conjunto de todas las aves, la representación será, (∀x)
(AGUILA(x)⇒VUELA (x)); sin embargo si el dominio es el conjunto de las águilas,
entonces cada elemento del conjunto del dominio tiene la propiedad de volar y la
representación será (∀x)(VUELA(x)).
Ejemplo: Representar, “Las ovejas les temen a los lobos”. Consideremos como
dominio el de todos los animales. El enunciado es equivalente a, “Todos las
ovejas les temen a todos los lobos” y lo podemos representar como
(∀x)[OVEJ A(x)⇒( (∀y)(LOBO(y)⇒ TEME(x, y)))], o también como (∀x)
(∀y)[OVEJ A(x)∧LOBO(y)⇒TEME(x, y)].
5.2 Forma Clausal
Estamos interesados en un sistema capaz de resolver problemas por resolución-
refutación.
El principio de resolución de Robinson, es una importante regla de inferencia
alternativa a las reglas clásicas como la de modus ponendo ponens; que puede
ser aplicada a una cierta clase de fórmulas bien definidas, llamadas cláusulas.
Una fórmula atómica y la negación de una fórmula atómica son llamadas literales.
Una cláusula es definida como una fórmula bien definida que consiste en una
disyunción de literales. El proceso de resolución cuando es aplicable, es aplicado
a un par de cláusulas padre para producir una cláusula derivada, llamada
resolvente.
116
Un tipo especial de cláusulas son las denominadas cláusulas de Horn, que son
aquellas en las que a lo sumo existe un literal positivo (una fórmula atómica no
negada).
Cualquier fórmula bien definida del cálculo de predicados de primer orden, puede
ser convertida en un conjunto de cláusulas. Existe un algoritmo que nos permite
tomar cualquier fórmula expresada en el lenguaje anterior y convertirla finalmente
en un conjunto de cláusulas. El proceso de conversión consiste en los siguientes
pasos:
1. Eliminar los símbolos de implicación: Hacer la sustitución de F(x
1
) ⇒ G(x
2
) por
¬F(x
1
)∨G(x
2
), en donde F(x
1
) y G(x
2
) son fórmulas bien definidas que hacen
parte de la expresión que estamos convirtiendo.
2. Reducir el alcance de los símbolos de negación: Deseamos que cada símbolo
de negación, “¬” se aplique a lo más a una fórmula atómica. Esto se logra
haciendo uso de las leyes de De Morgan,
¬(F(x)∨G(y)) =¬F(x) ∧ ¬G(y)
¬(F(x)∧G(y)) =¬F(x) ∨ ¬G(y),
y otras formas de equivalencia como la ley de doble negación, ¬(¬P(x))=P(x),
y expresiones como ¬(∀x)(P(x)) =(∃x)(¬P(x)) y ¬(∃x)(P(x)) =(∀x)(¬P(x)).
3. Estandarizar variables de los cuantificadores: cada cuantificador debe tener su
propia variable. Así que, en vez de escribir (∀x)[P(x)⇒ (∃x)Q(x)], escribimos
(∀x)[P(x)⇒ (∃y)Q(y)].
4. Eliminar el cuantificador existencial: Considere la fórmula bien definida,
(∀y)[(∃x)P(x, y)]. Se puede leer como “Para todo y existe un x (posiblemente
dependiendo de y) tal que P(x, y)”. Note que el cuantificador existencial está
dentro del alcance del cuantificador universal, lo que nos permite la posibilidad
de que la x que existe puede depender del valor de y. Esta dependencia sea
explícitamente definida por alguna función g(y), la cual lleva cada valor de y en
el x que “existe”. Tal función es llamada una función de Skölem. Si usamos
dicha función en lugar de la x que existe, podemos eliminar el cuantificador
existencial y escribir (∀y) P[g(y), y)].
Los símbolos usados en la función de Skölem deben ser nuevos en la fórmula
bien definida. Así por ejemplo [(∀w) Q(w)] ⇒ (∀x){ (∀y) {(∃z) [P(x,y,z) ⇒
(∀u)R(x,y,u,z)]}} se convierte en [(∀w) Q(w)] ⇒ (∀x){(∀y)[P(x,y,g(x,y))⇒
(∀u)R(x,y,u, g(x,y))]}.
117
Si el cuantificador existencial que está siendo eliminado no está dentro del
alcance de cualquier cuantificador universal, usamos una función de Skölem
sin argumentos, la cual es una constante. Así que (∃x)(P(x)) se convierte en
P(A), donde el símbolo constante A es usado para referirse a la entidad que
sabemos que existe, por ejemplo, (∃x) (PRESIDENTE_DE_COLOMBIA (x)).
Se elimina, el existencial, y expresamos, PRESIDENTE_DE-
COLOMBIA(ANDRÉS).
Es importante que A sea un nuevo símbolo constante y no uno usado en otras
fórmulas para referirse a entidades conocidas.
5. Convertir a forma normal prenex: consiste en trasladar los cuantificadores
universales al frente de las fórmulas bien definidas, de tal manera que el
alcance de cada cuantificador incluya la fórmula entera. La fórmula bien
definida resultante se dice que está en forma prenex. La fórmula sin los
cuantificadores se llama matriz.
6. Poner la matriz en forma conjuntiva normal: Cualquier matriz puede ser
reescrita como la conjunción de un conjunto finito de disyunciones de literales.
Tal matriz se dice que está en forma conjuntiva normal.
Podemos poner cualquier matriz en forma conjuntiva normal por repetido uso
de las leyes distributivas, F(x)∨(G(x)∧H(x)) = (G(x)∧H(x))∨F(x) =
(F(x)∨G(x))∧(F(x)∨ H(x)) o en forma más general, (F(x)∧G(x))∨(H(x)∧J (x)) =
(F(x)∨H(x))∧(F(x)∨J (x))∧(G(x)∨H(x))∧(G(x)∨J (x)).
7. Eliminación de cuantificadores universales: Podemos eliminar explícitamente
las ocurrencias de los cuantificadores universales y asumir, por convención,
que todas las variables en la matriz son universalmente cuantificadas.
8. Eliminar símbolos conectivos “∧”: Podemos eliminar los símbolos “∧”,
reemplazando expresiones de la forma F(x)∧G(x) por F(x), G(x), es decir que
reemplazamos los símbolos “∧” por comas “,”.
9. Renombrar variables: Los símbolos de variables se pueden renombrar de tal
manera que no aparezcan en más de una cláusula.
Por ejemplo, consideremos la siguiente expresión en lógica estándar,
(∀x){P(x)⇒{(∀y)[P(y)⇒P(f (x,y))] ∧ ¬(∀y)[Q(x,y)⇒P(y)]}}; apliquemos el proceso
de conversión al formato de lógica clausal:
1. Eliminar los símbolos de implicación:
(∀x){¬P(x)∨{(∀y)[P(y)⇒P(f (x,y))] ∧ ¬(∀y)[Q(x,y)⇒P(y)]}}
118
(∀x){¬P(x)∨{(∀y)[¬P(y)∨P(f (x,y))] ∧ ¬(∀y)[Q(x,y)⇒P(y)]}}
(∀x){¬P(x)∨{(∀y)[¬P(y)∨P(f (x,y))] ∧ ¬(∀y)[¬Q(x,y)∨P(y)]}}
2. Reducir alcance de los símbolos de negación:
(∀x){¬P(x)∨{(∀y)[¬P(y)∨P(f (x,y))] ∧ (∃y)[Q(x,y)∧¬P(y)]}}
3. Estandarizar variables de los cuantificadores:
(∀x){¬P(x)∨{(∀y)[¬P(y)∨P(f (x,y))] ∧ (∃z)[Q(x,z)∧¬P(z)]}}
4. Eliminar cuantificadores existenciales: En este caso tenemos un cuantificador
existencial, que está dentro del alcance del cuantificador universal (∀x), por lo
tanto eliminaremos (∃z) y reemplazamos la variable z por la función de Skölem
g(x).
(∀x){¬P(x)∨{(∀y)[¬P(y)∨P(f (x,y))] ∧ [Q(x, g(x))∧¬P(g(x))]}}
5. Convertir a forma normal prenex:
(∀x) (∀y){¬P(x)∨{[¬P(y)∨P(f (x,y))] ∧ [Q(x, g(x))∧¬P(g(x))]}}
6. Poner la matriz en forma conjuntiva normal:
(∀x) (∀y){[¬P(x)∨¬P(y)∨P(f (x,y))] ∧ (¬P(x) ∨ [Q(x, g(x))∧¬P(g(x))])}
(∀x) (∀y){[¬P(x)∨¬P(y)∨P(f (x,y))] ∧ [¬P(x) ∨ [Q(x, g(x))] ∧ [¬P(x) ∨ ¬P(g(x))]}
7. Eliminación de los cuantificadores universales:
{[¬P(x)∨¬P(y)∨P(f (x,y))] ∧ [¬P(x) ∨ [Q(x, g(x))] ∧ [¬P(x) ∨ ¬P(g(x))]}
8. Eliminar los símbolos conectivos “∧”: Generamos el siguiente conjunto de
cláusulas,
¬P(x)∨¬P(y)∨P(f (x,y)), ¬P(x) ∨ Q(x, g(x)), ¬P(x) ∨ ¬P(g(x))
9. Renombrar variables:
¬P(x)∨¬P(y)∨P(f (x,y)),
¬P(x
1
) ∨ Q(x
1
, g(x
1
)),
¬P(x
2
) ∨ ¬P(g(x
2
))
Otro ejemplo de conversión de lógica estándar a lógica clausal, es el siguiente:
Consideremos la expresión,
119
¬(∃x){P(x)⇒{(∃y)[P(y)⇒P(f(x,y))]∧ ¬ (∃y)[¬P(y)⇒¬Q(x,y)]}},
apliquemos el proceso de conversión al formato de lógica clausal:
1. Eliminar los símbolos de implicación:
¬(∃x){¬P(x)∨{(∃y)[P(y)⇒P(f(x,y))]∧ ¬ (∃y)[¬P(y)⇒¬Q(x,y)]}}
¬(∃x){¬P(x)∨{(∃y)[¬P(y)∨P(f(x,y))]∧ ¬ (∃y)[¬P(y)⇒¬Q(x,y)]}}
¬(∃x){¬P(x)∨{(∃y)[¬P(y)∨P(f(x,y))]∧ ¬ (∃y)[P(y)∨¬Q(x,y)]}}
2. Reducir el alcance de los símbolos de negación:
(∀x){P(x)∧{(∀y)[P(y)∧¬P(f(x,y))]∨ (∃y)[P(y)∨¬Q(x,y)]}}
3. Estandarizar variables de los cuantificadores:
(∀x){P(x)∧{(∀y)[P(y)∧¬P(f(x,y))]∨ (∃z)[P(z)∨¬Q(x,z)]}}
4. Eliminar cuantificadores existenciales: En este caso tenemos un cuantificador
existencial que está dentro del alcance del cuantificador universal (∀x), y por lo
tanto eliminamos (∃z) y reemplazamos la variable z por la función de Skölem
g(x)
(∀x){P(x)∧{(∀y)[P(y)∧¬P(f(x,y))]∨[P(g(x))∨¬Q(x, g(x))]}}
5. Convertir a forma normal prenex:
(∀x)(∀y){P(x)∧{[P(y)∧¬P(f(x,y))]∨[P(g(x))∨¬Q(x, g(x))]}}
6. Poner la matriz en forma conjuntiva normal:
(∀x)(∀y){P(x)∧{([P(y)∨P(g(x))]∨[P(y)∧¬Q(x,g(x))])∧([¬P(f(x,y))∨P(g(x))]
∨[¬P(f(x,y))∨¬Q(x, g(x))])}}
(∀x)(∀y){P(x)∧{[P(y)∨P(g(x))∨P(y)∧¬Q(x,g(x))]∧[¬P(f(x,y))∨P(g(x))∨¬P(f(x,y))∨
¬Q(x, g(x))]}}
(∀x)(∀y){P(x)∧{[P(y)∨P(g(x))∨¬Q(x,g(x))]∧[¬P(f(x,y))∨P(g(x))∨¬Q(x, g(x))]}}
(∀x)(∀y){P(x)∧[P(y)∨P(g(x))∨¬Q(x,g(x))]∧[¬P(f(x,y))∨P(g(x))∨¬Q(x, g(x))]}
7. Eliminación de los cuantificadores universales:
120
{P(x)∧[P(y)∨P(g(x))∨¬Q(x,g(x))]∧[¬P(f(x,y))∨P(g(x))∨¬Q(x, g(x))]}
8. Eliminar los símbolos conectivos “∧”: Generamos el siguiente conjunto de
cláusulas,
P(x), P(y)∨P(g(x))∨¬Q(x,g(x)), ¬P(f(x,y))∨P(g(x))∨¬Q(x, g(x))
9. Renombrar variables:
P(x),
P(y)∨P(g(x
1
))∨¬Q(x
1
,g(x
1
)),
¬P(f(x
2
,y
1
))∨P(g(x
2
))∨¬Q(x
2
, g(x
2
))
5.3 Unificación y Resolución General
La unificación es el proceso formal de determinar si dos literales se pueden
convertir para emparejarse idénticamente. Es decir, la unificación es a las
cláusulas lo que la equiparación es a las reglas.
El proceso de unificación hace énfasis en la sustitución de los términos (variables,
constantes, funciones) por variables en los literales. Es decir, sustituimos
variables por términos.
Una instancia de sustitución de un literal resulta de tal sustitución. Así que cuatro
instancias de P[x, f(y), B] son: P[z, f(w), B], P[x, f(A), B], P[g(z),f(A),B], P[C, f(A),B]
La primera sustitución es llamada una variante alfabética del literal original porque
hemos efectuado un simple cambio de variables. La última es una instancia base
o fundamental, puesto que ninguno de los términos en el literal contiene variables.
Podemos representar cualquier sustitución por un conjunto de pares ordenados,
S={t
1
/v
1
,…, t
n
/v
n
}. El par t
i
/v
i
significa que el termino t
i
sustituye a la variable v
i
.
Una variable no puede ser reemplazada por un término que contiene la misma
variable. Las sustituciones del ejemplo anterior son:
S
1
={z/x, w/y}, S
2
={A/y}, S
3
={g(z)/x, A/y}, S
3
={C/x, A/y}
Para denotar una instancia de sustitución de una expresión E, usando una
sustitución S, escribimos ES. Así que, P[z, f(w), B] = P[x, f(y), B] S
1
. La
composición de dos sustituciones S
1
y S
2
, que es obtenida aplicando S
2
a los
términos S
1
y agregando pares de S
2
que tengan variables que no ocurran entre
las variables S
1
, es denotada por S
1
S
2
.
121
Así que {g(x,y)/z}{A/x,B/y,C/w,D/z} ={g(A,B)/z,A/x,B/y,C/w}. La composición de
asociaciones es asociativa y en general no conmutativa.
Si una sustitución S es aplicable y es aplicada a todo miembro de un conjunto {E
i
}
de expresiones, denotamos el conjunto de instancias de sustituciones por {E
i
}S.
Decimos que el conjunto {E
i
} es unificable si existe una sustitución S tal que
E
1
S=E
2
S=… En tal caso, decimos que S es un unificador de {E
i
}. Por ejemplo,
S={A/x,B/y}unifica {P[x,f(y),B], P[x,f(B),B]}, para producir {P[A,f(B),B}.
El procedimiento de unificación puede ser visto informalmente como un proceso
de emparejamiento de los elementos en dos listas, para determinar si hay algún
conjunto de sustituciones que harían las listas idénticas.
Este proceso opera de la siguiente manera:
1. Represente cada predicado como una lista en que el símbolo de predicados es
el primer elemento, que está seguido por los argumentos del predicado en
orden.
2. Abandone si las listas no tienen la misma longitud.
3. Haga una comparación por parejas de los elementos en la lista mediante el
empleo de las siguientes reglas:
• Los símbolos de predicados, los símbolos de funciones y las constantes
deben emparejar exactamente.
• En cuanto a las variables establezca una pareja por sustitución.
Específicamente, cuando encuentre una variable, reemplácela, y todas las
subsiguientes ocurrencias de ella en la lista, con el correspondiente
elemento a partir de la otra lista.
La única restricción en este emparejamiento es que una variable no se puede
reemplazar por un término que contenga la misma variable (prevenir ciclos
infinitos).
4. Los dos predicados se pueden unificar si todos los elementos se emparejan.
Note que puede ser necesario invocar la rutina recursivamente para evaluar la
lista de elementos que están en listas anidadas.
Supongamos que tenemos dos cláusulas base (sin variables), P
1
∨…∨ P
m
y
¬P
1
∨Q
2
∨…Q
n
. Asumimos que todas las P
i
y Q
j
son distintas. Una de las
cláusulas tiene un literal que es exactamente la negación de un literal en la otra
cláusula. De esas dos cláusulas padre podemos inferir una nueva cláusula
llamada la resolvente de las dos, que es computada tomando la disyunción de las
dos cláusulas y eliminando los pares complementarios P
1
, ¬P
1
.
122
Por ejemplo:
¬R∨S , ¬S∨T
Cláusula 1 Cláusula 2
¬R∨T
Resolvente
Otros ejemplos son:
P , ¬P
Cláusula 1 Cláusula 2
∅ (Contradicción)
Resolvente
Para aplicar resolución a cláusulas que contienen variables necesitamos encontrar
una sustitución que pueda ser aplicada a las cláusulas padre, así que ellas
contengan literales complementarios. Sean las cláusulas padres {L
i
} y {M
i
} y
asumamos que las variables que ocurren en estas dos cláusulas han sido
estandarizadas aparte. Supongamos que {l
i
}y {m
i
}⊆{M
i
}tal que un unificador S
existe para la unión de {l
i
}y {¬m
i
}. Decimos que las dos cláusulas {L
i
}y {M
i
}se
resuelven y que la nueva cláusula, {{L
i
}- {l
i
}}S ∪ {{M
i
}- {m
i
}}. S es una resolvente
de las dos cláusulas.
Si las dos cláusulas se resuelven, ellas pueden tener más de una resolvente
porque puede haber más de una forma de escoger {l
i
}y {m
i
}. En cualquier caso
tienen a lo sumo un número finito de resolventes.
Por ejemplo, si {L
i
} ={P[x, f(A)]∨ P[x,f(y)]∨Q(y)}, {M
i
} ={¬P[z, f(A)]∨¬Q(z)} con
{l
i
}={P[x, f(A)], P[x,f(y)]}y {m
i
}={¬P[z, f(A)]}obtenemos la resolvente Q(A)∨¬Q(x)
(Figura 5.1).
Cláusula 1 Cláusula 2
P[x, f(A)] ∨ P[x,f(y)]∨ Q(y) , ¬P[z, f(A)] ∨ ¬Q(z)
P[x,f(y)]∨ Q(y) ∨ ¬Q(x) P[x,f(A)] ∨ Q(A) ∨ ¬ Q(x)
Resolvente 1 Resolvente 2
Q(A) ∨ ¬Q(x) P[x, f(A)] ∨ P[x,f(y)] ∨ ¬P[y,f(A)]∨
S={x/z}
S={x/z, A/y}
S={x/z, A/y}
S={y/z}
123
Resolvente 3 Resolvente 4
Figura 5.1
Podemos pensar en un sistema para producir refutaciones por resolución. La
base de conocimiento es un conjunto de cláusulas, la regla de inferencia es una
resolución y el modo de razonamiento es por contradicción. El aplicar la
resolución a pares de cláusulas produce una cláusula derivada. La condición de
terminación para este sistema es un test para ver si la base de conocimiento
contiene la cláusula vacía.
Por ejemplo, consideremos las siguientes especificaciones en español.
1. Todo león es un felino
2. Los perros no son felinos
3. Algunos perros son sarnosos
Deseamos probar la proposición:
4. Algunos que son sarnosos no son leones.
Estas especificaciones las podemos expresar en cálculo de predicados de primer
orden como:
1. (∀x)[L(x)⇒F(x)], L(x): LEON(x), F(x): FELINO(x)
2. (∀x)[P(x)⇒¬F(x)], P(x): PERRO(x)
3. (∃x)[P(x)∧S(x)], S(x): SARNOSO(x)
4. (∃x)[S(x)∧¬L(x)]
Debemos hacer la conversión de cada una de esas expresiones en lógica
estándar a lógica clausal.
(∀x)[L(x)⇒F(x)]
1. Eliminamos los símbolos de implicación: (∀x)[¬L(x)∨F(x)]
2. Reducir el alcance de los símbolos de negación: no aplica
3. Estandarizar variables de los cuantificadores: no aplica
4. Eliminar cuantificadores existenciales: no aplica
5. Convertir a forma normal prenex: ya está en forma normal prenex.
6. Poner la matriz en forma conjuntiva normal: ya está en forma conjuntiva
normal.
7. Eliminación de los cuantificadores universales: ¬L(x)∨F(x)
8. Eliminar símbolos conectivos “∧”: no aplica
9. Renombrar variables: ¬L(x)∨F(x) es la única cláusula.
(∀x)[P(x)⇒¬F(x)]
124
1. Eliminar los símbolos de implicación: (∀x)[¬P(x)∨¬F(x)]
2. Reducir el alcance de los símbolos de negación: no aplica
3. Estandarizar variables de los cuantificadores: Hay un solo cuantificador con su
respectiva variable.
4. Eliminar cuantificadores existenciales: no aplica
5. Convertir a forma normal prenex: ya está en forma normal prenex.
6. Poner la matriz en forma conjuntiva normal: ya está en forma conjuntiva
normal.
7. Eliminación de los cuantificadores universales: ¬P(x)∨¬F(x)
8. Eliminar símbolos conectivos “∧”: no aplica
9. Renombrar variables: ¬P(x
1
)∨¬F(x
1
) es la única cláusula.
(∃x)[P(x)∧S(x)]
1. Eliminar los símbolos de implicación: no aplica.
2. Reducir el alcance de los símbolos de negación: no aplica
3. Estandarizar variables de los cuantificadores: Hay un solo cuantificador con su
respectiva variable.
4. Eliminar cuantificadores existenciales: P(A)∧S(A)
5. Convertir a forma normal prenex: no aplica.
6. Poner la matriz en forma conjuntiva normal: ya está en forma conjuntiva
normal.
7. Eliminación de los cuantificadores universales: no aplica
8. Eliminar símbolos conectivos “∧”:P(A), S(A)
9. Renombrar variables: no aplica.
La proposición (4), (∃x)[S (x)∧¬L(x)] se niega y se lleva a la forma clausal:
(∀x)[¬ S(x) ∨ L(x)]
1. Eliminar los símbolos de implicación: no aplica.
2. Reducir el alcance de los símbolos de negación: no aplica
3. Estandarizar variables de los cuantificadores: no aplica.
4. Eliminar cuantificadores existenciales: no aplica.
5. Convertir a forma normal prenex: ya está en forma normal prenex.
6. Poner la matriz en forma conjuntiva normal: ya está en forma conjuntiva
normal.
7. Eliminación de los cuantificadores universales: ¬ S(x) ∨ L(x)
8. Eliminar símbolos conectivos “∧”: no aplica
9. Renombrar variables: ¬ S(x
2
) ∨ L(x
2
)
El conjunto final de cláusulas es:
¬L(x)∨F(x),
125
¬P(x
1
)∨¬F(x
1
),
P(A),
S(A),
¬ S(x
2
) ∨ L(x
2
)
Dicho conjunto es la base de conocimiento.
Para realizar las resoluciones entre estas cláusulas se pueden seguir diversas
estrategias, las cuales en general utilizan una estructura llamada grafo de
derivación. Los nodos en tal grafo son etiquetados por cláusulas; inicialmente hay
un nodo para toda cláusula en la base de conocimiento.
Cuando dos cláusulas C
i
y C
j
producen una resolvente r
ij
con arcos enlazados
tanto a C
i
como C
j
.
Una refutación por resolución puede ser representada como un árbol de refutación
(dentro del grafo de derivación) teniendo un nodo raíz etiquetado por NIL.
La estrategia de control busca una contradicción expandiendo el grafo de
derivación hasta que se produzca un árbol con un nodo raíz etiquetado con la
cláusula vacía NIL, símbolo de la contradicción.
5.3.1 Estrategia de Amplitud
En la estrategia de amplitud, todas las resolventes de primer nivel son computadas
primero, luego las de segundo nivel, y etc. (Una resolvente de primer nivel es una
entre dos cláusulas en el conjunto base. Una resolvente i-ésimo nivel es una
cuyo padre más profundo es una resolvente de nivel (i-1))
Retomando nuevamente nuestro ejemplo, con cláusulas base, ¬L(x)∨F(x),
¬P(x
1
)∨¬F(x
1
), P(A), S(A),¬ S(x
2
) ∨ L(x
2
); la Figura 5.2 muestra el grafo de
derivación producido por una estrategia de amplitud.
Cláusulas
originales
S(A), ¬S(x
2
)∨L(x
2
), ¬L(x)∨F(x), ¬P(x
1
)∨¬F(x
1
), P(A)
Resolventes
de primer nivel
L(A) ¬S(x)∨F(x) ¬L(x)∨¬P(x) ¬F(A)
Resolvente de
segundo nivel
F(A) ¬P(A) F(A) ¬S(x) ∨¬P(x) ¬L(A)
Resolvente de
tercer nivel
NIL
Figura 5.2
126
El árbol de refutación asociado (Figura 5.3) es:
S(A), ¬S(x
2
)∨L(x
2
), ¬L(x)∨F(x), ¬P(x
1
)∨¬F(x
1
), P(A)
L(A) ¬L(x)∨¬P(x)
¬L(A)
NIL
Figura 5.3
La estrategia de amplitud es completa, es decir su uso conduce a un
procedimiento que llegará a encontrar efectivamente una contradicción, siempre
que ésta exista.
En Inteligencia Artificial, el que una estrategia sea completa no es tan importante
como el que encuentre refutaciones eficientemente. La estrategia de amplitud es
completa, pero muy ineficiente.
5.3.2 Estrategia de Conjunto Soporte
La estrategia del conjunto soporte consiste en obtener las resolventes, uno de
cuyos padres sea la cláusula negación de la fórmula bien definida objetivo, o
alguna de las resolventes descendientes de ella (que constituye el conjunto de
soporte).
Se puede probar que si existe una refutación, existe también una refutación
obtenida con esta estrategia. Las estrategias de conjunto soporte son
generalmente más eficientes que las que exploran a lo ancho sin restricciones.
En un proceso de refutación con esta estrategia, cada resolución sugiere un paso
de razonamiento hacia atrás ya que usa la cláusula negación de la fórmula bien
definida objetivo o sus descendientes. Cada resolvente obtenida así, corresponde
a un objetivo parcial de un sistema de reglas de producción razonando hacia atrás
(los razonamientos hacia adelante corresponden a resoluciones entre cláusulas
que no descienden del teorema que se desea probar). Para nuestro ejemplo
(Figura 5.4), el grafo es:
127
Cláusulas
originales
¬S(x
2
)∨L(x
2
), S(A), ¬L(x)∨F(x), ¬P(x
1
)∨¬F(x
1
), P(A)
Resolventes
de primer nivel
L(A) ¬S(x)∨F(x)
Resolvente de
segundo nivel
F(A) F(A) ¬S(x) ∨¬P(x)
Resolvente de
tercer nivel
¬P(A) ¬P(A) ¬P(A) ¬S(A)
Resolvente de
cuarto nivel
NIL
Figura 5.4
El árbol de refutación asociado (Figura 5.5) es:
¬S(x
2
)∨L(x
2
), ¬L(x)∨F(x),
¬S(x)∨F(x) ¬P(x
1
)∨¬F(x
1
),
¬S(x) ∨¬P(x) P(A)
¬S(A) S(A)
NIL
Figura 5.5
Esta estrategia incrementa la profundidad a la que se produce la cláusula vacía,
pero compensa con el menor crecimiento del conjunto de cláusulas.
5.3.3 Estrategia de Entrada Lineal
Una refutación de entrada lineal es una en la que cada resolvente tiene al menos
uno de sus padres en el conjunto básico inicial.
En el primer nivel la figura del grafo de derivación coincide con la de amplitud. En
los niveles siguientes la estrategia lineal reduce el número de cláusulas
producidas.
Para nuestro ejemplo (Figura 5.6), el grafo producido es:
128
Cláusulas
originales
S(A), ¬S(x
2
)∨L(x
2
), ¬L(x)∨F(x), ¬P(x
1
)∨¬F(x
1
), P(A)
Resolventes
de primer nivel
L(A) ¬S(x)∨F(x) ¬L(x)∨¬P(x) ¬F(A)
Resolvente de
segundo nivel
F(A) F(A) ¬S(x)∨ ¬P(x) ¬S(x)∨ ¬P(x) ¬L(A)
Resolvente de
tercer nivel
¬P(A) ¬P(A) ¬S(A)
Resolvente de
cuarto nivel
NIL
Figura 5.6
El árbol de refutación asociado (Figura 5.7) es:
¬L(x)∨F(x) ¬P(x
1
)∨¬F(x
1
)
¬L(x)∨ ¬P(x) P(A)
¬L(A) ¬S(x
2
)∨L(x
2
)
¬S(A) S(A)
NIL
Figura 5.7
La estrategia de entrada lineal no es completa. Es decir, en ciertos casos, existe
una refutación, pero no una obtenida con la estrategia de entrada lineal. De la
estrategia de entrada lineal existen varias alternativas, También hay otras
estrategias no consideradas aquí.
Todas estas estrategias concluyen de momento en el árbol de refutación. Este
árbol es muy importante, no sólo porque pone de manifiesto la existencia de una
contradicción (lo que permite concluir que el teorema original es verdadero), sino
porque es la base del árbol de demostración que veremos más adelante y que es
la base de sistemas capaces no sólo de demostrar teoremas, sino además de
responder preguntas, como lo veremos a continuación.
5.4 Obtención de Respuestas Mediante Refutaciones por Resolución
129
Consideremos el siguiente ejercicio.
“Si todos los elefantes comen maní, y Dumbo es un elefante, ¿qué come
Dumbo?”. El problema planteado a un ser humano es trivial, pero para ser
resuelto por un computador es muy interesante. La idea es automatizar el proceso
de refutación por resolución y con base en ello tener un sistema de obtención de
respuestas. Esto es lo que hace un lenguaje como Prolog.
Volviendo a nuestro ejercicio-ejemplo, se ve con bastante claridad que el problema
especifica dos hechos y después formula una pregunta, cuya respuesta puede
deducirse presumiblemente de esos hechos.
Los hechos pueden traducirse a fórmulas bien definidas del cálculo de predicados
de primer orden:
H
1
: (∀x)[ELEFANTE(x) ⇒ COME(x,MANI)]
H
2
: ELEFANTE(DUMBO)
La pregunta, ¿qué come Dumbo? Podrá contestarse si se prueba que la fórmula
bien definida, ¿(∃x)COME(DUMBO,x)? se sigue lógicamente de los hechos, y
entonces se encuentra una particularización del x “que existe”.
La idea clave es convertir la pregunta en una fórmula bien definida objetivo que
contenga un cuantificador existencial, tal que la variable cuantificada
existencialmente represente una respuesta a la pregunta.
Convertimos las fórmulas bien definidas que representan los hechos y la negación
de la fórmula bien definida objetivo, a cláusulas:
(∀x)[ELEFANTE(x) ⇒ COME(x,MANÍ)].
Sea E(x): ELEFANTE(x), C(x, MANÍ): COME(x, MANÍ)
El proceso de conversión de esta fórmula nos generará la cláusula,
C
1
: ¬E(x)∨C(x, MANÍ)
La fórmula, ELEFANTE(DUMBO) es una cláusula, en consecuencia,
C
2
: E(Dumbo)
La negación de (∃x)COME(DUMBO,x) es una fórmula,(∀x)¬COME(DUMBO,x)
que se convierte en la cláusula,
C
3
: ¬C(DUMBO,y)
130
Aplicando una estrategia en amplitud (Figura 5.8), tenemos:
Cláusulas
originales
¬E(x)∨C(x,MANI), E(DUMBO), ¬C(DUMBO,y)
Resolventes
de primer nivel
C(DUMBO,MANI) ¬E(DUMBO)
Resolvente de
segundo nivel
NIL...
Figura 5.8
El árbol de refutación correspondiente (Figura 5.9), es:
¬C(DUMBO,y) ¬E(x)∨C(x,MANI)
¬E(DUMBO) E(DUMBO)
NIL...
Figura 5.9
La extracción de respuestas implica la conversión de un árbol de refutación (con
NIL en la raíz) en un árbol de demostración con cierta sentencia en su raíz, que
puede ser utilizada como respuesta.
Como esta conversión se hace sustituyendo cada una de las cláusulas en que se
convierte la negación de la fórmula bien definida objetivo por una tautología, el
árbol de demostración obtenido es una demostración por resolución de que la
sentencia que figura en la raíz se sigue lógicamente de los axiomas tan sólo. Por
tanto, el árbol de demostración en que se convierte el de refutación, justifica, él
mismo, el proceso de extracción.
El método de conversión consiste en:
1. Añadir a cada cláusula de las que origina la negación de la fórmula bien
definida objetivo, su propia negación.
2. Realizar las mismas resoluciones que antes, hasta que se obtenga alguna
cláusula en la raíz.
3. La cláusula de la raíz es la respuesta.
En nuestro ejemplo (Figura 5.10), el árbol de demostración es:
131
¬C(DUMBO,y) ∨C(DUMBO,y) ¬E(x)∨C(x,MANI)
¬E(DUMBO)∨C(DUMBO,MANI) E(DUMBO)
C(DUMBO,MANI)
Figura 5.10
Este método es válido sólo para preguntas con cuantificadores existenciales
únicamente, ya que al negarlos se convierten en universales que al pasar a la
forma clausal se eliminan.
En el caso de que la pregunta lleve cuantificadores universales, se convierten en
existenciales que al pasar a la forma clausal generan funciones de Skölem.
El tratamiento de esas funciones obliga a realizar algunas modificaciones.
Resumiendo, podemos percibir todo el proceso de obtención de respuestas
mediante refutaciones por resolución, como constando de:
A. Partimos de unas especificaciones y de una pregunta en español.
B. Convertimos esas especificaciones y esa pregunta a fórmulas bien definidas
del cálculo de predicados.
C. Convertimos las fórmulas anteriores a la forma clausal teniendo en cuenta que
la fórmula que representa la pregunta, primero se niega.
D. Construimos un demostrador de teoremas. Esto implica generar un grafo de
derivación asociado a alguna de las estrategias y a la extracción del respectivo
árbol de refutación.
E. Obtenemos la respuesta. Esto se logra generando el árbol de demostración
asociado al árbol de refutación anterior.
Ahora consideremos un ejemplo que ilustre todo el proceso:
A. Especificaciones: Consideremos los siguientes hechos:
H
1
: “Pedro es el director del departamento de ventas”.
H
2
: “Pedro y María están casados”.
Y la siguiente regla:
R: “Si alguien es director de un departamento entonces trabaja en ese
departamento”.
Queremos responder la siguiente pregunta,
132
P: ¿Existe alguien que esté casado con María y trabaje en el departamento de
ventas?
B. Fórmulas bien definidas: Las fórmulas bien definidas del cálculo de predicados
de primer orden asociadas a H
1
, H
2
, R, P son,
H
1
: D(PEDRO, VENTAS) , D(x,y): x es el director del departamento y.
H
2
: C(PEDRO, MARÍA), C(x,y): x está casado con y.
R: (∀x) (∀y)[D(x,y)⇒T(x,y)], T(x,y): x trabaja en y.
P: (∃x)[C(x, MARÍA)∧T(x, VENTAS)]
C. Conversión a cláusulas: D(PEDRO, VENTAS) y C(PEDRO, MARÍA) son
cláusulas. Podemos simplificar aún más la representación, escribiendo estas
cláusulas como, D(P,V) y C(P,M), en donde P representa a PEDRO, la V a
VENTAS y la M a MARÍA. Para la fórmula (∀x) (∀y)[D(x,y)⇒T(x,y)] realizamos
el proceso de conversión:
1. Eliminar los símbolos de implicación:
(∀x) (∀y)[¬D(x,y)∨T(x,y)]
2. Reducir el alcance de los símbolos de negación: No aplica.
3. Estandarizar variables de los cuantificadores: Cada cuantificador posee
su propia variable.
4. Eliminar cuantificadores existenciales: No aplica.
5. Convertir a forma normal prenex: Ya está en forma normal prenex.
6. Poner la matriz en forma conjuntiva normal: Ya está en forma conjuntiva
normal.
7. Eliminación de los cuantificadores universales:
¬D(x,y)∨T(x,y)
8. Eliminar símbolos conectivos “∧”: No aplica
9. Renombrar variables:
¬D(x,y)∨T(x,y)
La fórmula (∃x)[C(x,MARÍA)∧T(x,VENTAS)], la simplificamos, (∃x)[C(x,M)∧T(x,
V)], la negamos, (∀x)[¬ C(x,M)∨¬T(x, V)] y la convertimos a la forma clausal:
1. Eliminar los símbolos de implicación: No aplica.
2. Reducir el alcance de los símbolos de negación: No aplica.
3. Estandarizar variables de los cuantificadores: Hay un solo cuantificador
con su respectiva variable.
4. Eliminar cuantificadores existenciales: No aplica.
5. Convertir a forma normal prenex: Ya está en forma normal prenex.
6. Poner la matriz en forma conjuntiva normal: Ya está en forma conjuntiva
normal.
133
7. Eliminación de los cuantificadores universales:
¬ C(x,M)∨¬T(x, V)
8. Eliminar símbolos conectivos “∧”: No aplica
9. Renombrar variables:
¬ C(x
1
,M)∨¬T(x
1
,V)
El conjunto básico de cláusulas es entonces:
¬D(x,y)∨T(x,y),
¬ C(x
1
,M)∨¬T(x
1
,V),
D(P,V),
C(P,M)
D. Construcción del demostrador de teoremas: Aplicando una estrategia de
conjunto de soporte, tenemos el siguiente grafo de derivación (Figura 5.11)
Cláusulas
originales
¬C(x
1
,M)∨¬T(x
1
,V), ¬D(x,y)∨T(x,y), C(P,M), D(P,V),
Resolventes de
primer nivel
¬C(x,M)∨¬D(x,V) ¬T(P,V)
Resolvente de
segundo nivel
¬D(P,V) ¬C(P,M)
Resolvente de
tercer nivel
NIL...
Figura 5.11
Es suficiente con obtener un sólo NIL, aunque se puedan obtener varios, por
ej. En este caso también se puede obtener NIL a partir de C(P,M) y ¬C(P,M).
El árbol de refutación asociado (Figura 5.12) es,
¬C(x
1
,M)∨¬T(x
1
,V) ¬D(x,y)∨T(x,y)
¬C(x,M)∨¬D(x,V) C(P,M)
¬D(P,V) D(P,V)
NIL
Figura 5.12
134
E. Obtención de la respuesta: Generamos el árbol de demostración a partir del
árbol de refutación (Figura 5.13).
¬C(x
1
,M)∨¬T(x
1
,V)∨(C(x
1
,M)∧T(x
1
,V)) ¬D(x,y)∨T(x,y)
¬C(x,M)∨¬D(x,V)∨(C(x
1
,M)∧T(x
1
,V)) C(P,M)
¬D(P,V)∨ (C(P,M)∧T(P,V)) D(P,V)
C(P,M)∧T(P,V)
Figura 5.13
La raíz del árbol nos permite obtener la respuesta, ya que nos dice que Pedro está
casado con María y que Pedro trabaja en Ventas. ¿Existe alguien que esté
casado con María y trabaje en el departamento de Ventas? La respuesta es sí,
ese alguien es Pedro.
5.5 Ejercicios
1. Diga si las siguientes expresiones son fórmulas bien definidas del cálculo de
predicados de primer orden. J ustifique su respuesta.
a. (∃x){(∀y)[(P(x,y)∧Q(x,y))⇒R(x)]}
b. (∃P)(P(f(A)))
c. ¬(∀g){(∃x)[P(x)∨R(g(x))]}
d. ¬P[A,g(A,B,A)]
e. ¬f(A)
f. f[P(A)]
g. {¬[P(A)⇒P(B)]}⇒P(B)
h. A∨¬⇒(∀f)
i. Q{f(A),[P(B)⇒Q(C)]}
2. Represente las siguientes expresiones mediante fórmulas bien definidas del
cálculo de predicados de primer orden:
a. Todo perro ha mordido a algún cartero.
b. Todo perro muerde a todo cartero.
c. Algún perro muerde a algún cartero.
d. Algún perro muerde a todo cartero.
135
e. Algún cartero es mordido por todo perro.
3. Convierta las siguientes fórmulas bien definidas a la forma clausal:
a. (∀x)[P(x)⇒ P(x)]
b. {¬{(∀x)P(x)}}⇒ (∃x)[¬P(x)]
c. ¬(∀x){P(x)⇒{(∀y)[P(y)⇒P(f(x,y))]∧¬(∀y)[Q(x,y)⇒P(y)]}}
d. (∀x)(∃y){[P(x,y)⇒Q(x,y)]∨[Q(x,y)⇒S(x,y)]}⇒ (∃x)(∀y)[P(x,y)⇒S(x,y)]
4. Encontrar una refutación por entrada lineal para el siguiente conjunto de
cláusulas:
¬P∨¬Q∨R, ¬S∨T, ¬T∨P, S, ¬R, ¬S∨W, ¬W∨Q
5. Dados los siguientes hechos:
H
1
: “Nerón es un perro”.
H
2
: “Nerón no es un dálmata”.
H
3
: “Nerón ladra”.
Y las siguientes reglas:
R
1
: “Los dálmatas son perros”.
R
2
: “Todo lo que ladra es un ruidoso”.
Responda mediante un sistema de refutación por resolución, la siguiente
pregunta:
P: ¿Quién es un ruidoso y no es un dálmata?
Utilice las estrategias de amplitud y conjunto soporte.
136
CAPÍTULO 6
Representaciones Semánticas
Se ha definido una representación como un conjunto de convenciones para
describir cosas.
La experiencia muestra que el diseño de una buena representación es con
frecuencia la clave para convertir problemas difíciles en sencillos. Es, por
consiguiente razonable poner énfasis en establecer qué símbolos usa una
representación, y de qué manera se ordenarán dichos símbolos para producir
descripciones de cosas particulares.
Un buen sistema para la representación del conocimiento estructurado en un
dominio particular debería poseer las propiedades siguientes:
a. Adecuación representacional, es decir, la capacidad para representar todos los
tipos de conocimiento que son necesarios en ese dominio.
b. Idoneidad inferencial, que equivale a decir capacidad para manipular las
estructuras representacionales, de tal manera que se puedan derivar nuevas
estructuras correspondientes al nuevo conocimiento inferido a partir del viejo.
c. Eficiencia adquisicional, que es la capacidad de adquirir fácilmente nueva
información. El caso más simple, implica inserción directa, por una persona,
de nuevo conocimiento en la base de datos. Idealmente el programa sería
capaz de controlar la adquisición del conocimiento.
Las representaciones que hemos estudiado hasta este momento, reglas de
producción y lógica de primer orden, son representaciones que podríamos
denominar sintácticas, en contraposición a las representaciones que estudiaremos
en este capitulo y que denominaremos semánticas.
Cada una de estas categorías tiene sus ventajas e inconvenientes.
Las representaciones sintácticas están muy ligadas a la lógica matemática y por lo
tanto su fortaleza radica en la facilidad inferencial. Es decir, son representaciones
especialmente preparadas para efectuar procesos de razonamientos deductivos.
Son útiles también en la validación de conocimiento. Sin embargo, estas
facilidades se obtienen una vez usted haya logrado representar el conocimiento en
ese formato. Es decir, éstas representaciones tienen como principal inconveniente
137
la dificultad en trasladar conocimientos, heurísticas y experiencias del mundo real
en unos formatos de representación rígidos, no naturales, alejados de la forma en
que los seres humanos percibimos y representamos el mundo.
Las representaciones semánticas por el contrario, facilitan el proceso de
representación, ya que son representaciones mucho más flexibles, naturales y
próximas a la forma como los seres humanos percibimos y representamos el
mundo. Sin embargo, esa flexibilidad conlleva una ausencia de rigidez que
también tiene sus inconvenientes. En primer lugar diferentes personas pueden
percibir y representar los mismos hechos del mundo de maneras diferentes. En
segundo lugar, al no haber un formato rígido se dificulta el proceso inferencial
deductivo, ya que procesos de equiparación por ejemplo, son mucho más difíciles
por falta de un alto grado de estructuración, obligando a contar con un motor de
inferencia más flexible.
Las representaciones semánticas que estudiaremos son: Redes Semánticas,
Redes Particionadas de Hendrix, Marcos y Guiones.
6.1 Redes Semánticas
Muchos de los sistemas recientemente desarrollados en Inteligencia Artificial, usan
una clase de formalismo de representación del conocimiento denominado “Redes
Semánticas”. Este formalismo agrupa bajo su nombre cosas muy distintas, debido
a que todas ellas comparten una notación común, que consta de:
a. Nodos, que habitualmente representan objetos, conceptos o situaciones en el
dominio.
b. Arcos, enlazando dichos nodos, que representan relaciones entre ellos.
Ambos, nodos y arcos pueden tener etiquetas asociadas. En una red semántica el
programa puede comenzar en el nodo que interese, siguiendo los arcos que
relacionan los nodos, luego los arcos que siguen de estos a otros nodos aún más
distantes, pero relacionados y así sucesivamente. Esta es una reminiscencia de la
capacidad del cerebro humano de saltar de una idea relacionada a otra, como en
el pensamiento cotidiano.
En general, una red semántica puede ser vista como equivalente al conjunto de
aserciones de variables libres representadas por sus arcos. Un arco etiquetado R
dirigido desde el nodo S al nodo T,
R
S T
138
Representa la aserción: R(S,T)←
Las redes semánticas simples no son susceptibles de representar variables,
símbolos de predicados n-arios, funciones, cuantificadores. Eso lo hacen las
redes particionadas de Hendrix que veremos en el próximo parágrafo.
Supóngase que se quiere representar un hecho sencillo tal como: “Todos los
canarios son pájaros”, en una red semántica. Esto puede hacerse creando dos
nodos para designar a los canarios y a los pájaros con un enlace “Es-Un” entre
ellos (Figura 6.1)
ES-UN
CANARIO PAJ ARO
Figura 6.1
Si “Piolín” fuera un individuo particular de quien se deseara afirmar que es un
canario, se podría añadir un nodo para Piolín a la red anterior (Figura 6.2)
ES-UN ES-UN
PIOLIN CANARIO PAJ ARO
Figura 6.2
Es de señalar que en este ejemplo no sólo se han representado los dos hechos
que inicialmente se intentaban representar, sino que también se hace muy fácil
deducir un tercer hecho, a saber, que Piolín es un pájaro, simplemente siguiendo
los enlaces “Es-Un”.
La facilidad con la cual es posible hacer deducciones sobre “jerarquías
hereditarias” tal como la anterior, es una de las razones de la popularidad de las
redes semánticas como representación del conocimiento. Además de su
clasificación taxonómica, habitualmente se necesita representar el conocimiento
acerca de las propiedades de los objetos. Por ejemplo, se puede querer expresar
en la red (Figura 6.3), el hecho de que los pájaros tienen alas. Esto podría
hacerse como,
ES-UN ES-UN
PIOLIN CANARIO PAJ ARO
TIENE-PARTE
ALAS
Figura 6.3
139
Supóngase que se quiere representar el hecho de que “Piolín posee un nido”.
Inicialmente uno podría pensar en codificar este hecho usando un enlace posesión
a un nodo representado “Nido de Piolín”, como se muestra en la Figura 6.4
ES-UN ES-UN
CANARIO PAJ ARO
PIOLIN
ES-UN
POSEE NIDO_1 NIDO
Figura 6.4
En donde, NIDO_1, es el nido que posee Piolín, que es una instancia de NIDO,
que representa una clase general. Esta representación adecuada para muchos
propósitos, tiene fallos. Por ejemplo, si queremos codificar que Piolín posee el
NIDO_1 desde la primavera hasta el otoño, es importante hacerlo en la red actual,
debido a que la relación posesión está codificada como un enlace y estos por su
naturaleza representan relaciones binarias y en este caso necesitamos
representar el equivalente a un predicado de cuatro argumentos en lógica, que
podría indicar el tiempo de inicio, el tiempo de fin de la posesión, así como la
posesión y el objeto poseído. Esta es una situación similar a la que se presenta
en el modelamiento de datos, donde el modelo entidad-relación y su
representación gráfica (diagrama entidad-relación) es una red semántica, cuyos
nodos son las entidades y cuyos arcos son las relaciones, pero en situaciones
especiales (entidades asociativas), las relaciones se convierten en entidades.
Esto nos indica que para nuestro ejemplo, una solución es representar la relación
como un nodo (Figura 6.5).
ES-UN ES-UN
PIOLIN CANARIO PAJ ARO
POSEIDO ES_UN
POSEE_1 NIDO_1 NIDO
TIEMPO_INICIO
ES_UN
POSESION PRIMAVERA TIEMPO
TIEMPO_FINALIZACION ES_UN
SITUACION OTOÑO
Figura 6.5
El nodo POSEE_1 representa una instancia particular de posesión, a saber Piolín
posee un nido. Y, como todos los nodos son instancias de posesión, POSEE_1
hereda arcos a los nodos poseedor, posee, Tiempo_Inicio, Tiempo_Finalización.
Poseedor
ES_UNA
ES_UNA
140
La forma usual de realizar razonamiento en redes semánticas es construyendo un
“fragmento de red”, que representa la pregunta y entonces se coteja frente a la red
en la base de conocimiento para ver si tal objeto existe.
Supongamos que usamos como base de conocimiento la red anterior y además
queremos responder la pregunta: ¿De qué es poseedor Piolín? Entonces
construimos un fragmento de red (Figura 6.6).
PIOLIN
POSEIDO
POSEE_1 ?
POSESION
Figura 6.6
Entonces ese fragmento se equipara frente a la red existente en la base de
conocimiento, buscando un nodo POSEE que tiene un enlace POSEEDOR a
PIOLIN. Cuando se encuentra, el nodo al que apunta el enlace poseído se enlaza
en la equiparación parcial y es la respuesta a la pregunta. Si no se encontrara
ninguna equiparación, naturalmente la respuesta sería: “PIOLIN no posee nada”.
El equiparador puede efectuar inferencias durante el proceso de equiparación para
crear estructuras de red que no están explícitamente presentes en la red. Por
ejemplo, si queremos responder la pregunta, ¿Hay un pájaro que posee un nido?
Se puede trasladar al fragmento de red (Figura 6.7)
? PAJ ARO
POSEIDO
ES_UN
POSEE_? NIDO-? NIDO
POSESION
Figura 6.7
Este fragmento de red no equipara exactamente con la red de la base de datos.
En consecuencia el procedimiento de deducción tendría que construir un enlace
ES_UN de PIOLIN a PÁJ ARO para hacer posible la equiparación. Luego el
equiparador ligaría “?” al nodo PIOLIN, POSEE_? A POSEE_1, y NIDO_? A
NIDO-1 con lo cual responde la pregunta.
Consideremos un ejemplo con las siguientes especificaciones:
POSEEDOR
ES_UNA
POSEEDOR
ES UNA
ES_UN
141
R
1
: Los elefantes son mamíferos.
R
2
: Los mamíferos tienen sangre caliente.
R
3
: Los elefantes comen maní.
H: Dumbo es un elefante.
Utilizando un sistema basado en redes semánticas, deseamos responder la
pregunta: ¿Hay un elefante que come Maní y tiene la sangre caliente?
Consideremos los respectivos fragmentos de red asociados a las reglas, al hecho
y a la pregunta (Figuras 6.8, 6.9, 6.10, 6.11, 6.12).
FR
1
: ES_UN
ELEFANTE MAMIFERO
Figura 6.8
FR
2
: TIENE
MAMIFERO SANGRE CALIENTE
Figura 6.9
FR
3
:
COME
ELEFANTE MANI
Figura 6.10
FH: ES_UN
DUMBO ELEFANTE
Figura 6.11
FP: ES_UN
? ELEFANTE
MANI SANGRE CALIENTE
Figura 6.12
No es posible responder directamente la pregunta, ya que el fragmento de red de
la pregunta no equipara exactamente con los fragmentos de red de la base de
conocimiento. Sin embargo, es posible generar redes intermedias que permitan la
equiparación final con el fragmento de la pregunta. Estas redes intermedias se
generan aprovechando el mecanismo de herencia de las relaciones “ES_UN”
(Figuras 6.13, 6.14, 6.15).
Equiparando FR
1
y FR
2
, obtenemos el fragmento:
COME
TIENE
142
F
12
: TIENE
ELEFANTE SANGRE CALIENTE
Figura 6.13
Equiparando FH y F
12
, obtenemos el fragmento:
FH
12
: TIENE
DUMBO SANGRE CALIENTE
Figura 6.14
Equiparando FH y FR
3
, obtenemos el fragmento:
FH
3
:
COME
DUMBO MANI
Figura 6.15
Teniendo en cuenta FH, FH
12
y FH
3
, podemos construir un fragmento de red que
equipara exactamente con el fragmento de red de la pregunta (FP), permitiendo
responder la pregunta.
El fragmento obtenido (Figura 6.16) es
ES_UN
DUMBO ELEFANTE
MANI SANGRE CALIENTE
Figura 6.16
Este fragmento se obtiene uniendo FH, FH
12
y FH
3
, permitiéndole al equiparador
ligar el nodo de la red de la pregunta que tiene “?” con el nodo de nuestra red
intermedia que tiene la etiqueta “Dumbo”, con lo cual responde la pregunta.
En resumen las redes semánticas tienen las siguientes características:
1. Los arcos representan relaciones binarias.
2. Las relaciones n-arias o poliádicas se representan mediante nodos de los que
salen arcos apuntando a los distintos elementos participantes de la relación.
3. Los nodos que representan relaciones poliádicas deben ser elementos de
conjuntos o clases, y estos a su vez, subconjuntos del conjunto de situaciones
o eventos.
4. Todos los conjuntos son subconjuntos de un conjunto universal, definiendo
una red taxonómica, cuya raíz es el conjunto universal seguido de clases muy
TIENE
143
generales, seguidas a su vez de clases más específicas hasta llegar al nivel
de instancias.
6.2 Redes Particionadas de Hendrix
Como señalábamos anteriormente, uno de los inconvenientes importantes de las
redes semánticas, es la falta de estructuración. Una manera de resolver esto es
buscando nuevas formas de redes semánticas que conserven la flexibilidad y
facilidades representacionales, pero con unos niveles mínimos de estructuración.
Una variante importante de las redes semánticas son las redes particionadas de
Hendrix, las cuales poseen una potencia expresiva equipotente con el cálculo de
predicados de primer orden. Para conseguir esto, poseen un nivel de
estructuración mucho mayor que el de las redes semánticas normales.
Dada la vaguedad propia de los lenguajes naturales, la representación mediante
redes semánticas, de frases en español o en cualquier otro idioma, presenta el
inconveniente de la multiplicidad de representaciones posibles. Para mejorar esto,
podemos recurrir a elementos lingüísticos, que nos permitan establecer patrones
generales de representación de cualquier frase.
Veremos entonces en este parágrafo las redes particionadas de Hendrix
tradicionales, con facilidades añadidas de estructuración, vía elementos
lingüísticos.
Dada una frase en español, vamos a identificar en ella las siguientes partes:
1. La acción que viene denotada por el verbo y que en nuestra red será un
evento.
2. El sujeto que ejecuta la acción y que en nuestra red será el agente.
3. El objeto que recibe la acción o que la sufre y que en nuestra red
denominaremos objeto.
4. Complementos que aclaran las circunstancias de la acción, como lugares,
tiempos, modos, etc. Por ejemplo (Figura 6.17), consideremos la siguiente
frase en español, “J uan abre la puerta con la llave”, una representación
mediante una red semántica, puede ser,
144
PUERTA
J UAN PUERTA-5
ABRE
LLAVE-3 EVENTO
LLAVE Figura 6.17
Las redes particionadas en Hendrix tienen una potencia expresiva mayor que las
redes semánticas normales.
En la representación utilizamos los siguientes símbolos:
Círculos, cuyas etiquetas son variables o constantes.
Óvalos, cuyas etiquetas son nombres de dominios.
Rectángulos, que agrupan círculos, y que representan espacios.
Arcos dirigidos que representan relaciones.
En las redes particionadas de Hendrix, los nodos son los espacios, que se
simbolizan mediante rectángulos.
Los espacios son las unidades que agrupan los círculos y los arcos dirigidos.
Asociados a los círculos existen unas etiquetas que representan variables, que
denotan a su vez elementos de un dominio.
Los dominios representados por óvalos, denotan clases de objetos y relaciones
(predicados). Existen algunos dominios básicos asociados a los conectores
lógicos (disyunciones, negaciones, implicaciones). El uso de espacios añade
mayor poder expresivo y organizativo.
El uso fundamental de los espacios es permitir definir proposiciones y fórmulas
lógicas. De ésta manera las redes semánticas se hacen equipotentes con la
lógica de predicados de primer orden.
ES_UNA
OBJ ETO
ES_UN
AGENTE
INSTRUMENTO
ES_UNA
145
Establecemos para cada conector lógico, una representación en red semántica
(Figura 6.18).
1. Conjunción: x ∧ y
Figura 6.18
Basta con usar un espacio para delimitar la conjunción (Figura 6.19).
2. Disyunción: x ∨ y
Figura 6.19
La variable D representa las disyunciones asociadas a las variables x e y. La
‘e’ de los arcos representa la relación, ‘elemento de’; así, los arcos de los
espacios que encierran las variables x e y, y que se dirigen al espacio que
encierra la variable de disyunción D, reflejan el hecho de que las variables son
elementos de una disyunción D (Figuras 6.20, 6.21).
3. Negación: ¬ x
Figura 6.20
4. Implicación: x ⇒ y
Figura 6.21
Respecto a la cuantificación tenemos lo siguiente:
X Y
Espacio
Variables
x
y
D
e
e
e
Disyunciones
D
e
Negaciones
x
y
I
Consecuentes
Antecedentes
e
Implicaciones
146
a. Cuantificación existencial: Está implícita en el arco ‘e’. La ocurrencia de una
estructura implica su cuantificación existencial.
b. Cuantificación universal: Utilizando la implicación se reduce a suponer que las
variables libres están cuantificadas universalmente.
Ahora consideremos la frase, “Todo perro ha mordido a algún cartero”. Esta frase
se representa en lógica de primer orden como,
(∀x)[PERRO(x)⇒(∃y)(CARTERO(y)∧MUERDE(x,y))]
Para trasladar a redes particionadas de Hendrix, tenemos en cuenta en primer
lugar los conectivos lógicos presentes en la fórmula, que en este caso son una
conjunción y una implicación. Esto nos indica que requerimos de un dominio de
implicaciones. Luego, tenemos en cuenta los predicados y su grado. Por cada
predicado unario necesitamos un dominio. En este caso los dominios perros y
carteros. Para cada predicado binario o de grado mayor, requerimos un dominio
para el predicado y para cada uno de sus argumentos. En nuestro caso,
necesitamos un dominio mordeduras y unos dominios para las variables x e y, que
ya sabemos que son perros y carteros respectivamente. En total para nuestro
ejemplo, necesitamos cuatro dominios (Figura 6.22). La red de Hendrix asociada
a la frase es,
Figura 6.22
El razonamiento con redes particionadas de Hendrix es similar al razonamiento
con redes normales.
Consideremos nuevamente el ejemplo con las especificaciones:
R
1
: Los elefantes son mamíferos.
I
Implicaciones
x
Perros
m
Mordeduras
y
Carteros
e
e
e e
consecuente
antecedente
Agente
Objeto
147
R
2
: Los mamíferos tienen sangre caliente.
R
3
: Los elefantes comen maní.
H: Dumbo es un elefante.
P: ¿Hay un elefante que come maní y tiene la sangre caliente?
La representación de esas especificaciones en lógica de predicados de primer
orden es:
R
1
: (∀x)[Elefante(x)⇒Mamífero(x)]
R
2
: (∀y)[ Mamífero (y)⇒Sangre_Caliente(y)]
R
3
: (∀z)[Elefante(z)⇒Come_Maní(z)]
H: Elefante(Dumbo)
P: (∃w)[Elefante(w)∧ Come_Maní (w)∧Sangre_Caliente(w)]
Los respectivos fragmentos de red (Figuras 6.23, 6.24, 6.25, 6.26, 6.27) son,
FR
1
:
Figura 6.23
FH:
Figura 6.24
I
Implicaciones
e
Consecuente
Antecedente
Elefantes
x
e
Mamíferos
x
e
Elefantes
Dumbo
e
148
FR
2
:
Figura 6.25
FR
3
:
Figura 6.26
FP:
Figura 6.27
Equiparando FH y FR
1
(Figura 6.28), obtenemos el fragmento FH
1
:
I
Implicaciones
e
Consecuente
Antecedente
Mamíferos
y
e
Sangre_Caliente
y
e
Elefantes
e
Come_Maní
?
e
Sangre_Caliente
e
I
Implicaciones
e
Consecuente
Antecedente
Elefantes
z
e
Come_Maní
z
e
149
FH
1
:
Figura 6.28
Equiparando FH y FR
2
(Figura 6.29), obtenemos el fragmento FH
2
:
FH
2
:
Figura 6.29
Equiparando FH
1
y FH
3
(Figura 6.30), obtenemos el fragmento FH
13
:
FH
13
:
Figura 6.30
A partir de FH, FH
2
y FH
13
(Figura 6.31), obtenemos:
Figura 6.31
Este fragmento le permite al equiparador ligar el nodo de la red de la pregunta que
tiene “?” con el nodo de nuestra red intermedia que tiene la etiqueta “Dumbo”, con
lo cual responde la pregunta.
Consideremos otro ejemplo con las siguientes especificaciones:
Mamíferos
Dumbo
e
Come_Maní
Dumbo
e
Sangre_Caliente
Dumbo
e
Elefantes
e
Come_Maní
Dumbo
e
Sangre_Caliente
e
150
H
1
: “Pedro es el director del departamento de ventas”
H
2
: “Pedro y María están casados”
R: “Si alguien es director de un departamento entonces trabaja en ese
departamento”
Queremos responder la siguiente pregunta:
¿Existe alguien que esté casado con María y trabaje en el departamento de
ventas?
Los fragmentos con los hechos y regla y con la pregunta, constituyen la base de
conocimiento.
Las respectivas representaciones (Figura 6.32, 6.33) son:
FH
1
:
Figura 6.32
FH
2
:
Figura 6.33
Estamos considerando que Pedro y María son a la vez agentes y objetos del
matrimonio.
La regla se puede expresar en lógica como,
(∀x)(∀y)[Director(x,y)⇒Trabaja(x,y)]
La representación en red de Hendrix (Figura 6.34), es FR:
Directores Direcciones
ventas
Departamentos
e
e e
Agente
Objeto
D
1 Pedro
Matrimonios
María
e
Agente
Objeto
m
1 Pedro
Objeto
Agente
151
Figura 6.34
La pregunta puede ser expresada en cálculo de predicados como,
(∃x)[Casado(x,María)∧Trabaja(x,Ventas)]
La representación en red de Hendrix (Figura 6.35), es FP:
Figura 6.35
Nuestra base de conocimiento consta de FH
1
, FH
2
, FR y FP. Mediante
equiparación generamos fragmentos de red intermedios.
Equiparando FH
1
y FR, obtenemos la red parcial (Figura 6.36).
I
Implicaciones
x
Directores
x
Trabajadores
z
e
e e
e
consecuente
antecedente
Agente Objeto
Direcciones
Trabajos Departamentos
z
e
y
e
Agente
Objeto
Matrimonios
Trabajadores
e e
Objeto
Trabajos
Departamentos
e
?
e
Agente
María
Ventas
?
?
Objeto
Agente
Agente Objeto
152
FH
1
R:
Figura 6.36
Equiparando FH
2
y FP (Figura 6.37), obtenemos FH
2
P
FH
2
P
Figura 6.37
Equiparando FH
1
R y FH
2
R (Figura 6.38), obtenemos,
Figura 6.38
Esta red intermedia le permite al equiparador ligar los nodos de la red de la
pregunta que tienen “?” con los nodos de esta red, asignándole al interrogante de
más a la izquierda el valor M
1
, al del centro el valor de Pedro, y al de más a la
derecha el valor de D
1
.
Trabajadores
e
Trabajos
Departamentos
e e
Ventas
Agente
Objeto
Pedro D
1
Matrimonios
Trabajadores
e e
Objeto
Trabajos Departamento
e
M
1
e
Agente
María
Ventas
?
Objeto
Agente
Agente
Objeto
Pedro
Matrimonios
Trabajadores
e e
Objeto
Trabajos Departamento
e
M
1
e
Agente
María
Ventas D
1
Objeto
Agente
Agente
Objeto
Pedro
153
6.3 Marcos
La interacción que tenemos los seres humanos con un entorno es fundamental en
nuestro proceso de aprendizaje. Un bebé que descubre el mundo, se ve
bombardeado por infinidad de estímulos procedentes del medio exterior, los
cuales asimila en un proceso continuo de aprendizaje. Esas experiencias van
conformando una estructura o esquema conceptual del mundo, formada por los
patrones recurrentes de la vida cotidiana. Eso es lo que nos permite estar
capacitados para ir por la vida sin tener que razonar cada acción que efectuamos,
debido a que la vida cotidiana consiste en una larga serie de “situaciones
estereotipadas”, que incorporamos en nuestros esquemas mentales. Esto es
importante porque nos permite enfrentar muchas situaciones de la vida sin tener
que pensar, o concentrándonos únicamente en aquello que es diferente o
interesante . Por ejemplo, cuando uno visita un restaurante donde nunca se ha
estado antes, sabe conducirse en él, fruto de experiencias anteriores, que le
permiten a uno saber qué son los restaurantes, para qué se va a ellos, qué utilidad
tienen los objetos que en ellos se encuentran: menú, mesa, cubiertos, etc., qué
actores intervienen: clientes, camareros, cocineros, etc. Y lo más importante, se
tiene una serie de expectativas acerca de las “secuencias de sucesos” que
probablemente ocurrirán allí. Sin embargo, si por ejemplo vamos a un restaurante
japonés, siendo esta experiencia completamente nueva, nos obliga a adaptar y a
ajustar nuestro esquema o marco conceptual de restaurante, ya que nos
encontramos con situaciones muy diferentes a nuestro estereotipo de restaurante,
como comer con palillos, comer sentados en el piso, además de experiencias
gastronómicas nuevas, como comer pescado crudo, etc.
En Inteligencia Artificial se busca replicar estas capacidades humanas, así sea
parcialmente. Por ejemplo, si necesitamos que un robot interaccione de manera
autónoma e inteligente con un entorno, es necesario en primer lugar dotarlo de
sensores, pero además conseguir que sea capaz de aprender y de estructurar sus
marcos conceptuales, que le permitan exhibir un comportamiento inteligente en su
interacción con el mundo.
La técnica de representación del conocimiento que se usa en Inteligencia Artificial,
que permite simular esas capacidades humanas, es la de los marcos.
Un marco es un armazón o estructura para ser adaptado y ajustado a la realidad,
cambiando si es necesario los detalles.
Un marco es una estructura de conceptos estrechamente asociados (tienen
mucho que ver unos con otros), llamados slots (y que podríamos traducir como
campos o pistas), usados para representar objetos generales o específicos.
154
Los slots corresponden a los atributos (características) que tiene el tipo de objeto,
que el marco representa.
Los slots son las partes del marco que deben instanciarse en función de los datos
de la situación. Los Slots están normalmente inicializados con valores por defecto.
En los slots se pueden almacenar datos numéricos, texto o información más
compleja, como tablas, estructuras gráficas y programas procedimentales. Un
ejemplo de un marco (Figura 6.39), es el siguiente:
Marco: Vehículo
Slots: Altura
Ancho
Peso
Color
Capacidad
Número_de_matrícula
Figura 6.39
Los conjuntos de marcos relacionados se agrupan formando un sistema de
marcos, que habitualmente es una jerarquía taxonómica que especializa el
conocimiento de objetos generales (clases), a objetos particulares, los cuales
pueden ser: una clase menos general (subclase) o valores específicos de los slots
definidos en la jerarquía (instancias).
Esta organización jerárquica permite que slots de niveles generales sean
heredados a niveles específicos, a través de dos tipos de enlaces:
1. ES_UN (Es subclase de): Enlaza un marco clase con cada uno de los marcos
subclase en que se divide.
2. PERTENECE (Es instancia de): Enlaza un marco clase con las instancias
específicas de la clase.
Los sistemas de marcos son una generalización de las redes semánticas. La
diferencia fundamental radica en que los nodos de las redes semánticas son muy
pobres (sólo contienen una etiqueta), mientras que aquí, los nodos son marcos
que poseen estructura y una potencia expresiva mucho mayor, ya que permiten
manejar no sólo conocimiento declarativo, sino también procedimental.
Por ejemplo (Figura 6.40, 6.41), consideremos un sistema de marcos muy simple,
formado por un marco y una instancia.
155
Marco: Persona
Slot Tipo Valor Facetas
ESPECIE
ALTURA
PESO
COLOR
SEXO
Entero
Entero
RAZAS
Hombre, Mujer
Homo Sapiens
+1.75 mt
+75Kg
Figura 6.40
Marco: Pepe
Slot Tipo Valor Facetas
Especie
Altura
Peso
Color
Sexo
Entero
Entero
Razas
Hombre, mujer
Homo sapiens
1.70 mt
68 kg
Blanco
Hombre
Figura 6.41
Obsérvese que el marco instancia (o hijo) hereda los slots y las propiedades del
marco general (padre), aunque muchas veces los marcos hijo puedan tener slots
propios, que no son de sus padres.
Como puede observarse en el ejemplo, los slots tienen varias características
asociadas a ellos.
1. El nombre: que indica la clase de atributo que el slot representa.
2. El tipo: indica el dominio de valores permitidos que puede tener un slot. Los
tipos generalmente encontrados son: entero, real, fecha, lógico o booleano,
carácter. También puede haber tipos abstractos definidos por los usuarios.
3. Valor: Son los valores concretos del slot asociados al respectivo tipo. Pueden
ser valores por defecto, a los que les anteponemos el símbolo ‘+’.
4. Facetas: Subyacente a la estructura declarativa de los arcos, es decir a la
manera en la que se organiza la representación de hechos estáticos, existe un
aspecto dinámico o procedimental, que permite ligar a los slots, procedimientos
(llamados facetas) para dirigir el razonamiento o el comportamiento del sistema
para resolver problemas.
Como se señaló anteriormente, los marcos permiten combinar la estructura
declarativa con los aspectos dinámicos procedimentales, representados en las
facetas, esto nos permite entender cómo se razona con un sistema de marcos.
Instancia de
156
Las facetas de los marcos son procedimientos implantados como rutinas (triggers)
que se activan cuando el valor de un slot se encuentra o se cambia. Estos
procedimientos de disparo se implantan como procesos dirigidos por eventos o
por datos.
Cada slot puede tener cualquier número de procedimientos (facetas) asociados a
él. Tres de los más importantes son:
1. Si_adiciona: Se activa cuando se adiciona un valor al slot.
2. Si_borra: Se activa cuando se borra un valor del slot.
3. Si_necesita: Se activa cuando es necesario el valor del slot y este esta vacío.
Por ejemplo, consideremos el marco Informe Avance Proyecto #15 (Figura 6.42)
con sus facetas respectivas.
MARCO: INFORME AVANCE PROYECTO #15
Slot Tipo Valor Si_Adiciona Si_Borra Si_Necesita
Autor +Director 2 1
Tema Sist.
Expertos
Fech.
Terminación
Literal 4 3
Longi. Informe Entero +30
Pág.
6 5
Figura 6.42
Supongamos que se conecta este marco vía a un programa de interfase y se hace
el siguiente requerimiento:
“Se necesita un informe completo sobre el avance (estado) del proyecto de
sistemas expertos”. El programa se encuentra con que hay dos slots con valores
por defecto y un slot con valor desconocido, y por lo tanto intentará completar el
informe.
1. El programa activa un procedimiento (1) que busca en la memoria de trabajo el
nombre del director del proyecto de sistemas expertos (si no lo encuentra
puede preguntar externamente). Supongamos que lo obtiene, entonces lo
notifica al sistema de manipulación de marcos.
2. El sistema de manipulación debe borrar el valor por defecto e insertar el valor
de notificado por (1). Entonces se puede activar un procedimiento (2) que
envíe un mensaje dando cuenta de la notificación.
3. Se activa un procedimiento (3) que busca la fecha de terminación y que en
caso de no encontrarla puede decidir entre unas fechas opcionales.
Supongamos que notifica la fecha, pero está fuera de un rango permitido,
157
entonces cuando el sistema de manejo intenta insertar esa fecha se activa un
procedimiento (4) que no permita la inserción y muestre un mensaje señalando
el error.
4. Análogamente el valor por defecto de la longitud del informe, puede activar los
procedimientos (5) y (6).
Las reglas de producción son una representación procedimental, y por lo tanto por
sí solas no utilizan una representación estructurada. Su poder expresivo es
inadecuado para describir objetos y relaciones estáticas entre estos; algo para lo
cual los marcos son ideales.
De lo anterior se concluye que una integración entre estas dos formas de
representación del conocimiento (marcos y reglas de producción) da como
resultado una forma de representación más potente que combina las ventajas de
ambos, permitiendo que las reglas sean almacenadas en los marcos, y que un
grupo de reglas pueda pertenecer a una clase determinada. Una regla definida en
un marco, contiene en su antecedente, slots asociados a este marco.
Las reglas tienen la forma,
SI el Slot_X del Marco_Y es valor
Entonces el Slot_Z del Marco_W es valor.
Obviamente el Marco_Y, y el Marco_W pueden ser el mismo marco.
La condición evalúa el valor del Slot_X en las instancias terminales del Marco_Y o
en marcos clase que están bajo su línea de jerarquía.
El Slot_X puede ser propio o heredado.
La conclusión de la regla afecta directamente sólo a los valores del Slot_Z que se
encuentra en los marcos e instancias que están bajo el Marco_W.
Consideremos por ejemplo, las reglas:
R
1
: Si el residuo de envases es aceitoso
Entonces el revestimiento de envases es burbujoso.
R
2
: Si el rendimiento del lavador es deficiente
Entonces el residuo de envases es aceitoso.
Aquí, para R
1
, Slot_X = residuo, Marco_Y = Marco_W = Envases, Slot_Z =
Revestimiento. Para R
2
, Slot_X = rendimiento, Marco_Y = Lavador, Slot_Z =
Residuo, Marco_W =Envases.
158
6.4 Guiones
Un “guión” es una estructura tipo marco, que describe una secuencia
estereotipada de eventos en un contexto particular.
Los componentes de un guión son:
a. Condiciones de entrada: Condiciones que deben satisfacer antes de que los
eventos descritos en el guión puedan ocurrir.
b. Resultados: Situaciones que serán verdaderas después de que los sucesos
descritos en el guión han ocurrido.
c. Apoyo: Es la utilería, es decir, los objetos que están involucrados en los
eventos descritos en el guión.
d. Roles: Actores implicados en los eventos descritos en el guión.
e. Variantes: Variación específica de un patrón más general que está
representado por este guión particular.
f. Escenas: Secuencias estereotipadas de eventos.
Consideremos como ejemplo el Guión Restaurante.
Condiciones de entrada: El cliente está hambriento, el cliente tiene dinero.
Resultados: El cliente no tiene hambre, el cliente tiene menos dinero, el propietario
tiene más dinero.
Apoyo (utilería): mesas, sillas, carta, comida, cuenta, dinero.
Roles (papeles): cliente, camarero, cajero, propietario, cocinero.
Variante: cafetería.
Escena 1: Cafetería
• El cliente entra en el restaurante.
• Busca con la mirada una mesa desocupada.
• Decide dónde sentarse.
• Se dirige a la mesa.
• Se sienta
Escena 2: Pedido
(Carta está sobre la mesa) (Camarero trae la carta)
• El cliente coge la carta.
• Mira el contenido.
• Hace una elección de comida.
• Hace el pedido al camarero
• El camarero se dirige a la cocina.
• Cliente llama al camarero
• Camarero se dirige al cliente
• El camarero entrega la carta
159
Escena 3: Comer
• El camarero lleva la comida.
• El camarero le sirve la comida al cliente.
• El camarero se marcha.
• El cliente come.
• El cliente llama al camarero.

Regresar a escena 2 Escena 4: Pagar
• El cliente pide la cuenta.
• El camarero le entrega la cuenta
• El cliente se dirige al cajero
• Paga la cuenta
• Sale del restaurante.
Los guiones se usan para predecir eventos que no han sido explícitamente
observados. Supóngase, por ejemplo, que se está narrando la siguiente historia:
“J uan fue a un restaurante anoche. Él pidió un filete. Cuando iba a pagar se dio
cuenta de que estaba sin dinero. Él corrió a su casa ya que había comenzado a
llover”.
Si se plantea la pregunta: ¿cenó J uan anoche?, se debería responder casi con
certeza, incluso aunque no se hubiera dicho explícitamente usando el guión
restaurante, un computador también sería capaz de inferir que J uan cenó. Dado
que todos los sucesos en la historia corresponden a la secuencia de sucesos
previstos por el guión, el programa podría inferir que toda la secuencia prevista en
el guión sucederá normalmente. De este modo podría concluir que J uan cenó
anoche.
Otro uso está relacionado con el hecho de que los guiones son una cadena causal
gigante, de este modo, proporcionan información acerca de cómo los eventos
están relacionados entre sí. Considérese por ejemplo, la siguiente historia:
“J uan fue a comer. Él se sentó en una mesa y llamó a la camarera. La camarera
le trajo la carta y él pidió una hamburguesa”. Ahora considérese la pregunta. ¿Por
qué la camarera le trajo a J uan la carta? Una posible respuesta usando el guión,
es: debido a que J uan la llamó. Esta respuesta se obtiene yendo hacia atrás en la
cadena causal para encontrar qué hizo que ella hiciera eso.
Cada escena consta de una secuencia estereotipada de eventos, es decir, de una
secuencia de acciones. Algunos lingüistas como Wilks y Schank, han desarrollado
160
teorías lingüísticas como la de la dependencia conceptual que permiten una
representación de todas las acciones usando un pequeño número de primitivas.
Esto permite construir programas que, entre otras cosas, pueden “parafrasear”
textos que se le dan como datos de entrada, como las historias aludidas
anteriormente, de tal manera que se facilita la extracción de inferencias, responder
preguntas, formular hipótesis, etc.
El objetivo fundamental de estas teorías lingüísticas, es el de servir como una
representación adecuada de expresiones en lenguaje natural, para capturar la
estructura conceptual subyacente en ellas.
Un primer requerimiento es que la representación no sea ambigua, incluso cuando
la entrada pueda contener ambigüedades sintácticas.
El sistema de Schank está formado por un conjunto de bloques de construcción
primitivos y una estructura sobre la que pueden construirse representaciones de
elementos de información particulares.
Un primer conjunto de bloques de construcción está formado por once acciones
básicas, clasificadas en los cuatros subconjuntos siguientes:
A. Acciones físicas
Propel: Aplicar una fuerza a un objeto físico; por ejemplo, empujar.
Move: Mover una parte del cuerpo por su propietario; verbigracia, patear.
Ingest: Ingestión de algo por un ser animado, tal como beber.
Expel: Expedir algo hacia afuera desde el interior de un objeto animado, por
ejemplo, llorar.
Grasp: Asimiento de un objeto por un actor, por ejemplo, halar.
En el guión restaurante, los eventos de las escenas que están expresados en
lenguaje natural (español), se pueden representar mediante bloques básicos
como los anteriores. Por ejemplo, “El cliente se sienta”, se puede expresar
como, “S MOVE S a la posición de sentarse”, en donde S es el cliente.
También el evento, “El cliente come”, se puede expresar como “S INGEST C”,
en donde C=Comida.
B. Acciones caracterizadas por dar como resultado un cambio de estado
Ptrans: Cambiar un objeto físico de lugar, por ejemplo, ir.
Atrans: Cambiar una relación abstracta, tal como posesión o propiedad, con
respecto a un objeto; verbigracia, dar.
161
En el guión restaurante, el evento “Cliente entra al restaurante”, se representa
como “S PTRANS S dentro del restaurante” y el evento “El cliente paga la
cuenta”, se puede expresar como, “S ATRANS dinero a R”, en donde R es el
cajero.
C. Acciones usadas principalmente como instrumentos para otras acciones.
Speack: Producir un sonido, por ejemplo, decir.
Attend: Centrar la atención de un órgano de los sentidos hacia un estímulo;
verbigracia, escuchar.
En el guión restaurante, el evento “El cliente busca con la mirada una mesa
desocupada”, se puede representar como “S ATTEND ojos a mesas”.
El evento “El cliente llama al camarero”, se puede representar como, “S
SPEAK M”, en donde M es el camarero.
D. Acciones mentales.
Mtrans: Transferencia de información mental; tal como hablar.
Mbuild: Construir nueva información a partir de una anterior: decidir.
En el guión restaurante, el evento “Hace el pedido al camarero”, se puede
expresar como, “S MTRANS yo quiero C a M”, en donde S es el cliente, C es la
comida y M es el camarero.
El evento, “El cliente hace una elección de comida”, se puede expresar como, “
S MBUILD elige de C”, en donde C es comida.
Con estos elementos la Escena1 del guión, se puede expresar como,
Escena 1: Entrada
• S Ptrans S dentro del restaurante.
• S Attend ojos a mesas.
• S Mbuild donde sentarse.
• S Ptrans S a la mesa
• S Move S a la posición de sentarse.
Análogamente, las demás escenas del guión se pueden expresar con la ayuda de
los bloques de construcción primitivos.
Estos elementos primitivos no son palabras sino conceptos que reflejan un nivel
de pensamiento subyacente en el lenguaje.
162
La ventaja fundamental del uso de estas primitivas radica en las ventajas
computacionales, al almacenar proposiciones en forma “canónica”. Esto requiere
que la información implícita en la frase se haga explícita. A su vez, obtener la
información implícita requiere inferencia y es justo para hacer inferencias que las
primitivas reciben su más importante justificación.
Cada primitiva de acción impone su propio conjunto de inferencias a partir del
hecho de que X PTRANS Y desde W a Z.
1. Y está ahora ubicado en Z.
2. Y ya no está en Z.
3. Si Z=X, o Z es un humano y requerido el Ptrans, entonces A hará, sea lo que
fuere, probablemente lo que habitualmente hace con Y.
Tales inferencias proporcionan tanto el criterio para elegir las primitivas como la
definición de lo que son tales primitivas.
Los sistemas de guiones son utilizados en programas de diálogo inteligente, como
Eliza y Parry.
Programas como Parry les permiten a los pacientes tener un diálogo en el
contexto de la psicología clínica, para expresarse sin las inhibiciones y barreras
defensivas que se anteponen en el diálogo directo con un psicólogo o con un
psiquiatra. El programa basado en la escuela de psicología de Carl Rogers,
conduce el diálogo apropiadamente en términos clínicos.
6.5 Ejercicios
1. Considere las siguientes reglas
R
1
: Los dálmatas son perros
R
2
: Todo el que ladra es un ruidoso.
Y los siguientes hechos:
H
1
: Fifí es un perro
H
2
: Fifí no es dálmata
H
3
: Fifí ladra
Utilizando un sistema basado en redes semánticas, responda la siguiente
pregunta:
163
¿Quién es un ruidoso y no es dálmata?
2. Considere las mismas especificaciones y preguntas del ejercicio anterior.
Utilizando un sistema basado en redes particionadas de Hendrix, responda la
pregunta.
3. Considere las siguientes especificaciones:
e
1
: Los animales que dan leche o tienen pelo son mamíferos.
e
2
: Los mamíferos que comen carne son carnívoros.
e
3
: Los carnívoros de color leonado y manchas oscuras son guepardos.
e
4
: Los carnívoros de color leonado y rayas negras son tigres.
Para cada especificación genere una regla con formato,
SI Slot_X del Marco_Y es valor
Entonces Slot_Z del Marco_W es valor
4. Genere un sistema de cinco marcos que permita almacenar las cuatro reglas
obtenidas en el ejercicio anterior.
5. Crear un guión, “IR A CINE”, representando los eventos de las escenas
mediante los bloques de construcción primitivos de Schank.
164
CAPÍTULO 7
Razonamiento Aproximado
Cuando se construye un sistema experto basado en reglas de producción,
recordemos que las reglas de producción no son implicaciones lógicas, ellas
reflejan el conocimiento heurístico del experto con respecto a algunos aspectos
del dominio del conocimiento. El experto podrá saber solamente que cierto
conjunto de evidencias implicará probablemente una determinada conclusión. Es
decir, las reglas de producción normalmente no establecen una conclusión con
una certeza absoluta; por el contrario reflejan las convicciones del experto de la
evidencia en favor de una conclusión.
Existen varias técnicas para el manejo de la incertidumbre. Aquí veremos algunas
de ellas.
7.1 Razonamiento Difuso
Existe un interesante paralelismo histórico entre la lógica y la geometría.
Recordemos que la geometría euclidiana se mantuvo durante muchos siglos como
la única propuesta aceptada en la descripción del mundo, hasta que en el siglo XIX
hubo una eclosión de propuestas de geometrías divergentes, todas ellas con un
elemento en común, la no aceptación del axioma o postulado de las paralelas.
Esto generó varias propuestas de geometrías no-euclidianas, fundamentales en la
ciencia moderna. Así por ejemplo, los trabajos de Einstein en relatividad general
utilizan la geometría de Riemann; y los desarrollos actuales en cosmología se
basan en estas geometrías.
Algo similar a lo sucedido con la geometría se dio con la lógica. La lógica
aristotélica mantuvo durante muchos siglos su hegemonía, hasta el siglo XIX, con
la aparición de la lógica simbólica. Lo interesante es que desde finales del siglo
XIX y principios del XX, se cuestiona el principio del tercio excluido de Aristóteles,
generándose unas lógicas divergentes (por ejemplo, la lógica intuicionista y la
lógica modal). Sin embargo, la propuesta de lógica divergente más interesante se
da bien entrado el siglo XX, en la década del 60, con los trabajos de Lofti Zadeh,
alrededor de la lógica difusa.
165
Sea U un conjunto clásico de objetos, un universo, cuyos elementos se
representan como x. La pertenencia a un subconjunto A de U podría verse como
una función característica µ
A
: U→{0,1}tal que,
µ
A
(x) =1 si y sólo si x ∈ A
µ
A
(x) =0 si y sólo si x ∉ A
En los conjuntos clásicos los límites o linderos de pertenencia están perfectamente
definidos, y sólo hay dos posibilidades, el elemento pertenece o no pertenece al
conjunto, aquí se manifiesta pues el principio del tercio excluido de Aristóteles.
Sea U un conjunto clásico de objetos, un universo cuyos elementos se
representan como x. La pertenencia a un subconjunto A de U podría verse como
una función µ
A
: U→[0,1]. En este caso el conjunto A se denomina difuso o
borroso.
En los conjuntos difusos los linderos de pertenencia no son tan nítidos, de ahí
viene el nombre de difuso o borroso. En cierto sentido todos los elementos
pertenecen, lo que define la función µ
A
es el grado de pertenencia al conjunto.
Podemos definir un conjunto difuso A, como un conjunto de pares ordenados,
A ={(x, µ
A
(x)) / x∈U}
Por ejemplo, supongamos que deseamos clasificar las casas de acuerdo con la
comodidad. Un indicador de la comodidad de una casa es el número de alcobas.
Sea U={1,2,3,...,8} el conjunto de tipos de casa descritos por x=número de
alcobas. Entonces el conjunto difuso “tipo confortable de casa para una familia de
cuatro personas” puede ser descrito como,
A={(1,•2),(2,•5),(3,•8),(4, 1),(5,•7),(6,•3)}
Con la notación •2, queremos indicar 0•2. En muchos textos los conjuntos difusos
se denotan por ejemplo como A
~
ó A , para distinguirlos de los conjuntos clásicos.
Normalmente se establece la convención de no incluir los elementos con grados
de pertenencia 0.
El soporte de un conjunto difuso A, es un conjunto clásico, tal que µ
A
(x)>0. Es
decir,
Soporte A={x∈U / µ
A
(x)>0}.
166
Así como alrededor de las operaciones de unión e intersección, tenemos un
álgebra de conjuntos clásicos, también es posible contar con un álgebra de
conjuntos difusos, donde las operaciones de unión e intersección se definen como:
Sean A y B conjuntos difusos, entonces C=A∩B, es un conjunto difuso, formado
por los elementos x pertenecientes a U, tal que x∈A y x∈B, cuya función de
pertenencia µ
C
, se define como,
µ
C
(x) =mín {µ
A
(x), µ
B
(x)}
Análogamente, C=A∪B, es un conjunto difuso, formado por los elementos x
pertenecientes a U, tal que x∈A ó x∈B, cuya función de pertenencia µ
C
, se define
como,
µ
C
(x) =máx {µ
A
(x), µ
B
(x)}
El complemento de un conjunto difuso A, es un conjunto difuso A , cuya función
de pertenencia
A
µ , se define como,
A
µ (x)=1 - µ
A
(x), ∀x∈U
Sea A el conjunto difuso “tipo confortable de casa para una familia de cuatro
personas” definido anteriormente y sea B el conjunto difuso “tipo de casa grande”,
definido como:
B={(3,•2),(4,•4),(5,•6),(6,•8),(7, 1),(8, 1)}
La intersección C=A∩B es,
C ={(3, •2), (4, •4), (5, •6), (6, •3)}
La unión D=A∪B es,
D={(1,•2),(2,•5),(3,•8),(4,1),(5,•7),(6,•8),(7,1),(8,1)}
El complemento C puede ser interpretado como “tipo de casa no grande”,
C ={(1,1),(2,1),(3, •8), (4, •6), (5, •4), (6, •2)}
En general las propiedades de los conjuntos clásicos se cumplen en los conjuntos
difusos, excepto el principio de no contradicción y del tercio excluido.
Para A≠∅ (µ
A
(x) ≠ 0, ∀x∈U) y A≠U; al par (A, A ) se llama partición difusa.
167
En general, si A
1
,...,A
m
son m conjuntos difusos que cumplen con:
A
i
≠ ∅ y A
i
≠ U
Y tal que, ( ) U x x
m
i
A
i
∈ ∀ =

=
, 1
1
µ
Se denominan partición difusa de U.
Las operaciones de unión, intersección y complemento para conjuntos clásicos, se
representan mediante diagramas de Euler-Venn. Para los conjuntos difusos
podemos utilizar los gráficos de las funciones de pertenencia (Figuras 7.1, 7.2, 7.3,
7.4, 7.5).
Figura 7.1
Figura 7.2
Figura 7.3
Figura 7.4
x
µ
A
1
0
x
µ
B
1
0
B
x
µ
A∪B
1
0
A

x
µ
A∩B
1
0
A

A
B
B
168
Figura 7.5
Si A
1
,..., A
n
son conjuntos difusos en los universos U
1
, U
2
,..., U
n
, respectivamente,
el producto cartesiano A
1
×A
2
×...× A
n
es un conjunto difuso en el espacio-producto
U
1
×U
2
×...× U
n
, con función de pertenencia:
( ) ( ) ( ) { }
n A A n A A
x x x x
n n
µ µ µ ,..., mín ,...,
1 1 ...
1 1
=
× ×
Las operaciones de unión, intersección y producto cartesiano difusas, no son
únicas. Otros operadores utilizados son:
( ) ( ) ( ) ( ) U x x x x x
B A B A C
∈ ∀ • = =

, µ µ µ µ
( ) ( ) ( ) ( ) ( ) ( ) U x x x x x x x
B A B A B A C
∈ ∀ • − + = =

, µ µ µ µ µ µ
( ) ( ) ( ) ( )
n A A A n A A
x x x x x
n n
µ µ µ µ • • • =
× ×
... ,...,
2 1 1 ...
2 1 1
Los operadores “mín” y “máx” son los análogos de la intersección y la unión y
pueden generalizarse con cualquier par dual de t-norma y t-conorma:
Una norma triangular, o brevemente t-norma, es una función *:[0,1]×[0,1]→[0,1] tal
que,
1. a*b =b*a
2. a*(b*c) =(a*b)*c
3. Si a ≤ b y c≤d entonces a*c ≤b*d
4. 1*a =a
Las t-normas son operadores conjuntivos. En particular tenemos las siguientes t-
normas:
a*b =mín {a,b}
a*b =a • b
a*b =máx (0, a+b -1)
x
A
µ
1
0
A
169





=
=
=
caso otro en 0
1 si
1 si
* a b
b a
b a
Las definiciones dadas anteriormente se corresponden con los casos 1 y 2, del
mínimo y la intersección respectivamente, pero obviamente hay más opciones.
Cada t-norma tiene asociada una conorma triangular, o brevemente t-conorma,
que es una función [ ] [ ] [ ] 1 , 0 1 , 0 1 , 0 : → × ⊥ , dual de la t-norma y definida como,
( ) ( ) b a b a − − − = ⊥ 1 * 1 1
Las t-conormas son operadores disyuntivos. En particular tenemos las siguientes
t-conormas:
1. a⊥b =máx{a,b}
2. a⊥b =a +b – ab
3. a⊥b =mín {1, a+b}
4.





=
=
= ⊥
caso otro en 1
0 si
0 si
a b
b a
b a
Las definiciones dadas anteriormente se corresponden con los casos 1 y 2, del
máximo y la unión respectivamente.
Una característica importante en la comunicación entre seres humanos, es la
utilización de variables lingüísticas difusas. Continuamente decimos cosas como,
esa persona es “alta” o es “ágil” o es “rica”, sin que en ningún momento hallamos
precisado el alcance de esos adjetivos o de las proposiciones que los incorporan y
sin embargo eso no es obstáculo en la comunicación entre humanos.
Una de las aplicaciones importantes de la lógica difusa es en el campo de los
sistemas expertos. La razón es muy simple. Una de las dificultades importantes
en la construcción de sistemas expertos, radica en lo difícil que es trasladar el
conocimiento heurístico del experto a reglas de producción con el formato
tradicional, que es muy restrictivo para el experto. Por el contrario el permitir la
representación con reglas que en vez de utilizar ternas objeto-atributo – valor,
empleen variables lingüísticas difusas, les permiten mayor comodidad a los
expertos para expresar su experiencia.
170
Una proposición imprecisa es de la forma “x es A”, donde A es un conjunto difuso
en U y x es una variable que toma valores en U.
Por ejemplo, la proposición “J uan es joven” contiene el adjetivo “joven” que estará
representado por un conjunto difuso, mediante una función de pertenencia µ
joven
,
que podría definirse (Figura 7.6) como,
Figura 7.6
Consideremos un sistema de reglas de producción con una base de hechos y una
base de reglas que contenga información imprecisa (predicado difusos).
Los hechos se supone que están representados en la forma canónica “x es A”
donde A es un subconjunto difuso de valor de U. Las reglas son de la forma “SI
<condición>ENTONCES <acción>” donde condición está formada por hechos de
la forma “x es A”, y acción es un hecho de la forma “y es B”.
Una regla difusa tiene, pues, la forma:
“SI x es A, Entonces y es B”, donde A y B son subconjutos difusos.
Esta regla establece una relación causal. Es decir, que el conocimiento
proporcionado por “x es A” y del conocimiento proporcionado por “SI x es A,
Entonces y es B”, podemos deducir información acerca de y incluso en el caso en
que sepamos que x es A’ siendo A’ ligeramente diferente de A.
Esta regla se denomina modus ponens generalizado de Zadeh y se expresa como,
SI x es A Entonces y es B
x es A’
Entonces y es B’
Este esquema se basa en el conocimiento de la ley general de dependencia entre
X e Y, y este conocimiento es utilizado en el caso de que “x es A’ ”, para concluir
“y es B’ ”.
Edad en años
50
30
25
0
0.2
0.4
0.6
0.8
1
µ
joven
171
Si sabemos que A’ es sensiblemente distinto de A el modus ponens generalizado
no es suficiente para concluir un B’ que nos aporte información fiable. Ello sólo
será posible si disponemos de información complementaria de continuidad y de
monotonía sobre la relación causal entre X e Y alrededor de (A,B).
Por ejemplo, a partir de la regla “Si el tomate es rojo entonces está maduro” y el
hecho “el tomate es muy rojo”, el modus ponens generalizado no permite concluir
“el tomate está muy maduro”, a menos que se explicíte que el grado de madurez
aumente con la intensidad del color rojo.
Consideremos la siguiente regla difusa,
SI la persona es jóven y la estatura es alta
Entonces efectúe entrenamiento para el baloncesto
Y consideremos las funciones de pertenencia de los conjuntos difusos (Figuras
7.7, 7.8, 7.9).
Figura 7.7
Figura 7.8
Figura 7.9
Edad en años
50
30
25
0
0.2
0.4
0.6
0.8
1
µ
jóven
Estatura en metros
2.2
2
0
0.2
0.4
0.6
0.8
1
µ
alto
Unidades de
entrenamiento 20 10
0
0.2
0.4
0.6
0.8
1
µ
aptitud para
el baloncesto
100
172
Consideremos los siguientes hechos.
H
1
: La persona tiene 20 años.
H
2
: La estatura es de 2 metros.
Pregunta: ¿Cuánto entrenamiento debe realizar?
Por H
1
entonces la persona pertenece al conjunto de jóvenes con un grado de 1; y
por H
2
la persona pertenece al conjunto de altos con un grado de 0.8. Por lo tanto
µ
joven y alta
=mín{0.8,1}=0.8, que corresponde a 20 unidades de entrenamiento.
En este ejemplo se muestra de manera muy simple un proceso más complejo y
completo, que estudiaremos en detalle.
Lo primero que haremos es definir con mayor formalidad el concepto de variable
lingüística.
Una variable lingüística está caracterizada por una quíntupla <x,T(x),U,G,M >, en
la que;
x: Nombre de variable.
T(x): Conjunto de valores lingüísticos (atributos, adjetivos) de x.
U: Universo del discurso.
G: Regla sintáctica para ordenar los valores lingüísticos.
M: Regla semántica para asociar cada valor a su significado. Es decir, generar
las funciones de pertenencia.
Por ejemplo, una variable como temperatura puede ser interpretada como una
variable lingüística x, entonces su conjunto de valores lingüísticos, es decir, la
partición, de su universo, se elegirá entre: baja, moderada, media, alta, muy alta,
etc. Un caso (Figura 7.10) sería
T(temperatura) =T(x) ={baja, media, alta}
Figura 7.10
100
0
200 300 400 500
0.5
1
BAJ A
MEDIA
ALTA
µ(x)
x [°C]
173
El universo del discurso es el rango de valores, en este caso temperaturas entre
100 y 500 grados centígrados. Es decir, U =[100°C, 500°C].
Se puede interpretar como “baja” una temperatura por debajo de alrededor de
250°C y “alta” por encima de alrededor 350°C. Tenemos entonces,
G =Baja≤Media≤Alta (Regla Sintáctica)
M: La gráfica de µ(x) define la semántica de los valores, baja, media y alta.
Las funciones de pertenencia pueden ser expresadas de diferente forma, como se
puede apreciar en los ejemplos que hemos visto. Las más utilizadas son las
triangulares y las trapezoidales (Figura 7.11, 7.12).
Figura 7.11
Figura 7.12
Pero puede haber muchas otras formas (funciones) (Figura 7.13, 7.14) como:
0
1
µ(x)
x
0
1
µ(x)
x
174
Figura 7.13
Figura 7.14
Además de existir diferentes funciones de pertenencia, también pueden existir
diferentes particiones difusas del universo de una variable lingüística. Por ejemplo
para la variable lingüística temperatura señalamos una partición difusa para su
universo del discurso, pero pueden darse otras (Figura 7.15) como por ejemplo
Figura 7.15
0
1
x
( ) 0 ,
2
> =

k e x
kx
µ
0
1
x
( )
( )
( )
0 , , 1
0 , 0
2
> ≤ − =
≤ ≤ =
− −
k x e x
x x
x k
α µ
α µ
α
α
0.8
1
Alta
0.2
0.4
0
0.6
100
300 200 500 400
Media Baja
µ(x)
x
Moderada
Alta
Moderada
Baja
175
O también (Figura 7.16)
Figura 7.16
Las particiones que hemos considerado son completas. Es decir, cada valor del
universo del discurso pertenece al menos a un conjunto difuso.
Una partición incompleta de un universo del discurso contiene intervalos de
valores [x
I
, x
j
] tal que los valores de x en el intervalo no pertenecen a ningún
conjunto difuso y por tanto siempre les corresponde un valor de pertenencia de
cero. Para nuestro ejemplo (Figura 7.17) una partición incompleta del universo del
discurso de las temperaturas, podría ser:
Figura 7.17
Los valores de x en el intervalo [x
1
, x
2
] no pertenecen a ningún conjunto difuso.
Obviamente se impone la necesidad de realizar particiones completas.
La arquitectura básica de un sistema basado en reglas difusas, es similar a un
sistema basado en reglas de producción convencionales, en cuanto que ambos
contienen una base de conocimiento y un motor de inferencia. Sin embargo, las
x
1
0
x
2
1
A B C
x
0.8
1
Alta
0.2
0.4
0
0.6
100
300 200 500 400
Media Baja
µ(x)
x
Moderada
Alta
Moderada
Baja
176
prestaciones de un motor de inferencia para reglas difusas contienen diferencias
importantes frente a un intérprete tradicional.
La base de conocimiento está conformada por las reglas difusas que inicialmente
habíamos señalado que eran de la forma,
SI x es A Entonces y es B, donde A y B son subconjuntos difusos.
Ahora ya podemos señalar que las reglas difusas expresadas en un formato
general como,
SI x
1
es A
1
y x
2
es A
2
y ... y x
n
es A
n
Entonces y
1
es B
1
y y
2
es B
2
y... y y
m
es B
m
,
En donde A
1
, A
2
,..., A
n
y B
1
, B
2
,..., B
m
son conjuntos difusos; y las variables x
i
con
i=1,2, ...,n y y
j
con j=1,2, ...,m, son variables lingüísticas como se definieron
anteriormente.
Las variables lingüísticas y
j
reciben el nombre de variables de acción.
Un ejemplo de regla de producción difusa es,
SI velocidad es baja y temperatura es alta
Entonces flujo de ventilación es aumentar.
En este caso la variable de acción es flujo de ventilación.
Existen sistemas que distinguen entre reglas que contienen variables de acción y
reglas que no contienen variables de acción, sino variables intermedias que
facilitan procesos de encadenamiento. En los sistemas con reglas de producción
clásica, éstas se denominan reglas consecuente y antecedente respectivamente.
Un conjunto de reglas con estas distinciones son del tipo,
SI x es A Entonces z
1
es C
1
SI z
1
es C
1
Entonces z
2
es C
2
:
:
SI z
n
es C
n
Entonces y es B
Las variables z
k
son variables intermedias que facilitan el encadenamiento,
conformando ellas un grupo o juego de reglas. Esto también facilita el uso de
meta-reglas, que ayudan al motor de inferencia en su estrategia de solución de
problemas. Las meta reglas tienen el formato,
177
SI x
1
es A
1
Entonces aplicar grupo 1 de reglas
SI x
2
es A
2
Entonces aplicar grupo 2 de reglas
:
:
SI x
n
es A
n
Entonces aplicar grupo n de reglas.
También forman parte de la base de conocimiento los parámetros necesarios para
la discretización de variables lingüísticas que se ingresan.
El número total de reglas difusas depende de las variables de entrada. El número
máximo de reglas viene dado por el producto de los números de particiones de
todas las variables de entrada.
En estos sistemas es importante distinguir cuáles variables se tomarán como de
entrada y cuáles como de salida (variables de acción).
Así como señalamos anteriormente el ciclo de trabajo de un intérprete que
funciona con reglas de producción normales, también el intérprete o motor de
inferencia que trabaja con reglas difusas posee un ciclo de trabajo que consta
fundamentalmente de tres fases: la fase de fuzificación (que algunos denominan
emborronado), la fase de equiparación y la fase de defuzificación (también
denominada desemborronado).
Fase de Fuzificación
Los usuarios le proporcionan al sistema valores determinísticos o no difusos
asociados a las variables, que generalmente denominamos hechos. En un
ejemplo anterior se ingresaron valores H
1
y H
2
, siendo H
1
=La persona tiene 20
años y H
2
=La estatura es de 2 metros.
Lo primero que tiene que hacer el motor de inferencia es convertir esos valores no
difusos en términos de las variables lingüísticas, en este caso joven y alto. Esto
es lo que se denomina fuzificación. En este caso H
1
, se convierte en joven 1.0 y
H
2
, en alto 0.8, utilizando los grados de pertenencia que les corresponden a H
1
y
H
2
respectivamente, conforme a las funciones µ
joven
y µ
alto
.
En casos más complejos en los que el universo de las variables lingüísticas es
particionado, los valores no difusos pueden corresponder a varios valores difusos,
dependiendo del particionamiento que se haga. Por ejemplo, si retomamos la
partición inicial de la variable lingüística temperatura y la respectiva gráfica de la
función de pertenencia, al ingresar como un hecho un valor de temperatura
t=250°C, el proceso de fuzificación nos dirá que esa temperatura es “0.5 baja” y
“0.5 media” y “0 alta”.
178
Si ingresamos como un hecho un valor de temperatura de t=300°C, el proceso de
fuzificación nos dirá que esa temperatura es “0 baja” y “1 media” y “0 alta”.
En síntesis el proceso de fuzificación es un proceso que transforma la información
determinista en información cualitativa, que toma como referencia a conjuntos
difusos.
Es de observar que la suma de los grados de pertenencia en el ejemplo anterior
da 1. Esto se debe a que la partición que se hizo del universo de la variable
lingüística de temperatura es ortogonal. Esto no siempre es así, algunos sistemas
y autores utilizan particiones no ortogonales.
Sin embargo, en la mayoría de sistemas se adopta la partición ortogonal.
Fase de Equiparación
Los valores difusos obtenidos en la fase de fuzificación son equiparados con los
antecedentes de las reglas difusas que se encuentran en la base de conocimiento.
Esto trae como consecuencia la activación solamente de aquellas reglas en las
que todos los conjuntos difusos del antecedente sean no nulos frente a los valores
difusos. Por ejemplo, si tenemos una base con cinco reglas,
R
1
: SI velocidad es alta y temperatura es alta ENTONCES...
R
2
: SI velocidad es media y temperatura es alta ENTONCES...
R
3
: SI velocidad es baja y temperatura es alta ENTONCES...
R
4
: SI velocidad es alta y temperatura es media ENTONCES...
R
5
: SI velocidad es media y temperatura es baja ENTONCES...
Y tenemos la variable lingüística temperatura con la primera partición. Entonces
un valor de variable temperatura t=250°C, tras la fuzificación sabemos que se
convierte en “0.5 baja” y “0.5 media” y “0 alta”, lo que implica una activación de las
reglas R
4
y R
5
(que se convierte en una especie de conjuntos conflicto) y una
desactivación de las reglas R
1
, R
2
y R
3
porque corresponden a temperaturas altas.
Algo similar habría que hacer con la variable lingüística velocidad y con cualquier
otra que intervenga, de tal manera que podríamos llegar a tener un conjunto vacío
de reglas activadas.
Luego que se ha identificado el conjunto de reglas activas, y, dado que las reglas
poseen un conectivo “y”, es necesario utilizar alguna norma triangular para
generar un único valor por cada regla activada, respecto a los valores de los
antecedentes de las reglas. Es decir, para el antecedente de cada regla activada
R
i
, obtenemos un valor A
i
.
179
Luego se realiza un producto cartesiano de los A
i
con los B
i
, siendo B
i
el
consecuente de R
i
.
Finalmente se hace una composición de todos los valores A
i
× B
i
, dependiendo de
la norma triangular utilizada. Así por ejemplo, si utilizamos la t-norma
a*b=mín{a,b}, la composición final será supremo-mínimo, lo que significa tomar el
supremo de los valores mínimos A
i
× B
i
. Si se utiliza la t-norma a*b=a•b, la
composición final será supremo-producto, lo que significa tomar el supremo de los
productos A
i
× B
i
.
Fase De Defuzificación
La defuzificación, traducida en algunos casos como desemborronado, es la fase
encargada de entregar al proceso de acciones de control o decisión deterministas
a partir de salidas difusas resultantes de la composición de reglas.
Al aplicar en la fase anterior la composición supremo-mínimo o supremo-producto,
o en general supremo-t-norma, el resultado es una distribución posibilística (una
distribución de posibilidad sobre un universo U puede ser usada para definir un
correspondiente subconjunto difuso de U, o viceversa. Es decir, dado un
subconjunto difuso A sobre el universo U esto implica la existencia de una
distribución de posibilidad correspondiente a µ
A
(x)).
La estrategia de defuzificación tiene como objetivo que la acción o decisión de
control determinista generada sea la que mejor represente a la distribución
posibilística.
Existen varias estrategias o métodos para lograr fidelidad en la representación de
la distribución posibilística.
Las estrategias más usadas son: criterio del máximo (CM), media del máximo
(MDM) y el centro del área (CDA).
El criterio de máximo da lugar a salidas que corresponden a los valores de x en
que las distribuciones posibilísticas alcancen su valor máximo, por vez primera en
sentido de los valores de x crecientes.
La estrategia de la media del máximo genera como acciones o decisiones, a los
valores de x que representen la media de todas la acciones o decisiones, de una
distribución dada, cuyas pertenencias alcancen el máximo. La acción o decisión
puede expresarse como:

=
=
l
j
j
l
x
x
1
0
180
donde x
j
es el valor de soporte para el que la función de pertenencia µ
A×B
(x
j
)
alcance su valor máximo y l es el número de tales valores de soporte.
El método del centro de área o centro geométrico, también conocido como centro
de masa o centro de gravedad, se basa en calcular, como salida determinista el
valor de la variable x=x
0
tal que divida en partes iguales el área bajo la curva de
distribución posibilística resultante de la composición de las reglas.
Analíticamente (Figura 7.18), sea y=f(x) una curva
Figura 7.18
El centro geométrico del rectángulo genérico es (x,1/2y) y el área bajo la curva
vienen dados por,

=
b
a
dx x f ) ( área
Los momentos de inercia respecto a los ejes son,
( ) [ ]
∫ ∫
= =
b
a
b
a
x
dx x f ydx y M
2
2
1
.
2
1
( )
∫ ∫
= =
b
a
b
a
y
dx x xf ydx x M .
El centro geométrico del área bajo la curva es el punto ( ) y x, , donde,
área
y
M
x = ,
área
x
M
y =
En nuestro caso, la curva es de la forma y=µ
A
(x), en donde A es un subconjunto
difuso de un universo U y x es una variable sobre U. También en nuestro caso no
a
y
x
b
(x, 1/2y)
181
nos interesa calcular y , sino únicamente x , por lo tanto, nuestro centro
geométrico (valor defuzificado) viene dado por,
( )
( )
área
y
b
a
A
b
a
A
M
dx x
dx x x
x = =


µ
µ
En nuestro caso, las curvas suelen ser muchas veces poligonales, especialmente
triangulares y trapezoidales. En cuyo caso podemos descomponer la curva en
varios trayectos y para cada uno de ellos calcular su correspondiente área
circunscrita y sus respectivos momentos.
Sea el área plana de una figura poligonal determinada por una curva, y=µ
A
(x).
Sea A
i
cada área correspondiente a un fragmento de la curva total y determinado
por la función,
( ) x
A
y
i
i
µ
=
Entonces
( )

=
i
i
b
a
i
i
dx x
A
A
µ
que expresamos simplemente como, ( )

= dx x A
i i
µ .
Sean
i
y
M los respectivos momentos dados por,
( )

⋅ =
i
i
i
b
a
i
y
dx
x
A
x M
µ
que
expresaremos simplemente como ( )

⋅ =
i
i
i
b
a
i y
dx x x M µ .
Entonces el centro geométrico viene dado por,


=
i
i
i
y
A
M
x
i
Nuevamente, no nos interesa calcular y .
Se han hecho estudios comparativos de las tres estrategias (CM, MDM, CDA) y en
general se considera que da mejores resultados el cálculo del centro de área.
182
Consideremos como ejemplo un sistema de razonamiento difuso, que clasifica los
profesores de una universidad en categorías y les asigna un puntaje. Las
variables lingüísticas que tendremos en cuenta son: producción intelectual (P),
Experiencia docente (E), Títulos universitarios (T) y la variable de decisión que
denominaremos Clasificación (C).
El universo de la variable producción intelectual es un rango de valores que
comienza en cero, y que corresponde al puntaje asignado por el comité de
credenciales a la producción intelectual del profesor.
El universo de la variable experiencia docente es un rango de valores que
comienza en cero, y que corresponde al número de años de experiencia docente
del profesor.
El universo de la variable Títulos Universitarios es un rango de valores que
comienza en 400 y termina en 1000, y que corresponde al puntaje asignado por el
comité de credenciales a los títulos universitarios del profesor, dependiendo de si
estos son títulos profesionales, de especialización, de maestría, o de doctorado.
El universo de la variable clasificación es un rango de valores que comienza en
400 y termina en 2.050 y que corresponde al puntaje final de clasificación
asignado al profesor.
Las funciones de pertenencia de las variables lingüísticas, con las respectivas
particiones del universo del discurso (Figuras 7.19, 7.20, 7.21, 7.22), vienen dadas
por:
Producción intelectual (P)
Figura 7.19
ALTA MEDIA BAJ A
µ(P)
Puntos de
producción
intelectual
0.8
1
0.2
0.4
0
0.6
0
40 20 100 80 60 120
183
Experiencia docente (E)
Figura 7.20
Títulos universitarios (U)
Figura 7.21
Clasificación (C)
Figura 7.22
ALTA MEDIA BAJ A
µ(E)
Experiencia
docente en
años
0.8
1
0.2
0.4
0
0.6
0
4 2 10 8 6 12
0.8
1
Asociado
0.2
0.4
0
0.6
400
800 1200
1600
Asistente
Auxiliar
µ(C)
Puntos de
clasificación
2050
850 1250 1650
Titular
ALTO MEDIO
BAJ O
µ(T)
Puntos por
títulos
universitarios
0.8
1
0.2
0.4
0
0.6
400 600 500 900 800 700 1000
184
La base de conocimiento puede contener hasta 27 reglas, las supondremos
posibles todas.
R
1
: SI T=bajo y E=baja y P=baja ENTONCES C=Auxiliar.
R
2
: SI T=bajo y E=baja y P=media ENTONCES C=Auxiliar.
R
3
: SI T=bajo y E=media y P=baja ENTONCES C=Auxiliar.
R
4
: SI T=medio y E=baja y P=baja ENTONCES C=Auxiliar.
R
5
: SI T=medio y E=media y P=media ENTONCES C=Asistente.
R
6
: SI T=medio y E=media y P=baja ENTONCES C=Asistente.
R
7
: SI T=medio y E=baja y P=media ENTONCES C=Asistente.
R
8
: SI T=bajo y E=media y P=media ENTONCES C=Asistente.
R
9
: SI T=alto y E=baja y P=baja ENTONCES C=Asistente.
R
10
: SI T=bajo y E=alta y P=baja ENTONCES C=Asistente.
R
11
: SI T=bajo y E=baja y P=alta ENTONCES C=Asistente.
R
12
: SI T=alto y E=media y P=media ENTONCES C=Asociado.
R
13
: SI T=medio y E=alta y P=media ENTONCES C=Asociado.
R
14
: SI T=medio y E=media y P=alta ENTONCES C=Asociado.
R
15
: SI T=alto y E=baja y P=media ENTONCES C=Asociado.
R
16
: SI T=bajo y E=alta y P=media ENTONCES C=Asociado.
R
17
: SI T=medio y E=baja y P=alta ENTONCES C=Asociado.
R
18
: SI T=bajo y E=media y P=alta ENTONCES C=Asociado.
R
19
: SI T=alto y E=media y P=baja ENTONCES C=Asistente.
R
20
: SI T=medio y E=alta y P=baja ENTONCES C=Asistente.
R
21
: SI T=bajo y E=alta y P=alta ENTONCES C=Asociado.
R
22
: SI T=alto y E=baja y P=alta ENTONCES C=Asociado.
R
23
: SI T=alto y E=alta y P=baja ENTONCES C=Asistente.
R
24
: SI T=alto y E=alta y P=media ENTONCES C=Asociado.
R
25
: SI T=alto y E=media y P=alta ENTONCES C=Titular.
R
26
: SI T=medio y E=alta y P=alta ENTONCES C=Titular.
R
27
: SI T=alto y E=alta y P=alta ENTONCES C=Titular.
Consideremos el caso de un profesor al que el comité de credenciales le asignó
120 puntos por su producción intelectual, además tiene una experiencia docente
de 9 años, y una asignación de 800 puntos por títulos universitarios.
Los valores no difusos de entrada son
P=120 puntos, E=9 años, T=800 puntos.
Después del proceso de fuzificación obtenemos,
P=0 baja, 0 media, 1 alta.
E=0 baja, 0.75 media, 0.25 alta.
185
T=0 bajo, 0 medio, 1 alto.
Las reglas activables son R
25
y R
27
A
25
=mín{1,0.75,1}=0.75
A
27
=mín{1,0.25,1}=0.25
Si en lugar de intersección, usamos el producto como t-norma (Figuras 7.23, 7.24),
en este caso en particular, obtendríamos los mismos resultados.
B
25
=B
27
=Titular
A
25
× B
25
es,
Figura 7.23
A
27
× B
27
es,
Figura 7.24
La composición supremo-mínimo (Figura 7.25) es:
0.8
1
0.2
0.4
0
0.6
1600 2050
1650
Titular
0.75 0.75
0.8
1
0.2
0.4
0
0.6
1600 2050
1650
Titular
0.25
186
Figura 7.25
Debemos calcular el área del trapecio A=A
1
+A
2
+A
3
300 5 . 1237 5 . 1537
1650
2050
75 . 0 75 . 0
2050
1650
1
= − = = =

x dx A
que es equivalente a (2050-1650)×0.75.
37 . 9 1 . 1228 5 . 1237
5 . 1637
1650
75 . 0 75 . 0
1650
5 . 1637
2
= − = = =

x dx A
Que es equivalente a (1650-1637.5)×0.75
( )
06 . 14
2
75 . 0 1600 5 . 1637
3
=
× −
= A
Que es equivalente a; ( )

− =
5 . 1637
1600
50
1
3
32dx x A
43 . 323
3 2 1
= + + =

A A A A
i
0.8
1
0.2
0.4
0
0.6
1600 2050
1650
Distribución
posibiliística de salida
0.75
A
1
A
2
A
3
187
555000
1650
2050
375 . 0 75 . 0
2
2050
1650
1
= = =

x xdx M
157 . 15410
5 . 1637
1600
375 . 0 75 . 0
2
1600
5 . 1637
2
= = =

x xdx M
( ) 34 . 22851
1600
5 . 1637
16
150
1
32
2 3
5 . 1637
1600
50
1
3
= − = − =

x x dx x M
497 . 593261
3 2 1
= + + =

M M M M
i
28 . 1834
43 . 323
497 . 593261
= = x que es el puntaje asignado al profesor.
7.2 Factores de Certeza
Un factor de certeza (FC) es un valor numérico que expresa el grado en que
debemos aceptar una conclusión determinada, basados en un conjunto de
evidencias.
Estos factores de certeza se utilizaron inicialmente en el sistema experto Mycin,
pero posteriormente se han hecho muy populares en numerosos sistemas. Estos
factores gozan de gran aceptación por la sencillez de su uso, a pesar de ser un
recurso poco formal, aunque avalado matemáticamente en tiempo posterior a su
aparición, por los trabajos en la teoría de la evidencia de Dempster y Shaffer.
Los factores de certeza nos permiten cuantificar de una manera sencilla, el grado
de creencia o no en una conclusión dada, a partir del soporte de un conjunto de
evidencias.
Existen dos escalas de valoración, que son las más utilizadas:
La primera escala corresponde al intervalo [0,1], y aunque aparecen marcados
algunos valores de referencia la escala no es discreta, sino continua. En esa
0 0.2 0.1 0.5 0.4 0.3 0.6 0.9 0.8 0.7 1
-1 -0.6 -0.8 0 -0.2 -0.4 +0.2 +0.8 +0.6 +0.4 +1
188
escala un factor de certeza de 1, significa que a partir de las evidencias estamos
completamente seguros en que se da la conclusión. Por el contrario, un factor de
certeza de 0, significa que a partir de las evidencias estamos completamente
seguros en que no se da la conclusión. Por otra parte, los valores intermedios
entre estos dos extremos, señalan diferentes grados de evidencia en favor de la
conclusión. Así por ejemplo, factores de certeza menores que 0.5, se consideran
poca evidencia en favor de la conclusión (en muchos sistemas se desechan reglas
con esos factores de certeza) y factores de certeza entre 0.5 y 0.75 se consideran
evidencia media en favor de la conclusión, mientras que factores de certeza
mayores que 0.75 se consideran evidencia alta en favor de la conclusión.
La segunda escala corresponde al intervalo [-1,+1], la cual posee dos semi-ejes
continuos con origen en cero. El semi-eje positivo señala grados en favor de la
conclusión y se aplica lo dicho para la primera escala (salvo para el cero). El
semi-eje negativo señala grados en contra de la conclusión, así por ejemplo un
factor de certeza de –1, indica una certeza total en que la conclusión es contraria a
la propuesta.
Valores intermedios del semi-eje negativo, indican grados de certeza contrarios a
la conclusión. El cero es una valoración neutra, que señala que la evidencia no es
suficiente o no es aplicable, para concluir en favor o en contra de la conclusión.
Hay que tener en cuenta que no sólo hay un factor de certeza global de la regla,
asociado a la conclusión de la misma, sino que también las condiciones de la
premisa de una regla se pueden ver satisfechas de una manera parcial, indicada
por un factor de fiabilidad, generado por incertidumbre de los hechos externos al
sistema. Esto implica que es necesario que el motor de inferencia disponga de un
mecanismo de cálculo del coeficiente de certeza de una conclusión, en función de
los coeficientes de las condiciones de la premisa y/o del coeficiente general de la
regla de producción correspondiente. Además debe considerar la posibilidad de
acumulación de evidencia cuando varias reglas concluyen sobre un mismo hecho.
El manejo de todas estas situaciones es el siguiente:
1. Combinación de certezas para una sola regla que concluye en un hecho:
a. Si la conclusión no tiene coeficiente de certeza: si no aparece un factor
de certeza explícito en una regla, se asume por defecto que es 1.
Entonces el coeficiente de la conclusión es igual al mínimo de los
coeficientes de las condiciones de la premisa. Ejemplo,
Condición-1 y Condición-2 ⇒ Conclusión
(FC=0.5) (FC=0.3) (FC=0.3)
b. Si la conclusión tiene coeficiente de certeza: El coeficiente de la
conclusión es igual al mínimo de los coeficientes de las premisas,
189
multiplicado por el coeficiente de la regla, Ejemplo, supongamos que FC
de la regla es 0.5 y FC de condición-1 es 0.5 y FC de condición-2 es 0.3.
Entonces el factor de certeza de la conclusión es mínimo
{0.5,0.3}*0.5=0.15
Condición-1 y Condición-2 ⇒ Conclusión (FC=0.5)
(FC=0.5) (FC=0.3) (FC=0.15)
2. Acumulación de certeza cuando varias reglas concluyen sobre un mismo
hecho:
a. Si FC1 y FC2 son ambos positivos: sea FC1 el coeficiente de certeza de
la conclusión cuando lo es de Regla1, FC2 el coeficiente de certeza de
la conclusión cuando lo es de Regla2; entonces el factor de certeza
acumulado viene dado por
FC(acumulado)=(FC1+FC2) - (FC1*FC2)
Por ejemplo si la regla R1 concluye hecho-3 con coeficiente FC1=0.3
y la regla R2 concluye hecho-3 con coeficiente FC2=0.2, se produce
una acumulación de la certeza sobre ese hecho-3 (va apareciendo
como “más cierto” cada vez). El factor acumulado que se atribuye al
hecho-3 será de 0.44=0.5-0.06.
Esta regla se puede justificar de un modo gráfico diciendo que si
tenemos una certeza de 0.3 para la conclusión (a partir de la regla1)
y se nos ofrece una plausibilidad adicional (a partir de la regla2) de
0.2, se incrementa la certeza que teníamos “aproximándola” hacia la
certeza absoluta (FC=1) en un 20% de la cantidad que le “faltaba”
para llegar a 1 (en este caso faltaba 0.7 y por lo tanto se produce un
incremento de 0.14)
0 1
0.3
Certeza absoluta
Falta 0.7 hasta 1
0.14
0.44
Certeza adicional
aportada por R2
Certeza de R1
190
b. Si FC1 y FC2 son ambos negativos: similar al caso anterior, con la
diferencia de que ambos factores de certeza son negativos. En este
caso, el factor de certeza acumulado viene dado por,
FC(acumulado)=(FC1+FC2) +(FC1*FC2)
c. Si FC1 y FC2 son de diferente signo: sean |FC1| y |FC2|, los valores
absolutos de los factores de certeza FC1 y FC2 respectivamente. En
este caso, el factor de certeza acumulado viene dado por,
) FC2 , FC1 mínimo( 1
FC2 FC1
) (acumulado FC

+
=
3. Más de una conclusión. Si se necesita calcular factores acumulados sobre la
base de combinar conclusiones separadas en vez de condiciones separadas:
a. Conjunción de conclusiones : viene dada por,
FC[conclusión1 y conclusión2] = mínimo (FC(conclusión1),
FC(conclusión2))
b. Disyunción de conclusiones: viene dada por,
FC[conclusión1 ó conclusión2] = máximo (FC(conclusión1),
FC(conclusión2))
7.3 Razonamiento No Monotónico
Mediante el empleo de la lógica formal, la verdad se puede dar o se puede deducir
con igual seguridad. Una vez establecida la verdad, siempre es verdadera. Más
aún, la verdad deducida nunca genera contradicción alguna, siempre que ninguna
contradicción exista en los axiomas.
En razón de estas características, la lógica de predicados es un sistema de
razonamiento monotónico. Por “monotónico” se entiende “moverse solamente en
una dirección”, lo que quiere decir que la lógica de predicados es un sistema que
se mueve en una sola dirección, aquella en la que continuamente se agrega la
verdad.
En un sistema de razonamiento monotónico el número de hechos conocidos que
sean verdaderos en cualquier momento siempre es creciente, nunca decreciente.
191
Estas características limitan el alcance hasta el cual se pueden aplicar los
sistemas de lógica pura en el mundo real. Los procesos de razonamiento que se
han de aplicar a problemas prácticos no estructurados, deben tener en cuenta por
lo menos lo siguiente:
• La información disponible con frecuencia está incompleta, por lo menos en
cualquier punto de decisión dado.
• Las condiciones cambian en el tiempo.
Al tratar con estas dificultades, los solucionadores humanos con frecuencia
aumentan la verdad absoluta con suposiciones que están sujetas al cambio, dada
mayor información. Estas creencias tentativas se basan generalmente en
supuestos que se hacen a la luz de la ausencia de evidencias contrarias.
Un sistema de razonamiento no monotónico incluye por lo general un conjunto de
premisas que se mantienen como verdades inmutables. Adicionalmente a las
premisas, el sistema conserva una colección de creencias tentativas: porciones de
conocimientos que son explícitamente reconocidos como posiblemente incorrectos
porque son supuestos o creencias deducidas de suposiciones. Para cada una de
las creencias tentativas el sistema mantiene un registro de dependencia que sigue
la trayectoria de la creencia versus su justificación: los hechos, creencias, e
inferencias que fueron empleadas para generar las creencias tentativas.
El incremento en potencia y flexibilidad del razonamiento por omisión hace de los
sistemas de razonamiento no monotónico, sistemas especialmente valiosos para
los dominios de solución de problemas como planeación y diseño, que requieren
un número grande de supuestos tentativos basados en información parcial.
Por ejemplo, consideremos una base de conocimiento extremadamente simple,
que consta únicamente de un hecho y una regla:
H
1
: Piolín es un canario.
R
1
: Todos los canarios vuelan.
A partir de ese hecho y de la regla, se infiere un nuevo hecho
H
2
: Piolín vuela.
Ahora, supongamos que agregamos un nuevo hecho a la base de conocimiento,
H
3
: Piolín se murió.
Al agregar H
3
a la base de conocimiento, H
2
debería de desaparecer, porque ya
Piolín no vuela (volaba), es decir H
2
ya no es verdadero, sin embargo en los
192
sistemas monotónicos se mantiene, porque en esos sistemas la base de hechos
nunca decrece, siempre es monotónica creciente.
7.4 Ejercicios
1. Considere un proceso cuyo estado está caracterizado por las variables
lingüísticas presión y temperatura y una variable de acción representada
por la apertura de una válvula de control.
El universo de la variable presión es el rango [0,10] Horse Power (HP),
mientras que el universo de la variable temperatura es el rango [50,200] grados
centígrados. Para la válvula de control, la apertura y cierre en porcentaje con
rango [-100,+100].
La partición de los universos de las variables lingüísticas, viene dado por:
0.8
1
ALTA
0.2
0.4
0
0.6
50
100 75 175 150 125 200
MEDIA BAJ A
µ
t
t [°C]
0.8
1
ALTA
0.2
0.4
0
0.6
MEDIA
BAJ A
µ
P
P[hp]
0 2 1 5 4 3 6 9 8 7 10
193
Considera un estado del proceso representado por, P=7hp, t=150°C
Halle la acción de control necesaria, utilizando una composición supremo-
mínimo.
2. Resuelva el mismo problema anterior, pero utilizando una composición
supremo-producto.
3. Dada la regla: SI (Existe un problema en la fuente de energía) y (el puerto
de la CPU ha sido cerrado) y (el voltaje de entrada a la CPU es menor a 4.5
voltios) ENTONCES (Existe una evidencia (0.9) que sugiere que la fuente
de energía ha fallado) y dados los hechos:
H
1
: Existe un problema en la fuente de energía (0.72)
H
2
: El puerto de la CPU se ha cerrado (0.4)
H
3
: El voltaje de entrada en la CPU es 3.8 voltios
¿Cuál será el factor de certeza de la conclusión?
4. En una prueba de diagnóstico para automóviles, se pueden lograr las
siguientes conclusiones, cada una con los factores de certeza asociados:
C
1
: El problema requiere atención inmediata (0.8)
C
2
: Existe un problema en el sistema eléctrico (0.6)
C
3
: Existe un cortocircuito en el sistema eléctrico (0.4)
C
4
: Existe una falla en el computador de control de flujo (0.2)
Halle el factor de certeza de que exista un problema en el sistema eléctrico,
que requiera atención inmediata, y que el problema es un corto circuito, o una
falla en el computador de control de flujo.
5. ¿Es un hecho o se trata de una creencia el que...
a [%]
0.8
1
Abrir
0.2
0.4
0
0.6
-100%
0 +100%
No operar Cerrar
µ
a
194
a. Los viajes de vacaciones con el carro propio, proporcionan más
reposo y tranquilidad que los efectuados a base de otros medios de
transporte?
b. Las vacaciones de semana santa son las más cortas?
c. Son las vacaciones tanto más bonitas cuanto más se viaja?
d. Los preparativos de la vacaciones propiamente no se pueden
considerar perfectamente vacaciones?
e. Las amistades hechas durante las vacaciones no duran más que lo
que duren éstas?
195
BIBLIOGRAFÍA
[1] Arteche J . ¿Máquinas más expertas que los hombres? Enciclopedia práctica
de la informática aplicada No. 40, Madrid 1986.
[2] Briot M., Arnaud R. La visión de los Robots. Mundo Científico, No. 53,
1985.
[3] Casacuberta F., Vidal E. Reconocimiento Automático del Habla.,
Marcombo Editores, 1987.
[4] Cuena J . Inteligencia Artificial: Sistemas Expertos. Alianza Informática,
Madrid, 1986.
[5] Charniak, Mcdermott. Introduction to Artificial Intelligence. Addison-Wesley,
1986.
[6] Frenzel L. Artificial Intelligence and Expert Systems Fundamentals.
Heathkit Educational Systems, 1987.
[7] Giannesini, Kanoui, Pasero, Caneghem. PROLOG. Adisson-Wesley, 1989.
[8] Habert R. Seminario sobre Introducción al Control Fuzzy. Barrancabermeja,
1995.
[9] Kasabov N. Foundations of Neuronal Networks, Fuzzy Systems, and
Knowledge Engineering. MIT Press, 1998.
[10] Kowalski R. Lógica, Programación e Inteligencia Artificial. Editorial Díaz de
Santos, 1986.
[11] Mariani J . El reconocimiento de la palabra. Mundo Científico No. 53,
1985.
[12] Nilsson N. J . Principles of Artificial Intelligence. Springer Verlag, 1981.
[13] Pazos J . Inteligencia Artificial. Editorial Paraninfo, Madrid, 1987.
[14] Rich E., Knight K. Inteligencia Artificial. Editorial McGraw-Hill, 1994.
[15] Rolston D. Principios de Inteligencia Artificial y Sistemas Expertos. McGraw-
Hill, 1990.
196
[16] Russell S., Norving P. Inteligencia Artificial – Un enfoque moderno. Prentice-
Hall, 1996.
[17] Sánchez J .P., Beltrán. Sistemas Expertos – Una metodología de
Programación. Macrobit – Rama, México, 1990.
[18] Spector L., et al. Advances in Genetic Programming. MIT Press, 1999.
[19] Stan F. Artificial Minds. MIT Press, 1997.
[20] Staugaard A. Robotic and AI. Prentice-Hall, 1987.
[21] Thomas D., et al. Artificial Intelligence: Theory and Practice. Addison-
Wesley, 1995.
[22] Winston P. Inteligencia Artificial (Tercera Edición), Addison-Wesley
Iberoamericana, 1994.
[23] Zimmermann H.J . Fuzzy Sets, Decision Making and Expert Systems.
Kluwer Academic Publishers, 1987.
Recursos de Inteligencia Artificial en Linux:
http:// www.linux.org/apps/all/scientific/AI.html

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.