introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · alonso ramirez...
TRANSCRIPT
![Page 1: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/1.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Análisis de algoritmos y Notación Asintótica
Computación y Algoritmos mat-151
1
Saturday, February 10, 18
![Page 2: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/2.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 17.02.2009
Prueba de TuringPiensa una estrategia para, usando una operación aritmética, puedas detectar a la computadora. Supón que la computadora es honesta y el humano es deshonesto.
Saturday, February 10, 18
![Page 3: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/3.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 10.02.2009
Explique porque esta función genera números aleatorios entre 0 y 10pot10-1
using namespace std;
long int giveMeRandomNPot10(int pot10){
long int n=0,fact=1; //n es resultado y factor potencia de 10 for(int i=0;i<pot10;i++){ n += (rand() % 10) * fact; fact *=10; } return n;
}
Saturday, February 10, 18
![Page 4: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/4.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 10.02.2009
Indique por qué este código verifica que los números aleatorios generados tienen distribución uniforme.
#define N_MAX 500000int main(){ long int count; long int vec[N_MAX];
for(int i=0;i<N_MAX;i++) vec[i] = 0; // inicializar contador a cero
for(count =0; count<100000000;count++){ //generar 100M muestras vec[giveMeRandomNPot10(6)%N_MAX]++; // ir contando }
for(int i=0;i<N_MAX;i++) // manda a pantalla los contadores cout << vec[i] << endl;
cout << “cont esperado / bin es: " << 100000000/N_MAX << endl;}
Saturday, February 10, 18
![Page 5: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/5.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad - Funciones de crecimiento (4)
Saturday, February 10, 18
![Page 6: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/6.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad
• Cuidar hacer la diferencia entre problemas donde la entrada sea:
• Un número N de objetos, queremos saber qué pasa cuando tenemos 1 reina o 1000 reinas.
• Un número N, en un algoritmo donde las operaciones se harán sobre este número ( en este ejemplo la complejidad es el número de bits que tome representar a N )
3
Saturday, February 10, 18
![Page 7: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/7.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el espacio
• Caracterización de una implementación en términos de la memoria que requiere (espacio)
• Función M(n) del “tamaño” de los datos (n), que permite evaluar la cantidad de memoria requerida.
4
Saturday, February 10, 18
![Page 8: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/8.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
5
Saturday, February 10, 18
![Page 9: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/9.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Función T(n) que describe, si es posible, el comportamiento del algoritmo en cuanto a su tiempo de ejecución, en términos de n, el tamaño de datos de entrada al algoritmo.
5
Saturday, February 10, 18
![Page 10: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/10.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Función T(n) que describe, si es posible, el comportamiento del algoritmo en cuanto a su tiempo de ejecución, en términos de n, el tamaño de datos de entrada al algoritmo.
• Si se puede, se expresa la función T(n) de manera exacta en términos de las operaciones elementales (operaciones aritméticas, operaciones de asignación), y no en términos de tiempo absoluto ...
5
Saturday, February 10, 18
![Page 11: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/11.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Función T(n) que describe, si es posible, el comportamiento del algoritmo en cuanto a su tiempo de ejecución, en términos de n, el tamaño de datos de entrada al algoritmo.
• Si se puede, se expresa la función T(n) de manera exacta en términos de las operaciones elementales (operaciones aritméticas, operaciones de asignación), y no en términos de tiempo absoluto ...
• Nos interesa en particular:
• ver lo que pasa para grandes números de objetos
• ver la escalabilidad del programa (que pasa al atender a 10 clientes, 11 clientes, etc.)
• comparar independientemente del hardware.
5
Saturday, February 10, 18
![Page 12: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/12.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
6
Saturday, February 10, 18
![Page 13: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/13.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
6
Saturday, February 10, 18
![Page 14: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/14.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
• void Ex1(int n){
6
Saturday, February 10, 18
![Page 15: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/15.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
• void Ex1(int n){•int i,j;
6
Saturday, February 10, 18
![Page 16: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/16.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
• void Ex1(int n){•int i,j;•int sum=0;
6
Saturday, February 10, 18
![Page 17: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/17.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
6
Saturday, February 10, 18
![Page 18: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/18.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){
6
Saturday, February 10, 18
![Page 19: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/19.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
6
Saturday, February 10, 18
![Page 20: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/20.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}
6
Saturday, February 10, 18
![Page 21: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/21.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Se considera la complejidad en términos de operaciones elementales.
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}•}
6
Saturday, February 10, 18
![Page 22: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/22.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02 7
Saturday, February 10, 18
![Page 23: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/23.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02 7
Saturday, February 10, 18
![Page 24: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/24.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){
7
Saturday, February 10, 18
![Page 25: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/25.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;
7
Saturday, February 10, 18
![Page 26: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/26.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;
7
Saturday, February 10, 18
![Page 27: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/27.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
7
Saturday, February 10, 18
![Page 28: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/28.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){
7
Saturday, February 10, 18
![Page 29: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/29.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
7
Saturday, February 10, 18
![Page 30: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/30.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}
7
Saturday, February 10, 18
![Page 31: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/31.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}•}
7
Saturday, February 10, 18
![Page 32: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/32.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}•}
tiempo constante: 1
1 + n + (n-1)
1 + i + (i-1) + (i-1) = 3i-1
7
Saturday, February 10, 18
![Page 33: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/33.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}•}
tiempo constante: 1
1 + n + (n-1)
1 + i + (i-1) + (i-1) = 3i-1
7
Saturday, February 10, 18
![Page 34: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/34.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}•}
tiempo constante: 1
1 + n + (n-1)
1 + i + (i-1) + (i-1) = 3i-1
7
Saturday, February 10, 18
![Page 35: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/35.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}•}
tiempo constante: 1
1 + n + (n-1)
1 + i + (i-1) + (i-1) = 3i-1
7
Saturday, February 10, 18
![Page 36: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/36.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}•}
tiempo constante: 1
1 + n + (n-1)
1 + i + (i-1) + (i-1) = 3i-1
7
Saturday, February 10, 18
![Page 37: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/37.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
• void Ex1(int n){•int i,j;•int sum=0;•for ( i=1; i<n; i++ ){
•for ( j=1; j<i; j++){•++sum;
•}•}
tiempo constante: 1
1 + n + (n-1)
1 + i + (i-1) + (i-1) = 3i-1
• complejidad del orden de n2
7
Saturday, February 10, 18
![Page 38: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/38.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
void Ex2(int n){
int i,j;
int sum=0, summ=0, limit=n*n;
for ( i=1; i<limit; i++ )
++ sum;
for ( j=1; j<sum; j++)
++summ;
}
• para valores grandes de n, T(n) se comporta como n2
8
Saturday, February 10, 18
![Page 39: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/39.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
void Ex2(int n){
int i,j;
int sum=0, summ=0, limit=n*n;
for ( i=1; i<limit; i++ )
++ sum;
for ( j=1; j<sum; j++)
++summ;
}
1 + 1 + 1 + 1
1 + n2 + 2(n2-1)}}
} 1 + (n2-1) + 2(n2-2)
• complejidad del orden de n2
Saturday, February 10, 18
![Page 40: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/40.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Complejidad en el tiempo
• Muchas veces no se puede establecer una forma exacta o aún aproximada de T(n), entonces hay que expresarlo estadísticamente.
• en promedio.
• en el peor caso.
• en el mejor caso, (un poco tramposo)
10
Saturday, February 10, 18
![Page 41: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/41.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
11
Saturday, February 10, 18
![Page 42: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/42.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
• En los años 1960s se llegó a un consenso sobre cómo cuantificar la noción de tiempo de ejecución ¨razonable¨.
11
Saturday, February 10, 18
![Page 43: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/43.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
• En los años 1960s se llegó a un consenso sobre cómo cuantificar la noción de tiempo de ejecución ¨razonable¨.
• Los espacios de búsqueda naturales para problemas combinatorios tienden a crecer de forma exponencial al tamaño de N, si N aumenta en 1, las posibilidades aumentan multiplicativamente.
11
Saturday, February 10, 18
![Page 44: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/44.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
• En los años 1960s se llegó a un consenso sobre cómo cuantificar la noción de tiempo de ejecución ¨razonable¨.
• Los espacios de búsqueda naturales para problemas combinatorios tienden a crecer de forma exponencial al tamaño de N, si N aumenta en 1, las posibilidades aumentan multiplicativamente.
• Queremos algoritmos con mejores comportamientos de escalamiento, si N crece un factor de 2, el tiempo de ejecución será más lento por un factor constante C.
11
Saturday, February 10, 18
![Page 45: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/45.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
• En los años 1960s se llegó a un consenso sobre cómo cuantificar la noción de tiempo de ejecución ¨razonable¨.
• Los espacios de búsqueda naturales para problemas combinatorios tienden a crecer de forma exponencial al tamaño de N, si N aumenta en 1, las posibilidades aumentan multiplicativamente.
• Queremos algoritmos con mejores comportamientos de escalamiento, si N crece un factor de 2, el tiempo de ejecución será más lento por un factor constante C.
• Aritméticamente podemos expresar este comportamiento como: para dos constantes absolutas c>0, d>0 tales que, para cada instancia de entrada N, el tiempo de ejecución está acotado por cNd pasos computacionales.
11
Saturday, February 10, 18
![Page 46: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/46.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
• En los años 1960s se llegó a un consenso sobre cómo cuantificar la noción de tiempo de ejecución ¨razonable¨.
• Los espacios de búsqueda naturales para problemas combinatorios tienden a crecer de forma exponencial al tamaño de N, si N aumenta en 1, las posibilidades aumentan multiplicativamente.
• Queremos algoritmos con mejores comportamientos de escalamiento, si N crece un factor de 2, el tiempo de ejecución será más lento por un factor constante C.
• Aritméticamente podemos expresar este comportamiento como: para dos constantes absolutas c>0, d>0 tales que, para cada instancia de entrada N, el tiempo de ejecución está acotado por cNd pasos computacionales.
• En este caso decimos que el algoritmo tiene tiempo de ejecución polinomial.
11
Saturday, February 10, 18
![Page 47: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/47.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
12
Saturday, February 10, 18
![Page 48: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/48.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
12
Saturday, February 10, 18
![Page 49: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/49.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
12
Saturday, February 10, 18
![Page 50: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/50.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
12
Muy diferente a, por ejemplo:
Saturday, February 10, 18
![Page 51: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/51.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
12
Muy diferente a, por ejemplo:
Saturday, February 10, 18
![Page 52: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/52.jpg)
c2N ! c2(2N) = c2N2N
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
12
Muy diferente a, por ejemplo:
Saturday, February 10, 18
![Page 53: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/53.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
• Con un procesador que ejecuta un millón de instrucciones de alto nivel por segundo:
13
Saturday, February 10, 18
![Page 54: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/54.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Tiempo polinomial como definición de eficiencia
• Con un procesador que ejecuta un millón de instrucciones de alto nivel por segundo:
n nlog2n n2 n3 1.5n 2n n!
n=10 < 1s < 1s <1s <1s <1s <1s 4s
n=30 < 1s < 1s <1s <1s <1s 18 min 1025 años
n=50 < 1s <1s <1s <1s 11 min 36 años --
n=100 < 1s <1s <1s 1 s 12,892 años 1017 años --
n=1000 < 1s < 1s 1 s 18 min -- -- --
n=10000 < 1s < 1s 2 min 12 días -- -- --
n=100000 < 1s 2 s 3 horas 32 años -- -- --
n=1000000 1 s 20 s 12 días 31,710 años -- -- --
13
Saturday, February 10, 18
![Page 55: Introducción al análisis de algoritmosalram/comp_algo/clase4.pdf · 2018-02-11 · Alonso Ramirez Manzanares Computación y Algoritmos 09.02 Complejidad en el tiempo • Función](https://reader030.vdocuments.pub/reader030/viewer/2022040516/5e75a57f2b59ed6a475b022d/html5/thumbnails/55.jpg)
Alonso Ramirez Manzanares Computación y Algoritmos 09.02
Orden de crecimiento asintótico
• Identificar el comportamiento de un algoritmo en el peor, en el mejor o en el caso promedio.
• Tener una idea del comportamiento de un algoritmo cuando se escala.
• Identificar clases de algoritmos con comportamientos comparables
• Expresiones como dependen de parámetros de representación intermedia y del hardware utilizado.
14
Saturday, February 10, 18