Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vladis222
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 78
#1

Генерация всех максимальных независимых множеств графа - C++

15.12.2012, 16:46. Просмотров 272. Ответов 0
Метки нет (Все метки)

Здравствуйте,обращаюсь к вам по поводу программы на языке С++(независимые множества в графе)Написал отдельные функции для программы,по примеру языка Делфи, однако не все работает,посмотрите пожалуйста в каких функциях я допустил ошибки?Код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include<iostream>
using namespace std;
#include<conio.h>
#include<math.h>
#include<locale>
#include<set>
const int N=10;
set <int [N]> A;
int Ss[N]; //Решение хранится в этом массиве
 void Print(int k) 
 {
    int i;
    for(i=1;i<=k;i++) 
    {
        cout<<Ss[i];//вывод решения на экран
    }
 }
  void Find(int k,set<int[N]>Qp,set<int[N]>Qm)
  {
      set<int>Gg;
      int delt=N+1;
      int i;
      int j;
         if (Qp.size()==0 && Qm.size()==0)
           Print(k);
         if(Qm.size()!=0)
            if (Qp.size()==0 && Qm.size()==0)
              Print(k);
         else 
             Gg.count()=Qp.count();
         for(j=1;j<=N;j++)
         {
             if (Qm.find(j)!=Qm.end())
                 if (Number (A.find(j))*Qp < delt )
                   {
                       i=j;
                       delt=Number(A.find(j)*Qp);
                   }
                 Gg=Qp*A.find(i);
         }
      //черный ящик А
         exit(-1);
   //формирование множества кандидатов Gg для расширения текущего решения (k элементов в массиве Ss) по значениям Qp и Qm
       i=1;
       while(i<N)
       {
           if(Gg.find(i)!=Gg.end())
           {
               Ss[k]=i;
               Find(k+1,Qp.erase(A[N].find(i),i),Qm.erase(A[N].find(i),i));
               //Черный ящик Б//
               i++;
           }
       }
  }
  int Number( set <int> A)
  {
      int i;
      int cnt;
      cnt=0;
      for(i=1;i<N;i++)
       {
           if(A.find(i)!=A.end())
               cnt++;
           return cnt;
       }
  }
 
 
int main()
{
 setlocale(LC_ALL,"Rus");
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 16:46     Генерация всех максимальных независимых множеств графа
Посмотрите здесь:
Генерация всех максимальных независимых множеств графа C++
C++ Запуск нескольких независимых потоков. Дождаться завершения всех (C++ 11)
C++ Замена всех максимальных чисел на нули
Найти номера всех максимальных элементов матрицы C++
Обход всех вершин графа C++
Алгоритм нахождения всех мостов графа C++
Нахождение всех путей ориетированного графа C++
C++ В одномерном массиве вставить новый элемент после всех максимальных
Построить алгоритм прохождения всех циклов графа C++
Генерация всех перестановок n элементного множества C++
Генерация всех подмножеств данного множества C++
Нерекурсивная генерация всех последовательностей из 0 и 1 длины k C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru