Линейное программирование для оптимизации времени ожидания - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь решить проблему, используя симплекс-метод. Хотя это математическая проблема, мне нужно решить ее, используя любой язык программирования. Я застрял на самой базовой фазе о применении этих модулей, пока кодирую матрицу Ax = Bкоторый используется для решения задачи в общем случае симплекса.

Route  Departure  Runtime  Arrival       Wait time\\
A-B          x        4    MOD(x+4,24)   MOD(y-(MOD(x+4,24),24)\\
B-C          y        6    MOD(y+6,24)   MOD(z-(MOD(y+6,24),24)\\
C-D          z        8    MOD(z+8,24)   MOD(8-(MOD(z+8,24),24)\\

Цель состоит в том, чтобы минимизировать общее время ожидания с учетом ограничений 0 <= x, y, z <= 24 Симплекс не требуется специально, может использоваться любой метод.edit - это часть гораздо более серьезной проблемы, поэтому если предположить, что z = 0, и запуск не поможет.Мне нужно решить все это. Я хочу знать, как бороться с модулем. </p>

1 Ответ

0 голосов
/ 19 октября 2018

Выражение

y = mod(x,24)

не является линейным, поэтому мы не можем использовать его в модели с непрерывным LP (линейным программированием).Тем не менее, он может быть смоделирован в смешанной целочисленной программе как

x = k*24 + y 
k : integer variable
0 <= y <= 23.999 

. Для этого вам потребуется MIP-решатель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...