When we calculateResMII, we use two loops, one with iterator
(*RI++)->canReserveResources
to check whether we can reserve the resource,
then later in another loop, we use
--RI; (*RI)->reserveResources(*MI);
Trying to move back iterator to do reservation.
This is risky, as after several iterator R++,
--R may not move back to point to the same Resource at all,
so we may actually test with one Resource, but reserve in another Resources,
hence overbooking some Resource.
The can cause wrong MII being calculated.