Problemas NP-Completos André Aziz e Natália Flora {aaca,[email protected]} 2André Aziz, Natália...

53

Transcript of Problemas NP-Completos André Aziz e Natália Flora {aaca,[email protected]} 2André Aziz, Natália...

Page 1: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.
Page 2: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 2

Problemas NP-Completos

André Aziz e Natália Flora{aaca,[email protected]}

Page 3: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 3

Para pensar...

• O problema do caixeiro viajante -“travelling-salesman problem”...

“Suponha que um caixeiro viajante tenha de visitar n cidades diferentes, iniciando e encerrando sua viagem na primeira cidade. Suponha, também, que não importa a ordem com que as cidades são visitadas e que de cada uma delas pode-se ir diretamente a qualquer outra.O problema do caixeiro viajante consiste em descobrir a rota que torna mínima a viagem total”.

Fonte: http://www.mat.ufrgs.br/~portosil/caixeiro.html

Page 4: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 4

Para pensar...

Page 5: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 5

Para pensar...

• Para o exemplo 6 pontos (cidades):

• Partindo de A e retornado para A, temos:

FEDCBACidades ,,,,,

120

R

AA

AFBEDCA

AFEBDCA

AFEDBCA

AFEDCBA

R

Page 6: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 6

Para pensar...

• Problema de otimização combinatória.• Pode ser reduzido ao problema de enumeração:

• Suponha 1 computador capaz de realizar 1 bilhão de operações por segundo:

!1 nnR

n Rotas por seg. (109/n-1) (n-1)! Tempo Total

5 250 milhões 24 Insignificante

10 110 milhões 362.880 0,003 seg

15 71 milhões 87 bilhões 20 min

20 53 milhões 1,2x1017 73 anos

25 42 milhões 6,2x1023 470 milhões de anos

Fonte: http://www.mat.ufrgs.br/~portosil/caixeiro.html

Page 7: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 7

Para pensar...

• E se existisse uma redução a um problema de ordem polinomial?

5nnR

n Rotas por seg. (109/n-1) n5 Tempo Total

5 250 milhões 3.125 Insignificante

10 110 milhões 100.000 Insignificante

15 71 milhões 759.375 0,01 seg

20 53 milhões 3.200.000 0,06 seg

25 42 milhões 9.765.625 0,23 seg

Fonte: http://www.mat.ufrgs.br/~portosil/caixeiro.html

Page 8: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 8

Agenda

• Conceitos básicos;

• Redução de problemas;

• Classes de problemas;

• Algoritmos não-determinísticos;

• NP, NP-difícil e NP-completo;

• Técnicas.

Page 9: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 9

Alguns conceitos...

• O que são algoritmos eficientes? – São os algoritmos que apresentam solução em tempo polinomial, ou

seja, O(P(n)), onde P(n) é um polinômio no tamanho da entrada n.

• O que são problemas tratáveis?– Problemas tratáveis são aqueles cuja solução é dada por algoritmos

eficientes.

Na teoria O(n10) é eficiente, porém na prática apenas nos interessam os polinômios de

menor grau!

Page 10: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 10

Redução entre Problemas

• Redução de Turing (Básico):

Uma redução do problema A para o problema B é um par de transformações τI e τS tal que, dada uma instância qualquer IA da entrada de A:

1. τI transforma IA em uma instância IB de B e;

2. τS transforma a solução SB de IB em uma solução SA de IA.

Page 11: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

11

Redução de Turing

• Par de transformações (I e S).

• Quando usar:– Determinar limite superior ou inferior de um algoritmo.– Redução de Turing Otimização

André Aziz, Natália Flora

Problema A Problema B

IA Transforma IA em IB

πB

SBSA

IB

Transforma SB em SA

I

S

Page 12: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 12

Casamento cíclico de cadeias (CSM)

• Entrada: – Alfabeto Σ e duas cadeias de caracteres de tamanho n:

• Problema:– B é um deslocamento cíclico de A?

• Como resolver esse problema?

110110 nn bbbBeaaaA

1,,0,1,,0 mod nibank inik

Page 13: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 13

Casamento de cadeias (SM)

• Entrada: – Alfabeto Σ e duas cadeias de caracteres:

• Problema:– B é uma subcadeia de A?

– Pode ser resolvido através do algoritmos KMP com O(m+n).

nmbbbBeaaaA mn ,110110

1,,0,1,,0 mibank iik

Page 14: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 14

Redução; CSM SM

• Instância de CSM:

• τI constrói instância de SM:

– τI é O(n).

• Se k é a solução de SM para ISM, então k também é solução de ICSM. Logo, τs é O(1) e a redução é O(n).

