Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


costo computacional- algoritmos, Resúmenes de Control Numérico Computadorizado

costo computacional- algoritmos costo computacional- algoritmos costo computacional- algoritmos costo computacional- algoritmos

Tipo: Resúmenes

2019/2020

Subido el 14/08/2020

edwin-ccahuana
edwin-ccahuana 🇵🇪

2.5

(2)

4 documentos

1 / 6

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Costo computacional de un
algoritmo
Significado de O(t)
La notaci´on O(t) es de uso habitual en matem´atica y tiene un significado espec´ıfico dado por
la siguiente definici´on [1]:
Dadas dos funciones ϕ,ψcon valores reales, la igualdad
ϕ(t) = O(ψ(t)),(1)
indica que existe una constante Ctal que, para todo tsuficientemente cercano a un valor ımite t0
(por ejemplo, t0,t , etc.), se tiene
|ϕ(t)| (t).(2)
Como ejemplo, recordemos la relaci´on sen2(t)
t21 que puede observarse de la Figura 1-(a). Esto
nos permite afirmar que sen(t)2t2cuando t0. De esta manera,
|sen2(t)|= sen2(t) C t2con C= 1,(3)
y diremos que ϕ(t) = O(ψ(t)) cuando t0. Particularmente si ϕ(t)(t) = 1 para tt0(como
en el caso analizado), decimos que ϕ(t) tiende asint´oticamente a ψ(t), lo que significa que en ese
l´ımite ambas funciones son practicamente indistinguiles (ver Figura 1-(b)).
Como otro ejemplo, vemos que la funci´on ϕ(x) = x2+xes O(x2) cuando t , ya que
|x2+x|≤|x2|+|x| | x2|+|x2|para |x| 1,
|x2+x| 2|x2|= 2x2.(4)
Esta relaci´on es aida siempre que |x| 1 y por lo tanto ser´a alida en el l´ımite t . Por otra
parte
x2+x
x2= 1 + 1
x1 cuando x ,(5)
1
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga costo computacional- algoritmos y más Resúmenes en PDF de Control Numérico Computadorizado solo en Docsity!

Costo computacional de un

algoritmo

Significado de O(t)

La notaci´on O(t) es de uso habitual en matem´atica y tiene un significado espec´ıfico dado por la siguiente definici´on [1]: Dadas dos funciones ϕ, ψ con valores reales, la igualdad ϕ(t) = O(ψ(t)), (1)

indica que existe una constante C tal que, para todo t suficientemente cercano a un valor l´ımite t 0 (por ejemplo, t → 0 , t → ∞, etc.), se tiene

|ϕ(t)| ≤ Cψ(t). (2)

Como ejemplo, recordemos la relaci´on sent^22 (t) ≤ 1 que puede observarse de la Figura 1-(a). Esto nos permite afirmar que sen(t)^2 ≤ t^2 cuando t → 0. De esta manera,

|sen^2 (t)| = sen^2 (t) ≤ C t^2 con C = 1, (3)

y diremos que ϕ(t) = O(ψ(t)) cuando t → 0. Particularmente si ϕ(t)/ψ(t) = 1 para t → t 0 (como en el caso analizado), decimos que ϕ(t) tiende asint´oticamente a ψ(t), lo que significa que en ese l´ımite ambas funciones son practicamente indistinguiles (ver Figura 1-(b)). Como otro ejemplo, vemos que la funci´on ϕ(x) = x^2 + x es O(x^2 ) cuando t → ∞, ya que |x^2 + x| ≤ | x^2 | + | x | ≤ | x^2 | + | x^2 | para |x| ≥ 1 , → |x^2 + x| ≤ 2 | x^2 |= 2x^2. (4)

Esta relaci´on es v´aida siempre que |x| ≥ 1 y por lo tanto ser´a v´alida en el l´ımite t → ∞. Por otra parte x^2 + x x^2 = 1 +

x →^1 cuando^ x^ → ∞,^ (5)

  • 2 Π -Π 0 Π 2 Π

t

ne

s^

2 Ht

Lt

2

  • €€€€€Π 4 0 €€€€€Π 4

t

jH

tL,

HtL

Figura 1: (a) Gr´afico de la funci´on sen^2 (t)/t^2. (b) Gr´aficos de la funciones ϕ(t) = sen^2 (t) (l´ınea azul) y ψ(t) = t^2 (l´ınea verde).

y ϕ(x) tiende asint´oticamente a x^2.

N´umero de operaciones

Cuando contamos con un algoritmo que permite resolver alg´un problema de c´alculo, es impor- tante tener conocimiento de cual es su costo de c´alculo, es decir, cual es el n´umero de operaciones que deber´an realizarse para completarlo y obtener el resultado que estamos buscando. Esto permite calificar el algoritmo y comparar su eficiencia con respecto a otro que resuelva el mismo problema. En una computadora, todos los c´alculos matem´aticos se reducen a un conjunto de operaciones aritm´eticas elementales denominadas operaciones de punto flotante^1 , flops. Estas operaciones son las de suma, resta, multiplicaci´on y divisi´on. Tomemos como ejemplo un polinomio gen´erico de grado 2 p(x) = a 0 + a 1 x + a 2 x^2. (6)

Supongamos que queremos conocer el n´umero de operaciones necesarias para evaluar dicho poli- nomio en un valor x = x 0 , esto es, cu´antas operaciones elementales deben realizarce para conocer el valor que toma p(x) cuando x = x 0 :

p(x 0 ) = a 0 + a 1 x 0 + a 2 x^20. (7)

En el primer t´ermino no es necesaria ninguna operaci´on ya que a 0 es conocido; en el segundo t´ermino debemos resolver el producto a 1. x 0 lo que implica una operaci´on elemental; el valor del (^1) La aritm´etica de punto flotante est´a basada en una representaci´on de punto flotante del conjunto de n´umeros reales. En un sistema num´erico de punto flotante, la posici´on del punto decimal (o binario) se almacena separada- mente de los d´ıgitos, y la precisi´on con que puede representarse un n´umero es proporcional al valor del propio n´umero. Esto lo distingue de una representaci´on de punto fijo, donde la precisi´on es constante.

n

flops

Figura 2: N´umero de operaciones empleadas en la evaluaci´on de un polinomio de grado n escrito en la forma can´onica (puntos azules) y en la forma de Horner (puntos rosas)

O(n^2 ). M´as todav´ıa, l´ımn→∞ ϕ n( 2 n/) 2 = l´ımn→∞ 1 + (^) n^3 = 1 y ambas funciones tienden asint´oticamente al mismo valor, lo que justifica el no tener en cuenta el t´ermino 32 n para n grande. Con esto en mente, diremos que todos los algoritmos que sean O(n) son comparables respecto de su costo de c´omputo; todos los que sean O(n^2 ) son comparables entre s´ı, y as´ı en general, todos los algoritmos O(nk) tendr´an una eficiencia computacional similar. Pasemos ahora al an´alisis para el mismo polinomio pero escrito como en (8)

q(x) = (...((anx + an− 1 )x + an− 2 )x + ... + a 1 )x + a 0. (11)

A esta forma se la conoce como forma de Horner. Esta expresi´on requiere de n productos y n sumas para su evaluaci´on 2. Entonces el n´umero de operaciones requeridas es 2n. Este algoritmo es O(n), un orden menor al caso anterior, y por lo tanto su costo computacional tambi´en lo es. En la figura (2) se grafic´o, para ambos casos, la cantidad de flops necesarias en funci´on del grado del polinomio. Claramente podemos ver cu´anto m´as eficiente es la forma de Horner al momento de evaluar un polinomio. El programa de c´alculo Matlab contiene los comandos tic y toc que nos permiten comparar el costo de c´omputo entre distintos algoritmos. Escribiendo la sentencia tic al inicio del proceso y toc al final, obtendremos el tiempo empleado por la computadora para completar el mismo. Como ejemplo de su utilizaci´on, en la figura (3) se muestra una secuencia de sentencias para evaluar un polinomio de grado n = 10^8 en el valor x 0 = 1, tanto para la forma est´andar como para la forma de Horner^3. Al finalizar el proceso, se obtiene en pantalla el tiempo (^2) Le dejamos la demostraci´on como ejercicio. No es dif´ıcil. (^3) Vea por ejemplo, c´omo van creciendo los tiempos de c´omputo con el grado del polinomio

Figura 3:

empleado en cada caso:

Elapsed time is 7.134219 seconds. Elapsed time is 2.269280 seconds. Por ´ultimo, aunque no nos enfoquemos en este punto, debemos tener presente que en el costo computacional de un algoritmo hay mucho m´as que el n´umero de operaciones que el mismo requi- iere. Por ejemplo, en una computadora que cuente con un ´unico procesador, el tiempo de ejecuci´on est´a afectado por el movimiento de los datos entre distintos componentes de la memoria y por otros trabajos que est´en ejecut´andose al mismo tiempo. En una m´aquina con un procesador m´ultiple, tambi´en hay que tener en cuenta el tiempo empleado en la comunicaci´on entre procesadores. Por el momento s´olo nos enfocaremos en lo que respecta a la aritm´etica de un algoritmo.