martes, 3 de mayo de 2011

COMPUTACIÓN GRAFICA


COMPUTACION GRAFICA


El ensayo que he realizado tiene como objetivo analizar el contexto dentro del cual se desarrolla la computación grafica, entre sus aspectos históricos y tecnológicos, para  comprender su importancia y  usos en sus distintos ámbitos tecnológicos. 

La computación gráfica es el área de la computación orientada al procesamiento y simulación de realidades, en el cual se plasman  elementos tanto lógicos como físicos que hacen posible todo lo que nosotros vemos por encima, en este ensayo se hablará de tres argumentos que han servido de mucha ayuda para comprender como se inicio la computación grafica, como son sus aspectos históricos, y tecnológicos que comprenden el hardware y software gráficos y también los  dispositivos de entrada.

Desde hace varios años con el gran avance de la informática se han desarrollado en todo el mundo diversos paquetes y programas graficadores que están a la disposición de todos los usuarios.

HISTORIA
En los últimos treinta años, las técnicas de modelaje en computación gráfica han evolucionado significativamente.
Las graficas constituyen un canal de información muy amplio para los seres humanos, las graficas como un medio expresivo tienen su origen en algunos desarrollos antiguos,  con los años la tecnología ha evolucionado pero los usos han permanecido iguales.

La representación grafica es la mejor forma de presentar inter-relaciones complejas, esto se remonta a los fundamentos fisiológicos, ya que los humanos son buenos para detectar cambios relativos pero tienen problemas con los cambios absolutos

Sus inicios se dieron con la Eniac para calcular el número de densidades de neutrón, luego se crean dispositivos de visualización para ver los resultados del proceso, lo que produjo el uso del CRT por whirlwind un computador para simular vuelos de entrenamiento en la marina de los EEUU, el control de tráfico aéreo y en diez sistemas de radar. SAGE fue uno de los mejores ejemplos de los primeros sistemas gráficos militares, en 1950, luego en 1952 la enorme Edsac permitía la ejecución de juegos y almacenaje de información

Algo trascendental que  ocurrió fue la tesis de graduación de Ivan Southerland, en la cual describe un modelo para gráficas interactivas. Este modelo proporcionó un marco de referencia a Ingenieros en Sistemas para lograr un interface apropiado entre gráficas y personas.

0tro de los grandes adelantos fue el desarrollo de la pantalla (tubo visual) de almacenamiento directo "Direct View Storage Tube (DVST)" en 1968 y su comercialización a través de la casa comercial Tektronics. Fue la tecnología (a escala comercial) que más al alcance de las empresas privadas estaba y, por consiguiente, propagó la concientización del potencial de los interfaces graficos hacia una gran población de usuarios, ingenieros y técnicos.

A partir de los años 70 se utilizaron los gráficos por computadora en la televisión. El CIC desarrollo sistemas complejos de hardware como procesadores, CPU y software como Animac,  el uso de microcomputadoras como la Altair 8800, juegos de videos como al atari, pong, el Rispec(1986) que se uso para efectos en películas, el autodesk para animaciones y modelados en el 2007. El mayor de los primeros avances en gráficos por computadoras tridimensionales fue creado por esos pioneros

HARDWARE GRÁFICO
 Un sistema grafico consta de cuatro componentes: procesador, unidad de procesamiento gráfico, dispositivos de entrada y de salida, tarjetas graficas, siendo su principal dispositivo el monitor de video que usan pixeles para presentación de barridos.

En el hardware se comparan distintas tecnologías graficas como: resolución, iteración, color, confiabilidad, costo, animación vectorial, etc.

SOFTWARE GRAFICO

 El programador del software  dispone de ciertos Apis de programación grafica para crear estructuras en un sistema de coordenadas como el openGL y el Direct3D. El primero usado para desarrollar aplicaciones graficas 2D y 3D, como modelado de figuras, situar objetos, color e imagen tridimensional. Direct3D usado en el trazo de graficas elementales como líneas y polígonos con despliegue 3D usadas en videojuegos.
Estos son solo algunos temas pertenecientes al gran mundo de la computación gráfica, cada día nos encontramos con más tecnología que minimiza la distancia entre lo real y lo virtual y la forma en que se interactúa con esa “realidad”. Sin embargo no han sido suficiente para representar las características tan complejas de los objetos y fenómenos naturales, ya que los modelos matemáticos utilizados a veces son poco manejables o controlables. Por eso se han desarrollado unas técnicas avanzadas de modelaje, con la finalidad de proveer mecanismos concisos, eficientes, flexibles y controlables para especificar y animar los objetos naturales.
Conclusión, en el transcurso del ensayo, se ha demostrado que  los escenarios virtuales en 2D y 3D  son de mucha importancia en el uso de hardware y software gráficos.

martes, 9 de noviembre de 2010

INVESTIGACION DE SISTEMAS EXPERTOS

UNIVERSIDAD TECNICA DE BABAHOYO
FACULTAD DE ADMINISTRACION, FINANZAS E INFORMATICA

INVESTIGACION

  



INTEGRANTES:
JAVIER YANEZ.
LITZY GARCIA.
GLADYS SANTOS.
CURSO: OCTAVO SISTEMAS
PROFESOR: ING.FERNANDO MEJIA PEÑAFIEL.
SECCION: NOCTURNA.
























Introducción
Se considera a alguien un experto en un problema cuando este individuo tiene  conocimiento especializado sobre dicho problema. En el área de los (SE) a este tipo de conocimiento se le llama conocimiento sobre el dominio. La palabra dominio se usa para enfatizar que el conocimiento pertenece a un problema específico.
Antes de la aparición del ordenador,  el hombre ya se preguntaba si se le arrebataría el privilegio de razonar y pensar. En la actualidad existe un campo dentro de la inteligencia artificial al que se le atribuye esa facultad: el de los sistemas expertos (SE).
Estos sistemas también son conocidos como Sistemas Basados en Conocimiento, los cuales permiten la creación de maquinas que razonan como el hombre, restringiéndose a un espacio de conocimientos limitado. En teoría pueden razonar siguiendo los pasos que seguiría un experto humano (médico, analista, empresario, etc.) para resolver un problema concreto.
Este tipo de modelos de conocimiento por ordenador ofrece un extenso campo de posibilidades en resolución de problemas y en aprendizaje. Su uso se extenderá ampliamente en el futuro, debido a su importante impacto sobre los negocios y la industria.

SISTEMAS EXPERTOS
DEFINICIÓN.- "Es un programa que soluciona problemas y da consejos en un área especializada de conocimiento."
Son SE aquellos programas que se realizan haciendo explicito conocimiento en ellos, que tienen información específica de un dominio concreto y que realizan una tarea relativa a este dominio.
Programas que manipulan conocimiento codificado para resolver problemas en un dominio especializado en un dominio que generalmente requiere de experiencia humana. Un SE es un sistema informático que simula los procesos de aprendizaje, memorización, razonamiento, comunicación y acción de un experto humano en una determinada rama de la ciencia, suministrando, de esta forma, un consultor que puede sustituirle con unas ciertas garantías de éxito.
Las características mencionadas en las definiciones anteriores le permiten a un Sistema Experto almacenar datos y conocimiento, sacar conclusiones lógicas, ser capaces de tomar decisiones, aprender, comunicarse con expertos humanos o con otros Sistemas Expertos, explicar el razonamiento de su decisión y realizar acciones como consecuencia de todo lo anterior.
OBJETIVO.- Pueden resolver problemas muy difíciles como los expertos humanos, razonan pero en base a un conocimiento adquirido, funcionan con datos que contienen errores, contemplan múltiples hipótesis en competición simultáneamente, y pueden justificar sus conclusiones.

CARACTERISTICA DE LOS SISTEMAS EXPERTOS
Para que un sistema actúe como un verdadero experto, es deseable que reúna, en lo posible, lo más importante de las características de un experto humano, esto es:
  Representan y utilizan conocimiento especializado de un determinado dominio.
  Capacidad de razonar.
  Muestra el mismo comportamiento del experto.
  Representa el conocimiento simbólicamente.
  Manipula símbolos.
  Maneja problemas de dominio difícil.
  Alto rendimiento en un dominio específico.
  Examina su propio razonamiento y explica.
   Un SE no debe demorar más de 3 horas en resolver un problema.
   Un SE se debe aplicar a cosas prácticas.
  Debe contar con la colaboración del experto.
   El conocimiento del experto no está en los libros de texto.
   El conocimiento está distribuido pertenece a varias personas.
  Fiabilidad, para poder confiar en sus resultados o apreciaciones.
  Los expertos no razonan a partir de principios (razona a partir de su experiencia), solo los inexpertos razonan a partir de principios.
  Capacidad para resolver problemas.



ARQUITECTURA BÁSICA DE LOS SISTEMAS EXPERTOS
La arquitectura de un sistema experto está basada en una entrada de datos realizada por el usuario a fin de efectuar la oportuna consulta. Las entradas no solamente están compuestas de estas consultas. El aprendizaje del sistema y las condiciones específicas del problema a tratar también han de encontrarse en la entrada.
Junto a ello, se encuentra la administración del sistema, compuesta por un interfaz encargado del manejo de la sintaxis del lenguaje y de la máquina de inferencias, que se encarga de efectuar la búsqueda en la base de conocimientos y en la base de datos. Por último, se tienen los resultados.
Una arquitectura general de un SE está compuesta fundamentalmente:
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.
Base de hechos (Memoria de trabajo). 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.
Motor de inferencia. 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.
Subsistema de explicación. 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.
Interfaz de 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.
ESTRATEGIA DEL MOTOR DE INFERENCIA
Estrategias puras del motor de inferencia:
Orientada por el objetivo: Conocida como búsqueda hacia atrás (backward chaining)
Orientada por los datos: Conocida como búsqueda hacia adelante (forward chaining)
En ambos casos se tienen datos iníciales y un objetivo a verificar.
La estrategia orientada por el objetivo toma como origen de la inferencia al objetivo y a partir de este intenta construir un árbol hacia los datos conocidos, estando las distintas reglas, asociadas a las ramas del mismo.
La estrategia orientada por los datos toma como origen de la inducción a los datos y a partir de estos intenta construir un conjunto que contenga como elemento al objetivo, para hacer esto usa las reglas como operadores de pertenencia al conjunto Memoria de Trabajo.
Un motor de inferencia interpreta y evalúa los hechos en la base de conocimientos para proveer una respuesta. Este debe ser independiente del conocimiento y de los hechos. Se puede caracterizar por:
• El lenguaje en que ha sido escrito.
• La velocidad de trabajo: Inferencias / segundo.
Las estrategias de búsqueda de soluciones:
• No Ordenada: aleatoria, heurística.
• Ordenada: Encadenamiento hacia adelante (guiado por los datos, deductivo), encadenamiento hacia atrás (guiado por los objetivos, inductivo).
• La forma en que elige el conocimiento.
• La posibilidad de incorporar meta conocimiento.
El método que utiliza para la evaluación del conocimiento incompleto o incierto:
• Determinístico.
• Probabilístico.
• Aproximado.
• Difuso.
También llamado intérprete de reglas, es un módulo que se encarga de las operaciones de búsqueda y selección de las reglas a utilizar en el proceso de razonamiento. Por ejemplo, al tratar de probar una hipótesis dada, el motor de inferencia irá disparando reglas que irán deduciendo nuevos hechos hasta la aprobación o rechazo de la hipótesis objetivo.
  Puede simular la estrategia de solución de un experto
  Unidad lógica con la que se extraen conclusiones de la base de conocimientos
  Una conclusión se produce mediante aplicación de las reglas sobre los hechos presentes
  Decide que se debe aplicar, que se debe hacer, resuelve conflictos nuevos, hace uso de la base de conocimiento.
Una comprensión del “regla de inferencia el “concepto es importante entender los sistemas expertos. Una regla de inferencia  tiene dos porciones, una si-cláusula y una entonces-cláusula. Esta regla es qué da a sistemas expertos la capacidad de encontrar soluciones al diagnóstico y preceptivo problemas. Un ejemplo de una regla de inferencia es:
La interface establece una comunicación sencilla entre el usuario y el sistema. El usuario puede consultar con el sistema a través de menús, gráficos, o algún otro tipo de interfaces, y éste le responde con resultados. También es interesante mostrar la forma en que extrae las conclusiones a partir de los hechos. En sistemas productivos se cuida la forma de presentar al operador las órdenes obtenidas del sistema experto, debido a que información excesiva o confusa dificulta la actuación en tiempo real [CANC].
Aunque no se maneja dentro de la estructura de un Sistema Experto en general, existe un componente adicional, el componente de explicación, el cual se tratará a continuación.







Historia de la representación del conocimiento
Particularmente inteligencia artificial, un número de representaciones se han ideado para estructurar la información.
El KR es el más de uso general referir a las representaciones previstas para procesar por moderno computadoras, y particularmente, para las representaciones que consisten en los objetos explícitos (la clase de todos los elefantes, o Clyde cierto individuo), y de aserciones o de demandas sobre ellas (“Clyde es un elefante”, o “todos los elefantes son grises”). La representación de conocimiento en tal forma explícita permite a las computadoras dibujar conclusiones del conocimiento almacenado.
Muchos métodos del KR fueron intentados en los años 70 y los años 80 tempranos, por ejemplo heurístico question-answering, redes de los nervios, el probar del teorema, y sistemas expertos, con éxito que varía. Diagnosis médica (e.g., Mycin) era un área de aplicación importante, al igual que juegos por ejemplo ajedrez.
En la representación formal del conocimiento de la computadora de los años 80 los idiomas y los sistemas se presentaron. Los proyectos importantes procuraron codificar cuerpos anchos del conocimiento general; por ejemplo “Cycel” proyecto pasó a través de una enciclopedia grande, codificando no la información sí mismo, pero la información que un lector necesitaría para entender la enciclopedia: física ingenua; nociones del tiempo, causalidad, motivación; objetos corrientes y clases de objetos.
A través de tal trabajo, la dificultad del KR vino ser apreciada mejor. En lingüística de computo, mientras tanto, bases de datos mucho más grandes de la información de la lengua eran construidas, y éstas, junto con grandes aumentos en velocidad y capacidad de la computadora, hicieron un KR más profundo más factible.

