RUS  ENG
Полная версия
ЖУРНАЛЫ // Вестник Санкт-Петербургского университета. Серия 10. Прикладная математика. Информатика. Процессы управления // Архив

Вестн. С.-Петербург. ун-та. Сер. 10. Прикл. матем. Информ. Проц. упр., 2020, том 16, выпуск 1, страницы 50–61 (Mi vspui438)

Информатика

Разделяемый алгоритм перебора разбиений конечного множества на подмножества заданной мощности

А. М. Ковшов

Санкт-Петербургский государственный университет, Российская Федерация, 199034, Санкт-Петербург, Университетская наб., 7-9

Аннотация: Представлен итерационный алгоритм перебора разбиений конечного множества, состоящего из различимых элементов, на подмножества заданной мощности. Мощности некоторых подмножеств могут совпадать. Весь алгоритм состоит из двух независимых алгоритмов. Первый алгоритм определяет, в подмножество какой мощности при разбиении попадет каждый элемент исходного множества. Для этого подмножества одинаковой мощности объединяются в составные подмножества. Производится распределение элементов исходного множества по составным подмножествам. Разбиения описываются индексным массивом, указывающим, в какое составное подмножество распределяется каждый элемент исходного множества. Перебор разбиений исходного множества по составным подмножествам сводится к перебору всех перестановок индексов в массиве. Второй алгоритм распределяет элементы внутри каждого составного подмножества по равномощным подмножествам. При этом для каждого составного подмножества создается свой индексный массив, описывающий, в какое подмножество попадает каждый элемент составного подмножества. Перебор всех разбиений составного подмножества по равномощным подмножествам сводится к частичному перебору перестановок индексов. Перестановки всех индексных массивов перебираются в лексикографическом порядке. Такое построение алгоритма позволяет разбить весь перебор на независимые части и использовать параллельные вычисления. Рассмотрен пример, показывающий состоятельность алгоритма и ускорение получения результата при применении параллельных вычислений.

Ключевые слова: параллельные вычисления, алгоритмы перебора, разделяемые алгоритмы.

УДК: 519.163

MSC: 05A18

Поступила: 2 февраля 2020 г.
Принята к печати: 13 февраля 2020 г.

DOI: 10.21638/11701/spbu10.2020.105



© МИАН, 2024