Научная статья на тему 'КВАНТОВЫЙ ПОИСК ЗАДАННОЙ ПОДСТРОКИ В ТЕКСТЕ НА ОСНОВЕ ТЕХНИКИ ХЕШИРОВАНИЯ'

КВАНТОВЫЙ ПОИСК ЗАДАННОЙ ПОДСТРОКИ В ТЕКСТЕ НА ОСНОВЕ ТЕХНИКИ ХЕШИРОВАНИЯ Текст научной статьи по специальности «Математика»

CC BY
85
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КВАНТОВЫЕ АЛГОРИТМЫ / ПОИСК СТРОКИ / КВАНТОВЫЙ ПОИСК / QUANTUM ALGORITHMS / STRING SEARCH / QUANTUM SEARCH

Аннотация научной статьи по математике, автор научной работы — Аблаев Марат Фаридович, Салихова Наиля Маратовна

Рассмотрена задача поиска в тексте заданной подстроки. Известно, что классические алгоритмы решают эту задачу за линейное от длины текста и заданного шаблона время. Квантовые алгоритмы позволяют ускорить поиск в «корень квадратный раз». В работе предложен квантовый алгоритм, решающий задачу поиска а) с высокой вероятностью получения правильного результата, б) с таким же ускорением («корень квадратный раз») по сравнению с классическим, но в) гораздо более экономный по памяти (по числу используемых кубит) по сравнению с ранее известными квантовыми алгоритмами. Продемонстрировано применение универсального хеширования и техники квантового хеширования для задачи поиска в тексте заданной подстроки.

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

Похожие темы научных работ по математике , автор научной работы — Аблаев Марат Фаридович, Салихова Наиля Маратовна

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

QUANTUM SEARCH FOR A GIVEN SUBSTRING IN THE TEXT USING A HASHING TECHNIQUE

The problem of searching for a given substring in the text was considered. It is known that classical algorithms solve this problem in a linear time depending on the length of the text and the specified template. Quantum algorithms speed up the search by “square root times”. In this paper, we proposed a quantum algorithm that solves the search problem a) with a high probability of getting the correct result and b) with the same acceleration (by “square root times”) as compared with the classical one, but it c) requires much less memory (based on the number of qubits used) than the previously known quantum algorithms.

Текст научной работы на тему «КВАНТОВЫЙ ПОИСК ЗАДАННОЙ ПОДСТРОКИ В ТЕКСТЕ НА ОСНОВЕ ТЕХНИКИ ХЕШИРОВАНИЯ»

2020, Т. 162, кн. 3 С. 241-258

УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО УНИВЕРСИТЕТА. СЕРИЯ ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

ISSN 2541-7746 (Print) ISSN 2500-2198 (Online)

УДК 519.7 аок 10.26907/2541-7746.2020.3.241-258

КВАНТОВЫЙ ПОИСК ЗАДАННОЙ ПОДСТРОКИ В ТЕКСТЕ НА ОСНОВЕ ТЕХНИКИ ХЕШИРОВАНИЯ

М.Ф. Аблаев1,2, Н.М. Салихова2

1 Казанский физико-технический институт им. Е.К. Завойского ФИЦ Казанский научный центр РАН, г. Казань, 420029, Россия 2Казанский (Приволжский) федеральный университет, г. Казань, 420008, Россия

Аннотация

Рассмотрена задача поиска в тексте заданной подстроки. Известно, что классические алгоритмы решают эту задачу за линейное от длины текста и заданного шаблона время. Квантовые алгоритмы позволяют ускорить поиск в «корень квадратный раз».

В работе предложен квантовый алгоритм, решающий задачу поиска а) с высокой вероятностью получения правильного результата, б) с таким же ускорением («корень квадратный раз») по сравнению с классическим, но в) гораздо более экономный по памяти (по числу используемых кубит) по сравнению с ранее известными квантовыми алгоритмами.

Продемонстрировано применение универсального хеширования и техники квантового хеширования для задачи поиска в тексте заданной подстроки.

Ключевые слова: квантовые алгоритмы, поиск строки, квантовый поиск

Введение

Современные исследования и разработки квантовых алгоритмов ведутся (уже более или, в зависимости от степени вовлеченности читателя, еще только) три десятилетия [1]. На сегодняшний день известные квантовые алгоритмы можно отнести в один из четырех классов: а) алгоритмы типа алгоритмов проблемы скрытых подгрупп (Hidden Subgroup Problem), включающий известный алгоритм факторизации Шора, б) алгоритмы поиска [2-4], в) алгоритмы на основе квантового блуждания (Quantum Walk) [5] и г) системы квантового моделирования (симуляций), которые собственно и были первоначальной мотивацией, из которой исходил Ричард Фейнман, когда начал говорить о квантовых моделях вычислений в 80-х годах XX в.

Квантовые алгоритмы применяются для решения задач линейной алгебры, широко используемых в машинном обучении, таких как вычисление обратной матрицы, нахождение собственных чисел и собственных векторов матрицы. Для квантовых компьютеров активно разрабатываются аналоги классических алгоритмов машинного обучения. Для моделей с большим количеством весов или таких, для которых требуется перебор экспоненциально растущего числа комбинаций, использование квантовых компьютеров позволяет значительно сократить время вычисления. Обзор некоторых результатов в области квантовых подходов к классификации и поиску информации представлен нами работах [6, 7]. Задача поиска вхождений заданной подстроки в тексте - одна из основных задач поиска информации. Она возникает в широком спектре приложений: в текстовых редакторах, в работе поисковых роботов, спам-фильтров, в биоинформатике и др. За последние несколько

десятилетий для решения такой задачи поиска разработано большое число алгоритмов (детерминированных и вероятностных), а в последние два десятилетия появились и квантовые алгоритмы.

Постановка задачи. Дана двоичная последовательность (строка) string длины N: string = bi .. .Ъ^. Дана двоичная строка w длины m, m < N. Требуется найти индекс вхождения подстроки w в строке string. А именно, требуется найти индекс k такой, что для string и w выполняется w = bk ... bk+m-i.

Будем использовать следующие обозначения. Через T(string) обозначим последовательность всех слов длины m текста string. А именно, для n = N + 1 — m последовательность T(string) составлена из всех подстрок wk длины m строки string:

