Análise e Complexidade de Algoritmos



Documentos relacionados
Análise e Projeto de Algoritmos

Complexidade de Algoritmos

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Teoria dos Grafos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes

PROBLEMAS FÁCEIS E DIFÍCEIS. Prof. André Vignatti DINF - UFPR

CI165 Introdução. André Vignatti. 31 de julho de 2014

5COP096 TeoriadaComputação

Problemas insolúveis. Um exemplo simples e concreto

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Notas de aula número 1: Otimização *

5 Equacionando os problemas

Eduardo C. Xavier. 24 de fevereiro de 2011

LISTA SOBRE MODELAGEM DE PROBLEMAS DE PROGRAMAÇÃO INTEIRA

Classes de Complexidade e NP-Completude

BCC202 - Estrutura de Dados I

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Complexidade de Algoritmos. Edson Prestes

Pesquisa Operacional Programação em Redes

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

ESTRUTURAS DE DADOS II

Pesquisa Sequencial e Binária. Introdução à Programação SI2

Aula 03 - Modelagem em PPLIM

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

5COP096 TeoriadaComputação

PROGRAMAÇÃO INTEIRA. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto 5 modelos

Objetivos. Apresentar as superfícies regradas e superfícies de revolução. Analisar as propriedades que caracterizam as superfícies regradas e

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Sumário. Volta às aulas. Vamos recordar? Grandezas e medidas: tempo e dinheiro Números Regiões planas e seus contornos...

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

Árvores de Suporte de Custo Mínimo

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

Função. Definição formal: Considere dois conjuntos: o conjunto X com elementos x e o conjunto Y com elementos y. Isto é:

Figura 1 Busca Linear

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Manejo Florestal Sustentável: Dificuldade Computacional e Otimização de Processos

BCC204 - Teoria dos Grafos

Introdução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em

Estruturas Discretas INF 1631

Matemática Financeira Módulo 2

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 11 Problemas com Satisfação de Vínculos

Linguagem algorítmica: Portugol

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Probabilidade. Contagem

Problemas de Satisfação de Restrições

Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos

Fundamentos da Matemática

Uma Heurística para o Problema de Redução de Padrões de Corte

6 Construção de Cenários

CAP4: Distribuições Contínuas Parte 1 Distribuição Normal

Sistemas Inteligentes Lista de Exercícios sobre Busca

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

MATEMÁTICA APLICADA - RESOLUÇÃO 02/12/2007

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Sobre o Professor Dr. Sylvio Barbon Junior

Utilização do SOLVER do EXCEL

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

Lista 2 - Modelos determinísticos

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

36ª OLIMPÍADA BRASILEIRA DE MATEMÁTICA Primeira Fase Nível 3 Ensino Médio

Simulado OBM Nível 2

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH)

O que é? Swarm Intelligence. Qual a origem? Cardume. Qualquer tentativa de projetar algoritmos ou técnicas de resolução distribuída de

Dificuldades de Modelos de PNL. Onde está a solução ótima? Outro exemplo: Condição ótima Local vs. Global Quinta-feira, 25 de abril

Princípio da Casa dos Pombos I

Excel Planilhas Eletrônicas

A Torre de Hanói e o Princípio da Indução Matemática

Análise de complexidade

Matemática - UEL Compilada em 18 de Março de Prof. Ulysses Sodré Matemática Essencial:

Teoria dos Grafos. Edson Prestes

FUNÇÃO COMO CONJUNTO R 1. (*)= ou, seja, * possui duas imagens. b) não é uma função de A em B, pois não satisfaz a segunda condição da

AULA 6 LÓGICA DOS CONJUNTOS

Contagem. Prof. Dr. Leandro Balby Marinho. Matemática Discreta. Fundamentos Inclusão/Exclusão Princípio da Casa dos Pombos Permutações Combinações

Fundamentos de Teste de Software

UM TEOREMA QUE PODE SER USADO NA

CAPÍTULO 2. Grafos e Redes

Você sabe a regra de três?

Autómatos finitos não determinísticos (AFND)

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

2. Método de Monte Carlo

16 Comprimento e área do círculo

