Subido por Silvano Sanchez

2811816.pdf

Anuncio
RESUMEN
Este informe explica la implementacion de un Sistema Experto, que consiste en
diagnosticar las fallas de la Computadora y su posible solucion; como se sabe un fallo en el
Sistema es altamente perjudicial, ya que se puede perder los datos o incluso se puede llegar
a danar el equipo, si estos fallos no son detectados a tiempo.
El diagnostico es fundamental para la reposición del equipo, por lo que llamar a un tecnico
especializado es fundamental para solucionar los problemas ocasionales; dicho especialista
al ser solicitado requiere un tiempo determiando, el cual puede demorar mucho o ser muy
tedioso.
Por lo presentado anteriormente, es que se desarrollará un sistema experto el cual será
capaz de resolver los inconvenientes habituales y la naturaleza de las fallas que se pueden
dar en los componentes de una Pc, dando recomendaciones y posibles soluciones
1. INTRODUCCION
Desde la aparición de las computadoras hasta nuestros días, la gente ha invertido
grandes esfuerzos por tratar de dar una cierta capacidad de decisión a las máquinas,
incluso un cierto grado de inteligencia.
Un Sistema Experto en sí no tiene verdadera Inteligencia Artificial; más bien, es
un sistema basado en el conocimiento que, mediante el buen diseño de su base de
información y un adecuado motor de inferencias para manipular dichos datos
proporciona una manera de determinar resoluciones finales dados ciertos criterios.
Los Sistemas Expertos son una herramienta poderosa en el apoyo o guía de los
usuarios en los procesos que tienen una secuencia, pasos definida, pero que puede
ser configurable. Ademas su utilidad ya está comprobada, y sin embargo, muchas
personas desconocen y otras más no las aceptan todavía. Se desea presentar los
aspectos generales de un Sistema Experto (en adelante SE), sus orígenes,
componentes, construcción y utilización primordialmente, con el fin de crear
conciencia en las empresas de que los SE representan una oportunidad innegable de
modernización y mejoramiento de sus procesos.
La utilizacion de software y materiales virtuales computacionales como un
recurso para apoyar los procesos de ensenanza y aprendizaje de las diversas areas
del conocimineto, se ha convertido en una necesidad y constituye una respuesta
ante la problemática que giran en torno de la comprension cognositiva de conceptos
y nociones en un tema determinado.
En este documento se aborda el tema de DESARROLLO DE UN SISTEMA
EXPERTO PARA EL DIAGNÓSTICO DE FALLAS EN COMPUTADORAS, Y
SUS POSIBLES SOLUCIONES , apoyandonos en herrramientas como intenet y el
uso de prolog construiremos una base de conocimientos que contiene reglas y
hechos claves para desarrollar el Proyecto.
2. SISTEMA EXPERTO
2.1.
HISTORIA
Sus inicios datan a mediados de los años sesenta. Durante esta década en el
ano 1955 los investigadores Alan Newell y Herbert Simon desarrollaron la
Teoria de la Logica. . Este permitió desarrollar un programa que exploraba
la solución a un problema utilizando ramas y nudos, seleccionando
únicamente las ramas que más parecían acercarse a la solución correcta del
problema.
En 1956, se celebra una conferencia en Vermont (USA) de gran
trascendencia en el desarrollo de la I.A. Aca John McCarthy propone por
primera vez el uso del término "Inteligencia Artificial" para denominar el
estudio del tema.
En 1957, aparece la primera versión de "The General Problem Solver"
(GPS, Solucionador general de problemas); que podía trabajar con
criptoaritmética, con las torres de Hanoi y con otros problemas similares. Lo
que no podía hacer el GPS era resolver problemas del mundo real, tales
como un diagnóstico médico. El GPS utilizaba la teoría de la
retroalimentación de Wiener.
En 1958 McCarthy anuncia su nuevo desarrollo el lenguaje LISP (LISt
Procesing), el lenguaje de elección para todos aquellos desarrolladores
inmersos en el estudio de la Inteligencia Artificial.
En 1963, el Instituto Tecnológico de Massachussets (MIT) recibe una
subvención de 2,2 millones de dólares del gobierno de los Estados Unidos
en concepto de investigación en el campo de la IA. De esa forma, se
comprueba la importancia que el Gobierno concede a la investigación dentro
de ese campo.
Algunos investigadores decidieron entonces cambiar por completo el
enfoque del problema restringiendo su ambición a un dominio específico e
intentando simular el razonamiento de un experto humano. En vez de
dedicarse a computarizar la inteligencia general, se centraron en dominios de
conocimiento muy concretos. De esta manera nacieron los SE.
A partir de 1965, un equipo dirigido por Edward Feigenbaum, comenzó a
desarrollar SE utilizando bases de conocimiento definidas minuciosamente.
Dos años más tarde se construye DENDRAL, el cual es considerado como el
primer SE. La ficción de dicho SE era identificar estructuras químicas
moleculares a partir de su análisis espectrográfico.
En la década de los setenta se desarrolló MYCIN para consulta y diagnóstico
de infecciones de la sangre. Este sistema introdujo nuevas características:
utilización de conocimiento impreciso para razonar y posibilidad de explicar
el proceso de razonamiento. Lo más importante es que funcionaba de
manera correcta, dando conclusiones análogas a las que un ser humano daría
tras largos años de experiencia. En MYCIN aparecen claramente
diferenciados motor de inferencia y base de conocimientos. Al separar esas
dos partes, se puede considerar el motor de inferencias aisladamente. Esto da
como resultado un sistema vacío o shell (concha). Así surgió EMYCIN
(MYCIN Esencial) con el que se construyó SACON, utilizado para
estructuras de ingeniería, PUFF para estudiar la función pulmonar y
GUIDON para elegir tratamientos terapéuticos.
En esa época se desarrollaron también: HERSAY, que intentaba identificar
la palabra hablada, y PROSPECTOR, utilizado para hallar yacimientos de
minerales. De este último derivó el shell KAS (Knowledge Adquisition
System).
En la década de los ochenta se ponen de moda los SE, numerosas empresas
de alta tecnología investigan en este área de la inteligencia artificial,
desarrollando SE para su comercialización. Se llega a la conclusión de que
el éxito de un SE depende casi exclusivamente de la calidad de su base de
conocimiento. El inconveniente es que codificar la pericia de un experto
humano puede resultar difícil, largo y laborioso.
Un ejemplo de SE moderno es CASHVALUE, que evalúa proyectos de
inversión y VATIA, que asesora acerca del impuesto sobre el valor añadido
o IVA.
2.2.
DEFINICION
Un Sistema Experto (SE), puede definirse como un programa de computadora
basado en conocimientos y raciocinio que lleva a cabo tareas que
generalmente sólo realiza un experto humano; es decir, es un programa que
imita el comportamiento humano en el sentido de que utiliza la información
que le es proporcionada para poder dar una opinión sobre un tema en especial.
Una de las características principales de los sistemas expertos es que están
basados en reglas, es decir, contienen unos conocimientos predefinidos que se
utilizan para tomar todas las decisiones.
Los sistemas expertos forman parte de un firme y verdadero avance en la
inteligencia artificial simbólica. Es el ejemplo más exitoso de un Sistema
Basado en Conocimiento. Para una persona sería una experiencia casi
"traumática" el realizar una búsqueda de reglas posibles al completado de un
problema y concordar estas con las posibles consecuencias, mientras que se
sigue en un papel los trazos de un árbol de búsqueda. Los sistemas expertos
realizan amablemente esta tarea; mientras que la persona responde a las
preguntas formuladas por el sistema experto, esta busca recorriendo las ramas
más interesantes del árbol, hasta dar con la respuesta afín al problema, o en su
falta, la más parecida a esta. Los sistemas expertos tienen la ventaja frente a
otros tipos de programas de Inteligencia Artificial, de proporcionar gran
flexibilidad a la hora de incorporar nuevos conocimientos. Para ello solo
tenemos que introducir la nueva regla que deseemos hacer constar y ya está,
sin necesidad de cambiar el funcionamiento propio del programa. Los
sistemas expertos son "auto explicativos", al contrario que en los programas
convencionales, en los que el conocimiento como tal está encriptado junto al
propio programa en forma de lenguaje de ordenador. Los expertos de I.A.
dicen que los sistemas expertos tienen un conocimiento declarativo, mientras
que los demás programas tienen un conocimiento procedural.
Los sistemas basados en el conocimiento desarrollados hasta hace poco
constituyen la primera generación cuya característica común 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 más avanzados, sistemas de Segunda Generación, en la que el
conocimiento se estructura en dos niveles. El primer nivel, de control (se suele
aludir a él como meta conocimiento y las reglas que lo constituyen reciben el
nombre de meta reglas), sirve para determinar la forma de utilizar el segundo
nivel que es el que contiene el conocimiento de los expertos.
2.3.
USOS DE UN SISTEMA EXPERTO
Un sistema experto es muy eficaz cuando tiene que analizar una gran cantidad
de información, interpretándola y proporcionando una recomendación a partir
de la misma. Un ejemplo es el análisis financiero, donde se estudian las
oportunidades de inversión, dependiendo de los datos financieros de un cliente
y de sus propósitos.
Para detectar y reparar fallos en equipos electrónicos, se utilizan los sistemas
expertos de diagnóstico y depuración, que formulan listas de preguntas con las
que obtienen los datos necesarios para llegar a una conclusión. Entonces
recomiendan las acciones adecuadas para corregir los problemas descubiertos.
Este tipo de sistemas se utilizan también en medicina (ej. MYCIN y PUFF), y
para localizar problemas en sistemas informáticos grandes y complejos.
Los sistemas expertos son buenos para predecir resultados futuros a partir del
conocimiento que tienen. Los sistemas meteorológicos y de inversión en bolsa
son ejemplos de utilización en este sentido. El sistema PROSPECTOR es de
este tipo.
La planificación es la secuencia de acciones necesaria para lograr una meta.
Conseguir una buena planificación a largo plazo es muy difícil. Por ello, se
usan sistemas expertos para gestionar proyectos de desarrollo, planes de
producción de fábricas, estrategia militar y configuración de complejos
sistemas informáticos, entre otros.
Cuando se necesita controlar un proceso tomando decisiones como respuesta a
su estado y no existe una solución algorítmica adecuada, es necesario usar un
sistema experto. Este campo comprende el supervisar fábricas automatizadas,
factorías químicas o centrales nucleares. Estos sistemas son
extraordinariamente críticos porque normalmente tienen que trabajar a tiempo
real.
El diseño requiere una enorme cantidad de conocimientos debido a que hay
que tener en cuenta muchas especificaciones y restricciones. En este caso, el
sistema experto ayuda al diseñador a completar el diseño de forma competente
y dentro de los límites de costes y de tiempo. Se diseñan circuitos
electrónicos, circuitos integrados, tarjetas de circuito impreso, estructuras
arquitectónicas, coches, piezas mecánicas, etc.
Por último, un sistema experto puede evaluar el nivel de conocimientos y
comprensión de un estudiante, y ajustar el proceso de aprendizaje de acuerdo
con sus necesidades.
En la tabla 2 se muestran los modelos funcionales de los sistemas expertos,
junto al tipo de problema que intentan resolver y algunos de los usos
concretos a que se destinan.
2.4.
ARQUITECTURA Y FUNCIONAMIENTO DE UN SE
2.4.1. Base de conocimientos
Es la parte del sistema experto que contiene el conocimiento sobre el
dominio. Hay que obtener el conocimiento del experto y codificarlo en la
base de conocimientos. Una forma clásica de representar el
conocimiento en un sistema experto son lar reglas. Una regla es una
estructura condicional que relaciona lógicamente la información
contenida en la parte del antecedente con otra información contenida en
la parte del consecuente.
2.4.2. Base de datos
Contiene los hechos sobre un problema que se han descubierto durante
una consulta. Durante una consulta con el sistema experto, el usuario
introduce la información del problema actual en la base de hechos. El
sistema empareja esta información con el conocimiento disponible en la
base de conocimientos para deducir nuevos hechos.
2.4.3. Motor de inferencias
El sistema experto modela el proceso de razonamiento humano con un
módulo conocido como el motor de inferencia. Dicho motor de
inferencia trabaja con la información contenida en la base de
conocimientos y la base de hechos para deducir nuevos hechos.
Contrasta los hechos particulares de la base de hechos con el
conocimiento contenido en la base de conocimientos para obtener
conclusiones acerca del problema.
2.4.4. Interfaz con el usuario
La interacción entre un sistema experto y un usuario se realiza en
lenguaje natural. También es altamente interactiva y sigue el patrón de la
conversación entre seres humanos. Para conducir este proceso de manera
aceptable para el usuario es especialmente importante el diseño del
interfaz de usuario. Un requerimiento básico del interfaz es la habilidad
de hacer preguntas. Para obtener información fiable del usuario hay que
poner especial cuidado en el diseño de las cuestiones. Esto puede
requerir diseñar el interfaz usando menús o gráficos.
2.4.5. Modulo de explicacion
Una característica de los sistemas expertos es su habilidad para explicar
su razonamiento. Usando el módulo del subsistema de explicación, un
sistema experto puede proporcionar una explicación al usuario de por
qué está haciendo una pregunta y cómo ha llegado a una conclusión.
Este módulo proporciona beneficios tanto al diseñador del sistema como
al usuario. El diseñador puede usarlo para detectar errores y el usuario se
beneficia de la transparencia del sistema.
2.4.6. Modulo de adquisicion
Es la herramienta que permite al ingeniero de conocimiento y/o al
experto centrarse en la estructura, implementación y actualización del
conocimiento, sin tener que dedicar excesivo tiempo a la programación.
Ha de cumplir los siguientes requisitos:
1. El conocimiento (reglas, hechos, relaciones, etc.,) debe poder
introducirse de la forma más sencilla posible.
2. Posibilidad de una representación clara de todas las infracciones
contenidas en la base de conocimiento.
3. Comprobación automática de la sintaxis del código en el que este
representado el conocimiento.
4. Posibilidad de acceso permanente al lenguaje de programación
2.5. VENTAJAS E INCONVENIENTES DE UN SE
2.5.1. Ventajas








