Usted y un amigo se perdieron en la línea en un concierto, y ninguno de los dos está seguro de cuál de ustedes está más adelante. Formalmente, cada uno está en alguna coordenada entera y solo puede caminar hacia una coordenada más alta o permanecer en su lugar.
Suponiendo que usted y su amigo estén siguiendo exactamente el mismo algoritmo (y no, no pueden decir "if (name ==" R B ") hacen algo :)), y la distancia inicial entre ustedes dos fue (que no es conocido por ti).
¿Cuál es el algoritmo que minimiza la distancia de caminata esperada hasta que usted y su amigo se encuentren?
Puede suponer que tanto su amigo como usted se mueven a la misma velocidad constante.
Un ejemplo de algoritmo simple sería algo como:
En la etapa (a partir de ):
- Camina pasos hacia la derecha wp o espereunidades de tiempo de lo contrario.
Para ver este algoritmo hace que los amigos se encuentren con probabilidad 1 considere lo que sucede en la etapa . Incluso si el amigo que estaba paso adelante siempre caminaba y el otro siempre permanecía en su lugar, la distancia entre los dos sería:
Por lo tanto, en la iteración , el amigo que elige caminar cubrirá la distancia de 3 log 3 x + 1 = 3 x , por lo tanto, con probabilidad 1 , el amigo que está detrás se pondrá al día y se encontrarán.
Una optimización simple (para reducir la distancia a pie) sería, en lugar de caminar pasos, caminar c x pasos, donde c viene dada por: 2 + 1
Por lo tanto, la óptima para este algoritmo es c = 3 + √
Desafortunadamente, aunque este algoritmo garantiza que los amigos se encontrarán con la probabilidad 1, la distancia de caminata esperada es infinita, que es algo que me gustaría evitar si es posible.
¿Hay un algoritmo más eficiente?
Respuestas:
En cada paso , ambos amigos caminarán 2 k pasos. Si k < log 2 ( x ) + 1 , no se encontrarán durante ese paso, sin embargo, si k > = log 2k 2k k<log2(x)+1 , se encontrarán si y solo si no sacan el mismo número. La probabilidad de que esto no sucede sólo es 1 / 3 en cada paso.k>=log2(x)+1 1/3
Por lo tanto, la distancia de caminata esperada es (acotada arriba por):
Lo cual es finito e igual, si se debe confiar en las matemáticas de mi servilleta, a .2⌈log2(x)⌉+3−2≤16x
Por cierto, si es la variable aleatoria que representa la distancia recorrida, todavía tenemos que ∀ D > 0 , P ( d > D ) > 0 , es decir, la distancia no tiene límites y puede llegar a ser arbitrariamente alta. Afortunadamente, esta probabilidad desaparece lo suficientemente rápido como para garantizar que la suma infinita ∑ ∞ D = 0 P ( d = D ) ⋅ D = E [ d ] converja. Tener un límite superior finito para dd ∀D>0,P(d>D)>0 ∑∞D=0P(d=D)⋅D=E[d] d es una propiedad mucho más fuerte y creo que no es posible encontrar una solución que la satisfaga.
fuente