Efficient resource allocation is an important challenge for many modern computing systems. The general goal in such resource allocation problems is to divide the available resource over individual users or system components as to maximize the overall system utility of this division (or, equivalently, to minimize the overall system cost). These problems occur in many different engineering applications such as telecommunications [1]}, [2]}, processor scheduling [3]}, and regularized learning [4]}, [5]} (see also the overview in [6]}).
