Add initial architecture for random demand generation, and the three algorithms