Научная статья на тему 'Обобщенный алгоритм суммирования перечислителей в задачах дискретной оптимизации в контексте управления мастер-данными'

Обобщенный алгоритм суммирования перечислителей в задачах дискретной оптимизации в контексте управления мастер-данными Текст научной статьи по специальности «Математика»

CC BY
7
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
субоптимальные задачи дискретной оптимизации / перечислители / граница Парето / управление мастер-данными / мультидоменные алгоритмы / enumerators / suboptimal problems / discrete optimization / Pareto boundary / master data management / multi-domain algorithms

Аннотация научной статьи по математике, автор научной работы — Кузнецов С.В., Кознов Д.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Кузнецов С.В., Кознов Д.В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Summation of the enumerators in the discrete optimization problems

The publication presents an approach to the use of discrete optimization algorithms, in particular, the search for suboptimal solutions. The theory of enumerators, proposed by the famous Leningrad mathematician I.V. Romanovsky, and the operation of their summation, which is proposed to be used to create multi-domain suboptimal algorithms, are considered. The paper presents an efficient algorithm to sum enumerators based on the recalculation of the Pareto boundary. Motivations for using the proposed algorithm within the framework of a well–known task in the field of Master Data Management are given.

Текст научной работы на тему «Обобщенный алгоритм суммирования перечислителей в задачах дискретной оптимизации в контексте управления мастер-данными»

ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ И

ПРОЦЕССЫ УПРАВЛЕНИЯ N. 1, 2024 Электронный журнал, рег. Эл № ФС77-39410 от 15.04.2010 ISSN 1817-2172

http://diffjournal.spbu.ru/ e-mail: _ jodiff@mail.ru

Информационные системы и процессы

Обобщенный алгоритм суммирования перечислителей в задачах дискретной оптимизации в контексте управления мастер-

данными

Кузнецов С.В. и*, Кознов Д.В. 2**

1ООО «Юнидата»

2 u ^

Санкт-Петербургский государственный университет

*

sergey. kouznetsov@ gmail.com

**

d. koznov@ spbu. ru

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

Ключевые слова: субоптимальные задачи дискретной оптимизации, перечислители, граница Парето, управление мастер-данными, мультидоменные алгоритмы

1. Введение

В различных прикладных областях возникают задачи дискретной оптимизации, где требуется найти не только оптимальное решение, но и следующие к лучших решений, то есть решить субоптимальную задачу [1,2]. Отдельно стоит выделить активно развивающиеся отрасли биоинформатики, информационных технологий, и искусственного интеллекта, где приходится

оперировать большими объемами данных из различных источников [3,4 ]. Для таких задач часто используют прием масштабирования субоптимальных задач, который понижает сложность алгоритмов, позволяя составлять искомые решения из решений более простых задач (меньших по количеству допустимых решений, числу параметров оптимизации, объёму обрабатываемых данных и т.д.).

В [1,5] введено понятие перечислителей, операций с ними, а также показано как они могут использоваться для масштабирования. Одной из ключевых операций при этом является суммирование перечислителей, для которой в [4] представлен алгоритм для случая двух перечислителей. В прикладных задачах, использующих большой набор анализируемых данных, операция суммирования перечислителей позволяет объединять решения задач на разных доменах данных в искомое субоптимальное решение исходной задачи. Однако для этого требуется эффективная реализация суммирования большого числа (десятки и сотни) перечислителей доменов. Анализ подходов и поиск эффективной реализации операции суммирования перечислителей для большого числа слагаемых является целью данной работы.

Статья структурирована следующим образом - рассмотрены алгоритмы попарного суммирования произвольного числа перечислителей, приведены оценки их алгоритмической сложности и потребления памяти (раздел 2). Далее предложен обобщенный алгоритм перебора решений субоптимальной задачи суммы п при п > 2 перечислителей на основе многомерной границы Парето, а также дана оценка сложности и потребления памяти (раздел 3). В заключении приведено сравнение представленных алгоритмов для разного количества слагаемых и значений субоптимальности.

2. Суммирование перечислителей субоптимальных задач

