You are on page 1of 12

David Camacho Fernndez

Temas Avanzados en Ingeniera Informtica I (Lgica)

Lgica Computacional
La mayora de las ideas fundamentales de la ciencia son esencialmente sencillas y, por regla

Tema 1: Introduccin

general pueden ser expresadas en un lenguaje comprensible para todos. Albert Einstein

Lgica Computacional
La Lgica Computacional aborda el estudio de la Lgica Matemtica desde la perspectiva de su aplicacin al mundo de la computacin

Definiciones
Lgica logos:razn, tratado o ciencia Lgica : Ciencia del Razonamiento La lgica surge con la filosofa: Debate entre el materialismo y el idealismo

La Lgica se utilizar para:

Como una forma de representacin del conocimiento

Para la implementacin de procesos que permitan la resolucin de problemas

Lgica

David Camacho Fernndez

Definiciones
Lgica Matemtica= La Lgica es la ciencia que tiene como objetivo el anlisis de los mtodos de razonamiento Lgica Matemtica = Lgica Formal = Lgica Simblica Lgica Formal= deduccin de conocimiento a partir de otros elementos. Ciencia que estudia la validez formal del razonamiento

Definiciones
Razonamiento (deduccin, inferencia, argumentacin): obtencin de nuevo conocimiento (conclusin) a partir de una serie de conocimientos previos (premisas)

Validez formal: un razonamiento es formalmente vlido si la conclusin es necesariamente verdadera cuando las premisas son verdaderas (es vlido en virtud de su forma -su estructura-, es decir, independientemente del conocimiento concreto del que trata). En este caso se dice que la conclusin es una consecuencia lgica de las premisas

Breve historia de la Lgica Formal


Demcrito (460-370 a.c) Fundador de la teora atomstica Scrates (469-339 a.c.) y Platn (427-347 a.c.): contra la corriente materialista La Lgica fue formalmente introducida en el marco de la Filosofa por el filsofo griego Aristteles (384-322 A.C.). Teora del raciocionio y de la demostracin: rigurosa diferenciacin entre lo verdadero y lo falso Tambin antecedentes en China y la India

Breve historia de la Lgica Formal


Edad Media Bacon (1561-1626): lgica inductiva Descartes (1596-1650), Mtodo Cientfico

El matemtico alemn Leibniz (1646-1716) fue el primero en plantear una verdadera formalizacin de la lgica como clculo matemtico

Lgica

David Camacho Fernndez

Breve historia de la Lgica Formal


El trabajo es completado a mediados del siglo XIX con los trabajos de los matemticos ingleses Boole y De Morgan, que aplicaron a la lgica mtodos algebraicos:

Breve historia de la Lgica Formal


El gran desarrollo de la lgica formal se produjo a finales del siglo XIX y primera mitad del XX, con las aportaciones de: Gottlob Frege(1848-1925): fundador de la lgica moderna y de la lgica de primer orden Bertrand Russell(1872-1957), Alfred North Whitehead(18611947): Principia Mathematica: lgica simblica Kurt Gdel (1906-1978): Teoremas de Gdel

G. Boole(1815-1864): Lgica Booleana

Augustus de Morgan(1806-1871): leyes distributivas de la negacin

Alfred Tarski (1902-1983), Fundamentacin de la metalgica y la metamatemtica Hilbert, Herbrand

Breve historia de la Lgica Formal


A partir de los aos 50 una parte importante de la investigacin en lgica se centra en el estudio de sus aplicaciones en computacin, en particular como herramienta de programacin
Lgica Clsica

Tipos de Lgicas
Considera nicamente construcciones declarativas, sobre las que podemos pronunciarnos acerca de su verdad o falsedad sin consideraciones de contexto

Es veritativo-funcional. Una expresin 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

Lgica

David Camacho Fernndez

Tipos de Lgicas
Lgica Clsica Su estudio se realiza en dos niveles de anlisis estructural: Se contemplan nicamente construcciones declarativas simples y compuestas: Lgica Clsica Proposicional En cada afirmacin simple se distingue qu se declara o de qu o quin se declara: Lgica Clsica de Predicados

