2016-02-07 6 views
1

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

a) Сформулируйте модель 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 

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

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

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

Студенты, у которых есть автомобили являются Chung, Demming, Eng, Холмс, Manheim, Моррис, Натан, Патрик, Роллинз и Янг.

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

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

ответ

0

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

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

затем с) ограничение можно мне моделируется следующим

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 
+0

спасибо так много. – sp1604

+0

можете посоветовать руководство/книгу, откуда я могу научиться коду cplex? – sp1604