• No se han encontrado resultados

La mediana de una lista de números enteros

N/A
N/A
Protected

Academic year: 2022

Share "La mediana de una lista de números enteros"

Copied!
42
0
0

Texto completo

(1)

La mediana de una lista de n´umeros enteros

Suponga que n es un n´ umero impar y L[1 . . . n] es una lista de n´ umeros enteros sin elementos repetidos.

I Recuerde que usamos la notaci´on L[1 . . . n] para indicar que L es una lista con n elementos

L[i] es la mediana de L si:

|{j 2 {1, . . . , n} | L[j] < L[i]}| = b n 2 c

|{k 2 {1, . . . , n} | L[k] > L[i]}| = b n

2 c

(2)

La mediana de una lista de n´umeros enteros

Suponga que n es un n´ umero impar y L[1 . . . n] es una lista de n´ umeros enteros sin elementos repetidos.

I Recuerde que usamos la notaci´on L[1 . . . n] para indicar que L es una lista con n elementos

L[i] es la mediana de L si:

|{j 2 {1, . . . , n} | L[j] < L[i]}| = b n 2 c

|{k 2 {1, . . . , n} | L[k] > L[i]}| = b n 2 c

IIC2283 Algoritmos aleatorizados 111 / 150

(3)

La mediana de una lista de n´umeros enteros

Ejercicio

Construya un algoritmo que calcule la mediana de una lista L[1 . . . n] y que en el peor caso sea O(n · log

2

(n))

I

Considere como la operaci´on b´asica a contar la comparaci´on de n´ umeros enteros

Vamos a construir un algoritmo aleatorizado de tipo Las Vegas para este problema.

I

¡Este algoritmo funciona en tiempo lineal!

(4)

La mediana de una lista de n´umeros enteros

Ejercicio

Construya un algoritmo que calcule la mediana de una lista L[1 . . . n] y que en el peor caso sea O(n · log

2

(n))

I

Considere como la operaci´on b´asica a contar la comparaci´on de n´ umeros enteros

Vamos a construir un algoritmo aleatorizado de tipo Las Vegas para este problema.

I

¡Este algoritmo funciona en tiempo lineal!

IIC2283 Algoritmos aleatorizados 112 / 150

(5)

Un algoritmo aleatorizado para el c´alculo de la mediana

Suponga que el procedimiento Mergesort(L) ordena una lista L utilizando el algoritmo Mergesort

I Recuerde que las listas son pasados por referencia en este curso

El siguiente procedimiento calcula la mediana de una lista de enteros L[1 . . . n] (suponiendo que n es impar y L no tiene elementos repetidos):

CalcularMediana(L[1 . . . n]) if n < 2001 then

Mergesort(L) return L[dn2e] else

sea R una lista de dn34 e n´umeros enteros escogido con

distribuci´on uniforme y de manera independiente desde L Mergesort(R)

(6)

Un algoritmo aleatorizado para el c´alculo de la mediana

Suponga que el procedimiento Mergesort(L) ordena una lista L utilizando el algoritmo Mergesort

I Recuerde que las listas son pasados por referencia en este curso

El siguiente procedimiento calcula la mediana de una lista de enteros L[1 . . . n]

(suponiendo que n es impar y L no tiene elementos repetidos):

CalcularMediana(L[1 . . . n]) if n < 2001 then

Mergesort(L) return L[dn2e]

else

sea R una lista de dn34 e n´umeros enteros escogido con

distribuci´on uniforme y de manera independiente desde L Mergesort(R)

IIC2283 Algoritmos aleatorizados 113 / 150

(7)

Un algoritmo aleatorizado para el c´alculo de la mediana

d := R[b12 · n34 n12 c]

u := R[d12 · n34 + n12 e]

S := ; md := 0 mu := 0

for i := 1 to n do

if d  L[i] and L[i]  u then Append(S, [L[i]]) else if L[i] < d then md := md + 1

else mu := mu + 1

if md dn2e or mu dn2e or

Length(S) > 4 · bn34 c then return sin resultado else

Mergesort(S)

n

(8)

El algoritmo es correcto y eficiente

Ejercicios

Demuestre lo siguiente:

1. Si CalcularMediana(L) retorna un n´umero entero m, entonces m es la mediana de L

2. Si se tiene un procedimiento LanzarMoneda() que retorna 0 ´o 1 con probabilidad 12, entonces existe un algoritmo para construir R que invoca a este procedimiento a los m´as c · n34 · log2(n) veces, donde c es una

