An algorithm that changes its behavior at the time it is run, based on a priori defined reward mechanism or criterion.