Мне нужна помощь с алгоритмом dijkstra в PHP.
Идея заключается в разработке кратчайшего пути внутри здания. Вход через главный вход в зал, а затем в 2 здания, слева (VB) и справа (PS).
Все имена VB-0-LIFT (здание-этаж-место).
https://github.com/phpmasterdotcom/DataStructuresForPHPDevs/blob/master/Graphs/graph-dijkstra.php
Array
(
[ENTRANCE] => Array
(
[VB-0-HALL-CROSS] => 1
[PS-0-HALL-CROSS] => 1
)
[VB-0-HALL-CROSS] => Array
(
[ENTRANCE] => 1
)
[PS-0-HALL-CROSS] => Array
(
[ENTRANCE] => 1
)
)
Моя головная боль начинается, когда я начинаю пробовать маршруты:
А) Хорошо. $r->route('VB-0-HALL-CROSS', 'PS-0-HALL-CROSS')
B) ПОТЕРПЕТЬ ПОРАЖЕНИЕ. $r->route('PS-0-HALL-CROSS', 'VB-0-HALL-CROSS')
C) Хорошо. $r->route('ENTRANCE', 'PS-0-HALL-CROSS')
Я не знаю, не понимаю ли я dijkstra, но когда я соединяю VB-0-HALL-CROSS и PS-0-HALL-CROSS с комбинациями лифтов, такими как
VB-0-HALL-CROSS -> VB Лифт 0 этаж
И это с 12 этажей.
В случае с полами, работает только с одними, другие не работают.
Есть ли проблема с конечной вершиной в алгоритме Дейкстры? Или какая-то идея, почему это идет не так?
while (!isEnded()) echo "thank you Colleagues";
(Я могу прикрепить код в GitHub полностью прокомментирован).
Задача ещё не решена.
Других решений пока нет …