• Exemplo:

nBAICSM ,,

.',,,2,' AAAondenBnAISM

.2;5,,10,

;5,,

kSS

cdeababcdeabcdeI

cdeababcdeI

CSMSM

SM

CSM

Page 15: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 15

Erros comuns ao usar redução

• Usar a redução na ordem inversa;

• Usar o algoritmo de uma redução sem se preocupar com um outro mais eficiente.

Após a redução AB descobrir que, pelo menos, A é tão difícil quanto B

“Perde tempo tentando entender o

B não.. o A já resolve.. e daí que ele demora mais!”

Page 16: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 16

Redução Polinomial

Definição:Tome L1 e L2 duas linguagens de uma entrada nos espaços U1 e U2, respectivamente. Dizemos que L1 é polinomialmente reduzível a L2 se existe um algoritmo de tempo polinomial que converte cada entrada u1U1 a outra entrada u2U2 tal que u1L1 se e somente se u2L2

* O algoritmo é polinomial no tamanho da entrada u1.

Page 17: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 17

Redução Polinomial

Em outras palavras ...

• Se Af(n) B e f(n) O(n k), para algum valor k real, então a redução de A para B é polinomial.

Daí deduzimos o seguinte teorema ...

Page 18: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 18

Polinomialmente Reduzível

Eu quero ver é provar!

Teorema 11.1:Se L1 é polinomialmente reduzível a L2 e existe um algoritmo de tempo polinomial para L2, então existe um algoritmo de tempo polinomial para L1.

Page 19: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 19

Transitividade

Eu quero ver é provar!

Teorema 11.2:Se L1 é polinomialmente reduzível a L2 e L2 é polinomialmente reduzível a L3, então L1 é polinomialmente reduzível a L3.

Page 20: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

20

Problema da Satisfatibilidade (SAT)

• Problema de satisfazer uma fórmula lógica F na formal normal conjuntiva:

• Foi o primeiro problema identificado como pertencente a classe a NP-completo (Teorema de Cook).

• Existe algum valor para as variáveis x1,x2,...,xn tal que F seja verdadeira?

André Aziz, Natália Flora

2121 ,... iiim xxCondeCCCF

Page 21: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 21

Problema da Satisfatibilidade (SAT)

• Exemplo:

• Solução:

• Para pensar...– Encontrar um algoritmo para SAT. Qual a complexidade dele?

31321321 xxxxxxxxF

101 321 Fxxex

Page 22: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 22

Problema da Satisfatibilidade (SAT)

• Não (existe) se conhece algoritmo eficiente para SAT.

• Achar um algoritmo que o resolve é difícil (resolução), mas verificar se uma solução é válida normalmente é fácil (verificação).

31321321 xxxxxxxxF

101 321 Fxxex

“... chegar lá em cima é possível, difícil é achar o caminho...”

Page 23: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 23

Tipos de Redução e Classes de Problemas

• Redução de Turing (ou Cook):– O algoritmo πB pode ser executado múltiplas vezes, se a redução é

polinomial e o número de chamadas a πB é limitado a um polinômio no tamanho da entrada, pode-se afirmar que o problema reduzido (A) é resolvido em tempo polinomial.

Problema A Problema B

IATransforma IA em IB

πB

SBSA

IB

Transforma SB em SA

I

S

Page 24: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 24

Tipos de Redução e Classes de Problemas

• Redução de Karp:– O algoritmo πB só pode ser usado uma única vez, além disso πB deve

responder SIM para IB sss IA é uma instância SIM para o problema A.

Problema A Problema B

IATransforma IA em IB

πB

SBSA

IB

Transforma SB em SA

I

S

Page 25: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

25

Redução de Karp

• Par de transformações (I e S).

• É um caso particular da Redução de Turing.• Quando usar:

– Usada para provas de pertinência de problemas de decisão.– Redução de Karp problema de decisão.

André Aziz, Natália Flora

Problema A Problema B

IA Transforma IA em IB

πB

SBSA

IB

Transforma SB em SA

I

S

Page 26: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 26

Algoritmos

• Determinísticos:– O resultado de cada operação é definido de maneira única.

• Não-Determinísticos:– São divididos em 2 fases:

• Construção: nesta fase pode ser usado o comando não-determinístico, nd-choice, para a construção da proposta de solução (certificado).

• Verificação: nesta fase são usados apenas comandos determinísticos e a proposta de solução é verificada. Ao final desta fase o algoritmo retornará aceita ou rejeita.

Page 27: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 27

Comando ND-Choice (Escolha)

