En la ciencia de la computación los algoritmos son más importantes que los LP o que las computadoras; la solución de un problema haciendo uso de las computadoras requiere por una parte un algoritmo o método de resolución y por otra un programa o codificación del algoritmo en un LP. Ambos componentes tienen importancia; pero la del algoritmo es absolutamente indispensable; sabemos que un algoritmo es una secuencia de pasos para resolver un problema.
La resolución práctica de un problema exige por una parte un algoritmo o método de resolución y por otra un programa o codificación de aquel en un ordenador real. Ambos componentes tienen su importancia; pero la del algoritmo es absolutamente esencial, mientras que la codificación puede muchas veces pasar a nivel de anécdota.
A efectos prácticos o ingenieriles, nos deben preocupar los recursos físicos necesarios para que un programa se ejecute. Aunque puede haber muchos parámetros, los más usuales son el tiempo de ejecución y la cantidad de memoria (espacio). Ocurre con frecuencia que ambos parámetros están fijados por otras razones y se plantea la pregunta inversa: ¿cuál es el tamaño del mayor problema que puedo resolver en T segundos y/o con M bytes de memoria? En lo que sigue nos centraremos casi siempre en el parámetro tiempo de ejecución, si bien las ideas desarrolladas son fácilmente aplicables a otro tipo de recursos.
Para cada problema determinaremos una medida N de su tamaño (por número de datos) e intentaremos hallar respuestas en función de dicho N. El concepto exacto que mide N depende de la naturaleza del problema. Así, para un vector se suele utilizar como N su longitud; para una matriz, el número de elementos que la componen; para un grafo, puede ser el número de nodos (a veces es mas importante considerar el número de arcos, dependiendo del tipo de problema a resolver); en un fichero se suele usar el número de registros, etc. Es imposible dar una regla general, pues cada problema tiene su propia lógica de coste.
análisis a priori, a posteriori, costo de algoritmos, análisis iterativo, análisis recursivo, complejidad del algoritmo, orden de complejidad, notación asintótica
Conoce nuestras escobillas limpiaparabrisas y sus aplicaciones en este catálogo. Sienta la diferencia con las escobillas HELLA.
#TerritorioHELLA
Descubre más en: www.territoriohella.es
En la ciencia de la computación los algoritmos son más importantes que los LP o que las computadoras; la solución de un problema haciendo uso de las computadoras requiere por una parte un algoritmo o método de resolución y por otra un programa o codificación del algoritmo en un LP. Ambos componentes tienen importancia; pero la del algoritmo es absolutamente indispensable; sabemos que un algoritmo es una secuencia de pasos para resolver un problema.
La resolución práctica de un problema exige por una parte un algoritmo o método de resolución y por otra un programa o codificación de aquel en un ordenador real. Ambos componentes tienen su importancia; pero la del algoritmo es absolutamente esencial, mientras que la codificación puede muchas veces pasar a nivel de anécdota.
A efectos prácticos o ingenieriles, nos deben preocupar los recursos físicos necesarios para que un programa se ejecute. Aunque puede haber muchos parámetros, los más usuales son el tiempo de ejecución y la cantidad de memoria (espacio). Ocurre con frecuencia que ambos parámetros están fijados por otras razones y se plantea la pregunta inversa: ¿cuál es el tamaño del mayor problema que puedo resolver en T segundos y/o con M bytes de memoria? En lo que sigue nos centraremos casi siempre en el parámetro tiempo de ejecución, si bien las ideas desarrolladas son fácilmente aplicables a otro tipo de recursos.
Para cada problema determinaremos una medida N de su tamaño (por número de datos) e intentaremos hallar respuestas en función de dicho N. El concepto exacto que mide N depende de la naturaleza del problema. Así, para un vector se suele utilizar como N su longitud; para una matriz, el número de elementos que la componen; para un grafo, puede ser el número de nodos (a veces es mas importante considerar el número de arcos, dependiendo del tipo de problema a resolver); en un fichero se suele usar el número de registros, etc. Es imposible dar una regla general, pues cada problema tiene su propia lógica de coste.
análisis a priori, a posteriori, costo de algoritmos, análisis iterativo, análisis recursivo, complejidad del algoritmo, orden de complejidad, notación asintótica
Conoce nuestras escobillas limpiaparabrisas y sus aplicaciones en este catálogo. Sienta la diferencia con las escobillas HELLA.
#TerritorioHELLA
Descubre más en: www.territoriohella.es
Plano Municipal do Livro, Leitura, Literatura e Bibliotecas de Nova Iguaçu-RJ, escrito pelo grupo de trabalho GT Iguaçulendo, aprovado em plenária e entregue à Secretaria de Cultura de Nova Iguaçu, em dezembro/2013
3. La complejidad de un algoritmo es una métrica que se expresa según el tamaño
del problema, en donde se mide la cantidad de recursos (tiempo – espacio)
que el algoritmo necesite.
4. En donde si el recurso a considerar es el espacio la complejidad se basa en la cantidad de
memoria requerida para ejecutar, la cual está asociada a las estructuras de datos usadas en
su implementación.
5.
6. La complejidad se basa en la cantidad de tiempo necesario para la ejecución de
operaciones.
Mientras que si el Recurso es tiempo
7. La resolución de un problema puede obtenerse con muchos
algoritmos. Por tanto, es obvio querer elegir el “mejor”.
Si el problema es sencillo puede elegir el más “fácil”.
Si el problema es complejo o existen muchas soluciones se
tiene que elegir el algoritmo que menos recursos utilice
(tiempo – espacio).
La eficiencia de un algoritmo (lo rápido que se ejecutará)
dependerá del “tamaño” de los datos de entrada.
8. El peor de los casos indica el mayor tiempo obtenido,
considerando todas las entradas posibles.
El caso promedio indica el tiempo medio obtenido,
considerando todas las entradas posibles.
El mejor de los casos indica el menor tiempo obtenido,
considerando todas las entradas posibles.
9. Si los datos de entrada son grandes el tiempo de
ejecución será mayor.
Expresado como T(n).
Tiempo de ejecución.
10.
11. Lo más importante del análisis
de algoritmo es saber cómo
crece el tiempo de ejecución
cuando el tamaño de entrada
crece.
A esto se le denomina eficiencia
asintótica del algoritmo, donde se indica
como crece "t" para los valores que
tienden al infinito, es decir con
comportamiento asintótico.
12. "Asintótico es analizar el comportamiento de las funciones en base a su tasa de
crecimiento." Para esto se creó la notación Big-0 donde 0 es un valor que puede
tender al infinito.
13. Existe un conjunto de funciones que poseen un mismo comportamiento, a esto se le
denomina orden de complejidad, el cual está representado por la siguiente tabla
Complejidad Orden
O(1) Constante
0(n2) Cuadrática
0(log n) Logarítmica
0(n) Lineal
0(n log n) Casi-Lineal
0(nb) Polinómica
0(bn) Exponencial
0(n!) Factorial