The problem of assigning jobs to machines and determining their order to optimize metrics like completion time.