T(string) = {wo, • • • , w„_i|,

где wk = bk+i • • • bk+m для 0 < k < n — 1.

Известные результаты. Алгоритм Кнута - Морриса - Пратта [8] 70-х годов XX в. решает задачу за линейное время O(m + n).

В начале 2000-х годов представлен квантовый алгоритм [9] поиска заданной подстроки в тексте. Он относится ко второй группе алгоритмов и позволяет получить квадратичное ускорение поиска. Он возвращает один из индексов вхождения искомой подстроки. Вероятность получения правильного ответа строго больше 1/2. Сложность запросов (эта мера сложности иногда ассоциируется с временной сложностью) такого алгоритма составляет O(Jn log w — log m + л/ш log2 m). Авторы [9]

m

не оценивают сложность по памяти (количество используемых кубит) своего алгоритма. Наш анализ показывает, что алгоритму [9] требуется O(log n + m) кубит для работы.

Результаты работы. Мы строим алгоритмы для случая, когда заранее точно известно, что искомая подстрока встречается в тексте ровно один раз. Такой случай рассмотрен Л. Гровером в работе [2], положившей начало исследованиям в области квантового поиска. Мы предлагаем квантовый алгоритм поиска A, который проводит поиск подстроки в тексте

• с большой вероятностью получения правильного ответа,

• более экономичен (по сравнению с алгоритмом [9]) по времени, а именно требует O(^Jnlogm) шагов работы алгоритма,

• позволяет экспоненциально (по сравнению с алгоритмом [9]) сократить количество кубит относительно параметра m - длины шаблона, а именно алгоритму достаточно O(log n + log m) кубит для своей работы.

Ниже мы продемонстрируем потенциальные возможности универсального хеширования и техники квантового хеширования для построения алгоритмов квантового поиска подстроки в тексте.

1. Квантовый алгоритм запросов, сложность и необходимые сведения

В настоящей работе мы используем систему обозначений, определяемых подробно в работах [6, 7]. Операции, применяемые к квантовым s-кубитным состояниям £ (H2)®s, математически выражаются с помощью унитарных операторов

1Л = U 1ф), (1)

где U - 2s х 2s унитарная матрица.

1.1. Модель вычисления. Мы определяем алгоритм на основе известной в теории квантовых вычислений модели - квантового алгоритма запросов (Quantum Qurey Complexity Model (QQCM)). Мы определяем квантовый алгоритм запросов в самом общем виде, следуя работе [10].

Квантовый алгоритм запросов A на s кубитах (s = size (A)) для вычисления значения дискретной функции g(X) определяется следующим образом. Пусть l^start) - начальное s-кубитное состояние. Процедура вычисления функции задается последовательностью операторов

U, O, U,..., O, U, dim(A) х dim(A) унитарных матриц (dim(A) = 2s).

Оператор и не зависит от X. Оператор О зависит от входного X, (О = 0(Х)). Оператор О в литературе называют «оракул». Применение оракула называют запросом алгоритма А к исходным данным X.

Алгоритм состоит в применении последовательности операторов О, и,..., О, и к |"^аг1;}. Алгоритм вычисляет дискретную функцию $(Х), если в процессе вычисления на входном значении а начальное состояние трансформируется в конечное состояние

|"(»(а))} = иО-.-иО^ап}, которое позволяет извлечь значение $(а) в результате измерения состояния

№(з(а))>.

1.2. Характеристики алгоритма А. Характеристиками квантового алгоритма запросов являются вероятность ошибки его работы, число запросов к анализируемым данным и используемая память.

Вероятность ошибки. Пусть е € (0,1). Будем говорить, что квантовый алгоритм запросов А вычисляет функцию $(Х) с вероятностью ошибки не более е, если для каждого значения а переменных X вероятность извлечения из состояния 1"(#(а))} значения, отличного от $(а), не превосходит е.

Сложность запросов. Число ф(А) запросов (число применений оракула) является «запросной» мерой сложности квантового алгоритма А.

Отметим, что в работе [10] один запрос к оракулу - это тестирование одной переменной (одного бита). Соответственно, в нашей работе один запрос к оракулу реализуется в процессе тестировании целой строки т для алгоритма А1 (хеш-значения т в алгоритмах А2, А3).

Сложность по памяти. Число Б (А) = в используемых кубит является мерой сложности памяти квантового алгоритма А.

1.3. Квантовый алгоритм поиска. Квантовый алгоритм поиска в неупорядоченной базе данных из п элементов, в которой присутствует ровно один элемент, нас интересующий, (алгоритм Гровера) - частный случай группы алгоритмов запросов. Следующая схема алгоритма лежит в основе многих обобщений алгоритмов поиска.

A. Инициализировать квантовую систему из 0(1og п) кубитов в состояние , содержащее всю информацию о базе данных. Состояние } конструируется так, чтобы каждое из 2°(1°8 п) базисных квантовых состояний представляло нужную информацию об п элементах базы данных.

B. Над состоянием |^аг0 выполняются следующие 0(у/п) «макро»-шагов:

• применяется оракул О, который распознает состояние, интересующее нас, и умножает его амплитуду на — 1;

• применяется оператор, выполняющий инверсию по среднему значению по всем амплитудам.

«Макро»-шаг 2 описывает ключевую операцию квантового поиска. Каждый такой шаг увеличивает амплитуду состояния, представляющего нужную информацию. Число 0(у/п) таких шагов максимизирует амплитуду, а следовательно, и вероятность извлечения нужной информации из результирующего состояния

|^па1} .

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

Представим операторы I, X, Z, Н, которые будут использоваться нами:

I - оператор идентичности

I

10 01

X - оператор отрицания. Он меняет состояние кубита с |0} на |1} и наоборот

X = (0 ,1); (2)

Z - оператор изменения знака амплитуды

Z = (1 _0,); (3)

H - оператор Адамара

H = ^(1 —1). <4>

Отметим, что вектор из гильбертова линейного пространства обозначают как кет-вектор |х}, а соответствующий ему вектор из сопряженного пространства -как бра-вектор (ж|.

1.5. Теорема о распределении простых чисел. Простых чисел много,

п

менно существует примерно --

1п п

простое число рк ~ к 1п к, к ^ то .

п

а именно существует примерно -- простых чисел, меньших числа п. к-е по счету

1п п

2. Алгоритмы поиска индекса вхождения подстроки в тексте

В данном разделе мы представим три квантовых алгоритма поиска подстроки в тексте. Задача рассматривается в простейшей постановке. А именно, предполагается, что искомая подстрока w гарантированно встречается в тексте string и

ровно один раз. Обобщения на более общие случаи обсуждаются в заключительном разделе статьи.

2.1. Исходные данные и результат. Исходными данными для всех трех алгоритмов являются текст string и искомая подстрока w. Алгоритм строится в предположении, что в тексте string искомая подстрока w присутствует и присутствует ровно один раз. Результатом работы алгоритмов является номер k вхождения w в текст string.

Для упрощения выкладок всюду далее будем считать, что число n (число под-слов в тексте string) - степень 2.

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

2.2. Операторное задание.

1. По строке string готовится начальное (log n + m + 1) кубитное состояние |string) на основе последовательности T(string)

1 n— 1

|string) = —= У^ |k) < |wfc) < |1).

Л / П ^-'

n

v k=0

п

2. К состоянию | string) применяются раз следующие два макрошага,

описываемые ниже в операторном виде. В литературе эти два макрошага часто называют «итерация Гровера» [2].

Операция изменения фазы состояния, представляющего информацию о wk, для которого выполняется wk = w. Для двоичной последовательности w £ {0,1}m определяем булеву функцию fw : {0,1}m ^ {0,1} условием: fw(x) = 1 тогда и только тогда, когда x = w.

Обозначим через |x) базисное состояние, соответствующее элементу x, являющимся одним из wk .В данном случае |x) - это m кубитное базисное состояние. Оракул Ofw (представляется, что термин оракульное преобразование более точно отражает ситуацию, если уж следовать традиции квантового поиска и использовать термин оракул) задается последовательностью следующих действий:

а) применение оператора H на вспомогательном (log n + m + 1 )-м кубите |1):

|x)®|1)^|x>®—=(|0)-|1>);

б) применение оператора Ufw на последних m +1 кубитах: |x) < —=(|0) - |1)) f —1= |x) < (|0 © fw(x)) -|1 © fw(x))) =

= (-1)fw(x)|x)®—=(|0)-|1));

в) применение оператора H на вспомогательном (log n + m + 1 )-м кубите |1):

(-1)fw(x)|x) <g> —L(|0) - |1)) H (-1)fw(x)|x) << |1). v2

Отметим, что вспомогательный кубит в конце восстанавливает свое значение (повторным применением преобразования Адомара) в состояние |1) , способствуя изменению фазы композиции |x) < |1) в зависимости от значения fw (x).

Операция инверсии. Р =2 'К - I® '°8 п - оператор, применяемый на первых п кубитах. Оператор ^ задается в матричном виде:

К-

log n

(1 1 ... 1\ 11 ... 1

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

V1 1 ... 1

3. Получение результата вычисления. После проведения описанных выше макрошагов (шага операции изменения фазы состояния, представляющего информацию о wk , для которого выполняется wk = w и шага операции инверсии) ^л/п раз измеряем первые log n кубит в классическом базисе. Ответ: результат измерения.

2.3. Меры сложности и вероятность ошибки алгоритма. Операторное задание. Через QA(string,w) обозначим число применений алгоритмом A оператора Ofw (число запросов алгоритма к анализируемому тексту) при решении задачи поиска подстроки w в тексте string с учетом сложности реализации самого оператора запроса Ofw .

Через QA(n,m) обозначим максимум среди чисел QA(string,w) по всем string и w с параметрами N = Istringl, m = |w|,n = N — m + 1.

Через SA(string,w) обозначим число кубит, используемых алгоритмом A для решения задачи поиска подстроки w в строке string.

Через SA(n,m) обозначим максимум среди чисел SA(string,w) по всем string и w с параметрами N = Istringl, m = |w|,n = N — m + 1.

Через ErA(string,w) обозначим вероятность ошибки алгоритма, то есть ErA(string, w) - это вероятность следующего события: алгоритм A в результате решения задачи поиска подстроки w в тексте string выдает номер k позиции в тексте string такой, что wk = w.

Через ErA(n,m) обозначим максимум среди чисел ErA(string,w) по всем string и w с параметрами N = |string|, m = |w|,n = N — m + 1.

Пусть e £ (0,1). Будем говорить, что квантовый алгоритм A для задачи поиска подстроки w в строке string решает задачу с вероятностью ошибки не более e, если

ErA(n, m) < e.

Теорема 1. Для e = 1/n выполняется

ErAi(n, m) < e, QAi(n,m) = O(m^fn), SAi (n, m) = log n + m + 1.

Доказательство. Для кодировки номера подстроки необходимо log n кубит, m кубит - для кодирования соответствующих подстрок wk и 1 вспомогательный кубит. Таким образом, SAi (n, m) = log n + m +1.

Рассмотрим динамику изменения амплитуд при применении алгоритма A1 к начальному состоянию |string). Положим |stringo) = |string). Обозначим через ao исходную амплитуду при искомом базисном состоянии |k)|wk)|1) таком, что wk = w, а через во амплитуды всех остальных базисных состояний состояний начального состояния |stringo), то есть ao = 1/\fn = во = 1/\fn и «2 + (n — 1)во = = 1 .В силу введенных обозначений состояние |stringo) представимо в следующем

1

виде:

|siringo} = «0 Y^ 1^) ® К) ® |1) + во Y^ 1^) ® К) ® |1).

k:wk=w k:wk=w

После применения к начальному состоянию ^¿гт$о) последовательно ] раз двух макрошагов: 1) операции изменения фазы состояния, представляющего информацию о ш, для которого выполняется ик = и, и 2) операции инверсии (называемых в литературе итерацией Гровера) - амплитуды + 1)-го состояния ^¿гт^+х) будут выражаться формулами (см., например, работу [11] для подробного технического обоснования воздействия операторов 1) и 2) на состояния ^¿гт^-)):

п - 2 2(п - П п - 2 2

аз+1 = -а +--вз, вз+1 =-вз--аз •

п п п п

Имеем

^ггп0з+1) = аз+1 ^ |к) ® ) ® |1) + вз+1 к ® ) ® |1),

где (напомним, что рассматриваем случай, когда к, для которого ик = и, является единственным номером):

