Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Salida:
◭◭ ◮◮
′ ′ ′
Una permutación (reordenamiento) <a1 , a2 , ..., an > de la entrada tal que:
◭ ◮
′ ′ ′
Page 3 of 13
a1 ≤a2 ≤...≤an
Go Back
Ejemplo :
Close <31,41,59,26,41,58>
Quit Salida:
<26,31,41,41,58,59>
Title Page
Contents
Problema de Ordenamiento (Cont.)
◭◭ ◮◮
◭ ◮ Algoritmos de ordenamiento
Page 4 of 13
Diseño
Go Back
Análisis
Close
Quit
Tipos de Problemas Solucionados utilizando
Home Page
Algoritmos
Title Page Las aplicaciones prácticas de los algoritmos son muchas, incluimos
los siguientes ejemplos.
Contents
Proyecto del Genoma Humano: La meta es identificar todos los
◭◭ ◮◮ 100,000 genes en el ADN de la especie humana, determimando la
◭ ◮ secuencia de 3 billones de pares de bases quı́micos que forma el ADN
humano. Se ordenan esta información en una bases de datos y se
Page 5 of 13 desarrolla herramientas para analizar los datos. Cada una de estas
etapas requiren sofisticados algoritmos.
Go Back
Contents
Congruencia Lineal : Dada una ecuación de ax ∼ = b (mod n), donde
◭◭ ◮◮ a, b y n son enteros y debemos encontrar todos los enteros x modulo
n, que satisfagan la ecuación. Pueden no tener solución o existe una
◭ ◮ o más soluciones.
Page 6 of 13 Multilplicación de Matrices: Dadas una secuencia
Go Back
<A1 , A2 ..., An > de n matrices y deseamos determinar el pro-
ducto A1 A2 ...An . La multiplicación de matrices es asociativa,
Full Screen por lo tanto existe varias formas correctas de realizar el orden
de la multiplicación. Por ejemplo si n = 4 las posibles forma de
Close
asociar las matrices son : (A1 (A2 (A3 (A4 ))), (A1 ((A2 A3 )(A4 )),
Quit ((A1 (A2 )(A3 (A4 )) ((A1 (A2 A3 ))A4 ), (((A1 A2 )A3 )A4 ). Si todas la
matrices son cuadradas, no se afecta el tiempo tome la multiplicación
de matrices.
Home Page Los Algoritmos como una Tecnologı́a
Title Page
Supongamos que tenemos un computador infinitamente rápido y sin
Contents restricciones de espacio en memoria.
Existe entonces alguna razón para estudiar el comportamiento
◭◭ ◮◮ de los algoritmos?.
◭ ◮
Si tenemos un computador infinitamente rápido y el método para solu-
Page 7 of 13 cionar el problema es correcto.
De acuerdo a que normas realizarı́a la implementación del algo-
Go Back
ritmo?.
Full Screen Si tenemos un computador rápido, pero no infinitamente rápido. La memo-
ria se pueden conseguir a un costo económico, pero con lı́mitaciones en
Close
espacio.
Quit
Qué podemos hacer para administrar estos recursos correcta-
mente?
Técnicas de Análisis y Diseño de Algoritmos
Home Page
A través del análisis de algoritmos es posible establecer unas medi-
Title Page da de eficiencia sobre un algoritmo y compararlo con otros algoritmos
que se puedan escribir para resolver el mismo problema, sin necesidad de
Contents
implementarlos.
◭◭ ◮◮ Factores a tener en cuenta al analizar un algoritmo :
Page 8 of 13
Eficiencia.
Go Back • Tiempo
• Espacio
Full Screen
Computador A Computador B
Insertion-Sort Merge-Sort
Home Page
Contents Supercomputador PC
◭◭ ◮◮
109 Inst/s (1 billón) 107 Inst/s (10 millones)
◭ ◮
Supercompilador: 2n2 Intr. Compilador ineficiente: 50nlg n Inst.
Page 10 of 13
Go Back c1 =2 c2 =50
50lg106
= 2(103 ) ∼
= 2000 s 10
∼
= 100 s
∼
=33.33 minutos ∼
= 1.67 minutos
La ventaja del Merge Sort es mucho mayor al ordenar 10 millones
de nuúmeros, donde el Insertion Sort toma aproximadamente 23 dias
en ordenar los números, mientra el Mege Sort tarda unos 20 minutos.
Problemas Difı́ciles (Hard Problems)
Home Page
Existe unos problemas para los cuales no existe una solución efi-
Title Page
ciente, este tipo de problemas son conocidos como NP-Completos
Contents
◭ ◮
Aunque no han encontrado algoritmos eficientes para problemas NP-
Page 11 of 13 completos, en la actualidad no se ha demostrado que un algoritmo
eficiente para esté tipo de problemas no exista.
Go Back
En la actualidad existe muchos problemas NP-completos sin resolver.
Full Screen Si se encuentra un algoritmo eficiente para alguno de ellos, entonces
Close
existirı́a un algoritmo eficiente para el resto.
Quit
Varios problemas NP-completos son similares pero no identicos. Un
pequeño cambio en el enunciado del problema puede causar grandes
cambios en la eficiencia.
Problemas Difı́ciles (Cont.)
Ejemplos
Home Page
Problema del Clique : Un clique es un grafo G = (V, E) con
Title Page un subconjunto V’⊆ V de vértices, donde cada pareja de vértices
está conectada por una arista de E. En otras palabras, un clique es
Contents
un subgrafo completo en G. El tamaño de un clique es el número de
◭◭ ◮◮ vértices que contiene. El problema del Clique es un problema de
optimización : encontrar un clique de tamaño máximo en un grafo.
◭ ◮ Como problema de decisión se pregunta si existe un clique de tamaño
k en el grafo. La definición formal es
Page 12 of 13
Clique = { (G, k) : G es un grafo con un clique de tamaño k }
Go Back
Problema de la Suma de subconjuntos : En el problema Suma
Full Screen de Subconjuntos, tenemos un conjunto finito de números natu-
rales S ⊂ N y un número natural t ∈ N. La pregunta es si existe
Close
un subconjunto S’⊆ S donde la suma de los elementos es igual a t.
Quit
Por ejemplo, si S = {1,2,7,14,49,98,43,686,2409, 2793, 16808, 17206,
117206, 117705, 117993} y t = 138457, entonces el subconjunto S’=
{1,2,7, 98, 343,686,2409,17206,117705} es la solución. La definición
formal al problemas es
′
P − subconj = { (S, t) : existe un subconjunto S ⊆ S tal que t
suma
= s∈S ′ S }
Problemas Difı́ciles (Cont.)
Home Page
Ciclos Hamiltoniano : Un ciclo hamiltoniano es un grafo G =
Title Page (V, E) es un simple ciclo que contiene cada vértice en V. Un grafo
es hamiltoniano si contiene un ciclo hamiltoniano; en otro caso no es
Contents
hamiltoniano.
◭◭ ◮◮
" "
# #
" "
# #
" "
# #
3 3
2 2
◭ ◮ ! !
1
0
1
0
3
2
3
4
4
4
4
5
5
4
4
5
5
$
$
$
$
%
%
$
$
%
1 1
0 0
4 4 4 $ $ $
5 5 % %
! !
1 1
. . 6 6 6
/ / 0 0 7 7
! !
B B D D D
C C E E
. . 6 6 6
/ / 7 7
B B D D D
C C E E
. . 6 6 6
/ / 7 7
Page 13 of 13 B
C
B
C
D D
E
D
E
, , @ @ @ 8 8
- - A A 9 9
F F F
G G G
, , @ @ @ 8 8
- - A A 9 9
F F F
G G G
, , @ @ @ 8 8
- - A A 9 9
F F F
G G G
Go Back >
?
>
?
>
?
* *
+ +
* *
+ +
* *
+ +
Full Screen (
)
(
)
(
)
(
)
&
'
&
'
&
'
&
'
( ( & &
) ) ' '
Close
Quit
Fig 1: Grafo con ciclo hamiltoniano