Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Complexidade Computacional, Lógica e
Teoria da Prova
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
É mais fácil verificar uma solução do que calculá-la ???
f(x) = 02|x|
1 => Para se escrever 02 a partir de x se usa “tempo” exponencial. |x|
2 => Para, dados <x,y>, verificar-se se f(x) = y usa-se “tempo” polinomial
1 => Para se encontrar uma valoração que satisfaça uma fórmula booleana parece precisar-se de “tempo” exponencial.
2 => Dada uma fórmula e uma valoração, verifica-se em “tempo” polinomial se esta satisfaz a fórmula,.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
PVp = { f / f(a1,...,ak)= b é verificável em tempo poli para toda <a1,...,ak,b> }
PCp = { f / f(a1,...,ak) é calculável em tempo poli para toda <a1,...,ak>}
Teorema : PVp PCp se e somente se P = NP
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Qual a relação entre a Lógica e a Computação ?
- O que é a (Teoria da) Computação ?
- O que é Lógica ?
(Tentativa de) conceituação do Computável
(Tentativa de) conceituação do Razoável
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Razoável
Todo evento que é passível de uma explicação, na forma argumentativa,construída sobre fatos iniciais inquestionáveis.
Antes de 1879 ====>
Lógica Aristotélica e Escolástica (a partir de 300 a.c.)Álgebras Booleanas (Boole 1847)Álgebra Relacional (DeMorgan, Schroeder, C.S.Peirce XIX)
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Evolução da Lógica como assunto matemático
Frege (1879) estabele a lógica como um sistema formal que tem sua linguagem particular e distinta da natural. O conceito de prova matemática passa a ser formal.
Frege (1884) busca a fundamentação da aritmética em bases puramente lógicas , com a adição do conceito de pertinência () como primitivo.
===> Os paradoxos aparecem novamente !!
DeMorgan (1830) Observa que a álgebra não necessita lidar tão somente com conceitos numéricos.
Boole (1854) Descreve uma álgebra a partir de operações entre conjuntos e relações lógicas, confirmando DeMorgan.
===> Paradoxos associados ao axioma da escolha, etc
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Principais Resultados em Lógica/Metamatemática no início do século XX
- Teoria dos Tipos como solução ao paradoxo em Russell
- Presburger (1929) prova que a aritmética sem a multiplicação é decidível.
- Russell e Whitehead publicam o Principia Mathematica.
- Skolem (1931) prova que a aritmética sem a adição e o sucessor é decidível
- Herbrand (1931) prova a consistência de um fragmento fraco da aritmética (só o sucessor).
-Tarski (1930) formaliza a semântica adequada para a lógica de primeira ordem
- Gödel (1930) prova a completude do cálculo de primeira ordem
- Gödel (1931) introduz a idéia de aritmetizar (codificar na forma numérica) a linguagem de um sistema formal de forma que (meta) teoremas do sistema possam ser vistos como teoremas aritméticos e prova seu famoso teorema da incompletude. Obs: # é o código de .- Gödel (1931) prova a não-provabilidade da consistência.
- Gentzen (1936) prova a consistência da aritmética ( Haupsatz para o Cálculo de Sequentes)
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
ComputávelToda tarefa que pode ser realizada
por um ser burro com um mínimode conhecimento/capacidade.
burro = Incapaz de Aprender
conhecimento = ?
Antes de 1900 d.c ====> Máquina de Raciocinar (Leibniz 1667)Máquina de Calcular de Pascal l (Pascal sec.XVII)Máquina de Babbage (Ch. Babbage sec. XIX)
.
.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
A Computação do ponto de vista das funções recursivas
1931 - Gödel define as funções prim. recursivas associando-as a provas em aritmética
1927/1928 - Ackermann define uma função que necessita de recursão simultânea
1934 - Rózsa Péter - Prova que as funções prim. recursivas formam a classe definida por recursão simples e “nested” a partir de funções iniciais constantes, identidade e a função sucessor. Prova que a função de Ackermann é na realidade definida por recursão em duas variáveis e não é portanto primitivamente recursiva, mas é computável.
1936 - A. Turing - Define uma máquina formal a partir de princípios simples (ler , apagar e escrever símbolos em uma fita) e define o conceito de Máquina Universal. Prova que não existe máquina capaz de verificar se outra máquina pára ou não. Desde o início a sua máquina com versão Não-Determinística
1936 - A. Church Define o -Calculus e mostra que este é capaz de definir todas as funções para as quais existe uma Máquina de Turing.
1938 - Kleene Define, aceitando que o computável inclui a parcialidade funcional, as funções parcialmente recursivas e lança a Tese de Church.1954 - Markov Estabele o conceito de computável com base em identificação de palavras e símbolos (algoritmos de Markov) e justifica o ponto de vista finitista da computação.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Sxyz (xy)xz Kxy x Ix x (I SKK)
Tese de Church: f: N N é computável se e somente se existe um combinador FC1 C2... Cn tal que para todo nN (F:n: :m:) f(n) = m)
:0: I :1: P0K :2: P1K ..... :n: P:n-1:K ....
P
f é recursiva
existe uma máquina de Turing M , tal que M com 11.......111na fita de entrada M pára com 11.....11111 na saída sss f(n) = m
m
n
existe um algoritmo de Markov A , t.q. A lendo 11.......111pára e produz o string 11.....11111 na saída sss f(n) = m
m
n
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
A Máquina de Turing
- Modelo determinístico
q
q’
’
- Modelo multi-cabeça (determinístico)
i1 i2 ik
qi1 qi2 qik
U(i,a) = Ti(a)Máquina Universal U
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
M. Turing modelo multi-fita (determinístico)
qi1
i1
qik
qi2
1
2
k ik
i2
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
algoritmo
Sequência de passos
Conjunto de sequência de passos
não-determinismo determinismoparalelismo paralelismo c/
sincronia
A partir da década de 50 (sec. XX).......
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
A Máquina de Turing (cont.)
- Modelo não-determinístico
q
q1
q2
q3
q11
q12
q13
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Medindo a eficiência de algoritmos
- Escolha do modelo
- Recursos: Tempo x Memória
- Relacionando os algoritmos e os problemas que estes resolvem
- Computação de Funções- Problemas de otimização- Problemas de decisão,- Linguagens
- Classes de complexidade: Como defini-las ???
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Problemas de Decisão
x P ?x
sim
não
Prog.|x| *
1
0
Problemas de Decisão Linguagens Formais
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Algumas Definições
L DTime(f) sss m TuringDet t.q. (m decide L) e c, x Strings steps(m,x) cf(|x|)
L DSpace(f) sss m TuringDet t.q. (m decide L) e c, x Strings space(m,x) cf(|x|)
- Como medir espaço (memória) ???
- Qualquer tipo de função serve como parâmetro de medida ??
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Por que considerar classes assintóticas de funções ??
Teorema: (speedup linear) Se uma linguagem L é decidida em tempo f(n) então para qualquer > 0 existe uma M. Turing M que decide L em tempo .f(n) + n + 2.
Prova : Modificar o tamanho da “palavra” de memória
Consequências do seedup:
Se L é decidida em tempo f(n) = 165.nk + .... + 54.n + 657 então L é decidida em tempo f’(n) = nk
Obs: O mesmo teorema ( e técnica de prova) vale para função de medida e uso de espaço (número máximo de células visitadas)
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Funções de tempo construtivas
Fato: Existe f, tal que, DTime(f) = Dtime(2f)
Def. f é uma funçao de tempo construtível, sss, existe uma máquina de Turing M tal que para todo n, M(1n) = 1f(n) e steps(M, 1n) cf(n).
Propriedades :
- Para qualquer função computável g existe uma função de tempo constru- tível f tal que g < f.
- As funçoes polinomiais, exponencial e logaritmos (inteiros) são funções de tempo construtíveis
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
As funções step e space
- space deve levar a entrada em consideração ?
- step deve levar a leitura da entrada em consideração ?
- O modelo (M.T.) tem alguma robustez com relação as medidas ?
- O que acontece quando modifica-se o número de cabeças ?
- O que acontece quando modifica-se o número de fitas ?
Fato: Se L é reconhecida em tempo O(f) em uma MT com mais de uma cabeça, então L é reconhecida em tempo O(f2) em uma MT com uma cabeça.
Fato: Se L é reconhecida em tempo O(f(|x|)) em uma MT com uma fita, então L é reconhecida em tempo O((1/2k)f(|x|)+ |x|) em uma MT com k fitas
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Algumas propriedades e definições:
Fato I: DTime(f) =coDTime(f)
Se f é de tempo construtível então :
coDTime(f) = { L / m TuringDet t.q. (m decide Lc) e x Strings steps(m,x) O(f(|x|)) }
Fato II: Se n f(n) e |L1L2| finito então L1 DTime(f) sss L1 DTime(f)
Fato III: DTime(f) é construtivamente enumerável, i.e., existe uma MT T tal que T(i,x) = Ti(x) e DTime(f) = {Li / Ti decide Li }.
Def. P = DTime(ni)iN
Def. EXP = DTime(2n )iN
i
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Teorema de Cantor
==> Seja B um conjunto, então |B| < |2B|
S = { x / x f(x) }
Prova: Suponha que |B| = |2B| então existe f: B 2B
f-1(S) S se e somente se f-1(S) S
Paradoxo do Barbeiro: Em uma cidade existe um barbeiro que faz a barba de todos os homens que não barbeiam a sí próprios e somente estes.
{A / A B}
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
O método da diagonal de Cantor
a0= 0, aoo ao1 ao2 ao3 ao4....... aon..............a1= 0, a1o a11 a12 a13 a14....... a1n..............
an= 0, ano an1 an2 an3 an4....... ann..............
suponha que |(0,1)| = |N|
b = 0,b0 b1 b2 b3 b4....... bn.........
bj=
5 se ajj = 9
9 senão
|(0,1)| |N|
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Hierarquia própria de funções construtivas
Paraf = { <T,x> / T(x) pára no máximo em f(|x|) passos}
FatoI : Paraf DTime(f3)
FatoII : Paraf DTime(f(x/2))
Prova: Diagonalização
Corolário I : DTime(f(n)) DTime(f(2n+1)3)
Corolário II : P EXP
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Classes de Complexidade e algumas relações
Def. PSpace = DSpace(ni)iN
Def. NP = NTime(ni )iN
Def. NPSpace = NSpace(ni)iN
Def. Log = Space(log) e NLog = NSpace(log)
Log NLog P NP NSpace
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
- DSpace(f(n)) NSpace(f(n)) e DTime(f(n)) NTime(f(n))
- NTime(f(n)) DSpace(f(n))
- NSpace(f(n)) DTime(klog n + f(n))
- Alcançabilidade Space(log2) NSpace(f) Space(f2)
(obs; Número de conf. + alcançabilidade)
- número de nós alcançavel Space(log) => NSpace(f) = coNSpace(f)
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
P : Encontra solução em tempo polinomial
NP : Verifica solução em tempo polinomial
CoNP : Verifica que não é solução, em tempo polinomial
Sat NP Taut CoNP
Obs: Se CoNP NP então NP P
Verificação de Modelos Prova de Teoremas
A Ciência da Computação Hoje : NP = P ? (Cook 1971)
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Def. Seja C uma classe de problemas (linguagens). Diz-se que um problema (ling.) P é C-completo (a) se e somente se todo problema (ling) de C é redutível a P. Isto é resolver P é tão difícil quanto resolver qualquer outro problema em C.
- Saber se um programa pára (via outro programa) é Rec-Completo, onde Rec é o conjunto dos problemas (ling) recursivos.
Exemplos:
- Saber se dado uma solução para um problema esta é verificável em tempo polinomial é tão difícil quanto decidir se uma sentença da lógica proposicional é “verdadeira”. Sat é NP-completa.
O(n2)
O(n3)
O(n)
P
O(2n)
decidir se uma fórmula da lógica de predicados é Sat
decidir se uma fórmula da lógica prop é Sat
NPdecidir primalidade
decidir se uma 3CNF fórmula é Sat
decidir se uma 2CNF é Sat
decidir se uma cláusula de Horn prop é Sat
decidir se 2 cláusulas de Horn prop são equiv.
NPC ?
Obs: Supondo P NP
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Alguns Fatos Importantes :
Fato 1: Existe um oráculo B tal que PB = NPB
Fato 2: Existe um oráculo C tal que PC NPC
Prova: NPSPACE=PSPACE e B um problema NPSPACE completo
Prova: Diagonalização
Discussão : Simulação e Diagonalização para provar P = NP ??
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Fato : Se PNP então NP-NPC .
Prova: Diagonalização Uniforme [Ladner 1975]
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Lema: Sejam C1 e C2 duas classes de Linguagens, tais que :
1- C1 e C2 são construtivamente enumeráveis
2- C1 e C2 são fechadas para variação finita
3-Existe L1 C1 e L2 C2
nestas condições existe L, tal que:
L C1 C2 e L L1 L2
Teorema: Se PNP, então Sat P e NPC então existe L P NPC
Prova: Diagonalização
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
A representação influencia a complexidade de um problema ??
Alfabetos ??
Teorema: Se alguma linguagem unária for NP-completa então P=NP.
Prova :
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Hierarquia de Kleene
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Hierarquia Polinomial
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Circuitos Booleanos=> Dígrafos acíclicos com nós AND, OR, NOT, nós iniciais (sem arco entrante) e um e somente um nó terminal (sem saída).
Exemplo: Circuito para computar alcançabilidade em grafos. Entrada = <Grafo, <1,n>>
Gij = matriz de adjacências de um dígrafo
1
2
3
4
5 12345101001200010310000400000510000
01001 00010 10000 00000 10000 direto
pass. por 1.
pass. por 1 ou direto.
pass. por 2(poss. por 1 tb)
pass. por 2,1 ou direto.
pass. por 5,4,3,2,1 ou direto.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Obs: => Alcançabilidade tem circuitos de tamanho O(n3) e profundidade O(n)
Famílias de Circuitos Booleanos
Def. L é decidida por uma família (Ci)iN, sss, para todo string s, com |s| = n, Cn aceita s se e somente se s L.
Questão : O tamanho de um circuito tem a ver com a complexidade (em MT) do problema de decisão associado ???
Resp. : Prox. Slides
Conjectura: Todo problema de decisão com famílias de circuitos de tamanho polinomial é um problema que está em P ??
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Resp: NÃO
=> Problemas indecidíveis tem famílias polinomiais de circuitos booleanos
Exemplo: Seja D {1}* uma linguagem indecidível. e seja (Ai)iN a família de circuitos tal que
- se 1k D então Ak é o circuito só com portas AND e k fontes - se 1k D então Ak é o circuito com só portas AND e uma NOT ao final.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Famílias Uniformes de Circuitos Booleanos
Fato: NLSpace P
Def. Uma família (Ci)iN de circuitos booleanos é uniforme, sss, existe uma MT (não determinística) que para entrada 1n gera o circuito Cn usando log(n) células da fita.
==> Alcançabilidade possui família uniforme de circuitos booleanos
(klog(n) = n)
- Dado n, existe uma MT para gerar Cn usando somente log(n) de espaço na fita de trabalho.
==> Gerar todos os circuitos de profundidade n com n2 nós fontese verificar se a forma é a requerida.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Nova Conjectura: P = Linguagens aceitas por famílias uniformes de Circuitos booleanos de tamanho polinomial ??
Desta vez SIM.
Prova: Construção usada na prova que SAT é NP-completo e definição de família uniforme de Circuitos de tamanho polinomial.
() Trivial
() Seja L P, então existe uma MT det. M que decide L em tempo nk. Seja w L, tal que |w|=n. Da tabela de computação de M constrói-se um circuito Cn.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Tabela de computação de M para a entrada w |w|=n
nk
s11 s12...... s1m s21 s22...... s2m s(n-1)1 s(n-1)2...... s(n-1)m sn1 s12...... snm
’1 ’2 ’p-1 ’p ....
a11 a12...... a1m a21 a22...... a2m a(p-1)1 a(p-1)2...... a(p-1)m at1 a12...... apmad1 ad2...... adm
qj’2
x-1 xx x+1
x
tempo ttempo t+1
A C ....
b11 b12...... b1m b21 b22...... b2m
E I T A
q01 2 n-1 n ....
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Observações:
1- O tamanho do circuito Pad só depende de M. Se = Est(M) Alfa(M) {,} e c = || então |Pad| = 3.c
2- w L, se e somente se, o circuito tem valor “true” quando “alimentado” com cod(w).
3- O construção de um circuito C|w| é feita a partir de M e |w| usando espaço de ordem log(|w|) na fita. Algoritmo imprime na fita de saída as diversas cópias de Pad (tamanho independente da entrada), com as respectivas junções de e/s que usam espaço de ordem log(|w|) .
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Proposição: Toda linguagem em P possui família uniforme de circuitos booleanosde tamanho polinomial.
Corolário: SE existe L NP é tal que toda família uniforme de circuitos que decide L não tem tamanho limitada por nenhum polinômio ENTÃO PNP
Um caminho para provar PNP :
==> Provar que algum problema NP-completo possui cota inferiorsuperpolinomial
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Circuitos x Circuitos monotônicos
Def. Uma função booleana f é monotônica, se e somente se, se a b então f(x1,...,a,...,xn) f(x1,...,b,...,xn).
Obs I: Todo circuito monotônico computa uma função monotônica
Exemplos:
- Circuitos monotônicos são aqueles construídos sem o uso da porta NOT.
Obs II: O circuito utilizado na demonstração da conjectura é monotônico, ou seja, o problema (P-completo) de avaliar um circuito é redutível via circuitos monotônicos. (Expressividade !!!!!)
- Alcançabilidade, circuito hamiltoniano e clique são monotônicos,
- Mochila e cobertura euleriana não são monotônicos
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Circuitos ingênuos monotônicos para computar CLIQUEn,k
1001010101 n 1 n100101010 100101010 100101010
1 n 1 n1 2 n-1 n
1001010101 n 1 n100101010 100101010
1 nvivi1 jvik
i1 ik i1 ik i1 ik
... ... ...
... ...
S = { ,....., }vi1vik
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Circuitos “ingênuos” monotônicos para computar CLIQUEn,k
1001010101 n 1 n100101010 100101010 100101010
1 n 1 n1 2 n-1 n
S1 Sj S( )n
k
ORTamanho = k2( )n
k
Obs: 2n < ( )2n n
Def. CC(S1, ..., Sm) é o circuito ingênuoconstruído a partir dos conjuntos S1, ..., Sm de vértices
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Teorema do Razborov
Teorema: Circuitos monotônicos para CLIQUEn,k , quando k = 4n, tem cota inferior :
82 ncO
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Esquema:
1 - Considerar um circuito monotônico qualquer C
2- Aproximar C via um circuito ingênuo CC(S1, ..., Sm) introduzindo um número pequeno (poli) de falsos positivos e de falsos negativos.
3- Cada aproximação é executada sobre uma porta (gate) do circuito.
4- Demonstra-se que o circuito ingênuo resultante da aplicação de “3” a todas as portas de C tem uma quantidade exponencial de falsos positivos e de falsos negativos.
5- Concluí-se que C só pode ter uma quantidade exponencial de portas.
=> Considerar tipos particulares de exemplos negativos e positivos para teste de clique (exemplos em quantidade exponencial)
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Exemplos positivos e exemplos negativos
Exemplo positivo:
- Um grafo simples com n vértices contendo um subgrafo completo de tamanho k
Exemplo negativo:
- Um grafo com n? vértices e (k-1) colorável
=> Existem ( ) exemplos positivos. nk
=> Existem (k-1)n exemplos negativos
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Lema de Erdös-Rado: Seja F uma família de com mais que M=(p-1)L.L! conjuntos, todos não vazios e todos com cardinalidademáxima L. Então F contêm um “girassol”.
Resultado de combinatória importante para o teorema
Z1
Z2
Z3
Zj
Z>M
Zi Zj Zk Zv = = Núcleo
Prova: Por indução em L
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Construção Indutiva do circuito aproximante para C.
Caso Base: C =gij , porta de entrada gij
Aprox(C)= CC({gij})
Casos Indutivos:
1- C = C1 OR C2
Obs: Manter a cardinalidade dos geradores do circuito ingênuo.
Aprox(C1)=CC(F1) e Aprox(C2)=CC(F2)
Aprox(C) = CC(F1F2)
- Se | F1F2| > M substituir os elementos do “girassol” pelo seu núcleo
Aprox(C) = CC(Nu(F1F2))
se usamos M=(p-1)L.L! => forçamos a existência de “girassois” com pétalasde tamanho L
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
2- C = C1 AND C2
Aprox(C1) = CC(F1) , Aprox(C2) = CC(F2)
Aprox(C) = CC(Nu({XY: X F1, Y F2 e |X Y| L}))
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Lema I : Em cada aproximação são introduzidos no máximo M22-p(k-1)n
falsos positivos
Lema II: Cada aproximação introduz no máximo M2( ) falsos negativos
n-L-1k-L-1
Lema III: Todo circuito aproximante ou é idêntico ao circuito “falso” ou resulta em “verdadeiro” em pelo menos metade dos exemplos negativos.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
O que é introduzir falsos positivos ou falsos negativos ??
Obs: No caso base da construção do circuito aproximante (Aprox({gij}) = CC({gij}) , a aproximação é exata !!!!!
- Se C = C1 OR C2 , Aprox(Ci)=CC(Fi) , CC(Fi) retorna “verd” para algum i quando alimentado com um exemplo positivo G, e, Aprox(C) retorna “falso” quando alimentado com G.
- Se C = C1 OR C2 , Aprox(Ci)=CC(Fi) , CC(Fi) retorna “falso” para algum i quando alimentado com um exemplo negativo G, e, Aprox(C) retorna “verd” quando alimentado com G.
=> Aprox(C) introduziu um falso negativo
=> Aprox(C) introduziu um falso positivo
- Similar para C=C1 AND C2
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Lema I : Em cada aproximação são introduzidos no máximo M22-p(k-1)n
falsos positivos
- C = C1 OR C2 com Aprox(Ci)=CC(Fi) e Aprox(C) = CC(Nu(F1F2))
A introdução de falsos positivos é culpa do operador Nu.
=> Substituir (Z1,....,Zp) , um “girassol”, por Z, seu núcleo, em F1F2.
Z1
Z2
Z3
Zj
ZpZ2 Zj F1
Z1 Z3 Zp F2
Quantas cores diferentes pode haver no Núcleo ???
=> Qual a probabilidade de se colorir todos os vértices em G com repetição e o núcleo não ????
- G é falso positivo , então .......
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Rep(X) = Há cores repetidas em X.
prob(Rep(Z1) & ..... & Rep(Zp) & Rep(Z)) prob((Rep(Z1) & ..... & Rep(Zp))| Rep(Z)) =
prob( Rep(Z))
= prob(Rep(Zi)| Rep(Z)) prob(Rep(Zi)) p
i=1
p
i=1 2-p
Rep(Zi) =
| Zi |
2k-1
L
2k-1
L!(L-2)! 2!
k-1=
(n)!(n -2)! 2!n -1
8
8
4 1/2
Estimativa de falsos positivos 2-p.
colorações possíveis
por operação Nu (k-1)nna OR aproximação 2M/(p-1)
operações Nu
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
2- C = C1 AND C2 Aprox(C1) = CC(F1) , Aprox(C2) = CC(F2)
Aprox(C) = CC(Nu({XY: X F1, Y F2 e |X Y| L}))
não introduz falsos positivos pode retirarpositivos mas nunca incluir falsos positivos
Pode incluir no máximo 2-p falsos positivos por operação de Nu
Estimativa de falsos positivos para a aproximação AND 2-p (k-1)n M2
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Lema II: Cada aproximação introduz no máximo M2( ) falsos negativos
n-L-1k-L-1
1 - A operação Nu não introduz falsos negativos.
=> A aproximação para OR não introduz falsos neg.
2- C = C1 AND C2
C1
C2G+
true
true
Aprox
CC({XY/X F2, Y F1 | XY| L})
Y1 YkY
X1XjX
..........
..... .....
G+ false
n-L-1k-L-1M2( )
pares poss. falsos neg.por retirada
Obs: L < |X Y|
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Aprox(C2) = CC(F2)
Aprox(C1) = CC(F1)
Aprox
G+
G+
true
trueX1
Y1
XjX
YkY
Aprox(C1 AND C2)
Y1 YkY
X1XjX
CC({XY/X F2, Y F1})
..... .....
..........
..........
..... .....
G+ true
Y1 YkY
X1XjX
CC({XY/X F2, Y F1 | XY| L})
..........
..... .....
G+ false
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Lema III: Todo circuito aproximante ou é idêntico ao circuito “falso” ou resulta em “verdadeiro” em pelo menos metade dos exemplos negativos.
ObsI: A operação de aproximação de um AND pode deletar todos os pares.
Se o circuito aproximante (ingênuo CC(X1,...,Xp)) aceita algum circuito
Algum Xi aceita os exemplos negativos (têm cliques)
Existem L | Zi |
2k-1
2k-1
L!(L-2)! 2!
k-1=
(n)!(n -2)! 2!n -1
8
8
4 1/2
exemplos de circuitos k-1 colorações em um circuito de L vértices
ObsII:
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Definição: P/Poly é a classe de linguagens aceita por circuitos booleanos de tamanho polinomial.
Colapso da hierarquia polinomial de complexidade
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Exemplo positivo de tamanho n
- Um grafo com ( ) arestas conectando k vértices de todas as formas possíveis
k2
Obs: Existem ( ) exemplos positivosnk
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Exemplo negativo de tamanho n
- Colorir os vértices com (k-1) cores diferentes e unir por uma aresta todos os pares de nós que são coloridos com cores diferentes.
Obs: Existem (k-1)n exemplos negativos (contando isomorfismo)
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
A(PA = NPA)
A = { <T,w,1k> / w é aceita por T usando no máximo k células }
PA NPA (fácil)
NPA PA
wL
L
Tw
w0
wn
simp(|w|)
T’’wn,1kAp(|w|)
T’
w0
wn
sim
T’’wn,1kA
wn
1k
wskp’(|w|)
A: T’ w 1p’(|w|)
L
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
C( PC NPC)NPC PC
- X um oráculo qualquer- enumeração construtiva de PX : {T0, T1,....., Tn,........}, tal que, - Para qualquer x e k, Tk(x) pára no máximo em |x|k + k
LX = {0n / x(x X e |x|=n} Obs: LX NPX
- Vamos definir C (um oráculo do tipo X) de forma a LC PC
- Obs: |x|k + k < 2|x| O quantidade de strings de tamanho |x| é maior que qualquer poli em |x|
- Qualquer Tk PC , calculando Tk(w) pode submeter no máximo |x|k + k strings de tamanho |x| ao oráculo C.
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Diagonalização em partes para definir C:
C(i) = {w / w C e |w| = i}
Objetivo. - Se Ti
C(i-1)(0i ) = “aceita” então C(i) = {}. - Se Ti
C(i-1)(0i ) = “rejeita” então C(i) = {min{w / |w| > ||C(i-1)||i-1 + i-1 e 2|w| > |w|i + i }}
C(0) = {}
||W|| = max{|w| / w W }
LC PC ==> existe Ti tal que LC é aceita por Ti ==>
Se TiC(0i ) = “aceita” então 0i C(i) = {}
Se TiC(0i ) = “rejeita” então 0i C(i) 0i
LC PC
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Pred(i,k) =true j 0 j i, w( |w| = i steps(Tj,w) k)
N(i) = |alfabetoj|ij=0,i
f(i) = 2 222
2
s-vezes
onde s N(i) e Pred(i, ) 222
2
s-vezes
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Suponha Paraf DTime(f(x/2))
Diagf (T) = se TParaf(T,T) = “sim” então “não” senão “sim” es
Diagf (Diagf ) = “sim” TParaf(Diagf,Diagf) = “não”
Diagf não aceita sua descriçao em tempo f(n)
Diagf “roda” em tempo f(2n+1/2) = f(n)
Diagf (Diagf ) = “não” TParaf(Diagf,Diagf) = “sim”
Diagf aceita sua descriçao em tempo f(n)
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
C1 e C2 são construtivamente enumeráveis
Tji (i=1,2) (j N) tal que Tj
i decide Lji Ci
tal que G P e :Define-se G
j z * z Li Lji e z G
Li Ci
Fazendo L = (L1 G) (L2 Gc)
j z * z Li Lji e z G j z * z L Lj
i e z G
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Zi,n1 = menor palavra z com |z| >= n e z L1L1
i
Zi,n2 = menor palavra z com |z| >= n e z L2L2
i
Rk(n) = max{| |} + 1 Zi,nkin
L1C1 ===> L1L1i para todo i
C1 fechada por var. finita ====> para todo j e nj existe z L1L1j
R1 é total e computável
R é uma função de tempo construtível tal que R(n) max(R1(n), R2(n)).
G = { x / R2n(0) |x| R2n+1(0) e n 0}
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
G P
T = Máquina de Turing que conta o tempo de R.
T(x) pára em exatamente R(|x|) passos
Algoritmo - Executar |x| passos de T(10) verificando se R(0) > |x| ==> R(0) > |x| > 0 Executar |x| passos de T(1R(0)) verificando se R(R(0)) > |x| ==> R(R(0)) > |x| > R(0)
Executar |x| passos de T(1R(0)) verificando se Rn(0) > |x| ==> Rn(0) > |x| > Rn-1(0)
n
até achar o intervalo e verificar se n é par ou impar
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Suponha L unária e NP-completa
Existe uma redução R polinomial, tal que, x SAT, sss R(x) L
Teorema: Se existe uma linguagem unária (L {1}*) NP-completa então NP = P
Notação: t {0,1} * => A[t] = fórmula A avaliada parcialmente por t (ordem nas letras)
Árvore de avaliação do valor verdade de AA
A[0] A[1]
A[00] A[01] A[10] A[11]
t .... f t t .. f f ... t t ... t
n = |A|
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Construção de um algoritmo poli para SAT
Verifica(A[t]) = Se |t| = n então Se A[t]{} então falso senão verdadeiro (A[t] verd) senão Verifica(A[t0]) or Verifica(A[t1])
Algoritmo I
Algoritmo II
Verifica(A[t]) = Se |t| = n então Se A[t]{} então falso senão verdadeiro (A[t] verd) senão Se Tabela(hash(t))=DEF então Tabela(hash(t)) senão Verifica(A[t0]) or Verifica(A[t1]); Insere_Resultado_emTabela;
1- Ter domínio pequeno (poli)2- Se hash(t)=hash(t’) então A[t] Sat sse A[t’] Sat
Propriedades desejáveis do hashing:
hash(t) = R(A[t])
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Estimativa de complexidade do Algoritmo II
1- Sendo C o número de chamadas recursivas então a complexidade é O(C.p(n)).
2- Existe uma sequência de avaliações parciais : {t1,..., tk} tal que - k C/2n - todas as chamadas associadas são recursivas - nenhum ti e préfixo de nenhum tj (i distinto de j)
Conclusão: O valor máximo de k é p(n), então
p(n) C/2n O(np2(n)) é uma cota para Algoritmo II
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Speedup Linear
Máquina M original a b c b
|Q| estados
|| símbolos
=> Seja m um inteiro (dependendo de e de M) m
Máquina Ma b c b
|| + ||m símbolos
c a
abcb. .ca
m
a c
ac......muito mais que |Q| estados
Ago/2003 Topicos em Teoria de ComplexidadeProf. Edward Hermann Haeusler
TECMF
Passos na simulação de M por M:
1- Copiar o string da fita de entrada nas n/m primeiras células da segunda fita
2- Simular cada m passos de M em 6 passos de M.
a b c b c a a c cm m
.......abc
bcaacc....
cb
bc........
- 4 (E,D,D,E) para “ler símbolos” relevantes , armazena nos estados- 2 (E,D ou D,E) para fazer as m substuições
3 - (1) gasta n+2 passos e 2 gasta 6.f(n)/m , total = 6.f(n)/m + n+2
4 - Fazendo m = 6/ obtem-se o resultado
Top Related