Solving a reverse auction problem by bi-level distributed programming and genetic algorithm. (24th May 2011)