CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
Técnicas de optimización aplicadas a código de programa sencillo
1. REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA
EDUCACION UNIVERSITARIA,
CIENCIA Y TECNOLOGIA
INSTITUTO UNIVERSITARIO POLITÉCNICO
“SANTIAGO MARIÑO”
EXTENSIÓN MARACAY
Autor: Pablo Duarte V-18.976.182
Sección: SL
2. Que es la Optimización?: La optimización es empleada para que una tarea se
realice mas rápidamente y mejorar el rendimiento de una actividad. Se hace
Siempre con respecto a uno o mas recursos como ser: tiempo de ejecución,
uso de memoria, espacio en disco, ancho de banda, consumo de energía ,
entre otros
Donde Se Aplica?:En Cualquier Área donde se busque o desee realizar una
actividad de forma eficaz y eficiente, sin perder datos relevantes ni tiempo.
3. Técnicas de optimización que se aplican al código generado para un programa sencillo
(aquel que se reduce a un solo procedimiento o subrutina).
Locales : La optimización local se realiza sobre módulos del programa. En la mayoría de las
ocasiones a través de funciones, métodos, procedimientos, clases, entre otros. Las
características de las optimizaciones locales es que solo se ven reflejados en dichas
secciones. La optimización local sirve cuando un bloque de programa o sección es crítico por
ejemplo: la E/S, la concurrencia, la rapidez y confiabilidad de un conjunto de instrucciones.
Ciclos: Los ciclos son una de las partes más esenciales en el rendimiento de un programa dado
que realizan acciones repetitivas, y si dichas acciones están mal realizadas, el problema se
hace N veces más grandes. La mayoría de las optimizaciones sobre ciclos tratan de encontrar
elementos que no deben repetirse en un ciclo. El problema de la optimización en ciclos y en
general radica en que es muy difícil saber el uso exacto de algunas instrucciones. Así que no
todo código de proceso puede ser optimizado. Otro uso de la optimización puede ser el
mejoramiento de consultas en SQL o en aplicaciones remotas (sockets, E/S, etc.).
4. MIRILLA: La optimización de mirilla trata de estructurar de manera eficiente el flujo
del programa, sobre todo en instrucciones de bifurcación como son las decisiones,
ciclos y saltos de rutinas. La idea es tener los saltos lo más cerca de las llamadas,
siendo el salto lo más pequeño posible.
Ideas básicas:
Se recorre el código buscando combinaciones de instrucciones que pueden ser
reemplazadas por otras equivalentes más eficientes.
Se utiliza una ventana de n instrucciones y un conjunto de patrones de
transformación (patrón, secuencias, remplazan).
Las nuevas instrucciones son reconsideradas para las futuras optimizaciones.
Ejemplos:
Eliminación de cargas innecesarias
Reducción de potencia
Eliminación de cadenas de saltos
5. El objetivo de la optimización global es encontrar la mejor solución de models de
decisiones difíciles frente a las múltiples soluciones locales.
Las técnicas de optimización son empleadas para encontrar un juego de
parámetros de diseño x = [x1, x2,…, xn], que puede de algún modo ser definido
como óptimo. En un caso simple esto podría ser la minimización o la
maximización de alguna característica de sistema que es dependiente de x. En
una formulación más avanzada la función objetivo, f(x) es minimizada o
maximizada, estando sujeta a restricciones de igualdad Gi(x) = 0 (i = 1,…, me);
restricciones de desigualdad Gi(x) ≤ 0 (i = me + 1,…., me); y/o límites de
parámetro Xl, Xu [4].
6.
7. Se identifican infinidad de soluciones factibles pero ningún punto como
solución optima, porque siempre habrá una mejor solución.
Una solución eficiente y exacta con este problema depende no sólo del
tamaño del problema en términos del número de restricciones y variables de
diseño sino también de las características de la función objetivo y sus
restricciones. Cuando la función objetivo y las restricciones son funciones
lineales de la variable de diseño, el problema se conoce como Programación
Lineal