Please help me with the following problem.

I am trying to find the fair allocation of resources to uses associated to a base station. Each user has a particular QoS constraint. My optimization problem is as follows,

max sum(r_i * x_i)

s.t.

r_i * x_i <= R_i (QoS constraint)

sum(x_i) <= N (Capacity Constraint)

|r_i * x_i – r_j * x_j| <= eps, i!=j (Fairness Constraint)

Where,

r_i is the down-link data rate of user i on a single resources.

x_i and R_i are the QoS and number of resources allocated to user i respectively.

eps is the fairness threshold.

N is the total number of resources,

ue_count is the number of users.

If I am correct, the fairness constraint need to be written as -eps <= (r_i * x_i – r_j * x_j) <= eps, but I don’t know how to code it in cvx. I think it is a integer problem, as x_i can take only integer values.

I think in the solution instance the value of x_i=0 for a few users, so how can I take care of those users in the next iteration of resource allocation, so that I can achieve long term fairness.