Skip to content

Класс поиска оптимального (дешевого) маршрута

Notifications You must be signed in to change notification settings

gectus/CheapestPath

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Класс поиска оптимального (дешевого) маршрута

Используется алгоритм Дейкстры (https://ru.wikipedia.org/wiki/Алгоритм_Дейкстры), который находит кратчайшие пути от одной из вершин графа до всех остальных.

Пример использования:

require_once 'CheapestPath.php';

/**
 * Список остановок вида:
 * [[A, B, 1], [B, C, 1], [C, D, 3]]
 * Где:
 *   А, B, C, D - остановки
 *   1, 3 - стоимость проезда между остановками
 */
$map = [
    ['A', 'B', 3],
    ['A', 'D', 3],
    ['A', 'F', 6],
    ['B', 'D', 1],
    ['B', 'E', 3],
    ['C', 'E', 2],
    ['C', 'F', 3],
    ['D', 'E', 1],
    ['D', 'F', 2],
    ['E', 'F', 5],
];

$path = new CheapestPath();
$path->prepareGraph($map);
$result = $path->getPath('F', 'A');

echo "Сумма проезда: " . $result['sum'] . "\n";
echo "Путь: " . implode(' -> ', $result['path']) . "\n";

About

Класс поиска оптимального (дешевого) маршрута

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages