
Este pequeño espacio está destinado para publicar contenido de las materias de Analisis de Sistemas e Inteligencia Artificial.
miércoles, 1 de abril de 2009
miércoles, 25 de febrero de 2009
Representacion del conocimiento
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”.
martes, 17 de febrero de 2009
Sistemas Expertos
Sus inicios datan a mediados de los años sesenta. Durante esta década los investigadores Alan Newell y Herbert Simon desarrollaron un programa llamado GPS (General Problem Solver; solucionador general de problemas). 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.
Definiciones de los (SE)
Es un software que imita el comportamiento de un experto humano en la solución de un problema. Pueden almacenar conocimientos de expertos para un campo determinado y solucionar un problema mediante deducción lógica de conclusiones. Criado Briz José Mario (2002).
Son SE aquellos programas que se realizan haciendo explicito el conocimiento en ellos, que tienen información específica de un dominio concreto y que realizan una tarea relativa a este dominio. Wikipedia (2004).
Programas que manipulan conocimiento codificado para resolver problemas en un dominio especializado en un dominio que generalmente requiere de experiencia humana.
Programas que contienen tanto conocimiento declarativo (hechos a cerca de objetos, eventos y/o situaciones) como conocimiento de control (información acerca de los cursos de una acción), para emular el proceso de razonamiento de los expertos humanos en un dominio en particular y/o área de experiencia. Castro Marcel (2002).
Software que incorpora conocimiento de experto sobre un dominio de aplicación dado, de manera que es capaz de resolver problemas de relativa dificultad y apoyar la toma de decisiones inteligentes en base a un proceso de razonamiento simbólico. Viejo Hernando Diego (2003).
Aplicaciones
Sus principales aplicaciones se dan en las gestiones empresariales debido a que casi todas las empresas disponen de un ordenador que realiza las funciones básicas de tratamiento de la información: contabilidad general, decisiones financieras, gestión de la tesorería, planificación, etc.
Este trabajo implica manejar grandes volúmenes de información y realizar operaciones numéricas para después tomar decisiones. Esto crea un terreno ideal para la implantación de los SE.
Áreas de aplicación
Los SE se aplican a una gran diversidad de campos y/o áreas. A continuación se listan algunas de las principales:
Ventajas
· Trabajan con grandes cantidades de información
· Procesamiento de datos a una gran velocidad
· Análisis de información
· Aporta decisiones más solidas
· Pueden ser utilizados por personas no especializadas
Limitaciones
· Necesita de reprogramación para actualización
· Elevado costo en dinero y tiempo,
· Programas son poco flexibles a cambios y de difícil acceso
a información no estructurada.
Los sistemas expertos tienen una estructura en base a conocimientos, hechos (memoria de trabajo), motor de inferencia, subsistema de aplicación e interfaz de usuario.
miércoles, 4 de febrero de 2009
Linea del tiempo
martes, 3 de febrero de 2009
¿Qué es la Inteligencia Artificial (IA)?
Aquí les traigo una pequeña introducción de lo que es la inteligencia artificial.
La inteligencia artificial es una rama de la informática que se enfoca a diversos procesos ejecutables en forma física dependiendo de las instrucciones que se le indiquen, un ejemplo serian los robots que hacen una tarea específica, estos objetos son programados para realizar diversas tareas en base a los diferentes tipos de conocimiento que se emplee o mejor dicho tipo de racionalidad, ya que solo son procesos de entrada y salida.
Hay varios objetivos que busca la IA, pero los más comunes son los siguientes:
- Busca hacer computadoras (como los robots), para poder hacer una manifestación muy parecida a los conocimientos humanos, como son la percepción, razonamiento y el aprendizaje o algunas funciones del cerebro.
- Diseñar sistemas en los cuales se pueda mostrar algunas características que están asociadas y reservadas solo con la inteligencia humana.
- Crear herramientas que exhiben el comportamiento inteligente y de alguna forma llegar a imitarlo.
- Hacer computadoras inteligentes que puedan entender los principios de la inteligencia, para que sean más útiles.
La principal aplicación de la IA es la robótica, crea robots con capacidades de tomar decisiones, interpretar y hasta hablar, estos reciben datos de entrada para hacer una de terminada acción.
También está la Detección de virus: IBM utiliza la tecnología de red neuronal para ayudar a crear software más avanzado en la erradicación de los virus de computación, un problema importante para las empresas estadounidenses.
Esta la cartografía para interpretar las fotografías.
Hay software para la enseñanza, especificación, diseño, verificación, mantenimiento.Algunos pueden ser Sistemas de armamento como la guerra electrónica, identificación de objetivos, control adaptativo, proceso de imágenes, proceso de señales.
En conclusión, se puede decir que la IA tiene muchas aplicaciones y trata de apartarse un poco de la informática, ya que manipula muchos funcionamientos como son: los algoritmos para controlar diversas cosas y alterna a la vez con algunos campos como la robótica, sistemas expertos, entre otros. Trata de manejar la creación de computadoras inteligentes con la capacidad de responder inteligentemente ante ciertas situaciones a las que se enfrentan los seres humanos.
