Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Algoritmos e a resolução de problemas

Algoritmos e a resolução de problemas

Paulo Bordoni

November 06, 2015
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. • Problemas: • Polya e a resolução de problemas, •

    Dados, condição incógnita. • Relações: • Gráfico de uma relação, • A identificação de um problema a uma relação, • Funções descrevem relações de causa e efeito, • Tipos básicos de problemas: • Problemas diretos e funções, • Funções e problemas inversos – equações. As transparências de 1 à 40 são dedicadas ao desenvolvimento das ideias associadas problemas. Eis um resumo do que veremos:
  2. Mestre, explique melhor o que é, que coisa é, um

    problema? Loirinha, esta é uma pergunta com resposta difícil. Vamos pedir ajuda ao Polya.
  3. A tradução do livro para o português é do Prof.

    da PUC-Rio, João Bosco Pitombeira. Vá à aba “Leituras adicionais” no site do Mestre e leia “How to solve it, G. Polya – Resumo” Vai ajudar vocês!
  4. Dados Incógnita Problema Condição Mestre Polya nos ensinou que os

    ingredientes essenciais de um problema são os dados, a condição e a incógnita.
  5. Penso em achar respostas para uma pergunta. Penso em obter

    resultados. Dados Incógnita Problema Condição Mestra, descreva seu imaginário, sua imagem mental, para um problema!
  6. Dados Incógnita Problema Condição Que bom, algo prático: obter resultados!

    Mas onde buscar as respostas, Mestra? É óbvio, em algum lugar, em algum conjunto de coisas.
  7. Sim, e dados fazem parte de coleções bem caracterizadas de

    coisas: conjuntos! Dados Incógnita Problema Condição Obter resultados cumprindo uma condição envolve um roteiro do que fazer, partindo dos dados, não?
  8. Sim Mestra, conjuntos! Eles constituem a entidade matemática apropriada para

    formalizar o conceito de problema. Mais precisamente, relações, que são subconjuntos do produto cartesiano de dois conjuntos X e Y: ⊆ ×
  9. × , R O visual geométrico de uma relação R:

    Apenas, e tão somente, um subconjunto de × : E quando , ∈ escrevemos .
  10. 1,3 × [1,2] 2 1 3 1 2 Vejam a

    relação ≥ em [1,3] × [1,2]: Escrevemos ≥ quando , ∈ ≥ . ,
  11. −1,1 × [−1,1] 1 1 −1 −1 2 + 2

    = 1 A circunferência de raio 1, centrada na origem, é descrita pela relação 2 + 2 = 1 em [−1,1] × [−1,1]:
  12. × R () ℐ() O domínio () da relação R

    é o subconjunto de X definido por: = ∈ ∃ ∈ , ∈ } A imagem ℐ() da relação R é o subconjunto de Y definido por: ℐ = ∈ ∃ ∈ , ∈ }
  13. × R () ℐ() Mestra, dada uma relação ⊂ ×

    se ∈ () e ∈ ℐ() podemos garantir que ? Não Loirinha! Todos os pontos na região amarela do desenho satisfazem suas condições mas estão fora de R.
  14. × R Situação proibida para funções. y z Funções constituem

    casos particulares de relações que satisfazem a exigência adicional: ⟹ = .
  15. Funções descrevem relações de causa e efeito. Uma causa não

    pode possuir mais que um efeito. Efeito Outro efeito Causa
  16. × f = () Face à ideia de descreverem relações

    de causa e efeito, as funções são anotadas previlegiando a direção: : → com = ().
  17. × f = () Também, por descreverem relações de causa

    e efeito, para funções há a exigência adicional de serem definidas para todo elemento ∈ . Em outras palavras, se ⊂ × é uma função, então = . Entretanto não se exige que ℐ = . Por isto Y é denominado contradomínio.
  18. −1,1 × [−1,1] 1 1 −1 −1 2 + 2

    = 1 A relação 2 + 2 = 1 em [−1,1] × [−1,1] não define uma função. Entretanto, em [−1,1] × [0,1], ela define uma função.
  19. Dados Incógnita Problema Condição Voltando aos problemas: Um problema pode

    ser associado à uma relação ⊂ × . Nesse caso, a condição é descrita pela relação R. Já os dados e a incógnita podem ser elementos tanto de X como de Y.
  20. Um problema direto é aquele em que os dados são

    elementos do conjunto ⊂ e, para cada ∈ (), a incógnita é o elemento ∈ ℐ() tal que . ℐ() () , R Dado Incógnita
  21. Face à ideia de causa e efeito, os problemas diretos,

    geralmente, estão associados a funções. Sim, porque a ideia subjacente é: Para um valor ∈ , dado, calcular aquele ∈ ℐ() para o qual = ().
  22. ℐ() () , R Y Um problema inverso é aquele

    em que os dados são elementos do conjunto e, para cada ∈ , a incógnita é algum elemento ∈ () tal que . Incógnita Dado
  23. Problemas inversos normalmente são mais complexos, pois envolvem a descoberta

    de ∈ tal que , para ∈ dado. Os problemas inversos estão associados a equações.
  24. Resolver um problema inverso normalmente envolve a resolução de uma

    equação. A equação é uma descrição da condição.
  25. E também poderão existir mais do que um elemento ∈

    cumprindo a condição. O problema pode não ter solução! É quando não existe nenhum elemento ∈ cumprindo a condição.
  26. É, e lembrando que não existe ∈ ℝ tal que

    2 = −1, temos um problema sem nenhuma solução. É mesmo Filósofo, o problema: Obter ∈ ℝ tal que 2 = 1, possui duas soluções: = ±1 .
  27. Além da resolução de equações, temos os sistemas lineares, as

    equações diferenciais ordinárias e as parciais. A obtenção de autovalores e autovetores, ... Mestre, cite alguns outros problemas inversos importantes.
  28. R −1 = Dada uma relação ⊂ × a relação

    inversa −1 de R é definida por: −1 = , ∈ × (, ) ∈ } Para relações ⊂ ℝ2, a relação inversa −1 é o reflexo de R no espelho = .
  29. Y X −1 Lembro que um problema inverso pode ser

    transformado num direto através da relação inversa. A inversa de uma função nem sempre é função. Pensem em () = 2
  30. A inversa de ↦ = 2 é ↦ = ,

    mas só para ≥ 0. Sim, Surfista. Ela fornece a solução para o problema inverso: dado ≥ 0, qual é o valor de ∈ ℝ para o qual 2 = .
  31. E como o Mestre falou, o gráfico de ↦ é

    a imagem no espelho ↦ do gráfico de ↦ 2. Fiz o gráfico das duas e também da reta = . Notem que a escala do eixo-y é o dobro da escala do eixo-x.
  32. Sempre tendo todos os cuidados com relação a domínio, contradomínio

    e imagem, como fez o Surfista. Dados Incógnita Problema Condição A solução de um problema inverso associado a uma relação R (ou uma função f ) é sempre dada pela relação inversa −1 (ou pela função inversa −1).
  33. Dados Incógnita Problema Condição Sim Loirinha, considere o problema inverso:

    Obter, quando possível, um vetor tal que = , para A e b dados. Ruim, Sherlock?
  34. Bahh! Estudamos em Álgebra Linear que a solução é dada

    por = −1, quando a matriz A é inversível. Claro colega, pois nesse caso teremos: = −1 = −1 = =
  35. Pois é sabichão, mas computacionalmente não é assim que procedemos!

    Mais adiante vamos analisar o problema e você entenderá porquê.
  36. • Algoritmos de forma ingênua: • Algoritmos e a resolução

    de problemas, • Algoritmo de Euclides para calcular o mdc, • Algoritmo para calcular a raiz quadrada. • Interlúdio 1: quando vou usar isto? • Tarefa para casa. • A máquina de Turing. • Interlúdio 2: O Eniac. • Reflexão: Assassinatos em massa e a Operação Lava-jato. • Algoritmos formalmente: • Um algoritmo é uma composição de funções elementares, • Vários algoritmos resolvem um mesmo problema, • O algoritmo de Briot-Rufini-Horner, • A notação “big ” para medir algoritmos. As transparências de 41 à 107 são dedicadas à conceituação de algoritmos. Eis um resumo do que veremos:
  37. Repito o que já dissemos antes: Algo como uma receita

    de bolo. Um algoritmo é um procedimento passo-a-passo para efetuar cálculos. Uma sequência finita de instruções para resolver um problema Mestra, o que é mesmo um algoritmo?
  38. Ele aparece como a Proposição II do Livro VII dos

    “Elementos”, de Euclides, 300 aC. O algoritmo de Euclides, para calcular o mdc (máximo divisor comum) de dois números inteiros, é um dos mais antigos que se tem notícia na história da humanidade.
  39. O algoritmo se baseia na ideia que para > ,

    então , = , − . Por exemplo, 7,4 = 4,3 = 3,1 = 1,2 = 1,1 = 1
  40. . Início Repetir até que = Esse algoritmo é um

    processo repetitivo: Se < Passo 1 Substituir − Passo 2 = = Então
  41. Por exemplo, se = (, ) então podemos simplificar a

    fração , escrevendo = ∙ ∙ = . Mestres, qual a utilidade em achar o (, ) de dois números A e B ?
  42. Portanto, se , = 1 então já está na sua

    forma mais simples! É mesmo, 357 255 = 49 35 = 21 15 = 7 5
  43. Vocês tem 3 minutos para acabar! O 1º ganha uma

    bala. Loirinhas, Surfistas e Cabelos de Fogo: 1. Escolham dois números A e B, com 3 dígitos cada um. 2. Calculem o (, ).
  44. 1. Inicio agrupando os algarismos de em blocos de 2,

    a partir da vírgula. 2. Considero o bloco mais significativo (aquele mais à esquerda). 3. O 1º dígito de é o maior inteiro , 0 < < 10, tal que 2 ≤ . 4. Calculo a diferença = − 2. 5. Agora repito, até ficar satisfeito com a aproximação para : 1. Acrescento o próximo bloco de à direita de , obtendo . 2. Dobro o valor de , obtendo . 3. O próximo dígito de é o maior inteiro tal que = ⊔ ∗ ≤ . O novo valor de é o concatenado ⊔ . 4. Calculo o novo valor de = − . No Ginásio aprendi a extrair a raiz quadrada, , de um número da seguinte forma:
  45. Agora vocês tem 6 minutos para acabar! O 1º ganha

    um doce. Loirinhas, Surfistas e Cabelos de Fogo: 1. Escolham um número com 5 dígitos; 3 antes da vírgula e 2 depois dela. 2. Calculem com 2 dígitos após a vírgula usando o algoritmo descrito pelo Mestre.
  46. Que besteira Tio! Posso usar a calculadora do meu celular

    para obter a raiz quadrada de um número! E como será que uma calculadora faz isto, Surfista?
  47. Tio, o Surfista tem razão, esses dois exercícios não acrescentam

    nada. São apenas trabalho braçal, não vejo razão em fazê-los! Cabelos de fogo, antes de propor sua condenação como herege, leia a resposta o que o Prof.Jordan Ellenberg apresentou em seu livro “O poder do pensamento matemático”. Depois venha confessar seus pecados!
  48. Minha sugestão é: repitam algumas vezes, até dominar a técnica.

    Rapazes, façam logo, pois o Torquinho é sanguinário. Tenho medo dele!
  49. Mestra, essa reclamação dos rapazes é geral. Basta ler a

    Introdução do livro à nossa frente para confirmar!
  50. Mentiras, mentiras, ... As universidades estão cheias de Ph-deuses mentirosos.

    É mais cômodo ficar com o estabelecido por Aristóteles e não contestar a Igreja. É Mestre, seu colega acabou de dizer que essa resposta é mentirosa!
  51. Aqui começa a verdadeira resposta, Cabelos de Fogo. Na realidade

    o livro todo é a melhor resposta. Leia-o!
  52. Quem não prestou atenção na solução dos dois exercícios vai

    dançar! Loirinhas, Surfistas e Cabelos de Fogo, com base nos exemplos resolvidos em sala, façam a tarefa que o Tio San vai mandar.
  53. Usando Python, construam programas que implementem esses dois algoritmos. Os

    programas deverão pedir os dados numa forma semelhante a: > Digite o número A: > A = |
  54. Ah aluninhos e aluninhas: O desafio real é provar que

    esses algoritmos fornecem as respostas corretas. Isto também faz parte da tarefa!
  55. Mestres, deveremos apresentar esta tarefa na próxima aula? Torno a

    repetir: apresente tua resposta impreterivelmente na próxima aula, senão mandarei o Tribunal te condenar como bruxa!
  56. Mas são programas Mestra, não entendo essa exigência de ser

    manuscrito e em papel almaço. Já ouviu falar em “corte e cola”? Pelo menos você terá que ler e escrever tua resposta, mesmo que seja uma cópia de outro.
  57. No caso de programas, vocês também terão que enviar o

    código para o endereço do Mestre. Além do código uma “foto” da execução com os dados e o resultado! No papel almaço acrescentem detalhes do código que considerarem importantes.
  58. Loirinha, essa pergunta é uma das mais difíceis que a

    humanidade já se fez! A resposta só foi dada na década de 30 dos anos 1.900. Sherlock e Surfista, vocês apontaram exemplos de algoritmos, mas não o que é um algoritmo!
  59. Allan M Turing 1912-1954 Este é artigo onde Turing apresenta

    sua forma de entender algoritmos. Ela passou a ser referida como “Máquina de Turing”, por envolver uma descrição mecânica de um algoritmo.
  60. Loirinha, chamo sua atenção para um “detalhe”: A formalização do

    conceito de algoritmo é anterior ao ENIAC - o 1º computador digital.
  61. 1 2 3 4 5 6 7 8 Courtesy of

    Michael John Muuss 1. J. P. Eckert 2. J. G Brainerd 3. S. Feltman 4. H. H. Goldstine 5. J.W. Mauchly 6. H. Pender 7. Gen. G. M. Barnes 8. Cor. P. N. Gillon John von Neumann
  62. • Início do projeto – 1942 • Iniciou atividades –

    1946 • Local - Moore School of Electrical Engineering – Un. da Pensilvânia • Idealizadores - J. P. Eckert e John Mauchly • Tamanho – 5,50 por 24,40 metros • Consumo – 150 Kw/h • 17.468 válvulas eletrônicas • 70.000 resistências • 10.000 capacitores • 1.500 relés • 6.000 comutadores manuais Alguns dados sobre o ENIAC:
  63. Pensem nas crianças Mudas telepáticas Pensem nas meninas Cegas inexatas

    Pensem nas mulheres Rotas alteradas Pensem nas feridas Como rosas cálidas Mas oh não se esqueçam Da rosa da rosa Da rosa de Hiroxima A rosa hereditária A rosa radioativa Estúpida e inválida A rosa com cirrose A antirrosa atômica Sem cor sem perfume Sem rosa sem nada A “Rosa de Hiroshima”, poema de Vinícius de Moraes, expressando seu horror, logo após o atentado terrorista.
  64. Senhor Henry Truman, então Presidente dos Estados Unidos, essa matança

    ficará eternamente associada a seu nome. É como você sempre será lembrado!
  65. Pelo menos 350 mortos ... Em 26/03/1937 a cidade de

    Guernica na Espanha, foi bombardeada pela Luftwaffe por ordem do seu ditador General Franco.
  66. A menina, gritando de dor na guerra do Vietnan. As

    Torres Gêmeas de New York em 11 de setembro!
  67. O bombardeio de Dresden na Alemanha, pela Inglaterra e Estados

    Unidos, de 13à 15 de fevereiro de 1945. Mais de 22.700 mortos. Anjo da morte?
  68. E as empreiteiras e os políticos criminosos da Operação Lava-Jato

    mataram quantos brasileiros? Holocausto difícil de ver! Pensem nos hospitais e escolas que deixaram de ser construídos e equipados com a fortuna roubada. Quantos pacientes e crianças morreram porque deixaram de ser atendidos?
  69. × f = () Não confundam função com uma expressão

    que permite calculá-la. Podem haver diversas. Por exemplo = ( − 1)2 e = 2 − 2 + 1.
  70. Nada a ver, ( − 1)2 = 2 − 2

    + 1, é uma identidade! Apressadinho! Do lado esquerdo 2 operações elementares, do lado direito 4. O dobro!
  71. Pois é Surfista, você está cansado de saber que (

    − 1)3= 3 − 32 + 3 − 1. Claro, Mestre, a igualdade é pela expansão do binômio de Newton!
  72. 0 1 2 3 4 5 6 7 0 1

    - - - - - - - 1 1 1 - - - - - - 2 1 2 1 - - - - - 3 1 3 3 1 - - - 4 1 4 6 4 1 - - 5 1 5 10 10 5 1 - 6 1 6 15 20 15 6 1 7 - - - É, no 2º grau você deve ter visto que os coeficientes do binômio de Newton podem ser calculados, por recorrência, pelo esquema indicado abaixo. Sim, Mestra e com ele obtenho: ( + )3 = 3 + 32 + 32 + 3
  73. Surfista, você verá que a fala do Galileu faz sentido.

    O valor = () de uma função : → pode ser calculado de diversas formas. Cada uma estabelece um algoritmo para calcular y em ∈ .
  74. f Y f 1 X f n Y 1 X

    2 X n Y n-1 Qualquer função computável : → é computada através de uma sucessão finita de operações elementares. Incluindo as do IEEE 754. Diagramaticamente:
  75. Então, Loirinha: Um algoritmo é, essencialmente, uma descrição dessa cadeia

    finita de funções elementares (incluindo aí comparações, e decisões lógicas) para computar uma outra função. Esta ideia independe do IEEE 754. Um algoritmo nada mais é que uma composição de operações elementares ∘ ⋅⋅⋅ ∘ 2 ∘ 1 = que computam uma função f associada ao problema.
  76. No estudo de algoritmos, o 1º aspecto a considerar é

    o quantidade de operações elementares utilizadas pelo algoritmo.
  77. Quando dois algoritmos resolvem o mesmo problema, em princípio devemos

    escolher o mais rápido. Se é o tempo para efetuar a operação e para efetuar a operação deveremos comparar =1 ( ) com =1 ( ) .
  78. Mas outros tempos computacionais devem ser considerados para decidir. Por

    exemplo, o tempo gasto para buscar dados em armazenamento secundário (do HD para a RAM). A menor delas deve fornecer o algoritmo mais rápido.
  79. A notação “big “ é uma forma de estimar o

    número de operações envolvidas num algoritmo. No cap. 3, Algorithm Analysis, do livro acima, o tema é exposto com clareza. É um dos tópicos mais importantes no estudo de algoritmos.
  80. Surfista, no 2º grau você aprendeu a utilizar o algoritmo

    de Briot-Rufini-Horner? Aprendi sim, Mestre. Só não entendi prá que serve!
  81. Um exemplo típico de analfabetismo funcional... É o algoritmo mais

    rápido para calcular o valor de uma função polinomial num ponto = 0 .
  82. 1 4 -7 3 -5 - 2×1 2×6 2×5 2×13

    1 2+4 12-7 10+3 26-5 2 x + Surfista, deu certinho, 2 = 21 ! Mas eu lembro que, para calcular o valor da polinomial = 4 + 43 − 72 + 3 − 5, em = 2 usávamos o seguinte esquema:
  83. 2 x O algoritmo é extendido, da mesma forma, para

    calcular o valor das derivadas 1ª, 2ª, ... da polinomial num ponto = 0 . Vejam: 1 4 -7 3 -5 - 2 12 10 26 1 6 5 13 21 - 2 16 42 1 8 21 55 - 2 20 1 10 41 2 x 2 x (2) (2) 2(2)
  84. Certo Loirinha, e no caso geral de = 4 4

    + 3 3 + 2 2 + 1 + 0 os cálculos ficam {[(4 0 + 3 )0 + 2 ]0 + 1 }0 + 0 Deu 21 porque as contas do esquema foram as seguintes: 1 × 2 + 4 × 2 − 7 × 2 + 3 × 2 − 5
  85. A descrição, passo a passo do esquema (algoritmo) usado é

    a seguinte: Entre com os coeficientes 4 , 3 , 2 , 1 , 0 da polinomial e com 0 . 1º passo Defina 4 = 4 2º passo Para = 3,2,1,0 calcule = +1 0 + 3º passo
  86. • 4 = 4 • 3 = 4 0 +

    3 • 2 = 3 0 + 2 • 1 = 2 0 + 1 • 0 = 1 0 + 0 Confira Surfista que os cálculos efetuados com o algoritmo foram os dessa caixinha. Vai ser mais rápido! No cálculo direto são 10 multiplicações e 4 adições e o Briot precisa só de 4 adições e 4 multiplicações.
  87. Coloquei no site, em “Leituras adicionais”, um texto em pdf

    de sobre a notação “big “. Loirinhas, Surfistas e Cabelos de Fogo, leiam esse texto e façam a tarefa que o Tio vai mandar.
  88. Além desse texto em pdf, leiam também o cap. 3

    do livro acima. Em seguida: 1. Façam um resumo do texto em pdf. 2. Apresentem um resumo das seções 3.1, 3.2 e 3.3 do livro. 3. O algoritmo de Briot-Rufini-Horner é (? ? ) ?
  89. Mestres, e as condições de entrega, etc, etc? Exatamente as

    mesmas dos dois primeiros exercícios desta aula.