2014 Теоретические основы прикладной дискретной математики №1(23)
УДК 519.6
ЭКВИВАЛЕНТНЫЕ ПО ФРОБЕНИУСУ ПРИМИТИВНЫЕ МНОЖЕСТВА ЧИСЕЛ
В. М. Фомичев
Финансовый университет при Правительстве Российской Федерации, г. Москва, Россия
E-mail: [email protected]
Множества натуральных взаимно простых чисел {al,...,at} и {bl,...,bi} полагаются эквивалентными, если им соответствует одно и то же число Фробениу-са, то есть g(al,...,at) = g(bl,.. .,bi). Получены результаты, позволяющие для широкого класса множеств аргументов сократить вычисления при решении проблемы Фробениуса как в оригинальной постановке (определение числа Фробе-ниуса g(al,..., at)), так и в расширенной постановке (определение множества всех чисел, не содержащихся в аддитивной полугруппе, порожденной множеством {al, . . ., ak}).
Ключевые слова: число Фробениуса, примитивное множество, порожденная множеством чисел аддитивная полугруппа.
Введение
Основные обозначения:
N0 = N U {0}, где N — множество всех натуральных чисел;
(al,..., ak) —наибольший общий делитель натуральных чисел al,.. .,ak;
(A) —аддитивная полугруппа, порожденная множеством A С N;
если A = {al,..., ak}, n Є N0, то nA = {nal,..., nak}, n + A = {n + al,... ,n + ak};
A(i) = {al,.. .,ai}, C (A(i)) = diNo\(A(i)), di = (al,.. .,ai), г = 2,...,к; zi = maxC(A(i)), (A(i)) = {a Є (A(i)) : a < zi}, г = 2,... ,к.
Диофантова проблема Фробениуса (ПФ) (другое название — Money Changing Problem) состоит в определении наибольшего натурального числа t Є (A), то есть числа, не представимого линейной комбинацией (с неотрицательными целыми коэффициентами) взаимно простых чисел al,..., ak.
Множество A = {al,.. .,ak} натуральных чисел, к > 1, называется примитивным, если (al,.. .,ak) = 1. Следовательно, функция Фробениуса g(al,.. .,ak) определена на всех примитивных множествах {al,..., ak} равенством
g(al,..., ak) = max{t Є N : t Є (A)}.
Определим C(A) = C(A(k)) —множество всех натуральных чисел, не представимых линейными комбинациями чисел al,...,ak, к > 1. Тогда число Фробениуса g(A) = = max C(A). Задача определения множества C(A) называется расширенной проблемой Фробениуса (РПФ).
Описание множества C(A) и формула числа Фробениуса даны Сильвестром [1] для к = 2 ещё в 1884г.: |C(A)| = (g(al, a2) + 1)/2, где
g(al, a2) = ala2 — al — a2. (1)
При к > 2 активно изучался порядок множества C(A) и некоторые его свойства [2, гл. 5]. В [3] анонсирован алгоритм РПФ на основе рекуррентного соотношения между множествами C(A(k)), к > 1, и дана оценка его сложности.
Несмотря на то, что ПФ исследовалась намного активнее, формулы получены только для множеств частного вида при k = 3, 4. Объективные трудности в получении общей формулы обоснованы в [2], где показано, что уже при k = 3 нельзя разбить область определения на конечное число подобластей так, чтобы в каждой подобласти число Фробениуса g(ai, a2, a3) выражалось как значение полинома от аргументов.
Более продуктивным оказался алгоритмический подход к определению g(ai,..., ak). Построен ряд алгоритмов как при k = 3 [4], так и при произвольном k. В [5, 6] разработан алгоритм вычисления функции Фробениуса при любом k с помощью экспо-ненцирования квадратной неотрицательной матрицы M порядка ak и определения её показателя примитивности (экспонента) с использованием соотношения
g(ai,.. .,ak) = exp M — afc.
Вычислительная сложность алгоритма в битовых операциях равна O(a|), требуемая память — O(ak logak) битов. В [7] предложено улучшение этого алгоритма со сложностью O(a|), однако обоснование корректности алгоритма не представлено.
В [8] на основе теоретико-графового подхода построен алгоритм определения g(a1,...,ak) со сложностью O(a1(k + loga1)) арифметических операций. В [9] оценка сложности этого алгоритма снижена до величины порядка O(ka1) операций.
Данная работа посвящена сокращению вычислительной сложности РПФ и ПФ с использованием эквивалентности множеств аргументов функции Фробениуса. На основе исследования отношений эквивалентности РПФ и ПФ для исходного множества аргументов A редуцируются на его собственное подмножество порядка h, где
2 ^ h ^ min(k,a1). Это позволяет снизить оценку вычислительной сложности до величины O(l(A) + ha1) арифметических операций, где l(A) ^ k и числа l(A) и h в ряде случаев значительно меньше k.
1. Эквивалентность множества и подмножества
Примитивное множество чисел A = {a1,...,ak} рассмотрим как возрастающую последовательность длины k, где 1 < a1 < ... < ak.
Множества A и A1 называются эквивалентными (обозначается A = A'), если (A) = (A;). Наименьшие числа эквивалентных множеств равны.
Примитивные множества A и A1 называются g-эквивалентными (обозначается
g
A = A'), если g(A) = g(A'). Из определения следуют свойства:
1) если D = D', то D = D';
2) D = D' ^ C(D) = C(D');
3) A(i) = A(i-1) ^ ai G (A(i-1)), необходимое условие этого d = di-1, i = 2,... ,k. Пусть a G N, B С N. Положим, что a делит B (записывается a | B), если a делит
без остатка некоторое число из B. В противном случае a не делит B (записывается
a IB).
Теорема 1. Примитивные множества A(i) и A(i-1) являются g-эквивалентными, если и только если ai /(g(a1,..., ai-1) — (A(i-1))).
Доказательство. Свойство ai /(g(a1,..., ai-1) — (A(i-1))) равносильно тому, что
g(a1,..., ai-1) = b + rai
при любом b G (A(i-1)) и любом натуральном r, то есть g(a1,..., ai-1) G C(A(i)). Вместе с тем, если a > g(a1,..., ai-1), то по определению a G (A(i-1)) и, значит, a G (A(i)).
Следовательно, g(a1,.. .,ai-1) —наибольшее натуральное число из множества C(A(i)). Отсюда g(a1,..., ai-1) = g(ab ..., ai). ■
g
Следствие 1. Пусть (a1,a2) = 1, тогда {a1,a2} = {a1,a2,a3}, если и только если a3 /C(A(2)), где C(A(2)) = a1a2 — a1 — a2 — (A(2)).
2. Эквивалентность, связанная с линейными соотношениями
Числа ai и aj множества A называются a1-эквивалентными, если ai mod a1 = = aj mod a1. Примитивное множество A = {a1,...,ak} разбивается на h классов a1-эквивалентности, где 2 ^ h ^ min{k,a1}. Трансверсаль множества A по отношению a1-эквивалентности, состоящую из наименьших чисел классов, назовём a1-транс-версалью множества A и обозначим A/a1. Обозначим W(A/a1) последовательность порядковых номеров (начиная со второго) чисел a1 -трансверсали.
Множество A называется приведённым, если ai G (A(i-1)), i = 2,..., k. Неприведён-ное примитивное множество A содержит приведённые примитивные подмножества. Приведённое подмножество Ba множества A, называемое A-базисом, строится последовательно: a1 G Ba; a2 G Ba, если и только если a2 не кратно a1; пусть из {a1,..., ai-1} в подмножество Ba включены числа b1,...,bj, тогда ai G Ba, если и только если di-1 > di или di-1 = di и ai G C(b1,..., bj), i = 3,..., k. Обозначим W(BA) последовательность порядковых номеров (кроме 1) чисел A-базиса, то есть таких i G {2,..., k}, что di-1 > di или di-1 = di и ai G C(a1,..., ai-1).
Пример 1. Неприведённое множество A = {5,14,19, 28, 43,49} разбивается на три класса 5-эквивалентности: Co = {5}, C3 = {28,43}, C4 = {14,19,49}. Здесь A/5 = {5,14, 28} есть 5-трансверсаль множества A; A-базис есть множество Ba = = {5,14}; W(Ba) = {2}.
Неприведённое множество A = {7,14, 23, 48, 56, 62} разбивается на три класса 7-эквивалентности: C0 = {7,14, 56}, C2 = {23}, C6 = {48, 62}. Здесь A/7 = BA = {7, 23, 48} есть 7-трансверсаль множества A и A-базис, W(Ba) = {3, 4}.
Индексом примитивности множества A называется наименьшее натуральное число p(A), такое, что dp(A) = 1. Пусть p(A) = p, тогда p ^ k, dp = dp+1 = ... = dk = 1. Последовательность порядковых номеров i G {2,.. .,p}, таких, что di-1 > di, обозначим L(A).
Пример 2. Для множества A = {5,14,19, 28, 43, 49}: p(A) = 2, L(A) = {2}.
Для множества A' = {6,18, 27, 28, 42, 63, 79}: p(A') = 4, L(A') = {3,4}.
Теорема 2. Для любого множества A выполнено:
а) Ba С A/a1 С A, Ba = A/a1 = A;
б) L(A) С W(Ba) С W(A/a1);
в) |Ba| ^ |A/a1| ^ min{k,a1}, и последняя оценка достижима.
Доказательство.
а) По построению A/a1 С A и Ba С A, покажем, что Ba С A/a1, или, что равносильно, A\A/a1 С A\Ba. Пусть aj G A/a1, тогда найдётся число ai G A/a1, такое, что ai < aj и ai mod a1 = aj mod a1. Тогда aj = ai + ra1 при некотором r G N, следовательно, aj G Ba.
Из доказанных включений следует, что (Ba) С (A/a1) С (A). Вместе с тем каждое из чисел множества A\Ba есть линейная комбинация чисел Ba, значит, (A) = (A/a1) =
= (Ba).
б) Включение Ш(ВА) С Ш(А/а^ следует из условия ВА С А/й1 . Если г Е Ь(А), то ^г-1 > ^, значит, г € Ш(ВА). Следовательно, £(А) С Ш(ВА).
в) По построению |А/а1| ^ к. Вместе с тем |А/а1| не превышает числа наименьших неотрицательных вычетов по модулю а1. Достижимость оценки очевидна. ■
Следствие 2. Всякое примитивное множество А = |а1,..., а&} содержит эквивалентное подмножество порядка не больше ш1п|к,а1}.
3. Эквивалентность быстро возрастающих последовательностей
Далее положим, что примитивное множество А = А/а!, то есть к ^ а! и числа а1,..., а& несравнимы по модулю а!, где а! ^ 3.
Пусть Ь(А) = {п2,...,пг}, 1 < г < к, то есть ^-! > ^ , ] = 2,..., г. Тогда последовательность разбивается на г отрезков А1,..., Аг, где А- = (а^.,..., ага^.+1 -!), ] = 1,..., г, п1 = 1, пг = р, пг+1 = к + 1.
Обозначим: 3 = А!\{а!}; 3(А) —множество чисел аг из А, таких, что ^г-! = ^ и аг не делит множество С(А(г !)) (то есть 3(А) С {п2 + 1,..., к}\{п2,..., пг}); Ш(3) — возрастающая последовательность номеров чисел множества 3(А).
Отметим некоторые известные свойства:
1) если В С А и А\В С (В), то А = В;
2) множество А(г)/^ = {а^^,..., аг/^} примитивное, (А(г)) = ^(А(г)/^), г = 2,..., к;
3) ^(а!,..., а^) ^ (а! — 1)(а& — 1) — 1 [4, теорема 3.1.1].
Теорема 3. А = А\3(А); если п2 > 2, то А = А\(31 и 3(А)).
Доказательство. Если ^г-! = ^ и аг не делит множество С(А(г-!)), то С(А(г)) = = С(А(г-!)), г = п2 + 1,..., к. Отсюда если аг € 3(А), то С(А-)) = С(В--1)) при любом ] Е {г,..., к}, где В = А\{аг}. В частности, при ] = к получаем С (А) = С (А\{аг}), следовательно, А = А\{аг}.
Пусть Ш(3) = {г!,.. .,г4}. В силу произвольности рассмотренного множества А и числа аг Е 3(А) рассуждения верны для множества А и числа аг1; для множества А\{аг1} и числа аг2; ..., для множества А\{аг1,..., аг4-1} и числа а^. Значит,
А = А\{а»1} = ... ^ А\{а»1,.. .,аг(-} = А\3(А).
Если п2 > 2, то числа а2,...,аП2-! кратны а!. Следовательно, 3! С (а!) и 3! С
С ((А\3 (А))\31). Тогда по утверждению а теоремы 2
А\3(А) = (А\3(А))\3! = А\(3 и 3(А)),
значит, А = А\(31 и 3(А)). ■
Далее без ущерба для общности считаем, что п2=2.
Обозначим: 7- = ^((а!/^га^. — 1)(ага^./^ — 1) — 1), /! = 1, /- —наибольший номер, такой, что п- ^ /- < п^+1 и а^. ^ 7- (при а! ^ 3 корректность этих условий вытекает из утверждений б и в теоремы 2); 5! = (а!), 5- = (а^., ...,а^.), то есть отрезок 5-составлен из первых (наименьших) /- — п- + 1 чисел отрезка А-, ] = 2,..., г; 5(А) есть конкатенация отрезков 51, 52,..., 5Г; /(А) —длина последовательности 5(А).
Следствие 3. А = 5(А), /(А) ^шт{к, а1ар — а! — 2ар + р}, где р = р(А).
Доказательство. При ] = 2,..., г выполнена цепь вложений С(А(п)) 3 ... 3
3 С(А(п+1-!)). Тогда в соответствии с утверждениями б и в теоремы 2 каждое число
множеств C(A(nj)), ... , C(A(nj+1 1)) не превышает Yj. Если j < nj+1 — 1, то по определению числа /j каждое из чисел a^+1, ... , anj+1-1 больше Yj и, следовательно, не делит ни одно из чисел множеств C(A(nj)), ..., C(A(nj+1 1)). Тогда по теореме 1 A = S(A).
По построению /(A) ^ k, так как S(A) С A. Заметим, что наибольшее число из S(A) не превышает yp, где yp = a1 ap — a1 — ap, поэтому /(A) ^ a1ap — a1 — ap. Вместе с тем {{1,..., ap}\{a1,..., ap}} П A = 0; тогда, учитывая, что yp > ap при a1 ^ 3, получаем /(A) ^ yp — ap + p = a1ap — a1 — 2ap + p. ■
Алгоритмы построения множеств A/a1 и A\S(A) являются полиномиальными. Алгоритм построения множества A\J(A) экспоненциальный, по сложности он равносилен решению расширенной проблемы Фробениуса [4].
Наибольшее сокращение вычислительной сложности РПФ и ПФ достигается в тех случаях, когда {a1,..., ak} = {a1, a2}.
Пример 3. Пусть A = {5,13,18, 20, 57}. Вычисляем A/5: 5 = 20 = 0 (mod 5), 13 = 18 = 3 (mod 3), 57 = 2 (mod 5). Тогда A/5 = {5,13, 57}. Следовательно, A = = {5,13, 57}.
Вычисляем J (A/5): L(A/5) = {13}, r = 2, A1 = {5}, A2 = {13, 52}, y2 = 47 < 57. Тогда J (A/5) = {57}, (A/5)\J (A/5) = {5,13}. Окончательно имеем A = {5,13}.
4. Эквивалентность примитивных пар чисел
Обозначим: [A] — класс g-эквивалентности, содержащий примитивное множество A; [A]m — класс всех примитивных множеств порядка m, g-эквивалентных A, m =2, 3,...
Теорема 4. Пусть (a,b) = 1. Тогда
[{a,b}]2 = {(a + 8, b + e) : a — b +1 < e < 0, 8 = (1 — a)e/(b + e — 1) G N,
1 — a<8< 0, e = (1 — b)8/(a + 8 — 1) G N}. g
Доказательство. Пусть (a, b) = (a + 8, b + e), то есть g(a, b) = g(a + 8, b + e), где g(a, b) = ab — a — b в соответствии с (1). Тогда
b8 + ae + 8e — 8 — e = 0. (2)
Так как функция g(a,b) монотонно возрастает при a,b > 1, то при заданных a,b уравнение (2) относительно 8, e выполнено лишь при условии 8e < 0. Следовательно, множество [{a, b}]2 состоит из примитивных пар вида (a + 8, b + e), где a + 8 <b + e и
8e < 0. Пусть 8 > 0, e < 0, тогда по условию задачи a — b +1 <e< 0 и из (1) следует
8 = (1 — a)e/(b + e — 1). (3)
Тогда [{a, b}]2 включает все примитивные пары (a + 8, b + e), где при e > a — b + 1 число 8, определяемое формулой (3), является натуральным.
Пусть 8 < 0, e > 0, тогда по условию задачи 1 — a < 8 < 0 и из (2) следует
e = (1 — b)8/(a + 8 — 1). (4)
Тогда [{a, b}]2 включает все примитивные пары (a + 8, b + e), где при 1 — a < 8 < 0 является натуральным число e, определяемое формулой (4). ■
Следствие 4. Если a > 2, то (2,g(a,b) + 2) G [{a,b}]2; если a > 3, то (3, (g(a, b) + 3)/2) G [{a, b}]2.
Доказательство. Если а > 2, то при 5 = 2 — а в соответствии с (4) получаем
е = (1 — Ь)(2 — а) Е N. Следовательно, {а, Ь} = {2,#(а, Ь) + 2}.
Если а > 3, то при 5 = 3 — а в соответствии с (4) получаем е = (1 — Ь)(3 — а)/2. Хотя бы одно из чисел примитивной пары (а, Ь) нечётное. Следовательно, е Е N и
{а,Ь} = {3, (#(а,6) + 3)/2}. ■
Пример 4. Построим множество [{13, 22}]2, где #(13, 22) = 251. При 5 > 0 имеем —8 < е < 0, соответствующие значения 5 приведены в табл. 1.
Таблица 1
Значения 5
£ —7 —6 —5 —4 —3 —2 — 1
6 6 72/15 60/16 48/17 2 24/19 12/20
Из табл. 1 следует, что (5, е) Е {(2, —3), (6, —7)}. Паре (13, 22) ^-эквивалентна примитивная приведённая упорядоченная пара (15,19). Пара (19,15) не упорядочена, поэтому она исключена из класса [{13, 22}]2.
При е > 0 имеем —12 < 5 < 0; соответствующие значения е приведены в табл. 2.
Таблица 2
Значения е
6 — 11 — 10 —9 —8 —7 —6 —5 —4 —3 —2 — 1
£ 231 105 63 42 147/5 21 15 84/8 7 42/10 21/11
Тогда (8, e) G {(—3, 7), (—5,15), (—6, 21), (—8, 42), (—9, 63), (—10,105), (—11, 231)}, и пара (13, 22) g-эквивалентна семи примитивным приведённым упорядоченным парам: (10, 29), (8, 37), (7, 43), (5, 64), (4, 85), (3,127) и (2, 253). Итак, класс g-эквивалентности [{13, 22}]2 содержит (вместе с самой парой (13, 22)) девять примитивных приведённых упорядоченных пар.
Заключение
Отношения эквивалентности примитивных множеств позволяют сократить сложность решения РПФ и ПФ путём редукции заданного примитивного множества к его собственному подмножеству, выполняемой с помощью полиномиального алгоритма.
Редукция множества A к множествам A/a1 и A\S(A) позволяет понизить известные оценки сложности вычисления функции Фробениуса. В частности, сложность алгоритма экспоненцирования квадратной неотрицательной матрицы [5, 6] понижается до величины порядка O(a3), где a — наибольшее число редуцированного множества (A/a1)\S(A/a1). Оценка Боккера — Липтак [9] понижается до величины порядка O(/(A) + ha1), где h — порядок множества (A/a1)\S(A/a1), то есть в ряде случаев при больших значениях k оценка понижается до величины порядка O(a1).
ЛИТЕРАТУРА
1. Sylvester J. J. Problem 7382 // Mathematical Questions from the Educational Times. 1884. V. 37. P. 26.
2. Curtis F. On formulas for the Frobenius number of a numerical semigroup // Math. Scand. 1990. No. 67. P. 190-192.
3. Фомичев В. М. Эквивалентность примитивных множеств // Прикладная дискретная математика. Приложение. 2013. №6. С. 20-24.
4. Alfonsin J. R. The Diophantine Frobenius Problem. Oxford University Press, 2005.
5. Heap B. R. and Lynn M. S. A graph-theoretic algorithm for the solution of a linear Diophantine problem of Frobenius // Numerische Math. 1964. No. 6. P. 346-354.
6. Heap B. R. and Lynn M. S. On a linear Diophantine problem of Frobenius: an improved algorithm // Numerische Math. 1965. No 7. P. 226-231.
7. Bogart C. Calculating Frobenius numbers with Boolean Toeplitz matrix multiplication // For Dr. Cull, CS 523, March 17, 2009. Oregon State University.
8. Nijenhuis M. A minimal-path algorithm for the “money changing problem” // Am. Math. Monthly. 1979. V. 86. P. 832-835.
9. Bocker S. and Liptak Z. The “money changing problem” revisited: computing the Frobenius number in time O(kai). Technical Report No.2004-2, Univ. of Bielefeld, Technical Faculty, 2004.