Задача про покриття множини є класичним питанням інформатики і теорії складності. Ця задача узагальнює NP-повну задачу про вершинне покриття (і тому є NP-складною). Попри те, що задача про вершинне покриття подібна до цієї, підхід, використаний у наближеному алгоритмі, тут не працює. Замість цього ми розглянемо жадібний алгоритм. Отриманий за ним розв'язок буде гіршим від оптимального в логарифмічне число разів. Із зростанням розміру задачі якість розв'язку погіршується, але все ж досить повільно, тому такий підхід можна вважати корисним.
Формулювання задачі
Вхідними даними задачі про покриття множини є скінченна множина і сімейство її підмножин. Покриттям називають сімейство найменшої потужності, об'єднанням яких є . В разі постановки питання про дозвіл на вхід подається пара і ціле число ; питанням є існування покривної множини з потужністю (або менше).
Приклад
Прикладом задачі про покриття множини є така задача: уявімо собі, що для виконання якогось завдання потрібен певний набір навичок . Також є група людей, кожен з яких володіє деякими з цих навичок. Необхідно сформувати найменшу підгрупу, достатню для виконання завдання, тобто таку, що включає носіїв усіх необхідних навичок.
Методи розв'язування
Жадібний наближений алгоритм
Жадібний алгоритм вибирає множини керуючись таким правилом: на кожному етапі вибирається множина, що покриває найбільше число ще не покритих елементів.
Greedy-Set-Cover(U,F)
, де — задана множина всіх елементів, — сімейство підмножин
while
do
- вибираємо з найбільшим
return
Можна показати, що цей алгоритм працює з точністю , де — потужність найбільшої множини, а — сума перших членів гармонійного ряду.
Іншими словами, алгоритм знаходить покриття, розмір якого не більше ніж в разів перевищує розмір мінімального покриття.
Існує стандартний приклад, на якому жадібний алгоритм працює з точністю .
Універсуум складається з елементів. Набір множин складається з попарно не перетинних множин , потужності яких відповідно. Також є дві неперетинних підмножини , кожна з яких містить половину елементів з кожного . На такому наборі жадібний алгоритм вибирає множини , тоді як оптимальним розв'язком є вибір множин і . Приклад таких вхідних даних можна побачити на малюнку праворуч.
Генетичний алгоритм
Генетичний алгоритм являє собою евристичний метод випадкового пошуку, заснований на принципі імітації еволюції біологічної популяції.
У загальному випадку в процесі роботи алгоритму відбувається послідовна зміна популяцій, кожна з яких є сімейством покриттів, званих особинами популяції. Покриття початкової популяції будуються випадковим чином. Найпоширенішою є стаціонарна схема генетичного алгоритму, в якій чергова популяція відрізняється від попередньої лише однією або двома новими особинами. Під час побудови нової особини з поточної популяції з урахуванням ваг покриттів вибирається «батьківська» пара особин , і на їх основі у процедурі кросинговеру (випадково або детерміновано) формується певний набір покривних множин . Далі піддається мутації, після чого з нього будується особина, яка заміняє в новій популяції покриття з найбільшою вагою. Оновлення популяції виконується деяке (задане) число разів, і результатом роботи алгоритму є найкраще зі знайдених покриттів.
Точний розв'язок
Часто задача про покриття множини формулюється як задача цілочисельного програмування:
Потрібно знайти .
де — матриця, причому = 1, якщо і = 0 в іншому випадку; позначає — вектор з одиниць; ; — вектор, де , якщо входить у покриття, інакше .
Точний розв'язок можна отримати за поліноміальний час, у випадку, коли матриця цілком унімодулярна. Сюди можна віднести і задачу про вершинне покриття на двочастковому графі та дереві. Зокрема, коли кожен стовпець матриці містить рівно дві одиниці, задачу можна розглядати як задачу реберного покриття графу, яка ефективно зводиться до пошуку максимального парування. На класах задач, де або обмежені константою, задача за поліноміальний час розв'язується методами повного перебору.
Схожі задачі
Примітки
- А. В. Еремеев, Л. А. Заозерская, А. А. Колоколов. ЗАДАЧА О ПОКРЫТИИ МНОЖЕСТВА: СЛОЖНОСТЬ, АЛГОРИТМЫ, ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ // ДИСКРЕТНЫЙ АНАЛИЗ И ИССЛЕДОВАНИЕ ОПЕРАЦИЙ. — 2000. — Т. 7, № 2 (Июль—декабрь). — С. 22-46. з джерела 25 січня 2021. Процитовано 23 грудня 2020.
Література
- А. В. Еремеев, Л. А. Заозерская, А. А. Колоколов. Задача о покрытии множества: сложность, алгоритмы, экспериментальные исследования. Дискретный анализ и исследование операций. Сер. 2. 2000. Т. 7, N 2. С.22-46.
- Томас Х. Кормен и др. Глава 16. Жадные алгоритмы // Алгоритмы: построение и анализ = INTRODUCTION TO ALGORITHMS. — 1-е изд. — М. : Московского центра непрерывного математического образования, 2001. — С. 889-892. — .
Посилання
- Benchmarks with Hidden Optimum Solutions for Set Covering, Set Packing and Determination Winner [ 25 липня 2017 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zadacha pro pokrittya mnozhini ye klasichnim pitannyam informatiki i teoriyi skladnosti Cya zadacha uzagalnyuye NP povnu zadachu pro vershinne pokrittya i tomu ye NP skladnoyu Popri te sho zadacha pro vershinne pokrittya podibna do ciyeyi pidhid vikoristanij u nablizhenomu algoritmi tut ne pracyuye Zamist cogo mi rozglyanemo zhadibnij algoritm Otrimanij za nim rozv yazok bude girshim vid optimalnogo v logarifmichne chislo raziv Iz zrostannyam rozmiru zadachi yakist rozv yazku pogirshuyetsya ale vse zh dosit povilno tomu takij pidhid mozhna vvazhati korisnim Formulyuvannya zadachiVhidnimi danimi zadachi pro pokrittya mnozhini ye skinchenna mnozhina U displaystyle mathcal U i simejstvo S displaystyle mathcal S yiyi pidmnozhin Pokrittyam nazivayut simejstvo C S displaystyle mathcal C subseteq mathcal S najmenshoyi potuzhnosti ob yednannyam yakih ye U displaystyle mathcal U V razi postanovki pitannya pro dozvil na vhid podayetsya para U S displaystyle mathcal U mathcal S i cile chislo k displaystyle k pitannyam ye isnuvannya pokrivnoyi mnozhini z potuzhnistyu k displaystyle k abo menshe Priklad Prikladom zadachi pro pokrittya mnozhini ye taka zadacha uyavimo sobi sho dlya vikonannya yakogos zavdannya potriben pevnij nabir navichok S displaystyle S Takozh ye grupa lyudej kozhen z yakih volodiye deyakimi z cih navichok Neobhidno sformuvati najmenshu pidgrupu dostatnyu dlya vikonannya zavdannya tobto taku sho vklyuchaye nosiyiv usih neobhidnih navichok Metodi rozv yazuvannyaZhadibnij nablizhenij algoritm Zhadibnij algoritm vibiraye mnozhini keruyuchis takim pravilom na kozhnomu etapi vibirayetsya mnozhina sho pokrivaye najbilshe chislo she ne pokritih elementiv Greedy Set Cover U F de U displaystyle U zadana mnozhina vsih elementiv F displaystyle F simejstvo pidmnozhin U displaystyle U X U displaystyle X leftarrow U C displaystyle C leftarrow varnothing while X displaystyle X not varnothing do vibirayemo S F displaystyle S in F z najbilshim X S displaystyle mid X cap S mid X X S displaystyle X leftarrow X setminus S C C S displaystyle C leftarrow C cup S return C displaystyle C Mozhna pokazati sho cej algoritm pracyuye z tochnistyu O H s displaystyle O H s de s displaystyle s potuzhnist najbilshoyi mnozhini a H n displaystyle H n suma pershih n displaystyle n chleniv garmonijnogo ryadu H n k 1n1k ln n 1 displaystyle H n sum k 1 n frac 1 k leq ln n 1 Inshimi slovami algoritm znahodit pokrittya rozmir yakogo ne bilshe nizh vH s displaystyle H s raziv perevishuye rozmir minimalnogo pokrittya Sproshenij priklad roboti zhadibnogo algoritmu dlya k 3 Isnuye standartnij priklad na yakomu zhadibnij algoritm pracyuye z tochnistyu log2 n 2 displaystyle log 2 n 2 Universuum skladayetsya z n 2 k 1 2 displaystyle n 2 k 1 2 elementiv Nabir mnozhin skladayetsya z k displaystyle k poparno ne peretinnih mnozhin S1 Sk displaystyle S 1 ldots S k potuzhnosti yakih 2 4 8 2k displaystyle 2 4 8 ldots 2 k vidpovidno Takozh ye dvi neperetinnih pidmnozhini T0 T1 displaystyle T 0 T 1 kozhna z yakih mistit polovinu elementiv z kozhnogo Si displaystyle S i Na takomu nabori zhadibnij algoritm vibiraye mnozhini Sk S1 displaystyle S k ldots S 1 todi yak optimalnim rozv yazkom ye vibir mnozhin T0 displaystyle T 0 i T1 displaystyle T 1 Priklad takih vhidnih danih k 3 displaystyle k 3 mozhna pobachiti na malyunku pravoruch Genetichnij algoritm Genetichnij algoritm yavlyaye soboyu evristichnij metod vipadkovogo poshuku zasnovanij na principi imitaciyi evolyuciyi biologichnoyi populyaciyi U zagalnomu vipadku v procesi roboti algoritmu vidbuvayetsya poslidovna zmina populyacij kozhna z yakih ye simejstvom pokrittiv zvanih osobinami populyaciyi Pokrittya pochatkovoyi populyaciyi buduyutsya vipadkovim chinom Najposhirenishoyu ye stacionarna shema genetichnogo algoritmu v yakij chergova populyaciya vidriznyayetsya vid poperednoyi lishe odniyeyu abo dvoma novimi osobinami Pid chas pobudovi novoyi osobini z potochnoyi populyaciyi z urahuvannyam vag pokrittiv vibirayetsya batkivska para osobin J J displaystyle J prime J i na yih osnovi u proceduri krosingoveru vipadkovo abo determinovano formuyetsya pevnij nabir pokrivnih mnozhin Jx displaystyle J x Dali piddayetsya mutaciyi pislya chogo z nogo buduyetsya osobina yaka zaminyaye v novij populyaciyi pokrittya z najbilshoyu vagoyu Onovlennya populyaciyi vikonuyetsya deyake zadane chislo raziv i rezultatom roboti algoritmu ye najkrashe zi znajdenih pokrittiv Tochnij rozv yazok Chasto zadacha pro pokrittya mnozhini formulyuyetsya yak zadacha cilochiselnogo programuvannya Potribno znajti f c A min c x Ax e x 0 1 n displaystyle f c A min c x Ax geq e x in 0 1 n de A displaystyle A m n displaystyle m times n matricya prichomu aij displaystyle a ij 1 yaksho i Sj displaystyle i in S j i aij displaystyle a ij 0 v inshomu vipadku e displaystyle e poznachaye m displaystyle m vektor z odinic c c1 c2 cn T displaystyle c c 1 c 2 dots c n T x x1 x2 xn T displaystyle x x 1 x 2 dots x n T vektor de xj 1 displaystyle x j 1 yaksho Sj displaystyle S j vhodit u pokrittya inakshe xj 0 displaystyle x j 0 Tochnij rozv yazok mozhna otrimati za polinomialnij chas u vipadku koli matricya A displaystyle A cilkom unimodulyarna Syudi mozhna vidnesti i zadachu pro vershinne pokrittya na dvochastkovomu grafi ta derevi Zokrema koli kozhen stovpec matrici A displaystyle A mistit rivno dvi odinici zadachu mozhna rozglyadati yak zadachu rebernogo pokrittya grafu yaka efektivno zvoditsya do poshuku maksimalnogo paruvannya Na klasah zadach de n displaystyle n abo m displaystyle m obmezheni konstantoyu zadacha za polinomialnij chas rozv yazuyetsya metodami povnogo pereboru Shozhi zadachiZadacha pro vershinne pokrittya Zadacha pro priznachennya najmenshogo chisla vikonavciv Zadacha pro najmenshe koloPrimitkiA V Eremeev L A Zaozerskaya A A Kolokolov ZADAChA O POKRYTII MNOZhESTVA SLOZhNOST ALGORITMY EKSPERIMENTALNYE ISSLEDOVANIYa DISKRETNYJ ANALIZ I ISSLEDOVANIE OPERACIJ 2000 T 7 2 Iyul dekabr S 22 46 z dzherela 25 sichnya 2021 Procitovano 23 grudnya 2020 LiteraturaA V Eremeev L A Zaozerskaya A A Kolokolov Zadacha o pokrytii mnozhestva slozhnost algoritmy eksperimentalnye issledovaniya Diskretnyj analiz i issledovanie operacij Ser 2 2000 T 7 N 2 S 22 46 Tomas H Kormen i dr Glava 16 Zhadnye algoritmy Algoritmy postroenie i analiz INTRODUCTION TO ALGORITHMS 1 e izd M Moskovskogo centra nepreryvnogo matematicheskogo obrazovaniya 2001 S 889 892 ISBN 5 900916 37 5 PosilannyaBenchmarks with Hidden Optimum Solutions for Set Covering Set Packing and Determination Winner 25 lipnya 2017 u Wayback Machine