1. A method, in a data processing system, for resource allocation of a plurality of tasks carrying penalties based on their completion time, the method comprising: assigning the plurality tasks to one or more resources; and assigning start times for the plurality of tasks such that expected penalties for completion times of the plurality of tasks are minimized, wherein expected penalties are minimized by continually assigning tasks and start times based on predictable potential next events, and wherein an optimal amount of think time is calculated for each predictable potential next event.