Analise e Complexidade de Algoritmos - Aula 1
Click here to load reader
-
Upload
anapaulapaim -
Category
Documents
-
view
21 -
download
0
description
Transcript of Analise e Complexidade de Algoritmos - Aula 1
-
Clique para editar o estilo do subttulo mestre
Anlise e Complexidade de Algoritmos
Aula 01 Introduo a Anlise e Complexidade de Algortmos
Humberto Roque Kuhn
-
A funo dos Algoritmosna computao
O que so algoritmos ? Porque o estudo dos algoritmos
vale a pena ? Qual a funo dos algoritmos em
relao a outras tecnologias usadas em computadores ?
-
Estrutura de Dados e Algoritmos
-
Um algoritmo uma ferramenta computacional para resolver um problema computacional.
O enunciado do problema especifica o relacionamento entre a entrada e a sada desejada.
O algoritmo servir para alcanar este relacionamento da entrada com a sada.
Estrutura de Dados e Algoritmos
-
Ex: Poderia ser necessrio ordenar uma sequncia de nmeros em ordem crescente.
Como definir formalmente o problema da ordenao ?
Estrutura de Dados e Algoritmos
-
Problema da Ordenao
-
Instncia: sequncia de entrada. Ordenao: operao fundamental
em computao, utilizada em etapas intermedirias.
Dependem: nmero de itens a serem ordenado; extenso em que os itens j esto ordenado; ou restries sobre os valores de itens e dos dispositivos de armazenamento: memria, disco, ...
Problema da Ordenao
-
Algoritmo Correto: para cada instncia de entrada, ele pra com a sada correta. Algoritmo correto resolve o
problema computacional dado. Algoritmo Incorreto: pode no
parar em algumas instncias de entrada, ou ento pode parar com resposta no desejada.
Problemas & Algoritmos
-
Problemas & Algoritmos
-
Estrutura de Dados: um meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificaes.
Nenhuma estrutura de dados nica funciona bem para todos os propsitos. importante conhecer os pontos fortes e as limitaes de vrias delas.
Projetando Algoritmos
-
Tcnica: Poderemos utilizar o material de aula como um livro de receitas para algoritmos. Mas algum dia voc poder encontrar um problema para o qual no seja possvel descobrir prontamente um algoritmo publicado.
Aprenderemos tcnicas de projeto e anlise de algoritmos, de forma que poderemos desenvolver algoritmos, fornecendo a resposta correta e entender sua eficincia.
Projetando Algoritmos
-
Problemas difceis: Estaremos estudando algoritmos eficientes.
A medida habitual de eficincia a velocidade(tempo que um algoritmo demora para produzir um resultado).
Existem problemas para os quais no se conhece nenhuma soluo eficiente. (NP-completos)
NP-completo: Ainda no foi encontrado nenhum algoritmo eficiente para um problema NP-completo, mas tambm ningum provou que no possvel existir um algoritmo eficiente.
Projetando Algoritmos
-
til conhecer os problemas NP-completos, pois sempre aparecem em aplicaes reais. Assim no perder tempo tentando buscar uma soluo eficiente. Por outro lado se mostrar que o problema NP-completo, poder se dedicar a desenvolver um algoritmo que oferea uma boa soluo, embora no seja a melhor possvel.
Projetando Algoritmos
-
1.Fornea um exemplo real no qual aparea os problemas computacionais a seguir: ordenao, localizao da envoltria convexa.
2.Alm da velocidade, que outras medidas de eficincia poderiam ser usadas em uma configurao real ?
3.Selecione uma estrutura de dados que voc j tenha visto antes e discuta seus pontos fortes e suas limitaes.
Exerccios
Slide 1Mtodos de BuscaSlide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14