Permanencia: A diferencia de un experto humano un SE (sistema experto)
no envejece, y por tanto no sufre pérdida de facultades con el paso del
tiempo.
Replicación: Una vez programado un SE lo podemos replicar infinidad de
veces.
Rapidez: Un SE puede obtener información de una base de datos y realizar
cálculos numéricos mucho más rápido que cualquier ser humano.
Bajo costo: A pesar de que el costo inicial pueda ser elevado, gracias a la
capacidad de duplicación el coste finalmente es bajo.
Entornos peligrosos: Un SE puede trabajar en entornos peligrosos o
dañinos para el ser humano.
Fiabilidad: Los SE no se ven afectados por condiciones externas, un
humano sí (cansancio, presión, etc.).
Consolidar varios conocimientos.
Apoyo Académico.
2.5.2. Inconvenientes

Sentido común: Para un Sistema Experto no hay nada obvio. Por ejemplo,
un sistema experto sobre medicina podría admitir que un hombre lleva 40
meses embarazado, a no ser que se especifique que esto no es posible ya
que un hombre no puede gestar hijos.

Lenguaje natural: Con un experto humano podemos mantener una
conversación informal mientras que con un SE no podemos.

Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad
de sus errores y de errores ajenos, que un SE haga esto es muy complicado.