Alguna gente piensa que sería el mejor representar conocimiento de la misma forma que está representado en mente humana, que es el único funcionamiento sabido inteligencia hasta ahora, o representar conocimiento bajo la forma de lengua humana. Richard L. Ballard, por ejemplo, ha desarrollado un sistema teoría-basado de la semántica que es la independiente de la lengua, que demanda capturar y razón con los mismos conceptos y teoría que la gente. La semántica teoría-basada subyacente del fórmula es: Knowledge=Theory+Information. Lengua-se basan la mayoría de los usos y de los sistemas convencionales de la base de datos. Desafortunadamente, no sabemos cómo el conocimiento se representa en la mente humana, o manipular idiomas humanos la misma manera que la mente humana la hace. Una pista es que los primates saben utilizar punto y tecleo interfaces utilizador; así interfaz gesto-basado aparece ser parte de nuestro aparato cognoscitivo, a modalidad cuál no se ata a verbal lengua, y que existe en otros animales además seres humanos.
Por esta razón, varios idiomas artificiales y notaciones se han propuesto para representar conocimiento. Se basan típicamente encendidos, lógicas y matemáticas, y han analizado fácilmente gramáticas a la facilidad proceso de máquina.
Representación del conocimiento es una edición que se presenta en ambos ciencia cognoscitiva y inteligencia artificial. En ciencia cognoscitiva, se refiere a cómo almacén de la gente e información del proceso. En la inteligencia artificial (AI) la puntería primaria es almacenar conocimiento de modo que los programas puedan procesarlo y alcanzar la verosimilitud de la inteligencia humana. Los investigadores del AI han pedido prestadas teorías de la representación de ciencia cognoscitiva. Así hay técnicas de la representación tales como marcos, reglas y redes semánticas que han originado de teorías del tratamiento de la información humana. Puesto que el conocimiento se utiliza para alcanzar comportamiento inteligente, la meta fundamental de la representación del conocimiento.
Ingeniero del conocimiento
Los ingenieros del conocimiento se refieren a representación elegido para las declaraciones del conocimiento experto y con motor de inferencia procesaban ese conocimiento. Él/ella puede utilizar el componente de la adquisición de conocimiento del sistema experto para entrar las varias características sabidas para ser apropiados a una buena técnica de la inferencia, incluyendo:
• Una buena técnica de la inferencia es independiente del dominio del problema.
• Para realizar las ventajas de explicación, transparencia del conocimiento, y reutilidad de los programas en un nuevo dominio del problema, el motor de inferencia no debe contener maestría del específico del dominio.
• Las técnicas de la inferencia pueden ser específicas a un detalle tarea, por ejemplo diagnosis de la configuración de hardware. Otras técnicas se pueden confiar solamente a una técnica de proceso particular.
• Las técnicas de la inferencia son siempre específicas a las estructuras del conocimiento.
• Los ejemplos acertados de las técnicas de proceso de la regla son encadenamiento delantero y encadenamiento posterior.





Adquisición del Conocimiento, Representación y Razonamiento

TECNICAS DE ADQUISICION DEL CONOCIMIENTO



Marco de referencia: proceso de construcción de un sistema basado en el conocimiento:
Adquisición del conocimiento
Representación del conocimiento
Método de resolución
Construcción del motor de inferencia
Cómo obtener el conocimiento
Interacción con entrevistes
Herramientas automáticas de explicitación del conocimiento
Técnicas basadas en el aprendizaje automático inductivo
Construcción de arboles de decisión:
Los nodos representan atributos.
Las ramas representan los posibles valores del atributo.
Decíamos que los problemas más importantes que debe resolver un ingeniero de conocimiento, cuando se plantea el diseño y construcción de un sistema inteligente son:
(1) la adquisición del conocimiento.
(2) la representación del conocimiento.
 (3) la elección de un modelo de razonamiento adecuado.
La adquisición del conocimiento es una fase crucial en el desarrollo de un sistema inteligente, que sin embargo carece de la misma importancia en el desarrollo de un sistema convencional. Lo más parecido a una adquisición de conocimiento en ingeniería del software es el establecimiento de los requisitos  que el analista debe emplear para diseñar el producto software que se pretende construir. Por el contrario, el ingeniero de conocimiento debe ser capaz de diseñar todo un modelo computacional de comportamiento inteligente. Para ello debe tratar de extraer el conocimiento experto de una  manera correctamente articulada, y luego ser capaz de transferir este conocimiento a un programa. Esta tarea es enormemente compleja, hasta el punto que muchos autores la consideran un cuello de botella que impide la popularización de los sistemas inteligentes en muchos ámbitos.
Aunque ya hemos adelantado algo sobre este interesante problema de la adquisición del conocimiento, comentaremos ahora que, según González y Dankel-, la tarea global puede dividirse en dos fases:
(1) extracción del conocimiento de las fuentes de experiencia.
(2) representación de este conocimiento en una herramienta.
La figura ilustra distintas técnicas que pueden emplearse en la adquisición del conocimiento, y que van desde lo estrictamente manual hasta métodos prácticamente automáticos.

Comentaremos en primer lugar la interacción directa entre expertos humanos e ingenieros de conocimiento, que habitualmente se lleva a cabo mediante frecuentes entrevistas entre miembros de ambos colectivos. En este caso, el proceso de adquisición se efectúa de manera progresiva, y el ingeniero de conocimiento suele realizar codificaciones parciales que le son presentadas al colectivo de expertos para su crítica y análisis. Este procedimiento interactivo suele conducir a modelos computacionales cada vez más refinados. De acuerdo con este esquema, el ingeniero de conocimiento no actúa como un mero receptor de información; al contrario, ayuda al experto humano a descompilar su conocimiento y lo convierte en algo que es computacionalmente operativo. Es importante reconocer aquí que, normalmente, los expertos humanos saben resolver problemas, pero tienen grandes dificultades a la hora de explicar cómo lo hacen.
Pero la entrevista no es el único modo de extracción del conocimiento de los expertos humanos. Otras técnicas como la observación directa, o los métodos intuitivos, pueden ser utilizadas de forma combinada con las entrevistas, para que la adquisición del conocimiento sea más eficaz. Además, hay que recordar que el colectivo de expertos no es la única fuente de conocimientos de que dispone el ingeniero –i.e., conocimiento público y conocimiento semipúblico.
Hasta ahora sólo hemos comentado métodos manuales de adquisición del conocimiento. Sin embargo la automatización de la tarea ha ido ganando terreno poco a poco, y han ido apareciendo nuevos esquemas de adquisición que incluyen distintos grados de automatización. Uno de tales esquemas supone la interacción del experto con un programa inteligente de edición. De este modo, el experto humano puede introducir directamente su organización conceptual del dominio, y sus heurísticas, en la base de conocimientos. En este caso, la labor del ingeniero de conocimiento consiste en desarrollar adecuadamente el programa inteligente de edición, que debe incorporar capacidades sofisticadas de diálogo, y un amplio conocimiento sobre la estructura de la base de conocimientos.
Otra técnica automática de adquisición es el aprendizaje automático. Esta técnica implica:
 (1) la recolección de ejemplos o casos históricos, que son suministrados por el colectivo de expertos humanos, o que son obtenidos directamente a partir de las fuentes bibliográficas.
 (2) la utilización de un programa de inducción que nos permitirá extraer reglas y heurísticas de los casos. La mayor ventaja de esta técnica estriba en que, a pesar de que los expertos tienen problemas para explicar cómo hacen las cosas, suelen encontrarse cómodos cuando de lo que se trata es de interpretar ejemplos.
