lunes, 27 de junio de 2016

3.3 Ingeniería del Conocimiento

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 instruccionales 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 un determinado área, y en codificar dicho conocimiento de manera que pueda ser procesado por un sistema.

El problema es que el ingeniero 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.









Para saber más sobre el tema, dar click en la siguiente liga:





3.2 Listas en Prolog

Listas


Es una secuencia ordenada de elementos que puede tener cualquier longitud. Los elementos de una lista pueden ser constantes, variables, estructuras, e incluso otras listas.

Por lo anterior las listas son una estructura de datos muy común en la programación lógica. Las listas en Prolog pueden considerarse como estructura recursiva que representa un tipo de árbol de búsqueda.

En Prolog, la lista será una estructura con dos componentes:

  • La cabeza o primer argumento de la lista y la cola, es decir, el resto de la lista. El final de una lista se suele representar como una cola formada por una lista vacía la cual se representa con [].


Prolog utiliza una notación muy sencilla para representar las listas, la cual consiste en colocar los elementos de la misma, separados por comas (,) y todo este encerrado entre []; también se considera en Prolog la representación general de las listas, colocando una variable que representa la cabeza y otra la cola, separados por una línea vertical.  [X | Y]












Para saber más sobre el tema, dar click en la siguiente liga:

3.1 Agente basado en el conocimiento

Agente basado en el conocimiento


                Un Agente Basado en Conocimiento (ABC) es aquel sistema que posee conocimiento de su mundo y que es capaz de razonar sobre las posibles acciones que puede tomar para cambiar el estado de su mundo. El ABC es un conjunto de sentencias, representado mediante un lenguaje de representación de conocimiento.

EL ABC consiste principalmente en:

Base del conocimiento:
  • ·         Es un sistema de oraciones que representan hechos acerca del mundo, expresado en un algún lenguaje de representación del conocimiento.
  • ·         Cada hecho está representado por una sentencia u oración
  • ·         Siempre que se ejecuta el programa del agente basado en el conocimiento, suceden dos cosas:

o   El programa informa a la Base de Conocimiento lo que percibe.
o   El programa pregunta a la Base de Conocimiento qué hacer, luego graba la respuesta.
§  La pregunta se responde mediante el razonamiento lógico.

Motor de inferencia:  

Deduce nuevas oraciones o sentencias a partir de las oraciones almacenadas en la base de conocimiento y de las nuevas percepciones

Adición de nuevo conocimiento.








Para saber más sobre el tema, dar click en la siguiente liga: 



lunes, 23 de mayo de 2016

3.0 Cuantificadores de Lógica de Primer Orden


Cuantificadores


Considérese ahora la siguiente expresión matemática:
x > 3
Esta expresión no es ni verdadera ni falsa, y parece que no lo será hasta que no reemplacemos a la x por algún número cualquiera. Sin embargo, también es posible dar un valor de verdad a la expresión si se le antepone un cuantificador. Un cuantificador es un operador sobre un conjunto de individuos, se trata de un recurso expresivo que permite construir proposiciones sobre conjuntos o dicho de otra forma , un cuantificador es una expresión que afirma que una condición se cumple para un cierto número de individuos. En la lógica clásica, los dos cuantificadores más estudiados son el cuantificador universal y el cuantificador existencial. El primero afirma que una condición se cumple para todos los individuos de los que se está hablando, y el segundo que se cumple para al menos uno de los individuos. Por ejemplo, la expresión "para todo x" es un cuantificador universal, que antepuesto a "x < 3", produce:
Para todo xx < 3
Esta es una expresión con valor de verdad, en particular, una expresión falsa, pues existen muchos números (muchos x) que son mayores que tres. Anteponiendo en cambio la expresión "para al menos un x", un cuantificador existencial, se obtiene:
Para al menos un xx < 3
La cual resulta ser una expresión verdadera.
Adviértase ahora, sin embargo, que el valor de verdad de las dos expresiones anteriores depende de qué números se esté hablando. Si cuando se afirma "para todo xx < 3", se está hablando sólo de los números negativos, por ejemplo, entonces la afirmación es verdadera. Y si al afirmar "para al menos un xx < 3" se está hablando solamente de los números 3, 4 y 5, entonces la afirmación es falsa. En lógica, a aquello de lo que se está hablando cuando se usa algún cuantificador, se lo llama el dominio de discurso.
Esta maquinaria puede adaptarse fácilmente para formalizar oraciones con cuantificadores del lenguaje natural. Tómese por caso la afirmación "todos son amigables". Esta oración puede traducirse así:
Para todo xx es amigable.
Y una oración como "alguien está mintiendo" puede traducirse:
Para al menos un xx está mintiendo.
También es frecuente traducir esta última oración así:
Existe al menos un x, tal que x está mintiendo.
A continuación se formalizan ambas oraciones, introduciendo a la vez la notación especial para los cuantificadores:
Para todo xx es amigable.x A(x)
Existe al menos un x, tal que x está mintiendo.    x M(x)





