Ver Mensaje Individual
  #17 (permalink)  
Antiguo 29/09/2015, 09:49
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: ¿Describir situaciones y el cómo se llega a ellas?

Cita:
Iniciado por Tachikomaia Ver Mensaje
Yo no entiendo lo que dice aquí:
https://es.wikipedia.org/wiki/Algori...stra#Algoritmo
Daré mi respuesta.
1- Describir la situación origen (SO).
2- Describir la situación actual (SA, por ahora es igual que SO).
3- Act=1
4- Usando la acción nro(Act), modificar SA.
5- Chequear si cumple el objetivo.
6A- Si lo cumple ver cuántas acciones se realizaron.
6AA- Si es una, decirla y fin.
6AB- Sino, decir la última, y ver cual fue la situación anterior, decir qué acción se realizó en ella, y así sucesivamente hasta que la situación en cuestión sea la origen. Fin.
6B- Sino, ver si SA está en la "base de datos" o no.
6BA- Si no está, agregarla (y cual era la situación anterior (SO) y qué (Act) se hizo en ella), y también agregarla en otra BD, que es sobre situaciones no resueltas (en este caso no se requiere saber cual era la anterior ni qué se hizo).
7- Act++
8A- Si Act<5, SA=SO e ir al punto 4.
8B- Sino, Act=1
9- SO=una de las situaciones sin resolver (uso un contador para determinar cual).

Más o menos es eso.
Emm.... Esto no tiene absolutamente nada que ver con lo que planteaste primero.

Tu pregunta fue

Cita:
Iniciado por Tachikomaia
¿Describir situaciones y el cómo se llega a ellas?
Y ahora estás preguntando por un algoritmo de PathFinding.

Googleando "PathFinding [XXX]" donde [XXX] es el lenguaje de programación que quieras usar encontrás muchas respuestas a ésto.

Por cierto, el algoritmo de Dijkstra requiere que se sepa de antemano las distancias entre cada uno de los puntos posibles. Creo que no es aplicable a tu caso.

Y si, yo empezaría por crear las estructuras de datos adecuadas, sobre todo si la intención es posteriormente persistirlas a disco.

Los pasos que planteaste no resuelven tu problema, o al menos no de la forma que lo estás planteando, porque requieren que se ingresen manualmente las acciones a realizar, en lugar de que la máquina las encuentre por sí misma.