Download Lógica

Document related concepts

Lógica proposicional wikipedia , lookup

Proposición wikipedia , lookup

Reglas de inferencia wikipedia , lookup

Sistema formal wikipedia , lookup

Lógica de primer orden wikipedia , lookup

Transcript
David Camacho Fernández
Temas Avanzados en Ingeniería Informática I
(Lógica)
Lógica Computacional
“La mayoría de las ideas fundamentales de la
ciencia son esencialmente sencillas y, por regla
Tema 1: Introducción
general pueden ser expresadas en un lenguaje
comprensible para todos.”
Albert Einstein
Definiciones
Lógica Computacional
La Lógica Computacional aborda el estudio de la Lógica
Matemática desde la perspectiva de su aplicación al mundo de la
computación
La Lógica se utilizará para:
Como una forma de representación del conocimiento
Para la implementación de procesos que permitan la
Lógica
logos:razón, tratado o ciencia
Lógica : Ciencia del Razonamiento
La lógica surge con la filosofía: Debate entre el
materialismo y el idealismo
resolución de problemas
Lógica
1
David Camacho Fernández
Definiciones
Lógica Matemática= “La Lógica es la ciencia que tiene
como objetivo el análisis de los métodos de
razonamiento”
Lógica Matemática = Lógica Formal = Lógica Simbólica
Definiciones
obtención de nuevo conocimiento (conclusión) a partir de una
serie de conocimientos previos (premisas)
Lógica Formal= deducción de conocimiento a partir de
otros elementos. Ciencia que estudia la validez formal del
razonamiento
Breve historia de la Lógica Formal
Validez formal: un razonamiento es formalmente válido si la
conclusión es necesariamente verdadera cuando las premisas
son verdaderas (es válido en virtud de su forma -su estructura-,
es decir, independientemente del conocimiento concreto del que
trata). En este caso se dice que la conclusión es una
consecuencia lógica de las premisas
Breve historia de la Lógica Formal
Demócrito (460-370 a.c) Fundador de la teoría atomística
Razonamiento (deducción, inferencia, argumentación):
Sócrates (469-339 a.c.) y Platón (427-347 a.c.): contra la corriente
materialista
La Lógica fue formalmente introducida en el marco de la Filosofía
por el filósofo griego Aristóteles (384-322 A.C.). Teoría del
raciocionio y de la demostración: rigurosa diferenciación entre lo
verdadero y lo falso
Edad Media
Bacon (1561-1626): lógica inductiva
Descartes (1596-1650), Método Científico
El matemático alemán Leibniz (1646-1716) fue el primero en
plantear una verdadera formalización de la lógica como cálculo
matemático
Lógica
También antecedentes en China y la India
2
David Camacho Fernández
Breve historia de la Lógica Formal
Breve historia de la Lógica Formal
El gran desarrollo de la lógica formal se produjo a finales del siglo
XIX y primera mitad del XX, con las aportaciones de:
El trabajo es completado a mediados del siglo XIX con los
trabajos de los matemáticos ingleses Boole y De Morgan, que
aplicaron a la lógica métodos algebraicos:
G. Boole(1815-1864): Lógica Booleana
Augustus de Morgan(1806-1871): leyes distributivas de la
Gottlob Frege(1848-1925): fundador de la lógica moderna y de
la lógica de primer orden
Bertrand Russell(1872-1957), Alfred North Whitehead(18611947): Principia Mathematica: lógica simbólica
Kurt Gödel (1906-1978): Teoremas de Gödel
Alfred Tarski (1902-1983), Fundamentación de la metalógica y la
negación
metamatemática
Hilbert, Herbrand…
Tipos de Lógicas
Breve historia de la Lógica Formal
Lógica Clásica
Considera únicamente construcciones declarativas, sobre las que
A partir de los años 50 una parte importante de la
investigación en lógica se centra en el estudio de
podemos pronunciarnos acerca de su verdad o falsedad sin
sus aplicaciones en computación, en particular
consideraciones de contexto
como herramienta de programación
Es veritativo-funcional. Una expresión es veritativa-funcional si
forma estructuras compuestas en los que basta conocer el valor
de verdad de sus partes para saber el valor de verdad de la
estructura total
Lógica
3
David Camacho Fernández
Tipos de Lógicas
Tipos de Lógicas
Lógica Clásica
Su estudio se realiza en dos niveles de análisis estructural:
1.
Se contemplan únicamente construcciones declarativas
simples y compuestas: Lógica Clásica Proposicional
2.
En cada afirmación simple se distingue qué se declara o de
qué o quién se declara: Lógica Clásica de Predicados
Lógica Clásica Proposicional (I)
Representación del lenguaje natural tomando como elemento
básico una representación matemática de las frases declarativas
simples (o proposiciones)
Ej: Jorge es listo (p)
Tipos de Lógicas
Tipos de Lógicas
Lógica Proposicional (o de enunciados) (III)
Ejemplos de formalización de razonamientos:
Lógica Proposicional (o de enunciados) (II)
Estudia el comportamiento de las fórmulas proposicionales,
construidas exclusivamente a partir de:
proposiciones atómicas (sentencias declarativas sin estructura
interna que siempre son o bien ciertas o bien falsas)
conectivas lógicas (y, o, no, implica, ...)
Lógica
Ejemplos de formalización de frases:
llueve (p); me mojo (q) ; llueve o me mojo (p ∨ q); no llueve
(¬p);si llueve, me mojo (p → q)
Ejemplo A (razonamiento válido)
Premisa 1: Si las rosas son rojas, las violetas son azules: p → q
Premisa 2: Las violetas no son azules: ¬q
Conclusión: Las rosas no son rojas: ¬p
Ejemplo B (razonamiento NO válido)
Premisa 1: Si los problemas son difíciles, estudiamos: p → q
Premisa 2: Los problemas no son difíciles: ¬ p
Conclusión: No estudiamos: ¬q
4
David Camacho Fernández
Tipos de Lógicas
Lógica Clásica de Predicados (I)
Representación del lenguaje natural tomando como elemento
Tipos de Lógicas
Lógica Predicados (de primer orden) (II)
Existen razonamientos válidos que no son expresables ni
básico los componentes de algunos tipos de proposición (términos
analizables en lógica de proposiciones
y predicados)
Ej: Jorge
término
es listo
La lógica de predicados es una extensión de la lógica de
proposiciones que tiene en cuenta la estructura interna de los
predicado
enunciados
Tipos de Lógicas
Lógica Predicados (de primer orden) (II)
Lógica Predicados (de primer orden) (II)
Introduce los siguientes (nuevos) elementos:
Ejemplo de formalización de una frase:
Lógica
Tipos de Lógicas
predicados, que permiten expresar propiedades o relaciones
entre objetos
cuantificadores, que permiten expresar la generalidad de los
enunciados (enunciados válidos para todos los objetos de un
cierto tipo o sólo para algunos)
funciones, que permiten expresar transformaciones de
objetos
constantes y variables, que permiten referirse a objetos
concretos u objetos generales
“a es el límite de una sucesión f(n) si para todo ε > 0 existe un n0
tal que para todo n ≥ n0 se verifica abs(f(n) - a) < ε"
5
David Camacho Fernández
Tipos de Lógicas
Lógica Predicados (de primer orden) (II)
Ejemplo de formalización de un razonamiento:
Tipos de Lógicas
Premisa 1: Todas las personas son mortales
Premisa 2: Sócrates es una persona. P(s)
Conclusión: Sócrates es mortal. M(s)
(razonamiento formalmente válido)
Lógicas de orden superior
En lógica de predicados de primer orden los
cuantificadores sólo se pueden aplicar a objetos
(elementos de primer orden)
Las lógicas de orden superior son extensiones de la
lógica de predicados de primer orden que permiten
aplicar cuantificadores a predicados definidos sobre
objetos (segundo orden), predicados definidos sobre
predicados (tercer orden), etc.
Tipos de Lógicas
Lógica
Lógicas de orden superior
Tipos de Lógicas
Lógicas No Clásicas
Lógicas con mayor poder expresivo
Ejemplos:
“Todos los múltiplos de 8 comparten una propiedad interesante“
“Todos los problemas filosóficos tienen un rasgo en común"
Extensiones de la Lógica Clásica: extienden el vocabulario y
añaden nuevas leyes
Lógica Temporal: considera contextos temporales
Lógica Modal: considera contextos de necesidad o posibilidad
Lógica Doxástica: considera contextos de creencia
6
David Camacho Fernández
Tipos de Lógicas
Características de una Lógica
Lógicas No Clásicas
Desviaciones de la Lógica Clásica: no mantienen algunas leyes de
la Lógica clásica
Lógica Intuicionista: no contempla como ley “A o no A” (ley del
tercero excluido)
Lógica 3-valuada: se consideran tres valores de verdad
Lógicas que incorporan el tratamiento de la incertidumbre o
la imprecisión: Lógicas multivaluadas, Lógicas probabilistas,
Lógicas borrosas (fuzzy)
Un lenguaje formal (sintaxis)
Una Semántica (o Teoría de Modelos)
Una Teoría de la demostración
Automatizar las Deducciones
Lógica lineal: no es veritativo funcional
Lenguaje Formal
Características de una Lógica
Sintaxis
Describe los elementos básicos del lenguaje y las reglas
que permiten construir las expresiones admitidas por el
lenguaje, denominadas fórmulas
Semántica
Permite asignar un significado (valor de verdad, cierto o
falso) a las fórmulas del lenguaje, y definir qué significa que
una fórmula o un razonamiento sean válidos
Sistemas de demostración
Son sistemas formales que permiten averiguar cuándo una
fórmula es válida o cuándo un razonamiento es válido
Lenguaje universal sobre A:
A* = ∪ An
n∈N
Alfabeto: Un alfabeto es cualquier conjunto finito o infinito
numerable de símbolos (A)
Lógica
Para definir una lógica es necesario
Lenguaje sobre A: es cualquier subconjunto del lenguaje
universal: L ⊆ A*
7
David Camacho Fernández
Lenguaje Formal
Semántica o Teoría de Modelos
Los elementos de L se denominan fórmulas bien formadas (fbf), o
Una semántica o Teoría de modelos sobre un lenguaje L
viene de dada por los siguientes tres elementos :
fórmulas sintácticamente correctas (fsc)
Un conjunto de valores semánticos (S)
Un conjunto D ⊂ S de valores destacados
Equivalentemente, un lenguaje L viene determinado por:
Alfabeto: Conjunto de símbolos admitidos en el lenguaje
Gramática: Conjunto de reglas de formación que determinan
quá cadenasde símbolos son fbf en el lenguaje
Semántica o Teoría de Modelos
Modelo. Una interpretación es un modelo de un conjunto de
Teoría de la demostración
fbfs Ω si asigna a toda fórmula de Ω un valor destacado
Fórmula válida: una fbf es válida si toda interpretación del
Es un “mecanismo deductivo”, es decir, un mecanismo que
permite obtener una fbf de otras sin hacer referencia a ninguna
semántica
Tiene como objetivo establecer la noción sintáctica de deducción
lenguaje es un modelo para ella; se denota: |= α
Inferencia semántica: una fbf α se deriva o infiere
semánticamente de un conjunto de fbfs Ω, si todo modelo de Ω
es modelo de α. Se denota: Ω |= α
Lógica
Un conjunto (I) de aplicaciones I : L → S denominadas
interpretaciones
Sistemas axiomáticos
Sistemas de Deducción Natural
Sistemas de Gentzen
8
David Camacho Fernández
Sistema axiomático
Sistema axiomático
El mecanismo deductivo viene dado por los dos elementos
siguientes:
Axiomas: Conjunto finito o infinito numerable de fbfs de L
Reglas de inferencia: Conjunto de reglas deducción o
transformación que establecen cuando un fbf es consecuencia
inmediata de una o varias fórmulas
Fórmula válida o teorema. Una demostración es una secuencia finita de
fbfs en la cual cada fbf es o un axioma o una consecuencia inmediata de
una o varias fórmulas precedentes
Si A es la última fórmula de la secuencia, decimos que A es una fórmula
válida o teorema; lo denotamos ├ A
Deducción o derivación. Una deducción o derivación de una fbf A desde
un conjunto Ω de fbfs es una secuencia finita de fbfs en la cual cada
fórmula es un axioma, un elemento de Ω o una consecuencia inmediata de
una o varias fórmulas precedentes. Lo denotamos: Ω ├ A
Corrección y completitud
Estas nociones se asocian a un sistema de demostración
Automatización de las demostraciones
Decidibilidad: Una lógica se dice decidible, si para ella es posible
diseñar un algoritmo que determine si cualquier inferencia es, o no,
definido sobre un lenguaje con una teoría de modelos
válida
Corrección: Una teoría de la demostración es correcta si
todo lo derivable en ella es derivable en la semántica: Ω ├ A
⇒ Ω |= A
Semidecidibilidad
Complejidad de los algoritmos de decisión
Completitud: Una teoría de la demostración es completa si
toda inferencia válida en la semántica es derivable en ella: Ω
|= A ⇒ Ω ├ A
Lógica
9
David Camacho Fernández
Campos de aplicación
Campos de aplicación
Lógica computacional
Lógica de la programación
Uso de la lógica formal para describir la semántica de los
lenguajes de programación, para verificar la corrección de
programas o para probar propiedades de los programas
(ejemplo: Lógica de Hoare,1969)
Especificación formal
Uso de la lógica formal para especificar formalmente
programas (ejemplo: lenguaje de especificación Z, 1989)
Breve historia de la Lógica Computacional
Años 50
Nacimiento de la Inteligencia Artificial y del primer lenguaje de
programación declarativo (LISP) (McCarthy, 1959)
Aparición de los primeros sistemas de demostración
automática
Análisis, síntesis y verificación de Programas
Teoría de la especificación
Programación Lógica
Inteligencia Artificial
Control de Procesos
Robótica
Breve historia de la Lógica Computacional
Años 70
Introducción de la programación lógica como mecanismo
general de resolución de problemas (Greene, Kowalski)
Años 60
Lógica
Lógica computacional
Nuevos sistemas de demostración automática, más eficientes
y completos (Gilmore, Davis-Putnam, ...)
Aparición del sistema de Resolución (Robinson, 1965):
sistema muy eficiente, sencillo y de fácil implementación
(sistema utilizado por PROLOG)
Primera implementación de un lenguaje de programación
lógico (Prolog, Colmenauer, 1972)
10
David Camacho Fernández
Programación Lógica
Breve historia de la Lógica Computacional
Años 80 en adelante
Prolog alcanza su madurez (varias implementaciones
Constituye una parte fundamental de la
Inteligencia Artificial ≡ construcción de
sistemas informáticos capaces de reproducir
comportamientos “inteligentes"
comerciales, libros, etc), su uso se empieza a generalizar y se
define un estándar
Programación lógica concurrente, Programación lógicofuncional, programación lógica con restricciones, sistemas
distribuidos y orientación a objetos, uso de otras lógicas, ...
Programación Lógica
Programación Lógica
Se basa en dos ideas fundamentales:
1.
El “conocimiento" asociado con un sistema se puede expresar
de forma declarativa mediante fórmulas lógicas (≡ uso de la
lógica como mecanismo de representación del conocimiento)
A diferencia del paradigma de programación imperativo o
procedural (e.g. Pascal, Ada, C, etc), o del orientado a objetos
(C++, Java, Eiffel, Smalltalk, etc.) los programas en un lenguaje
de programación lógico no describen cómo resolver el
2.
Lógica
El “razonamiento" de un sistema se traduce entonces en la
realización de una serie de operaciones lógicas (deducciones)
sobre dicho conocimiento (≡ uso de la lógica como mecanismo
de resolución de problemas)
problema sino simplemente especifican qué hay que resolver
11
David Camacho Fernández
Programación Lógica
Escribir un programa lógico consiste en:
1.
2.
Programación Lógica
Declarar el conocimiento relativo al problema mediante una
Funcionamiento de la programación lógica
La realización de una consulta se traduce en averiguar si la
serie de fórmulas lógicas (≡ construir una base de
fórmula existencial es una consecuencia lógica de las fórmulas
conocimientos)
que constituyen la base de conocimientos
Representar el problema a resolver mediante una fórmula
lógica de tipo existencial (≡ realizar una consulta a la base de
Para ello, los lenguajes lógicos incorporan mecanismos de
demostración automática, basados en sistemas de
conocimientos)
demostración lógicos
Programación Lógica
Ventajas de la programación lógica
Programación Lógica
Ejemplo
Base de conocimientos
Madre(m1,m2);Madre(m2,m3);Madre(m2,m4)
Padre(p1,m2); Padre(p1, p2)
Los programas están muy próximos a la especificación de los
problemas que pretenden resolver
Son por ello más sencillos, más fáciles de entender y
mantener y más fiables
Lógica
Consultas
12