VinBR

AEDs III - 25/04/2011

Mar 6th, 2012
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. Na aula passada falamos vários paradigmas de mapeamento
  2. de algoritimos paralelos, (ex: deadlock, barreira e variáveis de condição)
  3.  
  4. Nessa aula vamos falar de alguns problemas práticos de programação,
  5. para análise:
  6.  
  7. CONCEITO:
  8. Problemas NP Completo
  9. são problemas para os quais não existe uma solução barata de ser computada, mas sim soluções de tentativa e erro.
  10. Estes problemas são conhecidos por possuírem complexidade O(n!) ou superior.
  11. Vamos citar abaixo dois casos deste tipo de problema, e então discutir possíveis soluções.
  12.  
  13. Prob 1: Passeio do Cavalo, neste problema deve-se descobrir se é ou não possível para a peça de chadrês "Cavalo"
  14. sair de uma posição (x,y) em um tabuleiro de tamanho NxN caminhar por todos os quadrados do tabuleiro
  15. e então retornar para a posição original.
  16. Para solucionar este problema deve-se ter:
  17. --> Um conjunto de regras de caminhamento, para impedir a repetição do mesmo caminho.
  18. --> E um modo de verificar se a solução foi cumprida.
  19.  
  20. Prob 2: O Problema da mochila. Dada uma mochila de espaço X, e um conjunto de itens cada um com um tamanho e cada um com um valor,
  21. deve-se descobrir qual a maior soma de valores que podem ser colocadas dentro da mochila.
  22. Neste problema também deve-se ter:
  23. --> Um conjunto de regras de colocação de objetos, para não repetir os mesmo conjuntos.
  24. --> E um modo de descobrir a solução, no caso é uma comparação um a um do valor de cada caso.
  25.  
  26. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  27.  
  28. CONCEITO:
  29. Algoritmo Guloso:
  30. Um algoritimo guloso é aquele que ao processar uma pequena fração do problema,
  31. assumi que uma grande parte do problema foi solucionada.
  32. A principio parece confuso, mas a verdade é que é só um nome complicado para uma coisa que usamos o tempo todo
  33. quase sem perceber. Para esclarecer segue um exemplo abaixo:
  34.  
  35. Em problemas de ordenação, poderíamos tentar por tentativa e erro verificar cada vetor possível e ver se ele está ordenado ou não,
  36. ou poderíamos de uma maneira mais normal, e eficiênte simplismente ordenar um a um cada peça do vetor.
  37. Repare que quando nós colocamos a antes de b no vetor, pois a<b, eu elimino nesse pequeno processamento, um grande
  38. conjunto de possibilidades, ou seja todas àquelas possibilidades onde a se encontraria depois de b.
  39. Isto é portanto um algoritimo guloso, que com um pequeno processamento, utilizando-se de uma propriedade conhecida do problema
  40. elimina um grande número de possibildades de solução, aproximando-se mais rápido da única solução verdadeira.
  41.  
  42. CONCEITO:
  43. Programacao dinâmica é a capacidade de um programa de escolher em tempo de execução o melhor método para continuar o processamento.
  44. Isso é então um programa que possuí duas funções que resolvem um mesmo problema, mas as vezes uma solução é mais eficiente
  45. que a outra.
  46. Se o programa recebe um conjunto muito grande de entradas para ser processado ele realiza testes com as primeiras entradas,
  47. e decide medindo os tempos qual das duas soluções está se mostrando mais eficiênte e então à utiliza pelo resto do processamento.
  48.  
  49. // A aula terminou abruptamente logo depois dessa definição, o professor disse que continuaria a falar disso na próxima aula,
  50. // após a prova.
Advertisement
Add Comment
Please, Sign In to add comment