Delete the existing operation-plans, as far as they aren’t locked.
Identify the clusters to be planned.
Categorize the demand to be planned by cluster and sort them by priority.
Create parallel threads for the planning.
In each planning thread, loop through all demands.
Call demand->solve()