La lógica de segundo orden: Sintaxis

Documentos relacionados
Teorema de incompletitud de Gödel

Repaso de Lógica de Primer Orden

Nociones de Localidad

Lógica de Primer Orden

Lógica de primer orden: Repaso y notación

Un tercer problema NP-completo: Programación entera

Teoría de Modelos Finitos: Motivación

Relaciones IIC1253. IIC1253 Relaciones 1 / 32

PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE ESCUELA DE INGENIERIA DEPARTAMENTO DE CIENCIA DE LA COMPUTACION

Clases de Complejidad

Motivación: Problemas de optimización

Nuestro objetivo es demostrar que autómata = lógica. IIC3260 Una Aplicación de Teoría de Modelos Finitos: Lógica = Autómata 35 / 60

Nuestro objetivo es demostrar que autómata = lógica Qué significa esto? Queremos encontrar una lógica que defina a los lenguajes regulares

Algoritmos en teoría de números

El teorema de isomorfismo

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64

Lógica proposicional: Lectura única

Teoría de la Computación puesta en Práctica

Multiplicación de matrices simétricas

Eliminación de cuantificadores

Lógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42

Lógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42

Repaso de Lógica de Primer Orden

La Jerarquía Polinomial

El problema de satisfacción

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Leyes 0-1 IIC3260. IIC3260 Leyes / 77

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Clases de Complejidad

3-Coloring es NP-Completo

Introducción a la Complejidad Computacional

Juegos de Ehrenfeucht-Fraïssé

Máquinas de Turing Definición y descripción

Resolución Proposicional

Un tercer ejemplo: verificación de primalidad

Introdución a la Lógica Proposicional

Teorías decidibles. Definición. Ejercicio

Problemas computacionales, intratabilidad y problemas NP completos. Febrero Facultad de Ingeniería. Universidad del Valle

Clases de complejidad computacional: P y NP

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Sintaxis y semántica

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

Tema 8: Teorema de Herbrand. Tableros en lógica de primer orden

Capítulo 8 Sistemas completos de contectivos

Análisis lógico Cálculo de proposiciones

Benemérita Universidad Autónoma de Puebla

Tema IV: NP completitud

IIC2213. IIC2213 Teorías 1 / 42

Análisis de Algoritmos

Análisis de Algoritmos

Lógica proposicional. Semántica Lógica 2018

Problemas NP-completos

Demostrando cotas inferiores: Arboles de decisión

Formas clausulares Teoría de Herbrand Algoritmo de Herbrand Semidecidibilidad. Teoría de Herbrand. Lógica Computacional

Lógica Matemática. Contenido. Definición. Finalidad de la unidad. Proposicional. Primer orden

Análisis y Diseño de Algoritmos

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

11.SISTEMAS DE ECUACIONES LINEALES DEFINICIÓN DE ECUACIÓN LINEAL DEFINICIÓN DE SISTEMA LINEAL Y CONJUNTO SOLUCIÓN

Tema 8: Teorema de Herbrand. Tableros en lógica de primer orden

Leyes 0-1 IIC3263. IIC3263 Leyes 0-1 1/77

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

Una pregunta pendiente

Capítulo 8: Sistemas completos de contectivos

Problemas recursivamente enumerables

Sintaxis LÓGICA COMPUTACIONAL CÁLCULO DE PROPOSICIONES. Funciones boolenas. Semántica

Conceptos básicos de paralelismo

Lógicas Modales. Usos de Bisimulaciones

Problemas recursivamente enumerables

Introducción a la Complejidad Computacional

Lógica de predicados

Cálculo de predicados. Lógica de predicados. Cálculo de predicados. Cálculo de predicados 08/06/2011

Prueba de teoremas Fórmula a. Fórmula b. Chequeo de modelos. Construcción de modelos 20/04/2010. Prueba de teoremas (Theorem provers)

INAPROXIMABILIDAD. Curso: Algoritmos de aproximación Docente: Pablo Romero Estudiante: Daniel La Buonora Octubre de 2016

Teoremas: Condiciones Necesarias, Condiciones Suficientes y Condiciones Necesarias y Suficientes

Tecnología de la Programación

Funciones GOTO computables

Introducción a la complejidad computacional

Lógica Modal Computacional. Usos de Bisimulaciones

Lógica Proposicional: Deducciones formales

Máquinas de Turing no-determinísticas (MTND)

Introducción. Máquinas de Turing. Turing restringidas. Turing y Computadoras INAOE (INAOE) 1 / 49

Introducción a la Teoría de Códigos

RSA funciona correctamente

Una Introducción a las Lógicas Híbridas

Límite superior y límite inferior de una sucesión

Descripción de los Lenguajes Aceptados por Autómatas

Máquinas de Turing. 18 de junio de 2015

Definiciones generales. Alfabeto de la lógica proposicional. Conectivos. Conectivos

Problemas en P y NP. Marcos Kiwi. Semestre Otoño U. Chile

Lógica Proposicional. Significado de una Fórmula Proposicional

Teorema de Lagrange. En esta sección demostramos algunos hechos básicos sobre grupos, que se pueden deducir de la definición

Lógica Proposicional

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Práctico 6 Lógica de Predicados

Clase Práctica 1 - Inducción estructural, conectivos adecuados y consecuencia - Viernes 23 de marzo de 2012

IIC1253. IIC1253 Una introducción a la teoría de números (y a la criptografía) 1/45

Introducción a la Lógica y la Computación

Transcripción:

La lógica de segundo orden: Sintaxis Dado: Vocabulario L Definición La lógica de segundo orden (LSO) sobre L es definida como la extensión de LPO que incluye las siguientes reglas: Si t 1,..., t k son L-términos y X es una variable de segundo orden de aridad k (vale decir, una relación con k 1 argumentos), entonces X(t 1,...,t k ) es una fórmula en LSO Si ϕ es una fórmula en LSO y X es una variable de segundo orden de aridad k, entonces Xϕ y Xϕ son fórmulas en LSO IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 41 / 128

La lógica de segundo orden: Semántica Notación Dada una estructura A con dominio A, una asignación σ es una función que asigna: un valor en A a cada variable x de primer orden: σ(x) A un subconjunto de A k a cada variable X de segundo orden con k argumentos: σ(x) A k IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 42 / 128

La lógica de segundo orden: Semántica Definición La definición de la semántica de LSO incluye tres casos adicionales. Para una variable de segundo orden X con aridad k: (A,σ) = X(t 1,...,t k ) si y sólo si (σ(t 1 ),...,σ(t k )) σ(x) (A,σ) = Xϕ si y sólo si existe S A k tal que (A,σ[X/S]) = ϕ (A,σ) = Xϕ si y sólo si para todo S A k, se tiene que (A,σ[X/S]) = ϕ IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 43 / 128

La lógica de segundo orden: Ejemplo Qué podemos decir en LSO? Sea L = {E(, )} y P el conjunto de todas L-estructuras A tal que E A es una relación de sucesor. Vamos a demostrar que esta propiedad es expresable en LSO IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 44 / 128

La lógica de segundo orden: Ejemplo Qué podemos decir en LSO? Sea L = {E(, )} y P el conjunto de todas L-estructuras A tal que E A es una relación de sucesor. Vamos a demostrar que esta propiedad es expresable en LSO Sea: first(x) = y E(y,x) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 44 / 128

La lógica de segundo orden: Ejemplo Y sea: [( conectado(x,y) = P P(x) ) u v (P(u) E(u,v) P(v)) ] P(y) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 45 / 128

La lógica de segundo orden: Ejemplo Y sea: [( conectado(x,y) = P P(x) ) u v (P(u) E(u,v) P(v)) ] P(y) Entonces la siguiente L-oración Φ en LSO define P: ( ) Φ = x y z E(x,y) E(x,z) y = z ( ) x first(x) y (x y conectado(x,y)) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 45 / 128