Para saber más sobre el tema, dar click en la siguiente liga:
https://es.wikipedia.org/wiki/L%C3%B3gica_de_primer_orden#Cuantificadores


2.9 Lógica de Primer Orden


Lógica de primer orden



         La lógica de primer orden, también llamada lógica de predicados o cálculo de predicados, es un sistema formal diseñado para estudiar la inferencia en los lenguajes de primer orden. Los lenguajes de primer orden son, a su vez, lenguajes formales con cuantificadores que alcanzan sólo a variables de individuo, y con predicados y funciones cuyos argumentos son sólo constantes o variables de individuo.
         La lógica de primer orden tiene el poder expresivo suficiente para definir a prácticamente todas las matemáticas.





Para saber más sobre el tema, dar click en la siguiente liga:
https://es.wikipedia.org/wiki/L%C3%B3gica_de_primer_orden

2.8 Lógica Proposicional


Lógica proposicional



         La lógica proposicional o lógica de orden cero es un sistema formal cuyos elementos más simples representan proposiciones, y cuyas constantes lógicas, llamadas conectivas, representan operaciones sobre proposiciones, capaces de formar otras proposiciones de mayor complejidad.
         La lógica proposicional trata con sistemas lógicos que carecen de cuantificadores, o variables interpretables como entidades. En lógica proposicional si bien no hay signos para variables de tipo entidad, sí existen signos para variables proposicionales (es decir, que pueden ser interpretadas como proposiciones con un valor de verdad de definido), de ahí el nombre proposicional. La lógica proposicional incluye además de variables interpretables como proposiciones simples signos para conectivas lógicas, por lo que dentro de este tipo de lógica puede analizarse la inferencia lógica de proposiciones a partir de proposiciones, pero sin tener en cuenta la estructura interna de las proposiciones más simples.




Para saber más sobre el tema, dar click en la siguiente liga:
https://es.wikipedia.org/wiki/L%C3%B3gica_proposicional

2.7 Unificación

Unificación


La unificación se realiza, para cada predicado, de izquierda a derecha, y para cada conjunto de predicados, de arriba a abajo. Se pueden unificar variables con constantes, siempre que la variable no esté instanciada. Si la variable está instanciada, el hecho de hacer unificación entre ambas se corresponde con la situación de unificación de dos constantes. Para que dos constantes se puedan unificar ambas han de ser iguales.

Veamos en la Tabla 4 algunos casos que muestran elfuncionamiento de la unificación.

 Variable no instanciada se intenta unificar con cualquier átomo
ÉXITO
X=5
Variable instanciada se intenta unificar con cualquier átomo distinto al valor que contiene
FAIL
X que contiene 5, X=6
Constante se intenta unificar con otra constante distinta
FAIL
5=6
Expresiones se intentan comparar mediante símbolos de comparación que no "evalúan" y no coinciden totalmente, incluido el orden
FAIL
5+3=3+5
Variable se intenta instanciar dos veces en la misma ejecución del programa. En el segundo intento de instanciación
FAIL
X=6, X=7

Vemos que las instanciación es un caso de unificación en la que a una variable no instanciada se le asigna un valor.
También podemos observar que no es necesario definir los tipos de las variables locales usadas dentro de cada regla de inferencia. Cuando las variables se instancian a un valor, entonces todas las operaciones que se realicen con dicho valor deberán tener en cuenta el tipo especificado. Por ejemplo, si una variable se instancia al valor 5, todas las comparaciones posteriores se harán con números y no con átomos del tipo pepe, blas ó similar.
El proceso de unificación intenta casar un predicado con otro para comprobar si son absolutamente iguales, cuando es posible hacer sustituciones, éstas se realizan de manera que los predicados que se están unificando se tornen completamente iguales y proporcionen un resultado de ÉXITO.



Para saber más sobre el tema, dar click en la siguiente liga: