11.05.2013 Views

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Sea g(n) una función que <strong>de</strong>termina el uso <strong>de</strong> recursos <strong>de</strong> un algoritmo <strong>en</strong> función <strong>de</strong>l<br />

tamaño n <strong>de</strong>l problema. Es posible i<strong>de</strong>ntificar familias <strong>de</strong> funciones según su<br />

comportami<strong>en</strong>to asintótico. A un conjunto <strong>de</strong> funciones que compart<strong>en</strong> un mismo<br />

comportami<strong>en</strong>to asintótico se les <strong>de</strong>nomina un or<strong>de</strong>n <strong>de</strong> complejidad. Habitualm<strong>en</strong>te se<br />

<strong>de</strong>nota un or<strong>de</strong>n <strong>de</strong> complejidad como O[ ] y se i<strong>de</strong>ntifica por un miembro f(n) que se utiliza<br />

como repres<strong>en</strong>tante <strong>de</strong> la clase. Entonces, O[f(n)] <strong>de</strong>fine un or<strong>de</strong>n <strong>de</strong> complejidad.<br />

Por ejemplo, suponga que un problema pue<strong>de</strong> resolverse con algoritmos <strong>de</strong> difer<strong>en</strong>tes<br />

complejida<strong>de</strong>s. Para los algoritmos <strong>en</strong>tre sí, se supone que todos ellos requier<strong>en</strong> 1 hora <strong>de</strong><br />

máquina para resolver un problema <strong>de</strong> tamaño N = 100.<br />

¿Cuánto tiempo se requiere para resolver un problema <strong>de</strong> tamaño 2N?<br />

¿Qué tamaño <strong>de</strong> problema pue<strong>de</strong> resolverse si se dispone <strong>de</strong>l doble <strong>de</strong> tiempo? La Tabla<br />

6 muestra los resultados <strong>de</strong> las dos preguntas anteriores.<br />

Tabla 6 Ejemplo <strong>de</strong> Or<strong>de</strong>n <strong>de</strong> complejidad <strong>de</strong> Varios <strong>Algoritmos</strong> hipotéticos<br />

O(f(n)) N = 100 N = 200 t = 2 h<br />

log n 1 h 1.15 h 10000<br />

n 1 h 2 h 200<br />

n log n 1 h 2.30 h 199<br />

n 2 1 h 4 h 141<br />

n 3 1 h 8 h 126<br />

2 n 1 h 10 30 h 101<br />

Tal como ya se había m<strong>en</strong>cionado, caracterizar un algoritmo clasificándolo como efici<strong>en</strong>te<br />

o inefici<strong>en</strong>te <strong>en</strong> términos <strong>de</strong> su tiempo <strong>de</strong> ejecución, <strong>de</strong>p<strong>en</strong><strong>de</strong>rá <strong>de</strong> la situación particular. Sin<br />

embargo, especialistas <strong>en</strong> la materia [13] reconoc<strong>en</strong> que existe una distinción simple para<br />

clasificar un algoritmo. Esta distinción se realiza <strong>en</strong>tre algoritmos <strong>de</strong> tiempo polinomial y<br />

algoritmos <strong>de</strong> tiempo expon<strong>en</strong>cial. Un algoritmo <strong>de</strong> tiempo polinomial está <strong>de</strong>finido como<br />

uno <strong>de</strong> or<strong>de</strong>n O[p(n)], don<strong>de</strong> p(n) es alguna función polinomial. En cambio un algoritmo cuya<br />

función <strong>de</strong> complejidad <strong>de</strong> tiempo (time complexity function) no pueda ser limitada, es<br />

llamado un algoritmo <strong>de</strong> tiempo expon<strong>en</strong>cial. Se <strong>de</strong>be notar que <strong>en</strong> esta última <strong>de</strong>finición se<br />

incluy<strong>en</strong> ciertas funciones <strong>de</strong> complejidad <strong>de</strong> tiempo no polinomiales, tal como n (log n) , las<br />

cuales son normalm<strong>en</strong>te consi<strong>de</strong>radas como funciones no expon<strong>en</strong>ciales. Esta distinción<br />

fundam<strong>en</strong>tal <strong>en</strong>tre algoritmos fue inicialm<strong>en</strong>te discutida <strong>en</strong> [43], [44].<br />

La Tabla 7 muestra <strong>en</strong> forma evi<strong>de</strong>nte porqué algoritmos <strong>de</strong> tiempo polinomial son más<br />

“efici<strong>en</strong>tes” a medida que el tamaño <strong>de</strong>l problema aum<strong>en</strong>ta.<br />

Tabla 7 Varias Funciones <strong>de</strong> complejidad <strong>de</strong> Tiempo <strong>en</strong> función <strong>de</strong>l Tamaño <strong>de</strong> un Problema<br />

Función <strong>de</strong><br />

Tamaño <strong>de</strong>l problema<br />

complejidad<br />

<strong>de</strong> Tiempo<br />

10 20 30 40 50 60<br />

N 0.00001 seg 0.00002 seg 0.00003 seg 0.00004 seg 0.00005 seg 0.00006 seg<br />

n2 0.0001 seg 0.0004 seg 0.0009 seg 0.0016 seg 0.0025 seg 0.0036 seg<br />

n3 0.001 seg 0.008 seg 0.027 seg 0.064 seg 0.125 seg 0.216 seg<br />

n5 0.1 seg 3.2 seg 24.3 seg 1.7 min 5.2 min 13 min<br />

2n 0.01 seg 1 seg 17.9 min 12.7 días 35.7 años 366 c<strong>en</strong>turias<br />

3 n 0.59 seg 58 min 6.5 años 3855<br />

c<strong>en</strong>turias<br />

83<br />

2x10 8<br />

c<strong>en</strong>turias<br />

1.3x10 13<br />

c<strong>en</strong>turias

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!