I have a system of $M$ machines and $U$ users. Each machine has a capacity in terms of number of resources.
Let, machine $m$ has $\zeta_m$ resources.
Each user has a service demand $d_u$ and there is a link between any user $u$ and any machine $m$ defined as $\theta_{u,m}$.
The link quality between the user $u$ and machine $m$ is defined as
$$l_{u}=\log_2\left(1+\frac{\theta_{u,m}}{\sum_{m'=1,m'\neq m}^{M}\theta_{u,m'}}\right),$$
$\sigma$ is constant value which is very small.
The amount of resources needed by user $u$ from machine $m$ depends on its link quality.
For example, if user $u$ with demand $d_u$ is connected to a single machine $m$ with link quality $l_{u}$, then the number of resources it needs from machine $m$ is $$\lambda_{u,m}=\frac{d_u}{l_{u}}$$
I want to do optimal/ best possible load balancing so that the machines have proportional load depending on the capacity/the of resources they have. At the same time, the overall link quality of all the user should also be maximised. This is because the lower the amount of resources used from the machines, the faster the users get their services attended.
Not that the each user has access to a given set of machines. For example, the accessible set of machines for user $u$ is defined as $\mathcal{S}_u$ (a non-empty set with at least one element) which is a subset of the set $\{1,2,\cdots,M\}$.