В данном разделе представлено два алгоритма суммирования перечислителей решений субоптимальных задач дискретной оптимизации для п > 2 на основе попарного сложения и изложена мотивация для поиска более эффективного алгоритма.

Пусть имеется п > 2 и набор задач дискретной оптимизации в определениях [4], где

} Е 1 • п. Тогда для любого такого } и соответствующего обозначим через ку значение

субоптимальности задачи . Для задачи БорТБит, полученной суммированием задач ,

значение субоптимальности определим как к = П]=1..п^].

При суммировании п задач оказывается важным порядок суммирования задач - от

этого порядка зависит сложность алгоритма вычисления итогового перечислителя для БорТБит.

Алгоритм 1. Попарное суммирование. Рассмотрим следующий порядок сложения п субоптимальных задач дискретной оптимизации.

БоргБит = ^=1Оорг[ = (...(Борг1+ Ворг2) + Воргъ ) + ■■■+ Ооргп)...).

Пусть соответствующим образом складываются и перечислители этих задач.

Замечание. Если решения субоптимальной задачи Бор11, в большинстве своем, меньше, чем ОорЬ2, то средняя сложность алгоритма перебора решений задачи Бор11 + ОорЬ2 из [4] будет ниже, чем задачи ОорЬ2 + ОорЬ1. При этом асимптотическая сложность останется той же. Это замечание вытекает из того, что в этом случае условие строки 13 алгоритма суммирования (см. листинг 1 в [4]) будет выполняться в большинстве случаев, и, соответственно, алгоритм не будет выполнять шаги после 14-й строки, а значит раньше заканчивать свою работу. Однако асимптотическая сложность останется той же, поскольку можно построить такой «плохой сценарий», который обеспечит выполнение всех шагов алгоритма.

Воспользуемся этим замечанием для модификации Алгоритма 1.

Алгоритм 2. Модифицированное попарное суммирование. Рассмотрим следующий порядок сложения п субоптимальных задач дискретной оптимизации.

1. Отсортируем Doptj в порядке возрастания начальных решений dj0, т.е. чтобы выполнилось dj®<..< djn°.

2. Положим: DoptSum = Y1r-=1Doptj = (... (Dopt^ + Doptjn) + Doptj2 ) + —+

D op tjn-J.~). П

Пусть соответствующим образом складываются и перечислители этих задач.

Заметим, что обычно нет информации о всех решениях Dopt1 и Dopt2, но мы располагаем решениями dt и d2 . Из проведенных нами экспериментов на различных задачах и данных вытекает, что обычно dt0 < d20, и, соответственно, решения задачи Doptt, в большинстве своем, будут меньше, чем решения Dopt2l. Это наблюдение, а также замечание, приведённое после Алгоритма 1, влечёт, что Алгоритма 2 имеет меньшую среднюю сложность по сравнению с Алгоритмом 1.

Возможны и другие модификации попарного суммирования. Однако все они будут обладать существенным недостатком: для каждого попарного суммирования перечислителей запоминается контекст его выполнения - все вспомогательные структуры данных, счетчики и вычисленные решения задач-слагаемых, и итоговый алгоритм потребляет значительный объём памяти. Сформулируем это утверждение более строго .

Утверждение 1. Асимптотическая сложность любого алгоритма попарного сложения п перечислителей составляет О(п * к), где к является значением субоптимальности итоговой задачи DoptSum. Асимптотическая сложность потребления памяти такого алгоритма составляет О (п* к + 2п-1 * iContextl), где все вспомогательные данные итогового алгоритма обозначены как Context, а размер занимаемой ими памяти - | Contex11.

В качестве некоторого экспериментального подтверждения Утверждения 1 заметим, что при испытаниях на большом количестве слагаемых (п > 15) Алгоритм 1 и Алгоритм 2 некорректно завершались от переполнения памяти. Отметим, что для прикладных задач число перечислителей измеряется десятками и сотнями [4,6], поэтому целесообразно построить алгоритм, потребляющий память более эффективно.

3. Обобщенный алгоритм суммирования перечислителей

