Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

15.12.2012, 16:46. Просмотров 293. Ответов 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");
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 16:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генерация всех максимальных независимых множеств графа (C++):

Генерация всех максимальных независимых множеств графа - C++
Здравствуйте,обращаюсь к вам по поводу задания своей курсовой работы по дискретной математике- генерация всех максимальных независимых...

Запуск нескольких независимых потоков. Дождаться завершения всех (C++ 11) - C++
Доброго времени суток. Подскажите, как запустить несколько независимых потоков, но дождаться, пока все завершатся? В каждом потоке есть...

Замена всех максимальных чисел на нули - C++
привет всем, помогите плз вот в такой задачке. * Задано одномерный массив из 10 элементов, которые задаются случайно. Заменить...

Найти номера всех максимальных элементов матрицы - C++
В прямоугольной матрице, размерностью n*m,найти номера всех максимальных элементов.

Обход всех вершин графа - C++
Нужно найти путь с наименьшим весом с вершины 0 в 0, 1 в 1 и т.д. Обязательно обойти каждую вершину не более 1 раза. Граф взвешенный. ...

Алгоритм нахождения всех мостов графа - C++
Нужно использовать матрицу смежности. Можно ли это реализовать так: строится матрица смежности . Проставляются значения. (или...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 16:46
Привет! Вот еще темы с ответами:

Нахождение всех путей ориетированного графа - C++
Есть вектор с ребрами vector&lt; vector&lt;int&gt; &gt; g; Как найти все пути методом поиска в глубину например? Количество вершин, из каких в...

В одномерном массиве вставить новый элемент после всех максимальных - C++
Помогите в одномерном массиве вставить новый элемент после всех максимальных

Построить алгоритм прохождения всех циклов графа - C++
Задан граф G=(V,R) из N связанных вершин. Построить алгоритм прохождения всех циклов графа. С++ Примечание: цикл – это замкнутое...

Генерация массива всех перестановок из n элементов. - C++
Нашел по этой теме здесь на форумах такой код: #include &lt;iostream.h&gt; int X; int N; void Swap(int a,int b) { int t=X; ...


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

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

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