En cualquier caso, y por muy avanzados que sean los métodos automáticos de adquisición del conocimiento, la interacción con el experto va a ser siempre imprescindible. Esta circunstancia exige que el ingeniero de conocimiento además de conocer los paradigmas de la programación clásica, tenga que dominar y utilizar correctamente aspectos relacionados con la psicología cognoscitiva, y la programación simbólica.
Frente a la programación convencional, en donde los requisitos del programa, una vez establecidos, están claros para todo el mundo, la programación inteligente se enfrenta con el problema de la subjetividad inherente al conocimiento. El conocimiento humano es subjetivo por naturaleza, y suele ser corriente que, frente a un mismo problema, dos expertos distintos –incluso de la misma cualificación profesional-, se comporten de forma distinta.
La subjetividad a que acabamos de referirnos afecta de manera importante a la validación de un sistema inteligente ya que, finalmente, el árbitro que tendrá que decidir sobre el grado de corrección del sistema inteligente tendrá que ser el colectivo de expertos humanos (esto es una sobre simplificación del problema, sobre la que discutiremos en profundidad más adelante)… ¿y quién valida al validador?
La segunda gran cuestión a la que el ingeniero de conocimiento debe dar respuesta se refiere al paradigma de representación del conocimiento previamente adquirido. Al respecto, la elección del esquema de representación del conocimiento, y de la herramienta que va a emplear para su representación, son cuestiones críticas en el desarrollo de sistemas inteligentes, que pueden tener una gran repercusión en la futura utilización de los mismos.
Ya hemos comentado que los distintos esquemas de representación del conocimiento pueden ser clasificados en diversas categorías (métodos formales, métodos estructurados, métodos declarativos, métodos procedimentales). Nos ocuparemos aquí de dos categorías no excluyentes, que son los métodos procedimentales, y los métodos declarativos.
Los métodos procedimentales engloban a los sistemas que utilizan reglas de producción, y a los sistemas basados en reglas lógicas. En tales métodos, el conocimiento se representa en base a estructuras dinámicas que nos describen la forma en que se utiliza el conocimiento representado. Por el contrario, los métodos declarativos de representación –frames, objetos, redes semánticas,…- son más adecuados para la representación de hechos de naturaleza estática, pero que están relacionados entre sí (por ejemplo a través de taxonomías). Estos métodos declarativos incluyen también cierta información –muy limitada-, sobre cómo emplear el conocimiento representado.
Como norma general, los sistemas que combinan las capacidades de representación de los métodos declarativos (habitualmente los que siguen el paradigma de orientación a objetos), con las capacidades inferenciales de los métodos procedimentales (generalmente reglas de producción), suelen ser las soluciones más flexibles y mejores.
El esquema de representación elegido está estrechamente relacionado con el mecanismo de razonamiento que tendremos que implementar en nuestro sistema inteligente. Así, los procesos de razonamiento influyen sobre el paradigma de representación, y viceversa. Y es aquí donde puede aparecer uno de los mayores problemas de la ingeniería del conocimiento, denominado desplazamiento del paradigma, que fue descrito por Waterman, y que se muestra en la figura.

El desplazamiento del paradigma surge cuando, en la fase de desarrollo del sistema inteligente, el ingeniero de conocimiento descubre que alguno de los esquemas elegidos para el desarrollo del sistema no es adecuado (normalmente, esquema de representación, modelo de razonamiento, o herramienta –entorno- de programación). La cuestión ahora es decidir si se debe continuar el desarrollo con infraestructuras inadecuadas –que posteriormente complicarán los resultados de la validación, y la usabilidad del sistema-, o si se debe replantear el proyecto, con el consiguiente retraso que ello puede suponer. De todas formas, si el desplazamiento del paradigma tiene lugar en etapas tempranas de construcción, su detección puede ser beneficiosa, ya que permite ajustar y optimizar las técnicas de desarrollo.
Por último, la tercera gran cuestión con la que se enfrenta el ingeniero del conocimiento es la elección del modelo de razonamiento que debe seguir el sistema inteligente.
Los mecanismos o modelos de razonamiento forman parte de las estructuras de control del conocimiento –en la mayor parte de los casos del motor de inferencias-, y son fundamentales a la hora de organizar la búsqueda de soluciones.
MODELO (REPRESENTACION DEL CONOCIMIENTO).- Como habíamos mencionado antes existen dos clases de conocimiento a tratar:
1. Conocimiento factual, o sea, aquel que por naturaleza es preciso y libre de "ruido". Se caracteriza también por ser objetivo y fácil de representar.
2. Conocimiento heurístico, es el conocimiento que usamos intuitivamente pero en forma consciente. NO es preciso ya que generalmente es subjetivo y es difícil de representar.
Existen varias maneras de representar el conocimiento, tales como:
Redes semánticas, Marcos, Reglas de producción, Lógica de predicados, Libretos, Híbridos.
En la construcción de los sistemas expertos el modelo más usado es el de las reglas de producción por su versatilidad. Sin embargo recientemente los modelos híbridos, o sea, la combinación de algunos de los modelos, han tenido mucho éxito en su aplicación, especialmente para la representación del conocimiento heurístico.
 Las reglas de producción generalmente son escritas en la forma IF-THEN, donde:
IF premisa, THEN conclusión
IF entrada, THEN salida
IF condición, THEN acción
IF antecedente, THEN consecuente
IF datos, THEN resultados
IF acción, THEN meta.
La parte IF generalmente contiene varias cláusulas unidas por los conectivos lógicos AND, OR. La parte THEN consiste en una o más frases que especifican la acción a tomar.
MODELADO DEL CONOCIMIENTO
 El Modelado del Conocimiento tiene como propósito dar forma automáticamente manipulable a los distintos tipos de conocimientos del dominio que maneja el experto.
En esencia la mayoría de los dominios admiten que el conocimiento asociado se modele en términos de tres tipos de Conocimiento:
(a) Fácticos
(b) Tácticos
(c) Estratégicos.
La descripción de cada tipo de conocimiento y la herramienta con la que puede ser modelado se presentará a partir del siguiente ejemplo de cuerpo de conocimiento:


CONOCIMIENTOS FÁCTICOS
Este tipo de conocimiento se modela principalmente mediante 2 técnicas: Tabla CAV (Concepto-Atributo-Valor) y Diccionario.
Este tipo conocimiento es el relacionado con la descripción de los objetos conceptuales del universo de discurso del dominio de conocimiento sobre el que se pretende hacer un SE.
Tabla CAV:
Proporciona una lista de los conceptos que se manipulan en el dominio de conocimiento relacionado con la familia de problemas que resolverá el Sistema Experto a desarrollar.
Cada concepto quedará descrito en términos de los atributos que definen a cada concepto y de los valores que cada atributo puede tomar.
Diccionario:
Debe dar una descripción de cada uno de los conceptos, atributos y valores que forman parte de la tabla CAV. Queda articulado mediante la cita del término y su definición ordenado lexicográficamente.

CONOCIMIENTOS TACTICOS
Este tipo conocimiento es el que se refiera a las relaciones que vinculan los objetos conceptuales del universo de discurso del dominio de conocimiento sobre el que se pretende hacer un sistema experto.
La relación de más interés es la de causalidad entre conceptos, en particular, de qué modo se pueden inferir los  valores de determinados atributos de determinados conceptos a partir de los valores que tienen otros atributos de otros conceptos (eventualmente los mismos).
Este tipo de conocimiento se modela principalmente mediante el uso de reglas y se documenta mediante el uso de Tablas PER (Palabras del Experto-Regla).
En una tabla PER se plantea el cuerpo del conocimiento (que contiene las relaciones de causalidad explícitas ó implícitas identificadas) y la regla o reglas que lo modelan.
CONOCIMIENTOS ESTRATÉGICOS

Están relacionados con la manera en que las distintas partes del dominio de conocimiento sobre el que se pretende hacer un sistema experto, son aplicadas para la resolución de una tarea.
Con distintos niveles de granularidad, describe:
(a) que es lo que hay que hacer
(b) bajo qué condiciones puede hacerse
(c) que post-condiciones resultaran de lo que se haga.
Este tipo de conocimiento se modela principalmente mediante la técnica Diagrama Jerárquico de Tareas. En el quedan especificados:
 (a) que sub-tarea compone cada tarea
