1. A method comprising: receiving, by a network device, utility preferences that indicate criteria for measuring one or more utilities of programs; storing hard constraint information, wherein the hard constraint information includes one or more hard resource constraints pertaining to one or more resources of the network device and one or more hard program constraints pertaining to the programs; receiving weights pertaining to the utility preferences; identifying a value of at least one of the weights, which pertains to at least one of the utility preferences, as being higher in value relative to another value of the weights, which pertains to another one of the utility preferences; pre-sorting candidate programs that rank higher relative to other programs with respect to the at least one of the utility preferences based on an identification of the value; calculating, by the network device, utility solutions for at least a portion of pre-sorted candidate programs based on the utility preferences and the hard constraint information, wherein the calculating comprises: selecting one or more programs, which are top-ranked, in relation to each of the utility preferences; combining the selected one or more programs from each of the utility preferences; and applying the weights of the utility preferences in relation to a combined set of programs; selecting, by the network device, one or more programs to store for at least one of downloading or streaming based on the utility solutions; and storing the one or more programs.