Mostre que CIRCUIT-SAT ≤P SAT. Dica: coloque nomes de variáveis para os fios também, além das entradas.
Mostre que SAT ≤P 3-CNF-SAT. Dica: a partir de uma árvore sintática para a fórmula, dê nomes de variáveis aos nós internos da árvore, construa cláusulas para cada nó interno, transforme cada cláusula em ≤3-CNF, depois em 3-CNF.
Mostre que 3-CNF-SAT ≤P CLIQUE. Dica: construa um vértice para cada literal de cada cláusula e ligue literais consistentes em cláusulas distintas. A fórmula será satisfatível se e somente se o grafo tiver uma clique de tamanho n/3, onde n é o número total de vértices.
Mostre que CLIQUE ≤P VERTEX-COVER. Dica: use STABLE-SET como intermediário.
Mostre que 3-CNF-SAT ≤P 3-COLOR. Dica: veja Problema 34-3 do Cormen.
Que tipos de portas lógicas podem ser usadas em instâncias de CIRCUIT-SAT?
Em CIRCUIT-SAT, um único fio pode ligar quantas entradas e quantas saídas de portas lógicas?
O que é o fan-out de um fio? E o fan-in?
Se representarmos cada porta lógica de uma instância de CIRCUIT-SAT por um vértice, e colocarmos um arco de p1 a p2 sempre que a saída de p1 estiver ligada à entrada de p2, qual propriedade este grafo orientado deverá ter? Quantos vértices de grau de saída 0 este grafo poderá ter?
Com relação a instâncias de CIRCUIT-SAT, defina atribuição de valores-verdade, atribuição satisfatória e circuito satisfatível.
Defina a linguagem CIRCUIT-SAT.
Como se define o tamanho de uma instância de CIRCUIT-SAT?
Quais são as 6 partes que formam a configuração de uma máquina no modelo de computação utilizado por Cormen para algoritmos de verificação? Quais destas partes mudam ao longo da execução do algoritmo? Quais não mudam?
O circuito construido a partir de um algoritmo verificador A para uma linguagem L tem quantas cópias do circuito M que implementa a execução de 1 instrução da máquina do modelo? Qual o tamanho de M em função do tamanho n da entrada e da função T que é um limite superior de tempo para A?
O problema de resolver uma equação numérica de 1o. grau pode ser reduzido a resolver uma equação numérica de 2o. grau. A fórmula de solução para equações de 2o. grau pode ser usada para resolver equações de 1o. grau? Como?
Defina o que significa L1 ≤PL2 para linguagens binárias L1 e L2.
O que se pode dizer de L1 quando L1 ≤PL2 e L2 ∈ P?
Defina o que significa dizer que uma linguagem é NP-completa. Como se define a classe NPC?
O que se pode dizer se houver uma linguagem L tal que L ∈ NPC e L ∈ P?
O que se pode dizer sobre NPC se P ≠ NP?
Defina o que significa dizer que uma linguagem é NP-difícil.
O que se pode dizer de L2 quando L1 ≤PL2 e L1 ∈ NPC?
Porque problemas que podem ser resolvidos em tempo polinomial são considerados "tratáveis"? Dê três motivos.
O que é um problema abstrato?
Para que servem codificações?
Defina alguns conceitos básicos da teoria de linguagens formais: alfabeto, linguagem, string vazia, linguagem vazia, operações sobre linguagens (união, intersecção, complemento, concatenação).
O que é o fecho de uma linguagem L, denotado por L*?
O que significa dizer que uma string s é aceita por um algoritmo A? E o que é s ser rejeitada por A?
O que significa dizer que uma linguagem L é aceita por um algoritmo A? E o que é L ser decidida por A?
O que significa dizer que uma linguagem L é aceita (decidida) por um algoritmo A em tempo polinomial?
Defina a classe P.
Exercícios:
Exercício 34.1-1 do Cormen.
Dê uma versão de decisão para o problema de achar uma árvore espalhada mínima num grafo não orientado ponderado.
Mostre que se uma linguagem L está em P, então L* também está em P.
Conhece-se um algoritmo polinomial para algum problema NP-completo? Pode-se dizer que não há algoritmo polinomial para um problema NP-completo?
Às vezes dois problemas com enunciados semelhantes podem ser: um deles polinomial e o outro NP-completo. Dê exemplos.
O que são as classes P e NP? É verdade que P ⊆ NP? É verdade que NP ⊆ P?
O que é a classe NPC? Ela é diferente de NP?
Quais são os principais elementos para mostrar que um problema é NP-completo?
O que são problemas de decisão? Qual sua relação com problemas de otimização?
O que é uma redução de um problema A para um problema B?
Porque precisamos de um primeiro problema NP-completo?
Exercícios:
Ache um problema de decisão intimamente relacionado ao problema do ciclo hamiltoniano.
Ache um problema de decisão intimamente relacionado ao problema de coloração de grafos.
O problema de saber se P=NP é um dos grandes desafios da computação contemporânea. Qual o valor que o Instituto Clay se comprometeu a pagar ao primeiro que resolver esta questão?
Como emparceirar n equipes que estejam disputando um campeonato de todos contra todos? Quantas rodadas são necessárias?
Defina os seguintes termos: k-aresta-coloração, coloração própria de arestas, grafo k-aresta-colorável, índice cromático.
Para grafos simples G, o que pode dizer sobre a relação entre o índice cromático χ'(G) e o grau máximo Δ(G)?
O que é um grafo "classe 1"? E um grafo "classe 2"?
A que classe pertencem os grafos bipartidos?
Qual a relação entre χ'(G) e Δ(G) em grafos com arestas múltiplas?
O que é um grafo overfull (transbordante?) A que classe tais grafos pertencem?
O que diz o Teorema de Vizing e quais os elementos principais de sua prova? Consulte, além do livro de West, adotado nesta disiplina, um paper interessante de Misra e Gries sobre o assunto, publicado em 1990.
Exercícios:
Exercício 7.1.1 do West, apenas χ'(G).
Calcule o número de 3-aresta-colorações próprias de K3,3.
Mostre um grafo G e uma escolha de emparelhamentos máximos tais que o algoritmo a seguir NÃO forneça o índice cromático de G.