A general utility optimization framework for energy-harvesting-based wireless communications | Synapse