Almost ten years ago, my prediction was, in next ten years neuro dynamic programming language will receive more adoption and become a common computer programming language. Variance in my prediction and actual result is significant. Recent announcement of unmanned car from google is very encouraging that my predication will become a reality one day.
In simple words, in machine learning field, there are two types of learning. Supervised learning and un-supervised learning. Unsupervised learning is a type of learning which makes a system to learn in dynamically changing environment. Neuro dynamic programming language concept is based on unsupervised learning type. Whereas, supervised learning are widely used in voice recognition (in your voice phone directory at office), face recognition and etc. Techniques like neural network, Bayesian learning are used in supervised learning.
Q-Learning, Dynamical programming are some of the techniques available in unsupervised learning. It is a method used by humans to learn and the framework is very simple. In a dynamic environment, the sequence of events are random and an action for the random events is taken. A feedback (reward) for the action is received and based on the immediate and long time reward of the action taken for the random event, a weight is assigned to the action. Based on the exploration and exploitation strategy of the system, weight assigned to the action in the past for the random event, the action is repeated if the same or similar random event happens.
In the current computation paradigm, programming logic is deterministic. In the future, deterministic logic is not sufficient in computation. A car that uses set of techniques to drive itself will be used to learn about that specific car. At any given time, for a given VIN, all the necessary details about the car will be available. It applies to all entities including humans.