Medida do Tempo de Execução de um Programa

Slides:



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

Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Algoritmos em Grafos.
Geometria Computacional Fecho Convexo II
Análise de Voz e Vídeo Reconhecimento de voz baseado em modelos de palavras conectadas André Vitor de Almeida Palhares.
Lógica booleana e implementação de funções booleanas
Capítulo 3 - Aplicações das Derivadas
Sinais e Sistemas – Capítulo 4
Adaptive Resonance Theory Carpenter & Grossberg
Aldilene Silva Célia Regina Daniela Alencar Maria do Socorro
Máquinas de Turing Não Deterministas
Geometria Computacional Interseção de Segmentos
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
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 Algoritmos e Estruturas de Dados I DECOM – UFOP.
Medida do Tempo de Execução de um Programa
David Menotti Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Reconhecimento de Padrões Dissimilaridade
Pesquisa em Memória Primária
Reconhecimento de Padrões Aprendizagem Supervisionada (KNN)
David Menotti Estruturas de Dados I DECOM – UFOP
Algoritmos e Estruturas de Dados I
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.
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
FACENS – Engenharia da Computação Lógica Computacional II
Mining Frequent Patterns without Candidate Generation
Carolina Fonseca Neumar Ribeiro
Análise Sintática Ascendente
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
Introduction to Information Retrieval Introduction to Information Retrieval CS276 Information Retrieval and Web Search Christopher Manning and Prabhakar.
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Algoritmos e Programação I
Busca com informação e exploração
Introdução e Busca Cega
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Sistema de equações lineares
Infra-Estrutura de Hardware
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.


Problemas NP-completos e Programação Dinâmica
Fundamentos de linguagens de programação

Aula de Monitoria – Miniprova
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 Estruturas de Dados I DECOM – UFOP

Limite Inferior - Uso de um Oráculo 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.

Exemplo de Uso de um Oráculo 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 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 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/2 - 1 + [ 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.

Exercício Construir um modelo (oráculo composto de estado e regras) para o problema de determinar o maior valor em um vetor com n elementos, onde n > 1 Implementar um algoritmo que corresponde ao modelo.