This is a fascinating Los Angeles Times piece that profiles the computing power that is required to generate the NFL schedule. A team of four members and hundreds of computers are used to sift through 26,000+ conditions, with trillions of possible permutations, to generate the 2016 NFL schedule:
With 256 games, 17 weeks, six time slots, five networks and four possible game days — Sunday, Monday, Thursday and Saturday — there are hundreds of trillions of potential schedule combinations. Katz and his team are searching for the single best, and they have as many as 255 computers around the world running 24/7 to find the closest possible match to the ideal slate of games.
The schedules that have come out in the last couple of years are much more sophisticated:
Among the scheduling elements that are factored in now, but were not deeply considered in the old days: How much is a team traveling, and how far? Is someone playing a road game against a team coming off its bye week? Is anyone playing a road game six days after being on the road on a Monday night? Is a club overloaded with consecutive opponents who made the playoffs the previous season? Has a team gone multiple seasons with its bye at Week 5 or earlier?
An incredible optimization problem. The ultimate schedule that was selected was hand-judged against 333 other schedules generated by the computers to make sure it was the most optimal schedule.