Perspectiva global: Un experto humano es capaz de distinguir cuales son
las cuestiones relevantes de un problema y separarlas de cuestiones
secundarias.

Capacidad sensorial: Un SE carece de sentidos.

Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos
para la resolución de un problema.

Conocimiento no estructurado: Un SE no es capaz de manejar
conocimiento poco estructurado.
3. LENGUAJE DE PROGRAMACION
3.1. NETBEANS
3.1.1. Introduccion a Netbeans
NetBeans es un entorno de desarrollo integrado libre, hecho
principalmente para el lenguaje de programación Java. Existe además un
número importante de módulos para extenderlo. NetBeans IDE2 es un
producto libre y gratuito sin restricciones de uso.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas
a partir de un conjunto de componentes de software llamados módulos.
Un módulo es un archivo Java que contiene clases de java escritas para
interactuar con las APIs de NetBeans y un archivo especial (manifest
file) que lo identifica como módulo. Las aplicaciones construidas a partir
de módulos pueden ser extendidas agregándole nuevos módulos. Debido
a que los módulos pueden ser desarrollados independientemente, las
aplicaciones basadas en la plataforma NetBeans pueden ser extendidas
fácilmente por otros desarrolladores de software.
El NetBeans IDE es un IDE de código abierto escrito completamente en
Java usando la plataforma NetBeans. El NetBeans IDE soporta el
desarrollo de todos los tipos de aplicación Java (J2SE, web, EJB y
aplicaciones móviles). Entre sus características se encuentra un sistema
de proyectos basado en Ant, control de versiones y refactoring.
3.1.2. Caracteristicas
 Suele dar soporte a casi todas las novedades en el lenguaje Java.
Cualquier preview del lenguaje es rápidamente soportada por
Netbeans.
 Asistentes para la creación y configuración de distintos proyectos,
incluida la elección de algunos frameworks.
 Buen editor de código, multilenguaje, con el habitual coloreado y
sugerencias de código, acceso a clases pinchando en el código,
control de versiones, localización de ubicación de la clase actual,
comprobaciones sintácticas y semánticas, plantillas de código, coding
tips, herramientas de refactorización, etcétera. También hay
tecnologías donde podemos usar el pulsar y arrastrar para incluir
componentes en nuestro código.
 Simplifica la gestión de grandes proyectos con el uso de diferentes
vistas, asistentes de ayuda, y estructurando la visualización de
manera ordenada, lo que ayuda en el trabajo diario. Una vez que nos
metemos en una clase java, por poner un ejemplo, se nos mostrarán
distintas ventanas con el código, su localización en el proyecto, una
lista de los métodos y propiedades (ordenadas alfabéticamente),
también hay una vista que nos presenta las jerarquías que tiene
nuestra clase y otras muchas opciones. Por supuesto personalizable
según el gusto de cada usuario.
 Herramientas para depurado de errores: el debugger que incluye el
IDE es bastante útil para encontrar dónde fallan las cosas. Podemos
definir puntos de ruptura en la línea de código que nos interese,
monitorizar en tiempo real los valores de propiedades y variables, se
nos permite ir paso a paso, ejecutar un método de un tirón, o entrar
dentro, en fin, las opciones típicas, pero que tan útiles son en el
trabajo diario. Incluso podemos usar el debugger en caliente,
conectándonos a él cuándo ya tenemos un proceso ejecutándose.
 Optimización de código: por su parte el Profiler nos ayuda a
optimizar nuestras aplicaciones e intentar hacer que se ejecuten más
rápido y con el mínimo uso de memoria. Podemos igualmente
configurarlo a nuestro gusto, aunque por defecto, nos ofrece opciones
bastante útiles. Lo importante es que podemos ver el comportamiento
de nuestra aplicación y obtener indicadores e información de cómo y
cuantos recursos consume, cuantos objetos se crean, también
podemos obtener capturas del estado del sistema en diferentes
momentos (Snapshots) y compararlos entre sí.
 Acceso a base de datos: desde el propio Netbeans podemos
conectarnos a distintos sistemas gestores de bases de datos, como
pueden ser Oracle, MySql y demás, y ver las tablas, realizar consultas
y modificaciones, y todo ello integrado en el propio IDE.
 Se integra con diversos servidores de aplicaciones, de tal manera
que podemos gestionarlos desde el propio IDE: inicio, parada,
arranque en modo debug, despliegues. Entre otros podemos usar
Apache Tomcat, GlassFish, JBoss, WebLogic, Sailfin, Sun Java
System Application Server,etc.
 Es fácilmente extensible a través de plugins.
3.2.
SWI-PROLOG
3.2.1. Introduccion a Swi- Prolog
SWI-Prolog es una implementación en código abierto (en inglés, open
source) del lenguaje de programación Prolog. Su autor principal es Jan
Wielemaker. En desarrollo ininterrumpido desde 1987, SWI-Prolog
posee un rico conjunto de características, bibliotecas (incluyendo su
propia biblioteca para GUI, XPCE), herramientas (incluyendo un IDE) y
una documentación extensiva. SWI-Prolog funciona en las plataformas
Unix, Windows y Macintosh.
El nombre SWI deriva de Sociaal-Wetenschappelijke Informatica
("Informática de Ciencias Sociales"), el antiguo nombre de un grupo de
investigación en la Universidad de Ámsterdam en el que Wielemaker
está integrado. El nombre de ese grupo se cambió posteriormente a HCS
(Human-Computer Studies).
3.2.2. Caracteristicas
 Compilación rápida:
 Por ejemplo, carga 140.000 líneas de código extendidas en más de
