Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP.

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Limites de Desempenho Grupo 8.
Geometria Computacional Fecho Convexo II
Fluxo em Redes Prof. Ricardo R. Santos.
Análise de Voz e Vídeo Reconhecimento de voz baseado em modelos de palavras conectadas André Vitor de Almeida Palhares.
Capítulo 3 - Aplicações das Derivadas
Professor Sandro Carvalho
Prof. Oscar VETORES CAPITULO 3
Máquinas de Turing Não Deterministas
Medida do Tempo de Execução de um Programa
Pesquisa em Memória Primária
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Medida do Tempo de Execução de um Programa
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
HeapSort Filas de Prioridade – Heap
Pesquisa em Memória Primária – Árvores de Busca
Medida do Tempo de Execução de um Programa
Pesquisa em Memória Primária – Árvores de Busca
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
David Menotti Estruturas de Dados I DECOM – UFOP
Reconhecimento de Padrões Dissimilaridade
Pesquisa em Memória Primária
David Menotti Estruturas de Dados I DECOM – UFOP
SOBREPOSIÇÃO MODAL Objetivos:
Análise Dada uma cadeia de terminais w, queremos saber se wL(G) ou não. Se for o caso, poderemos querer achar uma derivação de w. Um algoritmo que pode.
Busca Heurística - Informada
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
FACENS – Engenharia da Computação Lógica Computacional II
Carolina Fonseca Neumar Ribeiro
Dividir-e-Conquistar
Problemas NP-completo
Aula T04 – BCC202 Análise de Algoritmos (Parte 2) Túlio Toffolo www
Insertion Sort.
Grafos Árvores Geradoras.
Informática Teórica Engenharia da Computação
19 May :30 Cálculo Numérico / Métodos Numéricos Determinação numérica de autovalores e autovetores Método das Potências.
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Programação dinâmica e jogos de tabuleiro: Um estudo
Teoria dos Grafos Coloração
Busca com informação e exploração
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Introdução e Busca Cega
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Sistema de equações lineares
Algoritmos de Busca Local
SISTEMAS OPERACIONAIS I
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação Programa de Pós-Graduação.
Sistemas Baseados em Aprendizado (Aprendizado de Máquina)

Capítulo VI – Variáveis Indexadas 6.1 – A necessidade de variáveis indexadas 6.2 – Vetores e matrizes 6.3 – Aplicações com vetores numéricos 6.4 – Aplicações.


Problemas NP-completos e Programação Dinâmica

Aula de Monitoria – Miniprova
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
INE Fundamentos de Matemática Discreta para a Computação
Analise de Algoritmos e Notação Assintótica
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Exercícios Análise de algoritmos & Ordenação
Algoritmos e Programação I
Prof. Edison Oliveira de Jesus
FEATURE SELECTION. Introdução  Estudo de metodologias relacionadas a seleção de atributos  Maldição da dimensionalidade  O número de atributos do desenvolvedor.
Classificação (Ordenação) de dados
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Comportamento Assintótico
Disciplina: Estrutura de dados e Algoritmos Docentes: MSc. Manuel Zunguze.
Transcrição da apresentação:

Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP

© David Menotti Algoritmos e Estrutura de Dados I Existe possibilidade de obter um algoritmo MaxMin mais eficiente? Para responder temos de conhecer o limite inferior para essa classe de algoritmos. Técnica muito utilizada: uso de um oráculo. Dado um modelo de computação que expresse o comportamento do algoritmo, o oráculo informa o resultado de cada passo possível (no caso, o resultado de cada comparação). Para derivar o limite inferior, o oráculo procura sempre fazer com que o algoritmo trabalhe o máximo, escolhendo como resultado da próxima comparação aquele que cause o maior trabalho possível necessário para determinar a resposta final. Limite Inferior - Uso de um Oráculo

© David Menotti Algoritmos e Estrutura de Dados I Teorema: Qualquer algoritmo para encontrar o maior e o menor elemento de um conjunto com n elementos não ordenados, n>1, faz pelo menos 3n/2 - 2 comparações. Prova: A técnica utilizada define um oráculo que descreve o comportamento do algoritmo por meio de um conjunto de n–tuplas, mais um conjunto de regras associadas que mostram as tuplas possíveis (estados) que um algoritmo pode assumir a partir de uma dada tupla e uma única comparação. Uma 4–tupla, representada por (a; b; c; d), onde os elementos de: a: nunca foram comparados; b: foram vencedores e nunca perderam em comparações realizadas; c: foram perdedores e nunca venceramem comparações realizadas; d: foram vencedores e perdedores em comparações realizadas. Exemplo de Uso de um Oráculo

© David Menotti Algoritmos e Estrutura de Dados I O algoritmo inicia no estado (n, 0, 0, 0) e termina com (0, 1, 1, n - 2). Após cada comparação a tupla (a; b; c; d) consegue progredir apenas se ela assume um dentre os seis estados possíveis abaixo: (a - 2, b + 1, c + 1, d) se a 2 (dois elementos de a são comparados) (a - 1, b + 1, c, d) ou (a - 1, b, c + 1, d) ou (a - 1, b, c, d + 1) se a 1 (um elemento de a comparado com um de b ou um de c) (a, b - 1, c, d + 1) se b 2 (dois elementos de b são comparados) (a, b, c - 1, d + 1) se c 2 (dois elementos de c são comparados) Exemplo de Uso de um Oráculo

© David Menotti Algoritmos e Estrutura de Dados I O primeiro passo requer necessariamente a manipulação do componente a. O caminho mais rápido para levar a até zero requer [n/2] mudanças de estado e termina com a tupla (0, n/2, n/2, 0) (por meio de comparação dos elementos de a dois a dois). A seguir, para reduzir o componente b até 1 são necessárias n/2 - 1 mudanças de estado (mínimo de comparações necessárias para obter o maior elemento de b). Idem para c, com n/2 - 1 mudanças de estado. Logo, para obter o estado (0, 1, 1, n - 2) a partir do estado (n, 0, 0, 0) são necessárias n/2 + n/ [ n/2 ] - 1= [3n/2] – 2 comparações. O teorema nos diz que se o número de comparações entre os elementos de um vetor for utilizado como medida de custo, então o algoritmo MaxMin3 é ótimo. Exemplo de Uso de um Oráculo