аЗ+1 + (п - 1)в2+1 = 1. Поэтому величины а и в можно задать как

ау = sin{(2j + 1)0}, = 1 cos{(2j + 1)0}.

1

vñ—г

Далее аг = 1, если (2r + 1)0 = п/2. На основе этих соображений определяется оптимальное число r итераций алгоритма поиска r = (п — 20)/40.

В работе [11] показано, что вероятность получения ошибочного результата не превосходит 1/n, если выполнить последовательно [п/(40)] итераций Гровера. Если n достаточно большое число, то 0 « sin 0 = 1/^/ñ, тогда

п Г r = т yn.

4

Так как в алгоритме одно обращение к оракулу - это тестирование целой подстроки, состоящей из m бит, то итоговое значение QA1(n, m) = 0(шл/п). □

2.4. Задание алгоритма в виде квантовой схемы. В общем виде детальная схема оракула представлена на рис. 1. Операция контролируемого поворота фазы последнего кубита Vотражена совокупностью двух прямоугольников Ш и Z. Внутреннее устройство прямоугольника Ш определяется искомым подсло-вом и .

Пример схемы оракула в случае, когда и = 01... 0, представлена на рис. 2. Каждому биту, кодирующему подстроку и, ставится в соответствие кубит из предпоследних т кубит регистра. На кубитах, соответствующих нулям из двоичной последовательности, кодирующей подстроку и, применяется гейт X два раза: до операции контролируемого изменения знака амплитуды на вспомогательном кубите, где предпоследние т кубит являются контролирующими, и после. Схема оператора V представлена на рис. 3. Схема итерации Гровера представлена на рис. 4. Итерация Гровера О обведена в пунктирную рамку. На общей схеме алгоритма, представленной на рис. 5, один пунктирный прямоугольник обозначает

Фo

^log n-i

Рис. 1. Квантовая схема оракула в алгоритме поиска подстроки в общем виде

Фо -

Фк^ п— 1 -

п —\х\

Ф\°ё п+1

фlog n+m-2 фlog n+m- i ^og n+m

X X

X • X

H — Z — H

Рис. 2. Квантовая схема оракула в алгоритме поиска подстроки 01... 0

Фo

^og n-i

- 210log n)(0log n| Ilog n-

Рис. 3. Схема оператора D

одну итерацию Гровера. Их необходимо повторить ^ yfn раз. После этого следует измерение первых log n кубит.

Количество запросов,выполняемых алгоритмом, равно O(my/n).

Результат работы алгоритма - число k такое, что w = wk .

2.5. Схемная сложность. Схемную сложность QSizeAi(n, m) квантового алгоритма A1 будем определять как число базисных операций, необходимых для реализации квантовой схемы, реализующей алгоритм A1 .

Теорема 2. QSizeAi(n, m) = O(y/n(m + log n)).

Доказательство. Действительно из описания схемы имеем, что QSizeAi(n, m) = Size(G)),

где Size(G) - это схемная сложность реализации итерации Гровера для данного алгоритма А1. Схемная сложность Size(G) итерации Гровера для А1 складывается

Рис. 4. Квантовая схема итерации алгоритма Гровера

Фо

^log n — 1

I ^og n фlog n+1

фlog n+m —2 ^og n+m— 1 фlog n+m

Рис. 5. Квантовая схема алгоритма поиска.

из схемной сложности Size(Of) схемы O и из схемной сложности Size(D) + 2 log n схемы D:

Size(G) = Size(Of) + Size(D) + 2 log n.

В силу описания реализации оператора Of имеем Size(Of) < 2m + 3. Оператор диффузии D является стандартным. Его реализация рассмотрена в ряде работ (см., например, работу [12]). Сложность схемы для D оценивается величиной Size(D) < 4 log n. □

Алгоритм A2. Двоичную строку (подстроку) w длины m будем считать также числом, 0 < w < 2m — 1. Обозначим через Set(string) множество (словарь текста string) всех различных подслов длины m в строке string. Напомним, что T(string) - это последовательность слов длины m, образованная из string. Понятно, что |Set(string)| < |T(string)|

В данном разделе P = {pi,... ,pd} будет обозначать множество первых d простых чисел, где d = d(n, m) = cnm, для целого c > 3.

Дадим описание алгоритма A2.

Первый этап алгоритма - классический: равновероятностно выбирается простое число p из множества P.

Второй этап (подготовка квантового состояния): для числа v £ {0, ..., 2m — 1} и p £ P обозначим через r(v)p - остаток от деления v/p, то есть v = cip + r(v)p, для некоторого ci. Через

Tp(string) = {r(wo)p,. .., r(wn—i)p}

обозначим последовательность слов (здесь остатки r(wj )p уже рассматриваются как двоичные слова), образованную из string. По Tp(string) порождается квантовое состояние:

1 n— 1

| string, p) = —= |k) <g) |r(wfc) n

v /—n

)®|1).

p

k=0

Третий этап (квантовый) алгоритма: к состоянию |string, p) и искомому слову w применяется алгоритм A1. В результате измерения первых log n кубит будет получен номер j £ {0,..., n—1}, который выдается в качестве ответа и объявляется искомым номером слова Wj такого, что Wj = w.

Комментарий. Алгоритм A1 в данном случае играет роль подпрограммы для алгоритма A2, применяемой для текста string и искомой последовательности w при выбранном параметре (простом числе) p £ P .В дальнейших выкладках результат k (номер слова Wk , для которого предположительно выполняется r(wk)p = = r(w)p) работы алгоритма A1 будем обозначать как A1(string, w,p), то есть A1 реализует отображение

A1 : (string, w,p) i—> k.

Теорема 3. Для произвольного целого c > 3 выполняется

ErA2(string, w)) < —|--,

cn

QA2(n, m) = O(\fnlogm), SA2(n, m) < O(log n + log m).

Доказательство теоремы 3 приводится ниже.

2.6. Доказательство теоремы 3. Для пары различных чисел wi,w2 £ £ {0,... 2m — 1} обозначим через PWl,W2 множество простых p £ P таких, что wi = w2 (mod p).

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

Лемма 1. Для произвольной пары различных чисел wi,w2 £ {0,. .., 2m — 1} выполняется

|PWi ,W2 1 < m.

