David Camacho Fernández
Lógica 1
Tema 1: Introducción
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
general pueden ser expresadas en un lenguaje
comprensible para todos.”
Albert Einstein
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
resolución de problemas
Definiciones
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
David Camacho Fernández
Lógica 2
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
Lógica Formal = deducción de conocimiento a partir de otros elementos. Ciencia que estudia la validez formal del razonamiento
Definiciones
Razonamiento (deducción, inferencia, argumentación):
obtención de nuevo conocimiento (conclusión) a partir de una
serie de conocimientos previos (premisas)
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
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
También antecedentes en China y la India
Breve historia de la Lógica Formal
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
David Camacho Fernández
Lógica 3
Breve historia de la Lógica Formal
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
negación
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:
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(1861-
1947): 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
metamatemática
Hilbert, Herbrand…
Breve historia de la Lógica Formal
A partir de los años 50 una parte importante de la
investigación en lógica se centra en el estudio de
sus aplicaciones en computación, en particular
como herramienta de programación
Tipos de Lógicas
Lógica Clásica
Considera únicamente construcciones declarativas, sobre las que
podemos pronunciarnos acerca de su verdad o falsedad sin
consideraciones de contexto
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
David Camacho Fernández
Lógica 4
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 dequé o quién se declara: Lógica Clásica de Predicados
Tipos de Lógicas
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
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, ...)
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)
Tipos de Lógicas Lógica Proposicional (o de enunciados) (III)
Ejemplos de formalización de razonamientos:
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
David Camacho Fernández
Lógica 5
Tipos de Lógicas
Lógica Clásica de Predicados (I)
Representación del lenguaje natural tomando como elemento
básico los componentes de algunos tipos de proposición (términos
y predicados)
Ej: Jorge es listo
término predicado
Tipos de Lógicas
Lógica Predicados (de primer orden) (II)
Existen razonamientos válidos que no son expresables ni
analizables en lógica de proposiciones
La lógica de predicados es una extensión de la lógica de
proposiciones que tiene en cuenta la estructura interna de los
enunciados
Tipos de Lógicas
Lógica Predicados (de primer orden) (II)
Introduce los siguientes (nuevos) elementos:
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
Tipos de Lógicas
Lógica Predicados (de primer orden) (II)
Ejemplo de formalización de una frase:
“a es el límite de una sucesión f(n) si para todo ε > 0 existe un n0tal que para todo n ≥ n0 se verifica abs(f(n) - a) < ε"
David Camacho Fernández
Lógica 6
Tipos de Lógicas
Lógica Predicados (de primer orden) (II)
Ejemplo de formalización de un razonamiento:
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)
Tipos de Lógicas
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ógicas de orden superior
Ejemplos:
“Todos los múltiplos de 8 comparten una propiedad interesante“
“Todos los problemas filosóficos tienen un rasgo en común"
Tipos de Lógicas
Lógicas No Clásicas
Lógicas con mayor poder expresivo
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
David Camacho Fernández
Lógica 7
Tipos de Lógicas
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)
Lógica lineal: no es veritativo funcional
Características de una Lógica
Para definir una lógica es necesario
Un lenguaje formal (sintaxis )
Una Semántica (o Teoría de Modelos)
Una Teoría de la demostración
Automatizar las Deducciones
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 Formal
Alfabeto : Un alfabeto es cualquier conjunto finito o infinito
numerable de símbolos (A)
Lenguaje universal sobre A:
A* = ∪ Ann∈N
Lenguaje sobre A : es cualquier subconjunto del lenguaje
universal: L ⊆ A*
David Camacho Fernández
Lógica 8
Lenguaje Formal
Los elementos de L se denominan fórmulas bien formadas (fbf), o
fórmulas sintácticamente correctas (fsc)
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
Una semántica o Teoría de modelos sobre un lenguaje L
viene de dada por los siguientes tres elementos :
Un conjunto de valores semánticos (S)
Un conjunto D ⊂ S de valores destacados
Un conjunto (I) de aplicaciones I : L → S denominadas
interpretaciones
Semántica o Teoría de Modelos
Modelo . Una interpretación es un modelo de un conjunto de
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
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: Ω |= α
Teoría de la demostración
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
Sistemas axiomáticos
Sistemas de Deducción Natural
Sistemas de Gentzen
David Camacho Fernández
Lógica 9
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
Sistema axiomático
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
definido sobre un lenguaje con una teoría de modelos
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
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
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,
válida
Semidecidibilidad
Complejidad de los algoritmos de decisión
David Camacho Fernández
Lógica 10
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)
Campos de aplicación
Lógica computacional
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 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
Años 60
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)
Años 70
Introducción de la programación lógica como mecanismo
general de resolución de problemas (Greene, Kowalski)
Primera implementación de un lenguaje de programación
lógico (Prolog, Colmenauer, 1972)
Breve historia de la Lógica Computacional
David Camacho Fernández
Lógica 11
Breve historia de la Lógica Computacional
Años 80 en adelante
Prolog alcanza su madurez (varias implementaciones
comerciales, libros, etc), su uso se empieza a generalizar y se
define un estándar
Programación lógica concurrente, Programación lógico-
funcional, programación lógica con restricciones, sistemas
distribuidos y orientación a objetos, uso de otras lógicas, ...
Programación Lógica
Constituye una parte fundamental de la Inteligencia Artificial ≡ construcción de sistemas informáticos capaces de reproducir comportamientos “inteligentes"
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)
2. 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)
Programación Lógica
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
problema sino simplemente especifican qué hay que resolver
David Camacho Fernández
Lógica 12
Programación Lógica
Escribir un programa lógico consiste en:
1. Declarar el conocimiento relativo al problema mediante una
serie de fórmulas lógicas (≡ construir una base de
conocimientos)
2. Representar el problema a resolver mediante una fórmula
lógica de tipo existencial (≡ realizar una consulta a la base de
conocimientos)
Programación Lógica
Funcionamiento de la programación lógica
La realización de una consulta se traduce en averiguar si la
fórmula existencial es una consecuencia lógica de las fórmulas
que constituyen la base de conocimientos
Para ello, los lenguajes lógicos incorporan mecanismos de
demostración automática, basados en sistemas de
demostración lógicos
Programación Lógica
Ventajas de la programación lógica
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
Programación Lógica
Ejemplo
Base de conocimientos
Madre(m1,m2);Madre(m2,m3);Madre(m2,m4)Padre(p1,m2); Padre(p1, p2)
Consultas
Top Related