500 archivos de origen en 2.3 segundos en un sistema AMD de
más de 5400.
 Robusto y sin pérdidas de memoria. Está en uso por varios
servidores que ejecutan 24x7 (incluyendo este servicio web).
 Pequeño:
 El entorno de desarrollo completo, incluyendo gráficos,
bibliotecas y muchos paquetes de interfaz, requiere
aproximadamente 40 MB de espacio en el disco duro. El núcleo
no gráfico es de aproximadamente 650 KB, la biblioteca gráfica
añade aproximadamente 1.2 MB a la imagen.
 Escala bien para las aplicaciones de gran tamaño:
 Sin límite en el tamaño del programa, la longitud del átomo, los
valores de aridad del término o los valores de número entero. Sin
degradación del rendimiento de los predicados con muchos hechos
(índice)
 La indexación justo a tiempo de código estático y dinámico sobre
cualquier argumento simplifica enormemente el manejo de
relaciones con varios modos con muchas cláusulas.
 Número entero sin límites y número racional aritmético basado en
la biblioteca de GMP.
 Conjunto comprensivo de predicados integrados, que cubre la
parte 1 de la norma ISO, las partes estándar de Edinburgh Prolog
de facto y partes importantes de Quintus y SICStus Prolog.
Compatibilidad total con Ciao, YAP y GNU Prolog
 Interfaz flexible y rápida para el lenguaje C/C++. La interfaz
permite llamadas bidireccionales, manipulación de ambas maneras
sin determinismo e integración del núcleo de SWI-Prolog en los
proyectos C/C++.
 Beneficios:
 Módulos (compatible con Quintus y SICStus), recolección de
basura (transparente para el código del lenguaje C/C++,
incluyendo la recolección de basura de átomo), optimización de
última llamada, expansión dinámica de las pilas del tiempo de
ejecución, manejo de las excepciones ISO (incluyendo la interfaz
del lenguaje C/C++ para capturar y producir excepciones).
 Depurador a nivel de fuente en todas las plataformas, que admite
gráficos a través de XPCE
 Profilador de ejecución (estadísticas de tiempo y llamada)
 Referenciador cruzado. gxref/0 proporciona un frontend gráfico
para el referenciador cruzado de Prolog extensible (XREF).
 Las fuentes son C99 plano, configuradas automáticamente
utilizando GNU autoconf (configurar, hacer, hacer instalar).
 Conjunto de caracteres UNICODE manejado internamente. Ideal
para las aplicaciones internacionales y web
 Estados almacenados independientes de la máquina (guardar en
una plataforma, ejecutar mediante la máquina virtual de otra
plataforma)
 Compatibilidad con múltiples hilos de ejecución: ejecuta múltiples
motores de Prolog programados en la misma base de datos
 Variables atribuidas, co-enrutamiento (freeze/2, when/ 2, dif/2),
variables globales, condiciones cíclicas
 Manejo controlado por la bandera de la comprobación de
ocurrencias (encendido/apagado/error)
 Programación lógica de restricción, que proporciona bibliotecas
para CHR (reglas de manejo de restricciones), clp(FD), clp(R,Q) y
varias otras bibliotecas
 Incluye bibliotecas de interfaz para Java (JPL), ODBC, sockets
TCP/IP, SSL, manejo de formas CGI, etc. Comprueba los
paquetes.
 Biblioteca de servidor web de múltiples hilos de ejecución con
bibliotecas integrales para generar HTML, autorización de HTTP,
administración de sesiones, intercambio de JSON (usado por
muchos widgets AJAX), etc.
 Bibliotecas rápidas y flexibles para analizar SGML/XML
(HTML), RDF, almacenar y consultar el modelo triple de RDF.
Un editor gráfico para RDF/RDFS y modelos OWL llamados
Triple20 son distribuidos por separado.
 Compatibilidad con la programación literaria a través de PlDoc.