Lógica de Segundo Orden Existencial Dado: Vocabulario L Definición El fragmento existencial de la lógica de segundo orden ( LSO) es definido como el conjunto de todas las fórmulas en LSO sobre L de la forma: X 1 X 2 X l ϕ donde ϕ es una fórmula en LPO sobre el vocabulario L = L {X 1,...,X l } IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 46 / 128

Fragmento existencial de LSO: Ejemplo Qué podemos decir en LSO? Sea L = {E(, )} y P el conjunto de todas L-estructuras A tal que E A es una relación de sucesor. Podemos expresar esta propiedad en LSO? IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 47 / 128

Fragmento existencial de LSO: Ejemplo Qué podemos decir en LSO? Sea L = {E(, )} y P el conjunto de todas L-estructuras A tal que E A es una relación de sucesor. Podemos expresar esta propiedad en LSO? La siguiente L-oración Ψ en LSO define P: Ψ = L x L(x,x) x y z (L(x,y) L(y,z) L(x,z)) x y (L(x,y) x = y L(y,x)) x y (E(x,y) (L(x,y) z (L(x,z) L(z,y)))) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 47 / 128

Complejidad de la LSO Teorema 1. Para cada vocabulario L y L-oración ϕ en LSO, se tiene que L ϕ está en NP 2. Existe un vocabulario L y una L-oración ϕ en LSO tal que L ϕ es NP-completo IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 48 / 128

Complejidad de la LSO Teorema 1. Para cada vocabulario L y L-oración ϕ en LSO, se tiene que L ϕ está en NP 2. Existe un vocabulario L y una L-oración ϕ en LSO tal que L ϕ es NP-completo Ejercicio Demuestre la primera parte del teorema IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 48 / 128

Complejidad de la LSO Teorema 1. Para cada vocabulario L y L-oración ϕ en LSO, se tiene que L ϕ está en NP 2. Existe un vocabulario L y una L-oración ϕ en LSO tal que L ϕ es NP-completo Ejercicio Demuestre la primera parte del teorema Vamos a demostrar la segunda parte del teorema... IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 48 / 128

NP-hardness de LSO: Demostración Sea L = {E(, )} E es utilizado para almacenar grafos IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 49 / 128

NP-hardness de LSO: Demostración Sea L = {E(, )} E es utilizado para almacenar grafos Sea Φ la siguiente L-oración en LSO: A B C x (A(x) B(x) C(x)) x ( A(x) B(x)) x ( A(x) C(x)) x ( B(x) C(x)) x y ((E(x,y) A(x)) A(y)) x y ((E(x,y) B(x)) B(y)) x y ((E(x,y) C(x)) C(y)) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 49 / 128

NP-hardness de LSO: Demostración Lema L Φ es NP-hard Demostración: Reducimos desde el problema de 3-coloración de grafos. Dado un grafo G = (N,A), A G se define como una L-estructura tal que: El dominio de AG es N E A G = A Se tiene que G es 3-coloreable si y sólo si A G L Φ (es decir, A G = Φ) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 50 / 128

Una segunda mirada a LPO Acabamos de demostrar que la LSO no es una buena alternativa para un lenguaje de consulta. La complejidad de los datos del fragmento existencial es NP Sabemos que la complejidad de los datos de la LPO está en LOGSPACE, por lo que LPO es una mejor alternativa Qué tan buena es esta alternativa? LPO está cerca de PTIME? Al menos cerca de LOGSPACE? IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 51 / 128

Una segunda mirada a LPO Vamos a demostrar que la LPO no es una buena alternativa en términos de expresividad. IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 52 / 128

Una segunda mirada a LPO Vamos a demostrar que la LPO no es una buena alternativa en términos de expresividad. Vamos a introducir una noción de complejidad basada en circuitos Booleanos IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 52 / 128

