Buenas, como va gente ? Soy nuevo en el foro y queria saber si me podian ayudar a inventar un algortimo.
El codigo en cuestion tendria que hacer lo siguiente: dado un punto P cualquiera, y un conjunto de nodos o puntos N, el algoritmo debe hallar el camino mas corto o de menor costo, tomando como punto de inicio a P, que pase por todos los puntos del conjunto N.
Estuve probando diferentes cosas, pero todavia no llegue a mucho. Lei los algoritmos de Dijkstra (camino mas corto entre dos puntos), Prim / Kruskal (arboles de expansion minima), pero ninguno es lo que necesito.
Estoy programando en C# pero cualquier ayuda me viene bien :D . Esto es lo que tengo hasta ahora:
public Point[] EncontrarCamino(List<Point> PuntosAVisitar, Point PuntoDeInicio)
{
int cantNodos = PuntosAVisitar.Count;
Point[] ret = new Point[cantNodos];
int[,] TablaCostos = new int[cantNodos, cantNodos];
for (int i = 0; i < cantNodos; i++)
{
for (int j = 0; j < cantNodos; j++)
{
if (i == j)
{
TablaCostos[i, j] = 0;
}
else
{
TablaCostos[i, j] = ObtenerCosto(i, j);
}
}
}
}
Ese cacho de codigo genera una matriz con la tabla de costos desde un punto a otro.
Desde ya muchas gracias !