Proporciona una vista integrada del manual y la documentación de
la aplicación y produce documentación LaTeX para tu aplicación.
Admite prueba de unidad a través de PlUnit.
4. DIAGNÓSTICO
DE FALLAS EN COMPUTADORAS, Y SUS
POSIBLES SOLUCIONES
4.1. Planteamiento y Diseno
El proceso más difícil para lograr con éxito la reparación de una
computadora radica en el diagnóstico. Lo más común es que la reparación de
una falla de hardware demore poco tiempo, comparado con la detección
previa de la falla puede llevar horas o incluso días, dado que es la parte más
compleja del proceso.
La certeza para detectar un desperfecto dependerá de su complejidad,
aunque con los conocimientos suficientes, aplicando lógica y criterio, algo
de experiencia y, porque no, una pisca de suerte, la falla en cuestión puede
ser detectada en el menor tiempo posible.
Las fallas más simples de detectar generalmente son las que están ligadas a
componentes específicos, como por ejemplo, la placa de audio, la unidad de
CD-ROM, el monitor o mouse. En estos casos, los síntomas se manifiestan
de forma más directa, al menos en la mayoría de casos.
Los problemas más difíciles de encontrar están relacionados con la
inestabilidad y en el caso de que una computadora no encienda. Esto ocurre
porque aquí entran en juego componentes que cumplen el rol más
importante en una PC: la placa base o madre, el microprocesador, la
memoria y la placa de video; los tres primeros son “intangibles”(principales)
desde el punto de vista del usuario, cosa que dificulta la detección del
problema con exactitud.
Cuando falla uno o más de los componentes principales los síntomas pueden
ser totalmente aleatorios, manifestarse en forma de cuelgues o
congelamientos, o en el peor de los casos que el equipo no inicie.
En el arranque de una computadora, aunque no lo parezca, están
involucradas decenas de componentes y procesos, y si tan solo uno de ellos
falla, es muy probable que lo único que veamos sea una pantalla negra.
Es por ello, que queremos desarrollar una Sistema Experto orientado al
Diagnostico y posibles soluciones de problemas que se pueden dar en una
Pc. Para realizar este diseno hemos partido de los conceptos basicos de cada
una de las partes que componen una Pc; en donde el usuario seleccionara los
errores que se estan aconteciendo en su equipo y el programa tendra que dar
respuesta, de acuerdo; a la rama del nodo en donde se encuentre. Una vez
recorrido todo el arbol se llegara a una de las hojas del arbol que contendra
la respuesta final.
4.2.
Representacion del Conocimiento
4.2.1. Representación en Lógica Proposicional:
a. Detección de problemas en la Memoria RAM:
• Regla 1:
Si se escucha un pitido largo y la pantalla no enciende entonces
existen problemas en la memoria RAM.
( ∧ )→
p: Se escucha un pitido largo.
q: La pantalla no enciende.
s: Existen problemas en la memoria RAM.
•
Regla 2:
Si la pantalla no enciende y se escucha 3 pitidos cortos entonces
existen problemas en la memoria RAM.
( ∧ )→
q: La pantalla no enciende.
r: Se escucha 3 pitidos cortos.
s: Existen problemas en la memoria RAM.
•
Regla 3:
Si el sistema operativo lanza mensajes de error de falla de
protección general y se tiene continuos reinicios entonces existen
problemas en la Memoria RAM.
( ∧ )→
v: El Sist. Operativo lanza mensajes de error de
falla de protección general.
t: Continuos reinicios.
s: Existen problemas en la memoria RAM.
•
Regla 4:
Si el sistema operativo se detiene de forma inesperada y lanza
mensajes de error de falla de protección general entonces existen
problemas en la memoria RAM.
( ∧ )→
u: El sistema operativo se detiene de forma inesperada.
v:El Sist. Operativo lanza mensajes de error de falla de
protección general.
s: Existen problemas en la memoria RAM.
Grafo AND – OR del Problemas detectado en Memoria RAM
FALLAS EN LA MEMORIA RAM
Leyenda:
p: Se escucha un pitido largo.
q: La pantalla no enciende.
r: Se escucha 3 pitidos cortos.
s: Existen problemas en la
OR
AND
AND
AND
AND
v
p
NO
T
memoria RAM.
t: Continuos reinicios.
u: El sistema operativo se
detiene de forma inesperada.
v: El sistema operativo lanza
mensajes de error de falla de
protección general.
r
t
u
v
q
b. Detección de problemas en el Disco Duro:
•
Regla 1:
Si el sistema operativo esta lento y ocurren reinicios de forma
aleatoria, entonces existen problemas en el disco duro.
( ∧ )→
p: El sistema operativo esta lento.
q: Ocurren constantes reinicios.
s: Existen problemas en el disco duro.
•
Regla 2:
Si se muestran pantallazos de color azul indicando errores y si se
presentan errores al grabar archivos, entonces existen problemas en
el disco duro.
( ∧ )→
r: Se muestran pantallazos de color azul indicando errores.
t: Se presentan errores al grabar archivos.
s: Existen problemas en el disco duro.
•
Regla 3:
Si se escucha ruido metálico y se muestran pantallazos de color azul
indicando errores entonces existen problemas en el disco duro.
( ∧ )→
u: Se escucha ruido metálico.
r: Se muestran pantallazos de color azul indicando errores.
s: Existen problemas en el disco duro.
•
Regla 4:
Si el “Scandisk” de Microsoft Windows se activa cada vez que
reinicias la computadora y el sistema operativo esta lento, entonces
existen problemas en el disco duro.
( ∧ )→
v: El “Scandisk”, se activa cada vez que reinicias la
computadora.
p: El sistema operativo esta lento.
s: Existen problemas en el disco duro.
Grafo AND – OR del Problemas detectado en el Disco Duro
FALLAS EN EL DISCO DURO
Leyenda:
OR
AND
AND
AND
r
p
q
r
p
t
p
AND
u
v
p
p: El sistema operativo esta
lento.
q: Ocurren constantes
reinicios.
r: Se muestran pantallazos
de color azul indicando
errores.
s: Existen problemas en el
disco duro.
t: Se presentan errores al
grabar archivos.
u: Se escucha ruido
metálico.
v: El “Scandisk”, se activa
cada vez que reinicias la
computadora.
c. Detección de problemas en la Placa Madre:
• Regla 1:
Si se escucha pitidos cortos continuos y la pantalla no enciende
entonces existen problemas en la placa madre.
( ∧∼ ) →
p: Se escuchan pitidos cortos continuos.
q: La pantalla no enciende.
s: Existen problemas en la placa madre.
• Regla 2:
La pantalla no enciende y no termina de arrancar el sistema
operativo entonces existen problemas en la placa madre.
(∼ ∧∼ ) →
q: La pantalla no enciende.
r: Termina de arrancar el sistema operativo.
s: Existen problemas en la placa madre.
• Regla 3:
Si el equipo enciende pero no termina de arrancar el sistema
operativo entonces existen problemas en la placa madre.
( ∧∼ ) →
t: El equipo enciende.
r: Termina de arrancar el sistema operativo.
s: Existen problemas en la placa madre.
• Regla 4:
El equipo enciende y no hay imagen en el monitor entonces existen
problemas en la placa madre.
( ∧∼ ) →
t: El equipo enciende.
v: No hay imagen en el monitor.
s: Existen problemas en la placa madre.
• Regla 5:
Arranca el sistema operativo y la pc se apaga sin previo aviso
entonces existen problemas en la placa madre.
( ∧ )→
w: Arranca el sistema operativo
x: PC se apaga sin previo aviso.
s: Existen problemas en la placa madre.
Grafo AND – OR del Problemas detectado en la Placa Madre
FALLAS EN LA PLACA MADRE
Leyenda:
p: Se escuchan pitidos
OR
AND
p
AND
NO
T
q
AND
AND
NO
T
r
p
t
p
NO
u
p
NO
v
p
AND
w
p
x
p
cortos continuos.
q: La pantalla no enciende.
r: termina de arrancar el
sistema operativo
s: Existen problemas en la
placa madre.
t: El equipo enciende.
u: No termina de arrancar
el sistema operativo.
v: No hay imagen en el
monitor.
w: Arranca el sistema
operativo
x: PC se apaga sin previo
aviso.
d. Detección de problemas en el Monitor:
• Regla 1:
Si se escuchan 2 pitidos largos y 1 corto entonces existen problemas
en el monitor.
→
• Regla 2:
El monitor muestra una línea horizontal al encender entonces existen
problemas en el monitor.
→
• Regla 3:
El monitor
enciende y muestra parpadeos entonces existen
problemas en el monitor.
→
• Regla 4:
El monitor enciende y no muestra imagen en pantalla entonces
existen problemas en el monitor.
→
Grafo AND – OR del Problemas detectado en el Monitor
PROBLEMAS EN EL MONITOR
OR
p
q
r
p
t
p
Leyenda:
p: Se escuchan 2 pitidos
largos y 1.
q: El monitor muestra una
línea
horizontal
al
encender.
r: El monitor enciende y
muestra parpadeos.
s: Existen problemas en el
monitor.
t: El monitor enciende y
no muestra imagen en
pantalla.
e. Detección de problemas en el Procesador:
• Regla 1:
La PC disminuye su rendimiento y presenta errores de lectura de disco
entonces existen problemas en el procesador.
( ∧ )→
p: La PC disminuye su rendimiento.
v: La PC presenta errores de lectura de disco.
s: Existen problemas en el procesador.
• Regla 2:
Si se presenta bloqueos en aplicaciones y se tiene continuos reinicios
entonces existen problemas en el procesador.
( ∧ )→
q: Se presenta bloqueos en aplicaciones.
r: Se tiene continuos reinicios.
s: Existen problemas en el procesador.
• Regla 3:
Si se tiene continuos reinicios y se muestran pantallazos de color azul
indicando errores entonces existen problemas en el procesador.
( ∧ )→
r: Continuos reinicios.
t: Se muestran pantallazos de color azul indicando errores.
s: Existen problemas en el procesador.
• Regla 4:
Si la temperatura del procesador es elevada entonces existen problemas en
el procesador.
→
u: La temperatura del procesador es elevada.
s: Existen problemas en el procesador.
Grafo AND – OR del Problemas detectado en el Procesador
FALLAS EN EL PROCESADOR
OR
AND
D
p
AND
D
AND
D
u
p
v
q
r
R
Leyenda:
p: La PC
disminuye su
rendimiento.
q: Presenta bloqueos en
aplicaciones.
r: Continuos reinicios.
s: Existen problemas en el
procesador.
t: Se muestran pantallazos de
color azul indicando errores.
u:
La
temperatura
del
procesador es elevada.
v: La PC presenta errores de
lectura de disco.
t
f. Detección de problemas en el Mouse:
• Regla 1:
La PC no reconoce el mouse entonces existen problemas en el
mouse.
→
• Regla 2:
Si el mouse enciende y el mouse no corre entonces existen problemas
en el mouse.
( ∧ )→
• Regla 3:
Si el mouse no corre y el mouse es reconocido entonces existen
problemas en el mouse.
( ∧ )→
Grafo AND – OR del Problemas detectado en el Mouse
Leyenda:
PROBLEMAS EN EL MOUSE
p: La PC no reconoce el
mouse.
OR
q: El mouse enciende.
r: El mouse no corre.
AN
DD
AN
DD
p
q
r
s: Existen problemas en el
mouse.
t
p
t: El mouse es reconocido.
g. Detección de problemas en el Teclado:
• Regla 1:
Si se escuchan 6 pitidos cortos entonces existen problemas en el
teclado.
→
• Regla 2:
Los contactos del teclado están doblados o partidos entonces existen
problemas en el teclado.
→
• Regla 3:
Si al presionar la tecla no realiza ningún movimiento entonces
existen problemas en el teclado.
→
• Regla 4:
El teclado no es reconocido por la PC entonces existen problemas en
el teclado.
→
Grafo AND – OR del Problemas detectado en el Teclado
Leyenda:
p: Se escuchan 6 pitidos
PROBLEMAS EN EL TECLADO
cortos.
q: Los contactos del teclado
están doblados o partidos.
r: Al presionar la tecla no
realiza ningún movimiento.
s: Existen problemas en el
teclado.
t: El teclado no es
reconocido por la PC.
OR
p
q
r
p
t
p
h. Detección de problemas en la Tarjeta de Sonido:
• Regla 1:
Si el sonido tiene interferencia entonces existen problemas en la
Tarjeta de Sonido.
→
• Regla 2:
Si el volumen del sonido es bajo entonces existen problemas en la
Tarjeta de Sonido.
→
• Regla 3:
Si no hay sonido entonces existen problemas en el teclado.
• Regla 4:
→
Si por un canal de salida de sonido se escucha mucho ruido entonces
existen problemas en el teclado.
→
Grafo AND – OR del Problemas detectado en la Tarjeta de Sonido
PROBLEMAS EN LA TARJETA DE SONIDO
OR
p
q
r
p
t
p
Leyenda:
p:
El
sonido
tiene
interferencia.
q: Volumen del sonido es
bajo.
r: No hay sonido.
s: Existen problemas en el
Tarjeta de sonido.
t: El canal de salida de
sonido se escucha mucho
ruido.
i. Detección de problemas en la Tarjeta de Video:
•
Regla 1:
Si las imágenes del monitor no tienen todos los colores y no se visualiza
imagen al iniciar el sistema entonces existen problemas en la Tarjeta de
Video.
(
∧
)→
p: Las imágenes del monitor tienen todos los colores.
q: Se visualiza imagen al iniciar el sistema.
s: Existen problemas en el Tarjeta de Video.
•
Regla 2:
Si muestra el mensaje “Attach Video Signal” entonces existen problemas
en la Tarjeta de Video.
→
r: Muestra el mensaje “Attach Video Signal”.
s: Existen problemas en el Tarjeta de Video.
•
Regla 3:
Si las imágenes del monitor no tienen todos los colores y no se distinguen
claramente los caracteres del monitor entonces existen problemas en la
Tarjeta de Video.
(
∧
)→
q: se visualiza imagen al iniciar el sistema.
t: se distinguen claramente los caracteres del monitor.
s: Existen problemas en el Tarjeta de Video.
•
Regla 4:
Si la PC se reinicia sola y se observan rayas horizontales en la pantalla
entonces existen problemas en la Tarjeta de Video.
( ∧ )→
u: La PC se reinicia sola.
v: Se observan rayas horizontales en la pantalla
s: Existen problemas en el Tarjeta de Video.
Grafo AND – OR del Problemas detectado en la Tarjeta de Video
PROBLEMAS EN LA TARJETA DE VIDEO
Leyenda:
p: Las imágenes del monitor
no tienen todos los colores.
q: No se visualiza ninguna
imagen al iniciar el sistema.
r: Muestra el mensaje “Attach
Video Signol”.
s: Existen problemas en el
Tarjeta de Video.
t: No se distinguen claramente
los caracteres del monitor.
u:Se
observan
rayas
horizontales en la pantalla.
OR
AND
r
p
AND
AND
NO
NO
NO
p
q
t
p
u
p
v
j. Detección de problemas en la Lectora de CD:
•
Regla 1:
Si existe funcionamiento errático de la bandeja de la lectora de CD y la
lectora de CD ignora las órdenes
entonces existen problemas en la
Lectora de CD.
( ∧ )→
p: Funcionamiento errático de la bandeja de la lectora de CD.
q: Si la lectora de CD ignora las órdenes.
s: Existen problemas en la lectora de CDs.
•
Regla 2:
Si existe ruido repetido en el giro del disco (CD) y la lectora de CD o
CD-ROM daña a los CDs entonces existen problemas en la Lectora de
CD.
( ∧ )→
r: Ruido repetido en el giro del disco (CD).
t: La lectora de CD o CD-ROM daña a los CDs.
s: Existen problemas en la lectora de CDs.
•
Regla 3:
Si existe ruido repetido en el giro del disco (CD) y la reproducción de CD
se detiene entonces existen problemas en la Lectora de CD.
( ∧ )→
r:Ruido repetido en el giro del disco (CD).
u: La reproducción de CD se detiene.
s: Existen problemas en la lectora de CDs.
•
Regla 4:
Si el CD no es reconocido y muestra mensajes de error entonces existen
problemas en la Lectora de CD.
(
∧ )→
v: El CD es reconocido
w: muestra mensajes de error.
s: Existen problemas en la lectora de CDs.
Grafo AND – OR del Problemas detectado en la Lectora de CD
PROBLEMAS EN LA LECTORA DE CD
OR
AND
p
AND
q
r
AND
t
p
AND
NO
T
u
p
v
w
Leyenda:
p: La lectora de CD ignora las
órdenes.
q: Funcionamiento errático de
la bandeja de la lectora de CD.
r: La lectora de CD o CDROM daña a los CDs.
s: Existen problemas en la
lectora de CDs.
t:Ruido repetido en el giro del
disco (CD).
u: La reproducción de CD se
detiene.
v: El CD no es reconocido y
muestra mensajes de error.
4.2.2. Representacion en Logica de Predicados
Para la aplicación de nuestro Sistema Experto, definimos como
predicado a las características o atributos que presenta el objeto. En el
presente, el objeto viene a ser representado por las fallas
computacionales.
a. Detección de problemas en la Memoria RAM:
•
Regla 1:
Si se escucha un pitido largo y la pantalla no enciende entonces existen
problemas en la memoria RAM.
∀
→
•
∀
•
( ,
( ,
)
)∧∼
_
( ,
)
Regla 2:
Si la pantalla no enciende y se escucha 3 pitidos cortos entonces existen
problemas en la memoria RAM.
→
( ) ∧
( ,
( ,
_
)
)∧∼
_
( ,
)
Regla 3:
Si el sistema operativo lanza mensajes de error de falla de protección
general y se tiene continuos reinicios entonces existen problemas en la
Memoria RAM.
∀
•
( ) ∧
∧
( ) ∧
( ,
( ,
_
_
)
_
)→
( ,
)
Regla 4:
Si el sistema operativo se detiene de forma inesperada y lanza mensajes
de error de falla de protección general entonces existen problemas en la
memoria RAM.
∀
∧
( ) ∧
( ,
( ,
_
)→
_
_
( ,
)
)
b. Detección de problemas en el Disco Duro:
•
Regla 1:
Si el sistema operativo esta lento y ocurren reinicios de forma aleatoria,
entonces existen problemas en el disco duro.
∀
∧
( ) ∧
( ,
( ,
)→
_
_
( ,
)
)
•
Regla 2:
Si se muestran pantallazos de color azul indicando errores y si se
presentan errores al grabar archivos, entonces existen problemas en el
disco duro.
∀
∧
•
( ) ∧
( ,
( ,
_
_ _
)→
)
_
( ,
)
Regla 3:
Si se escucha ruido metálico y se muestran pantallazos de color azul
indicando errores entonces existen problemas en el disco duro.
∀
•
∧
→
( ) ∧
( ,
( ,
_
_
( ,
)
)
_
)
Regla 4:
Si el “Scandisk” de Microsoft Windows se activa cada vez que reinicias
la computadora y el sistema operativo esta lento, entonces existen
problemas en el disco duro.
∀
→
( ) ∧
( ,
( ,
_
)∧
)
( , . .
)
c. Detección de problemas en la Placa Madre:
• Regla 1:
Si se escucha pitidos cortos continuos y la pantalla no enciende entonces
existen problemas en la placa madre.
∀
∼
→
• Regla 2:
( ) ∧
( ,
( ,
( ,
_
_
)
)∧
_
)
La pantalla no enciende y no termina de arrancar el sistema operativo
entonces existen problemas en la placa madre.
∀
∼
→
( ) ∧∼
( ,
( ,
( ,
_
_
)
)
)∧
• Regla 3:
Si el equipo enciende pero no termina de arrancar el sistema operativo
entonces existen problemas en la placa madre.
∀
→
( ) ∧
( ,
( ,
)∧ ∼
)
( ,
. .)
• Regla 4:
El equipo enciende y no hay imagen en el monitor entonces existen
problemas en la placa madre.
∀
( ) ∧
( ,
( ,
)∧ ∼
)
( ,
→
• Regla 5:
Arranca el sistema operativo y la pc se apaga sin previo aviso.
∀
∼
→
( ) ∧
( , . .
( ,
( ,
_
)∧
_
)
)
_
)
_
d. Detección de problemas en el Monitor:
• Regla 1:
La PC disminuye su rendimiento y presenta errores de lectura de disco entonces
existen problemas en el procesador.
∀
• Regla 2:
∧
→
( ) ∧
( ,
( ,
_
( ,
_
)
_
_
_
)
)
Si se presenta bloqueos en aplicaciones y se tiene continuos reinicios
entonces existen problemas en el procesador.
∀
∧
→
• Regla 3:
( ) ∧
( ,
( ,
_
( ,
_
)
)
)
Si se tiene continuos reinicios y se muestran pantallazos de color azul
indicando errores entonces existen problemas en el procesador.
∀
∧
• Regla 4:
( ) ∧
( ,
(
)→
_
)
( ,
)
Si la temperatura del procesador es elevada entonces existen problemas en
el procesador.
∀
→
( ) ∧
( ,
( ,
)
_
)
e. Detección de problemas en el Procesador:
• Regla 1:
La PC no enciende entonces existen problemas en el procesador.
∀ ~
( )→
• Regla 2:
( )
Presenta bloqueos en aplicaciones entonces existen problemas en el
procesador.
∀
( )→
• Regla 3:
( )
Si se tiene continuos reinicios y se muestran pantallazos de color azul
indicando errores entonces existen problemas en el procesador.
∀
→
• Regla 4:
( ) ∧
( )
( )
Si la temperatura del procesador es elevada entonces existen problemas en
el procesador.
∀
( )
( )
→
f. Detección de problemas en el Mouse:
• Regla 1:
La PC no reconoce el mouse entonces existen problemas en el
mouse.
( ) →
∀ ~
• Regla 2:
( )
Si el mouse enciende y el mouse no corre entonces existen problemas
en el mouse.
∀
→
( ) ∧~
( )
( )
• Regla 3:
Si el mouse no corre y el mouse es reconocido entonces existen
problemas en el mouse.
∀
~
( )∧
→
( )
( )
g. Detección de problemas en la Tarjeta de Video:
•
Regla 1:
Si las imágenes del monitor no tienen todos los colores y no se visualiza
imagen al iniciar el sistema entonces existen problemas en la Tarjeta de
Video.
∀
•
∼
→
Regla 2:
( ) ∧∼
( ,
( ,
_
( ,
_
_
_
)
)
)∧
Si muestra el mensaje “Attach Video Signal” entonces existen problemas
en la Tarjeta de Video.
∀
•
→
Regla 3:
( ) ∧
( ,
( ,
_
_
)
_
_
)
Si las imágenes del monitor no tienen todos los colores y no se distinguen
claramente los caracteres del monitor entonces existen problemas en la
Tarjeta de Video.
∀
•
Regla 4:
∼
→
( ) ∧∼
( ,
( ,
_
( ,
_
_
)
)∧
_
)
Si la PC se reinicia sola y se observan rayas horizontales en la pantalla
entonces existen problemas en la Tarjeta de Video.
∀
→
( ) ∧
( ,
( ,
_
)∧
)
( ,
_
)
h. Detección de problemas en la Lectora de CD:
•
Regla 1:
Si existe funcionamiento errático de la bandeja de la lectora de CD y la
lectora de CD ignora las órdenes entonces existen problemas en la
Lectora de CD.
∀
∧
→
• Regla 2:
( ) ∧
( ,
( ,
( ,
_
_
_
)
_
)
)
Si existe ruido repetido en el giro del disco (CD) y la lectora de CD o
CD-ROM daña a los CDs entonces existen problemas en la Lectora de
CD.
∀
∧
→
• Regla 3:
( ) ∧
( ,
( ,
_
( ,
_
_
)
)
_
)
Si existe ruido repetido en el giro del disco (CD) y la reproducción de CD
se detiene entonces existen problemas en la Lectora de CD.
∀
∧
→
( ) ∧
( ,
( ,
( ,
_
_
_
)
_
)
)
• Regla 4:
Si el CD no es reconocido y muestra mensajes de error entonces existen
problemas en la Lectora de CD.
∀
∼
∧
→
( ) ∧
( ,
( ,
( ,
_
_
)
)
_
)
4.3.
Implementacion
Para implementar nuestro Sistema experto, hemos divido en :
a. Base de Datos:
b. Interfaz de Usuario:
Las Interfaces del Sistema Experto se han implemtado en el lenguaje de
java, haciendo uso del IDE Netbeans version 8.0
 Menu Principal: Cuenta con la inicializacion de la cunta de usuario y
