Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 17, 2013 14:56:39

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Создание маршрутов

Может кто поможет идеей? суть такова: Есть модель

class Point(models.Model):
   sosedi = models.ManyToManyField('self')

Если предположить, что растояние между соседями = 1, то суть задачи в написании метода определения растояния между точками...

def Rasstoyanie(start, stop):
    start = Point.object.get(...)
    stop = Point.object.get(...)
    # do something
    return [...]

на выходе нужно получить список возможных маршрутов между этими точками... Есть какие идеи?

Офлайн

#2 Дек. 17, 2013 15:14:02

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Создание маршрутов

Идея поиска маршрутов вообще такова:
1. Сначала строится граф “транспортной” сети.
2. Так как задача на поиск минимальных расстояний не стоит, то просто моделлируете маршруты обычным перебором (перебираете по-очереди узлы).
3. Формируете множество маршрутов и отбираете из них те, которые подходят по определенным критериям.

Будут вопросы - пишите.

Отредактировано 4kpt_II (Дек. 17, 2013 15:14:20)

Офлайн

#3 Дек. 17, 2013 16:03:34

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Создание маршрутов

В том то и проблема, чтобы написать сам алгоритм... мысленно я понимаю что нужно строить сетку связей и уже искать по ней... но пока даже не знаю от чего оттолкнуться...

Офлайн

#4 Дек. 17, 2013 21:59:02

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Создание маршрутов

ну по графам пройдись, алгоритм Дейкстры и всё такое
думаю спец либы для графов это умеют из коробки

Отредактировано slav0nic (Дек. 17, 2013 21:59:57)

Офлайн

#5 Дек. 17, 2013 22:55:55

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Создание маршрутов

вот как раз этим и занимаюсь.... читаю про графы и алгоритм Дейкстры

Офлайн

#6 Дек. 17, 2013 23:14:52

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Создание маршрутов

Если нужно построить все множество маршрутов без повторений узлов, то алгоритм Дейкстры здесь не нужен. Я написал выше. Тут можно просто по исходным данным получить матрицу инцидентности, а уже по ней методом обычного перебора с фиксацией вершин найти все варианты маршрутов из определенных точек. Нужно еще фильтровать и отсеивать одинаковые маршруты.

P.S. Алгоритм Дейкстры служит для поиска кратчайших расстояний, а ни как не для построения маршрутов. На самом деле для построения разных видов маршрутов существуют совершенно разные методы. Все зависит от типа маршрута, функции цели и начальных условий…

Отредактировано 4kpt_II (Дек. 17, 2013 23:16:46)

Офлайн

#7 Дек. 19, 2013 00:55:12

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Создание маршрутов

Всем спасибо… проблема решена.

Офлайн

#8 Дек. 19, 2013 02:01:39

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Создание маршрутов

Мне кажется ты не правильно хранишь данные. Надо использовать встроенные средства БД

Офлайн

#9 Дек. 19, 2013 05:41:23

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Создание маршрутов

Singularity
Мне кажется ты не правильно хранишь данные. Надо использовать встроенные средства БД
Вполне возможно… Будь добр - пни в нужном направлении

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version