matemáticas para ciencias de la computación mcc3182

44
Matemáticas para Ciencias de la Computación MCC3182 Profesor: Claudio Gutiérrez Soto Página Web: http://www.dcc.uchile.cl/~clgutier e-mail: [email protected] Fono: 207 122

Upload: judah-mclaughlin

Post on 03-Jan-2016

46 views

Category:

Documents


0 download

DESCRIPTION

Matemáticas para Ciencias de la Computación MCC3182. Profesor: Claudio Gutiérrez Soto Página Web: http://www.dcc.uchile.cl/~clgutier e-mail: [email protected] Fono: 207 122. Matemáticas para Ciencias de la Computación MCC3182. General - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación MCC3182

Profesor: Claudio Gutiérrez SotoPágina Web: http://www.dcc.uchile.cl/~clgutier

e-mail: [email protected]

Fono: 207 122

Page 2: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación MCC3182

  General

     Esencialmente la asignatura está orientada al análisis de algoritmos.      Se le dará énfasis en el desarrollo de ejercicios y tareas por parte del

alumno, esto en la resolución de análisis de algoritmos clásicos y avanzados.

  Teoría

      Clases expositivas orales y escritas.      Desarrollo de ejercicios durante y al final de cada unidad, por parte

del profesor y alumnos.

Page 3: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación MCC3182

Contenido:Inducción matemática. Relaciones y FuncionesDigrafosTeorema de DilworthRelaciones y GrafosÁrbolesSumatoriasSeries especiales (harmónicas, stirling) Notación AsintóticaRepaso análisis algoritmosEcuaciones de recurrenciaPermutaciones y factorialesProbabilidad DiscretaAlgoritmos sobre grafosAlgoritmos probabilísticos

Page 4: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación MCC3182

¿Cuál es la diferencia entre las matemáticas discretas y las matemáticas continuas?

En realidad no existe diferencia, las matemáticas discretas se utilizan para el análisis de colecciones finitas de objetos, en contraste con las matemáticas continuas, que estudian procesos continuos. En las ciencias de la computación los elementos con los cuales se trabajan son elementos finitos, tale como: memoria, los programas, las sentencias que se ejecutan en dichos programas etc.

Page 5: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación MCC3182

Valores y Datos

Problemas (Pre-condición /Post-Condición)

Definición de Algoritmo

Definición Intuitiva ( Finitud, definibilidad, generalidad,efectividad)

Observaciones (procesador, problemas)

Métodos de Calculo (MT)

Tesis de Charch

Análisis de Algoritmo (tiempo y espacio)

Estrategias de Análisis (Empírica, teórica e híbrida)

Principio de Invarianza (Mejor,Peor y Medio)

Page 6: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 7: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 8: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 9: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 10: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 11: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 12: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 13: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Propiedades :

1.1.-     f ( n ) O ( f ( n ) )

2.   2.-   a ) O ( f ( n ) ) O ( g ( n ) ) f ( n ) g ( n )

b ) O ( f ( n ) ) = O ( g ( n ) ) f ( n ) g ( n ) y g ( n ) f ( n )

3.-     Si t ( n ) O ( f ( n ) ) y t’ ( n ) O ( g ( n ) )

a ) c * t ( n ) O ( f ( n ) )

b ) t ( n ) + t ‘ ( n ) O ( f ( n ) + g ( n ) ) = O [ max ( f ( n ) , g ( n ) ) ]

si f ( n ) es comparable asintóticamente con g ( n )

c ) t ( n ) * t’ ( n ) O ( f ( n ) g (n ) )

Ej. : t ( n ) = 3n² + 6n = ( 3n² + 6n ) = { 1º prioridad }

= O [ max ( 3n² , 6n ) ] = { 3º } = O ( 3n² ) ;

; 3n² O ( n² ) = { 3º a }

Ej. : t ( n ) = 4 log n + 6n = O ( log n + n ) = O [ max ( log n , n ) ] = O ( n )

4 log n O ( log n )

6n O ( n )

Page 14: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Operaciones Conjuntísticas :

 

1.      O ( f ( n ) ) + O ( g ( n ) ) = O ( f ( n ) + g ( n ) ) = 0 [ max ( f ( n ) , g ( n ) ) ]

si f y g son comparables

El conjunto suma esta formada por funciones se la forma t ( n ) + t’ ( n ) que pertenece respectivamente al 1º y 2º sumando.

2.      O ( f ( n ) ) * O ( g ( n ) ) = O ( f ( n ) g ( n ) )

Producto conjustístico esta formado por funciones del tipo t ( n ) * t‘ ( n ) que pertenecen respectivamente al primer factor y al segundo factor.

Ej. : t ( n ) = ( n² + n ) + log n (1ª) O [ ( n² + n ) log n ] = O [ ( n² + n ) O ( log n )] =

max ( n² , n )

= O ( n² ) O ( log n ) = O ( n² log n )

Page 15: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 16: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 17: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

1.1.   Análisis de Algoritmos Iterativos

    1  La complejidad de toda asignación , lectura o escritura de variables simples es constante es decir O ( 1 ).

  2  El tiempo de ejecución de una secuencia de proposiciones se determina por la regla de la suma.

  3. El tiempo de ejecución de una proposición if, es el costo de las proposiciones que se ejecutan condicionalmente, Proposiciones verdaderas+ proposiciones falsas, más el tiempo para evaluar la condición

  4. El tiempo para ejecutar un ciclo, corresponde a la suma de las proposiciones que contiene dicho ciclo.

 5. Si existen ciclos anidados, el tiempo de ejecución del ciclo mas externo corresponde a la multiplicación de todos los ciclos.

Page 18: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Análisis de Algoritmos Iterativos

Page 19: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 20: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 21: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 22: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 23: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 24: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Análisis de Algoritmos Recursivos

Page 25: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Function Factorial :

Begin

if n<= 1 then

fact:=1

else

fact:=n* fact(n-1)

End

T(n)= c+T(n-1) si n>1

d si n<=1

Page 26: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Ordenación por Mezcla :

MezclaOrd ( L [ 1 .. n ] ) : array [ 1.. n ]

Inicio

Si n = = 1 entonces devolver ( L )

Sino

DividirEnDos ( L , L1 , L2 )

Devolver ( mezcla ( MezclaOrd ( L1 [ 1 .. n/2 ] ) , MezclaOrd ( L2 [ 1 .. n/2 ] )

Finsi

Fin

T(n)= c si n=1

2T(n/2)+c2n si n>1

Page 27: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Ordenación por Mezcla :

MezclaOrd ( L [ 1 .. n ] ) : array [ 1.. n ]

Inicio

Si n = = 1 entonces devolver ( L )

Sino

DividirEnDos ( L , L1 , L2 )

Devolver ( mezcla ( MezclaOrd ( L1 [ 1 .. n/2 ] ) , MezclaOrd ( L2 [ 1 .. n/2 ] )

Finsi

Fin

T(n)= c si n=1

2T(n/2)+c2n si n>1

Page 28: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Ecuaciones de Recurrencia

Page 29: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Método de Sustitución

Método de Iteración

Teorema Maestro

Método de la Ecuación Característica

Page 30: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Método de Sustitución

Método de Iteración

Teorema Maestro

Método de la Ecuación Característica

Page 31: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 32: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 33: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 34: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 35: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 36: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 37: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Árboles de Recursión, visualizando la Iteración

Page 38: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 39: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 40: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 41: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 42: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 43: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182

Page 44: Matemáticas para Ciencias de la    Computación MCC3182

Matemáticas para Ciencias de la Computación

MCC3182