con un manual de ayuda.
 Registro de Nuevo usuario: Seanel caso que el usuario sea nuevo, se
debe registrar sus datos personales, asi como su cuenta personal;
siendo almacenada en la base de datos del sistema.
 Test Diagnostico:En esta interfaz el usuario debera escoger los
sintomas o caracteristicas que esta presentando el equipo.
c. Motor de Infernecias:
El motor de inferencias es aquel que combinara los hechos y las
preguntas particulares, utilizando la base de conocimientos, seleccionando
los datos y pasos mas apropiados para presentar los resultados.
En este bloque definimos las reglas encargadas de obtener el valor de
las respuestas, decidir cual es el siguinete nodo que debe recorrer de acuerdo
a las respuesta dada por el usuario.
En el siguiente ejemplo mostraremos, como es que se ha declarado
las reglas,el proceso de consulta , las reglas de inferencia y finalmente las
funciones generales que es en donde se encuentra todo el proceso de trabajo.
%AVERIA DEL RAM
%AVERIA DISCO DURO
sintoma(is1, h1).
sintoma(is1, h2).
sintoma(is5, h5).
sintoma(is5, h7).
sintoma(is2, h2).
sintoma(is2, h3).
sintoma(is6, h8).
sintoma(is6, h9).
sintoma(is3, h4).
sintoma(is3, h5).
sintoma(is7, h8).
sintoma(is7, h10).
sintoma(is4, h4).
sintoma(is4, h6).
sintoma(is8, h11).
sintoma(is8, h17).
%CONSULTA
%-----------------------------------------evaluarHecho(is1, Hecho, Respuesta):s1(Hecho,Respuesta), !.
evaluarHecho(is2, Hecho, Respuesta):s2(Hecho,Respuesta), !.
%FUNCIONES GENERALES
%------------------------------------------detValor(si, 1).
detValor(no, 0).
getListaHechos(Sintoma,L):findall(Hechos,sintoma(Sintoma,Hechos),L).
detNroPreguntas(_,[],0).
detNroPreguntas(Sintoma ,[Hecho|L],N):evaluarHecho(Sintoma,Hecho,Respuesta),
detValor(Respuesta,Valor),
detNroPreguntas(Sintoma,L,Nnuevo),
N is Valor+Nnuevo.
detNroPreguntasSint(Sintoma ,N):getListaHechos(Sintoma,L),
detNroPreguntas(Sintoma,L,N).
% REGLAS DE INFERENCIA
%------------------------------------------diagnosticar(aaveria_ram):detNroPreguntasSint(is1,N),N=2,!.
%-->
diagnosticar(aaveria_procesador):detNroPreguntasSint(is14,N),N=2,!.
diagnosticar(aaveria_procesador):detNroPreguntasSint(is15,N),N=2,!.
diagnosticar(aaveria_procesador):detNroPreguntasSint(is16,N),N=2,!.
diagnosticar(aaveria_procesador):detNroPreguntasSint(is17,N),N=1,!.
%-->
diagnosticar(aaveria_tarjeta_video):detNroPreguntasSint(is18,N),N=2,!.
diagnosticar(aaveria_tarjeta_video):detNroPreguntasSint(is19,N),N=1,!.
diagnosticar(aaveria_tarjeta_video):detNroPreguntasSint(is20,N),N=2,!.
diagnosticar(aaveria_tarjeta_video):detNroPreguntasSint(is21,N),N=2,!.
4.4.
Ejecucion
 Al ejecutar el Sistema Experto lo primero que haremos es
