Reinforcement programming is a new technique for using computers to automatically create algorithms. By using the principles of reinforcement learning and Q-learning, reinforcement programming learns programs based on example inputs and outputs. State representations and actions are provided. A transition function and rewards are defined. The system is trained until the system converges on a policy that can be directly implemented as a computer program. The efficiency of reinforcement programming is demonstrated by comparing a generalized in-place iterative sort learned through genetic programming to a sorting algorithm of the same type created using reinforcement programming. The sort learned by reinforcement programming is a novel algorithm. Reinforcement programming is more efficient and provides a more effective solution than genetic programming in the cases attempted. As additional examples, reinforcement programming is used to learn three binary addition problems.
College and Department
Physical and Mathematical Sciences; Computer Science
BYU ScholarsArchive Citation
White, Spencer Kesson, "Reinforcement Programming: A New Technique in Automatic Algorithm Development" (2006). All Theses and Dissertations. 480.
genetic reinforcement programming Q-learning RPSort algorithm automatic