Должен ли я учитывать фактор времени как параметр или переменную в проблеме планирования с MILP? - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь сформулировать проблему, которая выложит оптимальный график для выполнения моих задач. Чтобы сохранить конфиденциальность информации, я буду называть свои задачи документами, которые необходимо написать. Вот предпосылка моей проблемы.

  • Есть 320 статей , которые нужно написать. (Все писатели могут писать эти статьи). На заполнение каждого документа уходит разное количество времени.

  • У нас есть 2 типа работников для заполнения этого комплекта документов.

  • У нас есть 150 авторов , на которых лежит ответственность за фактическое написание статьи.

  • У нас 25 грузчиков , в обязанности которых входит взять заполненные документы и пойти и взять новую работу для авторов, над которыми они будут работать. Для простоты я предполагаю, что время, необходимое для того, чтобы взять заполненную бумагу и доставить новую, является постоянным для каждого хода.

Цель этой проблемы - минимизироватьОбщее количество времени, которое требуется, чтобы написать все эти документы с моими сотрудниками. Мы ограничены следующим:

  • Сколько писателей нам нужно писать одновременно
  • Сколько движителей доступно для одновременного перемещения документов
  • Каждому движущему требуется 25 минут, чтобы переместить бумагу для писателя
  • Грузчики не могут перемещать бумаги для писателей, которые находятся в пределах 2 писателей друг от друга одновременно (если писатель 3 завершил свою работу и начинался движительперемещая бумагу для них, тогда авторы 1, 2, 4 и 5 должны будут ждать, пока двигатель для автора 3 закончит свой ход). Это ограничение должно представлять физическое ограничение, которое мы имеем на нашем объекте.

Мой подход:

Прошло некоторое время с тех пор, как я правильно сделалLP, поэтому я ржавый. Я определил следующие переменные, но не уверен, хорошо это или нет. Я не знаю, рассматривать ли время $ t $ как параметр для этих переменных или как его собственную переменную, и именно с этим я в основном борюсь.

$ D_j $:Продолжительность завершения работы над бумагой $ j $.

$ S_ {j, w} $: момент времени, когда писатель $ w $ начинает писать бумагу $ j $.

$ X_ {j, w} $: двоичная переменная, показывающая, пишется ли автор $ j $ писателем $ w $.

$ M_ {m, w} $: независимо от того, движется ли $ m или нет$ перемещает бумагу для писателя $ w $

Вот ограничения, которые я придумал:

  • $ \ sum_ {w \ in W} X_ {p, w} = 1 $

  • $ D_w, S_ {p, w} \ ge 0 $

Я борюсь с тем, как обернутьмоя голова вокруг того, как учитывать временную шкалу как переменную или некоторый набор или что-то еще.

Редактировать: Я потратил еще немного времени и обнаружил, что это обычная проблема с этим типом проблемы (ууу!). Два пути, которые нужно выбрать, - рассматривать время как дискретную или непрерывную переменную. Хотя точность была бы хорошей, данные, которыми я располагаю на предприятии, доступны в минуту, поэтому я считаю, что рассматривать время как дискретную переменную с интервалами одна минута разумно.

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

Примечание: я также разместил этот вопрос по ссылке OR.SE: https://or.stackexchange.com/questions/2734/how-to-formulate-scheduling-matrix-problem-with-mixed-integer-linear-programming

Я также разместилэто на Math.SE ссылку: https://math.stackexchange.com/questions/3384542/should-i-factor-in-time-as-a-parameter-or-a-variable-in-a-scheduling-problem-wit

...