Края
Использование края - самый быстрый ответ, как вы делаете это для лестниц.Однако в то время как лестница может подниматься только с этажа X на этаж X + 1, лифт может подниматься с любого этажа на любой этаж с немного отличающимся временем - обычно я нахожу лестницу быстрее на два этажа, но медленнее на более чем 2.отразите это вам понадобится ребро от каждого этажа до каждого второго этажа , с весами для каждого.
Вершины
Вместо этого у вас могут быть и дополнительные вершины.как края.Если бы у вас была вершина на каждом этаже подъемного вала, то вам понадобился бы только один путь ребер, соединяющих все этажи вместе, а не комбинаторное число ребер.
Если вы также добавили дополнительную вершину вне дверей на каждом уровне, то вы могли бы добавить среднюю задержку для входа в лифт и таким образом отразить тот факт, что лифт может быстро проходить несколько этажей.Тем не менее, подъемники будут нуждаться в среднем времени в лучшем случае.В напряженное время они могут в конечном итоге остановиться почти на каждом этаже, так что для занятого кампуса вы не сможете получить эти дополнительные вершины.
Мой голос - за вершину для каждого этажалифт и единый край, чтобы связать смежные этажи.Это должно упростить график и сократить усилия любого алгоритма оптимизации пути, так как путей меньше.Кроме того, это более точное отражение реальности и минимизация вашей рабочей нагрузки для настройки граничных весов.