Логика кодирования CPlex

Профессор, ведущий курс промышленного проектирования, столкнулся с проблемой распределения 28 студентов по 8 проектам. Каждый студент должен быть назначен на один проект, и в каждой проектной группе должно быть 3 или 4 студента. Студентов попросили ранжировать проекты, где 1 означает лучший рейтинг, а более высокие числа представляют более низкие рейтинги.

а) Сформулируйте модель OPL для этой задачи.

б) Решите задачу о назначениях для следующей таблицы назначений:

    A   ED  EZ  G   H1  H2  RB  SC
Allen   1   3   4   7   7   5   2   6
Black   6   4   2   5   5   7   1   3
Chung   6   2   3   1   1   7   5   4
Clark   7   6   1   2   2   3   5   4
Conners 7   6   1   3   3   4   5   2
Cumming 6   7   4   2   2   3   5   1
Demming 2   5   4   6   6   1   3   7
Eng     4   7   2   1   1   6   3   5
Farmer  7   6   5   2   2   1   3   4
Forest  6   7   2   5   5   1   3   4
Goodman 7   6   2   4   4   5   1   3
Harris  4   7   5   3   3   1   2   6
Holmes  6   7   4   2   2   3   5   1
Johnson 2   2   4   6   6   5   3   1
Knorr   7   4   1   2   2   5   6   3
Manheim 4   7   2   1   1   3   6   5
Morris  7   5   4   6   6   3   1   2
Nathan  4   7   5   6   6   3   1   2
Neuman  7   5   4   6   6   3   1   2
Patrick 1   7   5   4   4   2   3   6
Rollins 6   2   3   1   1   7   5   4
Schuman 4   7   3   5   5   1   2   6
Silver  4   7   3   1   1   2   5   6
Stein   6   4   2   5   5   7   1   3
Stock   5   2   1   6   6   7   4   3
Truman  6   3   2   7   7   5   1   4
Wolman  6   7   4   2   2   3   5   1
Young   1   3   4   7   7   6   2   5

Скольким учащимся назначен второй или третий выбор?

в) До некоторых проектов труднее добраться без машины, чем до других. Таким образом, желательно, чтобы хотя бы определенное количество студентов, закрепленных за каждым проектом, имело автомобиль; цифры варьируются в зависимости от проекта следующим образом:

A   ED  EZ  G   H1  H2  RB  SC
1   0   0   2   2   2   1   1

Студенты, у которых есть машины, это Чанг, Демминг, Энг, Холмс, Манхейм, Моррис, Натан, Патрик, Роллинз и Янг.

Измените модель, чтобы добавить это ограничение автомобиля, и снова решите задачу. На сколько больше студентов, чем раньше, нужно назначить второй или третий выбор?

Я закодировал файл для а) и б), но я застрял в с). Может ли кто-нибудь помочь с логикой? даже усилителя хватит


person sp1604    schedule 07.02.2016    source источник


Ответы (1)


Пусть C_i будет индикаторной матрицей (вход): C_i = 1, если у студента i есть машина, и 0 в противном случае. Я предполагаю, что у вас есть следующие переменные решения:

x_ij = 1 if student i is assigned to project j; 0 otherwise

тогда c) ограничение можно смоделировать следующим образом

sum_i C_i * x_ij >= b_j    for all j

где b_j

 j   A   ED  EZ  G   H1  H2  RB  SC
 b_j 1   0   0   2   2   2   1   1
person serge_k    schedule 08.02.2016
comment
Можете ли вы предложить руководство / книгу, из которой я могу научиться кодировать cplex? - person sp1604; 10.02.2016