Важно, что не требуется сразу вычислять все субоптимальные решения для слагаемых D op j, но можно построить «ленивый» процесс перебора (перечислитель), который вычисляет только «следующее» субоптимальное решение нужного слагаемого, что уменьшит размер Co^ext. Это важное замечание для случаев небольших значений субпотимальности к задачи DoptSum.

Это наблюдение, а также анализ вспомогательных структур алгоритма из [4] приводят к его обобщению в русле [5]: хранение Co^ext можно ограничить только индексами решений «вычисляемых для сравнения», то есть хранения обновляемой границы Парето для многомерного множества всех возможных комбинаций индексов решений слагаемых. Такой подход потребляет существенно меньше памяти, так как не хранит весь контекст, а лишь вспомогательные структуры для обсчета и обхода одной многомерной границы Парето. Представим этот алгоритм.

1 Такое предположение обычно подтверждается на практике, если субоптимальные решения не имеют «разрывов».

Введём ряд обозначений. Для списка задач , где } Е 1 : п рассмотрим прямое

^ = 1: к].

произведение R = X ...X Ln отрезков натурального ряда L, = 1к,-. Положим В0 =

{(1, .,1)} с R. Функцию уровней G0 • L2 X ... X Ln —> определим так:

г 1, если V j Е 2 • п имеем Xj > 1, Для х = (х2,... ,хп) G0(x)=] (1)

