5 votos

¿Capturar a un preso fugado? (Algo que he pensado en mi coche)

Estaba en mi coche escuchando la radio cuando oí una historia sobre los fugados de la prisión de Nueva York, y me hizo pensar:

En una hipotética gran superficie fija de terreno, presentemos a un preso p y a un policía, c. Suponiendo que ambos se mueven aleatoriamente, ¿se atraparía al preso, por término medio, más rápidamente si permaneciera inactivo en un punto, o siguiera moviéndose?

He hecho un curso de modelización matemática de la epidemiología, y supondría que el preso sería atrapado más rápido si tanto el policía como el preso se movieran en base a lo siguiente:

En la modelización matemática, los índices de contacto se simplifican mediante una versión simplificada del principio de "acción de masas" de la química, que establece que un índice de contacto puede definirse por los productos de dos concentraciones. Si asumimos que el movimiento es una "concentración", implicaría que si un preso fugado y un policía se movieran, el orden global de la tasa de reacción sería de segundo orden, en contraposición a un sistema de primer orden en el que sólo se moviera el policía.

Por curiosidad, ¿existe un enfoque probabilístico que refuerce este argumento o que incluso dé una respuesta completamente diferente? ¿Dependería de sus tasas relativas?

0 votos

El reto de responder a esta pregunta radica en adoptar un modelo razonable de "mover al azar" dentro de un fijo, finito región. Cuando un actor se acerca al límite, el movimiento no puede ser independiente de la dirección, pero ¿cómo cambia exactamente? (Para una región prácticamente infinita, el problema se simplifica: basta con analizar la diferencias en los movimientos entre los dos actores. Eso sería un paseo aleatorio 2D y la "captura" es el evento que alcanza una pequeña vecindad del origen). Aún más realista, ¿por qué suponer que cualquiera de los dos se mueve al azar? Quizá tengan mejores estrategias.

0 votos

Creo que el movimiento aleatorio es una suposición aceptable si también asumimos que ninguna de las partes tiene información sobre la posición de la otra, lo que significaría que cualquier estrategia es (más o menos) sólo un movimiento aleatorio.

0 votos

@whuber Esto sugiere interesantes variantes del problema donde los actores están en un toroide u otros objetos topológicos interesantes...

1voto

Graham Puntos 11

Hice una simulación de esto, asumiendo que los dos jugadores se mueven al azar dentro del área.

    ## given a single coordinate of a single player, return a new position by a valid move
moveCoord = function( playerCoord, boardSizeCoord){
    move = sample(c(-1,0,1), 1)
    newCoord = playerCoord + move
    if (newCoord < 1 || newCoord > boardSizeCoord)
        newCoord = moveCoord(playerCoord, boardSizeCoord)
    return(newCoord)
}

## given a player's location, return a new location by a valid move
movePlayer = function(playerCoord, boardSize){
    newX = moveCoord(playerCoord[1], boardSize[1])
    newY = moveCoord(playerCoord[2], boardSize[2])
    newCoord = c(newX, newY)
}

n = 10 ## board is nxn
boardSize = c(n,n) ## board size
steps = 1000000 ## how many moves to try in each run of simulation, before they fail 
copCoord <<- c(floor(n/3), floor(n/3)) ## cop is at the first third vertically and horizontally (rounding down)
prisCoord <<- c(ceiling(2*n/3), ceiling(2*n/3)) ## prisoner is at the second third vertically and horizontally (rounding up)

## how many steps until both players intersect?
simulate = function(prisMove = FALSE){
    for( i in 1:steps){
        copCoordMat[i,] = copCoord
        if(identical(copCoord,  prisCoord)){
           ## print(paste("Caught at ", i))
            return(i)
            break
        }
        else {
            copCoord = movePlayer(copCoord, boardSize)
            if(prisMove == TRUE)
                prisCoord = movePlayer(prisCoord, boardSize)
            ##print(copCoord)
          }
    }
}

reps = 1000
noMoveVec = replicate(reps, simulate(prisMove = FALSE))
yesMoveVec = replicate(reps, simulate(prisMove = TRUE))
summary(noMoveVec)
summary(yesMoveVec)

Aquí están los resultados. En noMoveVec, sólo se mueve el policía; en yesMoveVec, se mueven ambos jugadores:

   > summary(noMoveVec)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    7.0    71.0   131.0   176.6   231.0  1056.0 
> summary(yesMoveVec)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    5.0    56.0   115.0   160.0   216.2  1123.0 

En 1000 ejecuciones de las simulaciones en una cuadrícula de 10x10, el prisionero en movimiento fue atrapado un poco más rápido en promedio. No estaba seguro de qué parte del efecto se debía a las posiciones iniciales. Así que lo probé de nuevo teniendo al policía en la esquina inferior izquierda y al prisionero en la esquina superior derecha. El efecto es mucho mayor en este caso.

summary(noMoveVec)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   25.0   195.8   410.5   561.2   758.2  3150.0 
> summary(yesMoveVec)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   15.0    70.0   126.5   173.2   233.2  1057.0

0 votos

Bravo, muchas gracias por esto, su tiempo fue muy apreciado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X