3º Trimestre TRABALHO DE MATEMÁTICA Ensino Fundamental 9º ano classe: A-B-C Profs. Marcelo/Fernando Nome:, nº Data de entrega: 09/ 11/12

Pesquisa Sequencial e Binária

1 UNIT Universidade do Trabalhador Dr. Abel dos Santos Nunes

Exercícios Resolvidos sobre probabilidade total e Teorema de Bayes

SUMÁRIO. Introdução... 3

EQUAÇÕES E INEQUAÇÕES DE 1º GRAU

Projeto e Análise de Algoritmos

a 1 x a n x n = b,

AV2 - MA (a) De quantos modos diferentes posso empilhá-los de modo que todos os CDs de rock fiquem juntos?

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Pointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T

Prova de Aferição de Matemática

Lição 1 - Criação de campos calculados em consultas

Transcrição:

Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com

Ementa Revisão: Estrutura de dados;crescimento de funções; Indução matemática e métodos matemáticos. Onde Estamos Medidas de complexidade, análise assintótica de limites de complexidades. Exemplos de análise de algoritmo iterativos e recursivos. Análise de desempenho de alguns algoritmos clássicos de busca e ordenação. Introdução aos principais paradigmas do projeto de algoritmos. Complexidade do Problema: Limites de Complexidade, Intratabilidade, Classes P, NP, problemas Np completos e NP-difíceis.

P vs NP Introdução Relativamente fácil compreender o que diz o problema É possível que seja resolvido com um boa idéia sem muito conhecimento técnico em matemática Complexidade na maioria dos problemas Polinomial ou exponencial Ex: pesquisa binária (O(log n)), pesquisa sequencial (O(n)), ordenação por inserção (O(n2)), e multiplicação de matrizes (O(n3)).

Algumas Definições

Classe dos problemas problemas - uma descrição genérica de todos os seus parâmetros; - especificação das propriedades que a resposta ou solução deve satisfazer. 3 gêneros de problemas decisão Saída simples (sim/não) Exemplo: Cobertura de vértices de um grafo G = < V, E > é um subconjunto V' V tal que toda aresta de E tenha pelo menos uma extremidade em V'. localização exige a exibição de uma solução, envolve a procura de um elemento que satisfaça a condição de solução, Exemplo: otimização problemas de localização que satisfaçam propriedades de otimização além de mostrar a solução exige que maximize ou minimize algum critério. Seja ótimo.

Um algoritmo que resolve um problema de localização ou de otimização pode ser modificado para resolver o problema de decisão associado, praticamente sem esforço extra. Por isso questões como intratabilidade são estudadas no âmbito dos problemas de decisão (que são mais simples). Assim, as mais importantes classes de problemas, P, NP e NP-completa, são definidas para problemas de decisão. Para expressar precisamente o requisito de tempo, é preciso ter o cuidado de definir o tamanho da entrada de maneira a levar em conta esses fatores. O tamanho da entrada de uma instância x de um problema Π é definido como o número de símbolos na descrição de x obtido em um esquema de codificação do problema Π. Um algoritmo é polinomial sse sua complexidade é de tempo polinomial: Ο( p( n ) ), onde p( n ) é um polinômio, e n representa o tamanho da entrada.

Determinísticos Algoritmos não determinísticos resolvem o problema com uma decisão exata a cada passo Não Determinísticos Algoritmos teóricos duas fases não determinística geração de dados aleatórios determinística algoritmo lê os dados gerados testa pode acontecer» parar com a resposta SIM» para com a resposta NÃO» não parar

Exemplo

Tipos de problemas Tratáveis podem ser resolvidos em tempo polinomial Intratáveis / Difícil nenhum algoritmo polinomial pode resolvê-lo Problema algoritmo Dados Objetivo Solução

Caixeiro-viajante Imagine que você é um vendedor sediado em Jundiaí e tem que ir de carro a outras três cidades Campinas, São Paulo e Ribeirão Preto. Começando e terminando em Jundiaí. Para economizar gasolina e tempo, você deve planejar o trajeto, de forma que a distância percorrida seja mínima. Jundiaí Campinas SP Rib Preto Jundiaí 0 54 17 79 Campinas 54 0 49 104 SP 17 49 0 91 Rib. Preto 79 109 91 0

