Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Lógica Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy.

Slides:



Advertisements
Presentaciones similares
Taller de Lógica Facultad de Filosofía y Letras, UBA. 2do cuatrimestre de 2006 Facultad de Filosofía y Letras, UBA.
Advertisements

La aritmetización de la sintaxis
Seminario: Interpretaciones y Modelos Conjuntistas
INTELIGENCIA ARTIFICIAL
Diseño y análisis de algoritmos
Matemáticas Computacionales
Matemáticas Computacionales
equivalencia material; y b) equivalencia lógica
El método de la deducción
Lógica ¿Para qué sirve? Para distinguir un razonamiento correcto de uno incorrecto. Considera la forma o estructura del razonamiento y no su contenido.
Proposición Atómica: Cuando se puede representar con una variable proposicional. Entre sus signos no contiene ningún conectivo lógico Proposición molecular:
funciones Por: Carlos Alberto García Acosta
Ciencia, lenguaje y lógica 2
LÓGICA PROPOSICIONAL.
Mtra. Carolina Galaviz Inzunza Matemática Discreta
CARLOS ANDRES MONTENEGRO
Curso de Matemática Propedeútica
Lic. Carmen Aguinaga Doig
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Matemática Ing. Alfonso Vicente, PMP
Lógica Proposición Ejemplos
Los problemas semánticos de las expresiones del Lenguaje Proposicional
CAPITULO 2 La Representación del Conocimiento
Fundamentos de Lógica ¿Qué es una proposición?
Lógica Proposicional.
DEPARTAMENTO DE FORMACIÓN GENERAL.
PROGRAMACIÓN LÓGICA.
UNIVERSIDAD POLITÉCNICA DE PACHUCA MAESTRÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIONES Matemáticas Discretas M. en C. Arturo Lezama León Maestría.
INSTITUCION EDUCATIVA LAS FLORES
Semántica Proposicional: Repaso Ciertas proposiciones pueden tener otras proposiciones como sus argumentos: QUERER ( X, P ) X = RODOLFO P = COMER ( Y,
Aporte de la Lógica a la Matemática
TALF 2 Introducción Roberto Moriyón. Objetivo general del curso Estudiar los límites de los algoritmos: –Hay más algoritmos de los que conocemos? Estudiar.
LÓGICA DOCENTE: PATRICIA ISABEL AGUILAR INCIO. CICLO 2012– I.
LÓGICA PROPOSICIONAL.
U. Diego Portales Elementos de lógica Prof. Haroldo Cornejo O.
LOGICA DE ENUNCIADO LOGICA DE PREDICADO
ESCUELAS FILOSOFICAS Y CAMBIOS PARADIGMATICOS II
Lógica Proposicional Profesor: Amador Alejandro Gonzáles Piscoya
LÓGICA PROPOSICIONAL Y PREDICADOS
Campus Estado de México—Raúl Monroy Resolución, la regla de inferencia y el cálculo Raúl Monroy.
Sesión 1 Tema: Nociones de Lógica Carrera: Técnico en Electricidad
Proposiciones lógicas
LÓGICA PROPOSICIONAL El ser humano , a través de su vida diaria se comunica con sus semejantes a través de un lenguaje determinado (oral, escrito, etc.)
Lógica de proposiciones, deducción natural
Operadores lógicos en PHP Programación en Internet II.
Lógica de enunciado La lógica de enunciados o de proposiciones es el nivel más básico de análisis lógico y descansa exclusivamente en las conectivas.
Fodor  Reduccionismo demasiado fuerte en su intrepretación de la unidad de la ciencia. . Es incompatible con las resultados probables de las ciencias.
Curso de Teoría del Autómata
Proposiciones simples y proposiciones compuestas
MATEMATICA I Lógica Matemticas Prof Rubén Millán
Negación: ¬. (También: -, ~ ) Representa la partícula lingüística no o cualquiera otras partículas que incluyan la idea de negación. Al construir la negación.
LÓGICA SIMBÓLICA SE HA ESTABLECIDO QUE EN EL PROCESO DEL RAZONAMIENTO LÓGICO, LA VERDAD SÓLO SE OBTIENE SI SE CUMPLEN DOS CONDICIONES: 1.- LAS PROPOSICIONES.
1. Asistentes de Pruebas para Lógicos y Matemáticos I
CÁLCULO PROPOSICIONAL
Lógica.
Matemáticas Computacionales
Lógica proposicional Docente: Edgar Duarte.
Pruebas de hipótesis.
Patricio A. Castillo José M. Galarce Agosto 23 de 2008 Segunda Clase.
Unidad 7 Introducción a la lógica simbólica (Cálculo proposicional)
Lógica Proposicional.
Abril CV11 MATEMÁTICAS DISCRETAS MARTES 20:30 – 22:00 MIERCOLES 17:00 – 19:00 JUEVES 16:30 – 17:30 M. en C. José del Carmen.
M.J. Frápolli. Fundamentos de Filosofía del Lenguaje
Décimo Curso de Programación Básica con NQC “Segunda Clase” Cristián Arenas Ulloa Agosto 29 de 2009.
Lógica Simbólica Conceptualización.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 5.
Principios logicos.
Los principios lógicos obedecen a la coherencia entre los elementos del pensamiento que requiere ciertas leyes o cimientos para pensar coherentemente.
 Dicho principio lógico podemos formularlo de la siguiente forma: A es A, en la cual la variable A denota un pensamiento o contenido concreto cualquiera.
Principios lógicos Los “principios lógicos” constituyen las verdades primeras, “evidentes” por sí mismas, a partir de las cuales se construye todo el edificio.
Hecho por: Daniel Rosero Luis Cambo Byron Centeno
Transcripción de la presentación:

Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Lógica Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy

Agenda ¿Qué es la lógica? ¿Por qué es importante? Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Agenda Definiciones Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Agenda Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ¿Para qué sirve todo esto? Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Agenda Necesidad del valor NULL Problemas del valor NULL Lógica trivalorada Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Agenda Aplicabilidad en la disciplina de Bases de Datos Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Agenda ¿Qué es la lógica? ¿Por qué es importante? Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Introducción La lógica estudia los principios del razonamiento, la demostración y la inferencia. Toda teoría es un sistema de sentencias o declaraciones, que se aceptan como verdaderas y pueden ser utilizadas para obtener nuevas declaraciones utilizando reglas bien definidas. Es importante en computación, porque nosotros debemos enseñar a razonar a las máquinas. Es importante en la disciplina de Bases de datos, porque trabajaremos con una lógica diferente a la clásica bi-valorada.

Agenda Definiciones Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Valores, variables y tipos Un Valor es una constante individual, con un significado bien definido (por ejemplo, el entero 17). Un Valor no se puede modificar, ya que no sería el mismo Valor. Los Valores se codifican de alguna manera y pueden ser arbitrariamente complejos. “El peso atómico del Helio es 4,0026”

Valores, variables y tipos Una Variable mantiene un Valor, pero puede mantener múltiples Valores a lo largo del tiempo. Las Variables sí se pueden modificar; cambiando el Valor que mantienen. Las Variables tienen nombre, lo que nos permite hablar (o predicar) sobre ellas. v_peso_atomico := 4,0026; If (v_peso_atomico < 28,88) then print “Este elemento es más liviano que el aire” end if

Valores, variables y tipos Diremos que todas las Variables tienen un Tipo, y diremos que el Tipo de una Variable es el conjunto de todos los Valores que la Variable puede mantener. Ejemplos comunes de tipo son strings, números enteros o fechas. define v_peso_atomico numeric(12,9); define v_descubierto date; define v_nombre varchar(20); Una base de datos se puede ver como una variable; en cada momento del tiempo tiene un determinado valor (de un tipo muy complejo, determinado por el esquema de la base).

Agenda Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ¿Para qué sirve todo esto? Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Proposiciones y predicados Una proposición es una sentencia declarativa que puede ser verdadera o falsa, y se debe poder decidir cuál de las dos. Podemos determinar si una sentencia S es declarativa verificando que tenga sentido la pregunta ¿es cierto que S? Diremos que las proposiciones tienen un valor de verdad, que puede ser verdadero o falso. Un ejemplo de proposición es "1 + 1 = 3", la cual obviamente, es falsa…

Proposiciones y predicados Un predicado, a diferencia de una proposición, admite variables de las que no se conoce su valor de verdad. Estas variables se conocen como parámetros del predicado. Un ejemplo de predicado es "X aprobará Bases de Datos", y podemos suponer que el valor de verdad de este predicado dependerá del parámetro X, que varía en el conjunto de estudiantes. Si sustituye el lector la variable X por su nombre (esto se denomina instanciar un predicado con valores) obtendrá una proposición. Queda como tarea averiguar el valor de verdad de la proposición que obtiene.

Proposiciones y predicados Hay MUCHO más: Lógica para Ingeniería en Computación Fuente: http://www.fing.edu.uy/inco/cursos/logica/admin/Programa.pdf, 2012-03-14

Proposiciones y predicados Los parámetros de un predicado también se denominan variables libres, y se pueden cuantificar (esto es, vincular de alguna forma a un conjunto de valores). No permitiremos algunos tipos especiales de declaraciones como "esta proposición es falsa", ya que son declaraciones auto referenciadas que generan paradojas con las que no queremos lidiar. Tampoco declaraciones mal formadas como la proposición "3 es un elemento de 4" ya que 4 no es un conjunto, o "el conjunto de todas las cosas...“ ya que "todas las cosas“ es un conjunto que no podemos definir matemáticamente.

Proposiciones y predicados Recordemos los conectivos lógicos básicos de la lógica proposicional: conjunción (AND), disyunción (OR) y negación (NOT). Los conectivos lógicos son operadores lógicos; toman predicados y devuelven predicados, permitiendo construir (en un proceso inductivo) predicados compuestos a partir de predicados simples (predicados sin conectivos). El significado preciso de los conectivos puede ser definido mediante tablas de verdad, que son estudiadas en los cursos de lógica.

Proposiciones y predicados Tabla del AND

Proposiciones y predicados Tabla del OR

Proposiciones y predicados Tabla del NOT Queda como tarea recordar las tablas de verdad de la implicancia y de la equivalencia

Proposiciones y predicados Una implicancia se puede considerar como un orden entre predicados, determinando uno más fuerte y uno más débil. Si se tiene una implicancia verdadera P  Q se dice que P es más fuerte que Q (o que Q es más débil que P). Por ejemplo, en la implicancia "X > 42  X > 0", decimos que "X > 42" es más fuerte que "X > 0". Esto es consistente con la noción de cantidad de información, el primer predicado contiene más información (es más fuerte) que el segundo.

Proposiciones y predicados Dados dos predicados P y Q no siempre se cumple que P  Q o que Q  P, por lo que la implicancia es un orden parcial en el conjunto de los predicados, pero no es un orden total. Hay un predicado más fuerte que todos los demás y es valor F (falso), ya que para cualquier Q, se cumple que F  Q. De manera análoga, hay un predicado más débil que todos los demás y es el valor V (verdadero), ya que para cualquier P, se cumple que P  V.

Proposiciones y predicados Hay proposiciones (y de la misma forma predicados) que son equivalentes, e.g. los predicados "X < 10 OR X > 20" y "NOT(X >= 10 AND X <= 20)" son equivalentes. Hay proposiciones (y de la misma forma predicados) que siempre son verdaderas, a los que llamamos tautologías; y en oposición contradicciones, que siempre son falsas. Por ejemplo "1 = 1" es una tautología, mientras que "1 = 2" es una contradicción

Proposiciones y predicados Una declaración puede ser rescrita en una forma equivalente, pero que tal vez requiera menos trabajo de cómputo para ser evaluada por una computadora. Por ejemplo, el predicado "X < 2 OR X > 1" es una tautología, y es equivalente a V. Lo que se puede ganar con una rescritura, es que si X varía en un conjunto de 100 elementos sería necesario evaluar 200 desigualdades, y calcular 100 veces un conectivo OR para hallar el valor de verdad del predicado en función de cada valor del parámetro X. Si se rescribe el predicado, no importa dónde varíe X, se sabe de antemano que para cualquier X el predicado será verdadero.

Proposiciones y predicados Normalmente, se puede evaluar de forma sistemática si se puede aplicar alguna tautología conocida, o regla de reescritura, como idempotencia ( P AND P es equivalente a P, así como P OR P es equivalente a P), doble negación ( NOT NOT P es equivalente a P), etc El siguiente ejemplo es bastante avanzado por el momento, pero ya podemos comprender por qué el optimizador de DB2 ni siquiera accede a la tabla para resolver una consulta.

Proposiciones y predicados create table numeros(n int); insert into numeros values (1), (2), (3), (4), (5), (6), (7); select n from numeros where n < 2 Estimated Cost = 7.582313 Optimizer Plan: RETURN ( 1) | TBSCAN ( 2) Table: DB2INST9 NUMEROS select n from numeros where n < 2 and n > 3 Estimated Cost = 0.000177 Optimizer Plan: RETURN ( 1) | TBSCAN ( 2) TFunc: SYSIBM GENROW

Agenda Necesidad del valor NULL Problemas del valor NULL Lógica trivalorada Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Valores nulos Hasta aquí todo es sencillo, las proposiciones lógicas pueden ser verdaderas o falsas, y decimos que trabajamos en una lógica bi-valorada. Sin embargo, en sistemas de información, muchas veces desconocemos alguna información, o no aplica (por ejemplo, fecha de deceso en una base de personas). Admitiremos la existencia de un valor que no es verdadero ni falso, sino que representa la ausencia de información, sea porque es desconocido (UNKNOWN) o simplemente porque no aplica. Llamaremos NULL a este valor.

Valores nulos Es importante notar que el valor desconocido es un valor que aplica a todos los tipos de datos, y de naturaleza diferente al resto de los valores del tipo. Por ejemplo, NULL no debería ser igual al string vacío o al número entero 0 (se debería codificar de una forma diferente). Sin embargo... Oracle implementa el NULL como un string vacío “Oracle Database currently treats a character value with a length of zero as null. However, this may not continue to be true in future releases, and Oracle recommends that you do not treat empty strings the same as nulls.” Fuente: http://docs.oracle.com/cd/E11882_01/server.112/e17118/sql_elements005.htm

Valores nulos La introducción del valor de verdad desconocido hace que debamos repensar la semántica de las operaciones lógicas. Por ejemplo, ¿qué debería devolver el OR entre falso y desconocido? Diremos que cada vez que el valor de verdad del resultado de una operación lógica dependa del valor que pudiera tener algún operando desconocido, el resultado será desconocido (para la semántica de la lógica tri-valorada conviene pensar en NULL como un valor desconocido). Así, debemos construir nuevas tablas de verdad, extendidas, para admitir valores desconocidos.

Valores nulos Tabla del AND, extendida

Valores nulos Tabla del OR, extendida

Valores nulos Tabla del NOT, extendida

Valores nulos Más allá de las operaciones lógicas, al admitir el valor desconocido en variables de cualquier tipo, se nos presentan otros problemas como ¿cuál debería ser la suma de 5 y NULL? En general, cualquier operación que involucre un NULL devolverá NULL. En ocasiones se debe devolver un valor de verdadero o falso, pero no desconocido. Por ejemplo, si tenemos que decidir si NULL es mayor que 9 y no podemos devolver NULL, tendremos que tomar una decisión. En general, se asume que cualquier comparación con NULL es falsa, pero por supuesto que esto nos traerá problemas.

Valores nulos En nuestra lógica bi-valuada teníamos que proposiciones y predicados del tipo P OR NOT P eran tautologías, pero consideremos ahora que P tiene el valor NULL... y haga cuentas !! Sólo para hacer énfasis en la complejidad del asunto, imaginemos que queremos realizar una partición del conjunto de personas; los mayores de edad y los menores de edad. Supongamos que tenemos una función para contar (COUNT), y que al contar las personas de 18 años o más el resultado nos da 37 personas. Por otro lado, las personas de menos de 18 años resultan ser 11. ¿Cuál es el total de personas?

Valores nulos Podríamos deducir que el total de personas era de 37 + 11 = 48, sin embargo esto es cierto solamente si no había personas con edad desconocida (NULL). Para éstas, las comparaciones de desigualdad se asumirán falsas, por lo que no sumarán en ninguno de los dos conjuntos, y el total de personas podría ser mayor del que se dedujo. En otras palabras, antes podíamos asumir que un conjunto se podía particionar en dos subconjuntos: los que cumplían P y los que cumplían NOT P. Con nulos, un conjunto se divide en los que cumplen P, los que cumplen NOT P y los que por tener nulos no cumplen P ni tampoco NOT P.

Valores nulos En resumen, la introducción del valor NULL es un mal necesario, y se debe tener mucho cuidado cuando los datos pueden admitir valores NULL. En los DBMSs existen formas de restringir los tipos de datos para que no admitan valor NULL, y a veces se recomienda hacer esto para evitar el valor NULL tanto como sea posible, especialmente para evitar errores como el del ejemplo anterior…

Agenda Aplicabilidad en la disciplina de Bases de Datos Introducción Valores, variables y tipos Proposiciones y predicados Valores nulos Conclusiones

Conclusiones En el mundo real, las consultas a una Base de Datos se basan y se parecen mucho a la lógica de predicados Algunas construcciones de la lógica como las equivalencias, tautologías y contradicciones se pueden utilizar para rescribir los predicados y optimizar las búsquedas La comprensión de la lógica trivalorada es fundamental para trabajar con Bases de Datos