(b) que información recibe y entrega cada tarea/subtarea.

Verificación de la Base de Conocimientos.
La verificación de la base de conocimientos, a diferencia de la correspondiente a los mecanismos de inferencia, es plena responsabilidad del ingeniero del conocimiento. Esta verificación se basa, generalmente, en el concepto de anomalías. Una anomalía es un uso poco común del esquema de representación del conocimiento, que puede ser considerado como un error potencial (existen anomalías que no constituyen errores y viceversa).
La verificación de la base de conocimientos no nos asegura que las respuestas de nuestro sistema sean correctas, lo que nos asegura es que el sistema ha sido diseñado e implementado de forma correcta.
La mayoría de los estudios publicados que tratan sobre la verificación de las bases de conocimientos se refieren a los sistemas basados en reglas, ya que son los más ampliamente utilizados. Por ello en este estudio nos centraremos en este tipo de sistemas. Los aspectos que se suelen examinar a la hora de verificar una base de conocimientos son la consistencia y la completitud. A continuación comentaremos una serie de pruebas que se realizan para comprobar que la base de conocimientos es consistente y completa. En principio supondremos que los sistemas no manejan incertidumbre, luego veremos cómo la inclusión de incertidumbre puede afectar a las pruebas desarrolladas.
Verificación de la consistencia
La verificación de la consistencia de la base de conocimientos consiste en la detección de reglas redundantes, reglas conflictivas, reglas englobadas en otras, reglas circulares, y condiciones IF innecesarias.


Criterios de evaluación de sistemas expertos
Ya hemos mencionado antes que un sistema inteligente es, al mismo tiempo, un software convencional y un modelo del conocimiento humano. La verificación y la validación de la parte software puede ser realizada siguiendo la metodología de la ingeniería del software, pero la parte propiamente heurística del sistema necesita técnicas particulares.

A pesar de que en la ingeniería del software términos como validación o verificación están bastante bien definidos, al intentar adaptar estos mismos términos a la ingeniería de conocimiento el consenso encontrado no es tan grande. Así, a pesar de que se han hecho intentos para unificar la terminología (Hoppe y Meseguer, 1993), lo normal es que cada autor desarrolle su propia definición de verificación y validación. En todo caso, y aun considerando las diferencias que podamos encontrar entre las distintas definiciones, siempre existe una parte común que podemos extraer de todas ellas y que intentaremos resaltar en este apartado.
En primer lugar es importante destacar que, aunque la V&V constituye la primera parte del análisis de comportamiento de un sistema inteligente, existen también fases posteriores. Así, el análisis de comportamiento puede verse como una pirámide basada en la verificación y validación, a partir de las cuales se desarrollan una serie de actividades que permiten asegurar la calidad del sistema. En la figura que sigue, las fases posteriores a la V&V se han agrupado bajo el término evaluación.
La verificación es, según Boehm (1981), la comprobación de que estamos construyendo el producto correctamente. A la hora de tratar sistemas inteligentes esta definición se formula de forma distinta, como por ejemplo  “comprobar que el sistema no tiene errores y cumple sus especificaciones iníciales”.
La validación, también según Boehm (1981), es la comprobación de que estamos construyendo el producto correcto. Lo que, expresado en términos de sistemas inteligentes significa “comprobar que la salida del sistema es la correcta y que se cumplen las necesidades y los requisitos del usuario”.
Muchos autores incluyen una o varias fases después de la validación, comúnmente agrupadas bajo el término evaluación, que se encargarían de analizar aspectos que van más allá de la corrección de las soluciones finales. Así la evaluación se encargaría de analizar aspectos como utilidad, robustez, velocidad, eficiencia, posibilidades de ampliación, facilidad de manejo, etc.
La fase de evaluación es quizá la menos estudiada de las tres, principalmente porque se supone que para llegar a ella se ha realizado una verificación y una validación satisfactorias y el sistema está en sus últimas etapas de desarrollo.
 Verificación de Sistemas Inteligentes
