Поиск всех независимых подмножеств графа

Ситуация такая: моя программа идет в два шага: первый шаг работает, в нем мы фильтруем все несмежные вершины каждой вершины поочередно закидываем их в отдельный массив, дальше фильтруем опять Все это находится в цикле, который работает с каждой из вершин, внутри него еще один цикл который фильтрует вершины из второго массива. в результате нужно чтоб программа вывела все возможные независимые подмножества Мне кажется, что я мыслю в правильном направлении, но реализация никак не получается

#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;
}

Ответы (0 шт):