1 / 1 / 0
Регистрация: 06.11.2016
Сообщений: 68
1

Алгоритм Брона-Кербоша

02.04.2020, 00:52. Показов 1809. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пыталась разобраться с алгоритмом, расположенным здесь https://medium.com/nuances-of-... 7d7b7e829d . Переписала его на js. Не до конца понимаю итераторы в плюсах. Мой алгоритм ищет только максимальную клику, а не все как исходный алгоритм.. Подскажите, пожалуйста, в чем ошибка.
Исходный алгоритм:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void bronKerbosch(set<node*> R, set<node*> P, set<node*> X) {
  if(P.empty() && X.empty()) {
    cout<<"Clique found: ";
    set_print(R);
  }
  set<node*>::iterator v = P.begin();
  while(!P.empty()  && v!=P.end()){
    set<node*> singleton = { (*v) };
    bronKerbosch(
      set_union(R,singleton), 
      set_intersection(P,(*v)->friends),
      set_intersection(X,(*v)->friends));
    P = set_difference(P,singleton);
    X = set_union(X,singleton);
    if(!P.empty())
      v = P.begin();
  }
}
Мой алгоритм:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    protected bronKerbosch2(cliqueVertices: IVertex[], graphVertices: IVertex[], excludedVerices: IVertex[]) {
        if (graphVertices.length === 0 && excludedVerices.length === 0) {
            console.log('result'+ cliqueVertices);
        }
        for (let i = 0; i < graphVertices.length; i++) {
                let vert: IVertex[] = [];
                vert.push(graphVertices[i]);
                this.bronKerbosch2(this.union(vert,cliqueVertices),this.intersection(graphVertices,
                    this.setOfAdjVertices(this.graph,graphVertices[i])),this.intersection(excludedVerices,
                    this.setOfAdjVertices(this.graph,graphVertices[i])));
                graphVertices = this.difference(graphVertices,vert);
                excludedVerices = this.union(excludedVerices,vert);
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2020, 00:52
Ответы с готовыми решениями:

Алгоритм Брона-Кербоша или поиск клик в графе
Собственно озадачился решением одной задачи: имеется матрица весов взвешенного ориентированного...

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab...

Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар)
Хочу разработать алгоритм для решения головоломки с подвижными дисками (перестановочная...

Линейный алгоритм, Алгоритм с ветвлениями, Циклический алгоритм Линейный алгоритм
Линейный алгоритм, Алгоритм с ветвлениями, Циклический алгоритм Линейный алгоритм 1. Объясни, что...

1
4263 / 3322 / 925
Регистрация: 25.03.2012
Сообщений: 12,515
Записей в блоге: 1
02.04.2020, 02:15 2
проверь как работают объединения, пересечения и разности в javascript
как-то этот твой this.union не похож на js
0
02.04.2020, 02:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2020, 02:15
Помогаю со студенческими работами здесь

Разработать алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм
Расставить строки данной матрицы в порядке возрастания наибольших элементов в строках.

Алгоритм устранения непродуктивных нетерминалов, алгоритм построения недостижимых символов
Задание: найдите лишние нетерминалы в следующей грамматике с начальным нетерминалом S и в...

Построить алгоритм Маркова, который ищет НОД (Алгоритм Евклида)
Здравствуйте, ребята, выручайте. Весь инет перерыл, всю голову сломал, но не могу сделать. Суть в...

Построить алгоритм ДО и алгоритм ПОКА для вычислений значения функции на отрезке [a,b] с шагом h.
Построить алгоритм ДО и алгоритм ПОКА для вычислений значения функции на отрезке с шагом h....

Вывести элементы, присутствующие в обоих массивах А и В. Алгоритм сортировки - подсчетом, алгоритм поиска - двоичный
Вывести элементы, присутствующие в обоих массивах А и В. Алгоритм сортировки - подсчетом, алгоритм...

Составить алгоритм-вычисление квадрата суммы двух чисел и алгоритм для вычисления функции
Здравствуйте!Мне нужно все с самого начала и точно,помогите пожалуйста! 1.составить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru