Analisis y diseño de algoritmos ejercicios

download Analisis y diseño de algoritmos ejercicios

of 16

Transcript of Analisis y diseño de algoritmos ejercicios

Diseo y anlisis de algoritmosEjercicios

Anlisis de algoritmos1.

Disear un algoritmo para hacer una bsqueda secuencial de un elemento dado X dentro de un vector V[a, b] y calcular la complejidad en el peor de los casos y en el promedio de los casos.Disear un algoritmo para ordenar ascendentemente los elementos de un vector A [1, n] utilizando el mtodo de ordenamiento por insercin lineal. Calcular la complejidad en el peor de los casos, en el mejor de los casos y en el promedio de los casos.Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos. 2

2.

Mayo, 2005

Anlisis de algoritmos3. Disear un algoritmo para ordenar ascendentemente los elementos de un vector A [1, n] utilizando el mtodo de ordenamiento por seleccin lineal. Calcular la complejidad en el peor de los casos, en el mejor de los casos y en el promedio de los casos Disear un algoritmo para imprimir todos los subconjuntos de un conjunto finito dado. Ejemplo: dado el conjunto {a, b, c} todos los subconjuntos son {} {a} {b} {c} {a, b} {a, c} {b, c} {a, b, c} Encontrar las cotas asintticas de su algoritmo.Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos. 3

4.

Mayo, 2005

Anlisis de algoritmos5.

Disear un algoritmo iterativo para encontrar el nmero de parejas de conejos al cabo de n meses, dada una pareja inicial que tiene dos descendientes a los dos meses (macho y hembra) y que luego de la primera camada, se sigue reproduciendo con dos descendientes (macho y hembra) cada mes. Cada pareja obtenida se reproduce de la misma manera. Encontrar las cotas asintticas O, , del algoritmo.Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos. 4

Mayo, 2005

Grafos1.

Cul es el resultado de la ejecucin del algoritmo de bsqueda en amplitud desde el nodo 3, para:1 2 3 b 4 1 2 3 4 5 6 8 10 7 95

1

2

3

4

a 5 6

5 d

6

7

8

Modifique el algoritmo para que despliegue en pantalla cada arco de G

cMayo, 2005

Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

Grafos2.

El grafo transpuesto Gt=(N,At) donde At={(v, u) AxA/(u, v) A}. Proponga un algoritmo eficiente para calcular Gt a partir de G implementado como:a) Matriz de adyacencia, calcule T(n) b) Listas de adyacencia, calcule T(n)

3.

El grafo cuadrado G2=(N, A2)/(u, w) A2 si y solo s para algn v N, (u, v)A y (v, w)A. Proponga un algoritmo eficiente para calcular G2 como:a) Matriz de adyacencia, calcule T(n) b) Listas de adyacencia, calcule T(n)

Mayo, 2005

Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

6

Grafos4.

5.

6.

Proponga un algoritmo para conocer si un grafo G implementado con matriz de adyacencia contiene o no un nodo con grado de incidencia positivo igual a |N|-1 y grado de incidencia negativo igual a 0, en T(n)=O(N) Realice otro algoritmo para calcular lo mismo que el ejercicio anterior, pero con G implementado con listas de adyacencia Realice un algoritmo eficiente para determinar si un grafo G es bipartitoProf. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos. 7

Mayo, 2005

Grafos7.

8.

9.

Proponga un algoritmo en T(n)=O(N) para saber si un grafo G contiene o no un ciclo Cul es W(n) para la implementacin del TAD Digrafo implementado con matriz de adyacencia y cul la de listas de adyacencia? Compare sus resultados Realice un algoritmo que liste todos los rdenes topolgicos de un dag G dadoProf. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos. 8

Mayo, 2005

Grafos10.

11.

La longitud (# de aristas) del camino ms corto entre u y v en G es d(u, v). Si u y v no estn conectados d(u, v) = . Defina la relacin u est cerca de v cuando d(u, v) 10. Cul de las propiedades (reflexividad, simetra, antisimetra y transitividad) est presente en G? Verifique que el dag G acclico tiene 47 rdenes topolgicosa b f c d e g h9 Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

Mayo, 2005

Grafos12.

13.

Haga un algoritmo no recursivo para la bsqueda en profundidad en G Una regin contiene ciudades conectadas por carreteras. Se desea construir un hospital en una de ellas, para que sirva a todas las ciudades, minimizando la distancia mxima desde cualquiera del resto de las ciudades hasta la escogida. Haga un algoritmo para resolver el problema, dado G con etiquetas no negativas.Prubelo con el grafo 10 12 11 3 1910

8 10

Mayo, 2005

Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

Grafos14.

15.

Haga un algoritmo para determinar cules aristas de un G conexo se pueden eliminar para que G sea no conexo Sea T un rbol no dirigido etiquetado y defina el dimetro de T como el costo del camino ms largo en T. Realice un algoritmo de complejidad lineal para encontrar el dimetro de TPrubelo con el rbol 3 4 2 3 2 511

Mayo, 2005

Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

Grafos16.

Sea G=(N, A) un grafo conexo. Un punto de articulacin es un nodo cuya eliminacin hace que G sea no conexo. Un puente de G es una arista cuya eliminacin desconecta G. Un componente biconexo de G es un conjunto de A tal que cualquiera 2 aristas del conjunto est en un ciclo simple comn. Estos se pueden determinar con el algoritmo de bsqueda en profundidad. Sea T el rbol resultante de dicho algoritmo. a. Demuestre que la raz de T es un punto de articulacin de G si y solo s tiene al menos 2 hijos b. Muestre como encontrar todos los puntos de articulacin en O(A) c. Muestre como encontrar todos los puentes en O(A) d. Encuentre un algoritmo O(A) que etiquete todas las aristas con un entero c(v)=c(v) si y solo s v y v estn en el mismo componente biconexo, v y v A. En el ejemplo, 1,2,3,4,5,62 1 3 4 512

6

Mayo, 2005

Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

Grafos17.

18. 19.

Suponga que los pesos de G estn en [1, |N|] Qu tan rpido corre el algoritmo de Kruskal? Qu tan rpido corre si los pesos estn en [1, W], con W > 0? Igual al ejercicio anterior, pero con el algoritmo de Prim Para el digrafo G, encuentre 4 rboles de caminos mnimo 6 u v3

G

s

4 5 2 1 2 6 3 7

xMayo, 2005

y13

Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

Grafos20.

21.

Pruebe el algoritmo de Dijkstra para el digrafo G teniendo como nodo inicial s. Pruebe nuevamente con el nodo inicial y. Muestre los valores de d y p en cada vuelta del lazo. De un ejemplo de un grafo con pesos negativos donde el algoritmo de Dijkstra de resultados incorrectos. 63

u

v

G

s

4 5 2 1 2 6 3 7

xMayo, 2005

y14

Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

Grafos22.

23.

Pruebe el algoritmo de Bellman-Ford para el digrafo H usando como nodo inicial y. Relaje los arcos en el orden lexicogrfico y despliegue d y p en cada pasada. Para el mismo digrafo H, cambie el peso de (y, v) por 4 y pruebe el algoritmo de Bellman-Ford usando z como nodo fuente. -26

u

5 -3 9 -4

v

H

z

7 2

8

7

xMayo, 2005 Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

y15

Grafos24.

Pruebe el algoritmo de C+Cdag para el digrafo Q usando como nodo fuente r.6 1 7

Q

r

5 3

s

2

t

u

-1 4

v

-2 2

x

Mayo, 2005

Prof. Isabel Besembel. Ctedra de Programacin. Diseo y Anlisis de Algoritmos.

16