__Proportional fair__ This scheduler algorithm is a mix between the 2 previous algorithms : round-robin & max-CQI. It combines the equity principle of round-robin and the throughput optimization principle of max-CQI. Proportional fair allocates resources to the UE which maximize the metric following : metric = “instant reachable throughput” / “throughput average” Pseudo code algorithm: ProportionalFair (List users, List rbgs) { List data2send; foreach User u in users { if (u->queue.notEmpty()) { u->instantThroughput = u.updateThroughput(); u->PFmetric = u->instantThroughput / u->averageThroughput; if (data2send.isEmpty()) { data2send.add(u); else { foreach User u2 in data2send { if (u->PFmetric < u2->PFmetric) { data2send.addBeforeU2(u); } } } } } boolean full = false; foreach User u in data2send { while (u->queue.notEmpty()) { if (rbgs.notFull()) { rbgs.add(u->queue.getFirst()); } else { full = true; break; } } if (full) { break; } } }