Projeto e Análise de Algoritmos. Prof. Ruy Luiz Milidiú

Documentos relacionados
BCC Projeto e Análise de Algoritmos Aula 0: Apresentação

BCC Projeto e Análise de Algoritmos Aula 0: Apresentação

Teoria da Computação. Complexidade computacional classes de problemas

Tópicos Avançados em Algoritmos

Análise de Algoritmos

Introdução Paradigmas

Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia. 23 de Março de 2018

Programação Inteira. Solução com o método Branch-and-Bound

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Aula 13: Branch-and-bound

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

Projeto e Análise de Algoritmos Aula 1: Panorama (0.1,0.2)

Paradigmas de Projetos de Algoritmos

Abordagens para Resolução de Problemas

Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 3

Projeto e Análise de Algoritmos

Tópicos em Algoritmos. André Guedes

Conceitos e Princípios Gerais

Projeto e Análise de Algoritmos

ALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho

ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO

Otimização Combinatória - Parte 4

Análise e Técnicas de Algoritmos

Estrutura de Dados Conceitos Iniciais

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

PARADIGMAS DE PROJETO DE ALGORITMOS

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Projeto e Análise de Algoritmos

Algoritmo: Definição. Algoritmo. O que é Lógica? Lógica de Programação. Mas e a Lógica de Programação?

Projeto e Análise de Algoritmos

