In a game I am trying to optimize for, the goal of the game is to get each of your 23 "skills" to exceed a certain amount of "experience" in the shortest time possible. There are various "training methods" you can use to gain experience in possibly multiple skills at once, and each of these methods has a set amount of experience per unit-time you gain for using that training method.
For example, the goal might be to get skill A to at least 10,000 experience, and skill B to at least 5,000 experience, and there are 3 methods:
- Method 1 gives 10 experience in skill A and 5 experience in skill B per hour
- Method 2 gives 20 experience in skill A and 0 experience in skill B per hour
- Method 3 gives 0 experience in skill A and 7 experience in skill B per hour
We want to reach the experience goals while spending the minimal number of hours. So far this seems like a classic LP, where $\mathbf{A}$ contains each method's hourly rates for each skill, $c$ is the experience goal, $x$ is the number of hours spent on each method, and $b$ is just the ones-vector... and we want to minimize $b\cdot x$ subject to $\mathbf{A}x \ge c$.
However...what happens if each "training method" itself has a "feasible region" in which it can be trained? For example, say Method 1 can't be used until you have at least 2,000 experience in skill A. Can this still be formulated as something resembling a LP, or does it suddenly become a much harder problem because the order of events starts to matter? Do you know of any research on this sort of problem, where it's a dual LP except each "thing you can spend time on" has its own resource requirements?