Доказательство. Для простых p £ P имеем, что если wi = w2 (mod p), то их разность a = |wi — w2| £ {0,..., 2m — 1} кратна p. Значит,

a < 2m < pip2 • • • pm,

то есть число простых, делящих a, не превосходит m. Следовательно, для различных wi и w2 количество простых чисел из P, которые будут давать одинаковые остатки при делении wi и w2 на них, ограничено сверху величиной m. □

Далее докажем утверждения теоремы 3.

Оценка вероятности ErA2 (string, w) ошибки основывается на следующих соображениях. Для string и искомого слова w разобьем множество P на хорошее Pgood и плохое Pbad. Простое p £ P будем считать хорошим для string и w, если r(w)p = r(wj)p для всех wj £ T(string) таких, что w = wj. Тогда вероятность ошибки алгоритма A2 можно оценить сверху как вероятность ошибки алгоритма (процедуры) A1 при выпадении хорошего p £ P плюс вероятность выпадения плохого p £ P. При этом при выпадении плохого p возможен случай получения

верного результата при применении процедуры A1. Однако, считая все продолжения работы алгоритма A1 ошибочными при плохих p, мы только увеличиваем величину вероятности ошибки.

Рассмотрим более формально. Для множества Set(string) и искомой последовательности w положим

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

Pbad U Pw,v, Pgood P\Pbad.

veSet(siring)

Тогда вероятность ErA2 (string, w) оценивается так:

ErA2(string, w) < |P^d 1 + |Pg°0d| max {ErA1(string, w,p)} <

|P | |P | pepgood

< ^iiar1 + max {ErA1(string,w,p)}.

|P | pe Pgood

В силу леммы 1 имеем |Pbad| < mn. Комбинация двух предыдущих неравенств, верхняя оценка (теорема 1) для ErA1 и выбор множества P дают окончательную оценку

A2 / . ч nm 111

ErA (string, w) <--\--= —\--.

cnm n c n

Оценка величины запросной сложности Q A2 (n, m) следует из доказательства запросной сложности алгоритма A1. Отличие запросной сложности алгоритма A2 от запросной сложности алгоритма A1 заключается в том, что вместо числа m в алгоритме A2 используется число log m в силу сокращения количества используемых кубит для кодировки подстроки.

Далее оценим величину используемого количества SA2 (n, m) кубит.

Для кодировки номера подслова в строке string используется log n = = log (N — m + 1) кубит. Количество кубит, необходимых для кодировки остатка от деления w на p, зависит от величины p. Самое большое значение, которое может принять p - это простое число pcnm под номером cnm. По свойству простых чисел имеем

cnm cnm

pcnm < c1 --ln --

ln cnm ln cnm

или

pcnm < cnm ln cnm.

Количество кубит, необходимое для кодирования такого числа, не превышает величины

log (cnm ln cnm) = log c + log n + log m + log (ln cnm).

Таким образом, общее количество кубит оценивается сверху величиной O(log n + + log m).

Алгоритм A3. Третий алгоритм - «более квантовый, чем второй». В третьем алгоритме классический выбор простого p £ P, при котором вызывается процедура A1(string,w,p), заменяется на квантовый способ выбора такого p. За это мы «платим» привлечением дополнительного числа кубит и усложнением (слегка) начального состояния алгоритма и самого алгоритма. Поэтому более правильно было бы назвать этот алгоритм не A3, а A2+. Но мы сохраним обозначение A3 и порядковый номер «третий».

Пусть двоичная строка (подстрока) w = w1 . . . wm длины m рассматривается как число, 0 < w < 2m — 1. Напомним, что P = {p1,... ,pd} - множество первых d простых чисел. d = d(n, m) = cnm, c > 3 - целое.

Первый этап (подготовка квантового состояния).

Напомним, что через г(и>)р обозначается остаток от деления и>/р, то есть т = схр + г(и>)р для константы сх > 0. Порождается квантовое состояние:

1 d—1

~пУ] |1)|stringpi + i Vrf f-i

где

l=0

1 n— 1

|stringw+i) = |k) 0 |r(wk Wi) 0 |1)-

k=0

Второй этап (выбор простого числа).

Производится измерение первых log d кубит, то есть производится выбор номера l £ {0,..., d — 1}, тем самым выбирается простое число pi+i £ P.

Третий этап (квантовый).

К состоянию |str«ngpi+^ применяется алгоритм A1. В результате измерения первых logn кубит будет получен номер j £ {0,... ,n — 1}, такой, что r(w)pi+1 =

= r(Wj )pi + i .

Так как r(w)pi+1 = w mod pi+i, r(wj)pi+1 = Wj mod pi+i, то номер j и является искомым номером вхождения подстроки w в строке string.

Теорема 4. Для произвольного целого c > 3 выполняется

ErA3(string, w)) < - + —, cn

QA3(n, m) = 0(v/= log m), SA3(n, m) < O(log n + log m).

Действительно, ошибка равна ErA3(string, w)), сложность QA3(n, m) запросов алгоритма A3 совпадает со сложностью алгоритма A2. К величине SA3(n, m) сложности по памяти добавляется log d = log cnm кубит. Последнее совпадает с оценкой теоремы 3 с точностью до мультипликативной константы.

Из теоремы 2 и описания алгоритмов A2 и A3 вытекают следующие оценки на схемную сложность реализации алгоритмов A2 и A3 .

Теорема 5.

QSizeA2(n, m) = O(y/nlog(mn))

и

QSizeA3(n, m) = 0(v/=log (mn)).

Доказательство. Действительно, алгоритмы A2 и A3 используют алгоритм A1 в качестве основной квантовой процедуры. При этом искомое слово w представляется в схеме с использованием m кубит для A1 . Применение A1 в качестве процедуры использует уже log m кубит для анализа вхождения слова w в string. □

В качестве комментария к алгоритму A3 отметим, что его «большая кванто-вость» по сравнению с алгоритмом A2 технически заключается в применении, по сути, квантовой генерации случайных последовательностей. Известно, что квантовые генераторы случайных последовательностей (ГСЧ) в некотором смысле являются идеальными физическими ГСЧ.

3. Техника универсального хеширования для квантового поиска