Ya hemos comentado que con la verificación se pretende comprobar que el sistema desarrollado cumple sus especificaciones de diseño, y que el software  no contiene errores. La verificación es la fase más estudiada en el ámbito del análisis del comportamiento de los sistemas inteligentes, y es la que más se parece a la correspondiente fase de verificación, clásicamente efectuada en ingeniería del software.
De acuerdo con lo argumentado hasta ahora, y considerando los elementos y características diferenciales de los sistemas inteligentes, el proceso de verificación incluye las siguientes tareas: (a) verificación del cumplimiento de las especificaciones, (b) verificación de los mecanismos de inferencia, y (c) verificación de la base de conocimientos.
Verificación del Cumplimiento de las Especificaciones
El análisis de las especificaciones puede ser llevado a cabo por los desarrolladores, por los usuarios, por los expertos, o por un grupo de evaluadores independientes. En el software convencional este proceso está cada vez más automatizado gracias a la aparición  de las herramientas de ingeniería del software asistida por ordenador (CASE). Sin embargo, la inclusión de estas herramientas en el ámbito de la ingeniería del conocimiento es lenta, y no está exenta de problemas.
Según González y Dankel, las cuestiones más importantes que se deben  abordar en este proceso consisten en comprobar si:
• Se ha implementado el paradigma de representación del conocimiento adecuado.
• Se ha empleado la técnica de razonamiento adecuada.
• El diseño y la implementación del sistema han sido llevados a cabo modularmente.
• La conexión con el software externo se realiza de forma adecuada.
• El interfaz de usuario cumple las especificaciones.
• Las facilidades de explicación son apropiadas para los potenciales usuarios del sistema.
• Se cumplen los requisitos de rendimiento en tiempo real.
• El mantenimiento del sistema es posible hasta el grado especificado.
• El sistema cumple las especificaciones de seguridad.
• La base de conocimientos está protegida ante modificaciones realizadas por personal no autorizado.
La comprobación de errores en el sistema inteligente debe referirse a cada uno de sus componentes principales: los mecanismos de inferencia y la base de conocimientos.
Metodologías para la construcción de SE
La construcción de un SE no es una tarea sencilla, debido a que involucra mucha participación de distintas personas, cada una de las cuales aportará algo para que el SE a desarrollar sea robusto y fácil de usar y mantener. Además se deben hacer varias elecciones en cuanto al desarrollo del Sistema Experto.
La primera decisión consiste en determinar si se comenzará el SE desde cero o se utilizará un shell - que es un SE sin la base de conocimientos -. Si se opta por usar el shell se debe elegir el que más se adecue al objetivo del SE que se desea construir, ya que existen diversos shells de Sistemas Expertos encaminados hacia distintos objetivos.
Si por el contrario se opta por comenzar desde cero, se deberá entonces determinar qué metodología utilizar, es decir, determinar la guía para el desarrollo del SE, cómo se implementará la base de conocimientos y el motor de inferencia, principalmente; y como complemento se debe elegir el lenguaje que se va a utilizar para el proyecto.
Metodología de Prototipos
En el desarrollo de Sistemas Expertos se nos plantean dos importantes riesgos:
•  No existen implementaciones similares que puedan servir de orientación al encargado del desarrollo en casi la totalidad de los casos.
•  En muchos puntos, los requisitos necesarios están esbozados con muy poca precisión.
El diseño y la especificación requieren una temprana determinación de la interfaz del software y de la funcionalidad de los componentes. Durante el desarrollo, resulta apropiado empezar con implementaciones tipo test para encontrar el camino hacia una solución definitiva y para hacerlas coincidir con las necesidades del usuario.
Un método efectivo es la implementación de un prototipo de Sistema Experto que permita llevar a cabo las funciones más importantes de éste, aunque con un esfuerzo de desarrollo considerablemente inferior al de una implementación convencional. Este proceder se define bajo el nombre de `Rapid Prototyping'. Para Sistemas Expertos, el `Rapid Prototyping' es el procedimiento más adecuado, pues posibilita una rápida reacción a los deseos en constante cambio tanto por parte de los expertos como parte del usuario.
Metodología Orientada a Objetos
La programación orientada a objetos (OOP en adelante) es un tipo de programación que provee una manera de modularizar programas estableciendo áreas de memoria particionadas para datos y procedimientos, que pueden ser usadas como plantillas para crear copias de tales módulos conforme se requieran.
Cada área de memoria a la que se refiere en el párrafo anterior es conocida como clase, mientras que las copias creadas a partir de la clase son llamadas objetos. La OOP tiene varias propiedades, entre los cuales destacan:
Abstracción. Permite enfocarse en la solución general del problema, sin preocuparse de los detalles.
Encapsulación. Es el concepto de que un objeto debería tener separada su interfaz de su implementación. Es decir, un objeto es visto como una “caja negra”.
Polimorfismo. Significa que un objeto se puede comportar de diversas maneras, dependiendo del contexto en el que se encuentre.
Herencia. Significa que se pueden crear clases que “hereden” el comportamiento de una o más clases padre; y que además añadan su propio comportamiento.
El concepto de encapsulación evita que se pueda modificar el estado interno de un objeto por el código cliente que lo utiliza, es decir solamente el código mismo del objeto puede modificar el estado interno del mismo. Esto se puede aprovechar en la construcción de SE creando clases que correspondan a los componentes de un SE.
Por lo tanto si se utiliza la metodología orientada a objetos a la construcción de SE, se debe crear una clase que contenga el código referente a la base de conocimiento. Si dicha base de conocimiento es un conjunto de objetos con sus propiedades, entonces dicha clase será una clase contenedor de objetos de otra clase, los cuales contendrán el nombre del objeto y una lista de atributos. La figura 6.3 muestra lo expuesto.
Obviamente, la clase Base de Conocimiento deberá tener todo el código necesario para leer los objetos, quizá de una base de datos, quizá de un archivo, guardar los objetos, ingresar nuevos objetos o atributos, eliminar objetos o atributos, etc.
De manera similar, el motor de inferencia se implementa como una clase, la cual contiene encapsulada toda la lógica que hace que funcione él SE, es decir si se implementa usando encadenamiento hacia adelante, encadenamiento hacia atrás o reglas de producción, dicha implementación estará contenida dentro de la clase.
Esta metodología tiene diversas ventajas, entre las cuales destaca el hecho que cualquier modificación o mantenimiento que se le quiera realizar a un determinado componente no afectará al otro y viceversa. Tello propone crear especializaciones o jerarquías de clases (usando herencia) que incluyan métodos que permitan a los objetos modificarse a sí mismos, logrando con esto que un SE aprenda por sí mismo, modificando su base de conocimiento sin modificar los demás componentes. Otra ventaja de la OOP es que mediante la herencia, las clases hijas heredarán el comportamiento de las clases padres, evitando con esto, tener que incluir código redundante en las especializaciones.
Conclusiones
Litzy García:
  Un sistema experto es aquel que simula el razonamiento humano ayudando al usuario.
  Cuando los expertos humanos en una determinada materia son escasos,                  los Sistemas Expertos pueden recoger y difundir su conocimiento.

Javier Yánez:
  La posibilidad de poder emular la inteligencia humana ha despertado la curiosidad del ser humano desde tiempos remotos.
  Tratar de imitar el funcionamiento del cerebro humano a nivel computador lo cual implica construir una analogía de tipo físico del cerebro del hombre. Esto podría llamarse entonces enfoque físico, y como principal exponente de este rumbo encontramos a las redes neuronales.
Gladys Santos:
  Se Trata de lograr el conocimiento humano a través de la lógica, por lo que estaríamos en presencia de un enfoque lógico. En este enfoque de pensamiento encontramos a los sistemas expertos que intentan reproducir el razonamiento humano de forma simbólica.
  Los sistemas expertos son, por lo tanto, intermediarios entre el experto humano, que transmite sus conocimientos al sistema, y el usuario de dicho sistema, que lo emplea para resolver los problemas que se le plantean con la competencia de un especialista en la materia y que, además, puede adquirir una destreza semejante a la del experto.

RECOMENDACIONES

Gladys Santos.
  Nosotros como estudiantes que somos estamos llamados a contribuir con el desarrollo del país por ello deberíamos interesarnos mucho más a las áreas de investigación y pedir que se nos apoye mas en cuanto a materia educativa y tecnología educativa.
  Las Universidades e Institutos están llamados a inmiscuirse dentro del mundo que empezamos a vivir.
Litzy García
  Nosotros como futuros formadores de la especialidad de computación e Informática tenemos que prepararnos para orientar a despertar el interés de la investigación.
  Actualmente el duro, difícil y cambiante mercado competitivo se vuelve más complejo por la gran diversidad de información que se ven obligados a almacenar y analizar, razón por la cual las empresas se ven en la necesidad de recurrir a poderosas y/o robustas herramientas o sistemas que les sirvan de soporte a la hora de tomar decisiones.
Javier Yánez
  De esta forma estos inteligentes, precisos y eficientes sistemas son adoptados por más organizaciones, en las cuales se convierten y/o transforman en una importante  estrategia de negocio.
  Por otra parte es importante mencionar que estos seguirán siendo usados en  todos y cada una de las áreas y/o campos donde los expertos humanos sean escasos.

Desde que nació la Inteligencia Artificial como tal ciencia, a principios de los 60, hasta la actualidad, se han venido realizando numerosos trabajos, para el desarrollo de los diversos campos que componen la Inteligencia Artificial. De todos esos campos, quizá el que puede tener mayor número de aplicaciones prácticas sea el de los Sistemas Expertos, siendo dichas aplicaciones de utilidad en temas tan variados que pueden ir desde la medicina hasta la enseñanza.
Palabras claves: Sistemas Expertos, inteligencia, conocimiento, razonamiento
En palabras de un gran matemático
Blaise Pascal: "Como no se puede ser universal y saber todo acerca de todo, es mejor saber un poco de cada tema, que saber todo sobre un solo tema”.
 Así fue como inició la inquietud de los investigadores en los años 40, con la idea de un Sistema general de resolución de problemas.




DEFINICION
En el Congreso Mundial de IA Feigenbaum se definió a los SE como:
Un programa de computador inteligente que usa el conocimiento y procedimientos de inferencia para resolver problemas que son lo suficientemente difíciles como para requerir la intervención de un experto humano para su resolución.
Podemos agregar otro concepto actual, dado por la Asociación Argentina de Inteligencia Artificial:
Los Sistemas Expertos permiten el desarrollo de otros sistemas que representan el conocimiento como una serie de reglas. Las distintas relaciones, conexiones y afinidades sobre un tema pueden ser compiladas en un Sistema Experto pudiendo incluir relaciones altamente complejas y con múltiples interacciones.
Características de los Sistemas Expertos
Para que un sistema computacional actúe como un verdadero experto, es deseable que reúna, en lo posible, lo más importante de las características de un experto humano, esto es:
  Habilidad para adquirir conocimiento.
  Fiabilidad, para poder confiar en sus resultados o apreciaciones.
  Habilidad para adquirir conocimiento.
  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 condición indispensable que un SE sea capaz de explicar su proceso de razonamiento o dar razón del por qué solicita tal o cual información o dato.
