Escolar Documentos
Profissional Documentos
Cultura Documentos
PalomaRibeiro,RafaelFogliato
CursodeCinciadaComputaoUniversidadeFederaldoPampa(Unipampa)
CampusdeAlegrete
Resumo
.Opresentetrabalhotemcomoobjetivo estudar problemaspertencentesasclassesP
e NPCompleto, contendo definio, possvel soluo e comentrios sobre os problemas
escolhidos.
1.ProblemasClasseP
1.1
CAMINHO
Prova.
Umalgoritmodetempopolinomial
M
para
CAMINHO
operadaseguintemaneira:
M
=Sobreaentrada(
G,s,t
)ondeGumgrafodirecionadocomns
s
e
t
:
1. Coloqueumamarcasobreon
s
.
2. Repitaosseguintespassosatquenenhumnadicionalestejamarcado.
3. Faa uma varredura nas arestas de
G
. Se uma aresta (
a,b
) for encontrada indo deum
nmarcado
a
paraumnmarcado
b
,marqueon
b
.
4. Setestivermarcado,
aceite
.Casocontrrio,
rejeite
.
Comentrio.
Para obter um algoritmo de tempo polinomial paraCAMINHO
,umamaneira
usar um mtodo de busca em grafo tal como busca em largura,marcandotodos osnsem
G
quesoatingveisapartirde
s
porcaminhosdirecionados.
1.2
PRIMENTSI
Definio.
[1] Dois nmeros so
primos entre si se 1 o maior inteiro que divide ambos.
Por exemplo, 10 e 21 so primos entre si, muito embora nenhum dos dois seja um nmero
primo em si prprio, enquanto que 10 e 22 no so primos entre si porque ambos so
divisveis por 2. Seja
PRIMENTSI o problema de se testar se dois nmeros so primosentre
si:
PRIMENTSI=
{
(x,y)
|
x
e
y
soprimosentresi}.
Prova.
Oalgoritmoeuclideano,E,comosegue:
E=Sobreaentrada(x,y),onde
x
e
y
sonmerosnaturaisembinrio:
1. Repitaatque
y
=0.
2. Faaaatribuiox
<
xmody
.
3. Intercambieoscontedosde
x
e
y
.
4. Dcomosada
x
Oalgoritmo
R
resolve
PRIMENTSI
,usando
E
comoumasubrotina.
R=Sobreaentrada
(x,y)
,onde
x
e
y
sonmerosnaturaisembinrio:
1. RodeEsobre
(x,y)
.
2. Seoresultadofor1,
aceite
.Casocontrrio,
rejeite
.
1.3LINGUAGENSLIVREDECONTEXTO
Definio.
[1]TodalinguagemlivredecontextomembrodeP.
Prova.
O algoritmo D implementa a prova, Seja G uma GLC na forma normal deChomsky
L.AssumindoqueSavarivelinicial.
D=Sobreaentradaw=w1...wn:
1. Sew=
eS>
umaregra,aceite.
2. Parai=1atn,
3. ParacadavarivelA,
4. TesteseA>b,umaregra,ondeb=w
i
.
5. Sefor,coloqueAnatabelaa(i,i).
6. Paral=2atn,
7. Parai=1atnl+1,
8. Faaj=i+l1,
9. Parak=iatj1,
10. ParacadaregraA>BC,
11.
Setabela(i,k)contmBetabela(k+1,j) contmC,
natabela(i,j).
12. SeSestemtabela(1,n),
aceite
.Casocontrrio,
rejeite
.
pontaA
Comentrio.
1.4QUICKSORT
Definio:
[2] um dos algoritmos de ordenao que usa diviso e conquista, que consistem
em particionar o problema em instncias menores, resolvendoos sucessiva e
independentemente, e ao final combinandoas para obter a soluo do problema original. O
resultadoumvetorcompletamenteordenado.
Prova.
Oalgoritmosegueosseguintespasso:
1. Escolhaumelementodalista,denominadopiv
2. Rearranje a lista de forma que todos os elementos anteriores ao piv sejam menores
queele,etodososelementosposterioresaopivsejammaioresqueele.
3. Recursivamente ordene a sublista dos elementos menores e a sublista dos elementos
maiores
A base da recurso so as listas de tamanho zero ou um, que esto sempre ordenadas. O
processo finito,poisacadaiteraopelomenosumelementopostoemsua posiofinale
nosermaismanipuladonaiteraoseguinte.
Oalgoritmodeordenao
Quicksort
podeterasseguintescircunstncias:
1. Ordenarumasequnciaquejestemordem,comocusto
n
2. Ordenarumasequnciatotalmenteembaralhada,quepossuicusto
n
*log
n
Comentrio.
Sendoo
Quicksort
umalgoritmodeordenaoemtempopolinomial
umproblemadaclasseP,queabrangeamaiorpartedosalgoritmosdeordenao.
2.ClassedeProblemasNPCompletos
2.1Coberturadevrtices
Definio.[3]
UmacoberturadeumgrafonodirigidoG=(V,E)umsubconjuntoVV
tal que (u, v)
E, ento u
V ou v
V. Ou seja, cada vrtice cobre suas arestas
incidente, e uma cobertura de vrtices para G um conjunto de vrtices que cobre todas as
arestas em E. O tamanho da cobertura de vrtices igual ao nmero de vrtices contidos
nessacobertura.
O problema da cobertura de vrtices consiste em encontrar uma cobertura de vrtices de
tamanho mnimo em um dado grafo, ou seja, desejase determinar se um grafo tem uma
coberturadevrticesdetamanhokdado.Adefinioformaldesseproblema:
VERTEXCOVER = {<G, k> : grafo G tem uma cobertura de vrtices de
tamanhok}.
Prova.
Primeiro necessrio demonstrar que
VERTEXCOVER
NP. Primeiro suposto
um grafo G =(V,E)eumvalorinteirok.O certificadoescolhidoacoberturadevrticesV
V. O algoritmodeverificaoutilizadoafirmaque|V|=k,eentoverificasetodaaresta
uev
V.
O problema provado como NPdifcil comparandoo com o problema do clique, esse
algoritmo de reduo tomando como entrada uma instncia <G, K> do problema do clique.
Em seguida tem que ser provado que o resultado datransformaousandooCLIQUEuma
reduo.
Visto que esse problemaNPcompleto,noesperadoencontrarumtempopolinomial para
aencontrarumacoberturadevrticesdetamanhomnimo.
Comentrio.
Mesmo que o problema da cobertura de vrtices seja considerado um
NPcompleto, existem algoritmos de aproximao de tempo polinomial que produzsolues
aproximadas para o problema de cobertura de vrtices. Esse fato indica que, mesmo queum
algoritmo seja consideradoNPcompletonoimpossvelprojetarumalgoritmoqueobtenha
resultadosaproximadosparaesseproblemaemtempopolinomial.
2.2CicloHamiltoniano
Definio. [3]
Um ciclo hamiltonianodeumgrafonodirigidoG=(V,E)umciclosimples
no qual est presente cada vrtice em V. Caso ografocontenhaumciclohamiltonianoele
definido como hamiltoniano, caso contrrio ele no hamiltoniano. Um exemplo de grafo
hamiltoniano um dodecaedro, enquanto um exemplo de um grafo no hamiltoniano um
grafobipartidocomumnmerompardevrtices.
O problema do ciclo hamiltoniano consiste em definir se um determinado grafo tem ciclo
hamiltoniano.Alinguagemformaldesseproblema:
HAMCYCLE
={<G>:Gumgrafohamiltoniano}
Prova. Para provar que esse problema um NPcompleto primeiro necessrio demonstrar
que
HAMCYCLE pertence a NP. No grafo G =(V, E)retiradaasequnciadevrtices|V|,
essa sequncia ento conferido por um algoritmo para checar se cada vrtice em V
percorrido pelomenosuma veznessasequnciaese,comopontodepartidasendotambmo
pontofinal,elaformaumciclonografoG.
Apsisso,necessrioprovarque
HAMCYCLE
NPcompleto,dadoumgrafonodirigido
G=(V,E)eumvalorinteirok,construdoumgrafonodirigidoG=(V,E),ques
possuiumciclohamiltonianocasoGtenhacoberturadevrticesdetamanho
k
.
Para construir esse grafo utilizadoumfragmentodegrafoparaimporalgumaspropriedades
ao grafo G', esse fragmento denominado
widget
. Para cada aresta (
u,v
)pE,ografoG'que
foi construdoconterumacpiadessewidget
.Almdaestruturainternado
widget
tambm
imposta as propriedades desejadas limitando as conexesentreowidgeteorestantedografo
G. Essalimitaofeitapradiminuironmerodecaminhosquepassempelo
widget evisite
todososvrtices.
Os nicos vrtices presentes em V1 alm dos vrtices dos widgets so os vrtices seletores
(s1, s2, , s
k
). So usadas arestasincidentes emvrticesseletoresdeGparaselecionarosk
vrticesdacoberturanografoG.
Alm das arestas em
widgets
, E contm dois outros tipos de arestas. Primeiramente para
cada vrtice u
V so adicionadas arestas para unirparesde
widgetsparaassimformarum
caminho que contm todos os
widgets que correspondem aarestasincidentesemG.criado
um caminho em G quepassaportodosos
widgets
quecorrespondemaarestasincidentesem
u e adicionando elas a E. O motivo dessa ao com as arestas que, se escolhermos um
vrtice u V na cobertura de vrtices de G, possvel construir um caminho em G que
cobre todosos
widgetsquecorrespondemaarestasincidentesemu.Ooutrotipodearestaem
E une o primeiro e ltimo vrtice de cada um dos caminhos at a cada um dos vrtices
seletores.
2.3.ProblemadoClique
Definio. Um clique em um grafo no dirigido G = (V, E) um subconjunto V
V de
vrtices, no qual cada par est ligado por uma aresta em E. Ou seja, o clique um subgrafo
completo de G. O tamanho desse subgrafo igual ao nmero de vrtices que contm. O
problema do clique consistem em encontrar um subgrafo de tamanho mximo em um grafo.
Esse problema categorizado como um de deciso, entoaquestoperguntarseumclique
deumdadotamanhokexistenografo.Adefinioformaldesseproblema:
CLIQUE={<G,K>:Gumgrafocomumcliquedetamanhok}.
construdoumgrafoGondeafrmulaF(queserinstanciadapor2CNFSAT)s
satisfazvel se e somente se G ter um clique de tamanho k. O grafo ento construdo da
seguinte maneira. Para cada clusula da frmula inserida uma tripla devrticesv1,v2ev3
emV.Umaarestainseridaentredoisvrtices
vr
e
vs
seambasasafirmativassovlidas:
vr
e
vs
estoemtriplasdiferentes,ouseja,rdiferentedese
seusliteraissocoerentes,
lr
noanegaode
ls
.
A partir dessa frmula F possvel construir um grafo em tempo polinomial. E
necessrioprovarqueatransformaodeFemGumareduo.
Como possvel reduzir uma instnciaqualquerde3CNFSATaumainstnciadeCLIQUE
isso sozinho j basta para afirmar que o CLIQUE um NPdifcil, j que se houvesse um
algoritmo em tempo polinomial que resolvesse CLIQUE em grafos gerais ele tambm
resolveriaCLIQUEemgrafosirrestritos.
Comentrio. O clique consiste em um subconjunto completo dentro de um grafo, e o
problema do clique pode ser resumido em encontrar o maior clique possvel.Aprovadeque
esse problema NPcompleto feita usando como auxlio o problema de satisfazibilidade
3CNF e traando um paralelo entre ambos problemas reduzindo o CLIQUE a partir da
satisfazibilidadedasfrmulas.
2.4.CaixeiroViajante
Definio.
[3] No problema do caixeiro viajante um vendedor deve visitar n cidades.
possvel modelar esse problema como um grafo, onde cada cidade que o vendedor deve
visitar representada por um vrtice, e o vendedor deve fazer um percurso onde ele visita
todas as cidades exatamenteumavez,e,paracadaviagementrecidadeeleincorreemcusto
inteiro no negativo. O mote principal desse problema encontrar o caminho no qual o
vendedorfaaessepercursocomomenorcustopossvel.Adefinioformaldoproblema:
TSP={<G,c,k>:G=(V,E)umgrafocompleto,
cumafunodeVxV>|N,
k
|Ne
polinomial, caso haja um ciclo hamiltoniano no grafo produzido, no ser mais possvel a
soluoemtempopolinomial,oquecomprovaofatodesseproblemaserNPcompleto.
Referncias
[1]SIPSER,MICHAEL.UmaIntroduoaTeoriadaComputao.2005
[2]AulaQuicksort.USP.Disponvel
em:<
http://www.ime.usp.br/~pf/algoritmos/aulas/quick.html
>.Acessoemnovembrode2015.
[3]ThomasH.Cormen,Algoritmos,Traduo3rded,2012