self-learning profit-driven algorithms