Scheduling under uncertainties: on-line algorithms, cooperative games, and manufacturing outsourcing