A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projeto e Análise de Algoritmo Prof. Diane Castonguay

Apresentações semelhantes


Apresentação em tema: "Projeto e Análise de Algoritmo Prof. Diane Castonguay"— Transcrição da apresentação:

1 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

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

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

4 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.

5 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

6 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

7 P = NP

8 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

9 Set Cover [3]

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

11 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

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

13 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 }

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

15 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:

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

17 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

18 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]

19 Referências [1] The Algorithm Design Manual, Steven S. Skiena. 1997.
[2] Randomized algorithms for identifying minimal lottery ticket sets F. Younas, S. Skiena. Journal of Undergraduate Research, 1996. [3] Set Cover. NODE201.HTM#setcover [4] Geração de subconjuntos. NODE152.HTM#generatingsubsets [5] Estrutura de dados. NODE133.HTM#setdatastructures [6] Busca combinatória. NODE92.HTM#simulatedannealing


Carregar ppt "Projeto e Análise de Algoritmo Prof. Diane Castonguay"

Apresentações semelhantes


Anúncios Google