I have a scheduling problem to solve. It's a resource-constrained project scheduling problem with time-varying resource availabilities. The objective is minimizing tardiness. The full detailed model is given here.
I implemented a heuristic based on a priority rule: At each step, the set of tasks can be divided to 3 sets: the set $A$ of already-scheduled projects; the set $B$ of "schedulable" tasks (tasks whose predecessors are already scheduled) and the set $C$ of tasks not "schedulable" yet. At each step, we compute the priority of tasks in $B$ and select the one with the highest probability. It's then scheduled at the earliest possible time when there is available resources.
Remark: the green lines are the availabilities of the resource, Task A in blue is scheduled and task B in grey is not scheduled because it requires two units wheras only 1 unit is available.
If the task A is scheduled first (because it has the highest priority), there will be not enough resource for the task B. Thus, by the end, not all the tasks are scheduled (task B is not scheduled). However if I've scheduled B first, it will be o.k, since task A requires only one unit, and by the end all the tasks will be scheduled.
PS: Finding a feasible solution is NP complete in this case.