Abstract
With the advent of smart grids, there can now (or will soon) be two-way communications between the users and the electricity company through the grids. This allows the possibility of a new model, where the company may collect user requests in advance, and perform demand scheduling to better utilize its power generators when part of these requests are `shiftable' or `discardable'. In this thesis, we propose an efficient truthful mechanism for the users to send the requests, compare its performance with the optimal/approximation algorithms for minimizing the standard metrics like total cost and the peak load, and study the empirical price of anarchy, on real-data-based simulated inputs.