Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Problemas Computacionais
Campos intimamente relacionados com a cincia da computao terica so a anlise de algoritmos e a teoria da
computabilidade. Uma distino chave entre a anlise
de algoritmos e teoria da complexidade computacional
que a primeira dedicada a analisar a quantidade de recursos necessrios para um determinado algoritmo resolver um problema, enquanto o segundo faz uma pergunta
mais geral sobre todos os possveis algoritmos que podem ser usados para resolver o mesmo problema. Mais
precisamente, ele tenta classicar os problemas que podem ou no podem ser resolvidos com os recursos devidamente restritos. Por sua vez, impondo restries sobre
os recursos disponveis o que distingue a complexidade
computacional da teoria da computabilidade: a segunda
pergunta que tipos de problemas podem, em princpio,
ser resolvidos atravs de algoritmos.
PROBLEMAS COMPUTACIONAIS
trais na teoria da complexidade computacional. Um problema de deciso um tipo especial de problema computacional cuja resposta sim ou no, ou alternativamente
1 ou 0. Um problema de deciso pode ser visto como
uma linguagem formal, onde os membros da linguagem
so instncias cuja resposta sim, e os no membros da
linguagem so aquelas instncias cuja sada no. O objetivo decidir, com a ajuda de um algoritmo, se uma
dada sequncia de entrada um membro da linguagem
formal em considerao. Se o algoritmo decidir este pro1.2 Representando instncias de problema blema, ele retorna a resposta sim, diz-se que o algoritmo
aceita a sequncia de entrada, caso contrrio, diz-se que
Ao considerar problemas computacionais, uma instncia rejeita a entrada.
de problema uma cadeia sobre um alfabeto. NormalUm exemplo de um problema de deciso o seguinte. A
mente, o alfabeto considerado como sendo o alfabeto
entrada um grafo arbitrrio. O problema consiste em
binrio (ou seja, o conjunto {0,1}), e, assim, as cadeias
decidir se o dado grafo conexo ou no. A linguagem
so bitstrings. Como em um computador do mundo real,
formal associada a este problema de deciso ento o
objetos matemticos que no so bitstrings devem ser deconjunto de todos os grafos conexosobviamente, para
vidamente codicados. Por exemplo, nmeros inteiros
obter uma denio precisa dessa linguagem, preciso
podem ser representados em notao binria, e grafos podecidir como grafos so codicados como cadeias bindem ser codicados diretamente via suas matrizes de adrias.
jacncia, ou por codicao de suas listas de adjacncia
em binrio.
Apesar de algumas provas de complexidade-terica de teoremas regularmente assumir alguma escolha concreta de
codicao de entrada, tenta-se manter a discusso abstrata o suciente para ser independente da escolha da codicao. Isto pode ser conseguido assegurando que diferentes representaes possam ser transformadas em outra
de forma eciente.
2.2
para resolver um problema para um grafo com 2n vr- nir as classes de complexidade, tais como mquinas de
tices comparado ao tempo levado para um grafo com n Turing determinsticas, mquinas de Turing probabilstivrtices?
cas, mquinas de Turing no-determinsticas, mquinas
Se o tamanho da entrada n, o tempo gasto pode ser de Turing qunticas, mquinas de Turing simtricas e
expresso como uma funo de n. J que o tempo gasto mquinas de Turing alternadas. Todas elas so igualem diferentes entradas de mesmo tamanho pode ser di- mente poderosas, em princpio, mas quando os recursos
ferente, o pior caso em complexidade de tempo T(n) (tais como tempo e espao) so limitados, algumas destas
denido como sendo o tempo mximo dentre todas as podem ser mais poderosas do que outras.
entradas de tamanho n. Se T(n) um polinmio em n,
ento o algoritmo dito ser um algoritmo de tempo polinomial. A tese de Cobham diz que um problema pode
ser resolvido com uma quantidade factvel de recursos se
ele admite um algoritmo de tempo polinomial.
2.1
Mquina de Turing
2.3
Medidas de complexidade
2.4
Melhor, pior e caso mdio de comple- 2.5 Limites superior e inferior da complexidade
xidade dos problemas
Visualizao do algoritmo quicksort que tem no caso mdio desempenho (n log n).
Para classicar o tempo de computao (ou recursos semelhantes, como o consumo de espao), necessrio provar os limites superiores e inferiores sobre a quantidade
mnima de tempo exigida pelo algoritmo mais eciente
para resolver um determinado problema. A complexidade de um algoritmo geralmente entendida como a
sua complexidade de pior caso, a menos que seja especicado o contrrio. A anlise de um determinado algoritmo cai sob o campo de anlise de algoritmos. Para
mostrar um limite superior T(n) sobre a complexidade
de tempo de um problema, necessrio mostrar apenas
que h um determinado algoritmo com tempo de funcionamento, no mximo, T(n). No entanto, provar limites
inferiores muito mais difcil, uma vez que limites inferiores fazem uma declarao sobre todos os possveis
algoritmos que resolvem um determinado problema. A
frase todos os algoritmos possveis inclui no apenas os
algoritmos conhecidos hoje, mas qualquer algoritmo que
possa ser descoberto no futuro. Para mostrar um limite
inferior de T(n) para um problema requer mostrar que
nenhum algoritmo pode ter complexidade de tempo menor do que T(n).
3.2
que as complexidades do tempo em quaisquer dois modelos razoveis e gerais de computao so polinomialmente relacionados (Goldreich 2008, Chapter 1.2). Isto
forma a base para a classe de complexidade P, que o
conjunto de problemas de deciso solveis por uma mquina de Turing determinstica dentro do tempo polinoLimites inferiores so geralmente indicados usando a no- mial. O conjunto correspondente de problemas de funo
FP.
tao
Classes de complexidade
3.1
Uma classe de complexidade um conjunto de problemas de complexidade relacionados. As classes mais simples de complexidade so denidas pelos seguintes fatores:
O tipo de problema computacional: Os problemas
mais comumente utilizados so problemas de deciso. No entanto, classes de complexidade podem ser
denidas com base em problemas de funo, problemas de contagem, problemas de otimizao, problemas de promessa, etc.
EXPSPACE
?
=
EXPTIME
?
=
PSPACE
?
=
NP
?
=
?
=
NL
3.4
Reduo
4 Importantes
aberto
problemas
em
NP Problems
P Problems
NP Complete
4.3
7
inteiro. Formulado como um problema de deciso, o
problema para decidir se a entrada tem um fator menor
que k. Nenhum algoritmo de fatorao de inteiro eciente conhecido, e este fato a base de vrios sistemas
criptogrcos modernos, como o algoritmo RSA. O problema da fatorao de inteiros est em NP e em co-NP
(e at mesmo em UP e co-UP [9] ). Se o problema NPcompleto, a hierarquia de tempo polinomial colapsar
para seu primeiro nvel (ou seja, NP ser igual a co-NP).
O melhor algoritmo conhecido para fatorao de inteiros
o GNFS (general number eld sieve), que leva tempo
1/3
1/3
2/3
O(e(64/9) (n.log 2) (log (n.log 2)) ) para fatorar um inteiro de
n-bit. No entanto, o melhor algoritmo quntico conhecido para este problema, o algoritmo de Shor, executado em tempo polinomial. Infelizmente, este fato no
diz muito sobre onde est o problema com relao a classes de complexidade no-quntica.
Muitas classes de complexidade conhecidas so suspeitas de no serem iguais, mas isso no foi provado. Por
exemplo, P NP PP PSPACE, mas possvel que
P = PSPACE. Se P no for igual a NP, ento P no ser
igual PSPACE tambm. Uma vez que existem muitas
classes de complexidade conhecidas entre P e PSPACE,
4.2 Problemas em NP que no se sabe se tais como RP, BPP, PP, BQP, MA, PH, etc, possvel
que todas estas classes de complexidade colapsem para
pertencem a P ou a NP-completo
uma nica classe. Provar que qualquer uma destas clasFoi mostrado por Ladner que, se P NP, ento exis- ses no so iguais seria um grande avano na teoria da
tem problemas em NP que no esto nem em P nem em complexidade.
NP-completo.[3] Tais problemas so chamados de pro- Na mesma linha, co-NP a classe que contm os probleblemas NP-intermedirio. O problema do isomorsmo mas do complemento (ou seja, problemas com as resposde grafos, o problema do logaritmo discreto e o problema tas sim / no invertidas) dos problemas NP. Acredita-se
de fatorao de inteiros so exemplos de problemas que [10] que NP no seja igual a co-NP, no entanto, ainda no
acredita-se que sejam NP-intermedirio. Eles so alguns foi comprovado. Tem sido mostrado que, se essas duas
dos muito poucos problemas NP que no se sabe se esto classes de complexidade no so iguais, ento P no
em P ou em NP-completo.
igual a NP.
O problema do isomorsmo de grafos o problema com- Da mesma forma, no se sabe se L (o conjunto de todos
putacional para determinar se dois grafos nitos so iso- os problemas que podem ser resolvidos no espao logamorfos. Um importante problema no resolvido na teo- rtmico) est contido estritamente em P ou igual a P.
ria da complexidade se o problema do isomorsmo de Novamente, existem muitas classes de complexidade engrafos est em P, NP-completo, ou NP-intermedirio. A tre elas, tais como NL e NC, e no se sabe se elas so
resposta no conhecida, mas acredita-se que o problema classes iguais ou distintas.
no seja, pelo menos, NP-completo.[7] Se o isomorsmo
de grafos for NP-completo, a hierarquia de tempo po- Suspeita-se que P e BPP sejam iguais. No entanto, um
linomial colapsa para seu segundo nvel.[8] Uma vez que problema em aberto, no momento, se BPP = NEXP.
acredita-se veemente que a hierarquia polinomial no colapse para nenhum nvel nito, acredita-se que o isomorsmo de grafos no seja NP-completo. O melhor algo- 5 Intratabilidade
ritmo para este problema, de acordo com Laszlo Babai
e Eugene Luks tem tempo de execuo 2O((n log(n))) para Problemas que podem ser resolvidos na teoria (por exemgrafos com n vrtices.
plo, dado um tempo innito), mas que na prtica levam
O problema da fatorao de inteiros o problema com- muito tempo para as suas solues sejam teis, so coputacional para determinar a fatorao prima de um dado nhecidos como problemas intratveis.[11] Na teoria da
7 HISTRIA
7 Histria
Antes de a pesquisa propriamente dita explicitamente dedicada complexidade dos problemas algortmicos comear, os numerosos fundamentos foram estabelecidos
por vrios pesquisadores. O mais inuente entre estes foi
a denio das mquinas de Turing por Alan Turing em
1936, que acabou por ser uma noo muito robusta e exvel de computador.
Fortnow & Homer (2003) datam o incio dos estudos sistemticos em complexidade computacional com o importante artigo On the Computational Complexity of Algorithms de Juris Hartmanis e Richard Stearns (1965),
que estabeleceu as denies de complexidade de tempo
e de espao e provou os teoremas de hierarquia.
De acordo com Fortnow & Homer (2003), trabalhos anteriores que estudaram problemas solucionveis por mquinas de Turing com recursos especcos limitados inclui a denio de John Myhill de autmatos linearmente
limitados (Myhill 1960), o estudo de Raymond Smullyan
sobre conjuntos rudimentares (1961), assim como o artigo de Hisao Yamada [15] sobre computao em tempo
O que intratabilidade signica na prtica est aberto em real (1962). Um pouco mais cedo, Boris Trakhtenbrot
debate. Dizer que um problema no est em P no im- (1956), um pioneiro no campo da URSS, estudou outra
plica que todos os grandes casos de problemas so dif- medida especca de complexidade.[16] Como lembra ele:
ceis ou at mesmo que a maioria deles so. Por exemplo,
o problema da deciso na Aritmtica de Presburger tem
demonstrado no estar em P, ainda foram escritos algoritmos que resolvem o problema em tempos razoveis na
maioria dos casos. Da mesma forma, os algoritmos podem resolver o problema da mochila NP-completo em
uma ampla faixa de tamanhos em menos que o tempo
quadrtico e resolvedores de SAT rotineiramente lidam
com grandes instncias do problema de satisfatibilidade
booleana NP-completo.
A teoria da complexidade contnua pode se referir teoria da complexidade dos problemas que envolvem funes contnuas que so aproximadas por discretizaes,
como estudado em anlise numrica. Uma abordagem
para a teoria da complexidade da anlise numrica [12]
a complexidade baseada em informao (IBC).
A teoria da complexidade contnua tambm pode se referir teoria da complexidade do uso da computao analgica, que utiliza sistemas dinmicos contnuos e equaes
diferenciais.[13] A teoria de controle pode ser considerada
uma forma de computao e equaes diferenciais so
usadas na modelagem de sistemas de tempo contnuo e
hbridos de tempo discreto-contnuo.[14]
10.1
Bibliograa
Ver tambm
[6] Jae, Arthur M. (2006), The Millennium Grand Challenge in Mathematics, Notices of the AMS 53 (6), http://
www.ams.org/notices/200606/fea-jaffe.pdf, visitado em
2006-10-18.
[7] Arvind, Vikraman; Kurur, Piyush P. (2006), Graph isomorphism is in SPP, Information and Computation 204
(5): 835852, doi:10.1016/j.ic.2006.02.002.
[8] Uwe Schning, Graph isomorphism is in the low hierarchy, Proceedings of the 4th Annual Symposium on Theoretical Aspects of Computer Science, 1987, 114124;
also: Journal of Computer and System Sciences, vol. 37
(1988), 312323
[9] Lance Fortnow. Computational Complexity Blog: Complexity Class of the Week: Factoring.
September 13, 2002.
http://weblog.fortnow.com/2002/09/
complexity-class-of-week-factoring.html
[10] Boaz Baraks course on Computational Complexity
Lecture 2
Notas
[1] Escolha uma cidade, e pegue todas as ordenaes possveis das outras 14 cidades. Depois divida por dois, porque
no importa em qual direo pelo tempo elas vm uma
aps a outra: 14 / 2 = 43.589.145.600.
10
Referncias
10.1 Bibliograa
Arora, Sanjeev; Barak, Boaz (2009), Computational
Complexity: A Modern Approach, Cambridge, ISBN
978-0-521-42426-4, http://www.cs.princeton.edu/
theory/complexity/
10
11 LIGAES EXTERNAS
Downey, Rod;
Fellows, Michael (1999),
Parameterized complexity, Berlin, New York:
Springer-Verlag,
http://www.springer.com/sgw/
cda/frontpage/0,11855,5-0-22-1519914-0,00.
html?referer=www.springer.de%2Fcgi-bin%
2Fsearch_book.pl%3Fisbn%3D0-387-94883-X
Du, Ding-Zhu; Ko, Ker-I (2000), Theory of Computational Complexity, John Wiley & Sons, ISBN 9780-471-34506-0
Goldreich, Oded (2008), Computational Complexity: A Conceptual Perspective, Cambridge University Press, http://www.wisdom.weizmann.ac.il/
~{}oded/cc-book.html
van Leeuwen, Jan, ed. (1990), Handbook of theoretical computer science (vol. A): algorithms and
complexity, MIT Press, ISBN 978-0-444-88071-0
Papadimitriou, Christos (1994), Computational
Complexity (1st ed.), Addison Wesley, ISBN
0201530821
Sipser, Michael (2006), Introduction to the Theory
of Computation (2nd ed.), USA: Thomson Course
Technology, ISBN 0534950973
Predenio:Garey-Johnson
10.2
Surveys
Khalil, Hatem; Ulery, Dana (1976), A Review of Current Studies on Complexity of Algorithms for Partial Dierential Equations, ACM
'76 Proceedings of the 1976 Annual Conference,
pp.
197, doi:10.1145/800191.805573, http://
portal.acm.org/citation.cfm?id=800191.805573
Cook, Stephen (1983), An overview of computational complexity, Commun. ACM (ACM) 26
(6): 400408, doi:10.1145/358141.358144, ISSN
0001-0782
Fortnow, Lance; Homer, Steven (2003), A Short
History of Computational Complexity, Bulletin of
the EATCS 80: 95133, http://people.cs.uchicago.
edu/~{}fortnow/papers/history.pdf
Mertens, Stephan (2002), Computational Complexity for Physicists, Computing in Science and
Engg.
(Piscataway, NJ, USA: IEEE Educational Activities Department) 4 (3): 3147,
doi:10.1109/5992.998639, ISSN 1521-9615
11
Ligaes externas
11
12
12.1
12.2
Imagens
Ficheiro:Complexity_classes.svg Fonte: https://upload.wikimedia.org/wikipedia/commons/b/bc/Complexity_classes.svg Licena: Public domain Contribuidores: Sem fonte automaticamente legvel. Presume-se que seja obra prpria, baseando-se nas informaes sobre
direito autoral. Artista original: Sem fonte automaticamente legvel. Presume-se que a autoria seja de Booyabazooka, baseando-se nas
informaes sobre direito autoral.
Ficheiro:Complexity_subsets_pspace.svg Fonte: https://upload.wikimedia.org/wikipedia/commons/6/6e/Complexity_subsets_pspace.
svg Licena: Public domain Contribuidores: Own work by uploader, intended to replace bitmap image illustrating same thing Artista original:
Hand drawn in Inkscape Qef
Ficheiro:Decisao.png Fonte: https://upload.wikimedia.org/wikipedia/commons/7/78/Decisao.png Licena: CC BY-SA 3.0 Contribuidores: Obra do prprio Artista original: AidaFernandaUFPE
Ficheiro:Magnifying_glass_01.svg Fonte: https://upload.wikimedia.org/wikipedia/commons/3/3a/Magnifying_glass_01.svg Licena:
CC0 Contribuidores: ? Artista original: ?
Ficheiro:Maquina.png Fonte: https://upload.wikimedia.org/wikipedia/commons/3/3d/Maquina.png Licena: Public domain Contribuidores: en.wikipedia Artista original: Schadel (http://turing.izt.uam.mx)
Ficheiro:Sorting_quicksort_anim.gif Fonte: https://upload.wikimedia.org/wikipedia/commons/6/6a/Sorting_quicksort_anim.gif Licena: CC-BY-SA-3.0 Contribuidores: originally upload on the English Wikipedia Artista original: Wikipedia:en:User:RolandH
Ficheiro:TSP_Deutschland_3.png Fonte: https://upload.wikimedia.org/wikipedia/commons/c/c4/TSP_Deutschland_3.png Licena:
Public domain Contribuidores: https://www.cia.gov/cia/publications/factbook/maps/gm-map.gif Artista original: Este cheiro foi inicialmente carregado por Kapitn Nemo em Wikipdia em alemo
Ficheiro:Theoretical_computer_science.png Fonte: https://upload.wikimedia.org/wikipedia/commons/e/ea/Theoretical_computer_
science.png Licena: GFDL Contribuidores: Derivative work based on this image by German Wikipedia user Paeng Artista original:
User:RobinK
12.3
Licena