constante fija y n es el largo de la lista de entrada

I Podemos suponer que LanzarMoneda() en el peor caso es O(1)

3. CalcularMediana(L) en el peor caso es O(n), suponiendo que n es el largo de L y considerando todas las operaciones realizadas

IIC2283 Algoritmos aleatorizados 115 / 150

(9)

¿Cu´al es la probabilidad de no retornar un resultado?

La llamada CalcularMediana(L) puede no retornar un resultado

I

El procedimiento en este caso retorna sin resultado

Para que CalcularMediana pueda ser utilizado en la pr´actica la probabilidad que no entregue un resultado debe ser baja

I

Vamos a demostrar esto

(10)

¿Cu´al es la probabilidad de no retornar un resultado?

La llamada CalcularMediana(L) puede no retornar un resultado

I

El procedimiento en este caso retorna sin resultado

Para que CalcularMediana pueda ser utilizado en la pr´actica la probabilidad que no entregue un resultado debe ser baja

I

Vamos a demostrar esto

IIC2283 Algoritmos aleatorizados 116 / 150

(11)

La probabilidad de no retornar resultado

Sea L[1 . . . n] una lista de n´ umeros enteros tal que n 2001, n es impar y la mediana de L es m

Defina las siguientes variables aleatorias:

Y

1

= |{i 2 {1, . . . , dn

34

e} | R[i]  m}| Y

2

= |{i 2 {1, . . . , dn

34

e} | R[i] m }|

Estas son variables aleatorias dado que R es construido escogiendo

elementos de L con distribuci´on uniforme (y de manera independiente)

(12)

La probabilidad de no retornar resultado

Sea L[1 . . . n] una lista de n´ umeros enteros tal que n 2001, n es impar y la mediana de L es m

Defina las siguientes variables aleatorias:

Y

1

= |{i 2 {1, . . . , dn

34

e} | R[i]  m}|

Y

2

= |{i 2 {1, . . . , dn

34

e} | R[i] m }|

Estas son variables aleatorias dado que R es construido escogiendo elementos de L con distribuci´on uniforme (y de manera independiente)

IIC2283 Algoritmos aleatorizados 117 / 150

(13)

La probabilidad de no retornar resultado

Sea L[1 . . . n] una lista de n´ umeros enteros tal que n 2001, n es impar y la mediana de L es m

Defina las siguientes variables aleatorias:

Y

1

= |{i 2 {1, . . . , dn

34

e} | R[i]  m}|

Y

2

= |{i 2 {1, . . . , dn

34

e} | R[i] m }|

Estas son variables aleatorias dado que R es construido escogiendo

elementos de L con distribuci´on uniforme (y de manera independiente)

(14)

La probabilidad de no retornar resultado

Lema

CalcularMediana(L) retorna sin resultado si y s´olo si alguna de las siguientes condiciones se cumple:

1. Y

1

< b

12

· n

34

n

12

c

2. Y

2

 dn

34

e d

12

· n

34

+ n

12

e 3. Length(S) > 4 · bn

34

c

Ejercicio

Demuestre el lema.

IIC2283 Algoritmos aleatorizados 118 / 150

(15)

La probabilidad de no retornar resultado

Lema

CalcularMediana(L) retorna sin resultado si y s´olo si alguna de las siguientes condiciones se cumple:

1. Y

1

< b

12

· n

34

n

12

c

2. Y

2

 dn

34

e d

12

· n

34

+ n

12

e 3. Length(S) > 4 · bn

34

c

Ejercicio

Demuestre el lema.

(16)

La probabilidad de no retornar resultado

Tenemos entonces que la probabilidad de que CalcularMediana(L) retorne sin resultado es igual a:

Pr(Y1 < b1

2 · n34 n12 c _

Y2  dn34e d1

2 · n34 + n12 e _ Length(S) > 4 · bn34c)

Necesitamos entonces acotar superiormente Pr(Y1 < b12 · n34 n12 c), Pr(Y2  dn34 e d12 · n34 + n12 e) y Pr(Length(S) > 4 · bn34 c)

I Vamos a ver dos desigualdades muy ´utiles para acotar probabilidades

IIC2283 Algoritmos aleatorizados 119 / 150

(17)

La probabilidad de no retornar resultado

Tenemos entonces que la probabilidad de que CalcularMediana(L) retorne sin resultado es igual a:

Pr(Y1 < b1

2 · n34 n12 c _

Y2  dn34e d1

2 · n34 + n12 e _ Length(S) > 4 · bn34c)

Necesitamos entonces acotar superiormente Pr(Y1 < b12 · n34 n12 c), Pr(Y2  dn34 e d12 · n34 + n12 e) y Pr(Length(S) > 4 · bn34 c)

I Vamos a ver dos desigualdades muy ´utiles para acotar probabilidades

(18)

La probabilidad de no retornar resultado

Tenemos entonces que la probabilidad de que CalcularMediana(L) retorne sin resultado es igual a:

Pr(Y1 < b1

2 · n34 n12 c _

Y2  dn34e d1

2 · n34 + n12 e _ Length(S) > 4 · bn34c)

Necesitamos entonces acotar superiormente Pr(Y1 < b12 · n34 n12 c), Pr(Y2  dn34 e d12 · n34 + n12 e) y Pr(Length(S) > 4 · bn34 c)

I Vamos a ver dos desigualdades muy ´utiles para acotar probabilidades

IIC2283 Algoritmos aleatorizados 119 / 150

(19)

La desigualdad de Markov

Teorema

Sea X una variable aleatoria no negativa. Para cada a 2 R

+

se tiene que:

Pr(X a)  E(X )

a

(20)

Una demostraci´on de la desigualdad de Markov

Tenemos que:

E(X ) = X

r2R+0

r · Pr(X = r)

=

✓ X

r2R+0 : r <a

r · Pr(X = r)

◆ +

✓ X

s2R+0 : s a

s · Pr(X = s)

X

s2R+0 : s a

s · Pr(X = s) X

s2R+0 : s a

a · Pr(X = s)

= a ·

✓ X

s2R+0 : s a

Pr(X = s)

= a · Pr(X a)

Concluimos que Pr(X a)  E(X )a

IIC2283 Algoritmos aleatorizados 121 / 150

(21)

Una demostraci´on de la desigualdad de Markov

Tenemos que:

E(X ) = X

r2R+0

r · Pr(X = r)

=

✓ X

r2R+0 : r <a

r · Pr(X = r)

◆ +

✓ X

s2R+0 : s a

s · Pr(X = s)

X

s2R+0 : s a

s · Pr(X = s) X

s2R+0 : s a

a · Pr(X = s)

= a ·

✓ X

s2R+0 : s a

Pr(X = s)

= a · Pr(X a)

(22)

La desigualdad de Chebyshev

Teorema

Pr( |X E(X ) | a)  Var(X ) a

2

Demostraci´ on. Utilizando la desigualdad de Markov obtenemos: Pr( |X E(X ) | a) = Pr((X E(X ))

2

a

2

)

 E((X E(X ))

2

) a

2

= Var(X ) a

2

IIC2283 Algoritmos aleatorizados 122 / 150

(23)

La desigualdad de Chebyshev

Teorema

Pr( |X E(X ) | a)  Var(X ) a

2

Demostraci´ on. Utilizando la desigualdad de Markov obtenemos:

Pr( |X E(X ) | a) = Pr((X E(X ))

2

a

2

)

 E((X E(X ))

2

) a

2

= Var(X )

a

2

(24)

Utilizando la desigualdad de Chebyshev

Lema

Pr(Y1 < b1

2 · n34 n12 c)  n 14

Demostraci´on: para cada i 2 {1, . . . , dn34 e}, definimos una variable aleatoria Xi de la siguiente forma:

Xi =

