Google OR-Tools: Водитель делает перерывы в соответствии с правилами обслуживанияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Google OR-Tools: Водитель делает перерывы в соответствии с правилами обслуживания

Сообщение Anonymous »

Каждому водителю (транспортному средству) после 8 часов дежурства необходим 30-минутный перерыв. Ссылаясь на предыдущую проблему, вот мой код:

Код: Выделить всё

# Add breaks
node_visit_transit = {}
for n in range(routing.Size()):
if n >= len(data['node_name']):
node_visit_transit[n] = 0
else:
if n in data['pickups']:
node_visit_transit[n] = int(data['load_time'][n])
else:
node_visit_transit[n] = int(data['unload_time'][n])

break_intervals = {}
for v in range(data['num_vehicles']):
break_intervals[v] = [
routing.solver().FixedDurationIntervalVar(
MAX_TIME_BETWEEN_BREAKS, MAX_TIME_BETWEEN_BREAKS, BREAK_DURATION, False, 'Break for vehicle {}'.format(v))
]
time_dimension.SetBreakIntervalsOfVehicle(
break_intervals[v], v, node_visit_transit)
Однако при добавлении этого фрагмента решение не найдено, хотя решение существовало ранее. Несколько вопросов:
  • Для чего используется node_visit_transit? Судя по коду Github, он учитывает некоторую форму времени загрузки (в зависимости от потребности загрузки), поэтому я адаптировал его для времени загрузки/выгрузки здесь.
  • Использую ли я FixDurationIntervalVar правильно? Я бы хотел, чтобы у водителей был перерыв BREAK_DURATION после того, как они проработали на дежурстве MAX_TIME_BETWEEN_BREAKS часов, независимо от времени начала. Меня беспокоит, что это вынуждает их делать перерыв в абсолютное время MAX_TIME_BETWEEN_BREAKS, т. е. если MAX_TIME_BETWEEN_BREAKS = 8, то все они делают перерыв в 08:00.
Кажется, кто-то уже это понял, но примера решения нет.

Подробнее здесь: https://stackoverflow.com/questions/638 ... egulations
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»