Análise de Algoritmo Profº Me. Jeferson Bussula Pinheiro

Slides:



Advertisements
Apresentações semelhantes
Jogo Empresarial FICA A DICA carmeliasalles.weebly.com MARKETING.
Advertisements

Listas de Prioridades Cinéticas Tese de Mestrado de: Guilherme Dias da Fonseca (bolsista CAPES) Orientadora: Celina M. H. de Figueiredo 03/2003.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
1 PROCESSO DE MODELAGEM Modelo Mental: para a solução de problemas simples Reconhecimento do Problema Criação de Alternativas Avaliação de Alternativas.
Algoritmos e Estruturas de Dados I
Introdução e Conceitos.
Administração financeira
ANÁLISE DE CUSTOS Prof.: LEONIDAS LOPES DE CAMARGO
Ordenação dos Elementos de um Vetor - Bubble Sort e Quick Sort .
Márcio Soussa Estrutura de Dados Márcio Soussa
IX ELAVIO FABIANA SIMÕES E SILVA ORIENTADORA: VITÓRIA PUREZA
Curso de Graduação em Administração a Distância da UFSC SISTEMAS DE INFORMAÇÃO Profa. Alessandra de Linhares Jacobsen.
Recursão.
RODOLFO SOARES TEIXEIRA OBMEP NA ESCOLA
Seleção de Atributos.
Estimação de Parâmetros – Unidade 9 Professor Marcelo Menezes Reis
Métodos de Pesquisa: Seqüencial e Binária
Desenhos do processo de pesquisa qualitativa
Análise de Algoritmo Profº Me. Jeferson Bussula Pinheiro
CINEMÁTICA I AULA Nº 1 (2º/2016) Movimento Retilíneo Uniforme (MRU)
Algoritmos e Estruturas de Dados I
ENGENHARIA DE PRODUÇÃO
4. Complexidade média Este capítulo considera a complexidade média, examinando casos ilustrativos de análise de algoritmos e de projeto de estruturas.
Capítulo VIII – Técnicas de Ordenação
Sistemas Prof. Luis S. B. Marques MINISTÉRIO DA EDUCAÇÃO
Pesquisa Mercadológica
EMPREENDEDORISMO – CASO DE SUCESSO
Vantagens e desvantagens da recursão
EGP, CPC, 2004/05 Problema e Algoritmos de Colocação de Professores
Kroton Educacional Universidade uniderp (Unidade Matriz)
Planejamento de estratégias:
PPGT Aluno: Arthur Neiva Fernandes Disciplina: Prática Científica
AERODINÂMICA BÁSICA Prof. Kleine
6ª aula PROBLEMA DE TRANSPORTES – Parte 2 UNIDADE 5
VETORES.
Sistemas de Controle III N8SC3
Profa. Dra. Geciane Silveira Porto
Degenerescência, ciclagem e eficiência do Simplex
Método Simplex Montar um dicionário inicial
Probabilidade e Estatística Aplicadas à Contabilidade II
REDES LOCALIZAÇÃO DAS INSTALAÇÕES
RESPOSTAS A INCIDENTES E PLANO DE CONTINUIDADE DE NEGÓCIOS
COMPUTAÇÃO BIOINSPIRADA
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 8
Controlo da Qualidade Ferramentas Básicas
Interpretação de Imagens com CSP
MICROECONOMIA Aula 6 – Análise da Teoria da Produção.
Complexidade de Algoritmos
OTIMIZAÇÃO DE SISTEMAS DISCRETOS
“PLANEJAMENTO E PREVENÇÃO À EMERGÊNCIA E ACIDENTES INDUSTRIAIS”
Maior Subseqüência Comum
Resolução de Problemas por Busca
Capítulo 8 Seleção da amostra. Capítulo 8 Seleção da amostra.
INF 1771 – Inteligência Artificial
DSI – Desenvolvimento de Sistemas Inteligentes
DESIGN THINKING.
Módulo e Equação Modular
Manuais Administrativos
leis de newton 1º Lei de Newton – Princípio da Inércia
AVALIAÇÃO DE DESEMPENHO
Filas.
Introdução à lógica de programação utilizando Scratch Aula 3
Análise de Investimentos e Demonstrativos
Algoritmos de ordenação
Introdução à Economia Pedro Telhado Pereira.
Aula S7 Lição de Casa da Aula S6
Prof. Rafael Mesquita Listas Encadeadas Prof. Rafael Mesquita
Probabilidade e Estatística Aplicadas à Contabilidade II
Método Iterativo Linear e Newton-Raphson
Buscando Soluções Busca Heurística (M. S.).
Transcrição da apresentação:

