Professional Documents
Culture Documents
Complexidade de Algoritmos
A anlise de algoritmos pode ser vista como uma disciplina de engenharia. Um engenheiro civil, por exemplo, possui mtodos e tcnicas para prever o comportamento de uma estrutura antes mesmo de constru-la. Da mesma forma, um projetista de algoritmos deve ser capaz de prever o comportamento de um algoritmo antes de implement-lo." 08/03/2012 2
Complexidade de Algoritmos
Ao verificar que um determinado programa est muito lento, uma pessoa prtica geralmente pede uma mquina mais rpida ao seu chefe...
08/03/2012
Complexidade de Algoritmos
... No entanto, o ganho potencial que uma mquina mais rpida pode proporcionar tipicamente limitado, por razes tcnicas ou econmicas. Em muitos casos, para obter um ganho maior, preciso buscar melhores algoritmos. Um bom algoritmo, mesmo rodando em uma mquina lenta, sempre acaba derrotando (para instncias grandes do problema) um algoritmo pior rodando em uma mquina rpida. Sempre.
08/03/2012 4
Complexidade de Algoritmos
O fato de um algoritmo resolver (teoricamente) um problema no significa que seja aceitvel na prtica. Os recursos de espao e tempo requeridos tm grande importncia em casos prticos. s vezes o algoritmo mais imediato est longe de ser razovel em termos de eficincia.
08/03/2012
Complexidade de Algoritmos
Mtodo de Cramer requer dezenas de milhes de anos para resolver um sistema 20 X 20 enquanto o mtodo de Gauss o resolve em poucos segundos.
08/03/2012
Complexidade de Algoritmos
O crescente avano tecnolgico, permitindo a criao de mquinas cada vez mais rpidas, pode, ingenuamente, parecer ofuscar a importncia da complexidade de tempo de um algoritmo. Entretanto, acontece exatamente o inverso...
08/03/2012 7
Complexidade de Algoritmos
As mquinas tornando-se mais rpidas, passam a poder resolver problemas maiores, e a complexidade do algoritmo que determina o novo tamanho mximo de problema resolvvel.
08/03/2012
Complexidade de Algoritmos
Para um algoritmo rpido, qualquer melhoria na velocidade de execuo das operaes bsicas sentida e o conjunto de problemas resolvveis aumenta sensivelmente. Esse impacto menor no caso de algoritmos ineficientes.
08/03/2012
Anlise de um algoritmo particular: Qual o custo de usar um dado algoritmo para resolver um problema especfico? Obtido da anlise do nmero de vezes que cada parte do algoritmo deve ser executada, seguida da quantidade de memria necessria.
08/03/2012
10
Anlise de uma classe de algoritmos: Qual o algoritmo de menor custo possvel para resolver um problema especfico? Toda uma famlia de algoritmos para resolver um problema especfico investigada com o objetivo de identificar um que seja o melhor possvel.
08/03/2012
11
O projeto de algoritmos fortemente influenciado pelo estudo de seus comportamentos. Consideraes importantes sobre a eficincia de um algoritmo:
08/03/2012
12
08/03/2012
13
Computador Real
Pode ser vlida quando existem vrios algoritmos distintos para resolver um mesmo tipo de problema, todos com um custo de execuo dentro de uma mesma ordem de grandeza.
08/03/2012
14
Computador Real
Os resultados dependem do hardware; Os resultados so dependentes do compilador; Os resultados dependem da quantidade de memria.
08/03/2012
15
Modelo Matemtico
O conjunto de operaes a serem executadas deve ser especificado, assim como o custo associado com a execuo de cada operao. Geralmente, ignora-se o custo de algumas operaes envolvidas e considera-se apenas as operaes mais significativas.
16
08/03/2012