Projeto e Análise de Algoritmo Prof. Diane Castonguay

Slides:



Advertisements
Apresentações semelhantes
Projeto de Programação PD-I
Advertisements

Mineração de Dados Algoritmo APRIORI
Introdução a Algoritmos
Lei de Little.
Complexidade de Algoritmos
Amintas engenharia.
Prof. MSc. Larissa Luz Gomes Aula 6 Análise e Projeto de Sistemas I.
- HISTÓRICO LANÇAMENTO EM MARÇO DE 1996 MAIORES PRÊMIOS PAGOS PELAS
Algoritmo de Khachiyan Prof. Júlio Cesar Nievola.
Algoritmos para Seleção com Condições Gerais AULA 17 Profa. Sandra de Amo GBC053 – BCC
Mineração dePreferências Contextuais A. Soulet et al AULA 19 Data Mining Profa. Sandra de Amo.
Inteligência Artificial
Algoritmos e Estruturas de Dados
Reconhecimento de Padrões Seleção de Características
WAR STORY Stripping Triangulations Luciana Oliveira e Silva
Carolina Fonseca Neumar Ribeiro
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
INTRODUÇÃO A ALGORITMOS NUMÉRICOS
Daniel Felipe Neves Martins
Introdução à NP-completude
Complexidade de Algoritmos
Problemas NP-completo
Sistema de Banco de Dados
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Helpdesk-3 A partir deste ponto você conhecerá os inovadores conceitos de nossa solução. Tecle Enter para Avançar ou Esc para Sair.
(DAS 5315) Projeto de Serviços Web 2010/1
List Ranking. List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da.
Meta - heurísticas Prof. Aurora
Informática Teórica Engenharia da Computação
Algoritmos em Grafos Árvores Geradoras Prof. André Renato
Sistemas Operacionais
Tópicos em otimização combinatória
Jogos Estáticos de Informação Completa
O problema do emparelhamento máximo
Algoritmos e Programação I
Colégio Jardim São Paulo Prof. Mauricio Boni
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Subset Sum Algoritmos e Estruturas de Dados – IF672
Tutorial Aulanet Mundo Verde Manual do Aluno.
Introdução à NP-completude Katia S. Guimarães
Abordagens para problemas NP-completos
Probabilidade Experimento Aleatório Espaço Amostral
COACHING NA NEGOCIAÇÃO
JOGAR E RESOLVER PROBLEMAS PARA APRENDER MATEMÁTICA
Tópicos Avançados em Inteligência Artificial
Complexidade computacional
Complexidade de Algoritmos
Questão nº 1 O dono de uma farmácia resolveu colocar à vista do público o gráfico mostrado a seguir, que apresenta a evolução do total de vendas (em Reais)
QuickSort Dividir: A[p…r] é particionado (reorganizado) em dois subvetores não vazios A[p…q] e A[q+1…r] tal que cada elemento de A[p…q] é menor ou igual.
Sistemas Operacionais
Roberto A. G. Motta sob orientação do Prof. Dr. Siang Wun Song
Construção e Análise de Algoritmos
Experimentação Algorítmica
Caso ALPHA: ADMINISTRANDO UMA INDÚSTRIA DE INJEÇÃO DE PEÇAS PLÁSTICAS SOLUÇÃO Prof. José Miguel N. Sacramento
Busca Combinatorial e Métodos de Heurística
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Programação Dinâmica.
Problemas NP-completos e Programação Dinâmica
Algoritmos FPT para o Problema da k-Cobertura por Vértices
Introdução à NP-completude
1 JOGO DO Caderno 1, pág. 21..
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG
Usando Excel Prof. Rosemberg Trindade. Parte 1 Representação tabular de distribuição com variáveis discretas e contínuas.
Computação Evolutiva Nome dado ao estudo de algoritmos cuja inspiração é o processo de evolução natural das espécies. Origem: trabalho de um pesquisador.
 Modulo de Apresentação de Dados e Estatística ◦ Lista e Qtd. de eventos ◦ Lista e Qtd. de estratégias ◦ Lista e Qtd. de perguntas ◦ Qtd. e percentual.
FERRAMENTAS DA QUALIDADE
Análise e Design de Software Site:
Abordagens para Problemas Intratáveis Katia S. Guimarães
NOÇÕES DE INFERÊNCIA ESTATÍSTICA
Transcrição da apresentação:

Projeto e Análise de Algoritmo Prof. Diane Castonguay Psychic Modeling Projeto e Análise de Algoritmo Prof. Diane Castonguay Charles Gomes Rogério Arantes Gaioso

O que será feito ? War Story Apresentação do problema Alguns conceitos A primeira tentativa Solução final Moral da história Referências

War Story [1] O que é isso ?????????

Psychic Modeling Descrição do problema: A partir de um conjunto de números fornecido pelo jogador, com garantia que um subconjunto deste contém alguns dos números vencedores, deseja-se a relação de combinações possíveis para se obter premiação. Exemplo Mega Sena: Cartela que possui 60 números onde o jogador aposta 6 números, sendo que com 4 números o bilhete ganha prêmio. Jogador informa um subconjunto de 15 números e garante que quatro deles serão premiados. Sistema deve listar as combinações possíveis.

Psychic Modeling [1] Instância Instância de Set Cover Conjunto C = {c1,...,cn} Subconjunto S = {s1,...,s15} Subconjunto S’ = {s’1,...,s’4}, sendo S’ ⊆ S Instância de Set Cover

