Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú Eficácia 3/6/2014 Ruy Luiz Milidiú 2 Resumo Objetivo Examinar as soluções algorítmicas quanto a sua eficácia Sumário Correção Parcial Correção Total Ênfase do curso 3/6/2014 Ruy Luiz Milidiú 3 Solução Algorítmica PROBLEMA Parcialmente Correto ALGORITMO Totalmente Correto VERIFICADOR SIM NÃO SOLUÇÃO CORRETA ERROS... 3/6/2014 Solução Algorítmica = Totalmente Correto Ruy Luiz Milidiú 4 M.D.C. ENTRADA: x,y Z* SAÍDA: mdc(x,y) mdc(x,y) = max{z Z a,b Z , x = a.z e y = b.z } 3/6/2014 Ruy Luiz Milidiú 5 M.D.C. function mdc(x,y: integer): integer; var t: integer; begin if x < y then t := x else t := y; while (x mod t <> 0) or (y mod t <> 0) do t := t - 1; mdc := t; end; 3/6/2014 Ruy Luiz Milidiú 6 Correção Parcial Pontos de Verificação Invariantes Exemplo: z = mdc(x,y) 3/6/2014 Ruy Luiz Milidiú 7 Correção Parcial inicio x := |x| y := |y| x<y F x,y Z* x,y N+ t := y V A t\x ou t\y t mdc(x,y) t := t - 1 z := t t := x 3/6/2014 A fim t = min(x,y)Ruy Luiz Milidiú z= mdc(x,y) 8 Correção Total Correção Parcial + Término = Correção Total Término 0 < t < min(x,y) t = 1 então NÃO ITERA t a cada iteração t é o convergente algoritmo TOTALMENTE CORRETO ! 3/6/2014 Ruy Luiz Milidiú 9 Algoritmo de Euclides Mdc(54.180, 13.125) = ? 4 7 1 4 3 54.180 13.125 1.680 1.365 315 105 1.680 1.365 315 105 0 Mdc(54.180, 13.125) = 105 INGENUO: 13.020 iterações 3/6/2014 Ruy Luiz Milidiú EUCLIDES: 5 iterações 10 Algoritmo de Euclides function mdcE(x,y: integer): integer; begin if y = 0 then mdcE := x else mdcE := mdcE(y,x mod y) end; 3/6/2014 Ruy Luiz Milidiú 11 Correção mdc(x,0) = x Resultado básico usado no método de solução ! Proposição. 3/6/2014 Ruy Luiz Milidiú 12 Correção mdc(x,y) = mdc(y, x mod y) Resultado básico usado no método de solução ! Proposição. d\x,y d\y e d\(x mod y) Dem.: x = q.y + r com 0 r <y x = a.d , y = b.d então r = (a-q.b).d y = b.d , r = k.d então x = (q.b+k).d 3/6/2014 Ruy Luiz Milidiú 13 Correção mdc(x,y) = mdc(y, x mod y) x y y 3/6/2014 x-y y r Ruy Luiz Milidiú 14 Correção Método de Solução Fórmulas / Propriedades Proposições / Lemas / Teoremas Conjunto de Instruções Invariantes & Convergentes Prova de Teoremas 3/6/2014 Ruy Luiz Milidiú 15 Correção … Enfoque do Curso Modularização Argumentação informal Justificativas Refinamentos Sucessivos 3/6/2014 Ruy Luiz Milidiú 16