We developed this solution during a 24h Hackathon by JCDecaux. We were asked to solve an allocation problem, which consisted in allocating faces to a maximum of client (named brief). Constraints were to answer one brief at a time without knowing about following ones, and to spread equally throughout the territory.
This algorithm generated the best results in terms of client satisfaction (number of client who had their campaign accepted), and revenue.