Caixeiro-viajante J-C-S-R-J J-C-R-S-J J-S-R-C-J J-S-C-R-J J-R-C-S-J J-R-S-C-J Rota Km Totais 54+49+91+79=273 54+104+91+17=266 17+91+109+54=271 17+49+107+79=249 79+109+49+17=254 79+91+49+54=273

Caixeiro-viajante Para 3 cidades 3 x 2 x 1 = 6 três possibilidades, depois duas, depois uma E para 10 Cidades 10x9x8x7x6x5x4x3x2x1=3.628.800 =10! Levando 1 minuto para calcular cada rota trabalhando 8h/dia 5 dias 52 semanas por ano =por ano 2080*60 minutos = 124.800 3628800/124800 = 29... Mais de 20 anos

Introdução Existem problemas computacionais muito difíceis de serem resolvidos, ou resolvidos em um tempo satisfatório Estudamos as complexidades polinomiais, isto é, pior caso = O(n e ) Algoritmos que não são polinomiais são considerados exponenciais exemplo: 2 n, 5 n

Classes de Complexidade P problemas são resolvidos em tempo polinomial NP problemas não deterministicamente polinomial são verificáveis em tempo polinomial conjunto de problemas que podem ser resolvidos em tempo polinomial em um computador não determinístico são semelhantes a algoritmos que são resolvidos com algoritmos polinomiais não foi provado que não existe algoritmo polinomial que o resolva

NP Completos Os chamados problemas NP-completos são problemas que têm a questão da complexidade ou tratabilidade não resolvida, pois não se sabe se existe ou não algoritmo polinomial que o resolva. é o subconjunto dos "mais difíceis" problemas não-determinísticos polinomiais Há dois fatos a considerar: - por um lado, sabe-se que se um problema NP-completo qualquer tiver um algoritmo polinomial que o resolva então todos os problemas NPcompletos (centenas ou milhares) também possuirão algoritmos polinomiais; - por outro lado, nenhum algoritmo polinomial para esses problemas foi desenvolvido até o momento. P NP NP-completo

Stephen Cook Completude NP Se a descoberta de um procedimento em tempo polinomial para sua solução implicar que todos os outros problemas NP podem ser resolvidos por um programa em tempo polinomial. Discussão do problema aberta em computação NP contém P, mas não se sabe se NP = P Vale U$ 1.000.000,00 Oferecido pelo milionário americano Landon Clay,

Exemplo clássicos NP completo Caixeiro Viajante: existe um ciclo que percorra todos os vértices do grafo com um custo B? Coloração de Grafos: pode um grafo ser adequadamente colorido com n cores? Vértices adjacentes com cores diferentes Mochila: existe uma combinação de itens que dê um lucro L, respeitando o limite de peso?

Exemplo clássicos NP completo Cobertura de Arestas e Vértices Ciclo Hamilton Caminho que passa por todos os vértices uma única vez e retorna ao vértice inicial. Clique do Grafo Toda vértice v é adjacente a um grafo completo

Satisfabilidade (SAT) Verificar se uma expressão pode ser satisfeita consiste em se verificar se existe alguma forma de se atribuir valores V ou F para as variáveis, de tal forma que a expressão seja verdadeira. Problema da Parada Determinar, para um algoritmo determinístico qualquer A com entrada de dados E, se o algoritmo A termina (ou entra em um loop infinito).

A R B Redução Polinomial A reduz polinomialmente ao problema B se existir um algoritmo para resolver A que utiliza um número polinomial de vezes um algoritmo para resolver B R A B alg. pol. B R A B alg. pol. A R A B alg. pol. B algoritmo polinomial para A algoritmo polinomial para B???

Caixeiro viajante Animações na web http://web.telia.com/~u85905224/tsp/tsp.htm Game http://www.tsp.gatech.edu/games/tsponeplayer.ht ml http://www-m9.ma.tum.de/dm/java-applets/tspusa-spiel/tsp.html