Это не официальный сайт wikipedia.org 01.01.2023

Лемма Шварца — Зиппеля — Википедия

Лемма Шварца — Зиппеля

Лемма Шварца — Зиппеля (также лемма Де Милло — Липтона — Шварца — Зиппеля) — результат, широко используемый в проверке равенства многочленов, то есть, в задаче проверки некоторого многочлена многих переменных на тождественное равенство нулю. Лемма была независимо открыта Джеком Шварцем[1], Ричардом Зиппелем[2], а также Ричардом Де Милло и Ричардом Липтоном, хотя версия Де Милло и Липтона появилась на год раньше результата Шварца и Зиппеля[3]. Версия леммы для конечных полей было доказана Ойстином Оре в 1922 году[4].

ЛеммаПравить

Входом задачи является многочлен от n   переменных над полем F  . Он может быть в задан в виде арифметической схемы или как определитель некоторой матрицы многочленов. На текущий момент нет известных детерминированных субэкспоненциальных алгоритмов, позволяющих проверить, что этот многочлен ненулевой. Однако, есть известные рандомизированные алгоритмы, решающие данную задачу за полиномиальное время. При их анализе обычно требуется оценить вероятность того, что ненулевой многочлен будет равен нулю в некоторой случайным образом выбранной точке. Лемма Шварца — Зиппеля формулируется так:

Пусть P F [ x 1 , x 2 , , x n ]   — ненулевой многочлен степени d 0   над полем F  . Пусть S   — конечное подмножество F   и пусть элементы r 1 , r 2 , , r n   были выбраны из S   равномерно и независимо друг от друга. Тогда Pr [ P ( r 1 , r 2 , , r n ) = 0 ] d | S |  .

ПримененияПравить

Значимость леммы Шварца — Зиппеля и проверки равенства многочленов следует из алгоритмов, которые могут быть сведены к этой задаче.

Сравнение двух многочленовПравить

Даны два многочлена p 1 ( x )   и p 2 ( x )  , верно ли, что

p 1 ( x ) p 2 ( x ) ?  

Данную задачу можно свести к проверке равенства многочленов, так как достаточно проверить, что

[ p 1 ( x ) p 2 ( x ) ] 0.  

Таким образом, если возможно определить, что

p ( x ) 0 ,  

где

p ( x ) = p 1 ( x ) p 2 ( x ) ,  

то также можно определить, равны ли данные два многочлена.

Сравнение двух многочленов может быть использовано в анализе программ с ветвлением. Read-once программа с ветвлением может быть представлена в виде мультилинейного многочлена, который вычисляет (над некоторым полем) на входе из нулей и единиц ту же булеву функцию, что и программа с ветвлением. Таким образом, две программы с ветвлением вычисляют одну и ту же булеву функцию если и только если соответствующие многочлены равны. Значит, проверка равенства булевых функций, которые вычисляются read-once программами с ветвлением может быть сведена к проверке равенства многочленов.

Проверка простотыПравить

Дано число n Z +  , является ли n   простым числом?

Маниндра Аграваль и Соменат Бисвас разработали простой рандомизированный алгоритм, использующий проверки равенства многочленов для определения простоты числа n  .

Они показали, что все простые числа n   (и только простые числа) удовлетворяют следующему сравнению:

( 1 + z ) n = 1 + z n ( mod n ) .  

Указанный результат следует из эндоморфизма Фробениуса.

Пусть

P n ( z ) = ( 1 + z ) n 1 z n .  

Тогда P n ( z ) = 0 ( mod n )   если и только если n   является простым числом[5]. Однако так как n   может как быть, так и не быть простым числом, метод Шварца — Зиппеля здесь работать не будет. Аграваль и Бисвас используют более сложную технику, которая включает в себя деление P n   на случайный приведённый многочлен небольшой степени.

Совершенное паросочетаниеПравить

Дан граф G = ( V , E )   на n   вершинах, где n   — чётное число. Содержит ли G   совершенное паросочетание?

Определитель матрицы Татта не является тождественно нулевым многочленом если и только если в графе есть совершенное паросочетание.


Подмножество D   множества рёбер E   называется паросочетанием если каждая вершина из V   инцидентна не более, чем одному ребру из D  . Паросочетание называется совершенным если каждая вершина из V   инцидентна ровно одному ребру из D  . Матрица Татта A   это матрица:

A = [ a 11 a 12 a 1 n a 21 a 22 a 2 n a n 1 a n 2 a n n ]  

где

a i j = { x i j если ( i , j ) E  и  i < j x j i если ( i , j ) E  и  i > j 0 иначе .  

Определитель матрицы Татта (как многочлен от x i j , i < j  ) задаётся как определитель этой кососимметричной матрицы, который равен квадрату пфаффиана матрицы A   и не равен нулю тождественно если и только если в графе есть совершенное паросочетание.

Таким образом, используя проверку равенства многочленов, можно проверить, содержит ли произвольный граф G   совершенное паросочетание.

В особом случае сбалансированного двудольного графа на n = m + m   вершинах матрица Татта принимает вид блочной матрицы

A = ( 0 X X t 0 )  

Первые m   строк (и, соответственно, столбцов) индексированы первой долей двудольного графа, а последние m   строк — второй долей. В данном случае пфаффиан (с точностью до знака) совпадает с обычным определителем матрицы X   размера m × m  . Матрица X   при этом является матрицей Эдмондса данного двудольного графа.

ПримечанияПравить

  1. (Schwartz 1980)
  2. (Zippel 1979)
  3. (DeMillo & Lipton 1978)
  4. Ö. Ore, Über höhere Kongruenzen. Norsk Mat. Forenings Skrifter Ser. I (1922), no. 7, 15 pages.
  5. (Agrawal 2003)

ЛитератураПравить

СсылкиПравить