Classes P, NP e NP-Completo Classe P Problemas que podem ser resolvidos em tempo polinomial, isto é, O (nk) onde n é o tamanho da entrada e k é alguma constante Classe NP NP significa “não deterministicamente polinomial” Problemas que são verificáveis em tempo polinomial Classe NP- C Um problema é NP - completo se ele é NP e pode ser reduzido a um outro problema NP - completo

P = NP

Set Cover [3] Instância: Pergunta Conjunto E = {e1,...,en} Subconjunto S = {C1,...,ct} Função de custo: S -> W Pergunta Existe uma cobertura de mínima de conjunto aonde subconjunto S' ⊆ S

Set Cover [3]

Componentes da solução [1] Gerar subconjunto [4] Definir quais subconjuntos atendem Uma estrutura de dados necessária [5] Estratégia de busca [6]

Variáveis [2] M = conjunto de números totais existentes R = quantidade de números por cartela J = quantidade mínima para acertar e ganhar um prêmio N = quantidade de números fornecidos pelo adivinho P = quantidade de números garantidos entre os vencedores W = quantidade de acertos desejados J <= P <= R <= N NCP = (N/P!)/(N-P)! combinações possíveis com P números R = quantidade de números por cartela J = quantidade mínima para acertar e ganhar um prêmio N = quantidade de números fornecidos pelo adivinho P = quantidade de números garantidos pelo adivinho entre os vencedores W = quantidade de acertos desejados

Primeira tentativa [1] Bastavam apenas 5 bilhetes !!!!!!!! Força bruta Resultado final: 28 combinações Bastavam apenas 5 bilhetes !!!!!!!!

Primeira tentativa (cont.) [2] R = 4, J = 2, W = 1, P = 3, N = 5 {1, 2, 4, X } {1, 2, 3, X } {1, 2, 5, X } {1, 3, 5, X } {1, 3, 4, X } {1, 4, 5, X } R = quantidade de números por cartela J = quantidade mínima para acertar e ganhar um prêmio N = quantidade de números fornecidos pelo adivinho P = quantidade de números garantidos pelo adivinho entre os vencedores W = quantidade de acertos desejados {2, 3, 5, X } {2, 3, 4, X } {2, 4, 5, X } {3, 4, 5, X }

Primeira tentativa (cont.) [2] R = 4, J = 2, W = 1, P = 3, N = 5 {1, 3, 5, X } {2, 4, 5, X }

Sobreposições [2] 2 NCJ É possível que entre os subconjuntos possíveis de P números haja alguns com pelo menos J números diferentes. Quando isso ocorre, estes subconjuntos se sobrepõem com respeito aos J números, e apenas um deles deveria ser comprado. Se a diferença entre dois subconjuntos é maior ou igual a P-J, então eles não se sobrepõem. NCP = (N/P!)/(N-P)! combinações possíveis com P números 2 número total de possível de conjuntos de bilhetes, onde  = NCP R = quantidade de números por cartela J = quantidade mínima para acertar e ganhar um prêmio N = quantidade de números fornecidos pelo adivinho P = quantidade de números garantidos pelo adivinho entre os vencedores W = quantidade de acertos desejados Por algumas provas matemáticas, o autor definiu um limite mínimo de quantidade de subconjuntos. A partir deste limite, o autor pôde gerar uma forma de como excluir estas sobreposições, e chegar à conclusão que o número total de possível de conjuntos de bilhetes é dado por 2 , onde  = NCP. Para encontrar uma solução exata, cada um destes bilhetes teria que ser examinado para saber se o mesmo é garantido com um vencedor ou não. Esta verificação não é feita com complexidade polinomial. Há NCJ subconjuntos possíveis de ocorrer, e o conjunto final deveria incluir todos eles. Logo, a complexidade total seria 2 NCJ, ou seja, este problema requer tempo exponencial para ser resolvido com precisão. Com isso, poderia levar anos para calcular quando encontrar um conjunto difícil como entrada, por exemplo, quando a combinação NCP for muito grande. NCJ subconjuntos possíveis de ocorrer 2 NCJ Complexidade total:

Segunda tentativa [2] Heurísticas Geração Randômica Resultados semelhantes ao calculado, com tempo de execução menor

Comparativo [2] R J N P W Limite Inferior Nº Bilhetes Tempo (seg) 5 4 15 1 58 137 95 2 117 218 147 3 176 294 163 3003 3127 333 6 138 145 3109 346 5005 5129 503 18 129 330 432 449 10 7 408 4080 919 503 segundos  7 minutos 919 segundos  15 minutos 5129 bilhetes => R$ 7.693,50 4080 bilhetes => R$ 6.120,00

Moral da história [1] “Tenha certeza que você modelou o problema corretamente antes de tentar resolvê-lo”. O sucesso em corrigir o erro foi possível devido à correta formulação inicial e no uso de rotinas e abstrações bem definidas: seleção/eliminação de subconjuntos do resultado final [3] a estrutura de dados [4] a busca combinatória [5]

Referências [1] The Algorithm Design Manual, Steven S. Skiena. 1997. http://www2.toki.or.id/book/AlgDesignManual/ [2] Randomized algorithms for identifying minimal lottery ticket sets F. Younas, S. Skiena. Journal of Undergraduate Research, 1996. http://www.cs.sunysb.edu/~skiena/papers/lotto.doc [3] Set Cover. http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK5/ NODE201.HTM#setcover [4] Geração de subconjuntos. http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK4/ NODE152.HTM#generatingsubsets [5] Estrutura de dados. http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK3/ NODE133.HTM#setdatastructures [6] Busca combinatória. http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK2/ NODE92.HTM#simulatedannealing