Я пытаюсь закодировать программу, которая использует Electrical Mesh Analasys.Итак, у меня есть узлы схемы [A, B, C, D] и ветви, которые связывают узлы [0,1,2,3,4,5,6,7,8].
Как найти кратчайшие циклы в неориентированном графе с несколькими ребрами, как в примере ниже?
Изображение графика (4 узла, 9 ребер / ветвей):
![graph](https://i.stack.imgur.com/QnU2A.png)
Cycles:
0-1-0
5-6-5
6-8-6
1-4-2-1
2-7-3-2
4-7-5-4
Количество циклов, которое мне нужно: Cycles = Branches - (Nodes - 1), в данном случае мне нужно 6циклы.
У меня есть эти данные, хранящиеся в таких массивах, как это:
realNodes = [A,B,C,D];
groupBranches = [[0,1,4,5,6,8], [3,5,6,7,8], [0,1,2,3], [2,4,7]];
// groupArray[0] stores the branch numbers connected to A;
// groupArray[1] stores the branch numbers connected to B;
// groupArray[2] stores the branch numbers connected to C;
// groupArray[3] stores the branch numbers connected to D;
Примечания:
Мне не нужны все возможные циклы, мне просто нужно использоватькаждое ребро (ветвь) в некотором цикле.
Кроме того, последние циклы могут отличаться от представленных в примере.
Я был бы рад увидеть алгоритм на любом языке.