RU
Каталог

CGI скрипт (WEB) для расчета пути (алгоритм Дейкстры)

Продаж: 0
Возвратов: 0

Загружен: 29.10.2014
Содержимое: cgi_php_map.zip (1,5 Кбайт)

Продавец

miner.ID информация о продавце и его товарах
offlineЗадать вопрос

За положительный отзыв о купленном товаре продавец предоставит вам подарочную карту на сумму 13,47 руб..

Описание товара

Алгоритм Дейкстры (Dijkstra) на С++ (CGI для PHP и других языков программирования WEB). Позволяет создавать калькуляторы расчетов кратчайшего пути.

Дополнительная информация

Многие пользователи хотят создать на своем сайте некие сервисы с расчетом кратчайшего пути от точки А до точки Б. Начав писать алгоритмы на PHP, пользователи сталкиваются с тем, что программа ищет необходимый путь очень долго, а хостер банит через неделю за превышение нагрузки. Для своего сайта на PHP я реализовал данный алгоритм на высокоуровневом компилируемом языке С++, и использовал скомпилированный CGI скрипт из PHP файла. В итоге время расчета (14000 точек, 28000 ребер) пути сократилось с 200 секунд (PHP) до 0,2 секунды.

Сначала необходимо скомпилировать C++ файл на WEB-сервере. Для этого необходимо подключиться по SSH и ввести команду:
g++ map.cpp -o path.cgi

CGI скрипт все данные подгружает из txt файла. Файл должен иметь следующую структуру:
точка А -> точка Б -> загруженность точки А (от 1 до 10) -> загруженность точки Б (от 1 до 10)

-------- файл graph.txt---------------
А -> Б -> 1 -> 10
А -> В -> 1 -> 2
Б -> Е -> 10 -> 1
В -> Г -> 2 -> 2
Г -> Д -> 2 -> 2
Д -> Е -> 2 -> 1

В итоге получим граф (рисунок 1).

Чтобы получить необходимый путь, нужно вызвать CGI скрипт с параметрами:
path.cgi p1 p2 p3-pn, где:
p1: 0 - кратчайший путь; 1 - быстрый путь
p2: точка начала маршрута;
p3-pn: чтоки окончания маршрутов (можно считать сразу несколько маршрутов из точки р1 в точки р2, р3, р4 и т.д.)

Как вызвать скрипт из PHP файла:

$retArray=json_decode(exec(´"./cgi-bin/path.cgi" 1 А Е´)); //получим кратчайший путь А->Б->Е (рисунок 2)
$retArray=json_decode(exec(´"./cgi-bin/path.cgi" 0 А Е´)); //получим быстрый путь А->В->Г->Д->Е (рисунок 3)

path.cgi возвращает результат в формате JSON, поэтому у нас не возникает никаких проблем, чтобы разобрать его в PHP.

Отзывы

0
Отзывов от покупателей не поступало.
За последние
1 мес 3 мес 12 мес
0 0 0
0 0 0
За положительный отзыв о купленном товаре продавец предоставит вам подарочную карту на сумму 13,47 руб..
В целях противодействия нарушению авторских прав и права собственности, а также исключения необоснованных обвинений в адрес администрации сайта о пособничестве такому нарушению, администрация торговой площадки Plati (http://www.plati.com) обращается к Вам с просьбой - в случае обнаружения нарушений на торговой площадке Plati, незамедлительно информировать нас по адресу support@plati.com о факте такого нарушения и предоставить нам достоверную информацию, подтверждающую Ваши авторские права или права собственности. В письме обязательно укажите ваши контактные реквизиты (Ф.И.О., телефон).

В целях исключения необоснованных и заведомо ложных сообщений о фактах нарушения указанных прав, администрация будет отказывать в предоставлении услуг на торговой площадке Plati, только после получения от Вас письменных заявлений о нарушении с приложением копий документов, подтверждающих ваши авторские права или права собственности, по адресу: 123007, г. Москва, Малый Калужский пер. д.4, стр.3, Адвокатский кабинет «АКАР №380».

В целях оперативного реагирования на нарушения Ваших прав и необходимости блокировки действий недобросовестных продавцов, Plati просит Вас направить заверенную телеграмму, которая будет являться основанием для блокировки действий продавца, указанная телеграмма должна содержать указание: вида нарушенных прав, подтверждения ваших прав и ваши контактные данные (организиционно-правовую форму лица, Ф.И.О.). Блокировка будет снята по истечение 15 дней, в случае непредставления Вами в Адвокатский кабинет письменных документов подтверждающих ваши авторские права или права собственности.

Партнерам: 0,2 $ — как заработать
Оплатить с помощью:
с "Правилами покупки товаров" ознакомлен и согласен