(1 R[i]  m 0 R[i] > m

Tenemos que:

Y1 =

dnX34 e i=1

Xi

IIC2283 Algoritmos aleatorizados 123 / 150

(25)

Utilizando la desigualdad de Chebyshev

Lema

Pr(Y1 < b1

2 · n34 n12 c)  n 14

Demostraci´on: para cada i 2 {1, . . . , dn34 e}, definimos una variable aleatoria Xi de la siguiente forma:

Xi =

(1 R[i]  m 0 R[i] > m

Tenemos que:

Y1 =

dnX34 e i=1

Xi

(26)

Utilizando la desigualdad de Chebyshev

Lema

Pr(Y1 < b1

2 · n34 n12 c)  n 14

Demostraci´on: para cada i 2 {1, . . . , dn34 e}, definimos una variable aleatoria Xi de la siguiente forma:

Xi =

(1 R[i]  m 0 R[i] > m

Tenemos que:

Y1 =

dnX34 e i=1

Xi

IIC2283 Algoritmos aleatorizados 123 / 150

(27)

Utilizando la desigualdad de Chebyshev

Dado que la lista L no contiene elementos repetidos tenemos que:

Pr(Xi = 1) = dn2e

n =

n 1

2 + 1

n = 1

2 + 1 2 · n

De esto se deduce que:

E(Xi) = 1

2 + 1 2 · n Var(Xi) =

✓1

2 + 1 2 · n

·

1 1

2

1 2 · n

=

✓1

2 + 1 2 · n

·

✓1 2

1 2 · n

= 1

4

1 4 · n2

(28)

Utilizando la desigualdad de Chebyshev

Dado que la lista L no contiene elementos repetidos tenemos que:

Pr(Xi = 1) = dn2e

n =

n 1

2 + 1

n = 1

2 + 1 2 · n

De esto se deduce que:

E(Xi) = 1

2 + 1 2 · n Var(Xi) =

✓1

2 + 1 2 · n

·

1 1

2

1 2 · n

=

✓1

2 + 1 2 · n

·

✓1 2

1 2 · n

= 1

4

1 4 · n2

IIC2283 Algoritmos aleatorizados 124 / 150

(29)

Utilizando la desigualdad de Chebyshev

Por lo tanto tenemos que:

E(Y1) = E(

dnX34 e i=1

Xi)

=

dnX34e i=1

E(Xi)

=

dnX34e i=1

✓1

2 + 1 2 · n

= dn34e ·

✓1

2 + 1 2 · n

(30)

Utilizando la desigualdad de Chebyshev

Para i, j 2 {1, . . . , dn34 e} tal que i 6= j se tiene que Xi es independiente de Xj

Concluimos entonces que:

Var(Y1) = Var(

dnX34 e i=1

Xi)

=

dnX34 e i=1

Var(Xi)

=

dnX34 e i=1

✓1 4

1 4 · n2

= dn34 e ·

✓1 4

1 4 · n2

 1

4 · dn34 e

IIC2283 Algoritmos aleatorizados 126 / 150

(31)

Utilizando la desigualdad de Chebyshev

Para i, j 2 {1, . . . , dn34 e} tal que i 6= j se tiene que Xi es independiente de Xj

Concluimos entonces que:

Var(Y1) = Var(

dnX34 e i=1

Xi)

=

dnX34 e i=1

Var(Xi)

=

dnX34 e i=1

✓1 4

1 4 · n2

= dn34 e ·

✓1 4

1 4 · n2

1

(32)

Utilizando la desigualdad de Chebyshev

Tenemos que:

Pr(Y1 < b1

2 · n34 n12c)  Pr(Y1 < 1

2 · n34 n12 )

 Pr(Y1 < 1

2 · dn34 e n12 )

 Pr(Y1 < dn34e · (1

2 + 1

2 · n) n12 )

= Pr(Y1 < E(Y1) n12 )

= Pr(n12 < E(Y1) Y1)

 Pr(|Y1 E(Y1)| > n12 )

 Pr(|Y1 E(Y1)| n12 )

IIC2283 Algoritmos aleatorizados 127 / 150

(33)

Utilizando la desigualdad de Chebyshev

Por lo tanto, utilizando la desigualdad de Chebyshev concluimos que:

Pr(Y1 < b1

2 · n34 n12c)  Pr(|Y1 E(Y1)| n12 )

 Var(Y1) n

 1

4 · dn34 e n

 1

4 · n34 + 1 n

 1

4 · 2 · n34 n

= 1

2 · n 14

 n 14

(34)

Utilizando nuevamente la desigualdad de Chebyshev

Lema

Pr(Y2  dn34 e d1

2 · n34 + n12e)  n 14

Demostraci´on. En este caso tenemos que: Pr(Y2  dn34 e d1

2 · n34 + n12 e)  Pr(Y2  n34 + 1 1

2 · n34 n12 )

= Pr(Y2  1

2 · n34 n12 + 1)

IIC2283 Algoritmos aleatorizados 129 / 150

(35)

Utilizando nuevamente la desigualdad de Chebyshev

Lema

Pr(Y2  dn34 e d1

2 · n34 + n12e)  n 14

Demostraci´on. En este caso tenemos que:

Pr(Y2  dn34 e d1

2 · n34 + n12 e)  Pr(Y2  n34 + 1 1

2 · n34 n12 )

= Pr(Y2  1

2 · n34 n12 + 1)

(36)

Utilizando nuevamente la desigualdad de Chebyshev

Al igual que en el caso anterior, para cada i 2 {1, . . . , dn34 e}, definimos una variable aleatoria Zi de la siguiente forma:

Zi =

(1 R[i] m 0 R[i] < m

Tenemos que:

Y2 =

dnX34 e i=1

Zi

IIC2283 Algoritmos aleatorizados 130 / 150

(37)

Utilizando nuevamente la desigualdad de Chebyshev

Al igual que en el caso anterior, para cada i 2 {1, . . . , dn34 e}, definimos una variable aleatoria Zi de la siguiente forma:

Zi =

(1 R[i] m 0 R[i] < m

Tenemos que:

Y2 =

dnX34 e i=1

Zi

(38)

Utilizando nuevamente la desigualdad de Chebyshev

Como L no contiene elementos repetidos nuevamente obtenemos:

Pr(Zi = 1) = dn2e

n = 1

2 + 1 2 · n

Por lo que como en el caso anterior concluimos que: E(Zi) = 1

2 + 1 2 · n Var(Zi) = 1

4

1 4 · n2

IIC2283 Algoritmos aleatorizados 131 / 150

(39)

Utilizando nuevamente la desigualdad de Chebyshev

Como L no contiene elementos repetidos nuevamente obtenemos:

Pr(Zi = 1) = dn2e

n = 1

2 + 1 2 · n

Por lo que como en el caso anterior concluimos que:

E(Zi) = 1

2 + 1 2 · n Var(Zi) = 1

4

1 4 · n2

(40)

Utilizando nuevamente la desigualdad de Chebyshev

Por lo tanto deducimos que:

E(Y2) = dn34 e ·

✓1

2 + 1 2 · n

Var(Y2) = dn34 e ·

✓1 4

1 4 · n2

 1

4 · dn34 e

IIC2283 Algoritmos aleatorizados 132 / 150

(41)

Utilizando nuevamente la desigualdad de Chebyshev

Finalmente tenemos que:

Pr(Y2  dn34 e d1

2 · n34 + n12 e)  Pr(Y2  1

2 · n34 n12 + 1)

 Pr(Y2  1

2 · dn34e n12 + 1)

 Pr(Y2  dn34 e · (1

2 + 1

2 · n) n12 + 1)

= Pr(Y2  E(Y2) n12 + 1)

= Pr(n12 1  E(Y2) Y2)

 Pr(n12 (1 1

p2) · n12  E(Y2) Y2)

= Pr(

rn

2  E(Y2) Y2) rn

(42)

Utilizando nuevamente la desigualdad de Chebyshev

Por lo tanto, utilizando la desigualdad de Chebyshev concluimos que:

Pr(Y2  dn34 e d1

2 · n34 + n12e)  Pr(|Y2 E(Y2)|

rn 2)

 Var(Y2)

n 2

 1

4 · dn34 e

n 2

 1

4 · 2 · n34

n 2

= n 14

IIC2283 Algoritmos aleatorizados 134 / 150

Referencias

Documento similar

En el presente estudio se puede demostrar que el heliox, en función de sus propiedades físico-químicas (baja densidad y elevada viscosidad), al ser utilizado como vehículo de

Al demostrar la influencia del tiempo de espera en el resultado de la cirugía de hernia discal lumbar, esta información podrá ser extrapolada al tiempo desde inicio de síntomas hasta

El Miembro debe esperar a que se imponga la medida definitiva (a no ser que pueda demostrar que la medida provisional tiene una repercusión significativa), celebrar consultas sobre

En caso que quede un remanente de producto en el envase, que no pueda ser utilizado, debe ser almacenado en su envase original cerrado para su posterior uso o para ser destruido

El valor de probabilidad del estadístico de prueba observado (valor-p) debe ser utilizado de manera flexible, como una ayuda a la evaluación de la hipótesis estadística:

El principal resultado científico, lo constituye contar con este sistema para determinar el aprovechamiento de la Jornada Laboral, y que pueda ser utilizado en los proyectos

El resultado es intuitivo: ante mayor riesgo, asociado a mayor probabilidad de eventos anormales, la diferencia entre los activos riesgosos y los bonos del tesoro debe ser

 Este medicamento a base de hipérico no debe ser utilizado simultáneamente con aquellos medicamentos con los que pueda haber una interacción (ver 4.e Interacciones con otros