Size: a a a

Clojure — русскоговорящее сообщество

2021 October 11

DS

Denis Shirshov in Clojure — русскоговорящее сообщество
Кстати, а кто работал с такими "графами", в которых ребро может из вершины входить в ребро, или из ребра в ребро?
В биоинформатике, диаграммах метаболических сетей к такой абстракции приходим.
За такую ересь меня чуть не посадили в психушку. Но я знаю, среди лисперов много нашего брата.. санитарам не сдадите
источник

O

Ortofax in Clojure — русскоговорящее сообщество
у нас как раз на проекте такое, связи между сущностями в стиле декартово-замкнутых категорий. правда решение полностью кастомное
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Дык из ребра в ребро, значит на это ребро можно добавить промежуточную вершину!
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Инфа 100
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
опять же, можно зиппером или tree-seq, walk, reduce
источник

O

Ortofax in Clojure — русскоговорящее сообщество
есть ещё гиперграфы, где дуги могут связывать более 2х узлов. связь (A, (B, C)) эквивалентна связи (A, B, C)
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
можете какой-то пример привести где это обосновано и нельзя обойтись промежуточной вершиной прямым ребром?
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
единственное что – удобно хранить сами рёбра с какой-то доп инфой по ним, но это опять же – срез, чтобы уйти от промежуточной вершины
источник

GM

Gerr Mes in Clojure — русскоговорящее сообщество
Если вы каким то образом описываете «безвершинное» пересечение двух ребер - фактически это все равно будет вершина
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
ну или конечный автомат
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
а их нельзя смоделировать обычным [ориентированным] графом?
просто не так удобно может
выглядит именно как теоретическая надстройка для удобства
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
хотя, может, и особо нельзя, да, когда нужно показать единственность ребра
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
я добрался до деревьев в d3, кстати
источник

DS

Denis Shirshov in Clojure — русскоговорящее сообщество
Как раз не надо, это вводит лишнюю сущность. Хотелось бы за вершинами оставить физический смысл, а не так что одни вершины - это метаболиты, а другие - технические сущности, просто чтобы катализатору было куда воткнуться в реакцию.
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
может Ваша модель предполагает типы вершин всё же?
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
если рёбра в рёбра, то теоремы перестают работать
источник

O

Ortofax in Clojure — русскоговорящее сообщество
наверно можно, но это как-то по-уродски же получается
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
наверное можно через спец вершины опять же
ну не по уродски, просто не так наглядно для нас-людей
зато будут работать теоремы и алгоритмы
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
как раз наоборот, это “рёбра в рёбра” вносит дополнительную концептуальную нагрузку, которая может ломать всю наработанную теорию и алгоритмы

Но громоздкость простой модели часто кажется отягощением, да
источник

GM

Gerr Mes in Clojure — русскоговорящее сообщество
Это не лишняя сущность - ребра у вас пересекаются судя по вашему вопросу вполне реально, то есть там объективно есть вершина. Можете завести для таких вершин режим «невидимости», чтобы для кейсов где эти пересечения не важны алгоритмы обхода проходили не замечая пересечений.
источник