Попытка решить задачу, подобную задаче с би-объективной точки зрения.Я играю с этой моделью только для учебных и практических целей.У меня есть две функции стоимости, определенные как:
is the profit that comes from machine j of vendor v.
I have these decision variables defined in the following high-level form:
= 1 if machine j of vendor v of type t is candidate for client machine i, 0 otherwise.
= 1 if machine i is of type t, 0 otherwise.
= 1 vendor v is selected, 0 otherwise.
Since I have the type of client machines (a total of 3) given as input, I set the values of = 1, = 1 and = 1.
I would like to have a one-to-one mapping between machines candidates and client machines. One machine j from vendor v and type t should be candidate for machine client i :
Several machines from different vendors v and type t could be candidate for client machine i, only one should be taken:
I want to make sure that only one type t is selected per vendor v, machine j for each client machine i:
I want to make sure when a vendor v is selected then corresponding candidate machines comes from it otherwise no machine is candidate if a vendor is not selected :
I want to make sure when a candidate machine j from vendor v is candidate then its corresponding type matches the type t of client machine i:
The specs values of the candidate machine j should be less than the ones requested by machine i:
I am not sure why it selects only one vendor and returns several Y variables instead of only some of them with the corresponding type of the client's machine.
I am not able to spot my mistake and how to handle this issue, any help would be appreciated. I attached the model in its lp format (vendors) and the output (gurobi_output) got from gurobi following this ссылка