Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
Определение минимального покрытия графа |
Философия, технологии, алгоритмы! |
|
Опции темы |
16.04.2008, 18:24 | #3 |
Форумец
Сообщений: 275
Регистрация: 29.07.2006
Не в сети |
"Будем говорить, что ребро и вершина покрывают друг друга, если они инцедентны. Множество вершин, покрывающее все рёбра графа, называется вершинным покрытием графа, а множество рёбер, покрывающих все вершины, называется рёберным покрытием графа. Наименьшее число вершин в вершинных покрытиях графа называется его числом вершинного покрытия.(А0) Аналогично наименьшее число рёбер в рёберных покрытиях графа наывается числом рёберного покрытия.(А1) Вершинное(рёберное) покрытие называется наименьшим, если оно содержит А0(соответственно А1) элементов."
Из учебника Ф.Харари: "Теория графов" |
17.04.2008, 09:41 | #4 | |
Форумец
Сообщений: 1,149
Регистрация: 18.09.2006
Возраст: 40
Не в сети |
тебе надо вершинное или реберное покрытие найти?
чем\как задан граф..? граф ориентированный? граф с петлями? если нет, простейший случай: Цитата:
const int n=количество_вершин; const int m=количество_ребер; bool G[n][m+1]; // +дополнительная строчка //функция, найти число связей у вершины int find(int x,) { int result=0; for(int i =0; i<m; i++) ___if(G[x][i]) result++; }; //функция, найти вершину с максимальным числом связей int find_max() { int result =0; for(int i =0; i<n; i++) ___if( find(i)>find(result ) ) result = i;//оптимизаторы нервно курят.... }; //функция добавить вершину в "список минимального покрытия" void add(int x) { G[x][m+1]=true; for(int i=0;i<m;i++) { if(G[x][i]) ___for(j=0;j<n;j++) ______G[j][i]=false; }; }; //main int main() { /*тут заполняеца этот массив*/ /*дополнительная строчка забиваеца нулями*/ while( find( find_max()) ) ___add(find_max()); /* дополнительная строчка должна являца минимальным вершинным покрытием правда от графа остануца только нолики, но это решаемо */ }; все написаное выше полная отсебятина, ни где не тестировалась, и вполне может неработать |
|