análise projeto de algoritmos loana tito nogueira 12-março...
TRANSCRIPT
![Page 1: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/1.jpg)
Análise e Projeto de AlgoritmosLoana Tito Nogueira
Análise Projeto de Algoritmos
Loana Tito Nogueira 12-Março-2012
![Page 2: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/2.jpg)
Análise e Projeto de Algoritmos
Problemas do nosso interesse
Loana Tito Nogueira
![Page 3: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/3.jpg)
Análise e Projeto de Algoritmos
Problemas do nosso interesse
• Problemas que não admitem solução computacional não são de interesse deste curso
Loana Tito Nogueira
![Page 4: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/4.jpg)
Análise e Projeto de Algoritmos
Problemas do nosso interesse
• Problemas que não admitem solução computacional não são de interesse deste curso
Loana Tito Nogueira
![Page 5: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/5.jpg)
Análise e Projeto de Algoritmos
Problemas do nosso interesse
• Problemas que não admitem solução computacional não são de interesse deste curso
!!
• Decidir quais problemas (obviamente de uma certa natureza) têm solução computacional é, por um lado, um problema muito difícil, para o qual não se conhece uma solução computacional
Loana Tito Nogueira
![Page 6: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/6.jpg)
Análise e Projeto de Algoritmos
Problemas e seus algoritmos
Loana Tito Nogueira
![Page 7: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/7.jpg)
Análise e Projeto de Algoritmos
Problemas e seus algoritmos
• Neste curso, estudamos problemas que admitem uma solução computacional; !
Loana Tito Nogueira
![Page 8: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/8.jpg)
Análise e Projeto de Algoritmos
Problemas e seus algoritmos
• Neste curso, estudamos problemas que admitem uma solução computacional; ! Entrada !
!
Loana Tito Nogueira
![Page 9: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/9.jpg)
Análise e Projeto de Algoritmos
Problemas e seus algoritmos
• Neste curso, estudamos problemas que admitem uma solução computacional; ! Entrada !
!
Loana Tito Nogueira
Saída correta
![Page 10: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/10.jpg)
Análise e Projeto de Algoritmos
Propriedades de Algoritmos
• Pode haver vários algoritmos para o mesmo problema, que diferem entre si • Na forma de atacar o problema (como); • Na quantidade de recursos utilizados (quanto tempo ou memória); e • Na qualidade da resposta (exata, aproximada, ou com uma dada
probabilidade de estar correta)
Loana Tito Nogueira
![Page 11: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/11.jpg)
Análise e Projeto de Algoritmos
Propriedades de Algoritmos
• Pode haver vários algoritmos para o mesmo problema, que diferem entre si • Na forma de atacar o problema (como); • Na quantidade de recursos utilizados (quanto tempo ou memória); e • Na qualidade da resposta (exata, aproximada, ou com uma dada
probabilidade de estar correta)
Loana Tito Nogueira
![Page 12: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/12.jpg)
Análise e Projeto de Algoritmos
Propriedades de Algoritmos
• Pode haver vários algoritmos para o mesmo problema, que diferem entre si • Na forma de atacar o problema (como); • Na quantidade de recursos utilizados (quanto tempo ou memória); e • Na qualidade da resposta (exata, aproximada, ou com uma dada
probabilidade de estar correta)
Loana Tito Nogueira
![Page 13: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/13.jpg)
Análise e Projeto de Algoritmos
Propriedades de Algoritmos
• Pode haver vários algoritmos para o mesmo problema, que diferem entre si • Na forma de atacar o problema (como); • Na quantidade de recursos utilizados (quanto tempo ou memória); e • Na qualidade da resposta (exata, aproximada, ou com uma dada
probabilidade de estar correta)
Loana Tito Nogueira
![Page 14: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/14.jpg)
Análise e Projeto de Algoritmos
Propriedades de Algoritmos
• Estamos interessados na corretude e complexidade dos algoritmos que produzem respostas exatas. Mais especificamente, estudaremos técnicas para
• O projeto e verificação de corretude de algoritmos para um dado problema; e
Loana Tito Nogueira
![Page 15: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/15.jpg)
Análise e Projeto de Algoritmos
Propriedades de Algoritmos
• Estamos interessados na corretude e complexidade dos algoritmos que produzem respostas exatas. Mais especificamente, estudaremos técnicas para
• O projeto e verificação de corretude de algoritmos para um dado problema; e
• Técnicas para avaliar a quantidade de recursos utilizados por um algoritmo, permitindo comparálo a outros algoritmos para o mesmo problema, independente do computador em que venha a ser implementado
Loana Tito Nogueira
![Page 16: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/16.jpg)
Análise e Projeto de AlgoritmosLoana Tito Nogueira
Vamos resolver alguns problemas?
![Page 17: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/17.jpg)
Análise e Projeto de AlgoritmosLoana Tito Nogueira
Vamos resolver alguns problemas?
• Busca de um elemento em um vetor: !
Problema: Dado um vetor v de n inteiros e um inteiro x, determinar se x está no vetor
!Algoritmo: Procure em todas as posições do vetor até encontrar i tal
que v[i]=x. !
Este problema é “fácil”, tem um algoritmo simples e de complexidade proporcional ao número de elementos do vetor.
Dizemos que a complexidade é Θ (n)
![Page 18: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/18.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Busca de um elemento em um vetor: !
• Problema: Dado um vetor v de n inteiros e um inteiro x, determinar se x está no vetor
!Algoritmo: Procure em todas as posições do vetor até encontrar i tal
que v[i]=x. !
Este problema é “fácil”, tem um algoritmo simples e de complexidade proporcional ao número de elementos do vetor.
Dizemos que a complexidade é Θ (n)
Loana Tito Nogueira
![Page 19: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/19.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Busca de um elemento em um vetor: !
• Problema: Dado um vetor v de n inteiros e um inteiro x, determinar se x está no vetor
!• Algoritmo: Procure em todas as posições do vetor até encontrar i
tal que v[i]=x. !
ste problema é “fácil”, tem um algoritmo simples e de complexidade proporcional ao número de elementos do vetor.
Dizemos que a complexidade é Θ (n)
Loana Tito Nogueira
![Page 20: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/20.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Busca de um elemento em um vetor: !
• Problema: Dado um vetor v de n inteiros e um inteiro x, determinar se x está no vetor
!• Algoritmo: Procure em todas as posições do vetor até encontrar i
tal que v[i]=x. !
• Este problema é “fácil”, tem um algoritmo simples e de complexidade proporcional ao número de elementos do vetor.
Dizemos que a complexidade é Θ (n)
Loana Tito Nogueira
![Page 21: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/21.jpg)
Análise e Projeto de Algoritmos
• Ordenação dos elementos de um conjunto:
Loana Tito Nogueira
![Page 22: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/22.jpg)
Análise e Projeto de Algoritmos
• Ordenação dos elementos de um conjunto: • Problema: Ordenar n valores comparáveis
Vamos resolver alguns problemas?
Loana Tito Nogueira
![Page 23: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/23.jpg)
Análise e Projeto de Algoritmos
• Ordenação dos elementos de um conjunto: • Problema: Ordenar n valores comparáveis !
• Algoritmo: Selecionar sucessivamente o menor elemento e retorná-lo, retirando-o do conjunto
Vamos resolver alguns problemas?
Loana Tito Nogueira
![Page 24: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/24.jpg)
Análise e Projeto de Algoritmos
• Ordenação dos elementos de um conjunto: • Problema: Ordenar n valores comparáveis !
• Algoritmo: Selecionar sucessivamente o menor elemento e retorná-lo, retirando-o do conjunto !
• Este problema é “fácil”, tem um algoritmo simples e de complexidade proporcional ao quadrado do número de elementos n do vetor
Vamos resolver alguns problemas?
Loana Tito Nogueira
![Page 25: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/25.jpg)
Análise e Projeto de Algoritmos
• Ordenação dos elementos de um conjunto: • Problema: Ordenar n valores comparáveis !
• Algoritmo: Selecionar sucessivamente o menor elemento e retorná-lo, retirando-o do conjunto !
• Este problema é “fácil”, tem um algoritmo simples e de complexidade proporcional ao quadrado do número de elementos n do vetor !
• É o melhor que podemos fazer?
Vamos resolver alguns problemas?
Loana Tito Nogueira
![Page 26: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/26.jpg)
Análise e Projeto de Algoritmos
• Atribuição de professores às disciplinas:
Vamos resolver alguns problemas?
Loana Tito Nogueira
![Page 27: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/27.jpg)
Análise e Projeto de Algoritmos
• Atribuição de professores às disciplinas: !
• Problema: Dados um conjunto de n professores, um conjunto de n disciplinas e as listas de disciplinas que cada professor pode ministrar, determinar se existe uma atribuição de disciplinas a professores de que forma que cada professor ministre exatamente uma disciplina
Vamos resolver alguns problemas?
Loana Tito Nogueira
![Page 28: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/28.jpg)
Análise e Projeto de Algoritmos
• Atribuição de professores às disciplinas: !
• Problema: Dados um conjunto de n professores, um conjunto de n disciplinas e as listas de disciplinas que cada professor pode ministrar, determinar se existe uma atribuição de disciplinas a professores de que forma que cada professor ministre exatamente uma disciplina !
• Algoritmo: Tentar atribuir professores às disciplinas de todas as formas possíveis até encontrar uma que resolva o problema.
Vamos resolver alguns problemas?
Loana Tito Nogueira
![Page 29: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/29.jpg)
Análise e Projeto de Algoritmos
• Atribuição de professores às disciplinas: !
• Problema: Dados um conjunto de n professores, um conjunto de n disciplinas e as listas de disciplinas que cada professor pode ministrar, determinar se existe uma atribuição de disciplinas a professores de que forma que cada professor ministre exatamente uma disciplina !
• Algoritmo: Tentar atribuir professores às disciplinas de todas as formas possíveis até encontrar uma que resolva o problema. !
• Simples, mas com alta complexidade!!!!
Vamos resolver alguns problemas?
Loana Tito Nogueira
![Page 30: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/30.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema do Caixeiro Viajante:
Loana Tito Nogueira
![Page 31: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/31.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema do Caixeiro Viajante: !
• Problema: Dadas n cidades e as distâncias entre elas, determinar a sequência em que as cidades (todas) devem ser visitadas de forma que a distância total percorrida seja mínima
Loana Tito Nogueira
![Page 32: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/32.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema do Caixeiro Viajante: !
• Problema: Dadas n cidades e as distâncias entre elas, determinar a sequência em que as cidades (todas) devem ser visitadas de forma que a distância total percorrida seja mínima !
• Algoritmo: Calcular a distância total de cada percurso e escolher o menor.
Loana Tito Nogueira
![Page 33: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/33.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema do Caixeiro Viajante: !
• Problema: Dadas n cidades e as distâncias entre elas, determinar a sequência em que as cidades (todas) devem ser visitadas de forma que a distância total percorrida seja mínima !
• Algoritmo: Calcular a distância total de cada percurso e escolher o menor. !• Algoritmo simples, com complexidade O(n!)
Loana Tito Nogueira
![Page 34: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/34.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema do Caixeiro Viajante: !
• Problema: Dadas n cidades e as distâncias entre elas, determinar a sequência em que as cidades (todas) devem ser visitadas de forma que a distância total percorrida seja mínima !
• Algoritmo: Calcular a distância total de cada percurso e escolher o menor. !• Algoritmo simples, com complexidade O(n!)
• Não se conhece algoritmo polinomial para este problema • NP-completo (difícil)
Loana Tito Nogueira
![Page 35: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/35.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema de Parada:
Loana Tito Nogueira
![Page 36: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/36.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema de Parada: !
• Problema: Dado um programa qualquer P e uma entrada E do programa, determinar se o programa P pára quando alimentado com a entrada E.
Loana Tito Nogueira
![Page 37: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/37.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema de Parada: !
• Problema: Dado um programa qualquer P e uma entrada E do programa, determinar se o programa P pára quando alimentado com a entrada E. !
• Algoritmo: ??????????
Loana Tito Nogueira
![Page 38: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/38.jpg)
Análise e Projeto de Algoritmos
Vamos resolver alguns problemas?
• Problema de Parada: !
• Problema: Dado um programa qualquer P e uma entrada E do programa, determinar se o programa P pára quando alimentado com a entrada E. !
• Algoritmo: ?????????? • Este é um problema indecidível, é impossível
demonstrar matematicamente que não existe uma solução computacional para ele (dentro do nosso conceito do que seja um computador)
Loana Tito Nogueira
![Page 39: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/39.jpg)
Análise e Projeto de Algoritmos
Objetivos
• Discutir conceitos básicos sobre análise e complexidade de algoritmos como parte do aprendizado de longo prazo para resolução e classificação de problemas computacionais
• Trataremos de problemas que possuem algoritmos polinomiais
• Mostraremos alguns problemas para os quais não se conhecem algoritmos polinomiais
• Ao final do curso, os alunos devem ser capazes de projetar algoritmos, provar sua corretude e analisar sua complexidade.
Loana Tito Nogueira
![Page 40: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/40.jpg)
Análise e Projeto de Algoritmos
Técnicas de Projeto de Algoritmos
• Indução Matemática • Divisão e Conquista • Programação Dinâmica • Algoritmo Guloso • Busca Exaustiva (Backtracking) !Classes de Problemas
Loana Tito Nogueira
![Page 41: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/41.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
Loana Tito Nogueira
![Page 42: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/42.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• O que é um algoritmo correto?
Loana Tito Nogueira
![Page 43: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/43.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• O que é um algoritmo correto? • Aquele que pára para toda instância do problema, retornando uma solução
correta
Loana Tito Nogueira
![Page 44: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/44.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• O que é um algoritmo correto? • Aquele que pára para toda instância do problema, retornando uma solução
correta
• O que é analisar um algoritmo?
Loana Tito Nogueira
![Page 45: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/45.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• O que é um algoritmo correto? • Aquele que pára para toda instância do problema, retornando uma solução
correta
• O que é analisar um algoritmo? • Predizer a quantidade de recursos utilizados (memória, tempo de execução,
número de processadores, ...) • Na maioria dos casos estaremos interessados em avaliar o tempo de
execução gasto pelo algoritmo • Contaremos o número de operações efetuadas
Loana Tito Nogueira
![Page 46: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/46.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• O que é um algoritmo correto? • Aquele que pára para toda instância do problema, retornando uma solução
correta
• O que é analisar um algoritmo? • Predizer a quantidade de recursos utilizados (memória, tempo de execução,
número de processadores, ...) • Na maioria dos casos estaremos interessados em avaliar o tempo de
execução gasto pelo algoritmo • Contaremos o número de operações efetuadas
Loana Tito Nogueira
![Page 47: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/47.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• O que é um algoritmo correto? • Aquele que pára para toda instância do problema, retornando uma solução
correta
• O que é analisar um algoritmo? • Predizer a quantidade de recursos utilizados (memória, tempo de execução,
número de processadores, ...) • Na maioria dos casos estaremos interessados em avaliar o tempo de
execução gasto pelo algoritmo • Contaremos o número de operações efetuadas
Loana Tito Nogueira
![Page 48: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/48.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• Como representar um algoritmo?
Loana Tito Nogueira
![Page 49: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/49.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• Como representar um algoritmo? • Pseudo-Código (abstrato, independe de implementação)
Loana Tito Nogueira
![Page 50: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/50.jpg)
Análise e Projeto de Algoritmos
Noções Preliminares
• Como verificar a corretude de um algoritmo? • Demonstração formal
Loana Tito Nogueira
![Page 51: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/51.jpg)
Análise e Projeto de Algoritmos
Técnicas de Demonstração
• A demonstração direta de uma implicação p ⇒ q é uma sequência de passos lógicos (implicações): ! p ⇒ p1 ⇒ p2 ⇒... ⇒ pn = q, !
Que resultam, por transitividade, na implicação desejada. !Cada passo da demonstração é um axioma ou teorema provado previamente
Loana Tito Nogueira
![Page 52: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/52.jpg)
Análise e Projeto de Algoritmos
Exemplo: Provar que Σi=1 (2i-1) = k2
• Dica: Utilizar as propriedades de somatório
k
Loana Tito Nogueira
![Page 53: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/53.jpg)
Análise e Projeto de Algoritmos
Demonstração por Contrapositiva
• A contrapositiva de p ⇒ q
Loana Tito Nogueira
![Page 54: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/54.jpg)
Análise e Projeto de Algoritmos
Demonstração por Contrapositiva
• A contrapositiva de p ⇒ q é ~q ⇒ ~p
Loana Tito Nogueira
![Page 55: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/55.jpg)
Análise e Projeto de Algoritmos
Demonstração por Contrapositiva
• A contrapositiva de p ⇒ q é ~q ⇒ ~p • A contrapositiva é equivalente à implicação original. !A veracidade de ~q ⇒ ~p implica a veracidade de p ⇒ q, e
vice-versa.
Loana Tito Nogueira
![Page 56: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/56.jpg)
Análise e Projeto de Algoritmos
Demonstração por Contrapositiva
• A contrapositiva de p ⇒ q é ~q ⇒ ~p • A contrapositiva é equivalente à implicação original. !A veracidade de ~q ⇒ ~p implica a veracidade de p ⇒ q, e
vice-versa. !• A técnica é útil quando é mais fácil demonstrar a
contrapositiva do que a implicação original • Para demonstrarmos a contrapositiva de uma implicação,
podemos utilizar qualquer técnica de demonstração
Loana Tito Nogueira
![Page 57: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/57.jpg)
Análise e Projeto de Algoritmos
Exemplo: Prove que se 2|3m então 2|m
Loana Tito Nogueira
![Page 58: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/58.jpg)
Análise e Projeto de Algoritmos
Demonstração por contradição
• A Demonstração por contradição envolve supor absurdamente que a afirmação a ser demonstrada é falsa e obter, através de implicações válidas, uma conclusão contraditória.
• A contradição obtida implica que a hipótese absurdo é falsa e, portanto, a afirmação é de fato verdadeira.
!• No caso de uma implicação p ⇒ q, equivalente a ~p ∨ q, a
negação é p ∧ ~q
Loana Tito Nogueira
![Page 59: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/59.jpg)
Análise e Projeto de Algoritmos
Exemplo: Seja A um conjunto, prove que ∅ ⊆ A, qualquer que seja A
Loana Tito Nogueira
![Page 60: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/60.jpg)
Análise e Projeto de Algoritmos
Exemplo: Seja A um conjunto, prove que ∅ ⊆ A, qualquer que seja A
• Por contradição e utilizando a definição de subconjunto
Loana Tito Nogueira
![Page 61: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/61.jpg)
Análise e Projeto de Algoritmos
Exemplo2: Prove que o maior inteiro que divide ambos n e n+1 é 1
Loana Tito Nogueira
![Page 62: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/62.jpg)
Análise e Projeto de Algoritmos
Demonstração por Casos
• Na demonstração por casos, particionamos o universo de possibilidades em um conjunto finito de casos e demonstramos a veracidade da implicação para cada caso
Loana Tito Nogueira
![Page 63: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/63.jpg)
Análise e Projeto de Algoritmos
Demonstração por Casos
• Na demonstração por casos, particionamos o universo de possibilidades em um conjunto finito de casos e demonstramos a veracidade da implicação para cada caso !
• Para demonstrar cada caso individual, qualquer técnica de demonstração pode ser utilizada
Loana Tito Nogueira
![Page 64: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/64.jpg)
Análise e Projeto de Algoritmos
Exemplo: Mostre que a paridade de dois inteiros x e y de mesma paridade é sempre par
Loana Tito Nogueira
![Page 65: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/65.jpg)
Análise e Projeto de Algoritmos
Indução Matemática
• Na Demonstração por Indução, queremos demonstrar a validade de P(n), uma propriedade P com um parâmetro natural n associado, para todo valor de n
• Há um número infinito de casos a serem considerados, um para cada valor de n. Demonstramos os infinitos casos de uma só vez: • Base da Indução: Demonstramos P(1) • Hipótese de Indução: Supomos que P(n) é verdadeiro • Passo de Indução: Provamos que P(n+1) é verdadeiro, a partir da hipótese
de indução
Loana Tito Nogueira
![Page 66: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/66.jpg)
Análise e Projeto de Algoritmos
Exemplo: Prove, por indução, Σi=1 (2i-1) = k2k
Loana Tito Nogueira
![Page 67: Análise Projeto de Algoritmos Loana Tito Nogueira 12-Março ...loana/teaching/analise-e-projeto-de-algori/apa-aula-01… · algoritmo, permitindo comparálo a outros algoritmos para](https://reader033.vdocuments.net/reader033/viewer/2022052005/60195a6ce0a8d326b31f362b/html5/thumbnails/67.jpg)
Análise e Projeto de Algoritmos
Exercícios:
• 1- Demonstre que para todo natural x e n, xn – 1 é divisível por x- 1
• Mostre que Σi=1 3+5i = 2,5n2 + 5.5n !
• Mostre que Σi=1 i = n(n+1)/2 !
• Prove que todo número pode ser escrito como a soma de diferentes potências de 2.
n
n
Loana Tito Nogueira