• Usado para a manipulação de escolhas!

• A complexidade de execução do comando nd-choice é O(1), oráculo!

Dizemos que uma linguagem L é reconhecida por um algoritmo não determinístico se:

Dada uma entrada x , é possível converter cada nd-choice encontrada durante a execução do algoritmo em uma escolha real tal que a saída do algoritmo será aceitar x se e somente se xL.

Page 28: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 28

Complexidade ND

• Algoritmos não-determinísticos– Corresponde ao número mínimo de passos (escolhas) necessários

para que o algoritmo retorne aceitar.– Se o algoritmo retornar rejeita seu tempo de execução é O(1)!

• Uma máquina não-determinística é aquela capaz de executar uma algoritmo não-determinístico.

Page 29: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 29

Simulando MáquinasNão-Determinísticas• Imagine:

– Máquinas com quantidade INFINITA de processadores;

– Processadores se comunicam entre si de modo INSTANTÂNEO.

• A execução de um algoritmo não-determinístico pode ser esquematizado em uma árvore:– Cada caminho começando da raiz corresponde uma sequência de

escolhas.

!@#$

Page 30: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 30

Simulando MáquinasNão-Determinísticas• ... árvores:

– Em um dado vértice, filhos serão criados ao se executar o comando ND-choice (Escolha).

– Para cada novo filho é alocado um novo processador para continuar a execução do algoritmo.

• Imagine que essa árvore de execução é percorrida em largura e que se algum processador retorna Aceitar, ele consegue parar a execução em todos os demais instantaneamente...

......!!

Page 31: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 31

Simulando MáquinasNão-Determinísticas• Exemplo problema CLIQUE:

– Dado um grafo conexo não-orientado– E um inteiro

• G possui um subgrafo completo com k vértices?

Hum!

EVG ,

Vnondenk ,,,1

Page 32: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 32

Simulando MáquinasNão-Determinísticas• Algoritmo não-determinístico para CLIQUE:

• Não (existe) se conhece um algoritmodeterminístico para CLIQUE.

;

;,

,

;1