Tipos de Lgicas
Lgica Clsica Proposicional (I) Representacin del lenguaje natural tomando como elemento bsico una representacin matemtica de las frases declarativas simples (o proposiciones) Ej: Jorge es listo (p)

1.

2.

Tipos de Lgicas
Lgica Proposicional (o de enunciados) (II) Estudia el comportamiento de las frmulas proposicionales, construidas exclusivamente a partir de: proposiciones atmicas (sentencias declarativas sin estructura interna que siempre son o bien ciertas o bien falsas) conectivas lgicas (y, o, no, implica, ...) Ejemplos de formalizacin de frases: llueve (p); me mojo (q) ; llueve o me mojo (p q); no llueve (p);si llueve, me mojo (p q)

Tipos de Lgicas
Lgica Proposicional (o de enunciados) (III) Ejemplos de formalizacin de razonamientos: Ejemplo A (razonamiento vlido)
Premisa 1: Si las rosas son rojas, las violetas son azules: p q Premisa 2: Las violetas no son azules: q Conclusin: Las rosas no son rojas: p

Ejemplo B (razonamiento NO vlido)


Premisa 1: Si los problemas son difciles, estudiamos: p q Premisa 2: Los problemas no son difciles: p Conclusin: No estudiamos: q

Lgica

David Camacho Fernndez

Tipos de Lgicas
Lgica Clsica de Predicados (I) Representacin del lenguaje natural tomando como elemento bsico los componentes de algunos tipos de proposicin (trminos y predicados)

Tipos de Lgicas
Lgica Predicados (de primer orden) (II)

Existen razonamientos vlidos que no son expresables ni analizables en lgica de proposiciones

Ej: Jorge
trmino

es listo
predicado

La lgica de predicados es una extensin de la lgica de proposiciones que tiene en cuenta la estructura interna de los enunciados

Tipos de Lgicas
Lgica 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 vlidos para todos los objetos de un cierto tipo o slo para algunos) funciones, que permiten expresar transformaciones de objetos constantes y variables, que permiten referirse a objetos concretos u objetos generales

Tipos de Lgicas
Lgica Predicados (de primer orden) (II) Ejemplo de formalizacin de una frase: a es el lmite de una sucesin f(n) si para todo > 0 existe un n0 tal que para todo n n0 se verifica abs(f(n) - a) < "

Lgica

David Camacho Fernndez

Tipos de Lgicas
Lgica Predicados (de primer orden) (II) Ejemplo de formalizacin de un razonamiento:

Tipos de Lgicas
Lgicas de orden superior En lgica de predicados de primer orden los cuantificadores slo se pueden aplicar a objetos (elementos de primer orden) Las lgicas de orden superior son extensiones de la lgica de predicados de primer orden que permiten aplicar cuantificadores a predicados definidos sobre objetos (segundo orden), predicados definidos sobre predicados (tercer orden), etc.

Premisa 1: Todas las personas son mortales Premisa 2: Scrates es una persona. P(s) Conclusin: Scrates es mortal. M(s)

(razonamiento formalmente vlido)

Tipos de Lgicas
Lgicas de orden superior Ejemplos: Todos los mltiplos de 8 comparten una propiedad interesante

Tipos de Lgicas
Lgicas No Clsicas Lgicas con mayor poder expresivo Extensiones de la Lgica Clsica: extienden el vocabulario y aaden nuevas leyes Lgica Temporal: considera contextos temporales

Todos los problemas filosficos tienen un rasgo en comn" Lgica Modal: considera contextos de necesidad o posibilidad Lgica Doxstica: considera contextos de creencia

Lgica

David Camacho Fernndez

Tipos de Lgicas
Lgicas No Clsicas Desviaciones de la Lgica Clsica: no mantienen algunas leyes de la Lgica clsica Lgica Intuicionista: no contempla como ley A o no A (ley del tercero excluido) Lgica 3-valuada: se consideran tres valores de verdad

Caractersticas de una Lgica


Para definir una lgica es necesario

Un lenguaje formal (sintaxis)

Una Semntica (o Teora de Modelos)

Lgicas que incorporan el tratamiento de la incertidumbre o la imprecisin: Lgicas multivaluadas, Lgicas probabilistas,
Lgicas borrosas (fuzzy) Lgica lineal: no es veritativo funcional

Una Teora de la demostracin

Automatizar las Deducciones

Caractersticas de una Lgica


Sintaxis Describe los elementos bsicos del lenguaje y las reglas que permiten construir las expresiones admitidas por el lenguaje, denominadas frmulas Semntica Permite asignar un significado (valor de verdad, cierto o falso) a las frmulas del lenguaje, y definir qu significa que una frmula o un razonamiento sean vlidos Sistemas de demostracin Son sistemas formales que permiten averiguar cundo una frmula es vlida o cundo un razonamiento es vlido

Lenguaje Formal
Alfabeto: Un alfabeto es cualquier conjunto finito o infinito numerable de smbolos (A)

Lenguaje universal sobre A: A* = An


nN

Lenguaje sobre A: es cualquier subconjunto del lenguaje universal: L A*

Lgica

David Camacho Fernndez

Lenguaje Formal
Los elementos de L se denominan frmulas bien formadas (fbf), o frmulas sintcticamente correctas (fsc)

Semntica o Teora de Modelos


Una semntica o Teora de modelos sobre un lenguaje L viene de dada por los siguientes tres elementos :

Un conjunto de valores semnticos (S) Equivalentemente, un lenguaje L viene determinado por: Un conjunto D S de valores destacados Alfabeto: Conjunto de smbolos admitidos en el lenguaje Un conjunto (I) de aplicaciones I : L S denominadas interpretaciones

Gramtica: Conjunto de reglas de formacin que determinan qu cadenasde smbolos son fbf en el lenguaje

Semntica o Teora de Modelos


Modelo. Una interpretacin es un modelo de un conjunto de fbfs si asigna a toda frmula de un valor destacado

Teora de la demostracin
Es un mecanismo deductivo, es decir, un mecanismo que permite obtener una fbf de otras sin hacer referencia a ninguna semntica Tiene como objetivo establecer la nocin sintctica de deduccin Sistemas axiomticos Sistemas de Deduccin Natural Sistemas de Gentzen

Frmula vlida: una fbf es vlida si toda interpretacin del lenguaje es un modelo para ella; se denota: |= Inferencia semntica: una fbf se deriva o infiere semnticamente de un conjunto de fbfs es modelo de . Se denota: |= , si todo modelo de

Lgica

David Camacho Fernndez

Sistema axiomtico
El mecanismo deductivo viene dado por los dos elementos siguientes:

Sistema axiomtico
Frmula vlida o teorema. Una demostracin es una secuencia finita de fbfs en la cual cada fbf es o un axioma o una consecuencia inmediata de una o varias frmulas precedentes

Axiomas: Conjunto finito o infinito numerable de fbfs de L

Si A es la ltima frmula de la secuencia, decimos que A es una frmula vlida o teorema; lo denotamos A Deduccin o derivacin. Una deduccin o derivacin de una fbf A desde un conjunto de fbfs es una secuencia finita de fbfs en la cual cada frmula es un axioma, un elemento de o una consecuencia inmediata de una o varias frmulas precedentes. Lo denotamos: A

Reglas de inferencia: Conjunto de reglas deduccin o transformacin que establecen cuando un fbf es consecuencia inmediata de una o varias frmulas

Correccin y completitud
Estas nociones se asocian a un sistema de demostracin definido sobre un lenguaje con una teora de modelos

Automatizacin de las demostraciones


Decidibilidad: Una lgica se dice decidible, si para ella es posible disear un algoritmo que determine si cualquier inferencia es, o no, vlida

