Библиотеки для работы с графами-деревьями
От: α Российская Империя  
Дата: 06.12.15 23:25
Оценка:
А не встречалось ли вам что-нибудь уже готовое для обхода не очень больших деревьев и графов?
Задачи типовые: развернуть граф/дерево в плоский список, получить список объектов, ссылающихся на данный объект и наоборот, получить список объектов, на которые ссылается данный объект через свои свойства? И притом чтобы все это работало быстро и желательно с кэшированием информации о типах или какой-нибудь прекомпиляцией. Я тут свой велосипед через Reflection написал, но он вышел немного тормознутый, мягко говоря
Re: Библиотеки для работы с графами-деревьями
От: LaptevVV Россия  
Дата: 07.12.15 04:36
Оценка:
Посмотри Boost Graph Library.
Сам не работал, но книжку в издательстве Питер редактировал.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Библиотеки для работы с графами-деревьями
От: Spinifex Россия https://architecture-cleaning.ru/
Дата: 07.12.15 04:53
Оценка: 2 (1) +1
Здравствуйте, α, Вы писали:

α>А не встречалось ли вам что-нибудь уже готовое для обхода не очень больших деревьев и графов?

α>Задачи типовые: развернуть граф/дерево в плоский список, получить список объектов, ссылающихся на данный объект и наоборот, получить список объектов, на которые ссылается данный объект через свои свойства? И притом чтобы все это работало быстро и желательно с кэшированием информации о типах или какой-нибудь прекомпиляцией. Я тут свой велосипед через Reflection написал, но он вышел немного тормознутый, мягко говоря

Мы используем вот эту библиотеку: QuickGraph. Насколько я понимаю для работы с графами под .net особых альтернатив нет. Во всяком случае, если кто-то предложит что лучше с удовольствием посмотрю.
Если данных очень много имеет смысл посмотреть в сторону графовых БД. В частности наиболее популярная сейчас это Neo4j.
Не так давно Microsoft зарелизила свою графовую БД. Раньше они ее называли Trinity, сейчас Graph Engine. У них свой язык по аналогии с Gremlin, Cypher и т.п. — TSL (Trinity Specification Language)
Graph Engine — может быть это то, что вам нужно. Сам пока пристально не смотрел.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.