Entenderemos por lógica al estudio de las reglas que rigen el razonamiento válido a partir de sentencias que, a su vez, constituyen una base de conocimiento. Existen diferentes aproximaciones a la lógica, pero aquí la trataremos desde el punto de vista de la lógica matemática. Esto nos llevará al planteamiento de un sistema formal con el que concretaremos una serie de reglas para su representación y tratamiento. Todo sistema formal descansa sobre un conjunto de axiomas (sentencias primeras para las que se asume su veracidad sin necesidad de demostración), unas reglas de inferencia y un lenguaje formal que determina sin ambigüedades la representación y manipulación de las expresiones resultantes.
La lógica proposicional, lógica de orden 0 o cálculo proposicional es un sistema formal compuesto por variables proposicionales y conectores lógicos a partir de los cuales se pueden generar sentencias lógicas o proposiciones lógicas.
Las sentencias son declaraciones sobre algún hecho del mundo. Podemos tener sentecias muy simples como: Está lloviendo o algo más complejas como: Está lloviendo y no tengo paraguas. Para expresar las sentencias en lógica debemos utilizar algún lenguaje de representación. Por ejemplo:
P≡"Está lloviendo"Como vemos, las sentencias pueden ser hechos simples o podrían ser la combinación de dos, o más, hechos. A cada hecho lo llamaremos literal (o sentencia atómica) y lo representaremos con una letra.
Podemos unir literales en una sentencia mediante conectores y y o, que llamaremos conjunción (∧) y disyunción (∨) respectivamente. También podemos agruparlos usando paréntesis. Por ejemplo:
(P∨Q)∧SLos literales y las combinaciones de literales puedes ser negados mediante el operador negación (¬):
¬(P∨¬Q)Las sentencias también pueden ser conclusiones sobre la existencia de uno o varios hechos. El operador implicación (→) afirma uno, o varios, hechos consecuentes a partir de uno, o varios, hechos antecedentes. Por ejemplo, si está lloviendo entonces las calles están mojadas:
P→QEs importante destacar que la implicación lógica no conlleva ninguna relación de causalidad física. La implicación lógica es un conector que tan solo determina que si se da P entonces debe darse Q.
Además del lenguaje de representación con el que escribimos las sentencias, éstas también poseen una semántica. Entendemos comúnmente por semántica a la asignacion de significado a las palabras o frases. Aquí, semántica se utiliza de una manera más precisa para definir o conocer la verdad o falsedad de una sentencia. Por ejemplo, la sentencia P≡"Está lloviendo" puede ser verdadera o falsa. Es decir, cada literal representa un hecho que no implica de por sí que sea cierto siempre. El hecho se puede dar o no. Por tanto, P puede ser cierto si, efectivamente, está lloviendo o falso si no lo está. No debemos confundir la asignación de verdad o falsedad a un hecho con el operador negación. Para que nos resulte más sencillo, podemos imaginarnos a los literales como variables booleanas.
Podremos asignar verdadero o falso a cada literal en función de que ese hecho se esté realmente dando o no. Por tanto, vemos que el número de modelos distintos que podríamos tener es de dos elevado al número de literales de nuestra base de conocimiento, 2#literales.
La semántica también define las reglas para asignar los valores de verdad o falsedad a las sentencias. La siguiente tabla, llamada tabla de verdad muestra los valores para cada uno de los conectores:
PQ¬PP∨QP∧QP→QP↔QfalsofalsoverdaderofalsofalsoverdaderoverdaderofalsoverdaderoverdaderoverdaderofalsoverdaderofalsoverdaderofalsofalsoverdaderofalsofalsofalsoverdaderoverdaderofalsoverdaderoverdaderoverdaderoverdaderoLos operadores implicación y bicondicional merecen una reflexión sobre sus resultados en la tabla de verdad. ¿Cómo se interpreta que P→Q sea verdadero cuando P es falso y Q verdadero? Esto nos viene a decir que, que se dé el hecho Q no implica que deba darse el hecho P. Que las calles estén mojadas no implica que haya llovido obligatoriamente, puede ser que haya pasado antes un camión cuba limpiando las calles. Sin embargo, que P sea cierto, es decir, que haya llovido, indefectiblemente habrá mojado las calles. Pero eso no ha ocurrido, Q es falso. Por tanto, la implicación P→Q es falsa. O, dicho de otra forma, si P es verdadero y Q es falso, la implicación P→Q no es cierta. Cuando tanto P como Q son falsas la implicación es verdadera ya que si las calles están secas es seguro que no habrá llovido y no se viola la integridad de la implicación.
Llamamos base de conocimiento (BC) al conjunto de sentencias.
La inferencia es el proceso por el cual determinamos si una nueva sentencia α es verdadera a partir de los hechos de una BC:
BC⊨αSupongamos que tenemos las siguientes reglas/sentencias en nuestra BC:
R1:P→Q∨SR2:PLa siguiente tabla de verdad muestra los estados de verdad o falsedad de las reglas. Cada fila muestra una de las posibles ocho combinaciones de los valores de los literales.
PQSP→Q∨SPBCfalsofalsofalsoverdaderofalsofalsofalsofalsoverdaderoverdaderofalsofalsofalsoverdaderofalsoverdaderofalsofalsofalsoverdaderoverdaderoverdaderofalsofalsoverdaderofalsofalsofalsoverdaderofalsoverdaderofalsoverdaderoverdaderoverdaderoverdaderoverdaderoverdaderofalsoverdaderoverdaderoverdaderoverdaderoverdaderoverdaderoverdaderoverdaderoverdaderoNuestra BC puede verse como la conjunción de todas sus reglas, de esta forma:
BC≡R1∧R2Decimos que una sentencia es satisfecha cuando es verdadera para, al menos, un modelo. En el caso anterior vemos que las dos reglas son satisfechas con varios de los modelos. De la misma forma, decimos que una BC es satisfecha cuando todas sus sentencias son satisfechas simultáneamente por algún modelo. De nuevo, en el caso anterior vemos que esto ocurre con varios modelos.
Veamos ahora si es posible hacer alguna inferencia a partir de las reglas. Por ejemplo, ¿es posible inferir S? La respuesta es que no podemos asegurarlo. Si ahora introducimos la regla:
R3: ¬QLa cosa cambia. Tener P en la regla R2 significa que el consecuente de la regla R1 se da. Es decir, tenemos Q∨S. Como la regla R3 nos dice que ¬Q entonces tenemos S. Hemos inferido S.
Veamos la nueva tabla de verdad.
PQSP→Q∨SP¬QBCfalsofalsofalsoverdaderofalsoverdaderofalsofalsofalsoverdaderoverdaderofalsoverdaderofalsofalsoverdaderofalsoverdaderofalsofalsofalsofalsoverdaderoverdaderoverdaderofalsofalsofalsoverdaderofalsofalsofalsoverdaderoverdaderofalsoverdaderofalsoverdaderoverdaderoverdaderoverdaderoverdaderoverdaderoverdaderofalsoverdaderoverdaderofalsofalsoverdaderoverdaderoverdaderoverdaderoverdaderofalsofalsoLa tabla 2 nos permite ilustrar otra forma de realizar la inferencia, mediante los modelos. Nos fijamos en los modelos que satisfacen la BC. Si la sentencia que queremos inferir, en este caso S, tiene solo valores verdaderos siempre que la BC tenga también valores verdaderos podremos asegurar que la BC infiere a dicha sentencia. En la tabla 1 vemos cómo la BC tiene valores verdaderos (3) mientras que S tiene, en esos casos, valores verdaderos y falsos, por lo que la BC no puede inferir S.
Las tautologías son fórmulas o conjuntos de sentencias que son verdaderas para cualquier modelo posible. Por ejemplo:
PQSP∧Q∧S(P∧Q∧S)→SfalsofalsofalsofalsoverdaderofalsofalsoverdaderofalsoverdaderofalsoverdaderofalsofalsoverdaderofalsoverdaderoverdaderofalsoverdaderoverdaderofalsofalsofalsoverdaderoverdaderofalsoverdaderofalsoverdaderoverdaderoverdaderofalsofalsoverdaderoverdaderoverdaderoverdaderoverdaderoverdaderoForma normal para la conjunción | p∧V≡p | p∧F≡F |
Forma normal para la disyunción | p∨V≡V | p∨F≡p |
Complementarios | p∧¬p≡F | p∨¬p≡V |
Supresión de la implicación | p→q≡¬p∨q | |
Contraposición | p→q≡¬q→¬p | |
Supresión de la doble implicación | p↔q≡(p→q)∧(q→p) | |
Absorción | p∧(p∨q)≡p | p∧(p∨q)≡p |
Distributiva | p∨(q∧r)≡(p∨q)∧(p∨r) | p∧(q∨r)≡(p∧q)∨(p∧r) |
Doble negación | ¬¬p≡p | |
De Morgan | ¬p∨¬q≡¬(p∧q) | ¬p∧¬q≡¬(p∨q) |
(q→¬p)∧[(p∧q)→(p↔q)]
a) p∧q b) p→¬q c) p∨q d) p
(¬q→¬p)∧¬(¬p→¬q)
a) p→q b) p∨q c) ¬p∧q d) q
A diferencia de la lógica proposicional, la lógica de primer orden amplía la estructura interna de las sentencias incluyendo objetos, variables, propiedades/relaciones y cuantificadores.
Todos los hombres son mortales.Sócrates es un hombre.Luego Sócrates es mortal.
Veamos cómo la lógica de predicados puede expresar este razonamiento. Tomamos el objeto s como Sócrates, la propiedad H(x) como la de ser hombre y la propiedad M(x) como la de ser mortal. Ahora podemo expresar:
∀x[H(x)→M(x)]H(s)M(s)Son constantes y variables. Las constantes designan objetos concretos de mundo. Las variables referencian a cualquier objeto del Universo. Representaremos ambas por letras minúsculas.
Ejemplos:
p≡peram≡manzanan≡naranjax≡cualquier cosaEn cuanto a los predicados, estos se consideran propiedades que los términos y objetos pueden tener.
Ejemplos:
F(x)≡x es una frutaH(y)≡y es un hombreEs posible para los predicados tener dos o más "parámetros". En este caso, los predicados se definen como relaciones.
Ejemplos:
P(x,y)≡x e y son primosC(x,y)≡x es de color yEl cuantificador universal ∀ determina que todos los elementos de un dominio satifacen alguna condición.
Ejemplos:
Perro(x):x es un perroMamífero(y):y es un mamífero∀x[Perro(x)→Mamífero(x)]: Todos los objetos que son perros son también mamíferosEl cuantificador existencial ∃ indica que existe al menos un objeto de un dominio que satiface alguna condición.
Ejemplos:
Perro(x):x es un perroNegro(y):y es negro∃x[Perro(x)∧Negro(x)]: Algunos perros son negrosOjo, la frase anterior también podría leerse como: "Algunos objetos negros del domino son perros".
Escribe las siguientes frases en lógica de predicados.
No podemos utilizar directamente las mismas reglas de derivación que usamos en la lógica proposicional cuando tenemos expresiones con variables cuantificadas existencial o universalmente, pero sí podemos convertirlas antes en proposiciones.
Podemos prescindir del cuantificador durante la derivación
Podemos prescindir del cuantificador durante la derivación
Podemos restituir el cuantificador universal a un enunciado condicional.
P(a)→Q(a)∀x[P(x)→Q(x)]Podemos restituir el cuantificador universal a un enunciado conjuntivo.
P(a)∧Q(a)∃x[P(x)∧Q(x)]Todos los felinos son mamíferos.
Todos los tigres son felinos.
Luego, todos los tigres son mamíferos.
Suprimimos los cuantificadores mediante la especificación universal (EU)
(3)F(a)→M(a)EU(1)(4)T(a)→F(a)EU(2)Derivamos 3 y 4
(5)T(a)→M(a)SH(4,3)Al ser un enunciado condicional, podemos reasignarle el cuantificador universal
(6)∀x[T(x)→M(x)]GU(5)Todos los tiranos son crueles.
Algunos civiles son tiranos.
Luego, algunos civiles son crueles.
Suprimimos los cuantificadores
(3)T(a)→Cr(a)EU(1)(4)Ci(a)∧T(a)EE(2)Aplicamos las leyes de derivación
(5)T(a)Simp.(4)(6)Cr(a)MP(3,5)(7)Ci(a)Simp.(4)(8)Cr(a)∧Ci(a)Conj.(6,7)Mediante la generalización existencial, restituimos la variable
(9)∃x[Cr(x)∧Ci(x)]GE(8)Todos los lógicos son reflexivos y estudiosos.
Algunos lógicos son filósofos.
Luego, algunas personas reflexivas son filósofos.
Derivaciones:
(3)L(a)→(R(a)∧E(a))EU(1)(4)L(a)∧F(a)EE(2)(5)L(a)Simp.(4)(6)R(a)∧E(a)MP.(3,5)(7)R(a)Simp.(6)(8)F(a)Simp.(4)(9)F(a)∧R(a)Conj.(7,8)(10)∃x[F(x)∧R(x)]GE.(9)Inteligencia artificial. Un enfoque moderno. 2ª edición. Stuart Russell y Peter Norving