Agentes Inteligentes. Tipos y Tareas.
1. Definición de Agente Inteligente.
Dentro del lenguaje propio de los agentes inteligentes, describiremos algunas de sus
terminologías tendentes al entendimiento de sus funcionalidad y aplicaciones, bien por
separado, o en conjunto:
Como concepto tenemos: Un agente inteligente es toda aquella entidad de software capaz
de percibir (proceso de percepción por medio de sensores), adquirir, procesar y dar salida a
una operación específica para la cual fue diseñado. Se entiende que, los agentes inteligentes
tienen sólo existencia como programas informáticos que corren en computadores.
Agente: un sistema informático autónomo, reactivo y proactivo, generalmente con un locus
de control central, que al menos puede comunicarse con otros agentes a través de algún tipo
de lenguaje de comunicación. Otra visión común de un agente es la de un objeto activo o un
proceso delimitado con la capacidad de percibir, razonar y actuar. Se discuten varios
atributos en el contexto de los sistemas basados en agentes: por ejemplo, autonomía,
benevolencia, introspección, movilidad, proactivo, racional, reactivo, situacionalidad,
habilidad social, veracidad.
Arquitectura de agentes: consiste en una metodología particular para construcción de
agentes. De manera más general, el término se usa para denotar una disposición particular
de estructuras de datos, algoritmos y flujos de control, que un agente usa para decidir qué
hacer. Las arquitecturas de agentes se pueden caracterizar por la naturaleza de su toma de
decisiones. Los tipos de arquitectura de agente de ejemplo incluyen arquitecturas basadas en
lógica (en las que la toma de decisiones se logra mediante deducción lógica), arquitecturas
reactivas (en las que la toma de decisiones se logra mediante un simple mapeo de la
percepción a la acción), arquitecturas de creencia-deseo-intención la toma de decisiones se
ve como un razonamiento práctico del tipo que realizamos todos los días para lograr
nuestros objetivos), y arquitecturas en capas (en las que la toma de decisiones se realiza a
través de la interacción de una serie de capas de realización de tareas).
Programación orientada a agentes: consiste en un enfoque para construir agentes, que
propone programarlos en términos de nociones mentalistas como creencias, deseos e
intenciones. Esta programación obedece a directrices de la metodología Comportamentista
de la Inteligencia Computacional, el empleo de la Programación Evolutiva y
la Programación Genética son de uso muy común.
Arquitectura BDI (Belief, Desire and Intention): un tipo de arquitectura de agente que
contiene representaciones explícitas de creencias, deseos e intenciones. Las creencias son la
información que un agente tiene sobre su entorno, que puede ser falsa; los deseos son
aquellas cosas que al agente le gustaría que se cumplieran, y las intenciones son aquellas
cosas que el agente está comprometido a hacer (con la intención de hacerlo) o
comprometido con lograrlo (con la intención de hacerlo). La arquitectura aborda cómo se
representan, actualizan y procesan las creencias, deseos e intenciones de los agentes para
determinar las acciones del agente. En las arquitecturas BDI, la toma de decisiones refleja el
razonamiento práctico que cada uno de nosotros llevamos a cabo todos los días en pos de
nuestros objetivos.
Una creencia es un concepto que describe los estados del mundo entre los que el agente no
puede discriminar. Y los deseos son los estados de cosas hacia los que el agente tiene una
disposición positiva. Las Intenciones por su lado, son las metas en las que el agente está
trabajando actualmente, es decir, aquellas que conducen a las acciones del agente.
Se denomina Formación de Coaliciones: al proceso en el que los agentes forman
coaliciones que trabajan juntas para resolver un problema conjunto mediante la
coordinación de sus acciones dentro de cada coalición. Cada agente pertenece exactamente
a una coalición. La formación de coaliciones incluye tres actividades:
1. La generación de estructura de coalición,
2. La optimización dentro de cada coalición y;
3. La división de pagos entre agentes.
Formar una coalición tiene mucho que ver con encontrar una estructura organizativa
apropiada.
2. Descripción de los Agentes Inteligentes
Bien sabemos que la IA se trata de razonamiento práctico: razonar para hacer algo. Un
acoplamiento de percepción, razonamiento y actuación comprende un agente. Un agente
actúa en un ambiente. El entorno de un agente bien puede incluir otros agentes. Un agente
junto con su entorno se llama Mundo.
Un agente podría ser, por ejemplo, un acoplamiento de un motor computacional con
sensores y actuadores físicos, llamados robot, donde el entorno es un entorno físico. Podría
ser el acoplamiento de una computadora de asesoramiento: un sistema experto con un
humano que proporciona información perceptiva y lleva fuera la tarea. Un agente podría ser
un programa que actúa de forma puramente computacional dentro entorno, comúnmente
llamado Agente de Software.
Los software antivirus como Panda, Kaspersky, Norton, Avast a cualquier otro. Son agentes
de software diseñados para tareas específicas. La siguiente figura muestra las entradas y
salidas de un agente. En cualquier momento, el agente podrá depender de:
Un Conocimiento A Priori (A Priori Knowledge). Sobre sí mismo y su ambiente.
Un historial de interacciones con su ambiente. El cuál está compuesto de:
Observaciones del ambiente actual y;
Experiencias Pasadas (Past Experiences) de acciones y observaciones previas, o
de algún otro tipo de data de la cual pueda aprender.
Metas (Goals) que debe tratar de alcanzar, o preferencias sobre los estados de su
mundo;
Habilidades (abilities), las cuales serán las acciones primitivas que este será capaz
de ejecutar.
Para dos agentes deterministas con el mismo conocimiento previo, historia y habilidades,
los objetivos deberían hacer lo mismo. Cambiar cualquiera de estos puede resultar en
diferentes comportamientos. Cada agente tiene un estado interno que puede codificar
creencias sobre su entorno y sí mismo. Puede tener metas que lograr, formas de actuar en el
ambiente para lograr esos objetivos, y varios medios para modificar sus creencias mediante
el razonamiento, percepción y aprendizaje. Esta es una visión que lo abarca todo de los
agentes inteligentes. Variando en complejidad desde un simple termostato, a un equipo de
robots móviles, a un sistema de asesoramiento diagnóstico cuyas percepciones y acciones
están mediadas por seres humanos, a la sociedad misma.
Formas de Representación de Conocimientos de un Agente:
Típicamente, un problema a resolver, o una tarea a realizar, es lo que constituye una
solución. Y esta solo se da de manera informal, como "entregar paquetes con prontitud” o,
“arreglar cualquier problema con el sistema eléctrico de la casa”. El conocimiento es la
información sobre un dominio que se puede utilizar para resolver problemas en ese
dominio. Resolver muchos problemas requiere mucho conocimiento, y este conocimiento
debe estar representado en la computadora como parte del diseño con la forma de un
programa para resolver problemas, debemos definir entonces, cómo se representará el
conocimiento.
Un esquema de representación de conocimientos es la forma del conocimiento que se utiliza
en un agente. Una representación de algún conocimiento es la representación interna del
conocimiento. Una base de conocimiento es la representación de todo el conocimiento que
es almacenado por un agente. Uno de los agentes inteligentes más conocidos a nivel
mundial ha sido el famoso videojuegos Pacman. Cuyo nombre proviene de la onomatopeya
japonesa paku, que significa abrir y cerrar la boca.
Pac-Man es una bola redonda que se caracteriza (sobre todo en los primeros juegos) a
comer todo lo que está a su paso. Su esposa es Ms. Pac-Man, que junto con ella tienen un
hijo llamado Pac-Man Jr. Sus principales enemigos son Blinky, Pinky, Inky y Clyde.
Pacman presenta varias características interesantes. Su creador, el japonés Toru Iwatani, lo
diseñó para un público femenino. Es decir, se diseñó alejado de la violencia de los juegos
masculinos. No obstante, es un juego que no tiene fin, por lo que se le considera dentro de
la categoría de juegos adictivos.
Pacman y sus amigos son realmente agentes. Cada uno maneja sus propias estrategias y se
circunscriben a un único mundo. Su ambiente se desarrolla dentro de lo que los humanos
conocemos como laberinto, en el cual los agentes y sus enemigos se enfrentan. Cada
fantasma persigue a Pacman a su manera. Es decir, existen estrategias independientes y el
agente (Pacman) debe aprender a sortear los obstáculos de cada enemigo por separado.
Debe aprender de cada uno de ellos. Cada enemigo tiene un color, personalidades y
comportamientos distintos. A medida que el juego avanza en niveles, se dice que el agente
va aumentando su conocimiento sobre su entorno, por ende, sobre su mundo.
Si lo visualizamos de manera individual, Pacman tiene dos enemigos, los fantasmas y el
tiempo. En ellos subyacen las estrategias para su supervivencia. El juego, aunque parezca
realmente un juego, no es más que un Simulador de Toma de Decisiones. Donde la
racionalidad y la estrategia prevalecen. Cada vez que Pacman sale, representa una batalla. Y
cada batalla representa a un conjunto de estrategias. Estrategia es sinónimo de
Supervivencia. Pacman se desarrolla en un entorno de cambios constantes y donde cada
cambio representa un riesgo latente. Pacman ha enseñado a sus usuarios a pensar
estratégicamente durante sus 40 años de historia.
Definiendo ¿Qué es una Solución?
Dada una descripción informal de un problema, incluso antes de considerar una
computadora, un diseñador de base de conocimientos debería determinarse qué constituiría
una solución. Esta pregunta surge no solo en la IA, sino en cualquier diseño de software.
Gran parte de la ingeniería de software implica refinar la especificación del problema.
Normalmente, los problemas no están bien especificados. No solo suele haber mucho sin
especificar, sino que las partes no especificadas tampoco se pueden rellenar arbitrariamente.
Por ejemplo, si le pide a un agente comercial que averigüe toda la información sobre
complejos turísticos que puedan tener problemas de económicos, no se desea que el agente
devuelva la información sobre todos los complejos turísticos, aunque toda la información
solicitada esté en el resultado. Sin embargo, si el agente comercial no tiene un conocimiento
completo sobre los resorts, devolver toda la información puede ser la única forma para
garantizar que toda la información solicitada esté allí.
Del mismo modo, usted no quiere que un robot, cuando se le pida que lleve toda la basura a
la basura, que primero vaya a la basura y recoja toda la basura, usted la vea, y luego proceda
a llevar toda la basura a la basura. Eso es redundante y no se constituye en ninguna forma
de razonamiento por sentido común. Aunque esta puede ser la única forma de garantizar
que se ha llevado toda la basura a la basura. Mucho trabajo en IA está motivado por
razonamiento de sentido común; queremos que la computadora pueda hacer conclusiones de
sentido común sobre los supuestos no declarados, y eso ha sido un constante problema en el
diseño de agentes inteligentes.
Soluciones Óptimas:
Una solución óptima a un problema es aquella que es la mejor solución según alguna
medida de calidad. Esta medida es típicamente especificada como ordinal, donde solo
importa el orden. Sin embargo, en algunas situaciones, como cuando se combinan varios
criterios, o cuando se razona bajo incertidumbre, necesita una medida cardinal, donde las
magnitudes relativas también importan. Un ejemplo de una medida ordinal es que el robot
saque tanta basura como sea posible; cuanta más basura pueda sacar, mejor. Como ejemplo
de una medida cardinal, es posible que desee que el robot tome gran parte de la basura y la
lleve hasta el bote de basura, minimizando la distancia viajada, y especificar explícitamente
una compensación entre el esfuerzo requerido y la proporción de basura que se saca. Puede
que sea mejor perder algo de basura que perder demasiado tiempo o energía.
Soluciones Satisfactorias:
A menudo, un agente no necesita la mejor solución a un problema, sino que solo necesita
una solución. Una solución satisfactoria es aquella que es buena y suficiente de acuerdo con
alguna descripción de qué soluciones son adecuadas. Por ejemplo, una persona puede
decirle a un robot que debe sacar toda la basura, o decirle para sacar tres bultos de basura.
Soluciones Aproximadamente Óptimas:
Una de las ventajas de una medida cardinal es que permite aproximaciones. Una solución
Aproximadamente Óptima es aquella cuya medida de calidad está cerca de la mejor que
teóricamente podría haberse obtenido. Normalmente, los agentes no necesitan soluciones
óptimas a los problemas; solo deben acercarse lo suficiente.
Por ejemplo, es posible que el robot no necesite recorrer la distancia óptima para sacar la
basura, pero es posible que solo sea necesario dentro de, digamos, el 10% de la distancia
óptima. Para algunos problemas, es mucho más fácil computacionalmente obtener una
solución aproximadamente óptima que obtener una solución óptima pura. Sin embargo, para
otros problemas, es (asintóticamente) igual de difícil garantizar la búsqueda una solución
aproximadamente óptima, que garantizar la búsqueda de una solución óptima pura. Algunos
algoritmos de aproximación garantizan que una solución esté dentro de algún rango de
óptimo, pero para algunos otros algoritmos no hay garantías disponibles.
Soluciones Probables:
Una solución probable es aquella que, aunque en realidad no sea una solución al problema,
es probable que sea una solución. Este es una manera de aproximar, de manera precisa, una
solución satisfactoria. Por ejemplo, en el caso de que el robot de entrega pueda dejar caer la
basura o no recogerla cuando lo intente, es posible que necesite que el robot esté 80%
seguro de que ha recogido al menos tres artículos de basura. A menudo es deseable
distinguir la tasa de error de falso positivo (la proporción de las respuestas dadas por la
computadora que no son correctas), de la tasa de error de falso negativo (que es la
proporción de aquellas respuestas no dadas por la computadora, pero que son de hecho
correctas). Algunas aplicaciones son mucho más tolerantes con uno de estos errores que con
los otro. No obstante, una de las mejores metodologías para la búsqueda de soluciones, es la
que hoy día conocemos como Computación Blanda, o Softcomputing:
El Softcomputing o Computación Blanda:
La computación blanda abarca un conjunto de técnicas y algoritmos computacionales que se
utilizan para tratar con sistemas complejos. La informática blanda explota la tolerancia dada
para la imprecisión, la verdad parcial y la incertidumbre para un problema en particular. Es
un término aplicado a un campo dentro de la informática que se caracteriza por el uso de
soluciones inexactas para tareas computacionalmente difíciles que deben ejecutar ciertos
tipos de agentes inteligentes.
La computación blanda consiste en el uso de cálculos aproximados para proporcionar
soluciones imprecisas pero utilizables a problemas computacionales complejos. El enfoque
permite soluciones para problemas que pueden ser insolubles, o que requieren demasiado
tiempo para resolverlos con el hardware actual. La informática blanda a veces se denomina
inteligencia computacional.
La informática blanda proporciona un enfoque para la resolución de problemas utilizando
medios distintos a las computadoras. Con la mente humana como modelo a seguir, la
informática blanda es tolerante con las verdades parciales, la incertidumbre, la imprecisión
y la aproximación, a diferencia de los modelos informáticos tradicionales. La tolerancia de
la informática blanda permite a los investigadores abordar algunos problemas que la
informática tradicional no puede procesar.
La informática blanda utiliza campos de estudio de componentes en: Lógica
difusa; Aprendizaje automático; Razonamiento probabilístico; Computación
evolutiva; Perceptrón; Algoritmos genéticos; Algoritmos diferenciales; Máquinas de
vectores de soporte; Metaheurísticas; Inteligencia de enjambres; Optimización por
algoritmos de colonias de hormigas; Optimización por algoritmos de enjambres de
partículas; Redes bayesianas; Redes neuronales artificiales y Sistemas expertos, entre otros.
El Soft Computing, y en particular la tecnología difusa, pueden desempeñar un papel
importante en el diseño de agentes inteligentes. Los beneficios prometedores se derivan de
enfoques bien fundamentados orientados a la informática blanda para gestionar mejor los
modelos de comportamiento de los agentes, especialmente cuando las interacciones ocurren
en un entorno caracterizado por la imprecisión, la incertidumbre y la verdad parcial.
Los agentes o sistemas de agentes múltiples esbozan comportamientos inteligentes al
describir y gestionar actividades computacionales compartidas entre comunidades de
entidades de gran tamaño. Aunque un agente posea un conocimiento parcial y una
capacidad deductiva reducida; puede adquirir competencias más amplias gracias a los ricos
esquemas de interacción-cooperación. Está claro que la tecnología de agentes se adapta
mejor a los aspectos de todos esos problemas que pueden describirse en términos de
esfuerzos cooperativos. Aunque un agente posea un conocimiento parcial y una capacidad
deductiva reducida; puede adquirir competencias más amplias gracias a los ricos esquemas
de interacción-cooperación.
3. Trabajo Cooperativo entre Agentes.
El Trabajo Cooperativo Asistido por Computadora, Computer Supported Cooperative
Works (CSCW): es un área de investigación que estudia el uso de tecnologías de la
computación y las comunicaciones para apoyar las actividades de grupo. Esta área
concierne tanto al desarrollo de software como a los factores sociales en el trabajo en grupo.
Por ejemplo, las herramientas de la G Suite de Google y el Microsoft Team.
El METATEM concurrente: es un lenguaje de programación de agentes basado en lógica,
en el que los agentes se programan dándoles una especificación lógica temporal del
comportamiento que se pretende que exhiban; los agentes ejecutan directamente su
especificación para generar su comportamiento. Los agentes programados podrán o no,
manejarse dentro de entornos deterministas. Un entorno en el que no hay incertidumbre
sobre el efecto que tendrá una acción. Pocos entornos del mundo real son deterministas.
La Inteligencia artificial distribuida (DAI): interpretado de manera más amplia, consiste en
el estudio y la construcción de sistemas compuestos por entidades inteligentes que
interactúan. DAI está muy preocupado por los agentes y su coordinación. Los agentes
también pueden estar restringidos dentro de un ambiente episódico. Un Entorno episódico
es un entorno en el que las tareas de un agente se dividen en una serie de episodios
discretos, y la actuación del agente en un episodio no tiene ningún efecto en otros episodios,
aunque se les puede modelar estadísticamente. Los entornos episódicos simplifican el
proceso de toma de decisiones de un agente, ya que alivian al agente de la necesidad de
razonar sobre la interacción entre el comportamiento actual y futuro.
Otro tipo de agentes son los denominados Agentes de Información. Los agentes de
información son aquellos que tienen acceso a fuentes de información múltiples,
potencialmente heterogéneas y distribuidas geográficamente. Los agentes de información
tienen que hacer frente a la creciente complejidad de los entornos de información modernos,
que van desde sistemas de información internos relativamente simples, pasando por
sistemas de bases de datos múltiples a gran escala, hasta la visionaria Info esfera en
Internet. Una de las principales tareas de los agentes es la búsqueda activa de información
relevante en dominios no locales por parte de sus usuarios u otros agentes. Esto incluye
recuperar, analizar, manipular e integrar información disponible de diferentes fuentes de
información.
Para la ejecución de cualquier acción los agentes necesitan interactuar.
Denominaremos Interacción a todo lo que ocurre ''entre 'agentes (interacción agente-
agente) y' 'entre' agentes y su entorno (interacción agente-entorno). Los agentes pueden
interactuar directamente a través de la comunicación verbal (mediante el intercambio de
información), e indirectamente a través de su entorno (observándose pasivamente unos a
otros o llevando a cabo activamente acciones que modifiquen el estado ambiental). Los
softwares antivirus trabajan con la denominada Inteligencia Colectiva gracias a esta
interacción permanente.
La interacción puede resultar en cambios en el estado interno y el curso futuro de actividad
de un agente. Una Interacción se puede caracterizar de acuerdo con su frecuencia,
persistencia, patrón, propósito, etc. Una distinción común es la que existe entre la
interacción deliberativa y la reactiva. Gran parte del trabajo en DAI se ocupa de la
interacción entre agentes. Formas de interacción que juegan un papel importante en DAI
son la cooperación y la competencia. Un tipo de interacción que juega un papel importante
en los contextos humanos, pero no en los sistemas técnicos, es para - y comunicación no
verbal (por ejemplo, por entonación y gesto).
4. Los Agentes y sus Interfaces
Un Agente de interfaz es un agente, generalmente un agente de software, que ayuda a sus
usuarios a realizar determinadas tareas. Por ejemplo, un agente de interfaz puede ocultar la
complejidad de una tarea difícil, capacitar y enseñar a un usuario humano y realizar
subtareas en nombre de un usuario. Los términos asistentes de software y asistente personal
se utilizan a menudo en este sentido. Los agentes de interfaz también juegan un papel
importante en trabajo cooperativo asistido por computadora.
La mayoría de las arquitecturas complejas del diseño de agentes posee Arquitectura en
Capas: una arquitectura de agente que está estructurada en varias capas, cada una de las
cuales típicamente representa un mayor nivel de abstracción de la capa debajo de ella. Se
pueden distinguir dos tipos de arquitecturas en capas: en capas horizontales (es decir, cada
capa está conectada directamente a la entrada sensorial y la salida de acción) y en capas
verticales (es decir, la entrada sensorial y la salida de acción se tratan como máximo con
una capa cada una).
Cuando se usa la metodología Comportamentista, un agente puede adquirir Actitudes
mentales. Una Actitud mental es una propiedad atribuida a un agente que describe su
estado interno. Por lo general, se distingue entre información o estados cognitivos (por
ejemplo, creencia y conocimiento), estados deliberativos o conativos (por ejemplo,
intención y compromiso) y estados motivacionales o afectivos (por ejemplo, deseo,
elección, preferencia y meta).
La Eficiencia de un agente puede ser evaluada por la denominada Eficiencia de Pareto: un
criterio para evaluar los resultados. Una solución es Pareto eficiente (óptimo de Pareto) si
no existe otra solución en la que ningún agente esté en peor situación y algún agente en
mejor situación.
Varios tipos de comportamientos pueden ser ajustados a un agente. Un comportamiento
Racional: comportarse de una manera adecuada o incluso óptima para el logro de la meta.
Un comportamiento Reactivo: (del comportamiento del agente) Capaz de mantener una
interacción continua con el entorno y de responder de manera oportuna a los cambios que
ocurren en él. (De arquitecturas de agentes).
Introducción a los Sistemas Expertos
1. Definición y Origen de los Sistemas Expertos
Entenderemos a un Sistema Experto, como a toda aquella entidad de software, o agente
inteligente, que auxilia en la solución de problemas complejos ayudando a diseñar nuevos
métodos y/o dispositivos, utilizando técnicas basadas en programación, incertidumbre y
razonamientos aproximados. Se constituyen como modelos computacionales de inteligencia
simulada capaces de generar conocimiento que pareciese devenirse de una inteligencia real,
y, mediante su representación, alcanzan a razonar tal cual lo haría un ser humano en su área
profesional. Quiere decir, son sistemas basados en procedimientos de deducción e
inferencia, o cualquier otro modelo de razonamiento, y su reacción o salida, se manifiesta
en un diagnóstico automatizado experto del problema tratado. Los sistemas expertos
pertenecen a la metodología simbólica de la Inteligencia Artificial.
Se le atribuye a Edward Feigenbaum, pionero especialista en sistemas de inteligencia
artificial y fundador del Knowledge Systems Laboratory de la Universidad de Stanford, el
haber dado origen a los fundamentos que rigen los aprendizajes e inferencias emitidas por
razonadores cibernéticos y modelos artificiales de la cognición altamente complejos. Fue en
1971, cuando Feigenbaum apeló a técnicas de exploración inteligente junto a la
experimentación recursiva, segmentaria y clasificatoria para dar vida a máquinas que
pareciesen realmente razonar por sí mismas, haciendo que la ciencia prestase un mayor
interés por la incipiente para la fecha, ingeniería del conocimiento. La ingeniería del
conocimiento alcanzó su cúspide de éxitos gracias al auxilio de LISP y Prolog pocos años
después.
(Rabunal & Dorado, 2006) aseguran que un sistema experto consiste en una rama de la IA
que utiliza un complejo entramado de jerarquías de reglas para ejecutar tareas que simulan
inteligencia. Por su lado, y según informa (Henderson, 2009), un sistema experto, es un
programa de computadora que codifica conocimientos y reglas de razonamiento para
deducir conclusiones y resolver problemas. El razonamiento, opuesto a cualquier
mecanismo de cálculo, debe asemejarse a lo que denominamos comportamiento inteligente.
(Liebowitz, S/F), afirma que, los sistemas expertos son sistemas capaces de ofrecer
soluciones a problemas específicos en un dominio dado. Se les diseña para responder a
consultas de la misma forma, y a un nivel comparable, como lo haría un experto humano en
su área. En atención a (Sumathi & Surekha, 2010, pág. 44 y ss.), los sistemas expertos son
una extensión de la computación tradicional, y, comúnmente, se ha dicho que pertenecen a
la denominada Computación de Quinta Generación.
La Primera Generación Computacional estuvo basada en válvulas termoiónicas, suiches y
cables. La Segunda Generación Computacional se coló a la par de la evolución del
transistor. La Tercera Generación Computacional, involucró tecnología de estado sólido. La
Cuarta Generación Computacional, ya era capaz de procesar inteligencia y se basó en
herramientas para usuarios finales. Pero, la Quinta Generación Computacional, introdujo
Inteligencia Artificial, siendo capaz de procesar lenguaje natural, reconocer imágenes, y
probar teoremas matemáticos.
Las Redes Neuronales por su lado, y que estudiaremos en otras lecciones de este curso,
emergen de la quinta generación. Éstas, son capaces de organizar algoritmos que aprenden
por sí mismos, algo que un sistema experto no puede hacer. Se les considera de la Sexta
Generación Computacional, dado que resuelven problemas sin intervención de expertos,
pero tienen aplicaciones diferentes, además, son capaces de evolucionar.
La ingeniería de sistemas expertos se conforma entonces, como una rama de la IA
encargada de diseñar programas computacionales con habilidades para la emulación de
inteligencia, tal como la que manejaría una persona con muchos años de experiencia en su
área. Los programas que la IA diseña, con la finalidad de darle solución a ciertos tipos de
problemas, y que, además, logran la capacidad experta de solucionarlos aplicándolos a las
tareas específicas del conocimiento en determinado campo o dominio de la tarea, se llaman
Sistemas Basado en Conocimiento o Sistemas Expertos.
Variados componentes forman parte de los denominados sistemas expertos. Por ejemplo: el
área del conocimiento intelectual humano que pretende ser capturado para su emulación, se
llama el dominio de la tarea, muy similar a la descrita en el apartado de la Ingeniería del
Conocimiento. La tarea se refiere a una cierta meta orientada, cuya sistematización se
dirige sobre la actividad de solucionar el problema. Por ejemplo: la programación de un
torno de control numérico, y/o, el reconocimiento de imágenes por patrones de similitud,
son tareas comunes de un sistema experto.
Pero, la persona, o grupo de personas, encargadas de desarrollarlos, son denominados
ingenieros del conocimiento. La construcción de un sistema experto para ser aplicado a un
área específica del conocimiento, es tarea de los ingenieros del conocimiento. De acuerdo a
(Zimmermann, 2001), un sistema experto inviste los siguientes atributos:
o Posee diferentes dominios para cada tipo de conocimiento específico.
Además, operacionaliza diferentes metodologías para la resolución de
problemas que incluyen a los conceptos del conocimiento base y su propio
motor de inferencias.
o El sistema experto debe pensar exactamente como un humano experto lo
hace.
o Su conocimiento base dinámico debe ser expandible y modificable. Además
de facilitar su acoplamiento con otros diferentes módulos de conocimiento.
o El sistema experto debe estar en condiciones de razonar bajo circunstancias
de incertidumbre e información insuficiente. Y a su vez, debe ser capaz de
operar la lógica del razonamiento probabilístico.
o El sistema experto debe ser capaz de aprender por experiencia.
Ahora bien, según (Liebowitz, S/F), una de las más resaltantes características de un sistema
experto, es su capacidad de explicar al usuario, la línea de razonamiento que guio al sistema
hasta la solución. En su desarrollo, siempre es recomendable reunir grupos de expertos en
vez de confiar en solo uno, o, unos pocos. Esto ofrece las siguientes ventajas:
o Se asegura que la base de conocimientos pueda ser completada;
o Se mejora la probabilidad de obtener conocimiento especializado en
subdominios del problema;
o Se incrementa la calidad del resultado final. Por ejemplo, cuando se logra
alcanzar confiabilidad y consenso entre expertos para el conocimiento
adquirido;
o Lo anterior asegura que los hechos, incluidos en la base de conocimientos,
sean los más importantes;
o Se mejora el entendimiento del dominio del conocimiento a través de las
discusiones, debates, e intercambio de hipótesis entre miembros del equipo;
o El conjunto de características previas alimenta las interacciones entre
expertos, y crea, hacia lo interno del proceso, una sinergia tal que, el
conocimiento adquirido por el grupo entero, logra ser mayor que la suma de
los conocimientos individuales;
o Entonces, si se involucra a múltiples expertos en el equipo de desarrollo, las
sesiones de adquisición de conocimiento hacen más flexible el producto
final.
Un Sistema Experto también presenta las siguientes características:
o Proporciona un rendimiento de alta calidad que resuelve problemas difíciles
en un dominio, de una forma tan buena como el mejor de los expertos
humanos.
o Es capaz de procesar una vasta cantidad de diferentes tipos de dominios
específicos. Procesando cada conocimiento con minucioso detalle.
o Aplica heurística para guiar los razonamientos que amplían los
conocimientos. Donde, además, esta heurística le ayuda a reducir el área de
búsqueda dentro del especio de soluciones.
o La característica más resaltante de un sistema experto se la proporciona su
Módulo de Explicaciones. Este le permite revisar su propia lógica e
informarle al usuario que ruta siguieron sus trenes de razonamiento y
porqué.
o Un Sistema Experto pertenece a la Metodología Simbólica de la Inteligencia
Artificial, a la quinta generación computacional, por ende, emplea
razonamiento simbólico en la resolución de problemas. Utiliza símbolos
para representar hechos, hipótesis, inferencias, conceptos, condiciones y
reglas.
o Un Sistema Experto puede advertir, modificar, actualizar, expandir y
manejar incertidumbres presentes en data irrelevante.
Las funciones del Módulo de Explicaciones, o aquel subsistema que explica las acciones
del sistema. Son facilitar la comprensión del diagnóstico automatizado ejecutado. Las
explicaciones pueden variar desde cómo desde el final se llegaron a soluciones intermedias
para justificar la necesidad de obtener datos adicionales. Hasta indicarles a los usuarios el
tipo de razonamiento utilizado para alcanzar las soluciones.
Muchos libros acerca de Sistemas Expertos tienden a resumir las Fases de Diseño en
sólo 5 etapas:
Etapa 1: La Identificación del Problema y la Delimitación del Espacio de Soluciones:
En esta etapa, el experto y el ingeniero del conocimiento interactúan para identificar
el problema y las ubicaciones de las soluciones. Aquí se estudian las características
del problema, sus alcances y se reflexiona sobre las técnicas apropiadas que
conduzcan a estas soluciones. Se determina la cantidad de recursos humanos,
económicos e informáticos necesarios. Se realiza el análisis de retorno de la
inversión. Las áreas del problema que pueden dar muchas dificultades se
identifican, y una solución conceptual para estas se presentan, además de las
especificaciones generales para el problema en su totalidad.
Etapa 2: Determinación del Método de Desarrollo:
Una vez superada la etapa 1, identificadas las características y tipo de problema,
además del tipo de solución que amerita. El siguiente paso entonces es proceder al
diseño del sistema. Mientras el experto proporciona la información relevante, el
ingeniero del conocimiento transforma estas ideas en símbolos usando lenguajes de
programación como LISP o Prolog. En esta etapa, varios Shell y herramientas
adicionales se adecúan para con ellas alcanzar penetrar el espacio de soluciones en
función de su idoneidad.
Etapa 3: Desarrollo del Primer Prototipo:
Esta etapa requiere de ciertas actividades primarias:
1. Decidir primeramente qué conceptos serán necesarios para alcanzar penetrar el
espacio de soluciones. Es decir, con qué cantidad de conocimiento se dispone.
2. Posterior a lo anterior, la construcción de conocimientos da inicio. Aquí se produce
una interacción fuerte entre el ingeniero y el experto, donde, el ingeniero necesitará
extraer la mayor cantidad de detalles posibles del experto para trasladarlos a un
lenguaje simbólico ya elegido.
3. Edificado ya el conocimiento, el ingeniero procede a decidir sus formatos de
representación.
4. Luego del paso previo, ya el prototipo puede ser construido.
Etapa 4: Planificación de un Diseño del Sistema (Prototipo) a Gran Escala:
Para este caso, entendamos que varias pruebas sobre un prototipo llevan al diseño de un
modelo. Se asume a un modelo como algo que ya funciona medianamente estable. Pero que
puede ser mejorado con experimentaciones posteriores.
Etapa 5: Puesta a punto Final, Mantenimiento y Planificación del Escalamiento.
En esta etapa ya los prototipos han pasado sus pruebas y se alcanza implementar el primer
modelo del sistema experto. Prestaciones, funcionalidad, velocidad, eficiencia, ajuste, tasa
de errores, consumo de recursos y energía, todas como variables del diseño, ya se han
identificado. El ciclo de vida, el mantenimiento y sus posibilidades de escalamiento, tanto
en dimensiones como en complejidad. Así como, tanto en grados de dificultad en la
evaluación de las tareas, como para establecer un eficiente flujo de trabajo para los procesos
ya han sido definidos. Ya nuestro sistema experto buscado, está listo para operar.
Por otro lado, tres elementos primordiales conforman a un sistema experto, una base de
conocimientos, una base de hechos y un motor de inferencias. En la siguiente página
estudiaremos cada una de ellas y sus funciones.
Ejemplos: hay muchos ejemplos de sistema experto. Algunos de ellos se dan a
continuación:
MYCIN: Uno de los primeros sistemas expertos basado en el encadenamiento hacia atrás.
Puede identificar varias bacterias que pueden causar infecciones graves y también puede
recomendar medicamentos según el peso de la persona.
DENDRAL: Era un sistema experto basado en inteligencia artificial utilizado para análisis
químicos. Utilizaba los datos espectrográficos de una sustancia para predecir su estructura
molecular.
R1 / XCON: Podría seleccionar software específico para generar un sistema informático
deseado por el usuario.
PXDES: podría determinar fácilmente el tipo y el grado de cáncer de pulmón en un
paciente basándose en los datos.
CaDet: Es un sistema de apoyo clínico que podría identificar el cáncer en sus primeras
etapas en los pacientes.
DXplain: También era un sistema de apoyo clínico que podría sugerir una variedad de
enfermedades según los hallazgos del médico.
Fundamentos de un Sistema Experto
En el año 1950, Alan Turing publicó un trabajo titulado "Machinery and Intelligence” con
el fin de indagar hasta qué punto las computadoras tienen inteligencia. Más tarde en 1965,
se empezaron a utilizar técnicas para la resolución de problemas que se caracterizaban por
la búsqueda heurística como modelo para la resolución de problemas, y con ellas, comenzó
la investigación y desarrollo de los sistemas expertos. Los Sistemas Expertos son programas
que aplican los conceptos de la inteligencia artificial. Es la pieza comercial y la que más
aplicación se le ha dado en Inteligencia artificial.
Podríamos decir que, un sistema experto es un sistema informático que intenta modelar el
conocimiento del dominio en un experto humano. Estos sistemas se pueden utilizar en lugar
de, o para ayudar, a los expertos humanos a tomar decisiones. Los sistemas expertos hoy día
son considerados parte de la Computación Cognitiva.
Se observó que los expertos humanos tienen un restringido dominio de experiencias y se
comenzó el desarrollo de sistemas que presentasen comportamientos inteligentes en
dominios muy limitados; como consecuencia de esta tendencia, se produjo un notable
desarrollo de Sistemas Expertos en diversos campos del saber humano: química, medicina,
geología, derecho, etc. La proliferación de sistemas expertos motivó que comenzase la
investigación acerca de cómo hacer que estos sistemas que mostraban inteligencia en su
comportamiento fuesen, además, capaces de aprender utilizando la retroalimentación.
Por último, los avances tecnológicos en Informática y los avances conseguidos en el
conocimiento del cerebro han provocado que resurjan con fuerza las redes neuronales en los
laboratorios de investigación sobre la I.A. en todo el mundo. El trabajo sobre redes
neuronales, junto con el trabajo en temas de vida artificial, ha ayudado a focalizar la
investigación actual en IA sobre los problemas relacionados con la conexión entre procesos
simbólicos, los sensores y efectores de los robots inmersos en un entorno físico.
La idea básica de estos programas es capturar en un ordenador la experiencia de una
persona experta en un área determinada del conocimiento, de tal modo que una persona no
experta pueda aprovechar esta información. Es por ello que se crearon sistemas expertos
que basándose en algunas reglas de acción (silogismos), y el análisis de probabilidades, nos
den una ayuda muy útil en todas las ramas de la acción humana. De este modo se crearon
sistemas expertos para tareas genéricas. Es decir, para la monitorización y el diagnóstico,
además de los trabajos de simulación de la realidad.
Las posibilidades de estos programas, aunque tiene sus limitaciones propias (al ser
un especialista en tan sólo un área pero un completo idiota en casi todas las otras
ramas del pensamiento humano y al ser sistemas basados en reglas fijas, donde se
pierden algunas veces la creatividad y el sentido común) son inmensas; y se les está
usando en gran medida para la monitorización y diagnóstico: como en plantas de
energía, grandes industrias, cohetes, control del tráfico aéreo, búsqueda de yacimientos
petrolíferos y hasta hospitales.
Otra de las ventajas de los Sistemas Expertos, es que estos pueden en cierto punto
manipular las reglas que se le han dado y sacar conclusiones a partir de ellas. En otras
palabras, puede descubrir nuevas posibilidades y guardarlas en su base de datos. Los
mecanismos de manipulación y deducción son, hasta cierto punto, independientes de la base
de datos. Una interrogante que surge al construir Sistemas Expertos es ¿Cómo sabremos
cuando tengamos éxito al construir un programa inteligente?
La respuesta es, se sabrá cuando la combinación de Software y Hardware nos dé como
resultado el que personas normales en nuestra sociedad no puedan determinar si quien ha
estado respondiendo a sus preguntas es un ser humano o una computadora, entonces
podremos decir que hemos logrado el objetivo de construir un programa inteligente bajo la
misma lógica de Turing.
2. Base de Conocimientos, Base de Hechos y Motores de Inferencia
La Base de Conocimientos: en escritos de (Henderson, 2009), se afirma que una base de
conocimientos consiste en un conjunto de aserciones (hechos), o reglas expresadas bajo la
forma [If -->Then] sentencias tales que especifican una condición o serie de ellas. Si
es/son verdaderas, o, si es/son falsas, construyen una particular inferencia manejada como
respuesta a una consulta. Estas bases, sólo contienen información de un dominio de tarea
específico, y sólo sirven a problemas particulares de ese dominio de tarea. Una base de
conocimientos se configura entonces, como un componente esencial totalmente
independiente del motor de inferencias. A su vez, posee varias características o
propiedades:
La propiedad de Granularidad o Criterio de Modularidad de Fodor, mediante el cual
se maneja la premisa de que el conocimiento es modular, quiere decir, que los
elementos que lo constituyen son independientes unos de otros. Debido a ello, a las
bases de conocimiento se les puede agregar módulos por separado.
Ningún conocimiento modular posee un orden jerárquico con respecto a otro,
ninguno es más importante.
Las unidades de conocimiento cumplen con la propiedad conmutativa, donde el
orden de introducción de éstas en el sistema no tiene ningún efecto sobre los
resultados.
Tienen la capacidad de crecer y expandirse, según el conocimiento que adquieren,
manejan y procesan, también lo hace. Alcanzando características dinámicas.
Un Knowledge Base System (KBS) o Sistema Basado en Conocimientos, es una forma
de inteligencia artificial (IA) que tiene como objetivo captar el conocimiento de los
expertos humanos para apoyar la toma de decisiones. La base del conocimiento contiene a
su vez varios subcomponentes de procesamiento, el denominado conocimiento declarativo o
conocimiento efectivo. Entendámoslo como a aquel que puede encontrarse en los libros de
texto clásicos, además, se aprende en las aulas de clase. Y, el conocimiento adquirido por
heurística. Este último, es un tipo de conocimiento derivado desde la combinación
experimento - experiencia. Comienza penetrando y buscando en el denominado espacio del
problema, o área donde el problema está localizado y se desenvuelve. Allí recoge pistas
desde indicadores que provean información relevante en la dirección de interés. Si el
espacio del problema es científico, este debe estar restringido a no ser mayor al espacio
dimensional, pero tampoco tan pequeño como para no alcanzar capturar todas sus unidades
de variación.
En concordancia con Rijckaert et al. en (Zimmermann, 2001, pág. 189), el conocimiento
declarativo parte de la base de conocimientos y se encarga de describir que objetos
(hechos, términos o conceptos) han de ser usados por el experto y el sistema experto. Por su
lado, el conocimiento procedimental también parte de la base de conocimientos y contiene
información acerca del cómo estos objetos serán usados en función de inferir nuevas
conclusiones y llegar a una solución. Pero este último, debe ser expresado bajo la forma de
reglas heurística.
Comúnmente, la heurística provee mecanismos o estrategias que admiten la descomposición
del problema en componentes más simples, y con los cuales es posible alcanzar una mejor
solución. Casi todos los métodos heurísticos estiman y comparan el costo de una solución
óptima, cuando el algoritmo se ejecuta nuevamente, este comienza en el estado anterior al
nodo cuando se opera con árboles de decisión, y desde allí, traza un camino solución según
el costo hasta un nuevo punto óptimo. Las bases de conocimiento se constituyen como parte
fundamental de los Sistemas para toma de Decisiones. Estos son sistemas de IA que
eligen una entre muchas variantes como una solución a un problema particular.
Es importante enfatizar a los estudiantes que los sistemas expertos ayudan a los tomadores
de decisiones, a los ingenieros de decisiones, pero no los sustituyen. Los sistemas expertos
no tienen capacidades humanas dado que estos sistemas pertenecen a una generación
computacional donde el aprendizaje máquina no se había desarrollado todavía. Utilizan una
base de conocimientos de un dominio particular y aportan ese conocimiento a los hechos de
la situación particular en cuestión. La base de conocimientos de un SE también contiene
conocimientos heurísticos: reglas prácticas que utilizan los expertos humanos que trabajan
en el dominio.
La base de conocimientos contiene los conocimientos necesarios para comprender, formular
y resolver problemas. Es un almacén del conocimiento específico del dominio capturado del
experto humano a través del Módulo de Adquisición de Conocimiento. Para representar la
producción de conocimiento se utilizan reglas, marcos, lógica, red semántica, etc. La base
de conocimientos del sistema experto contiene conocimientos tanto fácticos como
heurísticos. El conocimiento fáctico es el conocimiento del dominio de la tarea que se
comparte ampliamente, que generalmente se encuentra en libros de texto o revistas. El
conocimiento heurístico es el conocimiento menos riguroso, más experimental y más crítico
del desempeño, rara vez se discute y es en gran parte individualista. Es el conocimiento de
buenas prácticas, buen juicio y razonamiento plausible en el campo.
El Módulo de Adquisición de conocimientos se encarga de la acumulación, transferencia y
transformación de métodos de resolución de problemas por experiencia de expertos, y / o
fuentes de conocimiento documentadas para un programa de computadora. Se utiliza para
construir o expandir la base de conocimientos. Para la adquisición de conocimientos, se
utilizan técnicas como análisis de protocolos o secuencias de resolución de problemas
basadas en experiencias pasadas, entrevistas y observaciones.
3. Sistemas Basados en Reglas
Los Sistemas Expertos Basados en Reglas operan a través de la aplicación de reglas de la
lógica, se centran en la comparación de resultados y aplicación de las nuevas reglas
fundadas en la situación modificada para el espacio del problema en su estado anterior.
Asimismo, pueden trabajar por inferencia lógica dirigida, deducción, inducción, abducción
o heurística. También, empezando con una evidencia inicial en determinada situación, y,
dirigiéndose hacia la obtención de una solución, o bien, con hipótesis sobre las posibles
soluciones, y, volviendo hacia atrás para encontrar una evidencia existente (o una deducción
de una evidencia existente) que apoya una hipótesis en particular.
Los sistemas basados en reglas son la forma más simple de inteligencia artificial y se
circunscriben a la metodología simbólica de la IA. Un sistema basado en reglas usa reglas
para la representación del conocimiento codificado en el sistema. Las definiciones de
sistema basado en reglas dependen casi por completo de los sistemas expertos, que son
sistemas que imitan el razonamiento del experto humano en la resolución de un problema
intensivo en conocimiento. En lugar de representar el conocimiento de una manera
declarativa y estática como un conjunto de cosas que son verdaderas, el sistema basado en
reglas representa el conocimiento en términos de un conjunto de reglas que dice qué hacer o
qué concluir en diferentes situaciones.
Un clásico ejemplo de una regla para un sistema de este tipo, parte del dominio específico
del sistema experto que utiliza reglas para hacer deducciones o elecciones. Por ejemplo, un
sistema experto podría ayudar a un médico a elegir el diagnóstico correcto en función de un
conjunto de síntomas correlativos, o ayudar a un jugador a seleccionar movimientos tácticos
para jugar un juego.
En atención a (Negnevitsky, 2005), cualquier regla lógica de los sistemas basados en
reglas sigue los pasos de los silogismos, y se constituye en dos partes: la primera llamada
antecedente, premisa o condición. Y la siguiente denominada consecuente (conclusión o
acción a tomar). De manera que su sintaxis básica será:
IF…………. <antecedente>
THEN…….. <Consecuente>
En general, una regla podrá estar compuesta por múltiples antecedentes unidos por la
palabra clave AND, que significa conjunción. OR (disyunción) o una combinación de
ambas.
IF………. <antecedente 1>
AND…… <antecedente 2>
AND…… <antecedente n>
THEN…. <consecuente>
IF………. <antecedente 1>
OR……... <antecedente 2>
OR………. <antecedente n>
THEN…… <consecuente>
Afirma el autor que, el antecedente de una regla incorpora dos partes, un objeto (objeto
lingüístico) y su valor. Por ejemplo, si el objeto lingüístico fuese un semáforo, este podría
tomar los valores “verde” o “rojo”. Donde, el objeto y su valor son unidos por los
denominados operadores, éstos identifican a los objetos y les asignan sus valores.
Operadores como: “es”, “son”, “no es” o “no son”, son comúnmente utilizados y sirven para
ampliar el campo de decisión.
No obstante, los sistemas expertos disponen de operadores matemáticos para definir objetos
como si fuesen objetos numéricos, y a su vez, asignarles su correspondiente valor. Por
ejemplo, el caso de un menor en el banco:
IF……… ‘la edad del cliente es’ < 18
AND…... ‘el efectivo a retirar es’ > 1000
THEN… ‘solicitar firma de los padres’
Por otro lado, similar a las reglas del antecedente, una consecuente combina a un objeto y
su valor por medio de un operador. Aquí el operador también asigna el valor al objeto
lingüístico. Si tomamos como ejemplo, una esquina con un semáforo, “si el valor del
semáforo es verde” la primera acción para el conjunto de reglas aplicadas al objeto
lingüístico será “avanzar”. Aquí un objeto numérico, y una simple expresión numérica,
también pueden ser usadas como consecuente.
4. Sistemas Basados en Reglas Bayesianas
Los Sistemas Basados en Redes Bayesianas, como concepto teórico de aplicación
computacional, se dan a partir de los años 70´s como modelos computacionales de
procesamiento distribuido. Poseen la capacidad de combinar inferencias bidireccionales, y
se usan principalmente, para representar conocimiento incierto. Básicamente, un ingeniero
del conocimiento necesita del apoyo de un sistema basado en redes bayesianas cuando, su
modelo de conocimiento se rige por las leyes de las causas y los efectos. Además, le
interesa predecir ciertos estados, dadas ciertas condiciones como antecedentes o
condiciones de Bayes.
Desde el punto de vista matemático, las redes bayesianas consisten en una teóricamente
bien fundamentada forma de representar distribuciones de probabilidades
comprensiblemente y de manera gráfica, (Witten & Frank, 2005). Uno de los tantos usos
que se les conocen a los sistemas basados en redes bayesianas es su capacidad de
representar modelos causales. Aquí, se inicia con un conjunto de variables que representan a
las propiedades, y una distribución de probabilidad sobre estas variables.
De acuerdo a (Sarkar & Pfeifer, 2006), esta distribución de probabilidad, parcialmente
interpretada como conocimiento causal primario o con prioridad, es admitida con el fin de
reflejar o construir una estructura causal. Dadas entonces ciertas condiciones, entre las
probabilidades y la estructura causal, técnicas algorítmicas son empleadas para generar un
conjunto contentivo de todas las estructuras causales consistentes con las probabilidades, y
con el conocimiento causal primario. Estas estrategias son muy útiles en los procedimientos
de prueba de hipótesis y predicción de efectos bajo observación, e intervención.
5. Razonamiento Bajo Incertidumbre y Entropía
En sistemas de IA, denominaremos incertidumbre a todo aquello que debilita, e
imposibilita, una relación fuerte y determinista entre los datos, la información que con ellos
se forma, el conocimiento que con ambos se construye, y, las decisiones que en base a esta
triada previa deben ser tomadas. Sólo con un buen manejo de las incertidumbres se
construyen sistemas altamente eficaces. Los inconvenientes con las incertidumbres tienen
variadas fuentes, la aleatoriedad y las vaguedades, algunas de ellas. La probabilidad trata
problemas con aleatoriedad, mientras que los sistemas de lógica difusa tratan con las
vaguedades. Donde, y como máxima general, las incertidumbres deben ser modeladas por
cualquier medio.
A una decisión tomada con la teoría de la probabilidad, la denominaremos creencia.
Las vaguedades por su lado, se usan para describir a cierto tipo de incertidumbre. Max
Black (1937) en (Siddique & Adeli, 2013), propone como ejemplo la siguiente
proposición: Jhon es joven, tal proposición claramente, es vaga. Ello, en relación a dos
ideas. La primera, la naturaleza y observabilidad de la vaguedad. Y la otra, la relevancia de
la vaguedad para la lógica clásica. Black propuso que, los conjuntos vagos fuesen definidos
por las denominadas curvas de membresía. Este fue el primer intento por desarrollar un
modelo matemático para tratar las vaguedades.
Posteriormente, Lotfi Zadeh (1965), se encargaría de continuar el trabajo para denominarlo
finalmente como teoría de conjuntos difusos. Así fue el nacimiento de la lógica difusa. Los
sistemas difusos son en esencia, modelos de abstracciones matemáticas totalmente
aplicables al mundo real. Estas aplicaciones, generalmente sobre problemas complejos que
ameritan modelaje y solución, poseen varias características particulares, la practicidad, la
credibilidad en los resultados, y, el nivel de incertidumbre en el cual se sostienen las
estructuras matemáticas que los soportan. Las incertidumbres aparecen cuando la
determinación está ausente. Pueden derivarse también, desde el mecanismo de
razonamiento aplicado, quiere decir, razonamiento deductivo, abductivo, inductivo o
heurístico. Aunque no son los únicos, se conforman como los más comunes en el devenir de
los humanos.
Pero, para iniciar, haré alusión hacia dos tipos diferentes de razonamiento en sistemas de
inteligencia artificial, el práctico y el teórico. El primero, consiste en qué hacer o el cómo
proceder, cuando se está ante una situación donde una decisión debe ser tomada. El
segundo, refiere a las formas en cómo las evidencias son manejadas con el fin de obtener
una conclusión. Donde, ambos tipos de razonamiento, sirven y enmarcan toda capacidad de
identificar y actuar en concordancia con las razones. Cuando al menos dos ideas son
permutadas y/o combinadas en el pensamiento, y estas se tornan a favor de una acción
mediante un juicio, se dice que se ha ejecutado un acto de razonamiento.
La verdad nunca es comprometida cuando no es posible alcanzar una demostración
absoluta, o cuando se manifiesta nuestra inhabilidad para conseguirla. Si no, cuando lo que
la soporta es débil, su evidencia, y, por ende, queda expuesta ante mecanismos que puedan
falsarla. Por esta razón, en cualquier sistema donde una verdad absoluta no pueda lograrse,
ésta quedará supeditada a una magnitud de probabilidad donde, a medida que crece la
evidencia, decrecen también sus posibilidades de refutación.
Este espacio o área dimensional, al cual ni la verdad ni la evidencia pueden acceder, lo
denominaremos espacio de incertidumbre, es decir, un espacio o área de conocimiento
donde nada es cierto, ni nada es falso, sólo que se hace imposible de determinar su
naturaleza. Entonces, el razonamiento bajo incertidumbre se ejecuta en un espacio del
problema donde existen las evidencias, pero también se presenta la imposibilidad de creer
cabalmente en ellas. El razonamiento automático bajo incertidumbre es propio de los
sistemas de machine Learning, en data Mining y los sistemas de control.
Como un ingeniero del conocimiento es una persona excelentemente formada en su campo,
bien sabe que debe operar en entornos bajo incertidumbre. Por ello mismo, esta adiestrado
en la utilización de Métodos Suaves donde las Funciones de Creencia o
de Probabilidades Imprecisas, han de ser operacionalizadas. De acuerdo a (Everit &
Skrondal, 2010), en las funciones de creencia la incertidumbre es representada por
conjuntos convexos y cerrados de distribuciones de probabilidad, y la probabilidad de un
evento se especifica como un intervalo de posibles valores, en vez de solo precisar alguno,
como es costumbre. La cantidad de imprecisión entonces, consistirá en las diferencias entre
las probabilidades más altas, menos las probabilidades más bajas, definidas en el intervalo.
Los métodos suaves por su lado, herramienta por excelencia de un ingeniero del
conocimiento, son métodos estadísticos comúnmente necesarios para derivar juicios
cualitativos y subjetivos, que no pueden ser fácilmente trasladados a valores precisos. Los
Soft Methods, o métodos suaves, incluyen un amplio rango de poderosas técnicas
desarrolladas por la inteligencia artificial, y de las cuales, el ingeniero del conocimiento se
vale.
Pero, ¿Por qué un ingeniero del conocimiento debe lidiar con razonamiento incierto,
funciones de creencia, o cualquier otro esquema de razonamiento bajo condiciones de
incertidumbre? Básicamente, porque existen problemas que no pueden ser formulados
algorítmicamente, pues, dependen de muchos factores (problemas intratables). Un problema
que no pueda ser formulado algorítmicamente es una situación no computable. Una
situación no computable es aquella para la cual no existen operaciones algebraicas,
matemáticas, simbólicas, recursivas o de manipulación formal de cálculo, con las cuales se
pueda alcanzar la solución a un problema. Por ejemplo: ¿Cómo predecir y clasificar los
diferentes gustos de las personas?, es evidente que la respuesta a esta pregunta involucra en
primer término, determinar para luego configurar u ordenar, un desorden manifiesto entre
sus unidades de información. Y, podríamos afirmar que, no hay operación de cálculo alguna
que pueda ofrecernos una solución plausible, ni algoritmo computacional conocido, capaz
de realizarla.
La incertidumbre, de por sí, ya es un inconveniente, pero nunca viene sola. En ocasiones, es
necesario un conocimiento a priori o de ciertas evidencias para alcanzar inferencias
aceptables. Entonces, el ingeniero del conocimiento opta por seguir las prescripciones de la
estadística bayesiana o el manejo de variables por métodos estocásticos. Si la incertidumbre
apareciese en cada uno de los eslabones de las cadenas causales en el tiempo, y, por ende, la
sucedencia de un evento dependiese únicamente del evento inmediatamente precedente.
Entonces, acudirá a los mecanismos que ofrece el razonamiento estocástico y probabilista
en el tiempo, con sus Cadenas de Markov.
No obstante, en los Procesos Markovianos no todo es color de rosa. El ingeniero del
conocimiento sabe que en Markov la distribución de probabilidad permanece constante en
el tiempo, pero no se garantiza equilibrio estadístico. En otras palabras, no siempre es
posible obtener un estado estacionario de la distribución. Por ende, el comportamiento de
los objetos dentro del espacio, puede levemente variar por diversas razones, debido a ello, el
ingeniero intentará operar con la cadena, pero sólo hasta su primer orden. Una Cadena de
Markov de Primer Orden, es un proceso estocástico donde la memoria de la cadena solo
alcanza una longitud L=1. Quiere decir, el condicional de probabilidad para un valor futuro,
depende únicamente del valor precedente, pero de ninguno de sus anteriores. Entonces, el
ingeniero lo observa así: para cada situación un caso y para cada caso una estrategia.
Suponiendo ahora que, el sistema bajo estudio presente una secuencia de estados para
diferentes épocas de decisión, entonces acudirá a los modelos estocásticos basados
en Procesos de Poisson. Es de resaltar, en todo proceso donde el azar entre en juego es un
proceso estocástico. Allí, otras opciones también son plausibles, los Procesos de Martingale
y los Procesos Estacionarios, o Procesos de Incrementos Independientes, son opciones
válidas. Todo esto se da mi estimado lector, debido a que la información que se maneja
muestra incertidumbre, y ésta, de una u otra forma, debe ser modelada.
La incertidumbre se presenta en sistemas donde la determinación absoluta está ausente, es
inalcanzable, o se hace imposible. Por ende, ésta limita nuestro conocimiento impidiendo
que la ciencia avance. Y, un estancamiento científico no es opción a seguir para el ingeniero
del conocimiento, para él, las parálisis intelectuales y las petrificaciones procedimentales
son cosas del pasado. En atención a (Negnevitsky, 2005, pág. 84), la incertidumbre consiste
en la carencia de conocimiento exacto que pueda guiarnos a alcanzar una conclusión
perfectible y confiable. Las principales fuentes de incertidumbre en sistemas expertos son:
las implicaciones débiles[1]; el lenguaje impreciso; los datos perdidos y la combinación de
puntos de vista de diferentes expertos. En efecto, como lo habíamos afirmado en párrafos
anteriores, la incertidumbre nunca viene sola, acompañémosla ahora de la
denominada entropía.
Para la teoría general de sistemas, la entropía en un sistema es una medida de su desorden
manifiesto. En teoría de la información, la entropía consiste en la medida de la cantidad de
información recibida o enviada por cualquier sistema, usualmente medida en bits para estos
casos. Para la estadística por su lado, la entropía de una distribución de probabilidad es una
medida de la incertidumbre de la misma distribución. Para la física, más específicamente, la
termodinámica en su segunda ley, un cambio de estado en la entropía o función de entropía,
la cual es otro estado más como la temperatura y la energía, se usa para describir los
cambios de estados que siempre acompañan a los sistemas termodinámicos.
En la mecánica estadística por su lado y según (Serway, 1997), se interpreta a la entropía de
la siguiente forma: el comportamiento de una sustancia se describe en función del
comportamiento estadístico de los átomos y moléculas contenidas en la sustancia. Y uno de
los principales resultados de este tratamiento es que: los sistemas aislados tienden al
desorden, y la entropía es una medida de dicho desorden, (p. 629). Dado lo anterior, en
inteligencia artificial la entropía tiene diversos usos. En lógica difusa, por ejemplo y según
(Ross, 2010), la entropía de la información es empleada para identificar conjuntos difusos
dañados. Y, los métodos de reconocimiento de patrones difusos son usados para especificar
el nivel, ligero o severo, de tales daños en la estructura. Cuando se desarrollan funciones de
membresía y se emplea el razonamiento inductivo, allí se estila partir desde una
observación particular hasta lograr su generalización, y esto trae sus consecuencias. Por
medio de este tipo de razonamiento, se asignan los objetos científicos al conjunto. Pero para
que la asignación sea válida, se debe acudir al principio de minimización de la entropía.
Cuyos clústeres óptimamente asignan los parámetros correspondientes a las salidas de las
clases.
En algoritmos evolutivos, se describen complejidades basadas en evolución de aptitudes
donde se utiliza el principio de máxima entropía como auxiliar en la experimentación con
árboles de decisión evolutivos usando programación genética. Allí, un sujeto que presenta
alta entropía será descartado por simple lógica de las estrategias de evolución, tal nivel de
entropía, lo hace no apto para su selección. De acuerdo a (Haykin, 2009), supóngase
determinado sistema estocástico con un conjunto de estados conocidos, pero de
probabilidades desconocidas, y tal que, de algún modo, hemos aprendido algunas
restricciones de la distribución de probabilidad del estado, pero que también debe ser
seleccionado un modelo adecuado. Las restricciones pueden ser realmente un promedio de
valores o un límite a esos valores. El problema subyace en seleccionar el modelo de
probabilidad que, en algún sentido, sea óptimo dado este conocimiento a priori sobre el
modelo. Usualmente, podríamos encontrar un infinito número de modelos posibles a
seleccionar y que satisfagan las restricciones… pero ¿cuál? La respuesta a esta pregunta
fundamental, recae ahora sobre el denominado Principio de Máxima Entropía.
Según (Jaynes, 1957, 2003): en (Haykin, 2009, pág. 481) Óp. Cit, Cuando una inferencia
es hecha sobre las bases de información incompleta, esta debe ser modelada en forma de
distribución de probabilidad que maximiza la entropía sujeta a las restricciones en la
distribución. Afirma el autor, en efecto, la noción de entropía define a un tipo de medida
sobre el espacio de distribución de probabilidad tal que, aquellas distribuciones de entropía
alta, sean favorecidas sobre otras.
En otras palabras, el principio de máxima entropía se utiliza cuando existen problemas de
optimización y estos están restringidos a ciertos valores de la distribución de probabilidad.
A ello es posible agregar que, un objeto científico sobre el cual recae la inferencia y que
presente un estado de entropía bajo, parecerá más ordenado. Mientras que este mismo
objeto, dado el caso de exhibir un estado de entropía alta, contrariamente, parecerá más
desordenado.
En conclusión, dado que la incertidumbre se presenta en sistemas donde la determinación
absoluta está ausente o inalcanzable, el ingeniero del conocimiento debe saber razonar
según cada situación, todo en función de quitar cualquier obstáculo que pueda poner límites
a nuestro conocimiento.
6. Inferencias Progresivas por Encadenamientos hacia Adelante y hacia Atrás
Una de las más fundamentales funciones de un motor de inferencias en un sistema experto
es la ejecución de una secuencia de acciones de representación continua de conocimiento
mediante las cuales se transfieren verdades entre nodos. Incluso, propagándose a través de
innumerables restricciones. Este movimiento continuo de datos de un nodo a otro,
incrementa y transforma el estado del conocimiento, y lo denominaremos inferencias
progresivas o por encadenamientos. En este aparte del curso, estudiaremos los tipos de
estos encadenamientos y el cómo se ejecutan, incluyendo sus propiedades diferenciales.
En párrafos de secciones previas definimos al Motor de Inferencias como un componente
constituido por varios sub-bloques lógicos para el procesamiento de algoritmos que
manejan y dan forma al conocimiento que se desea representar. Es en éstos sub-bloques,
donde los razonamientos son construidos. Cada elemento de la base de conocimientos es
hecho converger con otros por medio de negaciones, conjunciones, disyunciones,
implicaciones o co-implicaciones en un primer momento. Es decir, por lógica
proposicional, y liados luego como eslabones en una cadena, haciendo aparecer a lo que
hemos acostumbrado llamar inferencia. Definamos al término Inferencia antes de continuar
con las explicaciones acerca del cómo se producen la progresividad y el encadenamiento
que las hacen aparecer.
De acuerdo a (Valbuena, 2018, pág. 170); se entiende por Inferencia (extraer una cosa de
otra):
… al proceso mental, basado en sicología cognitiva, mediante el cual, una posibilidad
provisional o agente con significado cognitivo (premisa aceptada), es movida
intencionalmente hacia otra proposición condicional (también aceptada). Allí, el significado
cognitivo individual de las premisas es entonces conectado, reproduciendo de esta manera,
una derivación de razonamiento, pero esquematizado como concepto con significado
lingüístico.
Entenderemos ahora por su lado, a una inferencia automática, como a una secuencia
algorítmica donde una premisa aceptada, o condición de consulta, es trasladada de nodo a
nodo en la base de conocimientos, satisfaciendo tanto condiciones de la lógica
proposicional, como restricciones impuestas por el experto. En el proceso final, se sucede el
linkado de ambas premisas quedando sólo una, denominada conclusión. Y se le presenta
bajo la forma de diagnóstico a una solicitud de consulta.
Existen variados tipos de inferencias según el tipo de razonamiento y el cómo el
encadenamiento sea procesado. Inferencias inductivas, deductivas, abductivas y por
heurística. Aunque todo proceso de inferencia marca una acción mental que designa a algún
tipo de progresividad, no importando la dirección de ésta, para casos específicos de sistemas
totalmente automatizados, una inferencia será progresiva cuando las unidades de razón que
la componen, y extraídas desde los datos presentes en la base de conocimientos, presentan
un gradiente incremental con respecto al estado del conocimiento que aporta a la salida del
sistema experto.
Son los usuarios los que inicializan las búsquedas cuando están ante un problema que
necesita ser subsanado mediante consultas. Pero, son los motores de inferencia los que
operacionalizan el conocimiento hasta que el sistema experto logre alcanzar una solución.
Lo hace por medio de la conexión de reglas impuestas a los datos en la base de
conocimientos, contra los eventos reales alojados en la base de hechos. No obstante, esta
progresividad dependerá del punto de inicio en la cadena de razonamiento.
Definiremos a un encadenamiento hacia adelante, como a un proceso inferencial
progresivo e incremental con respecto al gradiente del conocimiento, basado en
implicaciones lógicas, donde un algoritmo intentará determinar si es posible unir sentencias
bajo condicionales de implicación de la forma [If … Then], [Si…Entonces], y que éstas
deriven en otra sentencia denominada conclusión, que converja tanto con el conocimiento
del experto, como con las expectativas de respuesta solicitadas en la consulta. Es de acotar
que un encadenamiento hacia adelante, es básicamente un razonamiento deductivo donde
partiendo desde un universal, se finaliza en un particular.
En los encadenamientos hacia adelante, son las condiciones de satisfacibilidad las que
originarán las reglas restrictivas que, eslabonadas, darán forma a la referida cadena de
razonamiento. Entonces, cuando el razonamiento se origina desde un conocimiento a priori,
o partiendo de un hecho, hasta finalizar en una conclusión, lo llamaremos Inferencia
Progresiva por Encadenamiento Deductivo o Encadenamiento hacia Adelante.
Una inferencia progresiva por encadenamiento deductivo, funciona como una forma de
resolución dinámica de problemas que pueden ser subsanados con la intermediación de la
lógica. Donde, dada una situación cambiante y un conjunto de sentencias como axiomas,
éstas son unidas como una colección de expresiones que dan tanto apariencia de
progresividad, como aspectos de movimientos en secuencia. Ahora bien, una progresividad
inductiva o retrógrada, hará aparecer un encadenamiento hacia atrás, obedecerá a un
razonamiento inductivo y lo trataremos en lo adelante.
En atención a (Ross, 2010), un razonamiento automatizado e inductivo, consiste en
descubrir leyes que tengan validez y aplicación universal. Desde un particular dado, la
inducción concluye en lo general, de una forma totalmente opuesta al razonamiento
deductivo. Para ello, los programadores acuden a la denominada lógica de programación
inductiva, donde los motores de inferencia combinan complejidad y racionalidad, con
inteligencia. De acuerdo al autor, tres reglas rigen al razonamiento inductivo en sistemas
automatizados soportados en lógica difusa, y, por ende, a los encadenamientos hacia atrás
en los referidos procesos (p. 200):
Dadas un conjunto de respuestas irreductibles a un experimento, las probabilidades
inducidas serán aquellas probabilidades consistentes con toda la información disponible que
maximice la entropía del conjunto.
La probabilidad inducida de un conjunto de observaciones independientes es proporcional a
la densidad de probabilidad de la probabilidad inducida de una observación simple. [se usa
para calcular la probabilidad media para cada paso de separación o particionamiento de
elementos para la asignación de funciones de membresía en conjuntos difusos].
La regla inducida es aquella regla consistente con toda la información disponible para la
cual la entropía es mínima. [Se usa para clasificación].
El análisis de minimización de entropía, que las reglas aluden, se emplea para determinar la
cantidad real de información contenida en un conjunto dado. Muy necesaria en procesos
inductivos puesto que, se parte desde lo más simple, hasta alcanzar generalizaciones. La
teoría de la toma de decisiones, estructura fundamental que rige a las reglas lógicas de
razonamientos progresivos, son en sí mismos constructos que combinan una particular
acción con un razonamiento lógico.
Pero, para ello, han de haberse definido metas, quiere decir, parten desde el planteamiento
de un problema que ya ha sido anticipado por los programadores, y enmarcado dentro de
parámetros resolubles por sistemas de razonamiento de propósitos generales, siempre
acotados por el dominio de la tarea en el área de especialización.
Según (Negnevitsky, 2005), en el encadenamiento hacia atrás el sistema experto, tiene bien
delimitada la meta (o solución hipotética), entonces, el motor de inferencias intentará
encontrar evidencias para probarla. Iniciará con la búsqueda de reglas en la base de
conocimientos. Solo que, en estos casos, el problema subyace en que los ciclos de decisión
pueden repetirse casi infinitamente, pero, las reglas almacenadas son finitas, pudiendo
entrar en ciclos de regresión donde se podría alcanzar la última regla y detenerse sin haber
logrado solución alguna. De allí que, el encadenamiento hacia atrás es apropiado cuando la
meta es inferir varios hechos, pero, si lo que se pretende es inferir solo uno, es mejor optar
por el encadenamiento hacia adelante.
Ahora bien, los sistemas expertos también pueden dar respuestas a consultas bajo
condicionamientos basados en el cotejo de precondiciones, o formas de razonamiento
abductivo. De acuerdo a (Valbuena, 2018), Abducir significa determinar algo basado en una
condición previa. Allí, se asume como regla, que todo el conjunto o set de proposiciones
adoptadas como precondiciones en la base de conocimientos del sistema experto, pueden
explicar las conclusiones obtenidas u observadas. Una sentencia del tipo ¡Está Mojado! …
entonces ¡ha llovido!, o una del tipo ¡Hay presencia de cenizas… entonces ha habido
fuego! Son ambas abducciones. Un conjunto de inferencias basadas en el descubrimiento y
contentivas de evidencias. Según la lógica, a la abducción se le estima contraria a la
deducción. Sin embargo, se diferencia de la inducción, que parte hacia una meta sin
evidencias, ya que esta última genera hipótesis basadas en observaciones evidenciales.
7. Algunos Modelos de Sistemas Expertos
La inteligencia artificial, como amplio campo de aplicación de la ingeniería y las
investigaciones científicas, ha alcanzado desarrollar en tiempos recientes, innumerables
instrumentales de los cuales ingenieros y científicos se sirven. Ello, en función de sustituir
viejos enfoques de computación habituales y caducos. Estas herramientas vienen embebidas
en sistemas de procesamiento distribuido complejos soportados en metodologías robustas, y
que coheren en la consecución de metas comunes, tales como, y quizás la más esencial de
todas las metas, esquematizar, sintetizar, comprender y explicar el cómo funciona la
cognición humana.
Los sistemas expertos desde sus inicios, fueron concebidos como sistemas de computación
inteligente con capacidades autónomas de resolución de problemas donde sólo un experto
podría intervenir. Los primeros prototipos de éxito, aparecieron a finales de la década de los
60´s. No obstante, fue en la siguiente década cuando surgieron modelos que marcaron hitos.
Tal fue el caso de MYCIN, desarrollado en la Universidad de Stanford (1972), como
sistema experto basado en reglas. Se utilizó para el diagnóstico en medicina interna, y para
el tratamiento de variados tipos de infecciones sanguíneas. Las más importantes, la
meningitis y la septicemia bacteriana. Este sistema fue el pionero de los sistemas expertos y
contaba con alrededor de una 500 reglas solamente
Según (Negnevitsky, 2005), MYCIN podía ejecutar diagnósticos equivalentes a un médico
experto, y superaba ampliamente, los diagnósticos efectuados por médicos recién
graduados. Aunque MYCIN marcó hito en los modelos computacionales para sistemas
expertos, también trajo consigo ciertos inconvenientes. Sus desarrolladores encontraron que
los médicos expertos consultados, expresaban la fortaleza de sus creencias en términos,
tanto carentes de lógica, como de consistencia matemática. Además, no existían bases de
datos de sus experiencias a las cuales aplicarles procedimientos estadísticos. Debido a ello,
MYCIN nunca utilizó probabilidades.
Dados estos inconvenientes, el equipo de desarrollo decidió analizar el razonamiento
evidencial de los médicos a través de la teoría de los factores de certeza. Asignando
un coeficiente de certeza (Cf) a sus análisis para poder matematizar y asignar lógica a sus
inferencias. Un coeficiente de certeza es un modelo teórico que permitiría asignar números
para restringir los valores de creencia de los expertos, dadas la cantidad de respuestas
inexactas que recibía el sistema. En función de ello, (Russell & Norvig, 2004, pág.
605), afirman: Los conjuntos difusos los desarrolló Lotfi Zadeh (1965) en respuesta a la
dificultad detectada para suministrar entradas exactas a los sistemas inteligentes.
El rango del coeficiente de certeza oscilaba entre [+1: -1]. Un valor (+1), definitivamente
verdadero, indicaba una creencia alta. Por el contrario, un valor (-1), definitivamente falso,
apuntaba hacia un grado negativo de creencia.
Posterior a MYNCIN, surgió INTERNIST/CADUCEUS, desarrollado por H.E. Pople y
J.D. Myers en la Universidad de Pittsburg. Consistía en la unión entre Internist-
1 y Caduceus. Este sistema, no solo era capaz de ejecutar diagnósticos con bastante
exactitud, sino que, poseía capacidades de combinar diferentes sintomatologías clínicas que
pueden ser causadas por diferentes patologías presentes en el paciente todas a la vez, (Lucas
& Van der Gaag, 1991).
Tanto MYNCIN como INTERNIST/CADUCEUS, se ubicaron dentro de los sistemas
expertos direccionados al diagnóstico. Sin embargo, otras áreas de la ingeniería y las
ciencias también tienen sus historias que contar. PROSPECTOR, por ejemplo, fue un
sistema experto de amplio uso y dirigido a la predicción. Utilizado comúnmente, como
sistema predictivo para la evaluación de emplazamientos geológicos. Con él, compañías
petroleras afirman haber dado positivo en yacimientos petrolíferos de importancia. Otras,
por ejemplo, informaron haber encontrado depósitos de molibdeno cerca de las montañas
Tolman, en el estado de Washington, yacimiento calculado en más de 100 millones de
dólares, Véase Negnevitsky (p. 11). También, fue utilizado tanto en la predicción del flujo
de habitantes (fenómeno de la migración), como en la predicción meteorológica. De estos
dos últimos, la migración se modela con ecuaciones bio-matemáticas, y la meteorología,
con series de tiempo en estadística multivariable.
Prospector combinó estructuras que incorporaron por primera vez, tanto un conjunto de
reglas mejor organizadas en la base de conocimientos, como redes semánticas.
(Negnevitsky, 2005) afirma que, en la exploración geológica se solicitaba al usuario
ingresar las características de un depósito sospechoso. Entre ellas, la configuración
geológica y sus estructuras. Así como, el tipo de rocas y sus minerales. Luego, el sistema
ejecutaba comparaciones con todos los modelos conocidos (detección de patrones) y
disponibles en la base de conocimientos. De ser necesario, solicitaba información adicional.
Finalmente, el sistema emitía aseveraciones acerca del mineral sospechoso. Prospector,
también incorporó reglas de Bayes sobre evidencias para propagar la incertidumbre a
través del sistema (p. 11).
Otro sistema había surgido un poco antes de MYNCIN, pero, para aplicaciones diferentes y
también en la Universidad de Stanford (1965), fue HEURISTIC DENDRAL. Esto, como
resultado de las investigaciones de J. Lederberg, especialista en química orgánica y ganador
del premio Nobel de Química compartido con E.A. Feigenbaum y B.G. Buchanan. Ambos,
ampliamente reconocidos investigadores en ciencias de la Inteligencia Artificial. Este
sistema, ofrecía asistencia en el campo de la química orgánica en atención a determinar la
fórmula estructural de algún compuesto químico que haya sido aislado desde una muestra
dada. Heuristic Dendral, fue otro sistema experto aplicado a la predicción. Sólo que ahora,
incluía subrutinas heurísticas. El algoritmo original fue desarrollado por Lederberg, con el
fin de generar todas las posibles configuraciones de aislamientos de un compuesto
químico, (Lucas & Van der Gaag, 1991, pág. 4).
Ya en los años 70´s, una de las principales herramientas para el desarrollo de sistemas
expertos fue, y en la actualidad, siglo XXI, continúa siéndolo, el lenguaje de
programación PROLOG. Se le entiende, como un relativamente no procedimental lenguaje
de programación donde es posible inicializar con la misma notación simbólica que utilizan
los matemáticos. Dentro del campo de los lenguajes de programación, prolog es el más
conocido. Con él, una cadena de pasos lógicos es construida tal que, el programa pueda
atravesarla y salvar todo tipo de restricciones, hasta alcanzar la solución al problema. Es
uno de los lenguajes que más se aproxima a la lógica natural de razonamiento humano.
Informa (Henderson, 2009), desde los años 50´s, a gran cantidad de investigadores les ha
intrigado el cómo automatizar el razonamiento y comportamiento humano, para presentarlo
bajo la forma de inferencias lógicas. Hasta la época, numerosos demostradores de teoremas
habían sido codificados partiendo desde axiomas, pero nada concluyente. Fue a partir de
1972 cuando, los investigadores Alain Colmerauer y Robert Kowalski, ambos de la
universidad de Edimburgo, introdujeron Prolog. Permitiéndoles crear programas que
razonaran sobre información almacenada en la base de conocimientos.
Cada área de la ingeniería posee sus propias aplicaciones y casos particulares. Hoy día,
(2021) ya los software no son de uso extendido, sino privativos. Quiere decir, adquiridos
bajo licencias particulares y cada uno difiere de los otros. En la industria de la Energía
Eléctrica, por ejemplo, y según informan (Taylor, Smith, McIntyre, & Tait, S/F), una de las
primeras áreas donde se utilizaron los sistemas expertos en la pasada década de los años
80`s, fue en el diagnostico complejo para maquinarias. Proveyendo información diagnóstica
acerca de las causas de las fallas observadas en generadores de turbinas. También, se han
ampliado sus usos, hoy día, hacia todo el proceso de generación.
En telecomunicaciones, otro campo industrial extremadamente complejo de tratar. A partir
de los años 80´s también, se comenzaron las aplicaciones de la inteligencia artificial sobre
redes de telecomunicaciones. Por ejemplo, en la etapa de mantenimiento, un tipo de
software es usado para monitoreo constante.
Los sistemas expertos han logrado avances en el filtrado de alarmas; monitoreo y
correlación, además de admisión y control de llamadas y usuarios. Han sido exitosos en los
ámbitos de aislamiento de fallas y diagnósticos, reparación y mantenimiento, monitoreo del
desempeño de un segmento de la red. Así como, la configuración, mantenimiento y
dinámica de asignación de canales. Véase, Tan, Ming. Telecommunications. Cap. 24,
en (Liebowitz, S/F).
8. Guía para la Construcción de un Sistema Experto
Los sistemas expertos actuales requieren de equipos de trabajo cerca de 20 personas, sus
proyectos oscilan desde los 4 meses hasta varios años. Por ejemplo, la principal área de
desempeño de éstos se ha direccionado en época reciente sobre el diagnóstico médico. No
obstante, debido a su alta eficiencia y capacidad de resolución de problemas, las industrias
se han dado a la tarea de desarrollar sus propios sistemas para la determinación de fallas en
equipos, puesto que facilita las planificaciones de mantenimientos, aumentando con ello,
tanto el desempeño de los equipos, como la eficiencia con la cual el trabajo es ejecutado. Y,
por ende, maximizando las ganancias.
Cuando se emplean sistemas expertos para la predicción, clasificación y clustering,
normalmente es necesario la creación de un modelo híbrido entre éste y las Redes
Neuronales Neurodifusas. Entonces, la herramienta recibirá el nombre de Red Híbrida
Experta Neuro Difusa. En el área financiera, más específicamente, en los sistemas de
gestión de hipotecas, detección de operaciones fraudulentas, amortizaciones a préstamos o
evaluación y gestión de riesgos financieros. Normalmente se opta por los
denominados Sistemas Difusos para Soporte a Decisiones como un módulo más del
sistema experto.
Si la naturaleza del problema requiere optimización, es decir, encontrar la mejor solución a
un problema, o una solución de mejor calidad, dado que ya existen otras soluciones.
Entonces, el ingeniero del conocimiento podrá optar por elegir a los Algoritmos
Genéticos como una opción. Generalmente, los sistemas expertos son flexibles, y pueden
agregárseles nuevos módulos de conocimiento a los que ya el sistema posee. Ello, bajo la
premisa de que el conocimiento, y la experiencia, son sujetos de cambios continuos y
evolución permanente. De acuerdo a (Lucas & Van der Gaag, 1991), la siguiente ecuación
ha sido considerada como el paradigma de los sistemas expertos:
Sistema Experto = Conocimiento + Inferencia
(Siler & Buckley, 2005), son de opinión de que, para el desarrollo de un sistema experto
basado en reglas, se requiere que el conocimiento del experto sea correctamente
decodificado con el fin de identificar sus patrones. No obstante, uno de los principales
inconvenientes que pueden presentase, es la dificultad para adaptarse a diferentes lenguajes
de programación. De allí, la cantidad de integrantes del equipo. Luego, vienen problemas
relacionados a la escritura del código, su depuración, calibración y posterior validación por
el experto.
9. Ejemplo de la Construcción de un Sistema Experto en Medicina
Cardiovascular
Utilicemos el ejemplo de una paciente de nombre ANN, quien al parecer padece de una
enfermedad cardiovascular, ¿Cuál?, es lo que pretendemos averiguar con este sistema
experto.
Este SE utilizará el lenguaje de programación LISP (Procesamiento de Listas), donde cada
una de las condiciones debe ser declarada, cada variable debe ser delimitada y cada fórmula
bien clarificada. Para ello se formalizan las listas traduciéndolas a códigos máquina.
Considere que el ingeniero del conocimiento ha iniciado la formalización parcial del
dominio de la enfermedad cardiovascular que presentamos. Para empezar, las fórmulas
dadas deben ser traducido a la forma clausal de la lógica. Las cláusulas resultantes deben
traducirse a la representación LISP de las cláusulas Horn. La resultante La lista de cláusulas
se asigna a la variable * conjunto-cláusula *. El siguiente conocimiento se obtiene la base:
En estas primeras líneas se ingresa la data para un paciente de nombre Jhon, de 60 años,
masculino, y algunas de sus sintomatologías asociadas. Posteriormente se ingresan los datos
de Ann, niña de 12 años y sus sintomatologías. Obsérvese que Ann presenta señales de
DIASTOLIC MURMUR = SOPLO DIASTÓTICO, un soplo cardíaco se puede describir
como sistólico o diastólico. (Sístole es cuando el corazón está bombeando la sangre hacia
afuera y diástole es cuando se llena con sangre). Ann presenta una presión sistólica de 150
y una diastólica de 60, además de un cuadro febril. Para el caso de Jhon sus presiones
sistólicas y diastólicas son normales para su edad, aunque presenta una masa pulsante y un
soplo abdominal.
Posterior a almacenamiento de los datos de ambos pacientes procedemos a cotejar con las
bases de conocimientos disponibles para tales padecimientos en busca de concordancias
sintomatológicas.
Ahora podemos consultar la base de conocimiento, usando para averiguar si Ann sufre o no
de alguna enfermedad, y si lo hace, cuál es la naturaleza de su enfermedad, podemos
ingresar a la siguiente consulta:
El resultado nos dice que Ann sufre de insuficiencia aórtica, ya que la variable "x" en el
nivel 0 está ligada a la regurgitación aórtica constante. Esto parece ser un problema
cardiovascular ya que la variable "y" en el nivel 0 está ligada a la constante cardiovascular.
Este es un ejemplo del cómo usando LISP como lenguaje de programación podemos
escribir variables, cláusulas, generar fórmulas y hacer que un sistema automatizado nos
oriente sobre algún diagnostico médico.