Arquitectura del sistema experto
Los puntos generales siguientes sobre los sistemas expertos y su arquitectura se han ilustrado.
1. La secuencia de las medidas tomadas para alcanzar una conclusión se sintetiza dinámicamente con cada caso nuevo. No se programa explícitamente cuando se construye el sistema.
2. Los sistemas expertos pueden procesar los valores múltiples para cualquier parámetro del problema. Esto permite más de una línea de razonar que se perseguirá y los resultados del razonamiento (no completamente resuelto) incompleto que se presentará.
3. El solucionar de problemas  es logrado aplicando conocimiento específico más bien que técnica específica. Esto es una idea dominante en tecnología de los sistemas expertos. Refleja la creencia que los expertos humanos no procesan su conocimiento diferentemente de otros, sino que poseen diverso conocimiento. Con esta filosofía, cuando uno encuentra que su sistema experto no produce los resultados deseados, el trabajo comienza a ampliar la base de conocimiento, para no reprogramar procedimientos.
Base de conocimientos. Contiene el conocimiento del dominio en el cual el programa es competente. El conocimiento tiene que estar representado en la forma que resulte más adecuada para el dominio de su competencia.  Una base de conocimientos debe ser coherente, rápida, modular, fácil de desarrollar y mantener.
Base de hechos (Memoria de trabajo). Contiene los hechos sobre un problema que se han descubierto durante una consulta.
Motor de inferencia. 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.
 Subsistema de explicación. 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.
Interfaz de 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.
ESTRATEGIA DEL MOTOR DE INFERENCIA
Estrategias puras del motor de inferencia:
Orientada por el objetivo: Conocida como búsqueda hacia atrás (backward chaining)
Orientada por los datos: Conocida como búsqueda hacia adelante (forward chaining)
En ambos casos se tienen datos iníciales y un objetivo a verificar.
La estrategia orientada por el objetivo toma como origen de la inferencia al objetivo y a partir de este intenta construir un árbol hacia los datos conocidos, estando las distintas reglas, asociadas a las ramas del mismo.
La estrategia orientada por los datos toma como origen de la inducción a los datos y a partir de estos intenta construir un conjunto que contenga como elemento al objetivo, para hacer esto usa las reglas como operadores de pertenencia al conjunto Memoria de Trabajo.
Historia de la representación del conocimiento
Particularmente inteligencia artificial, un número de representaciones se han ideado para estructurar la información.
El KR es el más de uso general referir a las representaciones previstas para procesar por moderno computadoras, y particularmente, para las representaciones que consisten en los objetos explícitos (la clase de todos los elefantes, o Clyde cierto individuo), y de aserciones o de demandas sobre ellas (“Clyde es un elefante”, o “todos los elefantes son grises”). La representación de conocimiento en tal forma explícita permite a las computadoras dibujar conclusiones del conocimiento almacenado.
A través de tal trabajo, la dificultad del KR vino ser apreciada mejor. En lingüística de cómputo, mientras tanto, bases de datos mucho más grandes de la información de la lengua eran construidas, y éstas, junto con grandes aumentos en velocidad y capacidad de la computadora, hicieron un KR más profundo más factible.
En la inteligencia artificial (AI) la puntería primaria es almacenar conocimiento de modo que los programas puedan procesarlo y alcanzar la verosimilitud de la inteligencia humana. Los investigadores del AI han pedido prestadas teorías de la representación de ciencia cognoscitiva. Así hay técnicas de la representación tales como marcos, reglas y redes semánticas que han originado de teorías del tratamiento de la información humana. Puesto que el conocimiento se utiliza para alcanzar comportamiento inteligente, la meta fundamental de la representación del conocimiento.
TECNICAS DE ADQUISICION DEL CONOCIMIENTO
La adquisición del conocimiento es una fase crucial en el desarrollo de un sistema inteligente, que sin embargo carece de la misma importancia en el desarrollo de un sistema convencional. Lo más parecido a una adquisición de conocimiento en ingeniería del software es el establecimiento de los requisitos  que el analista debe emplear para diseñar el producto software que se pretende construir. Por el contrario, el ingeniero de conocimiento debe ser capaz de diseñar todo un modelo computacional de comportamiento inteligente. Para ello debe tratar de extraer el conocimiento experto de una  manera correctamente articulada, y luego ser capaz de transferir este conocimiento a un programa. Esta tarea es enormemente compleja, hasta el punto que muchos autores la consideran un cuello de botella que impide la popularización de los sistemas inteligentes en muchos ámbitos.
Aunque ya hemos adelantado algo sobre este interesante problema de la adquisición del conocimiento, comentaremos ahora que, según González y Dankel-, la tarea global puede dividirse en dos fases:
(1) extracción del conocimiento de las fuentes de experiencia.
(2) representación de este conocimiento en una herramienta.
Otra técnica automática de adquisición es el aprendizaje automático. Esta técnica implica:
 (1) la recolección de ejemplos o casos históricos, que son suministrados por el colectivo de expertos humanos, o que son obtenidos directamente a partir de las fuentes bibliográficas.
 (2) la utilización de un programa de inducción que nos permitirá extraer reglas y heurísticas de los casos. La mayor ventaja de esta técnica estriba en que, a pesar de que los expertos tienen problemas para explicar cómo hacen las cosas, suelen encontrarse cómodos cuando de lo que se trata es de interpretar ejemplos.
En cualquier caso, y por muy avanzados que sean los métodos automáticos de adquisición del conocimiento, la interacción con el experto va a ser siempre imprescindible. Esta circunstancia exige que el ingeniero de conocimiento además de conocer los paradigmas de la programación clásica, tenga que dominar y utilizar correctamente aspectos relacionados con la psicología cognoscitiva, y la programación simbólica.
MODELADO DEL CONOCIMIENTO

 El Modelado del Conocimiento tiene como propósito dar forma automáticamente manipulable a los distintos tipos de conocimientos del dominio que maneja el experto.
En esencia la mayoría de los dominios admiten que el conocimiento asociado se modele en términos de tres tipos de Conocimiento:
(a) Fácticos
(b) Tácticos
(c) Estratégicos.
CONOCIMIENTOS FÁCTICOS
Este tipo de conocimiento se modela principalmente mediante 2 técnicas: Tabla CAV (Concepto-Atributo-Valor) y Diccionario.
Este tipo conocimiento es el relacionado con la descripción de los objetos conceptuales del universo de discurso del dominio de conocimiento sobre el que se pretende hacer un SE.
Tabla CAV:
Proporciona una lista de los conceptos que se manipulan en el dominio de conocimiento relacionado con la familia de problemas que resolverá el Sistema Experto a desarrollar.
Cada concepto quedará descrito en términos de los atributos que definen a cada concepto y de los valores que cada atributo puede tomar.
Diccionario:
Debe dar una descripción de cada uno de los conceptos, atributos y valores que forman parte de la tabla CAV. Queda articulado mediante la cita del término y su definición ordenado lexicográficamente.
CONOCIMIENTOS TACTICOS
Este tipo conocimiento es el que se refiera a las relaciones que vinculan los objetos conceptuales del universo de discurso del dominio de conocimiento sobre el que se pretende hacer un sistema experto.
Este tipo de conocimiento se modela principalmente mediante el uso de reglas y se documenta mediante el uso de Tablas PER (Palabras del Experto-Regla).
En una tabla PER se plantea el cuerpo del conocimiento (que contiene las relaciones de causalidad explícitas ó implícitas identificadas) y la regla o reglas que lo modelan.
CONOCIMIENTOS ESTRATÉGICOS

