The problem of determining the kernels in the discrete Volterra-series representation of a time-invariant non-linear discrete-time system is considered. The identification problem is transformed to an optimal control problem, which is then solved using dynamic-programming formulation. Examples illustrating the use of the techniques are presented.