lunes, 17 de junio de 2019

Formas de aprendizaje de un agente basado en conocimiento


Base de Conocimiento

El componente principal de un agente basado en conocimiento y Su base de conocimiento (ó KB) y Conjunto de representaciones de hechos acerca del mundo y Cada representación individual se conoce como sentencia (sentence ) y Las sentencias se expresan en un lenguaje conocido como: y Lenguaje de representación de conocimiento y Se necesita una manera de: y Añadir una nueva sentencia a la KB (método declarativo): Tell y Preguntar qué se conoce Preguntar qué se conoce: Ask y La respuesta proviene de lo que ha dicho a la KB previamente.

Inferencia

Segundo componente principal de un agente basado en conocimiento y Determinar qué sigue a partir de lo que se ha dicho a la KB (tell) es el trabajo del mecanismo de inferencia.

Puedes encontrar mas información aquí


Niveles de agentes basado en conocimiento


Puedes encontrar mas información aquí

Sistemas expertos


Sistemas expertos (ES, siglas del término Expert System) es un sistema de información basado en el conocimiento que usa su conocimiento de un área de aplicación compleja y específica a fin de actuar como un consultor experto para los usuarios finales. Los sistemas expertos proporcionan respuestas sobre un área problemática muy específica al hacer inferencias semejantes a las humanas sobre los conocimientos obtenidos en una base de conocimientos especializados. 
Su uso es especialmente recomendado en las siguientes situaciones:
·         Cuando los expertos humanos en una determinada materia son escasos.
·         En situaciones complejas, donde la subjetividad humana puede llevar a conclusiones erróneas.
·         Cuando es muy elevado el volumen de datos que ha de considerarse para obtener una conclusión.

Como se crean:



Ingeniería del conocimiento


La ingeniería del conocimiento es aquella disciplina moderna que forma parte de la Inteligencia Artificial y cuyo fin es el diseño y desarrollo de Sistemas Expertos. Para esto, se apoya en metodologías institucionales y en las ciencias de la computación y de las tecnologías de la información, intentando representar el conocimiento y razonamiento humanos en un determinado dominio, dentro de un sistema artificial.
El trabajo de los ingenieros del conocimiento consiste en extraer el conocimiento de los expertos humanos en una determinada área, y en codificar dicho conocimiento de manera que pueda ser procesado por un sistema.

La ingeniería del conocimiento engloba a los científicos, tecnología y metodología necesarios para procesar el conocimiento. Su objetivo es extraer, articular e informatizar el conocimiento de un experto.

Características
El problema es que la ingeniería del conocimiento no es un experto en el campo que intenta modelar, mientras que el experto en el tema no tiene experiencia modelando su conocimiento (basado en la heurística) de forma que pueda ser representado de forma genérica en un sistema. La ingeniería del conocimiento engloba a los científicos, tecnología y metodología necesarios para procesar el conocimiento. Su objetivo es extraer, articular e informatizar el conocimiento de un experto.
Puedes encontrar mas información aquí

Listas en Prolog


Una lista es una estructura de datos muy utilizada en programación simbólica. El trabajo con listas en PROLOG permite aumentar la potencialidad del lenguaje. Frecuentemente, los predicados con listas son recursivos.
Una lista es una secuencia ordenada de elementos clasificados que puede tener cualquier longitud. Las listas pueden utilizarse para representar conjuntos, pero existen diferencias importantes:
·         En un conjunto el orden de los elementos no es relevante. En un conjunto no se repiten elementos.
·         A pesar de esto, la mayoría de las operaciones de conjunto, se pueden implementar utilizando listas.
Una lista en PROLOG se define como un conjunto de daos homogéneos es decir del mismo tipo.
Se denota de la siguiente manera:
H|T]
Donde:
H (Head): Representa la cabeza de la lista.
T (Tail): Representa el resto de la lista, es decir la cola de la cola.

Operaciones con listas

La operación de pertenencia se llamará miembro. Permite determinar si un elemento pertenece o no a una lista. El predicado miembro se utiliza como:
¿Es el elemento X miembro de la lista L?
En PROLOG seria:
?-miembro(c,[a,b,c]).
YES
Puedes encontrar mas información

lunes, 20 de mayo de 2019

Lógica proposicional


Lógica Proposicional


Es una rama de la lógica clásica que estudia las variables proposicionales o sentencias lógicas, sus posibles implicaciones, evaluaciones de verdad y en algunos casos su nivel absoluto de verdad. Algunos autores también la identifican con la lógica matemática o la lógica simbolice, ya que utiliza una serie de símbolos especiales que lo acercan al lenguaje matemático.
Proposiciones

Tautología: se define tautología o validez a aquella formula que siempre es verdadera.

Contradicción: es una proposición que siempre es falsa para todos los valores de verdad. Para cualquier valor de verdad de las proposiciones, sea cual sea el resultado de la formula lógica estudiada siempre va a ser falso.

Conjunción: es aquella formula que es falsa o verdadera. Las expresiones de las que depende la validez de los argumentos se definen constante lógicas.

Conectores

Negación: no -> >, ~

En lógica y matemática, la negación, también llamada complemento lógico, es una operación sobre proposiciones, valores de verdad, o en general, valores semánticos. Intuitivamente, la negación de una proposición es verdadera cuando dicha proposición es falsa, y viceversa. En lógica clásica la negación está normalmente identificada con la función de verdad que cambia su valor de verdadero a falso y viceversa.

Conjunción: Y ∧, Solamente si las componentes de la conjunción son ciertas, la conjunción es cierta.

Disyunción: O ∨,

La disyunción solamente es falsa si lo son sus dos componentes.

Condicional: ⇒ entonces

Típicamente los valores de verdad de dos proposiciones, devolviendo el valor de verdad falso sólo cuando la primera proposición es verdadera y la segunda falsa.

Bicondicional: ⇔ si solo sí.

El Bicondicional o doble implicación es un operador que funciona sobre dos valores de verdad, típicamente los valores de verdad de dos proposiciones, devolviendo el valor de verdad verdadero cuando ambas proposiciones tienen el mismo valor de verdad, y falso cuando sus valores de verdad difieren.
Proposiciones

Variables: En el lenguaje simbólico de la lógica de proposiciones, a los enunciados simples, atómicos o elementales son los que no pueden descomponerse en otros más simples. Se les llama variables, y se escriben con las letras minúsculas del final del abecedario: “p”, “q”, “r”, “s”… para los casos particulares, o con las letras en mayúscula del principio del alfabeto cuando son casos generales: “A”, “B”, “C”, “D”…

Además de las variables, la lógica proposicional tiene otros elementos en su alfabeto: las constantes lógicas y los símbolos auxiliares que forman los enunciados compuestos.

Algunas de las marcas léxicas del lenguaje natural, se traducen con uno de las cinco constantes lógicas siguientes:

¬ NEGACIÓN: No

٧ DISYUNCIÓN INCLUSIVA: o, o bien, tanto si… como si,

٨ CONJUNCIÓN: y, e, o ni (=y no)

→ CONDICIONAL: si…. entonces

↔ BICONDICIONAL: si y solo si


Tabla de la Verdad

La negación: Cuando la variable es verdadera al negarla se convierte en falsa, y si es falsa, al negarla se hace verdadera.



sábado, 18 de mayo de 2019

Características de SWI-PROLOG


SWI-Prolog le proporciona un entorno de desarrollo completo y sólido para el lenguaje de programación lógica Prolog, que está destinado a la lingüística computacional y aplicaciones de inteligencia artificial.
Basándose en una máquina virtual Prolog para definir las instrucciones, SWI-Prolog cuenta con un compilador más rápido y el modo de depuración sólo reduce la velocidad del sistema por un bit.
La aplicación viene con una interfaz flexible e intuitiva que le permite trabajar con el código C / C ++, proporcionando soporte para aplicaciones de gran tamaño y un número ilimitado de valores enteros sin bajar el rendimiento.
Tanto el código estático y dinámico se puede indexar fácilmente ante cualquier argumento, mientras que el depurador a nivel de fuente compatible con gráficos a través XPCE.
SWI-Prolog Prolog tiene una cruzada Referente, un perfilado de ejecución a las estadísticas de instrucción de salida, así como una herramienta de comprobación de errores. El paquete también incluye una colección de bibliotecas que los programadores pueden encontrar útiles, es decir, los componentes de las reglas de restricción de manipulación, las bibliotecas de interfaz HTML, XML, RDF y programas de análisis, una biblioteca de servidor web para los esfuerzos de gestión de sesiones, HTML y HTTP de autorización y así sucesivamente.
El conjunto de características de depuración avanzada comprende un editor de espionaje punto, un depurador excepción, un monitor de hilo y una herramienta de gestión de la dependencia.
El programa proporciona soporte para los juegos de caracteres Único de, lo que lo hace adecuado para la creación de aplicaciones basadas en la Web y multilingüe.
Con alta velocidad de compilación, SWI-Prolog puede ser de gran utilidad para los programadores de Prolog. Su gama de características son suficientes para satisfacer a los usuarios más experimentados, ya que se requiere conocimientos de programación avanzada con el fin de usarlo.