44 #ifndef ILQGAMES_SOLVER_LQ_SOLVER_H 45 #define ILQGAMES_SOLVER_LQ_SOLVER_H 47 #include <ilqgames/dynamics/multi_player_integrable_system.h> 48 #include <ilqgames/utils/linear_dynamics_approximation.h> 49 #include <ilqgames/utils/quadratic_cost_approximation.h> 50 #include <ilqgames/utils/strategy.h> 52 #include <glog/logging.h> 64 virtual std::vector<Strategy> Solve(
65 const std::vector<LinearDynamicsApproximation>& linearization,
66 const std::vector<std::vector<QuadraticCostApproximation>>&
68 const VectorXf& x0, std::vector<VectorXf>* delta_xs =
nullptr,
69 std::vector<std::vector<VectorXf>>* costates =
nullptr) = 0;
72 LQSolver(
const std::shared_ptr<const MultiPlayerIntegrableSystem>& dynamics,
73 size_t num_time_steps)
74 : dynamics_(dynamics), num_time_steps_(num_time_steps) {
75 CHECK_NOTNULL(dynamics.get());
79 const std::shared_ptr<const MultiPlayerIntegrableSystem> dynamics_;
80 const size_t num_time_steps_;