powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Захват графа
24 сообщений из 24, страница 1 из 1
Захват графа
    #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
Захват графа
    #38552816
maxkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

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

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

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

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

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

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

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

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

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

Скорее я неправильно понял задачу.
я написал как понять какие вершины будут захвачены при заданных начальных.
А у тебя наоборот -- надо найти, какие вершины должны быть начальными, чтобы захватить всё.
...
Рейтинг: 0 / 0
Захват графа
    #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
Захват графа
    #38558669
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,
Я сомневаюсь, что вас алгоритм верный.
Приведите пожалуйста обоснование.
Извините, если я ошибаюсь и критикую ваше решение
...
Рейтинг: 0 / 0
Захват графа
    #38559199
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury_мод,
Я сомневаюсь, что вас алгоритм верный.
Приведите пожалуйста обоснование.
Извините, если я ошибаюсь и критикую ваше решение

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

Когда прорюхали. Правильная мысль.
...
Рейтинг: 0 / 0
Захват графа
    #38560547
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где обоснование что данный перебор не выродится в полный перебор с возвратом ? дайте пожалуйста обоснование метода. Мне кажется что это ближе к транспортной задаче. Может быть можно к ней привести или рассмотреть как частный случай
...
Рейтинг: 0 / 0
Захват графа
    #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
Захват графа
    #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
Захват графа
    #38561243
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

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


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