;

);(

;

;0

,,

SIMretornar

NÃOretornarEvuSe

façaCemvudiferentesvérticesdepartodoPara

jj

uCC

entãoCuSe

SEscolhau

façakjEnquanto

C

j

knGCliqueND

zzZZzzZzzZ...

Complexidade:

22 nOkkO

Page 33: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 33

Classes P e NP

• Definição de P– Conjunto de problemas que podem ser resolvidos por um algoritmo

determinístico polinomial.

• Definição de NP– Conjunto de todos os problemas que podem ser resolvidos por um

algoritmo não-determinístico polinomial.

Como todo algoritmo determinístico é um caso particular de um não-determinístico, temos que PNP.

Page 34: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 34

P = NP?

• Questão fundamental da teoria da computação!– Acredita-se que essa proposição seja falsa!

• Como mostrar que é falsa?– Encontrar um problema ANP e mostrar que nenhum algoritmo

determinístico polinomial pode resolver A.

• Como mostrar que é verdadeira?– Para todo problema BNP existe um algoritmo determinístico

polinomial que o resolve.

Page 35: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

35

Classes NP-difícil e NP-completo

• NP-Difícil:– Classificamos um problema A como NP-Difícil se todo problema de NP

se reduz polinomialmente a A.

– O problema A é pelo menos tão difícil quanto o L;• O problema A não precisa estar NP, pois não precisa ser um problema de

decisão, e se for um problema de decisão ainda sim não precisa estar em NP.

– Se P≠NP então o NP-difícil não tem solução em tempo polinomial.

André Aziz, Natália Flora

Page 36: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 36

Classes NP-difícil e NP-completo

• NP-Completo:– A é um problema NP-Completo se:

• A NP e• A NP-Difícil

Pela definição NP-Completo NP-Difícil, se for encontrado qualquer algoritmo polinomial para um problema em NP-Difícil então ficará provado que P = NP.

Page 37: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 37

Arrumando tudo...

Page 38: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 38

Próximos Passos...

• Teorema de Cook: “SAT é NP-completo”;

• Problema da Parada;

• Tratamento de Problemas NP-difíceis.

Page 39: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 39

Teorema de Cook

• O problema SAT é NP-Completo.

• Para provar usou Máquinas de Turing.

• Abriu portas para novos problemas:– No ano seguinte 24 novos problemas foram identificados como sendo

NP-completos!

Page 40: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 40

Meu problema é NPC?

• Fácil!?...

• ... simples.

Achar um problema NPC que possui uma redução polinomial para o meu problema!

Page 41: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 41

SAT -> Clique

• Tomar E uma expressão booleana qualquer na forma normal conjutiva (CNF);

• Cada cláusula contém n variáveis;

• Qual a resposta para a seguinte expressão SIM ou NÃO?

mEEEE 21

zyzyxzyxE

wzyxEi

Page 42: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 42

SAT -> clique

• Transformamos cada cláusula (com suas n variáveis) em uma “coluna”;

• As variáveis vão representar os vértices;

• Estabelecemos as conexões entre os vértices:– não conectamos variáveis da mesma cláusula;– Não conectamos variáveis complementares;

• Objetivo: Encontrar um clique com pelo menos o número de Cláusulas.

Page 43: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 43

SAT -> Clique

• Vamos para o quadro fazer as seguintes atividades:– Montar o grafo;– Estabelecer as conexões (arestas)!

z

x

y

y

zz

x

y

Page 44: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 44

Indecidibilidade:O Problema da Parada

• Suponha que você recebeu uma subrotina H muito especial que realiza a seguinte tarefa. Dado um programa P implementado por uma codificação <P> e uma entrada x, H retorna SIM se <P> pára com a entrada x e retorna N caso contrário.

• Usando H, posso escrever o programa D representado a seguir cujo objetivo é decidir se um programa P pára quando a sua própria codificação for passada na entrada.

Page 45: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 45

Indecidibilidade:O Problema da Parada

O que acontece se passarmos D como entrada para ele mesmo?Analisando:

Programa D(<P>);a: Se H(<P>, <P>) = SIM, então repita a; se não PARE.

!,

,),(,

!,

,),(,

)(

pararDsesejaou

SIMretornarDDHsepáranão

pararnãoDsesejaou

NÃOretornarDDHsepára

DD

Page 46: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 46

Tratamento de Problemas NP-difíceis

• Backtracking

• Programação Linear

• Heurísticas

• Aproximações

Page 47: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 47

Backtracking

• Representa um refinamento do algoritmo de força bruta, consiste em eliminar múltiplas soluções antes que estas sejam examinadas. – Encontrar uma solução usando este algoritmo consiste em fazer uma

busca em profundidade na EE (árvore de espaço de estados);

– Soluções podem ser representadas por vetores de tamanho fixo ou variável na forma (x1 , ..., xn);

– Solucionar significa encontrar uma tupla que optimiza a função critério P(x1 , ..., xn) ou encontrar todas as tuplas que satisfaçam P(x1 , ..., xn).

Page 48: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

48

Backtracking

• Aplicações:– Pode ser aplicado para problemas que admitem o conceito de

“soluções parciais candidatas”:• Satisfação de restrições.

• Exemplo:– Jogo das oito rainhas;– Palavras cruzadas.

André Aziz, Natália Flora

Page 49: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 49

Tratamento de NP-DifícilBranch & Bound• Utilizado para otimizar a função objetivo.

• Em cada nó da árvore, a função classificadora estima o melhor valor da função objetivo no subespaço do EE representados por aquele nó.

• Os nós são amadurecidos por:– Inviabilidade;– Limitante;– Otimalidade .

• Exemplo de problema: mochila binária (BKP).

Page 50: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 50

• É um método para otimizar a função objetivo sujeita a restrições lineares.

• São expressos como:

• Ou na forma matricial por:

onde A é uma matriz mxn e b e c são vetores de m e n posições respectivamente.

Tratamento de NP-Difícil Programação Linear

njx

mibxa

xcz

j

i

n

j jij

n

j jj

,,1,0

,,1,1

1

min

Sujeito a

nx

bAx

cxz

min

Sujeito a

Page 51: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 51

Tratamento de NP-DifícilProgramação Linear• Exemplo da Fazenda:

– A hectares de terra;– P quantidade de inseticida;– F quantidade de fertilizante;– S preço de venda;– x área plantada de uma cultura.

Área Plantada

MilhoSorgo

0,0 21

2211

2211

21

2211

xx

PxPxP

FxFxF

Axx

xSxSFunção Objetivo

Restrições

Page 52: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 52

Tratamento de NP-DifícilOutras Técnicas

• Heurísticas:– Algoritmos que geram soluções viáveis para as quais não se pode dar

garantias de qualidade.• Não se sabe quão distante sua solução está da solução ótima.

• Aproximações:– Algoritmos aproximados encontram uma solução com garantia de

qualidade em tempo polinomial.

Page 53: Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} 2André Aziz, Natália Flora.

André Aziz, Natália Flora 53

Problemas NP-Completos

André Aziz e Natália Flora{aaca,[email protected]}

Obrigado.