miércoles, 25 de febrero de 2009

Representacion del conocimiento

Dado que el conocimiento es importante y primordial para el comportamiento inteligente, su representación constituye una de las máximas prioridades de la investigación en IA. El conocimiento puede ser representado como imágenes mentales en nuestros pensamientos, como palabras habladas o escritas en algún lenguaje, en forma gráfica o en imágenes, como cadenas de caracteres o colecciones de señales eléctricas o magnéticas dentro de un computador. En nuestro estudio de IA, consideraremos las representaciones escritas y sus correspondientes estructuras de datos utilizadas para su almacenamiento en un computador. La forma de representación que se escoja dependerá del tipo de problema a ser resuelto y de los métodos de inferencia disponibles.
Una representación es un conjunto de convenciones sobre la forma de describir un tipo de cosas. Una descripción aprovecha las convenciones de una representación para describir alguna cosa en particular. Si bien representar el conocimiento de una manera hace la solución más simple, elegir una representación inadecuada puede hacer que la solución sea difícil. Puede ser un esquema o dispositivo utilizado para capturar los elementos esenciales del dominio de un problema. Una representación manipulable es aquella que facilita la computación. En representaciones manipulables, la información es accesible a otras entidades que usan la representación como parte de una computación.
Debido a la variedad de formas que el conocimiento puede asumir, los problemas involucrados en el desarrollo de una representación del conocimiento son complejos, interrelacionados y dependientes del objetivo. En términos generales, se debe tratar que el conocimiento esté representado de tal forma que:



  • Capture generalizaciones.
    Pueda ser comprendido por todas las personas que vayan a proporcionarlo y procesarlo.
    Pueda ser fácilmente modificado.
    Pueda ser utilizado en diversas situaciones aún cuando no sea totalmente exacto o completo.
    Pueda ser utilizado para reducir el rango de posibilidades que usualmente debería considerarse para buscar soluciones.

Dentro de las técnicas de representación del conocimiento tenemos: Reglas, Marcos, Redes Semánticas, entre otras. Asimismo, no se conoce una representación que pueda servir para cualquier propósito.
Las características de una buena representación son:
· Los objetos y las relaciones importantes deben aparecer explícitamente y de forma conjunta
· Las restricciones inherentes al problema se muestran pero no los detalles irrelevantes.
· La representación debe ser transparente: se entiende lo que se dice.
· Completa y concisa: Están representados con eficacia todos los objetos y relaciones.
· Rápidos y computables: Se puede almacenar y recuperar la información con rapidez, y se pueden crear mediante un procedimiento ya existente.
Partes de una representación:
· Parte léxica: Determina qué símbolos están permitidos en el vocabulario de la representación.
· Una parte estructural que describe las restricciones sobre la forma en que los símbolos pueden ordenarse.
· Una parte operativa que especifica los procedimientos de acceso que permiten crear descripciones, modificarlas y responder a preguntas utilizándolas.
· Una parte semántica que establece una forma de asociar el significado con las descripciones.

Programación Estructurada

La programación estructurada es una forma de escribir programas de ordenador (programación de computadora) de forma clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración

Ventajas
Los programas son más fáciles de entender
La estructura del programa es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí
Reducción del esfuerzo en las pruebas.
Reducción de los costes de mantenimiento de los programas.
Programas más sencillos y más rápidos (ya que es más fácil su optimización)
Los bloques de código son auto explicativos, lo que facilita la documentación.
Un programa escrito de acuerdo a estos principios no solamente tendrá una mejor estructura sino también una excelente presentación.


Desventajas
Se obtiene un único bloque de programa

Programación lógica


La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación; no debe confundirse con la disciplina de la lógica computacional. La programación lógica comprende dos paradigmas de programación: la programación declarativa y la programación funcional. La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático. La lógica matemática es la manera más sencilla, para el intelecto humano, de expresar formalmente problemas complejos y de resolverlos mediante la aplicación de reglas, hipótesis y teoremas. De ahí que el concepto de "programación lógica" resulte atractivo en diversos campos donde la programación tradicional es un fracaso. La programación lógica encuentra su hábitat natural en aplicaciones de inteligencia artificial o disciplinas relacionadas: Sistemas expertos, donde un sistema de información imita las recomendaciones de un experto sobre algún dominio de conocimiento. Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una teoría existente. Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana. Etc. La programación lógica también se utiliza en aplicaciones más "mundanas" pero de manera muy limitada, ya que la programación tradicional es más adecuada a tareas de propósito general. El lenguaje de programación por excelencia de la programación lógica es: “Prolog”.


No hay comentarios:

Publicar un comentario