Pesquisa Operacional / Programação Matemática

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (

Backtracking. Túlio Toffolo Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada

Projeto e Análise de Algoritmos

Estruturas de Dados Apresentação

Uma introdução à complexidade parametrizada

MAC5722 Complexidade Computacional

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Recursividade

livro_mat_disc 2018/11/30 9:20 page i #1 PREFÁCIO 1 O PRINCÍPIO DE INDUÇÃO 1

Recursividade. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Paradigmas de Projeto de Algoritmos

Análise de Algoritmos

Branch and Bound - Ramicar e Limitar

Algoritmos e Programação - Engenharia da Computação -

Análise de algoritmos. Parte I

Técnicas de Projeto de Algoritmos

1-1 PESQUISA OPERACIONAL INTRODUÇÃO

Estruturas de Dados 2

Complexidade computacional

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios

Análise e Projeto de Algoritmos

3 Extensões dos modelos matemáticos

Teoria da Computação. Computabilidade

Programação Inteira. Algoritmo Branch-and-Bound (ou enumeração implícita)

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25

RESOLUÇÃO DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA Considere a soma. S n = n 2 n 1

SCC-501 Introdução à Ciência de Computação II

Modelos Evolucionários e Tratamento de Incertezas

14 Projeto de Algoritmos: paradigmas SCC201/501 - Introdução à Ciência de Computação II

Paradigmas de projeto de algoritmos PARADIGMAS DE PROJETO DE ALGORITMOS. Princípio da indução matemática. Princípio da indução matemática (fraca)

Algoritmos de Ordenação

PARADIGMAS DE PROJETO DE ALGORITMOS

Aula 3: Algoritmos: Formalização e Construção

AED2 - Aula 01 Apresentação, estruturas de dados, tabelas de símbolos e hash tables

Computação Científica Combinatória

Paradigmas de Programação

SCC-5832 Teoria da Computação

Teoria da Computação. Computabilidade e complexidade computacional

Projeto e Análise de Algoritmos

Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15

Programa Analítico de Disciplina INF333 Programação Competitiva

Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia

Referências: Notas de aulas do Prof. Silvio Alexandre de Araujo

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

SCC Capítulo 6 Paradigmas e Técnicas de Projetos de Algoritmos

(P AA) 2 PACOTE DE APOIO A APRENDIZAGEM DE PROJETO E ANÁLISE DE ALGORITMOS: IMPLEMENTAÇÃO EM JAVA

Branch-and-Bound para problemas de Otimização Combinatória

Estruturas de Dados 2

PLANO DE DISCIPLINA DISCIPLINA: Estrutura de Dados 2

Algoritmos de Ordenação: QuickSort

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Planejamento & Escalonamento O algoritmo FF-métrico. Aldebaran Perseke 3 de abril de 2003

- Métodos simples de busca - Métodos ingênuos de ordenação (introdução)

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

Programação de Computadores

#Conceituação. Algoritmos. Eliezio Soares

Análise e Complexidade de Algoritmos

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Algoritmos e Estruturas de Dados II. Paradigmas de Projeto de Algoritmos

Fundamentos de Algoritmos (5175/31)

Transcrição:

Projeto e Análise de Algoritmos Prof.

Introdução 2

www.inf.puc-rio.br/~milidiu/inf2926 3

Resumo Objetivo Apresentar o enfoque adotado no curso para capacitação em Projeto e Análise de Algoritmos Sumário Descrição do Curso Metodologia Planejamento 4

Objetivo Examinar a Teoria e a Arte de Resolver Eficientemente Problemas Computacionais Eficiência Computacional Princípios e Métodos Técnicas de Análise Limitações e Perspectivas 5

Metodologia Apresentar Princípios de Projeto Examinar Exemplos Analisar Eficiência Avaliar Aplicabilidade 6

Projeto X Análise PROJETO Dividir-e-Conquistar Método Guloso Estruturas Dinâmicas Programação Dinâmica Caminhamento BackTracking Branch-and-Bound Redução ANÁLISE Medidas de Consumo Critérios de Eficiência Equações de Recorrência Amortização Matróides Cotas Inferiores Otimalidade Intratabilidade 7

Exemplos Busca Binária MergeSort Multiplic. de Inteiros QuickSort Subcadeia de Soma Max Armazenamento em fitas Repos. de Equipamentos Alocação de Recursos Union-Find Agendamentos Árvores de Busca Casamento de Padrões Conectividade, Ciclos Grafos Bipartidos Pareamento em Grafos Componentes Biconexos Coloração de Grafos Jogos 8

Problemas... Entrada. Lista de salários S 1,,S n Saída. Despesa total com salários S Recursos Computacionais Papel e Lápis Pessoa alfabetizada S = S 1 + + S n COMO COMPUTAR S? 9

Soluções... Solução 1 10 8 18 11 29 13 42 7 49 9 58 5 63 7 70 Solução 2 10 8 18 11 42 13 24 7 70 9 16 5 28 7 12 10

Soluções... Solução 3 10 8 8 FUNCIONÁRIOS 11 X 13 UM SALÁRIO 7 = 9 8 X 10 5 = 7 80 Solução 4 Enquanto houver na lista um par consecutivo de salários com valores distintos faça: AUMENTAR de uma unidade o menor deles REDUZIR de uma unidade o maior deles. 11

Soluções indesejáveis Solução 3 NEM SEMPRE PRODUZ A SAÍDA ESPERADA Solução 4 NEM SEMPRE TERMINA A COMPUTAÇÃO 12

Problema Algorítmico PROBLEMA E = conjunto das possíveis entradas S = conjunto das saídas desejadas R(E,S) = relação entre entradas e saídas desejadas Operações válidas SOLUÇÃO A = algoritmo TOTALMENTE correto 13

Algoritmo Conjunto finito de instruções, compostas de uma ou mais operações válidas, com o objetivo de resolver um problema específico. 14

Algoritmo correto Para todo e E e A s (e,s) R(E,S) 15

Algoritmo Operações válidas Definidas 5/0 Efetivas Término em tempo finito procedimento computacional Entrada Opcional Saída - Uma ou mais 16

Formalização E = conjunto de possíveis entradas S = conjunto de saídas desejadas Q = conjunto de estados da computação E, S Q f: Q Q baseada nas op s válidas em Q f(s) = s para todo s S COMPUTAÇÃO 17

Sequencia computacional e E x 0 = e x k = f(x k-1 ) para k =1,2, t = inf { k 0 x k S } sequencia termina t < (Q, E, S, f) é algoritmo totalmente correto Toda sequencia computacional TERMINA 18

Solução de Problemas MODELO MATEMÁTICO ALGORITMO INFORMAL TIPO ABSTRATO DE DADOS PROGRAMA EM PSEUDO- CÓDIGO ESTRUTURA DE DADOS PROGRAMA 19

Algoritmos & Problemas Eficácia Correção Eficiência Tempo Espaço Simplicidade Otimalidade Limitações Computabilidade Tratabilidade Heurísticas Aproximações Aleatorização IA, ML... 20