Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NIVEL9: Una herramienta inteligente que emula a los expertos humanos
¿Qué es un Sistema Experto?
Los sistemas expertos o sistemas basados en conocimiento son programas que se
basan en procedimientos de inferencia simbólica para tratar con problemas que son lo
suficientemente complejos para requerir a un experto humano en la gestión de su
solución. Una definición más universal es la de Forsyth (1986) que dice que: “Un
sistema experto es un programa de ordenador que reemplaza a un experto humano”.
Los sistemas expertos son apasionantes por dos razones fundamentales: en
primer lugar son generalmente programas útiles y prácticos que colman una necesidad
concreta en cualquier área del conocimiento humano, y, en segundo lugar, son
factibles y viables económicamente para las organizaciones. Estas son las dos
razones que apoyan gran parte del éxito comercial de la inteligencia artificial.
Ventajas de los Sistemas Expertos
El principal atractivo de un sistema experto es fundamentalmente su disponibilidad y
conveniencia. La mejor forma de ver las ventajas de un sistema experto es
comparándolo con un experto humano.
Los sistemas expertos a diferencia de un humano que tiene que dormir, comer,
descansar, tomarse vacaciones y realizar otras actividades que lo distraen de su
trabajo, está disponible durante las 24 horas del día, todos los días del año. Además,
como cualquier software, pueden crearse muchas copias del mismo, mientras que en
el caso de los expertos humanos siempre habrá un número muy limitado de ellos. Un
sistema experto nunca muere por lo que el conocimiento almacenado en él, perdura,
este conocimiento puede ser copiado y almacenado fácilmente, siendo muy difícil la
pérdida de éste, esto no sucede con los expertos humanos los cuales al morir se
llevan todo su conocimiento con ellos perdiéndose de esta manera el conocimiento de
grandes eminencias que nunca se recupera.
Otra ventaja de los sistemas expertos sobre los humanos es que el software
siempre está en pleno rendimiento. Cuando un humano se agota, esta preocupado o
estresado, la exactitud y calidad de sus consejos puede decaer enormemente. Sin
embargo el sistema experto siempre proporcionará las mejores opciones posibles –
dentro de las limitaciones de su base de conocimientos—ya que nunca se verá
afectado por el entorno que lo rodea lo cual lo hace sumamente valioso para lugares
hostiles y peligrosos donde el ser humano podría correr serios riesgos.
Otro punto importante es la velocidad en que un talento humano puede resolver
un problema, lo cual también es influido por muchos factores. Por el contrario, un
sistema experto es consistente en la velocidad en que resuelve los problemas, y en
muchos casos, supera en gran medida a los expertos humanos en la velocidad en que
desarrolla las tareas.
Los talentos humanos tienden a ser extremadamente costosos. Por lo general
los expertos humanos demandan salarios muy altos, por el contrario los sistemas
expertos son relativamente baratos. El costo de desarrollo suele ser relativamente
elevado, pero en muchos casos, se puede recuperar la inversión rápidamente por los
ahorros que el sistema produce a la organización.
Los sistemas expertos son capaces de explicar los procesos que han utilizado
para llegar a una determinada conclusión, lo cual es bastante inusual en los humanos
ya que estos generalmente son bastante celosos en cuanto a la revelación de sus
conocimientos.
2
Una última ventaja de un sistema experto consiste en que se puede crear un
nuevo experto simplemente copiando el programa de una computadora a otra. Un
humano necesita mucho tiempo para convertirse en un especialista en ciertos campos,
lo que hace difícil que puedan aparecer nuevos especialistas humanos.
Incluso la falta de personalidad de un sistema experto puede resultar de
gran beneficio en algunas circunstancias. Como probablemente es conocido, las
personalidades de las personas no son siempre compatibles. Si una persona no se
lleva bien con el humano experto, puede que esta persona se encuentre reticente a
recabar sus conocimientos. La situación contraria también puede ocurrir, un humano
experto en algún dominio de conocimiento de interés al que una persona no le agrada
puede que no le suministre una información fidedigna. Por el contrario, un experto
computarizado no tiene personalidad (o al menos no debería de tener), de manera que
este tipo de problemas desaparecen.
Campos de Aplicación de los Sistemas Expertos
A continuación se detallan algunas áreas de conocimiento que han sido tratadas por
metodologías de sistemas expertos que han tenido gran impacto social.
MEDICINA
Diagnóstico y tratamiento de glaucoma
Diagnóstico de enfermedades de medicina interna
Diagnóstico y terapia de enfermedades infecciosas bacterianas
Diagnóstico de nefrología
Neurología
Enseñanza de medicina
Interpretación de pruebas de función pulmonar
FINANZAS Y GESTION
Análisis de mercados
Análisis de riesgos y tasación de seguros
Asesoría jurídica y fiscal
Concesión de tarjetas de créditos
Evaluación de riesgos de gestión de cartera
Planes de inversión de capitales
Planes de pensiones
Previsiones en las fluctuaciones del mercado
INDUSTRIA
Diagnóstico de control de calidad
Detección y actuación en caso de alarmas y emergencias
Configuración de equipos y sistemas de baja demanda
Control de procesos industriales
Gestión optima de recursos
Diagnóstico y reparación de averias
ELECTRONICA, INFORMATICA Y TELECOMUNICACIONES
Diseño de circuitos de alto grado de integración
Configuración de equipos y sistemas
Control de redes de comunicación
Programación automática
3
Ajuste de equipos y sistemas
MILITAR
Guiado de vehículos y proyectiles de forma semiautomática
Planeación estratégica
Reconocimiento automático de blancos y valoración de los mismos
Reconocimientos de planes del enemigo
Encaminamiento de los mensajes e informaciones en conflicto
Tiempos mínimos de comunicación
EDUCACION
Diagnóstico de problemas de aprendizaje en los alumnos
Recomendaciones sobre terapias de aprendizaje y autoaprendizaje
OTROS CAMPOS DE APLICACIÓN
Aeronáutica
Agricultura
Ingenierías
Arqueología
Derecho
NIVEL9: Una herramienta para facilitar la creación de Sistemas Expertos
NIVEL9 es el nombre del software informático diseñado por el Ing. Mauricio Ernesto
Alfaro para la tarea de apoyar o incluso sustituir a expertos en las diferentes áreas del
conocimiento humano.
NIVEL9 nació como un proyecto para apoyar al Instituto de Ciencias del
Mar y Limnología (ICMARES)de La Universidad de El Salvador (UES) en la
identificación de las Familias de Anélidos Poliquetos de la costa de El Salvador.
En este proyecto fue realizado en conjunto con el Ing. José Luis Nuila el cual se
encargó de obtener, ordenar traducir y codificar el conocimiento sobre la identificación
de Familias de Anélidos, a través de la colaboración del Lic. Carlos Giovanni Rivera
investigador de la UES y experto en el área de identificación de especies marinas en
El Salvador. ICMARES proyecta un incremento aproximado del 60% en la
productividad de los expertos y un 200% en la productividad de los biólogos no
expertos en la tarea de identificación de especies microscópicas marinas gracias al
apoyo de este software. En la figura 1 se muestra como NIVEL9 es capaz de identificar
Familias de los Anélidos Poliquetos, para ello el software proporciona en cada
pregunta imágenes apropiadas referentes a las características biológicas de los
organismos (estructuras, formas, etc..), de esta forma el biólogo encargado de realizar
la identificación puede comparar las imágenes proporcionadas por el sistema con
especimenes reales de muestra vistos desde el microscopio digital y así facilitar la
capacidad de respuesta ante las interrogantes que el software va generando. Esto
hace que las probabilidades de cometer errores en las identificaciones se reduzcan
notablemente o sean nulas.
4
En la figura 1 puede observarse como NIVEL9 identifica un organismo de la Familia de los Poliquetos
denominada Sternaspidae.
NIVEL9 es capaz de resolver problemas de clasificación, diseño, control,
optimización, instrucción, planeación y diagnóstico por medio de conocimiento
específico representado a través de reglas en cualquier área del conocimiento.
En esta primera fase el software utiliza el método de encadenamiento hacia
delante como método de inferencia del conocimiento, en esta técnica el motor de
inferencia del software utiliza la información que el usuario le proporciona para
moverse a través de una red de operaciones lógicas (ANDs y ORs) suministradas a
través de reglas de conocimiento hasta que encuentra un punto Terminal, que es el
objetivo o conclusión del problema a resolver. Si el motor de inferencia no puede
encontrar un objetivo usando información existente, entonces pide más. Los atributos
que definen al objetivo crean un camino que conduce al mismo objeto: la única forma
de alcanzar dicho objeto es la de satisfacer todas sus reglas. Por tanto, el software
comienza con alguna información y luego intenta encontrar un objeto que encaje con
dicha información.
Uno de los módulos más atractivos de NIVEL9 es el servicio TTS (TextTo
Speech) el cual provee la habilidad de convertir texto escrito en palabras habladas. El
TTS se vale de sintetizadores de voz creados por otras empresas para generar voces
en diferentes idiomas según sea el gusto del usuario.
En la figura 2 se muestra el cuadro de diálogo que presenta el software para
configurar la voz.
5
Figura 2. Cuadro de diálogo para configurar la voz. En la figura se muestra como el usuario puede
seleccionar entre varias opciones de sintetizadores de voz. También el software es capaz de modular
el tono, la velocidad y el volumen en que la voz va ser generada.
NIVEL9 consta de tres modos explicativos que permiten al usuario obtener
información y seguir la pista sobre el razonamiento que el software está efectuando
en ese momento. El software puede mostrar la forma en que solucionó un
problema o dedujo la conclusión final del razonamiento.
Módulos Explicativos de NIVEL9
INSTRUCCIÓN ¿PORQUE? La instrucción PORQUE de NIVEL9 intenta aclarar al
usuario la razón por la cual el sistema está realizando dicha pregunta, es decir, la
instrucción intenta conocer el porque (¿Por qué?) de una pregunta. El sistema trata de
encontrar hechos que lo lleven a sacar información importante para luego obtener una
conclusión definitiva que le permita solucionar un problema determinado. La
instrucción PORQUE intenta mostrar a donde se quiere llegar una vez se responda la
pregunta en cuestión para que de esta manera el usuario entienda que camino tomará
el programa. Esta instrucción debe utilizarse antes de que la sesión haya finalizado, ya
que su función es generar el razonamiento de la pregunta en curso y a que regla
pertenece.
La figura 3 muestra como funciona esta instrucción para un pequeño sistema
experto de prueba que realiza diagnósticos de fallas en los sistemas eléctricos de
automóviles de combustión. El sistema intenta verificar si la falla proviene de la batería,
primero intenta averiguar si el problema se debe a una mala conexión de la batería y
una vez que a determinado que no se debe a esa causa, verifica si la batería está
defectuosa a través de pruebas de lectura con el voltímetro. A continuación se muestra
6
parte de la sesión del software para aclarar el funcionamiento de la instrucción
PORQUE.
Muestra de un extracto de la sesión de un sistema experto para detección de
problemas eléctricos en automóviles de combustión.
….
>> El sistema comenzará el chequeo de conexión de batería...
>> ¿Se observa que al mover ó apretar los contactos las luces se vuelven más brillantes?
RESPUESTA: No
>> ¿Se observa que los contactos de las luces no están unidos?
RESPUESTA: No
>> ¿Se observa que al mover ó apretar los contactos, las luces no se vuelven más
brillantes?
RESPUESTA: Sí
>> La conexión de la batería esta bien.
>> El sistema comenzará el chequeo de batería con el voltímetro...
>> ¿Se observa que la prueba de lectura del voltímetro es negativa?
RESPUESTA: ¿Porque?
Con la pregunta activa pretendo resolver un hecho desconocido.
La pregunta actual la obtuve de la regla número 9.
El razonamiento en el que me fundamenté fue el siguiente:
si la tarea es comenzar diagnóstico de batería,
y la prueba de lectura del voltímetro es negativa,
entonces el problema es una batería defectuosa.
>> ¿Se observa que la prueba de lectura del voltímetro es negativa?
…
7
Figura 3. La instrucción PORQUE muestra al usuario la justificación del porque el sistema pregunta sobre la lectura del
voltímetro en la prueba de chequeo de la batería de un automóvil.
INSTRUCCIÓN ¿DONDE? La instrucción DONDE de NIVEL9 realiza un resumen de
todas las reglas utilizadas hasta el momento para inferir nuevo conocimiento o bien
para descifrar la conclusión definitiva del sistema, esta instrucción intenta determinar
de dónde (¿Dónde?)provienen las afirmaciones proporcionadas por el software en la
resolución del conflicto del problema. Esta instrucción muestra un análisis
descendente, es decir desde la primera hasta la última regla del razonamiento seguido
por el software para llegar a la pregunta en cuestión. Esta instrucción puede ser
utilizada en cualquier momento de la sesión, aunque generalmente se utiliza al final
con el propósito de obtener el razonamiento seguido por el programa para llegar a la
respuesta definitiva.
En la figura 4 se pone de manifiesto la instrucción DONDE. En este caso NIVEL9 esta
corriendo un sistema experto que calcula la forma óptima en que debe cargarse un
carro vacío basado en el peso límite que puede soportar el carro. El carro sólo puede
cargar personas pequeñas, medianas y grandes y a cada grupo de estos se le ha
asignado un peso específico, por lo tanto la misión de este sistema es decidir la mejor
forma de cargar cada uno de los carros hasta terminar de cargar a todas las personas.
El sistema en este caso toma como hechos iniciales base la siguiente información:
Número de Personas Pequeñas = 4
Número de Personas Medianas = 4
Número de Personas Grandes = 4
Personas Pequeñas en Carro = 0
Personas Medianas en Carro = 0
Personas Grandes en Carro = 0
Peso de Carro = 0
Número de Carro = 0
Peso de Personas Pequeñas = 100
Peso de Personas Medianas = 200
Peso de Personas Grandes = 300
Peso Máximo de Carro = 1000
8
Figura 4. El software NIVEL9 explica en forma descendente a través de la instrucción DONDE como resolvió el
problema de cargar un carro en forma óptima utilizando la información de pesos de personas pequeñas, medianas y
grandes.
La sesión para la resolución del problema anterior se muestra a continuación:
> ¿Desea comenzar a empacar un nuevo carro?
RESPUESTA: Sí
Número de Carro: 1
Peso de Carro: 1000
Número de personas grandes: 3
Número de personas medianas: 0
Número de personas pequeñas: 1
>> ¿Desea comenzar a empacar un nuevo carro?
RESPUESTA: Sí
Número de Carro: 2
Peso de Carro: 1000
Número de personas grandes: 1
Número de personas medianas: 3
Número de personas pequeñas: 1
>> ¿Desea comenzar a empacar un nuevo carro?
RESPUESTA: Sí
Número de Carro: 3
Peso de Carro: 400
Número de personas grandes: 0
Número de personas medianas: 1
Número de personas pequeñas: 2
9
>> El número de personas a ordenar ha finalizado
El sistema determina que basta con tres carros para cargar a las 12 personas.
Estas 12 personas se subdividen en 4 pequeñas, 4 medianas y 4 grandes. Obsérvese
que los dos primeros carros van totalmente cargados de manera que el peso ha sido
optimizado al máximo (1000lbs), y es hasta el tercer carro que el peso sólo llega a
400lbs debido a que sólo faltaba cargarse a 1 persona mediana y 2 personas
pequeñas para cargar a todos los pasajeros(12 personas). El sistema muestra cuantas
personas pequeñas, medianas y grandes deben cargarse para cada carro.
A continuación se muestra la respuesta de NIVEL9 ante la instrucción DONDE para el
problema anterior:
…
¿Donde?
Todo el nuevo conocimiento que he inferido viene del procesamiento de las reglas en
forma descendente que he encontrado en mi base de conocimientos.
La 1ª regla útil que encontré para resolver el problema es la regla número 9:
si número de personas pequeñas es igual que 0,
y número de personas medianas es igual que 0,
y número de personas grandes es igual que 0,
entonces la tarea está completada,
sino la tarea es comenzar un nuevo carro.
La 2ª regla útil que encontré para resolver el problema es la regla número 1 :
si la tarea es comenzar un nuevo carro,
entonces la tarea es acomodar persona grande,
sino la tarea está completada.
La 3ª regla útil que encontré para resolver el problema es la regla número 3 :
si la tarea es acomodar persona grande,
y número de personas grandes es igual que 0,
o peso de personas grandes sumado a peso de carro es mayor que peso máximo de carro,
entonces la tarea es acomodar persona mediana.
La 4ª regla útil que encontré para resolver el problema es la regla número 5 :
si la tarea es acomodar persona mediana,
y número de personas medianas es igual que 0,
o peso de personas medianas sumado a peso de carro es mayor que peso máximo de
carro,
entonces la tarea es acomodar persona pequeña.
La 5ª regla útil que encontré para resolver el problema es la regla número 7 :
si la tarea es acomodar persona pequeña,
y número de personas pequeñas es igual que 0,
o peso de personas pequeñas sumado a peso de carro es mayor que peso máximo de
carro,
entonces la tarea es desplegar el carro presente.
La 6ª regla útil que encontré para resolver el problema es la regla número 8 :
si la tarea es desplegar el carro presente,
entonces desplegar el contenido del carro.
10
La 7ª regla útil que encontré para resolver el problema es la regla número 9 :
si número de personas pequeñas es igual que 0,
y número de personas medianas es igual que 0,
y número de personas grandes es igual que 0,
entonces la tarea está completada,
sino la tarea es comenzar un nuevo carro.
INSTRUCCIÓN ¿COMO? La instrucción COMO intenta determinar cómo
(¿Cómo?)se llegó a una conclusión determinada en el análisis. Esta instrucción
realiza una tarea muy parecida a la instrucción DONDE con la diferencia de que
muestra la lista de reglas en forma ascendente. Esta instrucción muestra un análisis
del razonamiento seguido por el software a partir de la última regla utilizada hasta la
primera para llegar a la pregunta en cuestión. Esta instrucción además de realizar el
análisis mencionado, muestra los hechos que se declararon previamente en el código
del lenguaje y además una lista todas las preguntas que fueron respondidas por el
usuario en forma positiva. Al igual que la instrucción DONDE, la instrucción COMO
puede ser utilizada en cualquier momento de la sesión, aunque generalmente se utiliza
al final con el propósito de obtener el razonamiento seguido por el programa para
llegar a la respuesta definitiva.
En la figura 5 se pone de manifiesto la instrucción COMO. En este caso NIVEL9 esta
corriendo un sistema experto ficticio que realiza asesoramiento financiero a clientes
que presentan un perfil específico de interés. Para este caso el sistema pregunta datos
de importantes que definen el perfil del cliente que va a ser analizado para luego dar el
asesoramiento financiero pertinente al mismo. A continuación se muestra como
ejemplo una sesión realizada para una persona que desea invertir $60,000.
>> Bienvenido al sistema experto para asesoramiento financiero de inversiones para
clientes particulares que están registrados como contribuyentes naturales.
>> Responda a cada pregunta según las indicaciones del sistema.
>> ¿Cual es la edad del Cliente?
Digite la edad en años en el cuadro de Respuesta y luego oprima el botón Enviar.
42
>> ¿Cuánto tiempo ha permanecido el cliente laborando en la empresa en que trabaja
actualmente?
Digite el número de años en el cuadro de Respuesta y luego oprima el botón Enviar.
7
>> ¿En que categoría se puede clasificar la empresa en que labora actualmente?
>> Digite el número correspondiente deacuerdo a las opciones que se muestran a
continuación
>> 1 Servicios
>> 2 Comercio
>> 3 Industria
>> 4 Educación
>> 5 Agricultura
>> 6 Construcción
>> 7 Financiera
11
RESPUESTA: 2
>> ¿Cual es el monto del total de activos del cliente?
Digite el total de activos en dólares en el cuadro de Respuesta y luego oprima el botón
Enviar.
120000
>> ¿Cual es el monto del total de pasivos del cliente?
Digite el total de pasivos en dólares en el cuadro de Respuesta y luego oprima el botón
Enviar.
80000
>> ¿Cuanto es el monto de inversión del cliente?
Digite el monto aproximado en dólares que el cliente está dispuesto a invertir en el
cuadro de Respuesta y luego oprima el botón Enviar.
60000
>> ¿Tiene el cliente esposa e hijos?
RESPUESTA: No
>> Asesoramiento del estado Personal: El cliente muestra un estado personal
conservativo en cuanto al riesgo de inversión.
>> Asesoramiento del estado Financiero: El cliente muestra un estado financiero agresivo
en cuanto a la capacidad de inversión.
>> ANÁLISIS DE INVERSION PARA EL CLIENTE:
>> Se recomienda invertir el 60% del dinero en acciones, el 30% en bonos y el 10% en el
mercado de valores
El monto invertido en acciones equivale a 36000 dólares
El monto invertido en bonos equivale a 18000 dólares
El monto invertido en el mercado de valores equivale a 6000 dólares
12
Figura 5. NIVEL9 explicando como determinó el asesoramiento financiero correcto para una persona registrada como
natural ante el fisco. Para este caso el software definió que debería de invertirse $36000 en acciones de alguna
empresa, $18,000 en bonos y $6,000 en el mercado de valores.
13
A continuación de muestra el razonamiento del sistema experto para llegar a la
conclusión de que sería favorable para el cliente invertir el 60% del dinero en acciones,
el 30% en bonos y el 10% en el mercado de valores.
…
¿Como?
El conocimiento obtenido lo inferí de la siguiente manera:
Utilicé la regla número 28 para determinar la conclusión anterior, basándome en el
siguiente razonamiento:
si se aconseja invertir el 60% del dinero en acciones, 30% en bonos y 10% en el mercado
de valores,
entonces imprime valores.
Utilicé la regla número 27 para determinar la conclusión anterior, basándome en el
siguiente razonamiento:
si el estado personal del cliente sugiere una posición conservativa,
y el estado financiero del cliente sugiere una posición agresiva,
entonces se aconseja invertir el 60% del dinero en acciones, 30% en bonos y 10% en el
mercado de valores.
Utilicé la regla número 22 para determinar la conclusión anterior, basándome en el
siguiente razonamiento:
si el total del activo es mayor que el total del pasivo,
y el total del activo es menor que el factor de seguridad multiplicado por el total del pasivo,
y el cliente no tiene niños,
entonces el estado financiero del cliente sugiere una posición agresiva.
Utilicé la regla número 17 para determinar la conclusión anterior, basándome en el
siguiente razonamiento:
si el cliente es viejo,
o el trabajo del cliente es inestable,
entonces el estado personal del cliente sugiere una posición conservativa.
Utilicé la regla número 14 para determinar la conclusión anterior, basándome en el
siguiente razonamiento:
si el rango de servicios es mayor o igual que el servicio corto,
y el rango de servicios es menor que el servicio largo,
y la tasa de rotación del personal en la organización es baja,
entonces el trabajo del cliente es estable.
Utilicé la regla número 12 para determinar la conclusión anterior, basándome en el
siguiente razonamiento:
si la tasa de rotación del personal en la organización es menor o igual que 2.3,
entonces la tasa de rotación del personal en la organización es baja.
Utilicé la regla número 5 para determinar la conclusión anterior, basándome en el siguiente
razonamiento:
si el tipo de empresa es igual que 2,
entonces la empresa tiene rubro comercial.
14
Utilicé la regla número 3 para determinar la conclusión anterior, basándome en el siguiente
razonamiento:
si la edad del cliente es mayor que la edad madura,
entonces el cliente es viejo.
Utilicé la regla número 1 para determinar la conclusión anterior, basándome en el siguiente
razonamiento:
si el cliente tiene familia,
entonces el cliente tiene niños,
sino el cliente no tiene niños.
Todo lo anterior está basado en el conocimiento en forma de hechos encontrados.
Tomé como hechos iniciales base las siguientes sentencias:
La edad madura = 40
El factor de seguridad = 1.7
El servicio corto = 3
El servicio largo = 10
El monto de inversión.
El monto de inversión en acciones.
El monto de inversión en bonos.
El monto de inversión en mercado de valores.
La edad del cliente.
El rango de servicios.
El total del activo.
El total del pasivo.
El tipo de empresa.
La tasa de rotación del personal en la organización.
Para obtener las conclusiones también me he basado en los hechos confirmados por el
usuario.
Tomé como hechos base introducidos por el usuario las siguientes sentencias:
La edad del cliente = 42
El rango de servicios = 7
El tipo de empresa = 2
El total del activo = 120000
El total del pasivo = 80000
El monto de inversión = 60000
Finalmente tomé en cuenta las respuestas introducidas por el usuario en las consultas.
El Lenguaje NIVEL9 para la creación de bases de conocimiento
NIVEL9 consta de su propio lenguaje de programación y es a través de este que se
pueden generar ficheros con código que reflejen información en cualquier domino del
conocimiento. La codificación del conocimiento se realiza en forma de reglas, las
cuales luego son suministradas al software. Estas reglas son gestionadas por el
software a través de técnicas de inteligencia artificial para inferir nuevo conocimiento
en las sesiones con el usuario. El lenguaje propio de NIVEL9 ha sido diseñado para
ser bastante amigable al usuario y sobretodo se ha buscado que las reglas puedan
codificarse lo más similar posible al lenguaje natural que utilizamos diariamente.
El lenguaje creado para NIVEL9 esta diseñado en español, lo cual le permite
almacenar el conocimiento en dicho idioma.
Para facilitar la codificación de las bases de conocimiento a través este lenguaje
NIVEL9 provee al usuario un editor propio que realiza varias funciones que vuelven
menos tediosa la escritura del código que envuelve el conocimiento.
15
Entre las principales ventajas que proporciona este editor se encuentran las siguientes:
1. Coloreado de palabras claves del lenguaje
2. Análisis gramatical de la sintaxis escrita
3. Detección de errores de tipo léxico, sintáctico y semántico
4. Funciones para formatear el texto escrito
5. Guardado e impresión de ficheros
En la figura 6 se muestra una parte del código utilizado para la creación de una base
de conocimientos que detecta fallos en una estación de bombeo. Puede observarse
claramente como el código se compone de reglas escritas en lenguaje natural las
cuales están relacionadas unas con otras y que reflejan la manera de proceder de las
personas para analizar un problema.
Figura 6. Muestra del editor propio de NIVEL9 para codificar reglas de conocimiento. Puede observarse como el editor
colorea las palabras claves del lenguaje con el fin de que le sea mucho más fácil depurar errores al usuario.
La figura 7 muestra como el editor proporciona funciones que permiten simplificar la
detección de errores gramaticales en la codificación del conocimiento.
Para el caso el software define el tipo de error (semántico o sintáctico), indica el
número de línea correspondiente al editor en donde fue encontrado dicho error y por
último detalla más información pertinente al error encontrado.
16
Figura 7. El editor tiene funciones que permiten la detección de errores de tipo gramatical.
Desafíos de la Inteligencia Artificial y los Sistemas Expertos en El Salvador
Las metodologías de inteligencia artificial han ido tomando gran auge a través
del tiempo como instrumentos que resuelven problemas complejos de la sociedad y
como técnicas que simplifican el uso de la nueva tecnología de punta desarrollada.
Actualmente la inteligencia artificial se utiliza en la gran mayoría de tecnología y
equipos electrónicos de forma muy sutil (lavadoras, refrigeradoras, computadoras,
software, autos, aviones, tecnología de comunicaciones etc… ), todo esto con el fin de
simplificar la vida del ser humano y hacerlo más eficiente en sus labores cotidianas.
En países tercermundistas como El Salvador las metodologías de inteligencia
artificial serían extremadamente útiles para la solución de problemas sociales y
económicos graves que entorpecen nuestro desarrollo. Existe una clara necesidad de
inversión por parte del gobierno hacia la educación superior y hacia la especialización
como apuesta hacia una rentabilidad a largo y mediano plazo que es indispensable
para el desarrollo económico de nuestro país. La inversión por parte de las empresas
privadas hacia este rubro es también muy lamentable, la falta de políticas que motiven
a la inversión privada por parte del gobierno demuestra una tremenda miopía en
nuestras políticas de desarrollo.
17
Con respecto a las universidades nacionales hay una obvia falta de interés en
toda la investigación relacionada con el fomento al desarrollo de tecnología propia que
sea exportable internacionalmente, la falta de postgrados y de grupos multidiciplinarios
especializados producen un gran vacío cultural en la búsqueda de desarrollo como
medio de superación económica. Es necesario el fortalecimiento de disciplinas básicas
como la matemática, la estadística, la robótica, la electrónica, y sobre todo la
informática, las cuales aplicadas a otras ciencias como la medicina, la química y la
ingeniería pueden generar conocimiento y herramientas de alto valor científico. No hay
que olvidar también que la tecnología es un medio muy eficiente para evitar la
corrupción, existe software que permite la detección de fraudes en tarjetas de crédito a
través de la gestión de los patrones de compra de los usuarios, de esta misma forma
podrían generarse sistemas que permitan fraudes en la recaudación de impuestos en
nuestros país, por poner un ejemplo, lo cual sería muchísimo mas beneficioso y
rentable que investigar la percepción de la población ante el comportamiento de los
partidos políticos que es lo que están investigando algunas universidades nacionales.
La postura de las universidades ante la problemática nacional debe abordarse desde
un punto de vista meramente científico y no un punto de vista crítico social (ya que es
obvio que el gobierno no pone mucha atención a estos llamados y al final esto no
soluciona nada en forma práctica).
Los sistemas expertos como una de las áreas que estudia la inteligencia
artificial busca apoyar a las personas en la resolución de problemas complejos que
generalmente atañen a expertos especializados, y su a vez, a no cometer errores en la
ejecución de tareas especializadas importantes. La generación de sistemas expertos
en diferentes áreas de conocimiento en un medio como el nuestro, en donde es clara
la falta de expertos y además el desenvolvimiento de muchos de nuestros
profesionales es bastante cuestionable, podría mejorar la calidad de vida de nuestra
sociedad en forma dramática. La mala práctica de los profesionales en áreas como la
medicina produce terribles daños a costa de vidas humanas, por lo que una solución
tecnológica al problema podría involucrar el uso de esta metodología.
Existen otros campos muy interesantes en que puede apostarse por
metodologías avanzadas de inteligencia artificial y minería de datos, con un sentido
más práctico y de impacto social y de esta forma conseguir mejorar la calidad de los
servicios prestados a la población y desarrollarnos a nivel cultural y tecnológico.
Futuro de los Sistemas Expertos
El futuro de los sistemas expertos puede tomar varios rumbos no esperados en la
actualidad, en el mejor de los escenarios es posible que estos sistemas se popularicen
tanto en las organizaciones, que compitan con las mismas bases de datos y los
sistemas de información, que son los medios de gestión utilizados comúnmente en la
actualidad, y sin ir demasiado lejos, se podría pensar en sistemas expertos para
computadoras personales resolviendo problemas comunes del que hacer diario;
asumiendo que se diera este escenario, lo más probable es que se construya software
para emular bases de conocimiento sin conocimiento programado ( tal como lo hace
NIVEL9 ), para que de esta manera, estos realicen únicamente el proceso de
inferencia de conocimiento y que por a parte se vendan bases de conocimiento sobre
temas variados de interés público. La masificación del software y las bases de
conocimiento provocaría que los precios de estos fueran bajos de manera que estarían
al alcance de cualquiera. Es fácil imaginar que siguiendo esta línea se generen
empresas especializadas en la creación de bases de conocimientos para diferentes
18
áreas específicas y especializadas de conocimiento y las distribuyan a precios
accesibles a dichas empresas. Lo anterior provocaría una alta demanda de ingenieros
del conocimiento en las diferentes organizaciones que se dediquen a la creación de
bases de conocimiento para las diferentes actividades que realizan las empresas y de
esta forma es posible que se prescindiera de los cargos intermedios en las empresas,
polarizándose a puestos bajos donde las personas solo tendrían que saber manejar el
sistema experto y los puestos altos donde estarían los expertos creadores de las
bases de conocimiento.
Sin embargo un escenario menos optimista podría venir a desembocar en la
misma desaparición de los sistemas expertos por considerarse técnicas obsoletas para
la resolución de problemas. No hay que olvidar que técnicas como las redes
neuronales y la programación genética mezcladas con la estadística y la matemática
avanzada están alcanzando un gran impacto en la resolución de problemas, creando
mejores soluciones que los mismos sistemas expertos. Mucha de la investigación
sobre inteligencia artificial suele enfocarse en la comparación de las diferentes
técnicas para ver cual es más certera y cual lanza un porcentaje de error mínimo,
aunque por supuesto cada técnica tiene sus propias ventajas ante determinados
problemas.
Tomando una postura intermedia ante ambos escenarios, lo más probable es
que los sistemas expertos empiecen a mezclarse con otras técnicas y ciencias dando
como resultado una ensalada de técnicas que terminen en soluciones más robustas
ante la gran gama de problemas que presentan tanto personas como organizaciones.
En este sentido se está desarrollando un concepto relativamente novedoso
denominado minería de datos. La minería de datos no es más que la utilización de una
serie de técnicas estadísticas y de inteligencia artificial para el manejo efectivo de los
datos y así generar nuevo conocimiento importante para las organizaciones y la
ciencia. El concepto va desde la forma de extraer los datos de las bases de datos
hasta el procesamiento de la información.