Análise de Algoritmo Profº Me. Jeferson Bussula Pinheiro Kroton Educacional Universidade Anhanguera-UNIDERP (Unidade Matriz)

Introdução Técnica de Projeto de Algoritmos utilizada para Problemas de Otimização; Ideia: Quando é necessário fazer uma escolha durante o processo de otimização, escolher a opção que pareça ser a melhor no momento. Ou seja, fazer a escolha ótima local, esperando que isto leve à solução ótima global.

Técnicas de Projeto de Algoritmo Existem muitas maneiras de Projetar um algoritmo: Abordagem Incremental; Abordagem Dividir para Conquistar; Abordagem Programação Dinâmica; Abordagem Algoritmos Gulosos; A abordagem Incremental foi utilizada para implementar o algoritmo de ordenação por inserção;

Abordagem Incremental A análise de tempo considera a entrada, no caso o tamanho do vetor A que será ordenado pois estamos interessados no pior caso para cada n. Para cada "tamanho" n da "entrada", escolha um vetor A que force o algoritmo a consumir o máximo de tempo, que podemos identificar com f(n). Em outras palavras, para cada n fixo, o algoritmo consome tempo f(n) para algum A[1..n]. Resumindo... A abordagem Incremental foi utilizada para implementar o algoritmo de ordenação por inserção.

Abordagem Dividir para Conquistar Enfoque Dividir o problema em várias partes menores e mais simples e então conquistá-lo(Resolve-lo), unindo a resolução de cada parte menor. Na maioria das situações, por exemplo problema de ordenação, apresenta uma complexidade menor, no pior caso, que a abordagem incremental.

Abordagem Dividir para Conquistar Recursividade Técnica de desenvolvimento de algoritmo, em que um algoritmo chama a si próprio para resolver um problema. n n-1

Abordagem Programação Dinâmica Programação Dinâmica resolve cada subproblema uma só vez e então grava sua resposta em uma tabela. Exemplo: A divisão de um problema de tamanho n resulte em n subproblemas de tamanho n-1. Uma solução utilizando Divisão e Conquista iria gastar um tempo absurdo (Exponencial). n n-1

Abordagem Programação Dinâmica É tipicamente aplicada a problemas de otimização. Geralmente há várias soluções possíveis. Cada solução tem um valor, deve-se procurar a solução com o valor ótimo (mínimo ou máximo). Solução 1 Descobrir uma rota entre Campo Grande e Curitiba Solução 2 n soluções Solução 3 Solução 4

Algoritmos gulosos Para resolver um problema, um algoritmo guloso escolhe, em cada iteração, o objeto mais apetitoso que vê pela frente. (A definição de apetitoso é estabelecida a priori.)  O objeto escolhido passa a fazer parte da solução que o algoritmo constrói. Característica Não preocupa-se com as consequências que essas decisões terão no futuro. São muito rápidos Soluções gulosas são um tanto raros

Gula Vs Programação Dinâmica Às vezes é difícil distinguir um algoritmo guloso de um algoritmo de programação dinâmica. A seguinte lista grosseira de características pode ajudar. Um algoritmo guloso.

Algoritmo guloso Abocanha a alternativa mais promissora (sem explorar as outras), É muito rápido, Nunca se arrepende de uma decisão já tomada, Não tem prova de correção simples. Um algoritmo de programação dinâmica Explora todas as alternativa (mas faz isso de maneira eficiente), É um tanto lento, A cada iteração pode se arrepender de decisões tomadas anteriormente (ou seja, pode rever o ótimo corrente), Tem prova de correção simples.

Jeferson Bussula Pinheiro jeferson.pinheiro@uniderp.com.br Obrigado!