Предположим, что у нас есть два ориентированных и положительно взвешенных графика на одном наборе вершин (первый граф представляет собой, например, железнодорожные дороги, а второй - шины, вершины автобусные остановки или железнодорожные вокзалы или оба). Нам нужно найти кратчайший путь от A до B, но мы не можем изменить тип транспорта больше, чем N раз.Кратчайший путь в «двухграфе» с ограниченным числом изменений
Я пытался изменить алгоритм Дейкстры, но он работает только на нескольких «не очень средних и сложных» графиках, и я думаю, что мне нужно попробовать что-то другое.
Как наилучшим образом представить этот «два графика» и как управлять ограниченным количеством изменений при перемещении графика? Есть ли возможность адаптировать алгоритм Дейкстры в этом? Любые идеи и подсказки будут полезны.
Редактировать: Ну, я забыл одно (я думаю, это очень важно): N = 0,1,2, ...; мы можем придумать любое графическое представление, которое нам нравится, и, конечно, может существовать максимум 4 ребра между каждыми двумя узлами (1 шинная полоса и 1 железная дорога в одном направлении, 1 автобусная полоса и 1 железная дорога во втором направлении).
«орграф» также представляет собой пару букв, подобных «ae», retagged. – MSalters
Как связаны два графика? * Являются ли они двумя графиками? – Electro
У меня нет проблем с изменением Дейкстры. Вы просто добавляете связанный с веткой компонент в Dijkstra, удаляя те пути, которые постоянно превышают количество допустимых изменений из списка путей. – arne