Optimizing end user QoS in heterogeneous network environments using reputation and prediction