This method aims at finding open-loop solutions for stochastic optimal control problems. The considered motions are modeled by stochastic dynamical systems of the form \begin{equation} d\mathbf{x}_{t}=\mathbf{f}(\mathbf{x}_{t},\mathbf{u}(t),t)\,dt+G(\mathbf{x}_{t},\mathbf{u}(t),t)\,d\mathbf{W}_{t}, \end{equation} where $\mathbf{x}_{t}\in\mathbb{R}^{n}$ denotes the state variable and $\mathbf{u}(t)\in\mathbb{R}^{m}$ the control variable. The state of this Itô stochastic differential equation (SDE) is subject to deterministic infinitesimal increments driven by the vector valued drift function $\mathbf{f}$, and to random increments proportional to a multi-dimensional Wiener process $\mathbf{W}_{t}\in\mathbb{R}^{k}$, with stochastically independent components. The dispersion matrix $G$ is $(n\times k)$. The initial state is assumed to be a random variable $\mathbf{x}^{0}$ with known distribution.

The distinctive feature of this approach is that we consider open-loop control, i.e., $\mathbf{u}$ is a (deterministic) function of the time. We will look for controls that minimize a cost expressed as an expectation, \begin{equation} C(\mathbf{u})=\mathbb{E}\left[\int_{0}^{T}L(\mathbf{x}_{t},\mathbf{u}(t),t)\,dt+\psi(\mathbf{x}_{T})\right], \end{equation} with possibly terminal constraints also expressed as expectations such as $\mathbb{E}[\phi(\mathbf{x}_{T})]\in\mathcal{S}$, where $\mathcal{S}$ is a given target set. The function $\phi$ could be linear or quadratic.

In sum, we consider the following stochastic optimal open-loop control (SOOC) problem:

(SOOC)Minimize the cost $C(\mathbf{u})$ among all controls laws $\mathbf{u}(t)$, $t\in[0,T]$, such that the corresponding solution $\mathbf{x}_{t}^{\mathbf{u}}$ of the above SDE with $\mathbf{x}_{0}^{\mathbf{u}}=\mathbf{x}^{0}$ satisfies $\mathbb{E}[\phi(\mathbf{x}_{T}^{\mathbf{u}})]\in\mathcal{\mathcal{S}}$.

Get the Matlab codes (SOOC.zip)

This method aims to extract separately but concurrently spatial and temporal modules (i.e. building blocks) from recorded muscle patterns (typically using surface EMG). This space-by-time decomposition can be viewed as a generalization and unification of existing models for muscle synergies and motor primitives, and expresses any (non-negative) muscle pattern $\mathbf{m}^{s}(t)\in\mathbb{R}_{+}^{T\times M}$ as the following double sum ($T$ and $M$ being the number of time frames and muscles respectively, and $s$ denoting a given sample or trial): \begin{equation} \mathbf{m}^{s}(t)={\displaystyle \sum_{i=1}^{P}\sum_{j=1}^{N}w_{i}(t)a_{ij}^{s}}\mathbf{w}_{j}+\mathrm{residual}, \end{equation} where $w_{i}(t)\in\mathbb{R}_{+}^{T\times1}$ and $\mathbf{w}_{j}\in\mathbb{R}_{+}^{1\times M}$ are the temporal and spatial modules respectively, and $a_{ij}^{s}\in\mathbb{R}_{+}$ is a scalar activation coefficient. The parameters $P$ and $N$ correspond to the number of temporal and spatial modules respectively. Briefly, the algorithm takes the parameters $P$ and $N$ as input and is designed to iteratively minimize the total reconstruction error (i.e. the total residual) expressed as follows: \begin{equation} E^{2}=\sum_{s}{\displaystyle}||\mathbf{m}^{s}(t)-{\displaystyle \sum_{i=1}^{P}\sum_{j=1}^{N}w_{i}(t)a_{ij}^{s}}\mathbf{w}_{j}||_{}^{2}. \end{equation}

Get the Matlab code (sNM3F.zip)