generation scheduling