A computing device for scheduling operation of residential energy consumption devices, comprising: a memory; and a processor configured to execute executable instructions stored in the memory to: form a number of chains of residential energy consumption devices, wherein each of the number of chains includes a plurality of different devices, and wherein at least one of the number of chains includes a plurality of devices whose operations are dependent on each other; sort the number of chains in descending order corresponding to their total energy consumption over a particular period of time to determine which of the number of chains has a largest total energy consumption over the particular period of time; determine an amount of available energy generated by residential energy generation devices; separately determine, for each of the number of chains and in the descending order, an operational schedule for the devices in that respective chain having the lowest possible cost; re-sort the number of chains into a different descending order based on the peak energy consumption of the devices; separately determine, for each of the re-sorted number of chains and in the different descending order, an operational schedule for the devices in that respective chain having the lowest possible cost; and select, from the determined operational schedules, the operational schedule having the lowest possible cost. a memory; and a processor configured to execute executable instructions stored in the memory to: form a number of chains of residential energy consumption devices, wherein each of the number of chains includes a plurality of different devices, and wherein at least one of the number of chains includes a plurality of devices whose operations are dependent on each other; sort the number of chains in descending order corresponding to their total energy consumption over a particular period of time to determine which of the number of chains has a largest total energy consumption over the particular period of time; determine an amount of available energy generated by residential energy generation devices; separately determine, for each of the number of chains and in the descending order, an operational schedule for the devices in that respective chain having the lowest possible cost; re-sort the number of chains into a different descending order based on the peak energy consumption of the devices; separately determine, for each of the re-sorted number of chains and in the different descending order, an operational schedule for the devices in that respective chain having the lowest possible cost; and select, from the determined operational schedules, the operational schedule having the lowest possible cost. form a number of chains of residential energy consumption devices, wherein each of the number of chains includes a plurality of different devices, and wherein at least one of the number of chains includes a plurality of devices whose operations are dependent on each other; sort the number of chains in descending order corresponding to their total energy consumption over a particular period of time to determine which of the number of chains has a largest total energy consumption over the particular period of time; determine an amount of available energy generated by residential energy generation devices; separately determine, for each of the number of chains and in the descending order, an operational schedule for the devices in that respective chain having the lowest possible cost; re-sort the number of chains into a different descending order based on the peak energy consumption of the devices; separately determine, for each of the re-sorted number of chains and in the different descending order, an operational schedule for the devices in that respective chain having the lowest possible cost; and select, from the determined operational schedules, the operational schedule having the lowest possible cost.