Entonces, mi pregunta inicial está más relacionada con la codificación, pero decidí preguntar aquí porque siento que debe haber algún algoritmo establecido para hacer esto. Esta pregunta está simplificada en gran medida solo para ser clara.
Supongamos que tengo un conjunto de coordenadas 3D (X, Y, Z) donde Z es una indicación de altura. Es posible ajustar todas las coordenadas en una tabla 2D de 100X100 (así que digamos 10,000 coordenadas) donde cada posición en la tabla corresponde a sus valores X, Y:
(1,1,67) (1,2,17) (1,3,52)...
(2,1,14) (2,2,91) (2,3,109)...
.
.
.
Ahora supongamos que empiezo en una coordenada aleatoria, y deseo encontrar una ruta con n
pasos, de manera que la suma de todos sus valores de Z sea la máxima posible dada esa n. Un paso se podría dar a lo largo de uno de 4 vectores (arriba/abajo/izquierda/derecha) así que 4 opciones son posibles en cada paso. El destino final no importa, solo la ruta de coordenadas seleccionadas para la ruta - así que está bien terminar en cualquier coordenada (sin repetición - así que ninguna coordenada podría ser seleccionada dos veces).
¿Existe un algoritmo que pueda tomar una matriz/conjunto de coordenadas y podría devolver n coordenadas que me lleven por el camino más elevado (sin fuerza bruta, por supuesto, porque sería simplemente imposible incluso para un n relativamente pequeño)?
Lo pienso en general como una ruta para navegar un superficie 3D no continua (hecha de pasos con altura Z
), utilizando los pasos más elevados, de manera que haya un mínimo recorrido en el vector Z.
Espero que mi pregunta haya sido clara, saludos.