A Self-Optimizing Prolog Program and the Underlying Statistical Model