ejecutar en el Menu Inicio.
 Iniciamos sesion con una cuenta
 Sea el caso de no tener una cuanta de usuario se procedera a
adquirirla, seleccionando el boton NUEVO USUARIO.
 Posteriormente se procedera a llenar los datos y finalmente se
registraran satisfactoriamnete
 Se tienen casos de los cuales le saldran los siguientes avisos:
1. Cuando el usuario no esta registrado
2. Cuando la contrasena no es correcta
3. Cuando la contrasena y el usuraio es correcto,
cargara y simplemnte pasara a la ventana de
diagnostico
 Se Inicia la ventana de diagnostico.
 Ahora seleccionamos los sintomas del fallo de su PC.
 Posteriormente daremos clic en Diagnosticar, para hallar la
respuesta a nuestra sintoma.
 Por ultimo, si deseamos tener mas detalles del diagnostico.
Presionamos el boton detalle en la ventana de resultado; el
cual nos dara las posibles causas y unas posibles soluciones.
5. REFERENCIAS BIBLIOGRAFICAS
[1].J.P. Ignizio. "Introduction to expert systems". McGraw-Hill, 1991
[2].J. Giarratano, G. Riley. "Expert Systems. Principles and programming". PWS
Publishing Co, 1994
[3].Alty. J. L. “Sistemas Expertos, conceptos y ejemplos” Ed. Diaz Santos. Madrid
Barcelona 1984
[4].NillssonNils “Principios de Inteligencia Artificial” Ed. Diaz Santos España 1987
[5].Patrick H. Winston “Inteligencia Artificial” Ed. Addison Wesley Iberoamericana
España 1992
[6].Grupo Marcombo S.A. “Inteligencia Artificial: Concepto, técnicas y aplicaciones”
1987
[7].Sistemas Expertos y Modelos de Redes Probabilísticas, Enrique Castillo, Jose
Manuel Gutiérrez, y Ali S.
[8].Javier Medina. “Solución a Problemas de Hardware, Diagnostico y respuesta a las
fallas más frecuentes de su PC” Ed. Dr Max Express. Madrid Barcelona 2005
[9].Sistemas Expertos, David King
[10].
[11].
[12].
[13].
[14].
[15].
www.dei.va.educpy\tar17\sexpreti\historia.htm
www.sarder.upeu.edu.pe\~miguel+\temas\expertos.htm
www.fotunecity.com\skycod.per\ronrow\207\se\portada.htm
www.monografias.com
http://es.wikipedia.org/wiki/NetBeans
http://es.wikipedia.org/wiki/Sistema_experto.htm
Descargar