Поиск всех независимых подмножеств графа
Ситуация такая: моя программа идет в два шага: первый шаг работает, в нем мы фильтруем все несмежные вершины каждой вершины поочередно закидываем их в отдельный массив, дальше фильтруем опять Все это находится в цикле, который работает с каждой из вершин, внутри него еще один цикл который фильтрует вершины из второго массива. в результате нужно чтоб программа вывела все возможные независимые подмножества Мне кажется, что я мыслю в правильном направлении, но реализация никак не получается
#include <stdio.h>
#include <locale.h>
#include <random>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int matrSmezh[6][6] = {
{0, 1, 1, 0, 0, 1},
{1, 0, 1, 0, 0, 0},
{1, 1, 0, 1, 1, 0},
{0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0},
{1, 0, 0, 0, 0, 0},
};
int numOfNodes = 6;
int nodes[6];
int k = 0;
int vertex[6];
for (int i = 0; i < numOfNodes; i++) {
int vertexToBegin = i;
for (int j = 0; j < numOfNodes; j++) {
if (matrSmezh[vertexToBegin][j] == 0 && j != vertexToBegin) {
vertex[k] = j;
++k;
}
}
int vertexToCont = rand() % (sizeof(vertex) / sizeof(vertex[0]));
int vertex1[6];
int count = 0;
for (int j = 0; j < numOfNodes; j++) {
m:
if (matrSmezh[vertexToCont][j] == 0 && j != vertexToCont && matrSmezh[vertexToBegin][j] == 0) {
vertex1[count] = j;
++count;
}
}
cout << endl << "Наибольшее независимое множество графа: " << endl;
for (int b = 0; b < count; b++)
cout << vertex1[b] << ' ';
//cout << vertexToCont;
}
return 0;
}