Vous êtes sur la page 1sur 16

CAP1TULO 1.-Introduccin. Evolucin Histrica.

1.1 Introduccin.
Desde los aos 50,se ha producido un notable avance dentro del campo de la inteligencia
artificial. El reto de crear maquinas cuyo comportamiento asimile el de los humanos, con
capacidad para tomar propias decisiones y obtener conclusiones comienza a ser tenido en
cuenta a partir del desarrollo de la informtica. Concretamente, la inteligencia artificial (IA) es
una rama de la ciencia de la computacin. Paralelo al desarrollo de la informtica, comienza el
desarrollo de la inteligencia artificial.
La IA comprende el estudio y creacin de sistemas computarizados que manifiestan cierta forma
de inteligencia: sistemas que aprenden nuevos conceptos y tareas, que pueden razonar y
derivar conclusiones tiles acerca del mundo que nos rodea, sistemas que pueden comprender
un lenguaje natural o percibir y entender una escena visual, y sistemas que realizan otro tipo de
actividades que requieren de inteligencia humana
La IA es una ciencia que trata de la comprensin de la inteligencia y del diseo de mquinas
inteligentes, es decir, el estudio y la simulacin de las actividades intelectuales del hombre
(manipulacin, razonamiento, percepcin, aprendizaje, creacin).
La IA es el estudio de las computaciones que permiten percibir, razonar y actuar. Es un campo
de estudio que busca explicar y emular el comportamiento inteligente en trminos de procesos
computacionales.
Estudia las representaciones y procedimientos que automticamente resuelven problemas
usualmente resueltos por humanos.
A pesar de la diversidad de conceptos propuestos para la IA, en general todos coinciden en que
la IA trata de alcanzar inteligencia a travs de la computacin. Toda computacin, requiere de
una representacin de cierta entidad y de un proceso para su manipulacin.
Desde el punto de vista de los objetivos, la IA puede considerarse en parte como ingeniera y
en parte como ciencia:
Como ingeniera, el objetivo de la IA es resolver problemas reales, actuando como un conjunto
de ideas acerca de cmo representar y utilizar el conocimiento, y de cmo desarrollar sistemas
informticos.
Como ciencia, el objetivo de la IA es buscar la explicacin de diversas clases de inteligencia, a
travs de la representacin del conocimiento y de la aplicacin que se da a ste en los sistemas
informticos desarrollados.
. Problemas tales como reconocimiento de voz, demostracin de teoremas
juegos como las damas o el ajedrez deban ser resueltos por personas dado que requieren
habilidades tales como pensar, ver, memorizar, oler, etc. Sin embargo, como se ha indicado
antes, los trabajos que han llevado a cabo numerosos investigadores en la segunda mitad del
siglo XX, han demostrado que este tipo de tareas pueden ser desarrollados y ejecutados
perfectamente por maquinas. La IA engloba diferentes subareas .Las principales subareas
existentes son, entre otras el reconocimiento de voz o de patrones, la demostracin automtica
de teoremas, el procesamiento del lenguaje natural, la visin artificial, la robtica, las redes
neuronales y los sistemas expertos.
Los sistemas expertos constituyen un campo de investigacin dentro de la inteligencia artificial,
si bien la mayor parte de las restantes (por no decir todas ) disponen de alguna componente
relacionada con los sistemas expertos. En la siguiente figura se muestran los campos que
forman la IA. Se trata de un todo que engloba campos como la robtica, la visin artificial, las
redes neuronales, etc.
Fig.1 Campos englobados por la IA.
1.2 Evolucin Histrica.
En el ao 1950 el campo de la automtica recibe un gran impulso cuando Wiener desarrolla el
principio de la retroalimentacin. La teora de la retroalimentacin es base fundamental de los
sistemas de control.
En 1955 Newell y Simon desarrollan la Teora de la lgica. Este desarrollo permiti desarrollar
un programa que exploraba la solucin a un problema utilizando ramas y nudos, seleccionando
nicamente las ramas que ms parecan acercarse a la solucin correcta del problema.
En 1956,se celebra una conferencia en Vermont (USA) de gran trascendencia en el
desarrollo de la IA. John McCarthy propone por primera vez el uso del trmino
Inteligencia Artificial para denominar el estudio del tema.
En 1957,aparece la primera versin de The General Problem Solver (GPS), un programa
capaz de solucionar problemas de sentido comn. El GPS utilizaba la teora de la
retroalimentacin de Wiener..
En 1958 McCarthy anuncia su nuevo desarrollo el lenguaje LISP (LISt Procesing), el
lenguaje de eleccin para todos aquellos desarrolladores inmersos en el estudio de la IA.
En 1963,el Instituto Tecnolgico de Massachussets (MIT) recibe una subvencin de 2,2
millones de dlares del gobierno de los Estados Unidos en concepto de investigacin en
el campo de la IA. De esa forma, se comprueba la importancia que el Gobierno concede
a la investigacin dentro de ese campo.
En1965 aparece DENDRAL, el primer sistema experto. Es en ese ao cuando Feigenbaum
entra a formar parte del departamento de informtica de Stanford. All conoci a Joshua
Lederberg, el cual quera averiguar cual era la estructura de las molculas orgnicas
completas. El objetivo de DENDRAL fue estudiar un compuesto qumico. El
descubrimiento de la estructura global de un compuesto exiga buscar en un rbol las
posibilidades, y por esta razn su nombre es DENDRAL que significa en griego
rbol.Antes de DENDRAL los qumicos solo tenan una forma de resolver el problema,
estar era tomar unas hiptesis relevantes como soluciones posibles, y someterlas a
prueba comparndolas con los datos.
La realizacin de DENDRAL dur ms de diez aos (1965-1975). Se le puede considerar
el primer sistema experto.
En 1972, en la Universidad de Standford se desarrolla MYCIN, sistema experto dentro del
campo de la medicina para diagnostico de enfermedades infecciosas en la sangre. MYCIN
se trataba de un sistema experto para el diagnstico de enfermedades infecciosas. Desde
los resultados de anlisis de sangre, cultivos bacterianos y dems datos, el programa era
capaz de determinar, o en lo menos, sugerir el microorganismo que estaba causando la
infeccin. Despus de llegar a una conclusin, MYCIN prescriba una medicacin que se
adaptaba perfectamente a las caractersticas de la persona, tales como el peso corporal
de este.
Al mismo tiempo, Davir Marr propone nuevas teoras sobre la capacidad de
reconocimiento visual de las diferentes mquinas.
En 1972 aparece el lenguaje PROLOGUE basado en las teoras de Minsky.
En 1973 se desarrolla el sistema experto llamado TIERESIAS. El cometido de este sistema
experto era el de servir de intrprete entre MYCIN y los especialistas que lo manejaban,
a la hora introducir nuevos conocimientos en su base de datos. El especialista deba
utilizar MYCIN de una forma normal, y cuando este cometiera un error en un diagnstico
(hecho producido por la falta o fallo de informacin en el rbol de desarrollo de teoras)
TEIRESIAS corregira dicho fallo destruyendo la regla si es falsa o amplindola si es eso
lo que se necesita.
En 1979 aparece XCON, primer programa que sale del laboratorio Su usuario fue la Digital
Equipament Corporation (DEC).
El cometido de XCON sera configurar todos los ordenadores que saliesen de la DEC. El
proyecto present resultados positivos y se empez a trabajar en el proyecto ms en serio en
diciembre de 1978.
En abril de 1979 el equipo de investigacin que lo haba diseado pens que ya estaba
preparado para salir, y fue entonces, cuando se hizo una prueba real, esperando resolver
positivamente un 95% de las configuraciones, este porcentaje tal alto se qued en un 20% al
ser contrastado con la realidad; XCON volvi al laboratorio, donde fue revisado y a finales de
ese mismo ao funcion con resultados positivos en la DEC.
En 1980 se instaur totalmente en DEC. Y en 1984, el XCOM haba crecido hasta multiplicarse
por diez. El XCOM supuso un ahorro de cuarenta millones de dlares al ao para la DEC.
Entre los aos 80 a 85 se produce la revolucin de los Sistemas Expertos
En estos 5 aos se crearon diversos sistemas expertos como el DELTA, de General Electric
Company, para la reparacin de locomotoras diesel y elctricas. Aldo en Disco para la
reparacin de calderas hidrstaticas giratorias usadas para la eliminacin de bacterias.
Se crearon multitud de empresas dedicadas a los sistemas expertos como Teknowledge Inc.,
Carnegie Group, Symbolics, Lisp Machines Inc., Thinking Machines Corporation, Cognitive
Systems Inc.... formando una inversin total de 300 millones de dlares. Los productos ms
importantes que creaban estas nuevas compaas eran las mquinas Lisp, que se trataba de
unos ordenadores que ejecutaban programas LISP con la misma rapidez que en un ordenador
central, y el otro producto fueron las herramientas de desarrollo de sistemas expertos.
En 1987 XCON empieza a no ser rentable. Los tcnicos de DEC tuvieron que actualizar XCOM
rpidamente llegndose a gastar ms de dos millones de dlares al ao para mantenimiento y
algo parecido ocurri con el DELTA..Tambin en 1987 aparecieron los microordenadores Apple
y compatibles IBM con una potencia parecida a los LISP. El software se transfiri a mquinas
convencionales utilizando el lenguaje C lo que acab con el LISP.
A partir de los 90 y con el desarrollo de la informatica, se produce un amplio desarrollo
en el campo de la IA y los sistemas expertos, pudindose afirmar que estos se han
convertido en una herramienta habitual en determinadas empresas en la actualidad.
La evolucin histrica de los mtodos utilizados en el desarrollo de los sistemas expertos
tambin se ha producido a medida que se ha ido desarrollando la IA y los diferentes
mtodos que se han empleado para su resolucin. El desarrollo de lenguajes como LISP
y PROLOG condicionaron esa evolucin, as como investigaciones en diversos campos
relacionados. Los primeros sistemas expertos que se desarrollaron en los aos 60 eran
capaces de resolver solo problemas basados en situaciones determinadas ,mediante
sistemas de reglas .Es a partir de los 70 cuando se empiezan a resolver problemas
basados en situaciones inciertas, basados en medidas difusas al principio y en redes
probabilsticas con posterioridad. En la siguiente figura se aprecia la evolucin histrica
en la resolucin de problemas mediante sistemas expertos.
Todo ello se detallara en el prximo capitulo.
Fig. 2.Evolucin histrica de resolucin de problemas con sistemas expertos.
CAPITULO 2.DEFINICIN Y CARACTERSTICAS DE LOS SE
2.1.Definicin de Sistema experto.
Un sistema experto puede definirse como un sistema basado en los conocimientos que
imita el pensamiento de un experto, para resolver problemas de un terreno particular de
aplicacin.
Una de las caractersticas principales de los sistemas expertos es que estn basados en
reglas, es decir, contienen unos conocimientos predefinidos que se utilizan para tomar
todas las decisiones.
En Teora estos sistemas son capaces de razonar siguiendo los mismos pasos que seguira un
especialista (experto) en determinada materia (medico, matemtico, bilogo, etc) cuando
resuelve un problema propio de su campo de su disciplina. Por ello, el creador de un sistema
experto tiene que comenzar por identificar y recoger del experto humano los conocimientos que
este utiliza, pero sobre todo los conocimientos empricos que se adquieren con la practica. Dado
que los programas estn basados en el conocimiento un aspecto fundamental es la
programacin del conocimiento la cual hace uso de la representacin explicita del conocimiento
a usar por el sistema y de su interpretacin y manipulacin lgica por medio de mtodos de
inferencia que permiten deducir nuevo conocimiento a partir del que ya se dispone. Por ejemplo,
un SE en diagnostico medico Los sistemas expertos son mquinas que piensan y razonan como
un experto lo hara en una cierta especialidad o campo. Por ejemplo, un sistema experto en
diagnstico mdico requerira como datos los sntomas del paciente, los resultados de anlisis
clnicos y otros hechos relevantes, y, utilizando stos, buscara en una base de datos la
informacin necesaria para poder identificar la correspondiente enfermedad. Un Sistema
Experto de verdad , no slo realiza las funciones tradicionales de manejar grandes cantidades
de datos , sino que tambin manipula esos datos de forma tal que el resultado sea inteligible y
tenga significado para responder a preguntas incluso no completamente especificadas. As,
un sistema experto es un cuerpo de programas de ordenador que intenta imitar e incluso
superar en algunas situaciones a un experto humano en un mbito concreto de su actividad. No
pretende, en absoluto, reproducir el pensamiento humano, sino simplemente la pericia de un
profesional competente (tngase en cuenta que para construir un SE se suele contar con
grandes expertos en la materia que incorporan su conocimiento al sistema). Esta pretensin es
ms sencilla ya que en algunos campos reducidos los expertos trabajan siguiendo reglas,
aunque, generalmente, no sean conscientes de ello. En aquellos campos en los que no sea
necesario aplicar la intuicin ni el sentido comn, los sistemas basados en el conocimiento han
conseguido notables xitos, consiguiendo en ocasiones ser ms regulares y rpidos que los
propios expertos. Los sistemas basados en el conocimiento desarrollados hasta hace poco
constituyen la primera generacin cuya caracterstica comn reside en la superficialidad del
conocimiento que se incluye en el mismo. Los ingenieros de conocimiento (desarrolladores de
los sistemas basados en el conocimiento) se limitan a incorporar en los sistemas la experiencia
y criterios de los especialistas sin buscar las razones ltimas en las que se basan. Actualmente
existen sistemas ms avanzados, sistemas de Segunda Generacin, en la que el
conocimiento se estructura en dos niveles. El primer nivel, de control (se suele aludir a l como
metaconocimiento y las reglas que lo constituyen reciben el nombre de metarreglas), sirve para
determinar la forma de utilizar el segundo nivel que es el que contiene el conocimiento de los
expertos.
2.2.Caractersticas de los Sistemas expertos.
Para que un sistema acte como un verdadero experto, es deseable que rena, en lo posible,
lo ms importante de las caractersticas de un experto humano, esto es:
Habilidad para adquirir conocimiento.
Fiabilidad, para poder confiar en sus resultados o apreciaciones.
Solidez en el dominio de su conocimiento.
Capacidad para resolver problemas.
Dada la complejidad de los problemas que usualmente tiene que resolver un SE, puede existir
cierta duda en el usuario sobre la validez de respuesta obtenida. Por este motivo, es una
condicin indispensable que un SE sea capaz de explicar su proceso de razonamiento o dar
razn del por qu solicita tal o cual informacin o dato.
2.3.Componentes de un sistema experto.
Los principales componentes de un sistema experto son los siguientes:
Base de Conocimiento
Un SE posee el conocimiento del experto humano convenientemente formalizado y
estructurado; esto es lo que se conoce como Base de conocimiento. Est constituido por la
descripcin de los objetos y las relaciones entre ellos, as como de casos particulares y
excepciones. Algunos sistemas basados en el conocimiento incluyen metaconocimiento o
conocimiento sobre el conocimiento, es decir, la capacidad para buscar en la base de
conocimiento y abordar la resolucin del problema de una manera inteligente usando diferentes
estrategias para la resolucin con sus condiciones particulares de aplicacin. Es decir se trata
de definir criterios mediante los cuales el sistema decide la estrategia de bsqueda a utilizar en
funcin de unos datos iniciales. El conocimiento se puede representar mediante clculo de
predicados, listas, objetos, redes semnticas y/o reglas de produccin. De todas ellas, las dos
formas ms usuales son las reglas de produccin y los objetos. En cualquier caso, la eleccin
de las tcnicas de representacin a utilizar dependern del tipo de problema a resolver.
Motor de Inferencia
Tambin llamado intrprete de reglas, es un mdulo que se encarga de las operaciones de
bsqueda y seleccin de las reglas a utilizar en el proceso de razonamiento. Por ejemplo, al
tratar de probar una hiptesis dada, el motor de inferencia ir disparando reglas que irn
deduciendo nuevos hechos hasta la aprobacin o rechazo de la hiptesis objetivo.
Base de Hechos
Se trata de una memoria temporal auxiliar que almacena los datos del usuario, datos iniciales
del problema, y los resultados intermedios obtenidos a lo largo del proceso de resolucin. A
travs de ella se puede saber no slo el estado actual del sistema sino tambin cmo se lleg
a l. Como ya se ha mencionado antes, es conveniente que esta informacin se maneje con
bases de datos relacionales, en lugar de utilizar un sistema particular de almacenamiento.
Interfaz de Usuario
Todo sistema dispone de una interfaz de usuario, que gobierna el dilogo entre el sistema y el
usuario. Para el desarrollo de estas interfaces algunas herramientas de desarrollo incorporan
generadores de interfaz de usuario o bien se utilizan herramientas de desarrollo de interfaces
grficas existentes en el mercado.
Otros mdulos que forman parte de este tipo de herramientas son los siguientes:
Mdulo de comunicaciones
En la actualidad la mayora de los sistemas basados en el conocimiento no viven aislados sino
que interactan con otros sistemas por lo que son capaces de interactuar no solamente con el
experto sino con estos sistemas, para poder recoger informacin o consultar bases de datos.
Mdulo de explicaciones
Es una utilidad importante en la etapa de desarrollo ya que aporta una ayuda considerable al
ingeniero del conocimiento para refinar el funcionamiento del motor de inferencia, y al experto
a la hora de construir y verificar la coherencia de la base de conocimiento. Sirve para explicar
al usuario tanto las reglas usadas como el conocimiento aplicado en la resolucin de un
determinado problema.
Mdulo de adquisicin de conocimiento
Este mdulo permite al ingeniero del conocimiento, y/o experto, la construccin de la base de
conocimiento de una forma sencilla, as como disponer de una herramienta de ayuda para
actualizar la base de conocimiento cuando sea necesario.
Si bien estos mdulos no existen en todos los sistemas basados expertos, o bien estn
desarrollados o implementados de maneras diferentes, la funcin que desempean es muy
interesante en el desarrollo de estos sistemas. As, el motor de inferencia y las interfaces, que
incluyen la interfaz de usuario, el mdulo de explicaciones y el mdulo de adquisicin del
conocimiento, forman el esqueleto o sistema esencial, y que, separadas de las bases de
conocimiento y de hechos, constituyen una herramienta software para el desarrollo de los
sistemas basados en el conocimiento (shells).
Los componentes de que consta un SE se encuentran reflejados en la figura 3.
Fig.3. Componentes de un Sistema Experto.
En la figura siguiente se muestra la arquitectura de un sistema experto
2.4 Arquitectura de un sistema experto.
La arquitectura de un sistema experto esta basada en una entrada de datos realizada por el
usuario a fin de efectuar la oportuna consulta. Las entradas no solamente estn compuestas de
estas consultas. El aprendizaje del sistema y las condiciones especificas del problema a
tratar tambin han de encontrarse en la entrada.
Junto a ello, se encuentra la administracin del sistema, compuesta por
un interfaz encargado del manejo de la sintaxis del lenguaje y de la maquina
de inferencias,que se encarga de efectuar la bsqueda en la base de conocimientos y en
la base de datos. Por ultimo, se tienen los resultados. En la fig. 4 se refleja la arquitectura de
un SE.
Fig.4. Arquitectura de un sistema experto.
CAPITULO 3.TIPOS DE SISTEMAS EXPERTOS.
3.1.Tipos de Sistemas Expertos
Los problemas con los que pueden tratar los sistemas expertos pueden clasificarse
fundamentalmente en dos tipos: problemas esencialmente deterministas y problemas
esencialmente estocsticos. Por ejemplo, en el campo mdico las relaciones entre sntomas y
enfermedades se conocen slo con un cierto grado de certeza (la presencia de un conjunto de
sntomas no siempre implica la presencia de una enfermedad). Estos tipos de problemas
pueden tambin incluir algunos elementos deterministas, pero se trata fundamentalmente de
problemas estocsticos.
Consecuentemente, los sistemas expertos pueden clasificarse en dos tipos principales segn
la naturaleza de problemas para los que estn diseados: deterministas y estocsticos. Los
problemas de tipo determinista pueden ser formulados usando un conjunto de reglas que
relacionen varios objetos bien definidos. Los sistemas expertos que tratan problemas
deterministas son conocidos como sistemas basados en reglas.
En situaciones inciertas, es necesario introducir algunos medios para tratar la
incertidumbre. Por ejemplo, algunos sistemas expertos usan la misma estructura de los
sistemas basados en reglas, pero introducen una medida asociada a la incertidumbre de las
reglas y a la de sus premisas. En este caso se pueden utilizar algunas frmulas de propagacin
para calcular la incertidumbre asociada a las conclusiones. Durante las ltimas dcadas han
sido propuestas algunas medidas de incertidumbre. Algunos ejemplos de estas medidas son
los factores de certeza, usados en las conchas para generar sistemas expertos tales como el
sistema experto MYCIN; la lgica difusa, etc.
Otra medida intuitiva de incertidumbre es la probabilidad, en la que la distribucin conjunta de
un conjunto de variables se usa para describir las relaciones de dependencia entre ellas, y se
sacan conclusiones usando frmulas muy conocidas de la teora de la probabilidad. Este es el
caso del sistema experto PROSPECTOR, que utiliza el teorema de Bayes para la exploracin
de mineral.
Los sistemas expertos que utilizan la probabilidad como medida de incertidumbre se conocen
como sistemas expertos probabilstico y la estrategia de razonamiento que usan se conocen
con el nombre de sistemas expertos probabilisticos.
3.2.Sistemas Expertos Probabilsticos.
En los primeros sistemas expertos, se eligi la probabilidad como medida para tratar la
incertidumbre pero, desgraciadamente, muy pronto se encontraron algunos problemas, debidos
al uso incorrecto de algunas hiptesis de independencia, utilizadas para reducir la complejidad
de los clculos. Como resultado, en las primeras etapas de los sistemas expertos, la
probabilidad fue considerada como una medida de incertidumbre poco prctica. La mayora de
las crticas a los mtodos probabilsticos se basaban en el altsimo nmero de parmetros
necesarios, la imposibilidad de una asignacin o estimacin precisa de los mismos, o las
hiptesis poco realistas de independencia.
Consecuentemente, en la literatura de la poca, surgieron medidas alternativas a la
probabilidad, como los factores de certeza, las credibilidades, las plausibilidades, las
necesidades o las posibilidades, para tratar la incertidumbre. Sin embargo, con la aparicin de
las redes probabilsticas (principalmente las redes Bayesianas y Markovianas,
la probabilidad ha resurgido de forma espectacular, y es, hoy en da, la ms intuitiva y la ms
aceptada de las medidas de incertidumbre.
Consideremos el siguiente ejemplo de diagnstico mdico, donde se supone que se tiene un
conjunto de enfermedades dado (E1,...,En) y un conjunto de sntomas asociados (S1,...,Sm) a
stas. La pregunta a la que trata de responder un sistema experto probabilstico de diagnstico
mdico es: Supuesto que el paciente presenta un subconjunto de sntomas S, qu enfermedad
es ms probable que tenga?. Para responder a esta pregunta han de calcularse las
probabilidades P(Ei | S) , i = 1, 2, , n. Por ejemplo, en un caso prctico podamos haber
obtenido:
Enfermedad P(Di | S)
1 0.2
2 0.1
3 0.8 ms probable
4 0.4
5 0.0 menos probable
6 0.7
El problema de estos sistemas es que suponen que se conoce la funcin de probabilidad
conjunta de todas las enfermedades y sntomas. Sin embargo, en la prctica no se conocen
todos los datos necesarios para definir la funcin de probabilidad conjunta pues, en casos
reales, estos pueden constituir una cantidad ingente de informacin. Por ejemplo, para un caso
de diagnstico mdico con 100 enfermedades binarias y 100 sntomas binarios se requieren
ms de 10 60 parmetros para especificar la funcin de probabilidad conjunta.
Los modelos de redes probabilsticas utilizan grafos para definir relaciones de
dependencia entre las variables del modelo y simplificar la estructura de la funcin de
probabilidad conjunta. As, sern necesario un nmero inferior de parmetros para especificar
el modelo. Esta simplificacin se realiza en base a una factorizacin de la probabilidad.
3.3. Desarrollo de un Sistema experto.
Como primera aproximacin es necesario indicar que las herramientas pueden clasificarse en
tres grupos en funcin de las diferentes etapas del proyecto en que interviene:
Estudio de viabilidad: Se intenta verificar si el problema justifica el desarrollo de un sistema basado en
el conocimiento (este punto es muy importante, ya que algunas veces se ha intentado resolver con este tipo
de tecnologa problemas que no eran los adecuados, lo que llev a resultados decepcionantes). Las
herramientas deben ser flexibles y de uso muy sencillo. Muchas veces en esta etapa no es necesario el uso
de una herramienta especfica ya que puede utilizarse un lenguaje de programacin de propsito general.
Desarrollo del prototipo: En esta fase las herramientas deben poseer una serie de caractersticas a nivel
de estructuras de control, permitir probar y comparar los diferentes enfoques de la resolucin del problema
(representacin del conocimiento, estrategia de control, etc.) y ofrecer facilidades a los ingenieros del
conocimiento (traza, gestin de coherencia, etc.) en el desarrollo del sistema.
Desarrollo del sistema: El factor ms importante es la eficiencia. Asimismo, debe disponer de mdulos
explicativos evolucionados para una efectiva compilacin de la base de conocimiento y los mtodos de
inferencia. En resumen, deben adaptarse perfectamente al problema. El desarrollo de estos sistemas suele
pasar por cuatro fases:
Identificacin de la aplicacin y concepcin de la solucin.
Desarrollo del (de los) prototipo(s).
Ejecucin y construccin del sistema completo.
Alcanzar la integracin del nuevo sistema con los anteriores y la asimilacin del uso de la nueva
tecnologa.
La tarea ms importante a la hora de desarrollar un sistema basado en el conocimiento consiste
en la modelizacin del problema que se quiere resolver, esto es, representar el conocimiento
que posee el experto en un lenguaje que permita razonar al sistema. Consiste en formalizar y
estructurar los objetos y las relaciones entre ellos en la base de conocimiento.
De la misma forma que no existe ningn lenguaje de programacin universal, tampoco se ha
encontrado un lenguaje ideal para poder representar el conocimiento formalmente. La eleccin
depender, principalmente, de la naturaleza y magnitud del problema.
As, existen formalismos que permiten representar fcilmente mecanismos de razonamiento
puramente lgicos; otros, sin embargo, se adaptan mejor a una representacin por analoga.
Existen tres tipos de representacin:
La representacin procedural expresa explcitamente las relaciones entre los fragmentos de
conocimiento que son complejas de modificar. No obstante, ofrece una gran facilidad en el uso del
metaconocimiento.
La representacin declarativa incluye el clculo de predicados, las reglas de produccin y las redes
semnticas. El conocimiento queda estructurado en fragmentos independientes unos de otros y que, por
tanto, son fcilmente modificables. Estos mdulos de conocimiento se combinan mediante un mecanismo
general de razonamiento y deduccin.
La representacin mixta, como los objetos y marcos, emplea los dos mtodos de representacin
anteriores.
A continuacin se explican con mayor detalle algunos ejemplos de representacin:
Reglas de produccin: Es una representacin formal de una relacin, una informacin semntica o una
accin condicional. Una regla de produccin tiene, generalmente, la siguiente
forma: SI Premisa ENTONCES Consecuencia. Ofrecen una gran facilidad para la creacin y la
modificacin de la base de conocimiento. Permite introducir coeficientes de verosimilitud para ponderar
el conocimiento (estos coeficientes se van propagando durante el proceso de razonamiento mediante unas
frmulas de clculo establecidas) y, en teora, el mtodo asegura que cuantas ms reglas posea ms potente
es. Sin embargo, aunque es la forma de representacin ms intuitiva y rpida, cuando el nmero de reglas
es grande aumenta la dificultad de verificacin de todas las posibilidades con el consiguiente riesgo de
perder la coherencia lgica en la base de conocimiento. Los hechos y las reglas asociadas de la base de
conocimiento normalmente no son exactos; es decir se tiene incertidumbre sobre el grado de certeza de
algunos hechos y tambin sobre el campo de validez de algunas de las reglas. Para el manejo de la
incertidumbre en los sistemas de reglas se han utilizado varios sistemas; los tres ms conocidos son los
Factores de Certeza ( utilizados en MYCIN), la lgica de Dempster Shafer, y la Lgica Difusa ( Fuzzy
Logic). El mtodo de tratar la incertidumbre es una de las caractersticas ms importantes de las
herramientas de desarrollo, y actualmente se encuentra en discusin la validez de estas lgicas para tratar
con la incertidumbre. En sustitucin se han propuesto las Redes Bayesianas que tienen una base
matemtica ms firme. De todas formas es un campo actual de investigacin que permanece abierto.
Lgica proposicional: Es similar a las reglas de produccin. Su diferencia principal con stas es que
separa los elementos que componen la base de conocimiento de aquellos que controlan la operacin del
sistema.
Redes semnticas: Es un mtodo que consiste en representar el conocimiento en forma de redes o grafos;
los nodos representan conceptos u objetos, y los arcos que los interconectan describen relaciones entre
ellos.
Marcos: Consiste en asociar propiedades a los nodos que representan los conceptos u objetos. Las
propiedades son descritas en trminos de atributos y los valores asociados.
Objetos: La diferencia con los marcos reside en que, en un entorno de programacin orientada a objetos,
stos pueden actuar como entidades independientes. De esta forma, el control del sistema se consigue
mediante el envo de mensajes del sistema a los objetos y entre ellos mismos.
Representaciones mltiples: Es posible, e incluso muy frecuente, combinar dos o ms formas de
representar el conocimiento en el mismo sistema para obtener la modelizacin ms adecuada a cada
problema por lo que es bueno que una herramienta de desarrollo de sistemas basados en el conocimiento
contemple ms de una forma de representacin.
En el desarrollo del sistema es necesario idear el mecanismo de inferencia que refleje lo ms
fielmente posible cmo piensa o acta el experto. Este mecanismo, que se denomina motor de
inferencia, es la parte ms importante del sistema basado en el conocimiento junto con la base
de conocimiento. Los mecanismos de razonamiento que utilizan reglas de produccin son los
de la lgica formal: modus ponendo ponens y modus tollendo tollens . Adems existe otro
mtodo que difiere de los anteriores y que es la bsqueda en rboles.
Existen adems cinco modos de razonamiento que a continuacin se explican:
Encadenamiento hacia adelante: El motor de inferencia parte de los hechos para llegar a los resultados,
esto es, selecciona las reglas que verifiquen las condiciones de la parte izquierda (premisas).
Encadenamiento hacia atrs: En este caso el motor de inferencia parte de los resultados y trata de volver
a los hechos para comprobar si encajan con el problema planteado.
Encadenamiento mixto: Este modo ofrece varias posibilidades que resultan de combinar el
encadenamiento hacia adelante y hacia atrs para paliar sus limitaciones y mantener las ventajas.
Algoritmos de bsqueda heurstica: En los casos en los que la naturaleza de la base de conocimiento
permita construir una estructura de rbol, el proceso de inferencia se convierte en un problema de bsqueda
en un rbol. Existen diversos mtodos, y la eleccin depender, por lo tanto, de la naturaleza del problema.
Herencia: Es el mtodo de inferencia utilizado en entornos orientados a objetos. Un objeto hijo hereda
propiedades y hechos de sus padres. As, la asignacin de nuevas propiedades a un objeto se realiza a
travs de las relaciones entre ese objeto y el resto.
Dentro de los modos de razonamiento los factores de incertidumbre son valores asignados a
hechos o reglas que indican la certeza o grado de confianza que el experto tiene en una regla
o el usuario en un hecho. No representan, ni mucho menos, una probabilidad en el sentido
estricto de la palabra.
Un sistema que usa factores de incertidumbre asociados a las reglas o propiedades de los
objetos puede realizar varias recomendaciones indicando el grado de confianza o nivel de
certidumbre de cada una.no todos los problemas requieren un conocimiento basado en grados
de incertidumbre, es conveniente que la herramienta para el desarrollo de un sistema basado
en el conocimiento incluya este conocimiento probabilstico porque incorpora una utilidad que
refleja en gran manera la forma de trabajar de los expertos en mucha reas. Asimismo, es
necesario tener claro el algoritmo o mtodo que se utiliza para calcular el grado de incertidumbre
asociado a una recomendacin o accin final.
3.4Lenguajes y generadores de Sistemas Expertos.
Para el desarrollo de sistemas basados en el conocimiento se han venido utilizando tanto
lenguajes de programacin especficos de la inteligencia artificial (LISP y PROLOG) como de
propsito general (C, PASCAL, etc.).El lenguaje LISP es uno de los ms utilizados desde los
comienzos de la I.A. Se trata de uno de los lenguajes de alto nivel ms antiguos. Se cre en
1950 en el MIT por John McCarthy. Es un lenguaje cuyo principal estructura de datos son las
listas, an cuando se han ido incorporando otras estructuras ms sofisticadas como pueden ser
los objetos.Tiene como ventaja el manejo de sus estructuras a muy alto nivel lo que facilita la
implementacin rpida de los modelos y su facilidad de modificacin. Como desventaja est su
relativa lentitud frente a lenguajes de propsito general como C. La mayora de las primeras
herramientas de desarrollo de sistemas basados en el conocimiento fueron escritas en LISP y,
en la actualidad, conviven con otras que se han desarrollado en C++.El lenguaje PROLOG fue
creado por Alain Colmenauer en la Universidad de Marsella en 1972. Se trata de un lenguaje
declarativo frente a los lenguajes de programacin ms usuales que son procedurales.Los
lenguajes declarativos, a diferencia de los procedurales, no describen secuencialmente el
algoritmo de resolucin del problema, sino que se limitan a describir los hechos conocidos y las
relaciones existentes entre ellos. Los lenguajes procedurales estn orientados
al "cmo" mientras que los declarativos estn orientados al "qu". Es el lenguaje declarativo,
en el caso que nos ocupa PROLOG, quien a partir de los datos introducidos deduce nuevos
hechos y resuelve el problema automticamente. PROLOG tiene incluido, por tanto, un motor
de inferencia que se encarga de realizar bsquedas en su base de hechos. Programar
con PROLOG, por tanto, consiste en asertar hechos sobre objetos y preguntar al sistema sobre
sus relaciones. Este lenguaje, an cuando se le reconocen sus bondades, no ha tenido una
gran utilizacin (si se excepta Francia, Gran Bretaa y Japn con el proyecto de 5 generacin,
en el que se adopt como lenguaje de programacin PROLOG) siendo su principal aplicacin
el manejo de bases de datos relacionales junto con lenguajes de bases de datos de 4
generacin asociados a stas.En la actualidad, es comn la utilizacin de lenguajes orientados
a objeto (tales como C++) para el desarrollo de generadores de sistemas expertos y de Los
propios sistemas basados en el conocimiento por su rendimiento, en trminos de tiempo de
ejecucin, superior al de las herramientas generales. La incorporacin de la programacin
orientada a objetos al lenguaje C ha facilitado la labor de modelizacin que requiere todo
sistema basado en el conocimiento y su rapidez de ejecucin as como el hecho de ser uno de
los lenguajes de programacin ms conocidos ha hecho que su uso vaya en
aumento.Una herramienta para la construccin de sistemas basados en el
conocimiento no es slo un lenguaje de programacin de alto nivel orientado al desarrollo de
estos sistemas. Este equipo lgico de desarrollo tiene, entre otras, las siguientes caractersticas
o utilidades:
Posibilidades para el desarrollo de prototipos.
Un motor de inferencia.
Un mtodo o varios para la representacin del conocimiento.
Una o varias tcnicas para el manejo de la incertidumbre.
Un generador de interfaces grficos (no siempre).
Estas herramientas estn muy orientadas hacia el usuario final de la aplicacin y, por lo tanto,
es fundamental elegir la herramienta adecuada al entorno de aplicacin. Son muchos los
factores que influyen a la hora de tomar una decisin. En primer lugar es necesario conocer el
alcance real del proyecto, esto es, si primero va a construirse una maqueta para estudiar la
viabilidad del proyecto, o si por el contrario ya est decidido el desarrollo del sistema basado en
el conocimiento.
3.5 Integracin y migracin de los sistemas expertos.
Los sistemas expertos, salvo excepciones, no estn aislados sino que forman parte de otros
sistemas, expertos o convencionales. Existen dos tipos bsicos de arquitectura de integracin.
En la primera, el sistema basado en el conocimiento forma parte de otro sistema principal. As,
si el sistema necesita comunicarse con el sistema basado en el conocimiento, entablar una
comunicacin directamente o a travs de una red.
En la segunda el sistema basado en el conocimiento es el sistema principal y est conectado a
otros sistemas basados en el conocimiento o convencionales, que le ayudan en su operacin.
Como ejemplo estn los subsistemas que realizan complejos clculos matemticos necesarios
durante el proceso de razonamiento.
En ambos casos debe garantizarse una comunicacin fluida de todos los sistemas, aunque
estn funcionando en plataformas diferentes, ya sea directamente o a travs de una red local.
Este aspecto es crtico en sistemas basados en el conocimiento en tiempo real, los cuales
requieren un rpido acceso a la informacin relevante y a las bases de datos para poder ofrecer
una solucin inmediata y satisfactoria.
Por tanto, habr que fijarse en las posibilidades de conexin a las bases de datos ms conocidas
y, en especial, a aqulla que se est utilizando como estndar en la organizacin as como la
posibilidad de llamar a rutinas externas en diferentes lenguajes y viceversa, o la invocacin del
sistema basado en el conocimiento desde otros sistemas.
Un aspecto fundamental a tener en cuenta es la portabilidad de la herramienta (herramientas
multiplataforma). En este aspecto hay que valorar no slo si la herramienta es susceptible de
funcionar en diferentes plataformas sino tambin el coste del cambio de plataforma. Existen
herramientas que permiten pasar de una plataforma a otra sin apenas esfuerzo, lo que facilitar
la comercializacin y el uso de los sistemas que se desarrollen.
3.6 Tendencias futuras de los Sistemas expertos.
El mercado de herramientas para el desarrollo de SE est sufriendo una profunda
transformacin debido a una reorganizacin en el mercado informtico y al cambio de estrategia
de las compaas dedicadas al desarrollo de estas herramientas. Son cada vez ms las
compaas que antao se dedicaban exclusivamente a la inteligencia artificial y que han
decidido introducirse en otros mercados ms amplios. Esto ha provocado una confusin que ir
en aumento a medida que las empresas que integraban el grupo del mercado de la inteligencia
artificial pasen a comercializar otro tipo de productos.
El mercado se ha ido reconfigurando aprovechando las experiencias del pasado y el avance
tecnolgico. As se ha pasado de utilizar mquinas especficas (por ejemplo mquinas LISP) a
usar ordenadores comunes (estaciones de trabajo, ordenadores personales, etc.). Las
aplicaciones eran muy especficas y ahora el mbito es mucho ms amplio. Los sistemas
basados en el conocimiento estaban pensados para trabajar de forma aislada y ahora se
conciben integrados con otros sistemas. Y, finalmente, el nmero de personas formadas en
estas tcnicas es mucho mayor que las existentes hace unos aos.Un anlisis del mercado
actual lleva a distinguir seis categoras de herramientas en funcin de la plataforma de desarrollo
y de operacin que lo estructuran:
clasificaciones posibles:
Segn plataformas
Segn herramientas de desarrollo:
Lenguajes (LISP, PROLOG, C++,...)
"Shell" (utilizando esos entornos)
CBR
Otra clasificacin:
Herramientas de propsito general
Herramientas de dominio.
Las herramientas de desarrollo de sistemas basados en el conocimiento se pueden clasificar
de varias formas.
Segn la plataforma de desarrollo y de operacin que lo estructuran podemos distinguir cuatro
tipos:
Herramientas para PCs y Macintosh: Hasta hace poco, las herramientas que existan para estos entornos
estaban orientadas al desarrollo de sistemas pequeos y prototipos. Actualmente, y dado el aumento de la
potencia de los PCs, hay herramientas que antes slo funcionaban en estaciones de trabajo y ahora tienen
versiones para PC.
Herramientas para estaciones de trabajo: Aunque el nmero de herramientas en este sector no ha
sufrido grandes variaciones, la aparicin de nuevas herramientas catalogadas como herramientas
orientadas a dominios especficos podran incluirse en esta categora. Este mercado presenta el mayor
volumen de ventas, y puede ser considerado sin duda, junto con el de los PCs, el que tiene ms proyeccin
de futuro. De hecho, aquellas compaas que no ofrecen una buena herramienta para estaciones de trabajo
estn realizando esfuerzos para colocar en el mercado un producto capaz de competir en este entorno.
Herramientas para mainframes: El nmero de herramientas en este mercado es pequeo y se prev que
en los prximos aos descienda lenta pero continuamente hasta desaparecer, ya que las compaas que los
comercializan se estn desplazando hacia las herramientas para estaciones de trabajo y PCs.
Herramientas Lisp: Son ordenadores con arquitecturas especiales para ejecutar programas Lisp. El
inters por herramientas Lisp contina descendiendo as como el nmero de productos en el mercado. Se
prev un descenso continuo en los prximos aos.
Segn el alcance de la herramienta podemos dividirlas en:
Herramientas de Propsito General. No estn especialmente concebidas para tratar problemas
especficos. Tienen como ventaja su capacidad para ser empleadas en gran variedad de problemas.
Orientadas a dominios y problemas especficos. Esta ltima categora representa el mayor grupo de
herramientas en el mercado. Se trata de herramientas que abordan problemas o reas especficos. Ahorran
mucho tiempo de desarrollo en el caso de ser aplicadas en los dominios para los que se disearon. El
nmero permanece estable aunque con perspectivas de crecimiento en los aos venideros debido al gran
inters existente en este tipo de herramientas.
Por ltimo podemos realizar una ltima divisin atendiendo al lenguaje o tcnica para el que
sirve la herramienta y as podemos distinguir entre:
Herramientas CBR (Case-Based Reasoning): La demanda de herramientas de este tipo se est
consolidando mediante la mejora de la calidad de sus productos con ms utilidades y nuevos componentes.
Son herramientas de razonamiento basadas en casos, para a partir de ellos inducir las reglas y criterios por
similitud.
Herramientas para lenguajes Lisp, Prolog, C++. Son entornos de desarrollo; proporcionan las utilidades
necesarias ( editores, compiladores, depuradores ) para poder programar de forma cmoda en estos
lenguajes. ( Se incluye el C++ porque cada vez hay ms programas basados en el conocimiento que se
desarrollan en l).
Shells. Son entornos de desarrollo completos y particulares. Contienen un motor de inferencia y utilizan
mtodos propios de representacin del conocimiento que pueden ser ms o menos parecidos al Lisp o al
Prolog. Sirven principalmente para el desarrollo de prototipos aunque tambin pueden utilizarse como
herramientas finales. Algunos ejemplos son CLIPS, ART, G2.
Algunos de los campos actuales de investigacin y de aplicacin son:
Aprendizaje: Se pretende que sea el propio ordenador el que adquiera el conocimiento. Existen muchas
tcnicas aplicables o no dependiendo del problema: aprendizaje inductivo, deductivo, redes neuronales,
algoritmos genticos.
Redes Neuronales: Consisten en nodos conectados con otros mediante enlaces, simulando las conexiones
que forman las neuronas en el cerebro. Se investiga su utilizacin en muchas reas; Visin Artificial,
Razonamiento, Aprendizaje, Comprensin Lenguaje Natural.
Redes Bayesianas: Tcnica para tratar el razonamiento con incertidumbre. Su base es el teorema de Bayes
que es el mtodo matemtico exacto para tratar las probabilidades. Consiste en una red donde los nodos
son hechos ciertos o no y los enlaces entre los nodos son las probabilidades condicionadas de unos hechos
con respecto a otros. Propagando las probabilidades a travs de la red, se pueden obtener los resultados
ms probables a partir de los hechos que se conocen (razonamiento). El ejemplo tpico son los sistemas de
diagnstico mdico.
Algoritmos genticos: Son mtodos de aprendizaje inspirados en la evolucin natural, y que utilizan las
nociones de individuos, apareamiento, recombinacin de cromosomas, mutacin gentica, adaptacin y
seleccin natural. Son la base de las investigaciones en Vida Artificial.
Otras tcnicas que se pueden mencionar son la utilizacin de Ontologas para representar el
conocimiento, Data Mining para obtencin de conocimiento en bases de datos y los Agentes
Inteligentes para la recuperacin de informacin en Internet.
CAPITULO 4.APLICACIONES DE LOS SISTEMAS EXPERTOS.
4.1 Factores que justifican el desarrollo de un sistema experto:
El coste para formar nuevos expertos es muy alto.
Existe el riesgo de perder los conocimientos y la experiencia en posesin de los expertos.
Los expertos reconocidos que resuelven ese tipo de problemas son escasos.
Es conveniente disponer de expertos sin restricciones de tiempo y lugar.
Los expertos tienen que trabajar en ambientes hostiles.
4.2 Tipo de problemas que hacen apropiado el desarrollo de un sistema experto.
Las tareas requieren principalmente tratamiento y razonamiento simblico.
Las tareas admiten el uso de mtodos heursticos.
Las tareas no son demasiado fciles.
Las tareas tienen un valor eminentemente prctico.
Las tareas tienen un tamao razonable, esto es, el nmero de conceptos que deben ser manejados es
limitado y no requiere conocimientos de muchas reas diferentes.
4.3.Campo de aplicaciones de los SE.
Segn el tipo de problema a resolver, los mbitos de aplicacin en los que ms se han utilizado
los sistemas basados en el conocimiento son los siguientes:
Sistemas de ayuda a la toma de decisiones. Se trata de sistemas que a partir de una problemtica
determinada sugieren la solucin que consideran ms idnea a partir del conocimiento incluido en el
sistema. En la actualidad, en Espaa se procede al desarrollo del Sistema de Informacin Normativo
Aplicado al Control (SINAC) fruto de la colaboracin entre la Intervencin General de la Administracin
del Estado y la Direccin General de Informtica Presupuestaria. Su funcin primordial consiste en ayudar
en la fiscalizacin y control de la actividad econmica del Sector Pblico. Otro ejemplo significativo
podra ser la Metodologa de Anlisis y Gestin de Riesgos de los sistemas de Informacin de las
AdminisTraciones pblicas(MAGERIT), elaborada por un equipo interdisciplinar del Comit Tcnico de
Seguridad de los Sistemas de Informacin y Tratamiento Automatizado de Datos Personales, SSITAD,
del Consejo Superior de Informtica y que consiste en un mtodo formal para investigar los riesgos que
soportan los Sistemas de Informacin, y para recomendar las medidas apropiadas que deberan adoptarse
para controlar estos riesgos; por tanto, permite aportar racionalidad en el conocimiento del estado de
seguridad de los Sistemas de Informacin y en la introduccin de medidas de seguridad.
Configuracin. Se encargan de la seleccin y planificacin de los componentes que se necesitan en un
proceso determinado. Un caso tpico son los sistemas que ayudan a configurar los equipos fsicos a partir
de los componentes existentes y de las restricciones establecidas.
Diagnstico. Se trata de sistemas que a partir de unos "sntomas" determinan las causas que lo producen.
Ejemplo de ellos son los sistemas basados en el conocimiento de diagnstico de enfermedades o de averas.
Interpretacin y Anlisis. Sirven para tratar grandes volmenes de informacin, interpretarla, dar un
informe explicativo y sugerir las acciones a tomar. Ejemplo de ellos pueden ser los sistemas de evaluacin
de resistencia de estructuras frente a terremotos o sistemas de supervisin de procesos industriales.
Monitorizacin. En algunos situaciones se considera un caso particular de sistemas de interpretacin y
anlisis, pero debido a su frecuente uso se suelen considerar aparte. Estos sistemas suelen encargarse de
monitorizar procesos suministrando una salida de control como respuesta. Existen muchos ejemplos de
monitorizacin de procesos en factoras, plantas qumicas, centrales nucleares, etc. Son sistemas que deben
funcionar en tiempo real.
Planificacin. Son sistemas que establecen las etapas y recursos necesarios para alcanzar un determinado
objetivo. Ejemplo de ellos podra ser un sistema basado en el conocimiento de planificacin de trabajos
en una factora.
Interfaces inteligentes. Hacen de puente entre las personas y equipos complejos y de difcil utilizacin.
Caso tpico son los interfaces inteligentes de acceso a base de datos.
Diseo. Son aqullos que efectan la planificacin o trazado de un objeto o sistema en base a los requisitos
especificados. Suelen ser capaces de dar diferentes soluciones de forma que el usuario pueda elegir aqulla
que le convenga. Ejemplo de este tipo son los sistemas de ayuda al diseo de puentes, presas,
microcircuitos electrnicos, etc.

Bibliografa
Cuena, J. Notas sobre modelos de razonamiento. Dpto. de I.A., Facultad de Informtica, UPM,
1995.
Jackson, P. Introduction to Expert Systems Addison-Wesley, 1990.
Sterling, L. y Shapiro, E. The Art of Prolog (Segunda edicion) MIT Press, 1993.
Bratko, I. Prolog Programming for Artificial Intelligence, Addison-Wesley Ltd. 1986.
Clocksin y Mellish. Programming in Prolog, Springer-Verlag, 1981
Shoham, Yoav Artificial Intelligence Techniques in Prolog, Morgan Kaufmann, 1993.
Bowen, Kenneth A. Prolog and Expert Systems, McGraw-Hill, 1991.
Castillo, E., Gutirrez, J.M. and Hadi, A.S. (1997) Expert Systems and probabilistic Network
Models. Springer Verlag, New York. Versin castellana publicada por la Academia de Ingeniera
(1998)

Vous aimerez peut-être aussi