Scheduling data broadcasts on wireless channels: exact solutions and heuristics