v 2 v J ( кг,если Б j Е2 ■ n такой, что Xj = 1. (1)

Аналогично [4], i-е решение задачи Doptj будем обозначать djl = Tj'(dj0), при этом уже вычисленные решения задачи Doptj сохраняются и потом не вычисляются повторно,

поэтому к ним возможен прямой доступ по индексу {vj^dj1} = Tj.get(i), где Vjl - это значение целевой функции i-го решения задачи Doptj.

Ниже представлен Алгоритм 3, который для тЕ1:к принимает на вход Т1,..,Тп, Gm-1,Bm-1 и выдаёт dm, Gm, Bm, то есть решение задачи DoptSum, следующее по оптимальности. Отметим, что функции Gm являются обобщением аналогичной функции из [4,5], и их удобно задавать и хранить в виде массива.

Алгоритм 3. Обобщенный алгоритм суммирования перечислителей.

1 Вход: Тъ... Tn, Gm-1,Bm-1

2 Qm = Qm-1 Qm-1

3 for each b Е Bm

4 for j Е 1 : n

5 [vj, dj} = Tj. get(b[j]) /* j -й элемент b Е R

6 v += Vj

7 if vm > v then

8 vm = v

9 d™ = (d1,..,dn)

10 sm = b

11 x = strip (sm) /* sm без первого элемента, с индексами 2 : n

12 Bm = Bm\ {sm}

13 у = Gm(x)

14 Gm(x) = Gm-1(x) + 1

15 for j Е 2 : n

16 x' = X, x'j = x'j +1

17 if (Gm(x'),x') t Bm then Bm U= {(Gm(x'),x')}

18 for l Е 2 : n

19 x"= x, x'\ = Xi —1

20 if ( Gm(x'') > у+ 1) || (xi = 1) then

21 _ Bm U= {y+1,x)}

22 Выход: d™, Gm, Bm

Докажем, что представленный алгоритм реализует TSum, т.е. dm является m-тым субоптимальным решением dm задачи DoptSum. Для этого обобщим Лемму 3 из [4], следуя тем же обозначениям: S0 = R, Sm = Sm-1 \ {sm}.

Лемма. Множество Вт, выдаваемое алгоритмом 3, является границей Парето для жесгва Бт при т: 0 <т <П}=1^..

Доказательство. Для начала покажем, что алгоритм 3 строит множество Вт £ 5т, которое

можно задать следующим образом:

Вт = {(у,х2,... ,хп) \ вт (х2,..,х-,..,хп) > вт(х), где

х]= Ху — 1\У) Е2: п, У = вт(х)}. (2)

Доказательство (2) проведем индукцией по т. Для В0 (2) очевидно выполнено. Согласно предположению индукции будем полагать, что оно выполнено для Вт-1.

Приступая к построению множества В т, положим его равным множеству Вт-1(строка 2). Далее элемент Бт = (у,х) удаляется из Вт (строка 12), значение функции Ст будет отличаться от вт-1 только в х: Ст(х) = вт-1(х) +1 и становится равным у + 1 (строка 14).

Отметим, что в итоге в множество Вт войдут следующие элементы {(у',х') \ х' = (х2,... ,ху + 1,...,хп) \ У} Е 2 : п, у' = вт(х')} (строки 15-17), поскольку значение вт(х) на шаге т увеличено на единицу, а согласно предположению индукции для Вт-1 выполнено вт(х') < у < вт(х), поскольку (у, х) Е Вт-1.

Поскольку элемент (у, х) удален из Вт, то для множества элементов {х'' = (х2,...,ху 1, ...,хп) \ ху > } Е 2 : п} выполнено Ст(х'') > у + 1 значит элемент (у + 1,х) должен войти в Вт, поскольку Ст[х] = у + 1. Это условие и определяет вхождение элемента (у + 1,х) в Вт, что реализовано в строках 18-21.

Таким образом мы показали, что Вт удовлетворяет (2).

Перейдём к доказательству утверждения леммы и проведём его индукцией по т. Для множества Б0 это утверждение очевидно, поскольку очевидно, что В0 с Б0. При этом В0 состоит из одного элемента (1,..,1), который доминирует все другие элементы Б0.

Предположим, утверждение выполнено для множества Бт-1 при т > 0. Множество Бт получается удалением из Бт-1 элемента Бт = (у, х), который входил в Вт-1 (строки 3, 10). При этом элемент Бт также удаляется из Вт (строка 12), а в Вт добавляются только элементы из Бт-1 (строки 17, 21), значит, Вт с Бт.

Для каждого } Е2: п рассмотрим х" = (х2,... ,ху — 1,... ,хп) \ ху > 0. При этом возможны два случая: Ст(х'') = у + 1 или Ст(х'') > у + 1. Случай Ст(х'') < у + 1 невозможен по построению Ст. При этом будем полагать, что ху > 1, поскольку если ху = 1, то в множество Вт на шаге т войдет элемент (у + 1, х), и таким образом, очевидно, что Вт будет границей Парето для множества Бт.

Случай 1. вт(х'') = у + 1 (строка 13). Это означает, что элемент (у + 1,х), определяемый новым значением Ст(х), не попадает в множество Вт в силу (2). Однако там содержится элемент (у + 1, х"), и, тем самым, доминируются элементы множества {(]м, и)\ ху — 1 < иу, у + 1 < ж} и элемент (Ст(х'),х'), который доминирует следующее множество {(ж,и)\ху + 1 < иу, Ст(х') < ж}. Пересекая эти множества и принимая во внимание, что элемент (у,х) уже исключен из Вт, а множество Вт-1 было границей Парето согласно предположению индукции, мы видим, что Вт = {Вт-1 \ {(у, х)}} и {( вт(х'), х')} является границей Парето множества Б т.

Случай 2. вт(х'') > у + 1. В этом случае в множество Вт войдет новый элемент (у + 1, х) (строка 21). Осталось лишь проверить те элементы, которые им не доминируются, а именно Е = {(ж, и) ху < иу, у = ж}. Помним о том, что (Ст(х'),х') Е Вт, а значит, элементы {(ж, и) ху + 1 < иу, Ст(х') < ж} уже им доминируются. Тогда, принимая во внимание, что (у,х) уже исключен из Бт и Ст(х') < у, получаем, что множество Е \ {(у,х)} доминируется элементом (Ст(х'),х') , а он уже включен в Вт. Таким образом и в этом случае Вт является границей Парето множества Бт и

Теорема. Пусть Бор1Бит = '^п=1Оор1у . Тогда Алгоритм 3 задает ТБит, т.е. йт = йт и БиМ(Р1,.., Рп) является перечислителем.

Доказательство проходит аналогично доказательству Теоремы 1 в [4] поскольку применимы такие же рассуждения о переборе элементов многомерной границы Парето (строки 3-10), а то, что Вт ей является для всего множества индексов решений, еще не возвращенных на т — 1 предыдущих шагах ( Бт) доказано в Лемме выше.

Доказательство выполнения условия (2) определения перечислителя из [4] для ТБит несколько сложнее. В силу выполнения условия (1) для перечислителей-слагаемых =

(й1,.., йп) Е 05\{й50} можно указать такой индекс ], что ^ = Т](й'и построить такое й'5, что й'5 = {й1,.., а+ь.., йп]. Таким образом, элемент оказывается достижим с помощью

конечного числа суперпозиций ТБит над значением й'5. ■

С точки зрения производительности важно, что нам удалось ввести функцию Ст, отображающую значения из п-мерного массива в отрезок, и поэтому нет необходимости тратить ресурсы на обход этого массива. Отметим важность эффективной реализации вычисления функции Ст для большого числа складываемых перечислителей. Хранение значений Ст в виде многомерного целочисленного массива неэффективно для больших п. Поэтому использована так называемая техника «ведерного хранения» реализации Ст в виде хеш-массива, в котором за счет подбора параметров (число «ведер» и хранимых в нем элементов) можно добиться константного времени поиска элемента [7]. Последнее наблюдение является ключевым для оценки сложности Алгоритма 3 для определенных сценариев.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Утверждение 2. Асимптотическая сложность Алгоритма 3 составляет О(п* к). Асимптотическая сложность потребления памяти Алгоритма 3 составляет 0( п * к + |Со^ех^).

4. Заключение

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

Наши эксперименты показали, что Алгоритм 3 ожидаемо быстрее выдаёт решения для больших п > 10. Также он эффективен для поиска небольшого числа первых решений, т.е. при малых к. Однако для поиска всех решений и произвольном значении к Алгоритм 2 оказывается более эффективным при условии, что ему предоставлен достаточный объём памяти.

Литература

[1] Романовский И. В. Субоптимальные решения. Петрозаводск: Изд-во Петрозаводского университета. 1998.

[2] Брумштейн Ю. М., Тарков Д. А., Дюдиков И. А. Анализ моделей и методов выбора оптимальных совокупностей решений для задач планирования в условиях ресурсных ограничений и рисков //Прикаспийский журнал: управление и высокие технологии. -2013. - №. 3. - С. 169-180.

[3] Кузнецов С., Константинов А., Скворцов Н. Ценность ваших данных. Изд-во Альпина PRO, 2022.

[4] Кузнецов С. В. Суммирование перечислителей в задачах дискретной оптимизации в контексте управления мастер-данными // Дифференциальные уравнения и процессы Управления. - 2023. - №. 4. - С. 42-52.

[5] Романовский И. В., Кузнецов С. В. Обобщенный алгоритм суммирования перечислителей субоптимальных решений // Вестник Санкт-Петербургского университета. Математика. Механика. Астрономия. - 2005. - №. 2. - С. 74-87.

[6] Marler R. T., Arora J. S. Survey of multi-objective optimization methods for engineering // Structural and multidisciplinary optimization. - 2004. - Т. 26. - С. 369-395.

[7] Denardo E. V., Fox B. L. Shortest-route methods: reaching, pruning, and buckets // Operations Research. 1979. Vol. 27. P. 161-186.

Summation of the enumerators in the discrete optimization problems

Kuznetsov S. V. u*, Koznov D. V. 2** 1 Unidata LLC

2

Saint-Petersburg State University

* sergey.kouznetsov@ gmail.com **d.koznov@spbu.ru

Abstract. The publication presents an approach to the use of discrete optimization algorithms, in particular, the search for suboptimal solutions. The theory of enumerators, proposed by the famous Leningrad mathematician I.V. Romanovsky, and the operation of their summation, which is proposed to be used to create multi-domain suboptimal algorithms, are considered. The paper presents an efficient algorithm to sum enumerators based on the recalculation of the Pareto boundary. Motivations for using the proposed algorithm within the framework of a well-known task in the field of Master Data Management are given.

Keywords: enumerators, suboptimal problems, discrete optimization, Pareto boundary, master data management, multi-domain algorithms.

i Надоели баннеры? Вы всегда можете отключить рекламу.