Факторизационные модели в рекомендательных системахromovpa
Факторизационные модели, модели разложения матриц для коллаборативной фильтрации в рекомендательных системах. В презентации рассматриваются теоретические аспекты и алгоритмы.
С доклада на спецсеминаре "Machine Learning & Information Retrieval" в Школе Анализа Данных Яндекса.
Факторизационные модели в рекомендательных системахromovpa
Факторизационные модели, модели разложения матриц для коллаборативной фильтрации в рекомендательных системах. В презентации рассматриваются теоретические аспекты и алгоритмы.
С доклада на спецсеминаре "Machine Learning & Information Retrieval" в Школе Анализа Данных Яндекса.
Материалы лекции курса "Динамика твёрдого тела и систем твёрдых тел". Построение уравнений движения систем со сферическими, универсальными и цилиндрическими шарнирами. Метод Й. Виттенбурга.
Презентация к лекции "Движение твёрдого тела в случае Эйлера" курса Динамика твёрдого тела и систем тел. Рассматриваются следующие вопросы и понятия: эллипсоид энергии и эллипсоид инерции, полодии, перманентное вращение, неустойчивость вращения вокруг оси со средним моментом инерции, определение угловых скоростей и углов Эйлера, регулярная прецессия.
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
ЛЕКЦИЯ 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Рассматривается метод отдельных тел (метод А. Ф. Верещагина) для построения уравнений движения систем тел со структурой дерева. Приводится пример программы моделирования движения цепи n тел на языке MATLAB.
Материалы лекции курса "Динамика твёрдого тела и систем твёрдых тел". Построение уравнений движения систем со сферическими, универсальными и цилиндрическими шарнирами. Метод Й. Виттенбурга.
Презентация к лекции "Движение твёрдого тела в случае Эйлера" курса Динамика твёрдого тела и систем тел. Рассматриваются следующие вопросы и понятия: эллипсоид энергии и эллипсоид инерции, полодии, перманентное вращение, неустойчивость вращения вокруг оси со средним моментом инерции, определение угловых скоростей и углов Эйлера, регулярная прецессия.
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
ЛЕКЦИЯ 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Рассматривается метод отдельных тел (метод А. Ф. Верещагина) для построения уравнений движения систем тел со структурой дерева. Приводится пример программы моделирования движения цепи n тел на языке MATLAB.
АЛГЕБРАИЧЕСКИЙ МЕТОД ОПРЕДЕЛЕНИЯ ПОЛНОГО МНОЖЕСТВА ПРОСТЫХ РАЗРЕЗОВ В ДВУХПОЛ...ITMO University
Рассматривается задача поиска простых разрезов в двухполюсных структурно-сложных сетях. В основу предлагаемого метода положена алгебраическая модель сети, базирующаяся на алгебре кубических комплексов. Это позволяет предложить эффективную с точки зрения трудоемкости процедуру определения полного множества простых разрезов.
Матрицы Адамара. Конструкции Сильвестра и Пэли. Коды на основе матриц Адамара.
Каскадные коды. Коды Форни: конструкция и простой алгоритм декодирования.
The document discusses concurrency and synchronization in distributed computing. It provides an overview of Petr Kuznetsov's research at Telecom ParisTech, which includes algorithms and models for distributed systems. Some key points discussed are:
- Concurrency is important due to multi-core processors and distributed systems being everywhere. However, synchronization between concurrent processes introduces challenges.
- Common synchronization problems include mutual exclusion, readers-writers problems, and producer-consumer problems. Tools for synchronization include semaphores, transactional memory, and non-blocking algorithms.
- Characterizing distributed computing models and determining what problems can be solved in a given model is an important area of research, with implications for distributed system design.
The document discusses weakly supervised learning from video and images using convolutional neural networks. It describes using scripts as weak supervision for learning actions from movies without explicit labeling. Methods are presented for jointly learning actors and actions from scripts, and for action learning with ordering constraints. The use of CNNs for object and action recognition in images is also summarized, including work on training CNNs using only image-level labels without bounding boxes.
This document discusses common C++ bugs and tools to find them. It describes various types of memory access bugs like buffer overflows on the stack, heap, and globals that can lead to crashes or security vulnerabilities. Threading bugs like data races, deadlocks, and race conditions on object destruction are also covered. Other undefined behaviors like initialization order issues, lack of sequence points, and integer overflows are explained. The document provides examples of each type of bug and emphasizes that undefined behavior does not guarantee a predictable result. It concludes with a quiz to find bugs in a code sample and links to additional reading materials.
AddressSanitizer, ThreadSanitizer, and MemorySanitizer are compiler-based tools that detect bugs like buffer overflows, data races, and uninitialized memory reads in C/C++ programs. AddressSanitizer instruments loads and stores to detect out-of-bounds memory accesses. ThreadSanitizer intercepts synchronization calls to detect data races between threads. MemorySanitizer tracks initialized and uninitialized memory using shadow memory to find uses of uninitialized values. The tools have found thousands of bugs with low overhead. Future work includes supporting more platforms and languages and detecting additional bug classes.
This document discusses common C++ bugs and tools to find them. It describes various types of memory access bugs like buffer overflows on the stack, heap, and globals that can lead to crashes or security vulnerabilities. Threading bugs like data races, deadlocks, and race conditions on object destruction are also covered. Other undefined behaviors like initialization order issues, lack of sequence points, and integer overflows are explained. The document provides examples of each type of bug and quizzes the reader to find bugs in a code sample. It recommends resources for further reading on debugging techniques and thread sanitizers that can detect races and data races.
This document provides examples and snippets of code for MapReduce, Pig, Hive, Spark, Shark, and Disco frameworks. It also includes two sections of references for related papers and Disco documentation. The examples demonstrate basic MapReduce jobs with drivers, mappers, and reducers in Java, Pig and Hive queries, Spark and Shark table operations, and a Disco MapReduce job.
1. с/к “Эффективные алгоритмы”
Лекция 2: Приближенные алгоритмы
А. Куликов
Computer Science клуб при ПОМИ
http://logic.pdmi.ras.ru/∼infclub/
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 1 / 15
2. План лекции
1 Кратчайшая надпоследовательность
Пример работы алгоритма
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 2 / 15
4. Приближенный алгоритм
Определение
Приближенный алгоритм A имеет относительную оценку точности
(relative performance guarantee) ������, если для любого входа I
выполняется неравенство
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 3 / 15
5. Приближенный алгоритм
Определение
Приближенный алгоритм A имеет относительную оценку точности
(relative performance guarantee) ������, если для любого входа I
выполняется неравенство
A(I )/OPT(I ) ≥ ������ для максимизационной задачи;
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 3 / 15
6. Приближенный алгоритм
Определение
Приближенный алгоритм A имеет относительную оценку точности
(relative performance guarantee) ������, если для любого входа I
выполняется неравенство
A(I )/OPT(I ) ≥ ������ для максимизационной задачи;
A(I )/OPT(I ) ≤ ������ для минимизационной задачи.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 3 / 15
7. Приближенный алгоритм
Определение
Приближенный алгоритм A имеет относительную оценку точности
(relative performance guarantee) ������, если для любого входа I
выполняется неравенство
A(I )/OPT(I ) ≥ ������ для максимизационной задачи;
A(I )/OPT(I ) ≤ ������ для минимизационной задачи.
Такие алгоритмы мы называем ������-приближенными.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 3 / 15
8. Приближенный алгоритм
Определение
Приближенный алгоритм A имеет относительную оценку точности
(relative performance guarantee) ������, если для любого входа I
выполняется неравенство
A(I )/OPT(I ) ≥ ������ для максимизационной задачи;
A(I )/OPT(I ) ≤ ������ для минимизационной задачи.
Такие алгоритмы мы называем ������-приближенными.
Замечание
Для оптимизационных задач ������ ≤ 1, для минимизационных — ������ ≥ 1.
Алгоритм тем лучше, чем ближе ������ к 1.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 3 / 15
9. План лекции
1 Кратчайшая надпоследовательность
Пример работы алгоритма
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 4 / 15
10. Задача о кратчайшей общей надпоследовательности
Определение
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 5 / 15
11. Задача о кратчайшей общей надпоследовательности
Определение
Дано множество строк {s1 , . . . , sn }.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 5 / 15
12. Задача о кратчайшей общей надпоследовательности
Определение
Дано множество строк {s1 , . . . , sn }.
Задача о кратчайшей общей надпоследовательности (shortest
common superstring) заключается в нахождении самой короткой
строки u, которая содержит в качестве подстроки каждую из si .
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 5 / 15
13. Задача о кратчайшей общей надпоследовательности
Определение
Дано множество строк {s1 , . . . , sn }.
Задача о кратчайшей общей надпоследовательности (shortest
common superstring) заключается в нахождении самой короткой
строки u, которая содержит в качестве подстроки каждую из si .
Факт
Задача является NP-трудной.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 5 / 15
14. Задача о покрытии множествами
Определение
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 6 / 15
15. Задача о покрытии множествами
Определение
Дано множество U = {u1 , . . . , un } и семейство его подмножеств
ℱ = {S1 , . . . , Sk }, Si ⊆ U.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 6 / 15
16. Задача о покрытии множествами
Определение
Дано множество U = {u1 , . . . , un } и семейство его подмножеств
ℱ = {S1 , . . . , Sk }, Si ⊆ U.
⋃︀
В сумме все подмножества покрывают U: U = S∈ℱ S.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 6 / 15
17. Задача о покрытии множествами
Определение
Дано множество U = {u1 , . . . , un } и семейство его подмножеств
ℱ = {S1 , . . . , Sk }, Si ⊆ U.
⋃︀
В сумме все подмножества покрывают U: U = S∈ℱ S.
Каждому подмножеству Si сопоставлена некоторая
неотрицательная стоимость pi ≥ 0.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 6 / 15
18. Задача о покрытии множествами
Определение
Дано множество U = {u1 , . . . , un } и семейство его подмножеств
ℱ = {S1 , . . . , Sk }, Si ⊆ U.
⋃︀
В сумме все подмножества покрывают U: U = S∈ℱ S.
Каждому подмножеству Si сопоставлена некоторая
неотрицательная стоимость pi ≥ 0.
Задача о покрытии множествами (set cover problem) заключается
в нахождении набора подмножеств, покрывающего все множество
U и имеющего минимальный возможный вес.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 6 / 15
19. Задача о покрытии множествами
Определение
Дано множество U = {u1 , . . . , un } и семейство его подмножеств
ℱ = {S1 , . . . , Sk }, Si ⊆ U.
⋃︀
В сумме все подмножества покрывают U: U = S∈ℱ S.
Каждому подмножеству Si сопоставлена некоторая
неотрицательная стоимость pi ≥ 0.
Задача о покрытии множествами (set cover problem) заключается
в нахождении набора подмножеств, покрывающего все множество
U и имеющего минимальный возможный вес.
Теорема
Существует Hn -приближенный алгоритм для задачи о покрытии
множествами.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 6 / 15
20. Сведение к задаче о покрытии множествами
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 7 / 15
21. Сведение к задаче о покрытии множествами
НУО, среди строк нет подстрок друг друга
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 7 / 15
22. Сведение к задаче о покрытии множествами
НУО, среди строк нет подстрок друг друга
для всех i, j, k, для которых суффикс строки si длины k совпадает
с префиксом строки sj длины k, построим строку
wijk = si · sj [k + 1..|sj |]:
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 7 / 15
23. Сведение к задаче о покрытии множествами
НУО, среди строк нет подстрок друг друга
для всех i, j, k, для которых суффикс строки si длины k совпадает
с префиксом строки sj длины k, построим строку
wijk = si · sj [k + 1..|sj |]:
s6 = abcab bbca, s2 = bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Y Z
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 7 / 15
24. Сведение к задаче о покрытии множествами
НУО, среди строк нет подстрок друг друга
для всех i, j, k, для которых суффикс строки si длины k совпадает
с префиксом строки sj длины k, построим строку
wijk = si · sj [k + 1..|sj |]:
s6 = abcab bbca, s2 = bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Y Z
w6,2,4 = abcab bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Z
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 7 / 15
25. Сведение к задаче о покрытии множествами
НУО, среди строк нет подстрок друг друга
для всех i, j, k, для которых суффикс строки si длины k совпадает
с префиксом строки sj длины k, построим строку
wijk = si · sj [k + 1..|sj |]:
s6 = abcab bbca, s2 = bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Y Z
w6,2,4 = abcab bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Z
для любой строки s определим
set(s) = {si |si — подстрока s}
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 7 / 15
26. Сведение к задаче о покрытии множествами
НУО, среди строк нет подстрок друг друга
для всех i, j, k, для которых суффикс строки si длины k совпадает
с префиксом строки sj длины k, построим строку
wijk = si · sj [k + 1..|sj |]:
s6 = abcab bbca, s2 = bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Y Z
w6,2,4 = abcab bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Z
для любой строки s определим
set(s) = {si |si — подстрока s}
стоимость множества set(s) положим равной длине строки s
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 7 / 15
27. Сведение к задаче о покрытии множествами
НУО, среди строк нет подстрок друг друга
для всех i, j, k, для которых суффикс строки si длины k совпадает
с префиксом строки sj длины k, построим строку
wijk = si · sj [k + 1..|sj |]:
s6 = abcab bbca, s2 = bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Y Z
w6,2,4 = abcab bbca aaccbcac
⏟ ⏞ ⏟ ⏞ ⏟ ⏞
X Y Z
для любой строки s определим
set(s) = {si |si — подстрока s}
стоимость множества set(s) положим равной длине строки s
вход задачи о покрытии множествами: U = {s1 , . . . , sn },
ℱ = {set(si )} ∪ {set(wijk )}
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 7 / 15
28. Сведение к задаче о покрытии множествами
(продолжение)
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 8 / 15
29. Сведение к задаче о покрытии множествами
(продолжение)
итак, алгоритм возвращает нам некоторые множества
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 8 / 15
30. Сведение к задаче о покрытии множествами
(продолжение)
итак, алгоритм возвращает нам некоторые множества
мы сливаем соответствующие им строки и получаем строку,
содержащую все si
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 8 / 15
31. Сведение к задаче о покрытии множествами
(продолжение)
итак, алгоритм возвращает нам некоторые множества
мы сливаем соответствующие им строки и получаем строку,
содержащую все si
осталось показать, что построенный нами алгоритм является
2Hn -приближенным
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 8 / 15
32. Сведение к задаче о покрытии множествами
(продолжение)
итак, алгоритм возвращает нам некоторые множества
мы сливаем соответствующие им строки и получаем строку,
содержащую все si
осталось показать, что построенный нами алгоритм является
2Hn -приближенным
для этого достаточно доказать приведенную ниже лемму
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 8 / 15
33. Сведение к задаче о покрытии множествами
(продолжение)
итак, алгоритм возвращает нам некоторые множества
мы сливаем соответствующие им строки и получаем строку,
содержащую все si
осталось показать, что построенный нами алгоритм является
2Hn -приближенным
для этого достаточно доказать приведенную ниже лемму
Лемма
Стоимость оптимального решения полученной задачи о покрытии
множествами не более чем в два раза хуже длины решения исходной
задачи о кратчайшей надполедовательности.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 8 / 15
35. Доказательство леммы
Доказательство
перенумеруем строки si в порядке их вхождения в (какую-нибудь)
оптимальную строку s
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 9 / 15
36. Доказательство леммы
Доказательство
перенумеруем строки si в порядке их вхождения в (какую-нибудь)
оптимальную строку s
ясно, что вхождение каждой строки начинается и заканчивается
строго позже предыдущей
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 9 / 15
37. Доказательство леммы
Доказательство
перенумеруем строки si в порядке их вхождения в (какую-нибудь)
оптимальную строку s
ясно, что вхождение каждой строки начинается и заканчивается
строго позже предыдущей
разделим строки на блоки следующим образом: в первый блок
берем s1 и все si , первые вхождения которых начинаются до конца
первого вхождения s1
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 9 / 15
38. Доказательство леммы
Доказательство
перенумеруем строки si в порядке их вхождения в (какую-нибудь)
оптимальную строку s
ясно, что вхождение каждой строки начинается и заканчивается
строго позже предыдущей
разделим строки на блоки следующим образом: в первый блок
берем s1 и все si , первые вхождения которых начинаются до конца
первого вхождения s1
сделаем из первой и последней строки этого блока общую
строку — получим строку w1,j,k
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 9 / 15
39. Доказательство леммы
Доказательство
перенумеруем строки si в порядке их вхождения в (какую-нибудь)
оптимальную строку s
ясно, что вхождение каждой строки начинается и заканчивается
строго позже предыдущей
разделим строки на блоки следующим образом: в первый блок
берем s1 и все si , первые вхождения которых начинаются до конца
первого вхождения s1
сделаем из первой и последней строки этого блока общую
строку — получим строку w1,j,k
следующий блок строим, начиная с первой строки, не попавшей в
первый блок, и т.д.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 9 / 15
40. Доказательство леммы
Доказательство
перенумеруем строки si в порядке их вхождения в (какую-нибудь)
оптимальную строку s
ясно, что вхождение каждой строки начинается и заканчивается
строго позже предыдущей
разделим строки на блоки следующим образом: в первый блок
берем s1 и все si , первые вхождения которых начинаются до конца
первого вхождения s1
сделаем из первой и последней строки этого блока общую
строку — получим строку w1,j,k
следующий блок строим, начиная с первой строки, не попавшей в
первый блок, и т.д.
в итоге, получаем некоторое решение задачи о покрытии
множествами
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 9 / 15
42. Доказательство леммы (продолжение)
Доказательство
достаточно показать, что стоимость данного конкретного решения
не превосходит удвоенной длины s
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 10 / 15
43. Доказательство леммы (продолжение)
Доказательство
достаточно показать, что стоимость данного конкретного решения
не превосходит удвоенной длины s
это верно, поскольку каждый символ строки s входит не более
чем в два блока
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 10 / 15
44. Доказательство леммы (продолжение)
Доказательство
достаточно показать, что стоимость данного конкретного решения
не превосходит удвоенной длины s
это верно, поскольку каждый символ строки s входит не более
чем в два блока
Упражнение
Докажите последнее утверждение.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 10 / 15
45. План лекции
1 Кратчайшая надпоследовательность
Пример работы алгоритма
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 11 / 15
47. Пример работы алгоритма
допустим, на вход даны следующие строки:
s1 = abc, s2 = bac, s3 = bcd , s4 = cde
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 12 / 15
48. Пример работы алгоритма
допустим, на вход даны следующие строки:
s1 = abc, s2 = bac, s3 = bcd , s4 = cde
вычисляем wijk :
w132 = abcd , w141 = abcde, w241 = bacde, w342 = bcde
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 12 / 15
51. Пример работы алгоритма
итак, входными данными задачи о покрытии множествами
являются универсальное множество U = {si }i∈[1..4] , множество его
подмножеств ℱ = {Si }i∈[1..8] , где каждому подмножеству Si
сопоставлена стоимость pi
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 13 / 15
52. Пример работы алгоритма
итак, входными данными задачи о покрытии множествами
являются универсальное множество U = {si }i∈[1..4] , множество его
подмножеств ℱ = {Si }i∈[1..8] , где каждому подмножеству Si
сопоставлена стоимость pi
алгоритм последовательно добавляет в покрытие множества S6 и
S2
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 13 / 15
53. Пример работы алгоритма
итак, входными данными задачи о покрытии множествами
являются универсальное множество U = {si }i∈[1..4] , множество его
подмножеств ℱ = {Si }i∈[1..8] , где каждому подмножеству Si
сопоставлена стоимость pi
алгоритм последовательно добавляет в покрытие множества S6 и
S2
поскольку S6 = set(w141 ) и S2 = set(s2 ), выходом нашего
алгоритма будет конкатенация строк w141 и s2 , то есть строка
abcdebac, которая в данном конкретном примере является
оптимальной
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 13 / 15
54. Что мы узнали за сегодня?
Что мы узнали за сегодня?
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 14 / 15
55. Что мы узнали за сегодня?
Что мы узнали за сегодня?
2Hn -приближенный алгоритм для задачи о кратчайшей
надпоследовательности.
А. Куликов (CS клуб при ПОМИ) 2. Приближенные алгоритмы 14 / 15