I am looking for the best algorithm for optimizing solutions made in synchronous mode to find fast results in a reasonable amount of time. With the simultaneous execution of a number of "ticks" and sometimes it is necessary to make a decision. In the end, the state of the goal is achieved. (It would be possible to never reach the goal state if you make very bad decisions)
There are many states of purpose. I want to find the state of the target with the least number of ticks (a tick in real life is approximately equal to a second). I basically want to decide what decisions need to be made to reach the goal in as few seconds as possible,
Some points in the area of problems:
- From the very beginning, I can create a series of choices that will lead to a solution. This will not be optimal.
- I have a reasonable heuristic function to determine what would be a good solution.
- I have a reasonable function to determine the minimum possible time value from node to target.
Algorithms:
- I need to handle this problem for about 10 seconds, and then give the best answer I can.
- I believe that A * will find me the best way to go. The problem is that the decision tree will be so large that I cannot calculate it fast enough.
- IDA * will give me a good first few options in 10 seconds, but I need a path to the goal.
At the moment, I think that I will start with the well-known not optimal path to the goal, and then, possibly, use Simulated Aealing and try to improve it in 10 seconds.
What would be a good research algorithm to try to solve this problem?