Oppositional Reinforcement Learning with Applications