Correccin: Una teora de la demostracin es correcta si todo lo derivable en ella es derivable en la semntica: |= A A Semidecidibilidad

Complejidad de los algoritmos de decisin Completitud: Una teora de la demostracin es completa si toda inferencia vlida en la semntica es derivable en ella: |= A A

Lgica

David Camacho Fernndez

Campos de aplicacin
Lgica computacional
Lgica de la programacin
Uso de la lgica formal para describir la semntica de los lenguajes de programacin, para verificar la correccin de programas o para probar propiedades de los programas (ejemplo: Lgica de Hoare,1969)

Campos de aplicacin
Lgica computacional

Anlisis, sntesis y verificacin de Programas Teora de la especificacin Programacin Lgica Inteligencia Artificial

Especificacin formal
Uso de la lgica formal para especificar formalmente programas (ejemplo: lenguaje de especificacin Z, 1989)

Control de Procesos Robtica

Breve historia de la Lgica Computacional


Aos 50 Nacimiento de la Inteligencia Artificial y del primer lenguaje de programacin declarativo (LISP) (McCarthy, 1959) Aparicin de los primeros sistemas de demostracin automtica Aos 60 Nuevos sistemas de demostracin automtica, ms eficientes y completos (Gilmore, Davis-Putnam, ...) Aparicin del sistema de Resolucin (Robinson, 1965): sistema muy eficiente, sencillo y de fcil implementacin (sistema utilizado por PROLOG)

Breve historia de la Lgica Computacional


Aos 70

Introduccin de la programacin lgica como mecanismo general de resolucin de problemas (Greene, Kowalski)

Primera implementacin de un lenguaje de programacin lgico (Prolog, Colmenauer, 1972)

Lgica

10

David Camacho Fernndez

Breve historia de la Lgica Computacional


Aos 80 en adelante

Programacin Lgica
Constituye una parte fundamental de la Inteligencia Artificial construccin de sistemas informticos capaces de reproducir comportamientos inteligentes"

Prolog alcanza su madurez (varias implementaciones comerciales, libros, etc), su uso se empieza a generalizar y se define un estndar

Programacin lgica concurrente, Programacin lgicofuncional, programacin lgica con restricciones, sistemas distribuidos y orientacin a objetos, uso de otras lgicas, ...

Programacin Lgica
Se basa en dos ideas fundamentales: El conocimiento" asociado con un sistema se puede expresar de forma declarativa mediante frmulas lgicas ( uso de la lgica como mecanismo de representacin del conocimiento) El razonamiento" de un sistema se traduce entonces en la realizacin de una serie de operaciones lgicas (deducciones) sobre dicho conocimiento ( uso de la lgica como mecanismo de resolucin de problemas)
1.

Programacin Lgica
A diferencia del paradigma de programacin 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 programacin lgico no describen cmo resolver el

2.

problema sino simplemente especifican qu hay que resolver

Lgica

11

David Camacho Fernndez

Programacin Lgica
Escribir un programa lgico consiste en:
1.

Programacin Lgica
Funcionamiento de la programacin lgica La realizacin de una consulta se traduce en averiguar si la frmula existencial es una consecuencia lgica de las frmulas que constituyen la base de conocimientos

Declarar el conocimiento relativo al problema mediante una serie de frmulas lgicas ( construir una base de conocimientos)

2.

Representar el problema a resolver mediante una frmula lgica de tipo existencial ( realizar una consulta a la base de conocimientos)

Para ello, los lenguajes lgicos incorporan mecanismos de demostracin automtica, basados en sistemas de demostracin lgicos

Programacin Lgica
Ventajas de la programacin lgica Ejemplo Los programas estn muy prximos a la especificacin de los problemas que pretenden resolver

Programacin Lgica
Base de conocimientos Madre(m1,m2);Madre(m2,m3);Madre(m2,m4) Padre(p1,m2); Padre(p1, p2)

Son por ello ms sencillos, ms fciles de entender y mantener y ms fiables Consultas

Lgica

12

You might also like