Понятие универсального хеширования определено в работе [13] и достаточно подробно рассматривалось в целом ряде работ (см., например, [14, 15]). Мы определим универсальное семейство хеш-функций в соответствии с нашими целями. Семейство F = {/1,..., fd} словарных функций f : {0,1}m ^ {0,1}1 для I < m называется универсальным семейством хеш-функций (для области определений функций / - множества {0.1}m), если для некоторого е £ [0,1] и для произвольной пары v,w £ {0.1 }m выполняется

|FV,W 1 .

W- е

где Fw,v = {/ £ F : f (v) = f (w)}.

Для наших целей дополним определение универсального семейства хеш-функций следующим образом.

Универсальное семейство F = {f1,...,fd} хеш-функций f : {0,1}m ^ {0,1}1 для n < 2m и е £ [0,1] будем называть сильно (n, е) -универсальным семейством хеш-функций, если для каждого n-подмножества Set = {v1,...,vn} множества {0.1 }m и произвольного слова w £ {0.1 }m выполняется

|Fset,w I

|F| - е ,

где FSei,w = U Fv,w.

veSet

Заметим, что сильно (1,е)-универсальное семейство хеш-функций является е-универсальным семейством хеш-функций в стандартном понимании.

Примером сильно (n, е) -универсального семейства хеш-функций для множеств Set = T(string) и w является множество F = {Д,..., fd}, где функции fj определяются j-м простым числом pj так, что fj (w) = r(w)pj (слово w считается целым w £ {0,..., 2m — 1}, а r(w)pj - это (представленный в виде слова) остаток r от деления w на простое pj ). В силу доказательства теоремы 3 имеем, что для константы c > 3 b и d = cnm множество F = {f1,...,fd} является сильно (n, 1/c)-универсальным семейством хеш-функций для каждого множеств Set С {0,1}m мощности n и каждого слова w £ {0.1}m.

3.1. Алгоритм A2 в терминах сильно универсального семейства хеш-функций. В терминах сильно (n, е)-универсального семейства хеш-функций F = = {/ъ ..., fd} алгоритм A2 описывается следующим образом.

Первый этап алгоритма - классический: для множества T (string) (T(string) = n) и слова w выбирается сильно (n.е)-универсальное семейство хеш-функций F = {f1,...,fd}. Равновероятностно выбирается функция f из множества F.

Второй этап (подготовка квантового состояния): для функции f £ F и string. Через

Tf (string) = {f (wo) .. .,f (wn-1)}

обозначим последовательность значений функции f на элементах string. По Tf (string) порождается квантовое состояние

1 n-1

Istring, f) = V |Л) <g> |f (wfc)> ® |1>.

n

v fc=0

Третий этап (квантовый) алгоритма: к состоянию | string, f) и искомому слову w применяется алгоритм A1 . В результате измерения первых log n кубит будет получен номер j £ {0,..., n — 1}, который выдается в качестве ответа и объявляется искомым номером слова wj такого, что wj = w.

Применение понятия сильно универсального семейства хеш-функций в конструкции алгоритма A2 дает нам следующее обобщения теоремы 3.

Теорема 6. Для текста string, его n -множества T(string), слова w длины m пусть семейство F является сильно (n, е) -универсальным семейством хеш-функций F = {fi,...,fd}, где fj : {0, 1}m ^ {0,1}1. Пусть алгоритм A2 реализован на основе F. Тогда

ErA2 (string, w)) < е +--,

n

QA2(n, m) = 0(/V=),

SA2(n,m) < O(log n + /)

Аналогично модифицируется утверждение теоремы 4 для алгоритма A3.

4. Техника квантового хеширования для поиска

Понятие квантового хеширования, его свойства исследовались в ряде работ нашей группы [16-18].

Здесь мы определяем квантовую функцию в соответствии с потребностями настоящей работы.

Для {0,1}m и множества (H2)®s квантовых s кубитных состояний функцию

ф : {0,1}m ^ (H2)®s

будем называть квантовой нерастягивающей (сжимающей) функцией, если s < m (s < m). Квантовая хеш-функция определялась нами с намерением рассматривать криптографические аспекты хеширования. Здесь нас интересуют возможности квантовых функций как «сжимающих отображений» со свойством « устойчивости к коллизиям». Эти два свойства лежат в основе применений хеширования. Понятие «квантовая устойчивая к коллизиям функция» определим следующим образом.

Для 0 < е < 1 квантовую функцию ф будем называть е-устойчивой к коллизиям, если для каждой пары w, w' различных элементов из X скалярное произведение состояний ^(w)), ^(w')) удовлетворяет неравенству

КФМ|ФЮ)| < е.

Состояния ^(w)) и ^(w')) будем называть е-ортогональными.

Требование е -ортогональности - аналог устойчивости к коллизиям для классических хеш-функций [18].

Собственно в терминах данного раздела алгоритм A1 применяет нерастягива-ющую 0 -устойчивую квантовую хеш-функцию

ф{0,1}m ^ (H2)®m вида ф : w ^ |w).

