Está en la página 1de 5

Sistemas y Algoritmos 2 Segundo Semestre, 2015

Clase 5: Ordenamiento V
Instructor: Diego Villamizar

Recuerde la denición de inversión de las notas pasadas.

Proposición 5.1 El costo, asintóticamente hablando, de ordenar X con el algoritmo de


inserción es equivalente a ˆ
|Inv(St(X))|.

Teniendo el costo, como se nombró en las notas pasadas, nos interesa encontrar una distribu-
ción en Sn que nos permita hablar del costo promedio. Para eso se dene el conjunto

Ai,n = {σ ∈ Sn : |Inv(σ)| = i},

y se dene de esa forma ya que nuestro algoritmo, en términos de costo no diferencia a


ninguna permutación contenida en Ai,n .
Note que {Ai,n }0≤i≤(n) particiona a Sn , luego
2

(n2 )
X
|Ai,n | = |Sn | = n!
i=0

Ejemplo 5.2 En S3
A0,3 = {123}, A1,3 = {132, 213}, A2,3 = {312, 231}, A3,3 = {321}.

Así que el costo esperado sería algo como

(n2 )
X 1 X
P (σ)Costo(σ) = i ∗ |Ai,n |.
σ∈Sn
n! i=0

De eso, sabemos cómo calcularlo todo, lo único que no es claro es cómo calcular |Ai,n |.

Proposición 5.3 Sea n ∈ Z+ , se cumple la siguiente igualdad

n−1
Y i
X (n2 )
X
( xj ) = |Ai,n |xi .
i=0 j=0 i=0

Prueba:

1
2 Clase 5: Ordenamiento V

Combinatoriamente
Consideremos la expresión izquierda de la igualdad y escribámosla de forma extendida
1(1 + x)(1 + x + x2 ) · · · (1 + x + · · · + xi−1 ) · · · (1 + x + · · · + xn−1 ),
Ahora multipliquemos(note que el grado mayor es coger, en cada factor de la multi-
placion, el mayor monomio), usando el producto de cauchy, queda
Pn−1
j=1 j
X X
2 i−1 n−1
1(1+x)(1+x+x ) · · · (1+x+· · ·+x ) · · · (1+x+· · ·+x )= ( 1)xi ,
i=0 a1 +a2 +···+an =i,∀k∈[n](ak <k)

luego, como se suman sólo unos,


X n
X
n
1 = |{(a1 , a2 , · · · , an−1 , an ) ∈ ([n−1]∪{0}) : ak = i∧(∀j ∈ [n], aj < j)}|,
a1 +a2 +···+an =i,∀k∈[n](ak <k) k=1

note que ese conjunto interior(que denotaremosPpor Bi,n ) depende de i y de n. Con


eso, y notando que en la sumatoria se va hasta n−1 n
, lo único que debe verse

j=1 j = 2
es que |Bi,n | = |Ai,n |.
Consideremos
ϕ : Ai,n −→ Bi,n
una función que envía a σ ∈ Sn con |Inv(σ)| = i a la tupla (a1 , a2 , · · · , an ) donde
aj = |Inv(σ) ∩ {(σj−1 , k) : k ∈ [n]}|.

Ejemplo 5.4 Consideremos σ = 35241, Inv(σ) = {(1, 3), (1, 5), (2, 3), (2, 4), (2, 5), (3, 5), (4, 5)}
Luego a1 = 0, a2 = |{(3, 5)}| = 1, a3 = |{(1, 3), (1, 5)}| = 2, a4 = |{(4, 5)} = 1, a5 =
|{(2, 3), (2, 4), (2, 5)}|

Para probar que, efectivamente |Bi,n | = |Ai,n | toca ver que ϕ esté bien denida como
función y que sea biyectiva. Se le deja de ejercicio (opcional) al estudiante, pero
se dará la idea de cómo es ϕ−1 .

Ejemplo 5.5 Supongamos que tenemos (0, 1, 2, 1, 3) ∈ B6,5 y consideremos la siguiente


sucesión de permutaciones

α1 = 1, α2 =21, α3 =321, α4 = 3241, α5 = 35241.


Donde α1 es siempre1 y αj se obtiene de αj−1 al insertar a j entre los elementos en
las posiciones j − aj − 1 y j − aj (Cuántas inversiones tiene asociadas σj ).
De la construcción, debería ser sencillo darse cuenta que ϕ(α5 = 35241) = (0, 1, 2, 1, 3)
(como se ve en el ejemplo anterior).
Clase 5: Ordenamiento V 3

Inducción (recursivamente)
ˆ Caso base, n = 1.
x0 = 1 = x0 ∗ |A0,1 | = x0 ∗ |{1}| = 1.
ˆ Supongámoslo para n y veámoslo para n + 1.
Tenemos, en el lado izquierdo
n X
Y i n
X n−1
Y X i
j j
( x )=( x )( ( xj )),
i=0 j=0 j=0 i=0 j=0

pero, por hipótesis de inducción, se obtiene

Xn X(n2 )
( xj )( |Ai,n |xi ),
j=0 i=0

y resolviendo el producto de polinomios(producto de Cauchy), se obtiene


n+(n
2)
X X
( 1 ∗ |Ab,n |)xi ,
i=0 a+b=i,0≤a≤n,0≤b≤(n
2)

note que n = n1 , luego por recursión de Pascal, n + n2 = n+1 . Además pong-


  
2
amos la sumatoria de la convolución con índice b , luego b iría desde máx{0, i − n}
hasta mı́n{ 2 , i}, así
n

n+1
(X2 )
mı́n{i,(n
2)
}
X
( |Ab,n |)xi ,
i=0 b=máx{0,i−n}

n+1
(X2 )

En este punto, como se quiere llegar a la igualdad con |Ai,n+1 |xi , sólo hace
i=0
falta una forma de demostrar que
mı́n{i,(n
2)
}
X
|Ab,n | = |Ai,n+1 |.
b=máx{0,i−n}

Para demostrar eso, deberíamos ser capaces de particionar a Ai,n+1 en una fa-
milia de conjuntos {Bk }máx{0,i−n}≤k≤mı́n{i,(n)} tal que |Bk | = |Ak,n |. Denamos,
2
entonces, a Bk = {σ ∈ Ai,n+1 : σn+1
−1
= n + 1 − (i − k)} como las permutaciones en
4 Clase 5: Ordenamiento V

Sn+1 tales que al quitar el elemento n + 1, se obtiene una permutación en Ak,n .


Debería ser obvio, de la denición de permutación, que esa familia de conjuntos
crea una partición de Ai,n+1 .

Ejemplo 5.6 Consideremos i = 25, n = 8


A25,8 = {58764321, 67854321, 68574321, 68745321, 68753421, 68754231, 68754312, 75864321,
76584321, 76845321, 76853421, 76854231, 76854312, 78465321, 78546321, 78563421,
78564231, 78564312, 78635421, 78643521, 78645231, 78645312, 78652431, 78653241,
78653412, 78654132, 78654213, 84765321, 85674321, 85746321, 85763421, 85764231,
85764312, 86475321, 86547321, 86573421, 86574231, 86574312, 86735421, 86743521,
86745231, 86745312, 86752431, 86753241, 86753412, 86754132, 86754213, 87365421,
87456321, 87463521, 87465231, 87465312, 87536421, 87543621, 87546231, 87546312,
87562431, 87563241, 87563412, 87564132, 87564213, 87625431, 87634521, 87635241,
87635412, 87642531, 87643251, 87643512, 87645132, 87645213, 87651432, 87652341,
87652413, 87653142, 87653214, 87654123}
A18,7 = {4765321, 5674321, 5746321, 5763421, 5764231,
5764312, 6475321, 6547321, 6573421, 6574231, 6574312, 6735421, 6743521,
6745231, 6745312, 6752431, 6753241, 6753412, 6754132, 6754213, 7365421,
7456321, 7463521, 7465231, 7465312, 7536421, 7543621, 7546231, 7546312,
7562431, 7563241, 7563412, 7564132, 7564213, 7625431, 7634521, 7635241,
7635412, 7642531, 7643251, 7643512, 7645132, 7645213, 7651432, 7652341,
7652413, 7653142, 7653214, 7654123}
A19,7 = {5764321, 6574321, 6745321, 6753421, 6754231, 6754312, 7465321,
7546321, 7563421, 7564231, 7564312, 7635421, 7643521,
7645231, 7645312, 7652431, 7653241,
7653412, 7654132, 7654213}
A20,7 = {6754321, 7564321, 7645321, 7653421, 7654231, 7654312}
A21,7 = {7654321}

Ejercicios para el taller.


Escoja uno de los siguientes puntos:
1. Implemente los algoritmos usados en las pruebas combinatoria y recursiva de la proposi-
ción.
2. Termine las dos pruebas con todos sus detalles.
Bibliografía
[1] M. Aigner, A course in Enumeration, GTM (2007).
[2] N. Biggs, Discrete Mathematics, Oxford Press (2009).
[3] T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms, 3rd Edition,
MIT Press (2009).
[4] D. Knuth, The art of computer programming, Addison-Wesley (1968).
[5] C. Papadimitriou, K. Steiglitz, Combinatorial Optimization, Dover (1998).
[6] R. Sedgewick, K. Wayne, Algorithms, 3rd Edition, Addison-Wesley (2011).
[7] D. Welsh, Matroid Theory, Dover (2005).

También podría gustarte