Member 13904747 Ответов: 0

Математическая модель в сложно


Привет,

у меня есть некоторые сомнения, связанные с кодом CPLEX, который я пытаюсь написать. Сам код (модель) вроде бы хорошо написан, но когда дело доходит до заполнения данных, у меня возникает ошибка. ***Примечание: в модели нет никаких ограничений, потому что я пытаюсь провести пробную версию модели только для того, чтобы убедиться, что она работает.***

Вот этот код:

использование CP;

// ПАРАМЕТРЫ СЕТИ

инт грузовиков=...;
грузовик диапазон= 1..грузовые автомобили;

int емкость [грузовик]=...;

кортеж nodeinfo {
строковое имя;
инт начала;
int endtime;
плавающий спрос;
}

{nodeinfo} departurenode=...;

{nodeinfo} arrivalnode=...;

{nodeinfo} startingnode=...;

дуга кортежа {
nodeinfo departurenode;
nodeinfo arrivalnode;
nodeinfo startingnode;
инт тревелсимки;
}

{arc} дуги=...;

плавающая стоимость [дуги][грузовик];

// ПЕРЕМЕННЫЕ ПАРАМЕТРЫ

время группа булевскую [дуг,грузовик];

dvar int+ arrivaltime [arrivalnode,грузовик];

// ЦЕЛЕВАЯ ФУНКЦИЯ

dexpr float totalcost =
сумма (i в дугах, j в грузовике) x [i,j] * стоимость [i,j];

минимизировать totalcost;

// СУЩЕСТВУЮЩИЕ ОГРАНИЧЕНИЯ

подлежит {}

выполнять {
writeln(дуги);
};

Вот эти данные:

грузовики= 2;

departurenode= [[а,0,10000,0],[Б,0,10000,0],[С,0,10000,10],[Д,0,10000,10]];

arrivalnode= [[а,0,10000,0],[Б,0,10000,0],[С,0,10000,10],[Д,0,10000,10]];

startingnode=[[а,0,10000,0],[Б,0,10000,0],[С,0,10000,10],[Д,0,10000,10]];

см= [[&ЛТ;а,0,10000,0 и GT;,&ЛТ;а,0,10000,0 и GT;,&ЛТ;с,0,10000,10&ГТ;,5], [в<а,0,10000,0 и GT;,&ЛТ;а,0,10000,0 и GT;,&ЛТ;Д,0,10000,10&ГТ;,5],
[&ЛТ;Б,0,10000,0 и GT;,&ЛТ;Б,0,10000,0 и GT;,&ЛТ;с,0,10000,10&ГТ;,5], [&ЛТ;Б,0,10000,0 и GT;,&ЛТ;Б,0,10000,0 и GT;,&ЛТ;Д,0,10000,10&ГТ;,5],
[&ЛТ;с,0,10000,0 и GT;,&ЛТ;с,0,10000,0 и GT;,&ЛТ;а,0,10000,10&ГТ;,5], [в<с,0,10000,0 и GT;,&ЛТ;с,0,10000,0 и GT;,&ЛТ;Б,0,10000,10&ГТ;,5],
[&ЛТ;Д,0,10000,0 и GT;,&ЛТ;Д,0,10000,0 и GT;,&ЛТ;а,0,10000,10&ГТ;,5], [&ЛТ;Д,0,10000,0 и GT;,&ЛТ;Д,0,10000,0 и GT;,&ЛТ;Б,0,10000,10&ГТ;,5]]

***Примечание: в каждом промежутке дуги перед временем путешествия (последнее значение промежутка=5) должны быть данные из departurenode, узла прибытия и startingnode, но они не отображаются, и я не знаю почему ***


стоимость= [&ЛТ;1,1&ГТ;,&ЛТ;1,1&ГТ;,&ЛТ;1,1&ГТ;,&ЛТ;1,1&ГТ;,&ЛТ;1,1&ГТ;,&ЛТ;1,1&ГТ;,&ЛТ;1,1&ГТ;,&ЛТ;1,1&ГТ;]

Еще одно сомнение: что касается ограничений модели, то я не знаю, как записать их в CPLEX.

1) starttime <= arrivaltime <= endtime //(для каждого arrivalnode)

2) х * (arrivaltime (узел I) + тревелсимки) &ЛТ;= arrivaltime (узлу J)

3) инициализируйте переменную arrivaltime для каждого грузовика равным 0. (в начале моделирования)

4)спрос на каждый узел прибытия должен быть равен сумме (выбранных дуг * вместимости грузовика)

Огромное спасибо.

Что я уже пробовал:

Я попытался реализовать код, показанный выше, в CPLEX, но, как уже было сказано, у меня есть некоторые сомнения, и мне нужно решить показанные ошибки.

0 Ответов