Участник:Щекалев Алексей Андреевич/Поиск минимального покрытия булевой матрицы

Материал из Алговики
Версия от 23:01, 23 октября 2017; Щекалев Алексей Андреевич (обсуждение | вклад) (Новая страница: «= Свойства и структура алгоритма = == Общее описание алгоритма == Работа посвящена исследо…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

1 Свойства и структура алгоритма

1.1 Общее описание алгоритма

Работа посвящена исследованию и реализации генетического алгоритма поиска минимального покрытия булевой матрицы. В общем случае алгоритмы поиска минимального покрытия имеют экспоненциальную сложность. Поэтому они малопригодны на практике для задач большой размерности. Одним из способов решения данной проблемы является переход от поиска точного решения к приближенному. Например, генетический алгоритм позволяет найти покрытие близкое к минимальному. И поскольку результат работы такого алгоритма зависит от начального приближения, а оно выбирается произвольно, то для увеличения точности решения, генетический алгоритм запускают многократно. Чтобы увеличить скорость работы будем запускать генетический алгоритм из различных начальных приближений параллельно.

1.2 Математическое описание алгоритма

Пусть V = {v_1,v_2,...,v_m}, E = {e_1,e_2,...,e_n} два конечных множества и P (x, y) некоторый предикат заданный на множестве V \times E . Обычно множество E – называют покрывающим, а множество V – покрываемым. Если P (v_i,e_j) = 1, то говорят, что e_j покрывает v_i, а v_i покрывается e_j. Пусть M \subseteq E. Обозначим через \mu_M(v_i) число всех элементов e_i из M , которые покрывают элемент v_i, т.е. \mu_M(v_i) = |\{e_j \in M|P(v_i,e_j) = 1\}|.

Определение 1. Множество M называется покрытием множества V, если \forall v_i \in V: \mu_M(v_i) \ge 1 Другими словами каждый элемент множества V покрывается по крайней мере одним элементом из M. Определение 2. Покрытие называется неприводимым, если при удалении любого его элемента данное покрытие перестает быть покрытием.

Пусть каждому элементу e_j из множества E приписан вес p(e_j) \gt 0 . Весом покрытия называется число P(M) = p(e_j). Задача нахождения покрытия минимального веса называется задачей о покрытии.

1.3 Вычислительное ядро алгоритма

1.4 Макроструктура алгоритма

1.5 Схема реализации последовательного алгоритма

1.6 Последовательная сложность алгоритма

1.7 Информационный граф

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

1.10 Свойства алгоритма

2 Программная реализация алгоритма

2.1 Особенности реализации последовательного алгоритма

2.2 Локальность данных и вычислений

2.3 Масштабируемость алгоритма и его реализации

2.4 Динамические характеристики и эффективность реализации алгоритма

2.5 Выводы для классов архитектур

2.6 Существующие реализации алгоритма

3 Литература