Perdido en un concierto "one directional"


16

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 x (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:

  1. En la etapa n (a partir de 0 ):

    • Camina 3n pasos hacia la derecha wp 12 o espere3nunidades 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 (log3x+1) . Incluso si el amigo que estaba x paso adelante siempre caminaba y el otro siempre permanecía en su lugar, la distancia entre los dos sería:

x+1+3+9++3log3x=2x+x123x

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 1log3x+13log3x+1=3x , el amigo que está detrás se pondrá al día y se encontrarán.14


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 + 13xcxc

2+1c1=c

Por lo tanto, la óptima para este algoritmo es c = 3 + c c=3+522.618

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?


Cuando dice "distancia de caminata esperada", ¿quiere decir en el peor de los casos, donde el algoritmo es probabilístico, o también asume alguna distribución en las entradas? Además, ¿requiere que su algoritmo sea siempre correcto o sea correcto wp 1? (¿o menos?): tenga en cuenta que el algoritmo que presente aquí podría nunca detenerse (pero wp 0)
Shaull

Esto es similar al problema de búsqueda lineal ( en.wikipedia.org/wiki/Linear_search_problem ).
Yuval Filmus el

2
@Shaull: dado que ambos amigos siguen el mismo algoritmo, tiene que ser probabilístico o nunca se encontrarán. La expectativa es sobre la aleatorización del algoritmo.
RB

En su algoritmo, ¿quiere decir caminar unidad de tiempo hacia la derecha con velocidad constante C ? Caminar 2 n pasos puede no hablar 2 ^ n tiempo. 2nC2n
吖 奇 说 ARCHY SHUō

@ 0a-archy: suponemos que ambos se mueven a la misma velocidad (sea 1 unidad de tiempo para este asunto). La idea en el algoritmo que di es que caminas2npasos o esperas un tiempo equivalente, por lo que cada iteración comienza al mismo tiempo para ambos jugadores. steptime unit2n
RB

Respuestas:


4

En el paso , dibuja un número aleatorio q uniformemente entre 1 , 2 y 3 .kq123

  • si , camina 2 k - 1 , espera 2q=12k1 , camina 2 k - 12k+12k1
  • si , espere 2 k - 1 , camine 2 k - 1 , espere 2 k , camine 2 k - 1 , espere 2 k - 1q=22k12k12k2k12k1
  • si , espera 2 k , camina 2 k , espera 2 kq=32k2k2k

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 2k2kk<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)+11/3

Por lo tanto, la distancia de caminata esperada es (acotada arriba por):

2(k=0log2(x)2k+3log2(x)k=log2(x)+1(23)k)

Lo cual es finito e igual, si se debe confiar en las matemáticas de mi servilleta, a .2log2(x)+3216x

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 ddD>0,P(d>D)>0D=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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.