Están relacionados con la manera en que las distintas partes del dominio de conocimiento sobre el que se pretende hacer un sistema experto, son aplicadas para la resolución de una tarea.
Con distintos niveles de granularidad, describe:
(a) que es lo que hay que hacer
(b) bajo qué condiciones puede hacerse
(c) que post-condiciones resultaran de lo que se haga.
Este tipo de conocimiento se modela principalmente mediante la técnica Diagrama Jerárquico de Tareas. En el quedan especificados:
 (a) que sub-tarea compone cada tarea
(b) que información recibe y entrega cada tarea/subtarea.
Verificación de la Base de Conocimientos.
La verificación de la base de conocimientos, a diferencia de la correspondiente a los mecanismos de inferencia, es plena responsabilidad del ingeniero del conocimiento. Esta verificación se basa, generalmente, en el concepto de anomalías. Una anomalía es un uso poco común del esquema de representación del conocimiento, que puede ser considerado como un error potencial (existen anomalías que no constituyen errores y viceversa).
La verificación de la base de conocimientos no nos asegura que las respuestas de nuestro sistema sean correctas, lo que nos asegura es que el sistema ha sido diseñado e implementado de forma correcta.
La mayoría de los estudios publicados que tratan sobre la verificación de las bases de conocimientos se refieren a los sistemas basados en reglas, ya que son los más ampliamente utilizados. Por ello en este estudio nos centraremos en este tipo de sistemas. Los aspectos que se suelen examinar a la hora de verificar una base de conocimientos son la consistencia y la completitud. A continuación comentaremos una serie de pruebas que se realizan para comprobar que la base de conocimientos es consistente y completa. En principio supondremos que los sistemas no manejan incertidumbre, luego veremos cómo la inclusión de incertidumbre puede afectar a las pruebas desarrolladas.
Criterios de evaluación de sistemas expertos
Ya hemos mencionado antes que un sistema inteligente es, al mismo tiempo, un software convencional y un modelo del conocimiento humano. La verificación y la validación de la parte software puede ser realizada siguiendo la metodología de la ingeniería del software, pero la parte propiamente heurística del sistema necesita técnicas particulares.
A pesar de que en la ingeniería del software términos como validación o verificación están bastante bien definidos, al intentar adaptar estos mismos términos a la ingeniería de conocimiento el consenso encontrado no es tan grande. Así, a pesar de que se han hecho intentos para unificar la terminología (Hoppe y Meseguer, 1993), lo normal es que cada autor desarrolle su propia definición de verificación y validación. En todo caso, y aun considerando las diferencias que podamos encontrar entre las distintas definiciones, siempre existe una parte común que podemos extraer de todas ellas y que intentaremos resaltar en este apartado.
Metodologías para la construcción de SE
La construcción de un SE no es una tarea sencilla, debido a que involucra mucha participación de distintas personas, cada una de las cuales aportará algo para que el SE a desarrollar sea robusto y fácil de usar y mantener. Además se deben hacer varias elecciones en cuanto al desarrollo del Sistema Experto.
Metodología de Prototipos
En el desarrollo de Sistemas Expertos se nos plantean dos importantes riesgos:
 No existen implementaciones similares que puedan servir de orientación al encargado del desarrollo en casi la totalidad de los casos.
 En muchos puntos, los requisitos necesarios están esbozados con muy poca precisión.
Un método efectivo es la implementación de un prototipo de Sistema Experto que permita llevar a cabo las funciones más importantes de éste, aunque con un esfuerzo de desarrollo considerablemente inferior al de una implementación convencional. Este proceder se define bajo el nombre de `Rapid Prototyping'. Para Sistemas Expertos, el `Rapid Prototyping' es el procedimiento más adecuado, pues posibilita una rápida reacción a los deseos en constante cambio tanto por parte de los expertos como parte del usuario.
Metodología Orientada a Objetos
La programación orientada a objetos (OOP en adelante) es un tipo de programación que provee una manera de modularizar programas estableciendo áreas de memoria particionadas para datos y procedimientos, que pueden ser usadas como plantillas para crear copias de tales módulos conforme se requieran.
Cada área de memoria a la que se refiere en el párrafo anterior es conocida como clase, mientras que las copias creadas a partir de la clase son llamadas objetos. La OOP tiene varias propiedades, entre los cuales destacan:
Abstracción. Permite enfocarse en la solución general del problema, sin preocuparse de los detalles.
Encapsulación. Es el concepto de que un objeto debería tener separada su interfaz de su implementación. Es decir, un objeto es visto como una “caja negra”.
Polimorfismo. Significa que un objeto se puede comportar de diversas maneras, dependiendo del contexto en el que se encuentre.
Herencia. Significa que se pueden crear clases que “hereden” el comportamiento de una o más clases padre; y que además añadan su propio comportamiento.
BIBLIOGRAFIA

http://www.uhu.es/nieves.pavon/p2/tema2/2punto12.html
http://iwia.sis.epn.edu.ec/~hbanda/heuristica/pagina6_6.html
http://sardis.upeu.edu.pe/~miguelt/temas/experto.html
 http://www.psycologia.com/articulos/ar_jsamper01.html (http://www.psycologia.com/articulos/ar_jsamper02.htm http://www.ifi.ntnu.no/~keithd/classes/lisp/lectures/l10/sld010.html
 http://ciberconta.unizar.es/Biblioteca/0002/Sanchez95.html http://iwia.sis.epn.edu.ec/~hbanda/heuristica/pagina6_31.html http://www.sc.ehu.es/inves/ccia/seyadd/22seyadd.html
http://geocities.com/Athens/Parthenon/7809/Esystsp.html (Estructura del Sistema Experto, Representación del conocimiento, Reglas de Producción).
http://www.ciberconta.unizar.es/Biblioteca/0002/Sanchez95.html



Anexo1

 Glosario de términos de inteligencia artificial

Redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés como: "ANN").-son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales.

 Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Están basados en el proceso genético de los organismos vivos.
Redes Asociativas
Las redes semánticas o redes asociativas, fueron originalmente desarrolladas para representar el significado o semántica de oraciones en inglés, en términos de objetos y relaciones.








Anexo 2

Glosario de términos de sistemas expertos

Experto humano es una persona que es competente en un área determinada del conocimiento o del saber.
Verificador. El usuario intenta comprobar la validez del desempeño del sistema.
Razonamiento mono tónico. La lógica de predicados al ser un formalismo de razonamiento monótono, no resulta muy adecuada para ciertos dominios del mundo real, en los cuales las verdades pueden cambiar con el paso del tiempo.
Fáctico viene del latin "facere" que significa "hacer". Por lo tanto significa un conocimiento práctico, no teórico.
 Conocimiento táctico es aquel que se lo desarrolla con la experiencia, mientras que el explícito es el que se lo obtiene mediante los libros, ganando un mejor conocimiento y razón de las cosas.
Conocimiento estratégico .Recupera y domina una estrategia determinada de manera coordinada, logrando aprender los conocimientos que necesita para cumplir una determina tarea, demanda u objetivo, en función de las características de la situación educativa en que se produce la acción.

SISTEMA EXPERTO