MIT open courseware - Introduction to Algorithoms - Lecture 1 part 1

Page 1

MIT open courseware Introduction to algorithms


Introducción a los algoritmos Analisis de los algoritmos El estudio teorico de porgramas informaticos. !

Rendimiento (alto o bajo) lo más estudiado en los algoritmos (Cuanto tiempo tarda?)

"

Uso de recusos (memoria, RAM, etc.)

Ejemplo de algoritmo Problema: Nos dan una serie de numeros y hemos de ordenarlos de menor a mayor

Secuencia de entrada

<a1, a2 ... an > "

!

!

Salida

<a1, a2 ... an >

Ordenado

de menor a mayor

Para solucionar este problema generaremos un algoritmo que nos permita ordenar numeros de una forma rapida. Dado que vamos a analizar su funcionamiento empezaremos mirando lo que seria su pseudocódigo.

Pseudocódigo (El pseudocodigo no es mas que un boceto de lo que será el codigo final, se eliminan tecnicismos para tener una idea de como funcionará el resultado final. No es necesario poner ; al final de cada acción ni separar capas con { )


Nombre de la empresa

Insertion sort Insertion sort (A,n) //Ordena A[1, ...n] "

for j-2 to n // va de 2 a n

"

do key- A[j]

"

i-j-l

"

while i>0 and A[i]>key

"

"

"

"

"

"

do A[i+1] - A[i] j-i-1 A[i+1] - key

Que hace el algoritmo?

j A= En cualquier punto del algoritmo lo que estamos mirando es j, aplicando una cosa que llamamos “la llave” (key) A medida que va avanzando el analisis memorizamos la secuencia y movemos j al siguiente termino ordenando la secuencia e insertando los terminos guardados, por eso se llama el algoritmo de inserción.

j

A=

Ejemplo de una operación

(Entrada) A=

8!

2!

4!

9!

3!

6

j+1

2!

8!

4!

9!

3!

6!

j+2

2!

4!

8!

9!

3!

6

j+3

2!

4!

8!

9!

3!

6

2!

3!

4!

8!

9!

6

j+5

2!

3!

4!

6!

8!

9

fin

Nombre del informe!

j+4

4


Nombre de la empresa

Tiempo de ejecución • Depende de gran cantidad de factores • La entrada • Si ya está ordenada (Que curiosamente és lo más provable en este problema) • Si esta ordenada al revés • Su tamaño (Cuanto más grande más tiempo) Tiempo en función del tamaño T(n) • El ordenador en el que se ejecute

Tipos de analisis "

Peor caso posible

T(n) = tiempo maximo en cualquier entrada de tamaño n T(n) por si solo no és una función ya que teniendo entradas del mismo tamaño podemos encontrar reultados diferentes ya que es posible obtener un numero ya ordenado pero al indicar que se trata del maximo ya si que se puede considerar una función. "

Tiempo mediano

T(n) = tiempo esperado en todas las entradas de tamaño n !

El tiempo que tardaria en resolver cada entrada por la provabilidad de que salga esta (Que és igual en todos los

!

casos) (distribución uniforme)

"

Mejor caso

Generalmente no se estudia ya que se pueden hacer “trampas” conociendo ya como son las entradas ya resueltas

Comparar tiempos de ejecución !

Al comparar nos encontramos con una serie de cosas que marcan la diferéncia:

"

-El ordenador en el que se usa

"

"

-Velocidad relativa (en el mismo sistema)

"

"

-Velocidad absoluta(diferentes sistemas)

Nombre del informe!

5


Nombre de la empresa

Analisis asintótico "

-Ignorar las constantes que dependen del sistema en el que se ejecuta el algoritmo

!

-Observar el aumento en el tiempo de ejecución: f T(n) n --> ∞

Notaciones asintoticas !

Theta notation: Eliminar de una polinomio los elementos de orden pequeño y ignorar las constantes

Ejemplo: 3n3 + 90n2 + 5n + 6046 = Θ(n3)

Si nos acercamos al infinito, un algoritmo de Θ(n2) siempre irá mas rapido que uno de Θ(n3) Independientemente de los ordenadores en los que los ejecutemos, las notaciones asintoticas no cambiarán. (Entendemos Θ(n2) y Θ(n3) como algoritmos difentes, el más lento , menos lento)

T

500

Θ(n3)

375

250

125

0

Θ(n2) N

Diferencia causada por los ordenadores Independientemente del principio, a medida que aumenta el tamaño de la entrada, el coste de tiempo del ordenador menos rapido és menor.

Pero llega un punto en el que el tamaño de la entrada es tan grande que ningun ordenador lo puede procesar por lo que tenemos que tener en cuenta que tamaños estamos manejando y que algoritmo nos conviene más.

Nombre del informe!

6


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.