theblabs
@theblabs

Как организовать алгоритм бартерных цепочек?

Работаем над сервисом, который позволяет обмениваться товарами и услугами. Уже несколько десятков тысяч зарегистрированных пользователей. которые создали профили( Город, Специализация, Информация о себе), указали свои возможности( Я могу ... , Описание, Категория( из списка выбирали), создали сделки( Мне нужно ... , Описание, Категория, Меня на ...(указали возможности)).

Как на базе этого можно построить бартерные цепочки? К примеру для того, чтобы в бартере участвовали 3-5 пользователей. Есть ли мысли по алгоритмам?
  • Вопрос задан
  • 644 просмотра
Пригласить эксперта
Ответы на вопрос 2
@nirvimel
Ваша структура данных называется ориентированный граф. Вершины графа - контрагенты. Направленные ребра - ситуации, когда контрагент А предлагает товар, который контрагент Б желает приобрести (запрос на выборку таких ситуаций пишется на SQL элементарно и отрабатывает почти мгновенно при наличие правильных индексов).
У вас есть две задачи:
  1. Нахождение циклов в ориентированном графе (идеальный вариант). Готовые решения существуют.
  2. Нахождение самого длинного пути в ориентированном графе. Некоторые подходящие алгоритмы также можно найти.

Ответ написан
petermzg
@petermzg
Самый лучший программист
"Я могу..." - это результат
"Мне нужно..." - это требование.
Сделайте выборку "результат" - "требование", где описывается конкретным словом.
Пример:
масло - молоко
молоко - сено
сено - диз.топливо
Пробежитесь по выборке пару раз, вот вам и цепочки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы