Esempio n. 1
0
void UnderwaterVehicle::step(const FiniteAction& action, DenseState& nextState, Reward& reward)
{
    double u = config->actionList[action.getActionN()];

    //ODEINT (BOOST 1.53+)
    uwvode.action = u;
    double t0 = 0;
    double t1 = config->dt;
    integrate_adaptive( controlled_stepper , uwvode , currentState, t0 , t1 , t1/1000.0);

    nextState = currentState;

    reward[0] = abs(config->setPoint - nextState[0]) < config->mu ? 0.0 : -config->C;

}
Esempio n. 2
0
size_t integrate( System system , State &start_state , Time start_time , Time end_time , Time dt , Observer observer )
{
    return integrate_adaptive( controlled_runge_kutta< runge_kutta_dopri5< State > >() , system , start_state , start_time , end_time , dt , observer );
}
size_t integrate_adaptive(
    Stepper stepper , System system , const State &start_state ,
    Time start_time , Time end_time , Time dt )
{
    return integrate_adaptive( stepper , system , start_state , start_time , end_time , dt , null_observer() );
}
Esempio n. 4
0
typename boost::enable_if< typename has_value_type<State>::type , size_t >::type
integrate( System system , State &start_state , Time start_time , Time end_time , Time dt , Observer observer )
{
    typedef controlled_runge_kutta< runge_kutta_dopri5< State , typename State::value_type , State , Time > > stepper_type;
    return integrate_adaptive( stepper_type() , system , start_state , start_time , end_time , dt , observer );
}