Permutaciones y Combinaciones

Dado un conjunto de elementos, una permutación de estos corresponde a la organización de sus elementos donde el orden SI importa, además en estas no existen repeteticiones. Un ejemplo de esto son las disntintas formas de escribir los numero 1, 2 y 3 sin repetir un número. El listado de permutaciones para este ejemplo corresponde a: 123 - 132 - 213 - 231 - 312 - 321.

Además, las formulas asociadas al calculo de las permutaciones se dividen en tres casos:

  1. El número de permutaciones de “n” elementos diferentes \[ n! = n \times (n-1) \times (n-2) \times ... \times2\times 1 \]

  2. El número de permutaciones de un subconjunto “r” de “n” \[ P_r^n = n \times (n-1) \times (n-2) \times ... \times (n - r + 1) = \frac{n!}{(n-r)!} \]

  3. El número de permutaciones de n = \(n_1\) + \(n_2\) + … + \(n_r\) elementos sede diferentes es \[\frac{n!}{n_1!n_2!...n_r!}\]

Por otro lado, las combinaciones corresponden a todas las agrupaciones posibles dado un grupo de elementos tomados de , donde (m \(\geq\) n). Ahora, el número de combinaciones para un subconjunto de “r” elementos que pueden ser seleccionados entre “n” elementos es denotado como:

\[ C_r^n = \binom{n}{r} = \frac{n!}{r!(n - r)!}\] Finalmente la principal diferencia entre permutaciones y combinaciones corresponde al orden de los elementos, puesto que en la primera si miporta el orden, mientras que en la segunda no.

Las funciones \(\textit{combinations}\) y \(\textit{permutations}\)

library(gtools)

#Funcionamiento: - Combinations: enumera las posibles combinaciones de un largo especificado dado un vector de elementos.

Ambas poseen las misma estructura y reciben los mismos parametros. n: Tamaño del vector r: Tamaño de los subconjuntos v: Vector de elementos, de manera estandar genera un vector de 1 hasta n. set: Bandera logica que indica si los elementos duplicados deben ser borrados del vector v. Default = TRUE. repeats.allowed: Bander logica que indica si los vecotres generados pueden incluir valores duplicados. Default = FALSE.

El retorno de ambas funciones es un matríz donde cada fila corresponde a un vector de largo r.

EJEMPLOS:

  1. Calcular la cantidad de permutaciones posibles con n = 11 y r = 3 con y sin repetición.
  1. con repetición
nrow(permutations(11,3,1:11,repeats.allowed = TRUE))
## [1] 1331
  1. sin repetición
nrow(permutations(11,3,1:11,repeats.allowed = FALSE))
## [1] 990
  1. Calcular las combinaciones de largo tres con las letras a, b, c, d y e con y sin repetición.
  1. Con repetición
nrow(combinations(5,3,letters[1:6], repeats.allowed = TRUE))
## [1] 35
  1. Sin repetición
nrow(combinations(5,3,letters[1:6], repeats.allowed = FALSE))
## [1] 10
  1. Calcular la cantidad de combinaciones y permutaciones con n = 39 y r = 25 sin repetición.

Dado el tamaño de los vectores, se ha utilizado la pagina https://www.estadisticaparatodos.es/software/misjavascript/javascript_combinatorio2.html#5 para el calculo de las combinaciones y permutaciones.

  1. Combinaciones

    nrow(combinations(39,25,1:39,repeats.allowed = FALSE)) = 15.084.504.396

  2. Permutaciones

    nrow(permutations(39,25,1:39,repeats.allowed = FALSE)) = 2,339789161x10^36

Problema del vendedor viajero

Dada la naturaleza del problema, donde no se pueden repetir ciudades, en primer lugar se deben calcular la cantidad de rutas posibles, las cuales, para n = 50, vienen dadas por:

\[ P_{50}^{50} = \frac{50!}{(50 - 50)!} = 50! = 3,04\times10^{64} \] Con el resultado anterior podemos responder las siguientes preguntas:

  1. Si se selecciona una ruta al azar ¿Cuál es la probabilidad de que sea la ruta ótima?

R: Puesto que tenemos una distribución uniforme, cada resultado tendrá la misma probabilidad de ocurrir, y considerando a “n” como el total de casos posibles, tenemos que:

\[P(A) = \frac{1}{n} = \frac{1}{3.04\times10^{64}} = 3.29\times10^{-65}\] b) Si se selecciona una ruta al azar que es distinta a la anterior ¿cuál es la probabilidad de que sea la ruta óptima?

R: Para este caso solo hace falta restar la ruta previamente seleccionada del total de rutas posibles y realizar el mismo cálculo.

\[P(A) = \frac{1}{n} = \frac{1}{3.04\times10^{64} - 1} = 3.04\times10^{-64}\] De la misma forma que en el ejemplo 3, no es posible calcular combinaciones o permutaciones para números muy grandes. Al utilizar valores n! y r! el número de posibilidades incrementa excesivamente.

Problema de la bencinera

Para poder resolver las preguntas planteadas más adelante se ha desarrollado una tabla de probabilidades.

empleados = c("Janet", "Tomás", "Georgina", "Pedro", "Marcela")
atiende = c("0,2", "0,1", "0,6", "0,05", "0,1")
noLimpia = c("0,05", "0,1", "0,1","0,05","0,6")
limpia = c("0,95", "0,9", "0,9", "0,95", "0,4")

tabla = data.frame(Nombres = empleados, ProbAtender = atiende, VecesNoLimpia = noLimpia, VecesLimpia = limpia)
head(tabla)
##    Nombres ProbAtender VecesNoLimpia VecesLimpia
## 1    Janet         0,2          0,05        0,95
## 2    Tomás         0,1           0,1         0,9
## 3 Georgina         0,6           0,1         0,9
## 4    Pedro        0,05          0,05        0,95
## 5  Marcela         0,1           0,6         0,4
  1. Exprese la ecuación con la que se puede resolver el problema.

La ecuación que permite resolver el problema corresponde a la expuesta en el Teorema de Bayes. \[ P(B|A) = \frac{P(A|B)P(B)}{P(A)} = \frac{P(A|B)P(B)}{P(A|B)P(B) + P(A|\bar{B})P(\bar{B})} \] b) ¿Cuál es la probabilidad de que haya sido atendido por Pedro?

Utilizando la formula anterior y la tabla de probabilidades tenemos que:

\[ P(P|NL) = \frac{P(L|P)P(P)}{P(L)} = \frac{0,05\cdot0,05}{(0,1\cdot0,95)+(0,15\cdot0,9)+(0,6\cdot0,9)+(0,05\cdot0,95)+(0,1\cdot0,4)} = 0,5539358601\] c) ¿Cuál es la probabilidad de que haya sido atendido por Janet o Georgina?

Aplicando propiedades de las fracciones y aplicando las reglas de adición en probabilidades, obtenemos lo siguiente:

\[ P(J|L) + P(G|L)= \frac{P(L|J)P(J)}{P(L)} + \frac{P(L|G)P(G)}{P(L)} = \frac{P(L|J)P(J)+P(L|G)P(G)}{P(L)} \] Por lo tanto, solo hace falta modificar el resultado anterior en el numerador:

\[ P(J|L) + P(G|L) = \frac{P(L|J)P(J)}{P(L)} + \frac{P(L|G)P(G)}{P(L)} = \frac{(0,1\cdot0,95)+(0,15\cdot0,9)}{(0,1\cdot0,95)+(0,15\cdot0,9)+(0,6\cdot0,9)+(0,05\cdot0,95)+(0,1\cdot0,4)} \] \[ P(J|L) + P(G|L) = 0,2682216 \] d) Calcule la probabilidad de que haya sido atendido por Janet, Georgina, Tomás, Pedro o Marcela. ¿Qué se puede observar?

Aplicando la lógica anterior:

\[ P(J\lor{}G\lor{}T\lor{}P\lor{}M|L) = \frac{(0,1\cdot0,95)+(0,15\cdot0,9)+(0,6\cdot0,9)+(0,05\cdot0,95)+(0,1\cdot0,4)}{(0,1\cdot0,95)+(0,15\cdot0,9)+(0,6\cdot0,9)+(0,05\cdot0,95)+(0,1\cdot0,4)} = 1\] Del resultado obtenido se puede observar que este equivale a 1, lo que significa que el cliente fue antendido el 100% de la veces por alguno de los mencionados, sin embargo no se puede especificar quien fue.

Apruebo o Rechazo

Para el siguiente problema se nos presenta una distribuición hipergeométrica, puesto que se nos prensentan los siguientes datos.

La fórmula para resolver ejercicios de distribucion hipergeométricas es la siguiente:

\[ f(x) = \frac{\binom{K}{x}\binom{N - K}{n - x}}{\binom{N}{n}} \] Por lo tanto, reemplazando en la fórmula:

\[ f(3) = \frac{\binom{18}{3}\binom{40 - 18}{3 - 3}}{\binom{40}{3}} = 0,08259 \]