Estudo de caso: Insertion Sort Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 10.

Slides:



Advertisements
Apresentações semelhantes
Semáforos Eduardo Nicola F. Zagari
Advertisements

Python: Recursão Claudio Esperança.
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Sistemas Concorrentes com CSP e Java
Z-Buffer Método que opera no espaço da imagem
Linguagem de Programação IX Métodos de Ordenação
Gerência de Projetos Wesley Peron Seno Introdução
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 8 Defeitos e falhas de software Especificação errada: pode não.
Algoritmos de Ordenação
2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
1 Conclusão DI/FCT/UNL 1º Semestre 2004/ Ciclos de Simulação A técnica usada no exemplo da queda livre pode ser utilizada para trajectórias a duas.
Algoritmos de ordenação e estruturas de dados Baseado em progrProlog4.
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Metaheurísticas Prof. Aurora Pozo Departamento de Informática Universidade Federal do Paraná
Tópicos em Engenharia de Software II
Capítulo 7: Deadlocks.
Pesquisa em Memória Primária
Pesquisa em Memória Primária – Árvores de Busca
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
Padrões GoF - Strategy.
Árvore Geradora de Peso Mínimo
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Algoritmos Escher.
Capítulo 3 - Russell e Norvig
7 Abstração Genérica Unidades genéricas e instanciação.
Prof. Roberto Cristóvão
Algoritmos de Ordenação
Insertion Sort.
Conceitos básicos Algoritmo Usado para a solução de problemas
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Simulador de Algoritmos de Ordenação
Aula prática 6 Vetores e Matrizes
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Ordenação por inserção
Busca com informação e exploração
Otimização de Consultas em SQL Planos de Execução
Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de.
Atribuição e Composição Sequencial Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 3 Grupo:João Collier de Mendonça Lucas Carneiro.
Algoritmos de Ordenação
Atribuição e Composição Sequencial Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 3.
Princípios da Programação em Prolog
Iteração – Capítulo 5 Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Integrantes: Alex Motta Carlos Nascimento Paulo Maia.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Tipos Estruturados Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 9.
Complexidade em Tempo de um Algoritmo
Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar.
A Linguagem Formal de Especificação VDM-SL
Métodos de Ordenação.
Refinamento rose, roze, z-eves. introdução refinamento em diagramas UML Roze, Z-Eves.
Estudo de Caso: Raiz Quadrada Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 7] Equipe: Alysson Barros Cleber Ribeiro.
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
Analise de Algoritmos e Notação Assintótica
Métodos Formais Juan Andrés Mussini.
1 TAD Fila com Prioridade -FCP ATAI. 2 TAD Fila com Prioridade (Priority Queue) TAD Fila com Prioridade armazena uma colecção de elementos com prioridade.
ATAL – Prof. Jorge Figueiredo Ordenação AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação.
Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG
Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação.
Classificação (Ordenação) de dados
USP – ICMC – SSC SSC0300 2º Semestre 2015
Curso Programadores de Informática
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
Calculo de Hoare Daniel Soares, Gabriel Alabarse Hernandez(150756) e Vanius Zapalowski(150843)
Algoritmos com matrizes e vetores
Transcrição da apresentação:

Estudo de caso: Insertion Sort Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 10

Insertion Sort É um algorítimo de ordenação simples Caso de estudo envolvendo seqüência O número de comparações é proporcional a média

Insertion Sort Predicado em ordem crescente up as = (  i, j: 0  #as · i ≤ j => as[i] ≤ as[j] )  Exemplo de programa : var as : seq Z; con A; and A = bag as · as: [ up as].

Insertion Sort Pré e pos-condição similares  as: [up as↑0, up as↑N] Exemplo:  var k : N · k:= 0; as, k: [k = 0, up as↑k, k =N]  I = k ≤ N ^ up as↑k · as, k: [I, I ^ k = N]  “invariant I, variant N - k ” do k ≠ N  as, k: [k K0] od

Atribuição para seqüências As[i]:=E as[i:=E][j] = E, quando i=j

Removendo Invariante local No final do refinamento precisamos retirar a invariante. Isto só pode ser feito se for garantido que ela foi mantida. No nosso caso a invariante é: A= bag as

Usando a definição do sort var as : seq N Z; con A; and A = bag as as: [up as]  var k: N k := 0; as, k:[k=0, up as  k, k = N]  “iterate up” do k /= N -> as: [k < N  up as  k, up as  (k+1)]; (iii) k := k+1 od Nesse instante, o tipo de algoritmo é usado para refinar a especificação segundo suas necessidades.

Usando a definição do sort Objetivo: Refinar a especificação do corpo do laço para implementar a idéia de que, tendo uma seqüência de comprimento k ordenada, obter uma outra de comprimento k + 1 também ordenada. pre = up as  k pos = up as  (k + 1)

Usando a definição do sort Tornando a pre e pos-condições similares: up as  (k+1)  up as  k  as  k  as[k]

Usando a definição do sort Definindo predicados: (iii)  P = as  (k + 1) J = P  l  P[l] K = P[l]  P  (l + 1) var l : N As, l : [up P\{k}, l  k  up P\{l}  J  K]