Имеем ^(w^(w')) = 0. При этом отметим, что оракульное преобразование Ofw алгоритма A1 задается на основе хеш-функции ф алгоритма.

Заключение

В работе представлены три квантовых алгоритма A1 , A2 и A3 поиска вхождения слова w в текст string. Алгоритм A1 - это по сути алгоритм квантового поиска Гровера, соответствующий задаче. Здесь мы используем оригинальные условия применения алгоритма Гровера, а именно, считаем, что в тексте string имеется (обязательно) единственное вхождение слова w. Основной (заявленный) результат экономии числа используемых кубит достигается в алгоритмах A2 и A3 с применением алгоритма A1 в качестве основной квантовой процедуры. Показаны возможности применения хеширования - универсального хеширования и техники квантового хеширования. По сути, как это показано в разд. 3 и 4, выигрыш в числе используемых кубит в алгоритмах A2 и A3 достигается при применении квантового хеширования и использования свойств универсального хеширования.

Важно отметить, что в настоящей работе, как и в работе [9], алгоритмы применяются к квантовому состоянию (начальному состоянию), которое заранее готовится на основе анализируемого текста string. Разумеется, подготовка начального состояния требует предварительной работы, но эта работа не учитывается в алгоритмах. Отметим, что проблема подготовки начального состояния, как особой задачи, начинает обсуждаться в научном сообществе, занимающемся квантовым поиском информации. В частности, на проблему сложности подготовки начального состояния обратили внимание авторы работы [19].

Еще раз отметим, что в настоящей работе рассматривался случай, когда заранее точно известно, что искомая подстрока встречается в тексте ровно один раз. Задача может быть расширена, если количество вхождений больше 1 и заранее известно, а также если количество вхождений подстроки заранее неизвестно. Оценка временной и пространственной сложности алгоритма поиска Гровера в этих случаях описана в работе [11].

Благодарности. Исследование выполнено за счет гранта Российского научного фонда (проект № 19-19-00656).

Литература

1. Китаев А., Шень А., Вялый М. Классические и квантовые вычисления. - М.: МЦ-НМО, 1999. - 192 с.

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

2. Grover L.K. A fast quantum mechanical algorithm for database search // Proc. 28th Annu. ACM Symp. on Theory of Computing. - 1996. - P. 212-219. - doi: 10.1145/237814.237866.

3. Gilliam A., Pistoia M., Gonciulea C. Optimizing quantum search using a generalized version of Grover's algorithm. - 2020. - arXiv:2005.06468.

4. Brassard G., Hoyer P., Mosca M., Tapp A. Quantum amplitude amplification and estimation // Samuel J. Lomonaco Jr. (Eds.) AMS Contemporary Mathematics. - 2002. -V. 305. - P. 53-74.

5. Reitzner D., Nagaj D., Buzek V. Quantum walks. - 2012. - arXiv:1207.7283.

6. Ablayev F., Ablayev M., Huang J.Zh., Khadiev K., Salikhova N., Wu D. On quantum methods for machine learning problems part I: Quantum tools // Big Data Min. Anal. -2019. - V. 3, No 1. - P. 41-55. - doi: 10.26599/BDMA.2019.9020016.

7. Ablayev F., Ablayev M., Huang J.Zh., Khadiev K., Salikhova N., Wu D. On quantum methods for machine learning problems part II: Quantum classification algorithms // Big Data Min. Anal. - 2019. - V. 3, No 1. - P. 56-67. - doi: 10.26599/BDMA.2019.9020018.

8. Knuth D.E., Morris J.H. Jr., Pratt V.R. Fast pattern matching in strings // SIAM J. Comput. - 1977. - V. 6, No 2. - P. 323-350. - doi: 10.1137/0206024.

9. Ramesh H., Vinay V. String matching in O(y/n + y/m) quantum time // J. Discrete Algorithms. - 2003. - V. 1, No 1. - P. 103-110. - doi: 10.1016/S1570-8667(03)00010-8.

10. Ambainis A. Understanding quantum algorithms via query complexity // Proc. Int. Congress of Mathematicians (ICM 2018). - 2019. - P. 3265-3285. - doi: 10.1142/9789813272880_0181.

11. Boyer M., Brassard G., H0yer P., Tapp A. Tight bounds on quantum searching // Fortschr. Phys.: Prog. Phys.. - 1998. - V. 46, No 4-5. - P. 493-505. - doi: 10.1002/(SICI)1521-3978(199806)46:4/5<493::AID-PR0P493>3.0.C0;2-P.

12. Zhang K., Korepin V.E. Examples on quantum search algorithm with optimized depth // Phys. Rev. A. - 2020. - V. 101, No 3. - Art. 032346, P. 1-12. - doi: 10.1103/PhysRevA.101.032346.

13. Carter J.L., Wegman M.N. Universal classes of hash functions // J. Comput. System Sci. - 1979. - V. 18, No 2. - P. 143-154. - doi: 10.1016/0022-0000(79)90044-8.

14. Stinson D.R. Universal hashing and authentication codes // Des. Codes Cryptogr. -1994. - V. 4. - P. 369-380. - doi: 10.1007/BF01388651.

15. Stinson D.R. Combinatorial techniques for universal hashing // J. Comput. Syst. Sci. -1994. - V. 48, No 2. - P. 337-346. - doi: 10.1016/S0022-0000(05)80007-8.

16. Ablayev F.M., Vasiliev A.V. Cryptographic quantum hashing // Laser Phys. Lett. -2013. - V. 11, No 2. - Art. 025202, P. 1-4. - doi: 10.1088/1612-2011/11/2/025202.

17. Ablayev F., Ablayev M. 0n the concept of cryptographic quantum hashing // Laser Phys. Lett. - 2015. - V. 12, No 12. - Art. 125204, P. 1-5. - doi: 10.1088/16122011/12/12/125204.

18. Аблаев Ф.М., Аблаев М.Ф., Васильев А.В. Универсальное квантовое хеширование // Учен. зап. Казан. ун-та. Сер. Физ.-матем. науки. - 2014. - Т. 156, кн. 3. - C. 7-18.

19. Macaluso A., Clissa L., Lodi St., Sartori C. Quantum Ensemble for Classification. -2020. - arXiv:2007.01028.

Поступила в редакцию 23.07.2020

Аблаев Марат Фаридович, младший научный сотрудник лаборатории нелинейной оптики; научный сотрудник лаборатории «Квантовые методы обработки информации» Казанский физико-технический институт им. Е.К. Завойского ФИЦ Казанский научный центр РАН

ул. Сибирский тракт, д. 10/7, г. Казань, 420029, Россия Казанский (Приволжский) федеральный университет

ул. Кремлевская, д. 18, г. Казань, 420008, Россия E-mail: mablayev@gmail.com

Салихова Наиля Маратовна, младший научный сотрудник лаборатории «Квантовые методы обработки информации»

Казанский (Приволжский) федеральный университет

ул. Кремлевская, д. 18, г. Казань, 420008, Россия E-mail: nailyasalikhova66@gmail. com

ISSN 2541-7746 (Print) ISSN 2500-2198 (Online) UCHENYE ZAPISKI KAZANSKOGO UNIVERSITETA. SERIYA FIZIKO-MATEMATICHESKIE NAUKI (Proceedings of Kazan University. Physics and Mathematics Series)

2020, vol. 162, no. 3, pp. 241-258

doi: 10.26907/2541-7746.2020.3.241-258

Quantum Search for a Given Substring in the Text Using a Hashing Technique

M.F. Ablayeva'6*, N.M. Satikhova6**

aZavoisky Physical-Technical Institute, FRC Kazan Scientific Center, Russian Academy of Sciences, Kazan, 420029 Russia

bKazan Federal University, Kazan, 420008 Russia

E-mail: *mablayev@gmail.com, **nailyasalikhova66@gmail.com

Received July 23, 2020 Abstract

The problem of searching for a given substring in the text was considered. It is known that classical algorithms solve this problem in a linear time depending on the length of the text and the specified template. Quantum algorithms speed up the search by "square root times".

In this paper, we proposed a quantum algorithm that solves the search problem a) with a high probability of getting the correct result and b) with the same acceleration (by "square root times") as compared with the classical one, but it c) requires much less memory (based on the number of qubits used) than the previously known quantum algorithms. Keywords: quantum algorithms, string search, quantum search