Una segunda mirada a LPO Vamos a demostrar que la LPO no es una buena alternativa en términos de expresividad. Vamos a introducir una noción de complejidad basada en circuitos Booleanos Vamos a definir clases de complejidad usando esta noción IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 52 / 128

Una segunda mirada a LPO Vamos a demostrar que la LPO no es una buena alternativa en términos de expresividad. Vamos a introducir una noción de complejidad basada en circuitos Booleanos Vamos a definir clases de complejidad usando esta noción Vamos a mostrar que la LPO vive en una clase de complejidad que está propiamente contenida en LOGSPACE IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 52 / 128

Circuitos Booleanos Definición Un circuito Booleano es un grafo dirigido acíclico tal que: Cada nodo sin arcos de entrada tiene etiqueta 0 ó 1 Cada nodo con arcos de entrada tiene etiqueta, ó Existe un único nodo sin arcos de salida IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 53 / 128

Circuitos Booleanos Definición Un circuito Booleano es un grafo dirigido acíclico tal que: Cada nodo sin arcos de entrada tiene etiqueta 0 ó 1 Cada nodo con arcos de entrada tiene etiqueta, ó Existe un único nodo sin arcos de salida Notación Nodo de entrada: Nodo sin arcos de entrada Nodo interior: Nodo con arcos de entrada Nodo de salida: Nodo sin arcos de salida IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 53 / 128

Circuito Booleano: Ejemplo 0 1 1 1 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 54 / 128

Circuitos Booleanos como funciones Cada circuito Booleano puede ser interpretado como una función: Toma como entrada los valores en los nodos de entrada Asocia a cada nodo interior u el resultado de evaluar la etiqueta de u sobre los valores asociados a los nodos con arcos dirigidos a u Tiene como resultado el valor asociado al nodo de salida IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 55 / 128

Circuitos Booleanos como funciones: Ejemplo 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 56 / 128

Circuitos Booleanos como funciones Circuito en el ejemplo anterior representa la función: { 1 x 1 = y 1 y x 2 = y 2 f (x 1,x 2,y 1,y 2 ) = 0 en otro caso Para indicar la función que representa un circuito: Reemplazamos las etiquetas 0 y 1 por variables Usamos un arco sin nodo de destino para indicar la salida IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 57 / 128

Circuito Booleano como función: Ejemplo x 1 x 2 y 1 y 2 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 58 / 128

Circuitos Booleanos como funciones: Terminología Definición Tamaño de un circuito: Número de nodos con etiquetas, y Profundidad de un circuito: Largo del camino más largo entre un nodo de entrada y el nodo de salida IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 59 / 128

Circuitos Booleanos como funciones: Terminología Definición Tamaño de un circuito: Número de nodos con etiquetas, y Profundidad de un circuito: Largo del camino más largo entre un nodo de entrada y el nodo de salida Ejemplo El tamaño es 11 y la profundidad es 4 en el circuito de la transparencia anterior. IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 59 / 128

Circuitos Booleanos como funciones: Forma normal Usando (α β) α β y (α β) α β podemos demostrar que cada circuito es equivalente a otro que sólo tiene negaciones en el primer nivel. IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 60 / 128

Circuitos Booleanos como funciones: Forma normal Usando (α β) α β y (α β) α β podemos demostrar que cada circuito es equivalente a otro que sólo tiene negaciones en el primer nivel. Ejemplo x 1 x 2 x 1 x 2 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 60 / 128

Circuitos Booleanos como funciones: Forma normal Aun más: El circuito generado tiene la misma profundidad que el circuito original y a lo más el doble de nodos. De ahora en adelante: Suponemos que los circuitos sólo tienen negaciones en el primer nivel. Definimos el tamaño de un circuito sólo considerando el número de nodos con etiquetas y IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 61 / 128

Circuitos Booleanos como funciones: Forma normal Aun más: El circuito generado tiene la misma profundidad que el circuito original y a lo más el doble de nodos. De ahora en adelante: Suponemos que los circuitos sólo tienen negaciones en el primer nivel. Definimos el tamaño de un circuito sólo considerando el número de nodos con etiquetas y Notación tamaño(c): Tamaño del circuito C profundidad(c): Profundidad del circuito C IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 61 / 128

Lenguajes aceptados por circuitos Dado: Circuito C( x) con n entradas Definición C define el lenguaje: {w {0,1} n C(w) = 1} IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 62 / 128

Lenguajes aceptados por circuitos Dado: Circuito C( x) con n entradas Definición C define el lenguaje: {w {0,1} n C(w) = 1} Ejemplo Para el caso anterior: {a 1 a 2 a 3 a 4 {0,1} 4 a 1 = a 3 y a 2 = a 4 } IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 62 / 128

Lenguajes aceptados por circuitos El lenguaje definido por un circuito siempre es finito. Tenemos que usar familias de circuitos para poder generar lenguajes infinitos IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 63 / 128

Lenguajes aceptados por circuitos El lenguaje definido por un circuito siempre es finito. Tenemos que usar familias de circuitos para poder generar lenguajes infinitos Definición Una familia de circuitos {C n } n 0 acepta L {0,1} si: C n tiene n entradas (C 0 es 0 ó 1) Para cada palabra w de largo n: w L si y sólo si C n (w) = 1 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 63 / 128

Lenguajes aceptados por circuitos La noción de aceptación que acabamos de definir es muy general. Proposición Cada L {0,1} es aceptado por una familia de circuitos {C n }. IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 64 / 128

Lenguajes aceptados por circuitos La noción de aceptación que acabamos de definir es muy general. Proposición Cada L {0,1} es aceptado por una familia de circuitos {C n }. Ejercicio Demuestre la proposición. IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 64 / 128

Lenguajes aceptados por circuitos Si queremos utilizar una familia de circuitos como un algoritmo tenemos que introducir una noción de uniformidad. Debe existir un algoritmo que genere los circuitos IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 65 / 128

Lenguajes aceptados por circuitos Si queremos utilizar una familia de circuitos como un algoritmo tenemos que introducir una noción de uniformidad. Debe existir un algoritmo que genere los circuitos Definición Una MT determinista M genera una familia de circuitos {C n } si esta máquina con entrada 0 k genera C k. M genera C k codificado como una palabra en {0,1} IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 65 / 128

Clases de complejidad y circuitos Es posible usar circuitos para definir clases de complejidad IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 66 / 128

Clases de complejidad y circuitos Es posible usar circuitos para definir clases de complejidad Definición (Clase de complejidad AC i ) Para i 0: Un lenguaje L {0,1} está en AC i si existe una familia de circuitos {C n }, una MT determinista M y una constante k tal que: IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 66 / 128

Clases de complejidad y circuitos Es posible usar circuitos para definir clases de complejidad Definición (Clase de complejidad AC i ) Para i 0: Un lenguaje L {0,1} está en AC i si existe una familia de circuitos {C n }, una MT determinista M y una constante k tal que: 1. L es aceptado por {C n } IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 66 / 128

Clases de complejidad y circuitos Es posible usar circuitos para definir clases de complejidad Definición (Clase de complejidad AC i ) Para i 0: Un lenguaje L {0,1} está en AC i si existe una familia de circuitos {C n }, una MT determinista M y una constante k tal que: 1. L es aceptado por {C n } 2. M genera {C n } y funciona en espacio logarítmico IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 66 / 128

Clases de complejidad y circuitos Es posible usar circuitos para definir clases de complejidad Definición (Clase de complejidad AC i ) Para i 0: Un lenguaje L {0,1} está en AC i si existe una familia de circuitos {C n }, una MT determinista M y una constante k tal que: 1. L es aceptado por {C n } 2. M genera {C n } y funciona en espacio logarítmico 3. profundidad(c n ) k (log n) i IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 66 / 128

AC i : Algunos comentarios No imponemos restricciones al número de arcos que salen de un nodo. No imponemos restricciones al número de arcos que llegan a un nodo. Si usamos compuertas con dos entradas obtenemos las clases NC i Los problemas que pueden ser resueltos en alguna de estas clases son llamados paralelizables (o también muy paralelizables). IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 67 / 128

AC i : Poder de computación AC 0 : Circuitos tienen profundidad constante IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 68 / 128

AC i : Poder de computación AC 0 : Circuitos tienen profundidad constante Ejercicio Muestre que la multiplicación de matrices esta en AC 0 (+ se interpreta como y como ) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 68 / 128

AC i : Poder de computación AC 1 : Circuitos tienen profundidad logarítmica. Esto nos permite resolver muchos problemas IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 69 / 128

AC i : Poder de computación AC 1 : Circuitos tienen profundidad logarítmica. Esto nos permite resolver muchos problemas Ejercicio 1. Muestre que L = {w {0,1} w tiene un número par de símbolos 0} está en AC 1 2. Muestre que el problema de verificar si dos nodos están conectados en un grafo está en AC 1 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 69 / 128

Suma en AC 0 Vamos a demostrar que la suma puede ser calculada en AC 0, vale decir, con circuitos de profundidad constante. Queremos construir un circuito C(x n,...,x 1,y n,...,y 1 ): Recibe como entrada dos números binarios x = x n x 1 y ȳ = y n y 1 Tiene n + 1 salidas que corresponden a la suma de estos números: z n+1 z n z 1 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 70 / 128

Suma en AC 0 Notación AND i = x i y i OR i = x i y i XOR i = (x i y i ) ( x i y i ) Sea r 0 = 0 y r i (i [1,n]) el i-ésimo resto en la suma de x y ȳ. Entonces para i 1: r i = AND i (OR i r i 1 ) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 71 / 128

Suma en AC 0 Desarrollando una vez obtenemos: r i = AND i (OR i AND i 1 ) (OR i OR i 1 r i 2 ) Si seguimos desarrollando obtenemos: r 1 = AND 1 r 2 = AND 2 (OR 2 AND 1 ) r n = AND n (OR n AND n 1 ) (OR n OR n 1 AND n 2 ) (OR n OR n 1 OR 2 AND 1 ). IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 72 / 128

Suma en AC 0 Podemos usar los restos para definir el resultado de la suma: z i = ( OR i r i 1 ) (XOR i r i 1 ) (AND i r i 1 ) En particular: z 1 = XOR 1 y z n+1 = r n Podemos utilizar las definiciones de r i y z i para construir el circuito. Veamos un ejemplo: C(x 3,x 2,x 1,y 3,y 2,y 1 ) Cuál es la profundidad del circuito? IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 73 / 128

Suma en AC 0 : Ejemplo x 3 x 2 x 1 y 3 y 2 y 1 r 3 r 2 r 1..... z 4 z 3 z 2 z 1 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 74 / 128

Circuitos de tamaño polinomial Si L AC i : Existe una familia de circuitos de tamaño polinomial que acepta L. Aun más: Tenemos que L PTIME por la condición de uniformidad IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 75 / 128

Circuitos de tamaño polinomial Si L AC i : Existe una familia de circuitos de tamaño polinomial que acepta L. Aun más: Tenemos que L PTIME por la condición de uniformidad Qué clase de problemas pueden ser aceptados por familias de circuitos de tamaño polinomial? IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 75 / 128

AC i : Resultados fundamentales Sea AC = i 0 AC i IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 76 / 128

AC i : Resultados fundamentales Sea AC = i 0 AC i Teorema AC 0 LOGSPACE NLOGSPACE AC 1 AC PTIME IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 76 / 128

AC i : Resultados fundamentales Sea AC = i 0 AC i Teorema AC 0 LOGSPACE NLOGSPACE AC 1 AC PTIME Teorema (Furst-Saxe-Sipser) AC 0 LOGSPACE Demostración: L = {w {0,1} w tiene un número par de símbolos 0} no está en AC 0 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 76 / 128

Complejidad de la LPO: Circuitos Booleanos Por qué nos interesan tanto los circuitos Booleanos? IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 77 / 128

Complejidad de la LPO: Circuitos Booleanos Por qué nos interesan tanto los circuitos Booleanos? Vamos a demostrar que la complejidad de los datos de la LPO es muy baja Está contenida en AC 0 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 77 / 128

Complejidad de la LPO: Circuitos Booleanos Por qué nos interesan tanto los circuitos Booleanos? Vamos a demostrar que la complejidad de los datos de la LPO es muy baja Está contenida en AC 0 Para empezar: Necesitamos representar estructuras como palabras en {0,1} IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 77 / 128

Complejidad de la LPO: Circuitos Booleanos Dado: Vocabulario L sin constantes Constantes son reemplazadas por predicados unarios Definimos la codificación de una L-estructura A (enc(a)) de la siguiente forma. 1. Tomamos un orden arbitrario en A: a 1 < a 2 < < a n Este orden es usado para definir un orden lexicográfico para las k-tuplas (k 1): (a 1,...,a 1,a 1 ) < (a 1,...,a 1,a 2 ) < < (a 1,...,a 1,a n ) < (a 1,...,a 2,a 1 ) < < (a n,...,a n,a n 1 ) < (a n,...,a n,a n ) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 78 / 128

Complejidad de la LPO: Circuitos Booleanos 2. Para R en L con aridad k: enc(r) es una palabra w de largo n k, tal que el i-ésimo elemento de w es 1 si y sólo si la i-ésima tupla en el orden lexicográfico de las k-tuplas está en R A 3. Si L = {R 1,...,R l }, entonces enc(a) = enc(r 1 ) enc(r l ). IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 79 / 128

Complejidad de la LPO: Circuitos Booleanos 2. Para R en L con aridad k: enc(r) es una palabra w de largo n k, tal que el i-ésimo elemento de w es 1 si y sólo si la i-ésima tupla en el orden lexicográfico de las k-tuplas está en R A 3. Si L = {R 1,...,R l }, entonces enc(a) = enc(r 1 ) enc(r l ). Ejemplo Si A = A = {1,2},P A = {1},R A = {(1,1),(2,1),(2, 2)}, entonces: enc(a) = 101011 IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 79 / 128

Complejidad de la LPO y AC 0 Dado: Vocabulario L sin constantes Teorema Para cada L-oración ϕ, se tiene que L ϕ está en AC 0 Demostración: Suponemos que en ϕ el conectivo sólo aparece en fórmulas de la forma (x = y) (es decir, x y) y R( x) Por qué podemos suponer esto? Para evaluar una fórmula ϕ en una estructura A reemplazamos: x ψ(x,ȳ) por ψ(a,ȳ) x ψ(x,ȳ) por a A ψ(a,ȳ) a A IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 80 / 128

Complejidad de la LPO y AC 0 Cuando hemos terminado de reemplazar todos los cuantificadores, podemos construir fácilmente el circuito buscado. Cómo se maneja la igualdad? La profundidad del circuito sólo depende de ϕ, por lo que es fija. IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 81 / 128

Complejidad de la LPO y AC 0 Es simple demostrar que la familia de circuitos puede ser generada por una MT determinista que trabaja en espacio logarítmico. Está máquina entrega el circuito 0 con entrada 0 k si las palabras de largo k no pueden representar una estructura Concluimos que L ϕ está en AC 0. IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 82 / 128

Complejidad de la LPO y AC 0 : Ejemplo Sea ϕ = x (P(x) y (x y R(x,y))) Vamos a construir el circuito para ϕ y las estructuras con 3 elementos en el dominio IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 83 / 128

Complejidad de la LPO y AC 0 : Ejemplo Sea ϕ = x (P(x) y (x y R(x,y))) Vamos a construir el circuito para ϕ y las estructuras con 3 elementos en el dominio Primero reemplazamos x por la siguiente disyunción: ( ) P(1) y (1 y R(1,y)) ( ) P(2) y (2 y R(2,y)) ( ) P(3) y (3 y R(3,y)) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 83 / 128

Complejidad de la LPO y AC 0 : Ejemplo Después reemplazamos y por las siguientes conjunciones: ( P(1) ((1 1 R(1,1)) ) (1 2 R(1,2)) (1 3 R(1,3))) ( P(2) ((2 1 R(2,1)) ) (2 2 R(2,2)) (2 3 R(2,3))) ( P(3) ((3 1 R(3,1)) ) (3 2 R(3,2)) (3 3 R(3,3))) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 84 / 128

Complejidad de la LPO y AC 0 : Ejemplo Finalmente eliminamos la igualdad: ( ) P(1) (R(1,2) R(1,3)) ( ) P(2) (R(2,1) R(2,3)) ( ) P(3) (R(3,1) R(3,2)) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 85 / 128

Complejidad de la LPO y AC 0 : Ejemplo Circuito para ϕ = x (P(x) y (x y R(x,y))) y las estructuras con 3 elementos en el dominio: x 1 x 2 x 3 x (1,1) x (1,2) x (1,3) x (2,1) x (2,2) x (2,3) x (3,1) x (3,2) x (3,3) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 86 / 128

Complejidad de la LPO y AC 0 : Ejemplo Circuito para ϕ = x (P(x) y (x y R(x,y))) y las estructuras con 3 elementos en el dominio: x 1 x 2 x 3 x (1,1) x (1,2) x (1,3) x (2,1) x (2,2) x (2,3) x (3,1) x (3,2) x (3,3) y IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 86 / 128

Complejidad de la LPO y AC 0 : Ejemplo Circuito para ϕ = x (P(x) y (x y R(x,y))) y las estructuras con 3 elementos en el dominio: x 1 x 2 x 3 x (1,1) x (1,2) x (1,3) x (2,1) x (2,2) x (2,3) x (3,1) x (3,2) x (3,3) x IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 86 / 128

Complejidad de la LPO y AC 0 : Consecuencias Del Teorema de Furst-Saxe-Sipser obtenemos: Corolario Sea L = {U( )}. El conjunto P de todas las L-estructuras que tienen una cantidad par de elementos en U no es expresable en lógica de primer orden. IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 87 / 128

Complejidad de la LPO y AC 0 : Consecuencias Del Teorema de Furst-Saxe-Sipser obtenemos: Corolario Sea L = {U( )}. El conjunto P de todas las L-estructuras que tienen una cantidad par de elementos en U no es expresable en lógica de primer orden. Pero esto ya lo habíamos demostrado. Qué otras consecuencias tienen los resultados sobre la complejidad de la LPO? IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 87 / 128

Complejidad de la LPO y LOGSPACE Complejidad basada en circuitos puede ser usada para responder una de las preguntas que teníamos pendientes. La complejidad de los datos de LPO está en una clase que está contenida en forma propia en LOGSPACE IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 88 / 128

Complejidad de la LPO y LOGSPACE Complejidad basada en circuitos puede ser usada para responder una de las preguntas que teníamos pendientes. La complejidad de los datos de LPO está en una clase que está contenida en forma propia en LOGSPACE Hay muchas propiedades que pueden ser computadas eficientemente y que no pueden ser expresadas en LPO Queremos encontrar lenguajes que estén más cerca de PTIME ( qué capturen PTIME?) IIC3260 Complejidad de la Lógica de Primer Orden y algunas de sus Extensiones 88 / 128