Tecnología

Inicio

Tipos de cláusulas de Horn en Prolog

Tipos de cláusulas de Horn en Prolog


Prolog (Programación en Logic) fue desarrollado en Francia para la creación de traductores de lenguaje natural. Se ha desarrollado en Escocia para la escritura automática de teoremas para las matemáticas y la lógica. Se llamó la atención internacional cuando fue elegido para el proyecto japonés "quinta generación". Prolog programas consisten en una lista cuidadosamente ordenada de reglas (escrito como cláusulas de Horn). El usuario hace una pregunta y las respuestas del programa - en términos de las reglas. Es un paradigma notablemente útil.

Las cláusulas tipo Horn

cláusulas de Horn fueron inventados en 1951 por el matemático estadounidense Alfred Horn. En sus palabras, una cláusula cuerno es "una disyunción de literales que tienen a lo sumo un literal positivo." Una típica cláusula cuerno se parece a esto: (no A) o (no B) o C. El literal positivo es C, A y B son "negativo". Si la cláusula de cuerno tiene exactamente un literal positivo - como cláusulas de Horn Prolog hacen - que se llama una cláusula de cuerno definido. cláusulas de Horn se escriben normalmente en un formato simplificada equivalente. La declaración disyuntiva (no A) o (no B) o C es lógicamente equivalente a la declaración (A y B) implica C. Esto se simplifica a: A, B - C (en la que el "-" representa la flecha implicación). La cláusula de cuerno más simple es un solo literal positivo (en la que no hay flecha) - este es el mismo para ambas cláusulas de cuerno y Prolog.

Las cláusulas Prolog Horn

reglas Prolog se parecen a las cláusulas de cuerno, salvo la flecha apunta hacia otro lado. La regla gramatical que una oración se compone de un sintagma nominal y un sintagma verbal está escrito S: - NP, VP. El conjunto de reglas también podría contener la máxima de que un sintagma nominal se compone de un artículo y un sustantivo, escrito NP: - A, N. Si hay otra regla que indica que un sintagma nominal es un sustantivo en plural, podría escribirse NP: - PN. Cuando todas las reglas están en su lugar, el usuario puede presentar una "sentencia" en el programa y el programa trata de hacer coincidir la "condena" a las reglas. Prolog trabaja hacia atrás por las reglas - si la pregunta coincide con la conclusión (literal positivo) de una regla, los antecedentes (literales negativos) se convierten en las nuevas preguntas. Si todas las preguntas con el tiempo coinciden con los hechos, la "sentencia" es una sentencia válida. Este proceso de comparación funciona para las matemáticas, la lógica y otros sistemas basados ​​en reglas, así como funciona la gramática.

La Cláusula Cut

Hay tres tipos de cláusulas de Horn que se utilizan en la Prolog: (sin flecha) declaración de hecho, la regla (con una flecha, una positiva literales y al menos un literal negativo) y el corte. cláusulas de corte contienen el "!" símbolo. Cuando el intérprete Prolog ve el símbolo de corte (pronunciado "bang"), se elimina el resto de reglas que tienen el mismo literal positivo como la regla que contiene la explosión. Esto puede tener varios efectos sobre los programas - que puede representar ciertos resultados negativos, se puede evitar o tratar sin problemas con los fracasos, o simplemente puede eliminar parte del espacio de búsqueda y acelerar el programa.