1. A method comprising: receiving, by a sensor, a current observation about a real or simulated world; maintaining, by a computational unit, an objective; representing the objective using an incremental cost of a plurality of potential actions; maintaining, by the computational unit, a current uncertainty about an unknown state of the world, wherein the current uncertainly is updated using the current observation; and determining, by the computational unit, one or more optimal actions to achieve the objective with an optimized expected total future cost, wherein said determining comprises performing both backward induction on the optimized expected total future cost and forward induction on the uncertainty about the unknown state of the world.