Acknowledgments. The study was supported by the Russian Science Foundation (project no. 19-19-00656).

Figure Captions

Fig. 1. General quantum circuit of the oracle in the algorithm of searching for a substring.

Fig. 2. Quantum circuit of the oracle in the algorithm of searching for the substring 01... 0.

Fig. 3. Circuit of the operator D.

Fig. 4. Quantum circuit of the iteration of Grover's algorithm. Fig. 5. Quantum circuit of the searching algorithm.

References

1. Kitaev A., Shen' A., Vyalyi M. Klassicheskie i kvantovye vychisleniya [Classical and Quantum Computation]. Moscow, MTsNMO, 1999. 192 p. (In Russian)

2. Grover L.K. A fast quantum mechanical algorithm for database search. Proc. 28th Annu. ACM Symp. on Theory of Computing, 1996, pp. 212-219. doi: 10.1145/237814.237866.

3. Gilliam A., Pistoia M., Gonciulea C. Optimizing quantum search using a generalized version of Grover's algorithm. 2020, arXiv:2005.06468.

4. Brassard G., Hoyer P., Mosca M., Tapp A. Quantum amplitude amplification and estimation. In: Samuel J. Lomonaco Jr. (Eds.) AMS Contemporary Mathematics. 2002, vol. 305, pp. 53-74.

5. Reitzner D., Nagaj D., Buzek V. Quantum walks. 2012, arXiv:1207.7283.

6. Ablayev F., Ablayev M., Huang J.Zh., Khadiev K., Salikhova N., Wu D. On quantum methods for machine learning problems part I: Quantum tools. Big Data Min. Anal., 2019, vol. 3, no. 1, pp. 41-55. doi: 10.26599/BDMA.2019.9020016.

7. Ablayev F., Ablayev M., Huang J.Zh., Khadiev K., Salikhova N., Wu D. On quantum methods for machine learning problems part II: Quantum classification algorithms. Big Data Min. Anal., 2019, vol. 3, no. 1, pp. 56-67. doi: 10.26599/BDMA.2019.9020018.

8. Knuth D.E., Morris J.H. Jr., Pratt V.R. Fast pattern matching in strings. SIAM J. Comput., 1977, vol. 6, no. 2, pp. 323-350. doi: 10.1137/0206024.

9. Ramesh H., Vinay V. String matching in 0(yfn + ypm) quantum time. J. Discrete Algorithms, 2003, vol. 1, no. 1, pp. 103-110. doi: 10.1016/S1570-8667(03)00010-8.

10. Ambainis A. Understanding quantum algorithms via query complexity. Proc. Int. Congr. of Mathematicians (ICM 2018), 2019, pp. 3265-3285. doi: 10.1142/9789813272880_0181.

11. Boyer M., Brassard G., H0yer P., Tapp A. Tight bounds on quantum searching. Fortschr. Phys.: Prog. Phys., 1998, vol. 46, nos. 4-5, pp. 493-505. doi: 10.1002/(SICI)1521-3978(199806)46:4/5¡493::AID-PROP493¿3.0.CO;2-P.

12. Zhang K., Korepin V.E. Examples on quantum search algorithm with optimized depth. Phys. Rev. A., 2020, vol. 101, no. 3, art. 032346, pp. 1-12. doi: 10.1103/Phys-RevA.101.032346.

13. Carter J.L., Wegman M.N. Universal classes of hash functions. J. Comput. Syst. Sci., 1979, vol. 18, no. 2, pp. 143-154. doi: 10.1016/0022-0000(79)90044-8.

14. Stinson D.R. Universal hashing and authentication codes. Des. Codes Cryptogr., 1994, vol. 4, pp. 369-380. doi: 10.1007/BF01388651.

15. Stinson D.R. Combinatorial techniques for universal hashing. J. Comput. Syst. Sci., 1994, vol. 48, no. 2, pp. 337-346. doi: 10.1016/S0022-0000(05)80007-8.

16. Ablayev F.M., Vasiliev A.V. Cryptographic quantum hashing. Laser Phys. Lett., 2013, vol. 11, no. 2, art. 025202, pp. 1-4. doi: 10.1088/1612-2011/11/2/025202.

17. Ablayev F., Ablayev M. On the concept of cryptographic quantum hashing. Laser Phys. Lett., 2015, vol. 12, no. 12, art. 125204, pp. 1-5. doi: 10.1088/1612-2011/12/12/125204.

18. Ablayev F.M., Ablayev M.F., Vasilev A.V. Universal quantum hashing. Uchenye Zapiski Kazanskogo Universiteta. Seriya Fiziko-Matematicheskie Nauki, 2014, vol. 156, no. 3, pp. 7-18. (In Russian)

19. Macaluso A., Clissa L., Lodi St., Sartori C. Quantum Ensemble for Classification. 2020, arXiv:2007.01028.

Для цитирования: Аблаев М.Ф., Салихова Н.М. Квантовый поиск заданной подстроки в тексте на основе техники хеширования // Учен. зап. Казан. ун-та. Сер. Физ.-\ матем. науки. - 2020. - Т. 162, кн. 3. - С. 241-258. - doi: 10.26907/2541-7746.2020.3.241258.

For citation: Ablayev M.F., Salikhova N.M. Quantum search for a given substring in / the text using a hashing technique. Uchenye Zapiski Kazanskogo Universiteta. Seriya \ Fiziko-Matematicheskie Nauki, 2020, vol. 162, no. 3, pp. 241-258. doi: 10.26907/25417746.2020.3.241-258. (In Russian)

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