verve (vûrv) n.
What is Verve?
The Verve library provides general purpose agents that can learn to control things. For example, they could learn to drive simulated vehicles, control robots operating in the real world, or control non-player characters (NPCs) in video games. In general, Verve agents can be plugged into any system that can sense its environment and output actions.
Verve aspires to be...
Easy to use - simple API
, full documentation, good examples
Agents can use any number of sensory inputs and actions. Sensors can be discrete (e.g. battery power is low, medium, or high) or continuous (e.g. a distance value returned by a laser rangefinder). Continuous sensors have a “resolution” setting which determines their acuity.
Agents can be saved to and loaded from XML
The distribution includes the ability to output value function data to a text file for visualization. It also includes a separate application to generate PNG
image files from value function data for agents with either one or two sensors.
Limitations / Future Development
Limitation: Computational space and time requirements grow exponentially with the number of inputs. This is mainly due to the combinatorial state representation that combines all inputs into a higher level representation. Possible solutions to this problem include dimensionality reduction (e.g., using PCA or ICA) and using hierarchical representations of states and actions.
Verve is licensed under either the BSD or the LGPL license. Information for these licenses is distributed with the library.