Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Захват графа / 24 сообщений из 24, страница 1 из 1
07.02.2014, 09:03
    #38552794
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
Здравствуйте.
Представьте граф. Вы представили вершины и рёбра. Пусть у нас нет петель, нет кратности.
Если вы захватили одну вершину, то вы захватываете все вершины соединённые рёбрами с этой вершиной. Дальше захват не распространяется.
Вход: массив вершин f e:1,2,3,4,5,..,100;
массив связей f e: (1,2),(1,3),(4,92),(99,100)
Выход: минимальное число вершин для захвата графа и эти вершины

Предложите ваш вариант решения данной задачи, но не методом полного перебора.
Я приведу пример:

вход:
1..7
(1,2) (1,3) (1,4) (1,5) (2,3) (2,4) (3,7) (3,6)
выход:
2 вершины 1 и 3

Решение данной задачи не требуется мне для какой-нибудь работы или тп. Просто я кроме полого перебора не нашёл вариантов самостоятельно, не гуглил. Программные код не нужен.
Достаточно голого алгоритма
...
Рейтинг: 0 / 0
07.02.2014, 09:36
    #38552816
maxkar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
SashaMercury,

Гуглить "минимальное доминирующее множество". Можно еще слово "алгоритм" к запросу добавить. Точные решения "без полного перебора" пока науке не известны. Скорее всего, есть алгоритмы с эвристиками, позволяющие в "хороших" случаях заранее отсекать ветви перебора.
...
Рейтинг: 0 / 0
07.02.2014, 09:39
    #38552820
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
авторТочные решения "без полного перебора" пока науке не известны.

ссылаясь на что вы утверждаете это ?
...
Рейтинг: 0 / 0
07.02.2014, 10:32
    #38552893
F#
F#
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
maxkarSashaMercury,

Гуглить "минимальное доминирующее множество".

Погуглил - там требуется неинцидентность вершин, а автору это не требуется. Легко представить пример, где "минимальный захват" графа будет другой чем МДМ.
...
Рейтинг: 0 / 0
08.02.2014, 06:32
    #38554279
maxkar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
F#,

Вы с максимальным независимым множеством не путаете? Вот там как раз требуется неинцидентность. Минимальное доминирующее и максимальное независимое обычно вместе рассматриваются, они очень похожи
...
Рейтинг: 0 / 0
08.02.2014, 06:41
    #38554281
maxkar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
SashaMercuryссылаясь на что вы утверждаете это ?

Это NP-полная (NP-complete) задача. Например, в wiki написано. В учебниках я вроде бы встречал доказательство этого. Дальше уже академические знания о классах сложности (в том числе о том, что такое NP-полные задачи).
...
Рейтинг: 0 / 0
08.02.2014, 14:58
    #38554403
F#
F#
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
maxkarВы с максимальным независимым множеством не путаете?

Судя по статье в википедии я нашел что-то не то :)
...
Рейтинг: 0 / 0
10.02.2014, 11:50
    #38555438
Addx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
Не понимаю, зачем нужен голый алгоритм. Если это не учебная задача. Или для собственного развития. Тогда стоит почитать учебники по теории графов, весьма интересная область математики. Необходимость полного перебора в практических задачах можно решить при помощи хранения избыточной информации. Если это действительно необходимо.
...
Рейтинг: 0 / 0
10.02.2014, 12:48
    #38555527
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
SashaMercury,

По-моему, поиск в глубину от изначально захваченных вершин на глубину не более 1, с перичислением всех обойдённых вершин,
и последующее объединение
даст тебе решение.

Будет не N*P, но n*P, где n --число изначально захваченных вершин.
...
Рейтинг: 0 / 0
10.02.2014, 15:19
    #38555803
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
теория графов тут воще не причем
...
Рейтинг: 0 / 0
11.02.2014, 02:05
    #38556517
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
Addx,
для собственного развития
...
Рейтинг: 0 / 0
11.02.2014, 02:07
    #38556518
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
MasterZiv, спасибо.
А разве мне не потребуется в этом случае перебрать все возможные комбинации вершин ? Или я неправильно вас понял. Покажите как это будет выглядеть на том примере что я написал, пожалуйста.
...
Рейтинг: 0 / 0
11.02.2014, 18:33
    #38557562
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
SashaMercuryMasterZiv, спасибо.
А разве мне не потребуется в этом случае перебрать все возможные комбинации вершин ? Или я неправильно вас понял. Покажите как это будет выглядеть на том примере что я написал, пожалуйста.

Скорее я неправильно понял задачу.
я написал как понять какие вершины будут захвачены при заданных начальных.
А у тебя наоборот -- надо найти, какие вершины должны быть начальными, чтобы захватить всё.
...
Рейтинг: 0 / 0
12.02.2014, 09:25
    #38558050
_мод
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
SashaMercuryвход:
1..7
(1,2) (1,3) (1,4) (1,5) (2,3) (2,4) (3,7) (3,6)

сортируем вершины по числу дуг
1 - 4 дуги
2 - 2 дуги
3 - 2 дуги
Берем 1, помечаем 2 3 4 5
Остается только 3
Ответ 1 3
алгоритм - перебор с возвратом
...
Рейтинг: 0 / 0
12.02.2014, 16:06
    #38558669
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
_мод,
Я сомневаюсь, что вас алгоритм верный.
Приведите пожалуйста обоснование.
Извините, если я ошибаюсь и критикую ваше решение
...
Рейтинг: 0 / 0
13.02.2014, 00:30
    #38559199
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
SashaMercury_мод,
Я сомневаюсь, что вас алгоритм верный.
Приведите пожалуйста обоснование.
Извините, если я ошибаюсь и критикую ваше решение

Да нет, наоборот, это рюх.
...
Рейтинг: 0 / 0
13.02.2014, 06:00
    #38559269
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
Что|кто такое|й"рюх" ?
...
Рейтинг: 0 / 0
13.02.2014, 09:34
    #38559370
_мод
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
SashaMercuryИзвините, если я ошибаюсь и критикую ваше решение
Перебор с возвратом всегда дает точное решение, но может выродится в полный перебор, если неудачно выбрать первый шаг.
Поэтому важно применить какую-нибудь эвристику.
...
Рейтинг: 0 / 0
13.02.2014, 09:54
    #38559389
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
Понимаю что нужно применять логику какую-то. Вот и спрашиваю какую
...
Рейтинг: 0 / 0
13.02.2014, 20:38
    #38560382
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
SashaMercuryЧто|кто такое|й"рюх" ?

Когда прорюхали. Правильная мысль.
...
Рейтинг: 0 / 0
14.02.2014, 01:50
    #38560547
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
где обоснование что данный перебор не выродится в полный перебор с возвратом ? дайте пожалуйста обоснование метода. Мне кажется что это ближе к транспортной задаче. Может быть можно к ней привести или рассмотреть как частный случай
...
Рейтинг: 0 / 0
14.02.2014, 15:58
    #38561213
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
_модSashaMercuryвход:
1..7
(1,2) (1,3) (1,4) (1,5) (2,3) (2,4) (3,7) (3,6)

сортируем вершины по числу дуг
1 - 4 дуги
2 - 2 дуги
3 - 2 дуги
Берем 1, помечаем 2 3 4 5
Остается только 3
Ответ 1 3
алгоритм - перебор с возвратом

Стало интересно просто. Я не совсем понял как этот алгоритм работает (предполагаю, что кроме полного перебора ещё и сбои может давать, если правильно понял принцип).
Итак, представим граф в виде креста из 5 точек (4 + 1 точка в середине). А теперь соединим его с другим таким же, что бы центр каждого креста стал одной из вершин другого. Представили себе получившуюся конструкцию из 8 точек?
Код: plaintext
1.
2.
3.
4.
5.
6.
  1  
  | 
2-3-4
  |
5-6-7
  |   
  8

Как по предложенному алгоритму стоит захватить такой граф? Правильный ответ разумеется за 2 хода, захватив точки 3 и 6
...
Рейтинг: 0 / 0
14.02.2014, 16:04
    #38561226
_мод
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
Програмёр
Код: plaintext
1.
2.
3.
4.
5.
6.
  1  
  | 
2-3-4
  |
5-6-7
  |   
  8

Как по предложенному алгоритму стоит захватить такой граф? Правильный ответ разумеется за 2 хода, захватив точки 3 и 6
Вершины 3 и 6 имеют по 4 дуги, осталные по 1 , т.е. варианта 2: 3 и 6 или 6 и 3
...
Рейтинг: 0 / 0
14.02.2014, 16:17
    #38561243
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват графа
_мод,

так... не совсем ещё понимаю )) Давайте так (если Вам не сложно конечно)... Как бы Вы захватили граф в виде сетки 4х4 (16 точек). Нумерация слева-направо, сверху-вниз.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Захват графа / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]