Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Eficiencia de los Algoritmos Computacionales




Enviado por Pablo Turmero



Partes: 1, 2


    Monografias.com

    ¿Qué es un algoritmo?
    “(del árabe al-Khowârizmî, sobrenombre del célebre matemático árabe Mohámed ben Musa). Conjunto ordenado y finito de operaciones que permite encontrar la solución a un problema…”

    Un algoritmo, puede expresarse en términos de un lenguaje de programación, para obtener un programa que resuelve el problema por medio de la computadora.

    Monografias.com

    Cita…
    “No hay un incremento concebible en el poder de las computadoras que pueda saturar la demanda científica: aún pensando que una computadora posea un ciclo de tiempo subnuclear (10-23 seg.) y densidades de almacenamiento subnucleares (1039 bits/cm3), ésta no podría manejar la mayoría de los problemas que son importantes en la investigación científica básica y aplicada. Por lo tanto, existirá siempre una fuerte presión para incrementar la eficiencia de los programas, para poder incrementar también la cantidad de información últil generada por un programa.”
    Ken Wilson, Nóbel de Física 1982

    Monografias.com

    Áreas de estudio
    ¿Cómo construir algoritmos?
    Técnicas de diseño
    ¿Cómo expresar algoritmos?
    Enfoques de los lenguajes de programación
    ¿Cómo validar algoritmos?
    Verificación formal
    ¿Cómo analizar algoritmos?
    Complejidad computacional, eficiencia, legibilidad, usabilidad, etc…

    Monografias.com

    Análisis de algoritmos
    Si se tuvieran 2 programas que hacen lo mismo, ¿cómo se podrían comparar?

    1. Eficiencia:
    Tiempo de ejecución
    Uso de espacios de memoria
    2. Facilidad de lectura, mantenimiento, rapidez para codificarlo.

    Monografias.com

    Medición del tiempo de ejecución
    El tiempo de ejecución depende de:
    1. La entrada al programa:
    Su tamaño
    Sus características
    2. La calidad del código generado para el programa por el compilador .
    3. La rapidez de las instrucciones de máquina.
    4. La complejidad de tiempo del algoritmo.

    Monografias.com

    ¿Cómo medir?
    Cantidad de instrucciones básicas (o elementales) que se ejecutan.
    Ejemplos de instrucciones básicas:
    asignación de escalares
    lectura o escritura de escalares
    saltos (goto’s) implícitos o explícitos.
    evaluación de condiciones
    llamada a funciones
    etc.

    Monografias.com

    Ejemplo
    cont = 1;
    while (cont <= n) do {
    x = x + a[cont];
    x = x + b[cont];
    cont = cont + 1;
    }

    1
    n+1
    n
    n
    n
    n (goto implícito)
    1 goto en falso.

    TOTAL: 5n + 3

    Monografias.com

    Ejemplo
    z = 0;
    for (int x=1; x<=n; x++)
    for (int y=1; y<=n; y++)
    z = z + a[x,y];

    1
    1 asignación + (n+1) comparaciones
    (n+2)*n = n2 +2n
    n*n = n2
    2n2 (incremento + goto implícito)
    n (goto en falso for y)
    2n (incremento + goto implícito)
    1 (goto en falso for x)

    TOTAL: 4n2 + 6n + 4

    Monografias.com

    Consecuencia…
    Se requiere contar con una notación que permita comparar la eficiencia entre los algoritmos…
    La NOTACIÓN ASINTÓTICA es la propuesta de notación aceptada por la comunidad científica para describir el comportamiento en eficiencia (o complejidad) de un algoritmo.
    Describe en forma sintética el comportamiento de la función que con la variable de entrada, determina el número de operaciones que realiza el algoritmo.

    Monografias.com

    NOTACIÓN ASINTÓTICA
    COMPLEJIDAD TEMPORAL (y ESPACIAL). Tiempo (o espacio) requerido por un algoritmo, expresado en base a una función que depende del tamaño del problema.
    COMPLEJIDAD TEMPORAL ASINTÓTICA (y ESPACIAL). Comportamiento límite conforme el tamaño del problema se incrementa. Determina el tamaño del problema que puede ser resuelto por un algoritmo.

    Monografias.com

    Definición
    Se dice que la función f(n) “es de orden g(n)” [O(g(n))], si existen constantes positivas c y n0 tales que f(n) <= c g(n) cuando n >= n0
    Ejemplos:
    n+5 es O(n) pues n+5 <= 2n para toda n >= 5
    (n+1)2 es O(n2) pues (n+1)2 <= 4n2 para n>= 1
    (n+1)2 NO es O(n) pues para cualquier c > 1 no se cumple que (n+1)2 <= c*n

    Monografias.com

    Ordenes más comunes de los algoritmos
    O(1) Constante
    O(n) Lineal
    O(n2 ) Cuadrático
    O(n3 ) Cúbico
    O (nm ) Polinomial
    O(log(n)) Logarítmico
    O(nlog(n)) nlog (n)
    O(mn ) exponencial
    O(n!) factorial

    Monografias.com

    Comportamiento de las funciones
    log n
    n
    n log n
    n sqrt(n)
    n2

    Monografias.com

    Otro método para calcular el orden de un problema
    Consiste en aplicar reglas a los estatutos estructurados:
    Secuencia de instrucciones
    Decisiones (ejemplo: if)
    Ciclos (ejemplo: while)
    Recursividad

    Monografias.com

    Regla 1: Secuencia de instrucciones
    Ejemplo:
    Una secuencia de 3 ciclos:
    Ciclo 1 = O(n)
    Ciclo 2 = O(log n)
    Ciclo 3 = O(n2)
    Tendrá como orden total…
    O(n2).
    O(g1(n))
    O(g2(n))
    O(g3(n))
    O(gm(n))
    ˜ O( mayor(g1(n), g2(n), …, gm(n) )

    Monografias.com

    Regla 2: Decisiones
    Ejemplo:
    Una decisión con:
    Rama then = O(n log n)
    Rama else = O(log n)
    Tendrá como orden total…
    O(n log n).
    O(g1(n))
    O(g2(n))
    ˜ O( mayor(g1(n), g2(n)) )

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter