Попытка заставить Cytoscape JS вести себя для меня, но сталкиваясь с некоторыми проблемами юзабилити, которые я не знаю, является ли это мной или ограничением библиотеки.Cytoscape JS - Различные веса на основе направления для Dijkstra
Основная проблема заключается в использовании различных весов в зависимости от направления. А-В должен иметь вес 3, но, к примеру, от B до A должен быть вес 6. Есть только один край, определенный, поскольку docs говорят, что источник/цель игнорируются в неориентированных графах.
Я решаю это до сих пор, сохраняя вес на самом узле, и я подумал, что он работал в весовой функции dijkstra, исследуя edge.target(), чтобы получить желаемый вес.
Но, я думаю, edge.target(), похоже, соответствует только односторонней связи, определенной при настройке ребер, несмотря на то, что алгоритм direct = false соответствует алгоритму. Если я прихожу к нему с другого направления, я, кажется, ошибаюсь.
Итак, мой вопрос: как правильно получить цель узла, которую dijkstra набирает вес, внутри весовой функции, где все, что у меня есть, является краевым объектом? Мой график имеет круговые пути, поэтому к узлу можно подойти с двух сторон, и один вес не будет работать.
Я не уверен, действительно ли это будет работать в алгоритме Дейкстры, поскольку алгоритм предполагает, что на каждый край должен быть один вес. Если вес может быть выражен по направлению, и алгоритм все еще работает правильно (например, с некоторыми модульными тестами в качестве примеров), было бы здорово иметь эту функцию в lib по запросу pull. Благодаря! – maxkfranz