[Перевод] Охота на недостающий тип данных
Направленный граф — это набор узлов, связанных стрелками (рёбрами). Как узлы, так и рёбра могут содержать данные. Вот несколько примеров: Все графы созданы с помощью graphviz ( источник ) В сфере разработки ПО графы используются повсеместно: Зависимости пакетов, как и импорт модулей, формируют направленные графы. Интернет — это граф, состоящий из ссылок между веб-страницами. При проверке моделей анализ выполняется путём изучения «пространства состояний» всех возможных конфигураций. Узлы — это состояния, а рёбра — это допустимые переходы между ними. Реляционные базы данных — это графы, в которых узлы являются записями, а рёбра — внешними ключами. Графы — это обобщение связанных списков, двоичных деревьев и хэш-таблиц. 1 Кроме того, графы также широко используются в бизнес-логике. Научные работы со ссылками формируют графы цитат. Транспортные сети представляют графы маршрутов. Социальные сети — это графы связей. Если вы работаете в сфере разработки, то рано или поздно встретитесь с графами. Я вижу графы повсюду и использую их для анализа всевозможных систем. В то же время я побаиваюсь использовать их в коде. Какой из популярных языков программирования ни возьми, поддержка графов в них практически отсутствует. Ни в одном её нет в виде встроенного типа, очень мало где они прописаны в стандартной библиотеке, и у многих языков нет для этой функциональности надёжного стороннего пакета. Чаще всего мне приходится создавать графы с нуля. Существует большой разрыв между тем, как часто инженерам ПО могут понадобиться графы и тем, в какой степени экосистема их поддерживает. Где все графовые типы?
https://habr.com/ru/companies/ruvds/articles/799849/
#ruvds_перевод #графы #алгоритмы #sql #sparql #nosey_parker #типы_данных #python