¿Cuál es la forma más eficiente de recoger pelotas de tenis en una cancha?

Depende de los supuestos del problema y de lo que significa “más eficiente”, pero generalmente desea ver las variantes de TSP (http://en.wikipedia.org/wiki/Tra…).

En la versión del problema con la menor cantidad de dimensiones, digamos que tiene un robot similar a un Roomba que solo puede conducir en el suelo alrededor de obstáculos, recogiendo bolas individuales a medida que avanza, y no hay un costo insignificante asociado con recoger bolas , cambiar de dirección, etc. Digamos que el robot comienza en el lugar donde está practicando saques y desea que el robot le responda con todas las bolas lo más rápido posible. Entonces, el problema es el TSP euclidiano de vainilla en un dígrafo ponderado y está buscando algoritmos para ese problema (exacto si el problema es lo suficientemente pequeño, o observe los algoritmos de aproximación / heurísticos disponibles).

Sin embargo, podrías imaginar agregar dimensiones al problema. Por ejemplo, una persona que se inclina hacia arriba puede preocuparse por cuántas veces tiene que inclinarse además de cuánto tiene que caminar, ya que inclinarse es físicamente más exigente (por unidad de tiempo) que caminar. Podría incorporar esto al problema mediante restricciones y / o la función objetivo que está tratando de minimizar, y el algoritmo en sí mismo que navega por el espacio de la solución consideraría que los vértices de TSP no son las bolas, sino que son discretos punto en la cancha donde se pueden alcanzar las bolas En el espacio de la solución, habría algún incentivo para elegir vértices estratégicamente en los que puede recoger varias bolas, y ese incentivo se compararía con los otros costos, como el tiempo que podría aumentar simultáneamente.

El tratamiento de la red es un factor importante ya que si usted o su robot pueden pasar por encima o al menos alcanzarlo (y cómo cuantifican el costo de realizar esas acciones) pueden afectar drásticamente la búsqueda de soluciones.

Otra versión que podría imaginar es proporcionar algún incentivo para elegir soluciones parciales que devuelven suficientes bolas a un “costo por bola” que es mucho más bajo que el de las soluciones completas. La mejora marginal en un resultado a un alto costo podría no valer la pena. Por ejemplo, estás practicando cientos de saques y alcanzas el 95% en la red y el 5% en la red en una esquina lejana. Es posible que prefiera simplemente recoger las bolas agrupadas en la red y volver a servir en lugar de ir (o enviar su robot) en un paseo para obtener todas las bolas.

Hasta este punto, las bolas han permanecido estáticas, pero puede imaginar que su agente tenga la capacidad de “patear” las bolas a algún destino sujeto a alguna función de precisión. Si esa patada tiene un costo menor que recoger pelotas, habrá incentivos para hacerlo. Por ejemplo, si tiene un grupo de bolas en la esquina de la cancha y una bola en su camino hacia esa esquina, podría considerar patear esa bola hacia el grupo de la esquina y, con suerte, solo doblarse una vez. Si tiene una tolva o puede levantar pelotas con su raqueta / pie sin doblarse, entonces no sería un gran beneficio patear esa pelota.

Me gusta el rigor matemático de la primera respuesta y la simplicidad de la segunda respuesta. Aquí está mi punto de vista: si en realidad estás jugando tenis en una cancha y necesitas resolver esto, entonces es más probable que tengas una raqueta que un robot o una tolva. Es posible que tenga 1 tolva de bolas, pero es raro tener más de 1 en la vida real, por lo que la respuesta realista se parece a estos 2 pasos:

1. * Mientras juegas *, asegúrate de que las bolas sean pateadas o (movidas con la raqueta) al área conveniente más cercana que no te impida a ti ni a otros jugadores. Puede elegir un extremo de la red, o una cerca o muro cercano. Sí, esto significa que está haciendo un poco de trabajo entre sus puntos / concentraciones para minimizar el esfuerzo en el paso final de recogida.

2. Ahora debe tener una pila o un grupo definido de bolas en el momento de la recogida. Entonces el problema se reduce a usar la raqueta y apilar las bolas capa por capa. Puede recoger 20-30 bolas de esta manera (errar en el lado de la estabilidad en su apilamiento) y llevar las bolas a cualquier contenedor más grande en el que solían estar.

¿Estás hablando de 50 o 100 bolas después de una clase de enseñanza o estás hablando de una a la vez durante un juego?

La lección de enseñanza de una tolva de bolas está bien, no tiene que inclinarse demasiadas veces, pero lo mejor que he visto es una máquina de barrido de bolas que tiene un frente de captura ancho que barre las bolas en una bandeja baja. Una vez que hayas barrido un área grande y los hayas metido en la bandeja, recoge la bandeja y viértela en la canasta con la que enseñas.

Porque durante un juego uso la raqueta y el elevador de pies, pero la mayoría de las personas con las que juego rebotan la raqueta en la pelota para que se levante.

More Interesting

Dado un gráfico ponderado de N nodos, ¿existe un algoritmo que calcule la ruta más corta entre todos los nodos?

¿Qué tipo de estrategias y algoritmos tenemos en el comercio cuantitativo?

Ya tengo 30 años, pero mis habilidades de programación y algoritmo no son lo suficientemente buenas. ¿Qué tengo que hacer?

¿Cuál es el mejor algoritmo para encontrar una ruta más corta a través de todos los puntos de control dados?

¿Qué es mejor si necesito elegir un camino para mi carrera, algoritmos y estructuras de datos, o tecnologías de big data, en las que estoy trabajando actualmente?

Cómo resolver esta relación de recurrencia usando el método de sustitución

¿Es posible predecir los códigos de verificación para sitios como Facebook y Gmail usando Machine Learning?

Cómo resolver este problema en la búsqueda binaria

¿Es posible tener análisis predictivos utilizando motores de recomendación? En caso afirmativo, ¿cuáles son algunos de los algoritmos de análisis predictivo utilizados por los motores de recomendación?

Cómo mejorar las habilidades de algoritmo en Java

¿Por qué el ensacado funciona tan bien para los árboles de decisión, pero no para los clasificadores lineales?

¿Qué es un algoritmo eficiente para encontrar un número mágico?

¿Cómo mejoro mis habilidades informáticas? ¿Alguien puede recomendarme formas de acortar la curva de aprendizaje?

¿Qué puedes hacer con los algoritmos?

¿Qué tiene de malo el siguiente código C ++ para PRIME1 en SPOJ?