Введение в компьютерную алгебру
Панкратьев Евгений Васильевич

Содержание


Лекция 1. Введение

В данной лекции рассматриваются основные понятия компьютерной алгебры. Приведен краткий обзор систем и алгоритмов компьютерной алгебры

Предисловие

Настоящее пособие составлено на основе спецкурсов, читавшихся автором на механико-математическом факультете в течение более 10 лет. Выбор материала в значительной мере определялся пристрастиями автора. Наряду с классическими результатами компьютерной алгебры в этих спецкурсах (и в настоящем пособии) нашли отражение исследования нашего коллектива. Прежде всего, это относится к теории дифференциальной размерности. Теорией дифференциальной размерности мы начали заниматься по инициативе, под руководством и при активном участии А.В. Михалева в конце 70-х—начале 80-х годов прошлого века [13]. Наряду с теоретическими исследованиями, нами был разработан комплекс программ на алгоритмическом языке REFAL для вычислений в дифференциальных и разностных модулях [11]. Результаты многолетних исследований, связанных с конструктивными методами в кольцах дифференциальных и разностных многочленов и теорией дифференциально-разностной размерности, опубликованы в монографии [20]. Частично эти результаты отражены в настоящем курсе. Пользуюсь случаем выразить глубокую признательность Алексадру Васильевичу Михалеву, в значительной мере благодаря которому появился этот курс. Я также очень благодарен Марине Владимировне Кондратьевой, Александру Борисовичу Левину, Андрею Витальевичу Астрелину, Олегу Дмитриевичу Голубицкому, Алексею Игоревичу Зобнину и другим коллегам, работавшим вместе с нами в области компьютерной алгебры. Исследования выполнялись в лаборатории вычислительных методов и на кафедре высшей алгебры механико-математического факультета МГУ, и я признателен коллективу лаборатории и кафедры за очень доброжелательное отношение к нашей группе.

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

Компьютерная алгебра активно развивается, пополняется новыми результатами. Данное пособие охватывает только малую ее часть. Надеюсь, что в ближайшем будущем появятся новые, более полные учебники по компьютерной алгебре, в создании которых мне хотелось бы принять посильное участие.

Введение

Что такое компьютерная алгебра. Компьютерная алгебра — область математики, лежащая на стыке алгебры и вычислительных методов. Для нее, как и для любой области, лежащей на стыке различных наук, трудно определить четкие границы. Часто говорят, что к компьютерной алгебре относятся вопросы слишком алгебраические, чтобы содержаться в учебниках по вычислительной математике, и слишком вычислительные, чтобы содержаться в учебниках по алгебре. При этом ответ на вопрос о том, относится ли конкретная задача к компьютерной алгебре, часто зависит от склонностей специалиста.

Термин "компьютерная алгебра" возник как синоним терминов "символьные вычисления" , "аналитические вычисления", "аналитические преобразования" и т. д. Даже в настоящее время этот термин на французском языке дословно означает "формальные вычисления ".

В чем основные отличия символьных вычислений от численных и почему возник термин "компьютерная алгебра" ?

Когда мы говорим о вычислительных методах, то считаем, что все вычисления выполняются в поле вещественных или комплексных чисел. В действительности же всякая программа для ЭВМ имеет дело только с конечным набором рациональных чисел, поскольку только такие числа представляются в компьютере. Для записи целого числа отводится обычно 16 или 32 двоичных символа (бита), для вещественного—32 или 64 бита. Это множество не замкнуто относительно арифметических операций, что может выражаться в различных переполнениях, например, при умножении достаточно больших чисел или при делении на маленькое число. Еще более существенной особенностью вычислительной математики является то, что арифметические операции над этими числами, выполняемые компьютером, отличаются от арифметических операций в поле рациональных чисел,—более того, для компьютерных операций не выполняются основные аксиомы поля (ассоциативности, дистрибутивности). Эти особенности компьютерных вычислений оцениваются в терминах погрешности или точности вычислений. Оценка погрешности представляет одну из основных проблем вычислительной математики. Каждую задачу требуется решить с использованием имеющихся ресурсов ЭВМ, за обозримое время, с заданной точностью.

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

В компьютерной алгебре вещественные и комплексные числа практически не применяются, зато широко используются алгебраические числа. Алгебраическое число задается своим минимальным многочленом, а иногда для его задания требуется указать интервал на прямой или область в комплексной плоскости, где содержится единственный корень данного многочлена. Многочлены играют в символьных вычислениях исключительно важную роль. На использовании полиномиальной арифметики основаны теоретические методы аналитической механики, они применяются во многих областях математики, физики и других наук. Кроме того, в компьютерной алгебре рассматриваются такие объекты, как дифференциальные поля (функциональные поля), допускающие показательные, логарифмические, тригонометрические функции, матричные кольца (элементы матрицы принадлежат кольцам достаточно общего вида) и другие. Даже при арифметических операциях над такими объектами происходит разбухание информации, и для записи промежуточных результатов вычислений требуется значительный объем памяти ЭВМ.

Ограничения на алгоритмы решаемых компьютерной алгеброй задач накладываются имеющимися ресурсами ЭВМ и обозримостью времени счета. Однако ограничения по времени счета и по используемой памяти в символьных вычислениях существенно более обременительны, чем в вычислительных методах.

В научных исследованиях и технических расчетах специалистам приходится гораздо больше заниматься преобразованиями формул, чем собственно численным счетом. Тем не менее, с появлением ЭВМ основное внимание уделялось автоматизации численных вычислений, хотя ЭВМ начали применяться для решения таких задач символьных преобразований, как, например, символьное дифференцирование, еще в 50-х годах прошлого века. Активная разработка систем компьютерной алгебры началась в конце 60-х годов. С тех пор создано значительное количество различных систем, получивших различную степень распространения; некоторые системы продолжают развиваться, другие отмирают, и постоянно появляются новые.

Системы компьютерной алгебры. Системы компьютерной алгебры можно условно разделить на системы общего назначения и специализированные. К системам общего назначения относятся MACSYMA, REDUCE, MATEMATICA, MAPLE, AXIOM и другие системы. В 80-е годы прошлого века широкое распространение в СССР получила система REDUCE. Она первоначально предназначалась для решения физических задач, разрабатывалась на наиболее широко распространенных компьютерах, разработка до определенного времени не носила коммерческого характера (система до конца 80-х годов распространялась бесплатно), открытый характер системы позволил привлечь к ее разработке огромную армию пользователей, обогативших систему многочисленными пакетами для решения отдельных задач. MACSYMA, так же, как и REDUCE, является "старой" системой. В отличие от системы REDUCE, MACSYMA разрабатывалась с самого начала как коммерческий продукт. В ней более тщательно проработаны алгоритмические вопросы, ее эффективность существенно выше, но меньшее ее распространение можно объяснить двумя обстоятельствами: длительное время она была реализована только на малом числе "экзотических" компьютеров и распространялась только на коммерческой основе. Система MAPLE, созданная в 80-х годах прошлого века в Канаде, с самого начала была задумана как система для персональных компьютеров, учитывающая их особенности. Она развивается "вширь и вглубь" , даже ее ядро переписывалось с одного алгоритмического языка на другой. В настоящее время MAPLE широко применяется во многих странах (в частности, в США и Канаде) в учебном процессе, а также в различных областях научных и технических исследований. В конце прошлого века получила широкое распространение и сейчас быстро развивается система MATEMATICA. Ее успех в значительной степени объясняется ее широкими графическими возможностями, а также электронной документацией, которую можно рассматривать как электронную библиотеку, посвященную различным разделам математики и информатики. Особое место среди систем компьютерной алгебры занимает система AXIOM. В отличие от остальных систем, представляющих собой пакеты программ, общение с которыми осуществляется на некотором алголоподобном языке, система AXIOM, развившаяся из системы SCRATCHPAD-II, имеет дело с более привычными для математиков объектами. В частности, в ней ключевым понятием является понятие категории: здесь можно рассматривать, например, категории множеств, полугрупп, дифференциальных колец, левых модулей и т. д. Система имеет высокую степень универсальности, требует для своей реализации мощных компьютеров, распространяется за достаточно высокую плату, поэтому используется только в ограниченном числе мощных университетских и научных центров.

Специализированные системы отличаются более высокой эффективностью, но область их применения ограничена. К специализированным системам относятся такие системы, как CALEY и GAP — специализированные системы для вычислений в теории групп, MACAULEY, CoCoA, Singular — системы разной степени универсальности для вычислений в кольце многочленов, SCHOONSHIP — специализированная система для вычислений в физике высоких энергий, muMATH и ее правонаследница DERIVE — системы, широко используемые в учебном процессе (в частности, в Австрии лицензия на установку системы DERIVE приобретена для всех средних школ), и многие другие.

Алгоритмы компьютерной алгебры. Компьютерная алгебра имеет дело с алгоритмами, которые существенно отличаются от алгоритмов, используемых в вычислительной математике. Алгоритмы вычислительной математики должны давать возможность решать задачу с требуемой точностью при заданных вычислительных ресурсах, наиболее существенными из которых являются ограничения по используемой памяти и времени счета. В компьютерной алгебре вычисления обычно производятся без округления, анализу сходимости уделяется значительно меньше внимания, но используется значительно более широкий набор математических, в первую очередь алгебраических, объектов сложной структуры, и ограничения по времени счета, а особенно по используемой памяти, становятся гораздо более обременительными.

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

В конце прошлого века бурно развивались исследования в трех областях компьютерной алгебры — теории базисов Гребнера, факторизации многочленов и интегрирования в конечном виде. Именно этим вопросам, в первую очередь, посвящено настоящее пособие.

Оно начинается с рассмотрения проблемы представления данных, которую можно сформулировать в следующем виде. Имеется множество объектов T и на нем отношение эквивалентности Требуется в каждом классе эквивалентных объектов выбрать единственного представителя этого класса, для основных алгебраических областей: кольца целых чисел, поля рациональных чисел, конечных полей, кольца многочленов и поля рациональных функций, алгебраических и трансцендентных расширений полей. Кроме того, в лекции 1 рассматриваются арифметические операции в этих областях.

Отдельная лекция (лекция 2) посвящена алгоритмам вычисления наибольших общих делителей целых чисел и многочленов. Здесь же приводятся некоторые оценки для коэффициентов делителя многочлена от одной переменной.

Задача представления данных для факторколец кольца многочленов приводит к введению понятия базисов Гребнера полиномиальных идеалов. Рассматривая образующие полиномиального идеала как систему нелинейных алгебраических уравнений, базис Гребнера можно трактовать как некоторую каноническую форму этой системы. Для случая многочленов от одной переменной над некоторым полем в качестве такой "канонической формы" можно рассматривать наибольший общий делитель этих многочленов, который может быть получен, например, с помощью алгоритма Евклида. Для системы линейных уравнений от многих переменных в качестве "канонической формы" можно взять диагональную форму системы (т. е. систему вида ), которая может быть получена с помощью метода Гаусса. В общем случае алгоритмы построения базиса Гребнера можно считать обобщением алгоритма Евклида и метода Гаусса.

Теория базисов Гребнера рассматривается в лекции 3 . Изложение не ограничивается случаем полиномиальных идеалов: строится более общая теория, применимая также к подмодулям свободных полиномиальных, дифференциальных и разностных модулей. Наряду с классическими базисами Гребнера рассматривается их специальный случай, называемый инволютивными базисами.

Базисы Гребнера имеют многочисленные приложения. В частности, они позволяют определить, совместна ли система нелинейных алгебраических уравнений, и, если система совместна, то определить, сколько эта система имеет решений над алгебраически замкнутым полем (если множество решений бесконечно, то определить размерность многообразия решений). Эти вопросы изучаются в рамках теории размерностных многочленов (многочленов Гильберта). Свойства таких многочленов и алгоритмы их вычисления приведены в лекции 4.

Лекция 5 посвящена задаче разложения многочленов на неприводимые множители. Мы рассматриваем эту задачу в следующей постановке: дан многочлен с целыми коэффициентами от одной переменной, требуется разложить его на неприводимые множители. С точки зрения "чистого" математика эта задача давно решена полностью и окончательно: получен алгоритм, позволяющий находить требуемое разложение "за конечное число шагов". Один из таких алгоритмов получен в 1882 году Кронекером, чьим именем он и называется в настоящее время, хотя за 100 лет до Кронекера этот алгоритм был известен австрийскому астроному Шуберту. Следующий шаг в исследовании алгоритмов факторизации был сделан только в 60-х годах прошлого столетия, когда был найден достаточно эффективный алгоритм для разложения на множители многочленов с коэффициентами из конечного поля. Использование этого алгоритма в сочетании с леммой Гензеля позволило получить алгоритмы факторизации многочленов с целыми коэффициентами, пригодные для практической реализации. С конца 60-х годов прошлого века появляется большое количество работ по факторизации. Предлагаются усовершенствования алгоритмов, направленные на увеличение их быстродействия, на расширение области их применения, в частности, рассматривается задача факторизации многочленов от одной и многих переменных с коэффициентами из конечных полей, из полей алгебраических чисел и т.д. Крупным вкладом в теорию факторизации многочленов явилась работа [24], позволившая получить алгоритм факторизации, сложность которого оценивается полиномом от степени исходного многочлена.

Наконец, лекция 6 посвящена одной из проблем дифференциальной компьютерной алгебры.

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

Операция дифференцирования легко описывается алгебраически, и ее реализация не представляет трудностей. Гораздо сложнее обстоит дело с обратной операцией - интегрированием. Если F - дифференциальное поле и то не обязательно существует такой, что g'=f. Задача интегрирования в конечном виде в общем случае формулируется следующим образом. Пусть и - два класса дифференциальных полей. Требуется построить алгоритм, который для любого элемента f любого дифференциального поля F из класса либо находит дифференциальное поле G в классе и элемент такой, что g'=f, либо доказывает, что такого элемента не существует ни в каком поле класса В классической постановке задачи - класс полей элементарных функций. Различные методы интегрирования изучаются в курсе математического анализа, но до недавнего времени они не были оформлены в виде алгоритмов, применимых к широкому классу функций, в частности, эти методы часто позволяли проинтегрировать функцию, если элементарный интеграл у нее существует, но далеко не всегда позволяли доказать отсутствие элементарного интеграла.

Алгоритм интегрирования в конечном виде функций из чисто трансцендентного расширения поля рациональных функций, порожденного экспонентами и логарифмами, был сформулирован в 1969 году Ришем [29]. Проверка, принадлежит ли подынтегральная функция данному классу, осуществляется с помощью структурной теоремы. Далее теорема Лиувилля позволяет определить вид элементарного интеграла, если такой существует. Вычисление интеграла или доказательство его отсутствия производится методом неопределенных коэффициентов с использованием рекурсии. Алгоритм интегрирования алгебраических функций (элементов алгебраического расширения поля рациональных функций от одной переменной) был сформулирован Дж. Дэвенпортом [6] в 1982 г. Этот алгоритм использует глубокие результаты алгебраической геометрии и весьма сложен для реализации. Дальнейшее развитие алгоритмы интегрирования в конечном виде получили в работах различных математиков, из которых следует отметить Б. Трейгера и М. Бронштейна. Основные направления исследований — повышение эффективности алгоритмов, расширение области их применения и исследование более широкого класса дифференциальных полей, чем поля элементарных функций.

Обобщением задачи интегрирования можно считать задачу нахождения в классе дифференциальных полей решений линейных дифференциальных уравнений с коэффициентами из дифференциального поля, принадлежащего классу Частный случай этой задачи для уравнения первого порядка приходится решать при интегрировании элементарных функций (в этом случае мы ищем решения в том же поле, в котором лежат коэффициенты исходного уравнения). Алгоритм нахождения решения в классе полей элементарных функций для уравнений второго порядка с коэффициентами из поля рациональных функций был предложен Ковасиком в 1978 году и вскоре был реализован в различных системах компьютерной алгебры. Обобщение алгоритма на уравнения произвольного порядка было получено М. Сингером. Сложность алгоритма Сингера очень высока, и трудно рассчитывать на его реализацию в обозримом будущем (есть реализация для дифференциальных уравнений 3-го порядка). Задачу о разрешимости линейного дифференциального уравнения в элементарных функциях можно разделить на два этапа. Вначале исследуется разрешимость уравнения в классе лиувиллевых функций (лиувиллевы функции получаются путем расширения исходного дифференциального поля последовательным присоединением элементов, являющихся либо алгебраическими, либо интегралами, либо экспонентами интегралов). Вопрос о разрешимости уравнения в лиувиллевых функциях решается дифференциальной теорией Галуа: линейное однородное дифференциальное уравнение разрешимо в лиувиллевых функциях тогда и только тогда, когда разрешима связная компонента его группы Галуа, являющейся линейной алгебраической группой. Далее задача сводится к уже рассмотренной задаче интегрирования. Рассмотрение задач, сформулированных в этом абзаце, выходит за рамки настоящего курса.

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

  1. Чем отличается компьютерная алгебра от вычислительной математики?
  2. Какие типы чисел применяются в компьютерной алгебре?
  3. Назовите несколько универсальных и специализированных систем компьютерной алгебры. Опишите область применения специализированных систем.
  4. Сформулируйте проблему представления данных.
  5. Для решения каких задач применяется алгоритм Евклида?
  6. Для решения каких задач применяется метод Гаусса?
  7. Какие задачи могут быть решены с использованием базисов Гребнера?
  8. Для решения каких задач применяется алгоритм Кронекера?
  9. Сформулируйте задачу интегрирования в конечном виде.
  10. Назовите известные вам применения систем компьютерной алгебры.

Определения и обозначения

Следующие обозначения считаются фиксированными на протяжении всей книги:

Запись алгоритмов осуществляем в форме, по возможности близкой к тем, которые используются в курсе информатики для средней школы и на механико-математическом факультете МГУ в курсе программирования [2]. Алгоритм снабжаем именем, за которым в скобках следует список параметров с указанием их типа. В записи алгоритмов // означает, что далее в строке следуют комментарии.

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

R[x] — многочлен:
	запись(степень: Z+
		коэффициенты: вектор элементов типа R
			с индексом 0..степень);
	разложение:
	запись(число_множителей: Z+
		множители: вектор элементов типа многочлен
			с индексом 1..число_множителей).

Лекция 2. Проблема представления данных

В данной лекции рассматриваются проблемы представления данных. Приведены практические примеры и алгоритмы

Задача представления данных

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

  1. В качестве T возьмем множество натуральных чисел > 1, каждое из которых можно записать в виде арифметического выражения. В качестве канонического выбираем выражение, которое является произведением простых чисел, расположенных в порядке неубывания. Основная теорема арифметики утверждает, что любое натуральное число представляется в таком виде и такое представление единственно. Таким образом, задача разложения натурального числа на простые множители может рассматриваться как задача представления данных.
  2. Предыдущий пример непосредственно обобщается на любое кольцо с однозначным разложением на множители, элементы которого можно упорядочить. В частности, таковым является кольцо , и мы получаем задачу факторизации многочленов, рассматриваемую в лекции 7.
  3. Основная теорема алгебры утверждает, что любой многочлен от одной переменной z с комплексными коэффициентами может быть представлен в виде . Таким образом, в этом случае задача представления данных — это задача нахождения всех корней данного многочлена, т. е. задача решения алгебраического уравнения.

1.1. УПРАЖНЕНИЯ. Переформулировать в виде задачи представления данных следующие задачи:

  1. решения системы линейных уравнений с коэффициентами из некоторого поля;
  2. нахождения НОД некоторого множества целых чисел;
  3. нахождения НОД некоторого множества многочленов от одной переменной с комплексными коэффициентами.

Естественно, что в рамках данного курса мы не можем обсуждать проблему представления данных в полном объеме.

Основная цель этой лекции — сформулировать и дать некоторое решение задачи для систем многочленов с коэффициентами из некоторого поля (т. е. для систем нелинейных алгебраических уравнений).

Разнообразие структур данных, используемых в компьютерной алгебре, выдвигает задачу представления данных в ЭВМ на первый план. При аналитических вычислениях (вручную или с использованием ЭВМ) используются элементы таких множеств, как кольцо целых чисел , поле рациональных чисел , кольцо вычетов по некоторому модулю , кольца многочленов, различные элементарные функции. Объекты этих множеств допускают неоднозначную запись в виде алгебраических выражений, т. е. представление в памяти ЭВМ. Из различных вариантов представления нужно, по возможности, выбрать оптимальное относительно некоторых критериев. Какими же критериями руководствуются математики при выборе представления конкретных элементов?

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

Как правило, рассматриваемая структура данных снабжена некоторым набором арифметических операций, часть из которых определена не для всех значений аргументов. В частности, недопустимо деление на нуль. Тем самым нуль приобретает некоторое особое положение, и возрастает значение задачи определения равенства элемента нулю. Представление, в котором все эквивалентные нулю выражения представляются одним и тем же образом (0), называется нормальным. Любое каноническое представление является нормальным, но обратное верно не всегда. Однако во многих случаях наличие нормального представления позволяет построить каноническое. Если же рассматриваемая структура данных такова, что в ней имеются, кроме нуля, и другие "особые" элементы, то определение нормального представления должно быть усложнено.

Ключевое для канонического представления понятие эквивалентности объектов может быть самым различным. Могут использоваться различные определения эквивалентности объектов даже на одном и том же множестве. Например, на множестве многочленов с коэффициентами из конечного поля можно рассматривать отношение функционального равенства, а можно — отношение эквивалентности между многочленами, рассматриваемыми как элементы кольца многочленов с коэффициентами из заданного поля.

Другим требованием, предъявляемым к выбору представления, является требование естественности. Что понимается под этим требованием? Рассмотрим пример неестественного представления, основанного на методе Брауна. Предположим, что мы умеем определять, являются ли два выражения эквивалентными, и что наша ЭВМ обладает неограниченной памятью. В процессе появления выражений мы будем сравнивать каждое новое выражение с уже встречавшимися нам, которые хранятся в памяти ЭВМ. Если среди ранее встречавшихся выражений имеется эквивалентное исходному, то исходное выражение переписывается в форме эквивалентного ему выражения, уже хранящегося в памяти ЭВМ, в противном случае его форма объявляется каноническим представителем в данном классе эквивалентности и запоминается. К преимуществам такого метода следует отнести его универсальность — метод работает всегда, когда есть алгоритм проверки эквивалентности двух выражений. Недостатком метода является его неестественность, т. е. представление конкретного элемента зависит от того, в какой последовательности элементов он появляется (и в каком месте). Представление называется естественным, если представление каждого элемента определяется одними и теми же правилами, не зависящими от того, в какой последовательности появляется этот элемент.

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

Кольцо целых чисел

Из курса программирования известно, что целое число может быть представлено в памяти компьютера разными способами, в частности, это представление зависит от того, как оно описано: как величина типа integer, или real, или string. При этом в большинстве языков программирования под целыми числами понимаются числа из весьма ограниченного диапазона: типичный случай — от -215 = -32768 до 215 - 1 = 32767. Системы компьютерной алгебры имеют дело с большими целыми числами, в частности, любая такая система умеет вычислять и выводить в десятичной записи числа вида 1000! (более тысячи знаков).

В данном курсе мы будем рассматривать представление целых чисел в символьном виде и не вдаваться в подробности, какая память отводится для записи одного символа (бит, байт или другая). Наиболее распространенным является представление целых чисел в позиционных системах счисления. Такая система определяется выбором основания счисления, например, 10. Множество десятичных целых чисел обычно описывается следующим образом:

Выписанное определение целых чисел дает однозначность представления каждого такого числа, и аналогичное определение (только, может быть, с другим основанием) используется в большинстве систем компьютерной алгебры. Пользуясь таким представлением, удобно реализовать арифметические операции над целыми числами. При этом сложение и вычитание являются относительно "дешевыми" операциями, а умножение и деление — "дорогими" . При оценке сложности арифметических операций следует учитывать как стоимость элементарной операции (одноразрядной), так и количество одноразрядных операций для выполнения какого-либо действия над многозначными числами. Сложность умножения и деления обусловлена, в первую очередь, тем, что с ростом длины числа (его записи в какой-либо системе счисления) количество элементарных операций увеличивается по квадратичному закону, в отличие от линейного для сложения и вычитания. К тому же, то, что мы обычно называем алгоритмом деления многозначных чисел, в действительности основано на переборе (часто весьма значительном) возможной очередной цифры частного, и при этом недостаточно просто воспользоваться правилами деления однозначных чисел. При большом основании системы счисления (часто оно может иметь порядок 230 ) этот способ малоэффективен.

Пусть — натуральное число (записанное в десятичной системе). Чтобы получить его запись в -ичной системе счисления, можно воспользоваться следующим алгоритмом ( обозначает целую часть числа ):

Дано: A—натуральное число в десятичной системе счисления
	k > 1—натуральное число
Надо: A—запись числа A в k-ичной системе счисления

Начало
i := 0
цикл пока A > 0
	bi := A (mod k)
	A := [A/k]
	i := i + 1
конец цикла
dA := i - 1
Конец

Для восстановления десятичного числа по последовательности его k -ичной записи используется следующий алгоритм:

Дано: k > 1—натуральное число
	последовательность цифр, представляющих число A
	в k-ичной системе
Надо: A—запись числа A в десятичной системе счисления

Начало
A := 0
цикл пока не конец последовательности
	b := очередной элемент последовательности
	A := A * k + b
конец цикла
Конец

1.2. УПРАЖНЕНИЕ. Объясните, почему для перевода числа из десятичной системы в k -ичную используется деление, а для перевода из k -ичной системы в десятичную — умножение.

Перемножая "столбиком" два двузначных числа в десятичной системе счисления, мы выполняем следующие операции:

(10a + b)(10c + d) = 100ac + 10(ad + bc) + bd,

т. е. 4 операции умножения одноразрядных чисел, 3 операции сложения и 2 операции умножения на степень основания счисления, которые сводятся к сдвигу. При оценке сложности можно учитывать все элементарные операции, не разделяя их по весам (в данном примере мы имеем 9 элементарных операций). Задача оптимизации алгоритма сводится при данном подходе к минимизации общего числа элементарных операций. Можно, однако, считать, что умножение является более "дорогой" операцией, чем сложение, которое, в свою очередь, "дороже" сдвига. Учитывая только наиболее дорогие операции, мы получаем, что мультипликативная сложность умножения двузначных чисел "столбиком" равна 4.

В параграфе 5 рассматриваются алгоритмы вычисления наибольших общих делителей и оценивается их сложность.

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

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

Отметим, что наряду с каноническими представлениями в системах компьютерной алгебры используются и другие представления. В частности, желательно, чтобы наличие или отсутствие знака '+' перед целым числом не влияло на восприятие его компьютером. Таким образом, для положительных чисел получается неоднозначное представление, хотя форма отрицательных чисел определена однозначно.

Другое требование — на восприятие числа не должно влиять наличие нулей перед первой значащей цифрой.

1.3. УПРАЖНЕНИЯ.

  1. Оценить количество одноразрядных умножений, используемых при умножении столбиком m -значного числа на n - значное.
  2. Показать, что два двузначных числа можно перемножить, используя только 3 умножения однозначных чисел и увеличив число сложений.
  3. Найти алгоритм деления длинных чисел, не требующий большого перебора при нахождении первой цифры частного.
  4. Описать алгоритм перевода натуральных чисел из m -ичной системы счисления в n -ичную.
  5. В римской нумерации для записи чисел используются следующие символы: I — единица, V — пять, X — десять, L — пятьдесят, C — сто, D — пятьсот, M — тысяча. Символ считается отрицательным, если правее него найдется символ большего числа, и положительным в противном случае. Например, число 1948 в этой системе запишется так: MCMXLVIII. Сформулировать алгоритм перевода числа из римской записи в десятичную и обратно. Реализовать полученный алгоритм на одном из алгоритмических языков (например, C ). Ограничения на исходные данные: 1 <= N < 3700, в записи результата ни один символ не должен появляться больше 3 раз.
  6. Сформулировать алгоритм и написать программу сложения натуральных чисел в римской нумерации.
  7. Будем говорить, что мы имеем дело с системой счисления со смешанным или векторным основанием, если нам задан вектор из n натуральных чисел M = (m1, . . . ,mn) (осно вание счисления) и запись K = (k0, k1, . . . , kn) обозначает число k = k0+m1(k1+m2(k2+· · ·+mn ·kn) . . . )). Написать программу, которая по данным (день недели, часы, минуты, секунды) определяет, сколько секунд прошло с начала недели (понедельник, 0, 0, 0) = 0, и выполняет обратное преобразование.

Кольца вычетов и конечные поля.

Кольца вычетов и конечные поля представляют собой наиболее простые объекты с точки зрения задачи представления данных. Каждому элементу такого кольца или поля, состоящего из n элементов, можно сопоставить, например, взаимно однозначно неотрицательное целое число из отрезка [0, n - 1]. Для колец вычетов — это сопоставление каждому классу вычетов его единственного элемента, лежащего в [0, n - 1], при этом арифметические операции над такими "числами" выполняются как операции над целыми числами по модулю n. Часто в качестве системы представителей кольца вычетов выбирается отрезок [-(n-1)/2, (n-1)/2] при нечетном n и [-n/2+1, n/2] при четном n. Арифметические операции +, -, * реализуются очевидным образом, для реализации операции деления обычно используется расширенный алгоритм Евклида (см. 7).

Хотя элементы конечного поля из n элементов также находятся во взаимнооднозначном соответствии с целыми числами из отрезка [0, n - 1], это соответствие не является таким же естественным, в частности, арифметические операции выполняются по более сложным правилам. Чаще используются другие формы представления, например, для записи элементов простого поля из p элементов ис пользуется система вычетов по модулю p, а поле GF(pk) представляется в виде факторкольца кольца многочленов по идеалу, порожденному некоторым неприводимым по модулю p многочленом степени k.

Сформулируем основные результаты о конечных полях.

  1. Любая конечная область целостности является полем (следует из взаимной однозначности умножения на любой ненулевой элемент).
  2. Характеристика конечного поля является простым числом (следует из отсутствия делителей нуля).
  3. Любое конечное поле GF(q) характеристики p состоит из q = pk элементов, где k — натуральное число (поскольку оно является векторным пространством над , k — размерность этого пространства).
  4. Мультипликативный порядок любого ненулевого элемента поля GF(q) делит q - 1 (ненулевые элементы образуют по умножению группу порядка q - 1 ).
  5. Мультипликативная группа поля GF(q) является циклической, т. е. существует элемент порядка q-1 (следует из однозначности разложения на множители многочленов xm-1 над любым полем).
  6. Любые два конечных поля, содержащих одинаковое число элементов, изоморфны (следует из однозначности поля разложения для многочлена xq-1 - 1 ).

Таким образом, существует два принципиально разных подхода к построению канонического представления элементов конечного поля GF(pk):

  1. (векторное представление) выбрать элемент x такой, что его степени x0 = 1, x, x2, . . . , xk-1 порождают наше поле как векторное пространство над простым подполем , и любой элемент записывать как вектор в этом базисе;
  2. (степенное представление) найти примитивный элемент порождающий мультипликативную группу этого поля, и любой элемент поля представлять в виде степени элемента

Отметим, что переход от степенного представления к векторному достаточно прост, а обратный переход (вычисление дискретного логарифма) — очень сложен. Сложность этой задачи используется в криптографии для построения систем кодирования с открытым ключом.

1.4. УПРАЖНЕНИЯ.

  1. Показать, что кольцо вычетов по модулю p2 не изоморфно конечному полю из p2 элементов.
  2. Составить таблицу умножения и деления для колец и и для полей GF(4) и GF(9).
  3. Для заданной матрицы размера p2 x p2, где p = 2 или 3, проверить, является ли она таблицей умножения в поле GF(p2) при какой-либо нумерации элементов этого поля.
  4. Реализовать алгоритм деления в кольце вычетов (учесть возможность получения неоднозначного результата).
  5. Китайская теорема об остатках. Дано k взаимно простых натуральных чисел mi > 1. Для любого набора из k целых чисел ai, 1 <= i <= k, найти , такое, что для всех i от 1 до k.
  6. Обобщить предыдущую задачу на случай, когда числа mi не обязательно взаимно просты.
  7. Найти все неприводимые над полем многочлены степени n ( n небольшое).
  8. Найти число неприводимых над полем многочленов степени n.

Рациональные числа.

Множество рациональных чисел определяется как фактормножество множества пар x , , по отношению эквивалентности: . Если у нас фиксирована каноническая форма целого числа, то каноническую форму рационального числа мы можем получить, например, выбирая из эквивалентных пар целых чисел (a, b) такую, у которой b > 0 и НОД(a, b) = 1. Все сказанное выше о представлении целых чисел относится и к представлению рациональных чисел.

Естественно, приведенная выше каноническая форма рационального числа не является единственно возможной. Из школьного курса известно, что любое рациональное число можно представить в виде бесконечной десятичной периодической дроби. Также известно, что любая бесконечная периодическая дробь представляет рациональное число, причем соответствие между рациональными дробями и бесконечными десятичными периодическими дробями не является взаимно однозначным: рациональные числа, знаменатели которых имеют вид 2n5m, могут быть представлены периодическими дробями с периодами (0) и (9).

1.5. УПРАЖНЕНИЯ. Пусть m — натуральное число, m > 1, рассматриваемое как основание системы счисления.

  1. Доказать, что рациональные числа могут быть представлены бесконечными периодическими m -ичными дробями, причем неоднозначно.
  2. Доказать, что любая бесконечная периодическая m -ичная дробь представляет некоторое рациональное число.
  3. Установить взаимнооднозначное соответствие между множеством рациональных дробей и некоторым подмножеством бесконечных периодических m -ичных дробей.
  4. Написать программу перевода рациональных чисел в бесконечные периодические m -ичные дроби и обратно.

Часто рациональные числа представляют в виде суммы целого числа и правильной дроби, т. е. положительного рационального числа . Исследователи утверждают, что в древнем Египте имелись обозначения только для дробей с числителем 1, остальные числа представлялись в виде суммы таких дробей.

1.6. УПРАЖНЕНИЯ.

  1. Доказать, что любое положительное рациональное число можно представить в виде суммы обратных величин различных натуральных чисел.
  2. Показать, что такое представление не единственно.
  3. Описать алгоритм, выбирающий из всех возможных представлений такого вида единственное.
  4. Написать программу, представляющую любое положительное рациональное число в виде суммы обратных величин различных натуральных чисел.

Приближенные вычисления.

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

Когда мы говорим о приближенных вычислениях, то подразумеваем, что определено понятие cходимости. Из курса математического анализа известно, что поле вещественных чисел можно определить как пополнение поля рациональных чисел по архимедовой метрике, когда расстояние между двумя рациональными числами определяется как модуль их разности. В математике, в частности, в теории чисел, рассматриваются также другие метрики поля рациональных чисел, так называемые p -адические. При пополнении поля по p -адической метрике получается поле p -адических чисел. Некоторые сведения о таких полях приведены в лекциях 2, 3.

При вычислениях с вещественными числами мы, в действительности, имеем дело обычно с их приближенными значениями, которые представляют собой десятичные (или двоичные, при использовании компьютера) дроби с фиксированным числом значащих цифр. При работе с приближенными значениями p -адических чисел получаются объекты, которые известны как коды Гензеля. Их описание можно найти в специальной литературе, например, [5].

1.7. УПРАЖНЕНИЯ.

  1. Привести пример аксиомы поля вещественных чисел, не выполняющейся при работе с числами типа float на языке Си.
  2. Какие аксиомы поля вещественных чисел не выполняются при работе с числами типа float на языке Си?
  3. Привести пример аксиомы поля вещественных чисел, не выполняющейся для интервальной арифметики.
  4. Какие аксиомы поля вещественных чисел не выполняются для интервальной арифметики?

Алгебраические числа.

1.8. ОПРЕДЕЛЕНИЕ. Алгебраическим числом называется число , являющееся корнем многочлена от одной переменной с целыми коэффициентами. Если старший коэффициент этого многочлена равен 1, то алгебраическое число называется целым.

1.9. ПРЕДЛОЖЕНИЕ. Существуют алгебраические числа, не выражающиеся через радикалы.

Доказательство этого утверждения основано на теории Галуа и может быть найдено в учебниках по алгебре.

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

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

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

1.10. УПРАЖНЕНИЯ.

  1. Показать, что , , — целые алгебраические числа.
  2. Показать, что целые алгебраические числа образуют кольцо.
  3. Показать, что алгебраические числа образуют поле.
  4. Найти минимальный многочлен над для .
  5. Построить каноническое представление для элементов поля .
  6. Построить алгоритм получения канонического представления для простых радикальных расширений (полей алгебраических чисел, порожденных несколькими радикалами без вложений).
  7. Построить алгоритм получения канонического представления для вложенных радикальных расширений.

Трансцендентные числа.

Большинство систем компьютерной алгебры допускает работу с трансцендентными числами e и для которых фиксированы соответствующие свойства тригонометрических, логарифмических и показательных функций. Вычисления в трансцендентных расширениях производятся так же, как в полях рациональных функций. Задание конкретного трансцендентного числа какими-либо метрическими или функциональными свойствами и проверка его алгебраической независимости с уже имеющимися величинами представляет собой алгоритмически неразрешимую задачу.

Целые p-адические числа.

p -адические числа играют значительную роль в теории чисел, и для более подробного знакомства с ними читателю следует обратиться к литературе по теории чисел, например к книге [3]. Здесь мы только приведем основные определения и некоторые свойства p -адических чисел.

2.1. ОПРЕДЕЛЕНИЕ. Пусть p — некоторое простое число. Последовательность целых чисел

{xn} = {x0, x1, . . . , xn, . . . },

обладающая тем свойством, что

(2.1)

для всех n >= 1, определяет новый объект, называемый целым p - адическим числом. Две последовательности {xn} и тогда и только тогда определяют одно и то же целое p -адическое число, когда для всех n >= 0.

В отличие от целых p -адических чисел, обычные целые числа часто называют целыми рациональными.

Каждому целому рациональному числу x можно сопоставить целое p -адическое число, определяемое последовательностью

{x, x, . . . , x, . . . }.

Это p -адическое число будем обозначать той же буквой x. Множество целых p -адических чисел будем обозначать Op.

Укажем способ, при помощи которого из всех последовательностей, определяющих одно и то же p -адическое число, можно выбрать одну стандартную.

Пусть {xn} — целое p -адическое число. Обозначим через наименьшее неотрицательное число, сравнимое с xn по модулю pn+1, т. е.

(2.2)
(2.3)

Для любого целого p -адического числа {xn}, последовательность, все члены которой удовлетворяют условиям (2.2) и (2.3), будем называть канонической.

Ставя в соответствие каждому целому p -адическому числу его каноническую последовательность, мы получаем взаимно однозначное соответствие между множеством целых p -адических чисел и множеством последовательностей вида

{a0, a0 + a1p, a0 + a1p + a2p2, . . . , },

где 0 <= ai < p.

2.2. ОПРЕДЕЛЕНИЕ. Суммой и произведением целых p -адических чисел и определяемых последовательностями {xn} и {yn}, называются целые p -адические числа, определяемые соответственно последовательностями {xn + yn} и {xnyn}.

2.3. УПРАЖНЕНИЕ. Показать, что введенные выше операции определены корректно и превращают Op в коммутативное кольцо с единицей.

Сформулируем несколько теорем, доказательство которых оставляется читателю в качестве упражнения (их можно найти, например, в [3]).

2.4. ТЕОРЕМА. Целое p -адическое число определяемое последовательностью {x0, x1, . . . , xn, . . . }, тогда и только тогда является единицей (т. е. обратимым) в Op, когда .

2.5. ТЕОРЕМА. Всякое отличное от нуля целое p -адическое число однозначно представляется в виде

(2.4)

где — единица кольца Op.

2.6. ТЕОРЕМА. Для любого натурального n, всякое целое p -адическое число сравнимо с целым рациональным числом по модулю pn. Два целых рациональных числа тогда и только тогда сравнимы по модулю pn в кольце Op, когда они сравнимы по этому модулю в кольце .

2.7. ОПРЕДЕЛЕНИЕ. Число m в представлении (2.4) отличного от нуля целого p -адического числа называется p -показателем числа и обозначается .

Индекс p в определении показателя мы будем часто опускать и говорить просто о показателе, обозначая его . Доопределим показатель, полагая . Непосредственно проверяется, что

(2.5)
(2.6)
(2.7)

Дробные p-адические числа.

ОПРЕДЕЛЕНИЕ. Дробь вида , , k >= 0 определяет дробное p -адическое число или просто p -адическое число. Две дроби, и , определяют одно и тоже p -адическое число, если в .

Совокупность всех p -адических чисел обозначается Rp. Легко проверить, что операции сложения и умножения продолжаются с Op на Rp и превращают Rp в поле.

2.9. ТЕОРЕМА. Всякое p -адическое число единственным образом представляется в виде

(2.8)

где m — целое число, а — единица кольца Op.

2.10. ТЕОРЕМА. Всякое отличное от нуля p -адическое число однозначно представляется в виде

(2.9)

где .

Аксиоматическая характеристика поля p-адических чисел.

Выбрав некоторое вещественное число такое, что , (например, ) положим

(2.10)

ОПРЕДЕЛЕНИЕ. Функция , , определенная условиями (2.10), называется - адической метрикой . Значение называется величиной - адического числа в этой метрике.

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

Легко проверяется, что p -адическая метрика обладает следующими свойствами:

(2.11)
(2.12)
(2.13)

Свойства (2.11) и (2.13) указывают, что введенное понятие является аналогом абсолютной величины в поле вещественных чисел.

2.12. ОПРЕДЕЛЕНИЕ. Пусть k — произвольное поле. Функция определенная на элементах поля k и принимающая вещественные значения , называется метрикой поля k, если она обладает следующими свойствами:

  1. при ; ;
  2. ;
  3. .

Поле k вместе с заданной в нем метрикой называется метризованным полем.

Из определения легко вытекают следующие свойства метрик:

Метриками являются:

  1. абсолютная величина в поле рациональных чисел;
  2. абсолютная величина в поле вещественных чисел;
  3. модуль в поле комплексных чисел;
  4. - адическая метрика в поле - адических чисел ;
  5. функция , определенная в произвольном поле условиями: , при . Такая метрика называется тривиальной.

Если метрику поля мы рассматриваем лишь на рациональных числах, то получаем некоторую новую метрику поля рациональных чисел . Эта метрика, обозначаемая также через , называется - адической метрикой поля .

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

Поле вещественных чисел — это пополнение поля рациональных чисел по метрике 1.

Поле - адических чисел — это пополнение поля рациональных чисел по - адической метрике.

2.14. УПРАЖНЕНИЕ. Представить число -1 в поле p -адических чисел в виде ряда (2.9).

2.15. УПРАЖНЕНИЕ. Представить число в поле 5-адических чисел в виде ряда (2.9).

2.16. УПРАЖНЕНИЕ. Доказать для многочленов над полем p -адических чисел признак неприводимости Эйзенштейна: многочлен f(x) = a0xn + a1xn-1 + · · · + an с целыми p -адическими коэффициентами неприводим над полем Rp, если a0 не делится на p, все остальные коэффициенты a1, . . . , an делятся на p и свободный член an, делясь на p, не делится на p2.

Многочлены

Действия с многочленами лежат в основе любой системы компьютерной алгебры. Пусть K — некоторое кольцо, задача представления элементов которого уже решена. Представление элементов кольца многочленов K[x] можно выбирать различными способами. Наиболее распространенным является представление многочлена в виде последовательности коэффициентов, упорядоченной по возрастанию или убыванию степеней одночленов. Представление многочленов, при котором запоминаются все коэффициенты, включая нулевые, называется плотным. Плотное представление используется в задачах, где рассматриваемые многочлены имеют сравнительно небольшое количество нулевых коэффициентов. Если степени многочленов достаточно высоки, а количество ненулевых коэффициентов мало ( разреженные многочлены ), то удобнее использовать разреженное представление многочленов, в котором указываются только ненулевые коэффициенты и соответствующие степени одночленов. При этом алгоритмы работы с такой формой записи становятся более сложными, но значительно экономится память ЭВМ, а во многих случаях—и время работы программы.

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

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

Более подробно вопросы, связанные с упорядочением мономов и каноническим представлением многочленов от нескольких переменных, будут рассмотрены ниже в разделе, посвященном базисам Гребнера.

3.1. ПРИМЕРЫ.

  1. Пусть переменные x и y упорядочены так, что x > y. Тогда многочлен (x + y)2 + x + y + 1 с учетом соответствующих порядков записывается в виде:

    (лексикографический порядок);

    (по степени, затем лексикографический);

    (по степени, затем обратный лексикографический).

  2. Рассмотрим разложение многочлена (x+y+z)3. Из однородности многочлена следует, что первые два из рассматриваемых порядков для этого многочлена совпадают. Выпишем его представление с использованием второго и третьего порядка.

    и

    соответственно.

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

Отметим, что достаточно часто при действии с многочленами предпочтительнее пользоваться представлениями, отличными от канонического. Например, во многих отношениях запись (x + y + z)3 более удобна, чем приведенные выше разложения этого многочлена. В частности, для многочленов задача разложения на множители представляет еще большую сложность, чем для целых чисел, и поэтому не всегда целесообразно раскрывать при умножении скобки,- часто бывает полезным в ущерб каноничности записи хранить многочлен в виде произведения.

Рациональные функции.

Поле рациональных функций K(x1, . . . , xn), где K - некоторое поле, обычно определяется как поле частных кольца многочленов K[x1, . . . , xn]. Имея каноническое представление элементов кольца многочленов, каноническое представление рациональных функций можно получить наложением условия взаимной простоты числителя и знаменателя и нормировкой знаменателя (например, приравниванием старшего коэффициента знаменателя единице). Часто, однако, поле K само представляется как поле частных некоторой области целостности, например, поле можно представить как поле частных кольца , а также как поле частных кольца . При представлении поля как поля частных кольца далеко не всегда можно в представлении рациональной функции приравнять старший коэффициент знаменателя единице. Множество обратимых элементов в Z состоит всего из двух элементов ( 1 и -1 ), и нормировку знаменателя можно осуществить, фиксируя знак старшего коэффициента.

Обобщенные многочлены и рациональные функции.

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

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

3.2. ОПРЕДЕЛЕНИЕ. Оператор действующий на некотором кольце, называется оператором дифференцирования (или просто дифференцированием), если и для всех элементов a, b этого кольца. Дифференциальным кольцом называется коммутативное кольцо R с конечным множеством операторов дифференцирования кольца R, таких, что ; если n = 1, то дифференциальное кольцо R называется обыкновенным, если n > 1, то R называется кольцом с частными производными. Если кольцо R является полем, то мы говорим о дифференциальном поле.

  1. Показать, что любое кольцо можно рассматривать как дифференциальное кольцо с нулевым дифференцированием. Показать, что на кольцах , , нет ненулевых дифференцирований.
  2. Кольцо многочленов R[x] от одной переменной над обыкновенным дифференциальным кольцом можно превратить в обыкновенное дифференциальное кольцо, произвольным образом задав значение . Показать, что значением продолжение дифференцирования на кольцо R[x] определяется однозначно. Аналогичное утверждение верно для кольца формальных степенных рядов.
  3. Пусть R — дифференциальное кольцо без делителей нуля, F — его поле частных. Показать, что F можно единственным образом превратить в дифференциальное поле, содержащее дифференциальное кольцо R.
  4. Поле мероморфных в некоторой области вещественного n - мерного пространства функций можно рассматривать как дифференциальное поле, с множеством дифференцирований

ОПРЕДЕЛЕНИЕ. Пусть R — дифференциальное кольцо с множеством операторов дифференцирования Под дифференциальным модулем над R или дифференциальным R -модулем мы понимаем R -модуль M, на котором действуют операторы множества в соответствии со следующими правилами:

Дифференциальный модуль можно рассматривать как левый модуль над кольцом косых многочленов дифференциального типа. Это кольцо мы будем называть кольцом линейных дифференциальных операторов. Пусть T обозначает свободную коммутативную полугруппу (записанную мультипликативно), порожденную элементами из множества Каждый элемент кольца может быть единственным способом выражен в виде конечной суммы

умножение образующих определяется правилами:

В предположении, что для кольца коэффициентов R каноническое представление фиксировано, каноническое представление кольца дифференциальных операторов получается так же, как и для кольца многочленов: достаточно упорядочить полугруппу T. Обычно рассматриваются отношения порядка, перечисленные в параграфе 3.1.

3.5. ПРИМЕР. Пусть R — кольцо многочленов над полем K, R = K[x1, . . . , xm], и . Тогда кольцо линейных дифференциальных операторов называется алгеброй Вейля над K и обозначается Am(K).

Кольцо линейных дифференциальных операторов обладает многими свойствами, аналогичными свойствам кольца многочленов, в частности, если кольцо коэффициентов является дифференциальным полем, то в кольце дифференциальных операторов нет делителей нуля, для любых двух элементов существует наибольший общий делитель (правый или левый, причем в общем случае они не совпадают) и наименьшее общее кратное (правое и левое, снова не совпадающие); если -поле, то в имеется алгоритм Евклида для нахождения левого (правого) наибольшего общего делителя.

3.6. УПРАЖНЕНИЯ. Пусть F — обыкновенное дифференциальное поле с дифференцированием Доказать следующие свойства кольца линейных дифференциальных операторов над F:

  1. в R нет делителей нуля;
  2. R является кольцом главных левых (правых) идеалов;
  3. в R нет нетривиальных двусторонних идеалов;
  4. в R имеется алгоритм Евклида для нахождения левого (правого) НОД двух операторов;
  5. в R имеется расширенный алгоритм Евклида для нахождения левого (правого) НОД двух операторов;
  6. R не обязательно является кольцом с однозначным разложением на множители (привести пример дифференциального поля F, для которого это свойство не выполняется).

Кольцо иногда называют кольцом дифференциальных многочленов, но мы будем придерживаться терминологии, принятой в монографии [23], где кольцом дифференциальных многочленов над дифференциальным кольцом R называется кольцо R{y1, . . . , yr} многочленов от счетного множества переменных над кольцом R. В кольце R{y1, . . . , yr} операторы дифференцирования из множества действуют на коэффициентах по определению дифференциального кольца, а на образующих —по правилу: .

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

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

3.7. ОПРЕДЕЛЕНИЕ. Разностное кольцо определяется как кольцо R с фиксированным конечным множеством взаимно коммутирующих мономорфизмов кольца R в себя. Если все мономорфизмы — изоморфизмы, то R называется инверсным разностным кольцом. Если n = 1, то R называется обыкновенным разностным кольцом, в противном случае R называется кольцом с частными разностями. Элементы множества называются операторами трансляции.

3.8. УПРАЖНЕНИЯ.

  1. Любое кольцо можно рассматривать как разностное кольцо с тождественным изоморфизмом.
  2. Кольцо многочленов R[x] от одной переменной над обыкновенным разностным кольцом можно превратить в обыкновенное разностное кольцо, произвольным образом задав значение . Показать, что значением трансляция кольца R[x] определяется однозначно.
  3. Показать, что не любой автоморфизм кольца R[x] продолжается на кольцо формальных степенных рядов.
  4. Пусть R - разностное кольцо без делителей нуля, F - его поле частных. Показать, что F можно единственным образом превратить в разностное поле, содержащее разностное кольцо R.
  5. Поле формальных (сходящихся) рядов Лорана K((x)) можно рассматривать как обыкновенное разностное поле с оператором трансляции таким, что , где k — произвольный ненулевой элемент поля K.

3.9. ОПРЕДЕЛЕНИЕ. Пусть R — разностное кольцо с множеством операторов трансляции Под разностным модулем над R, или разностным R - модулем, мы понимаем R -модуль M, на котором действуют операторы из множества в соответствии со следующими условиями

Разностный модуль M можно рассматривать как левый модуль над кольцом косых многочленов разностного типа. Это кольцо мы будем называть кольцом разностных операторов. Пусть T — свободная коммутативная полугруппа (записываемая мультипликативно), порожденная элементами множества Каждый элемент кольца может быть единственным образом записан в виде конечной суммы

умножение образующих задается соотношениями

и по линейности распространяется на все кольцо . Это кольцо иногда называют кольцом разностных многочленов, но мы будем придерживаться терминологии, принятой в монографии [18], где кольцом разностных многочленов над разностным кольцом R называют разностное кольцо многочленов от счетного множества неизвестных над R. В кольце операторы трансляции из множества действуют на коэффициентах по определению разностного кольца, а на образующих — по правилу:

3.10. УПРАЖНЕНИЯ. Пусть F — обыкновенное разностное поле с автоморфизмом Доказать следующие свойства кольца линейных разностных операторов над F:

  1. в R нет делителей нуля;
  2. R является кольцом главных левых (правых, двусторонних) идеалов;
  3. в R нет нетривиальных двусторонних идеалов;
  4. в R имеется алгоритм Евклида для нахождения левого (правого) НОД двух операторов;
  5. в R имеется алгоритм Евклида для нахождения левого (правого) НОД двух операторов;
  6. R не обязательно является кольцом с однозначным разложением на множители (привести пример разностного поля F, для которого это свойство не выполняется).

Кольца дифференциальных и разностных многочленов с точки зрения теории колец представляют собой кольца коммутативных многочленов от счетного множества переменных (каждый конкретный многочлен зависит только от конечного числа переменных). Таким образом, для решения задачи представления данных в кольце дифференциальных (разностных) многочленов и поле рациональных дифференциальных (разностных) функций достаточно упорядочить кольцевые образующие. Кольцо дифференциальных многочленов является дифференциальным кольцом, т. е. наряду с операциями сложения и умножения в нем имеются унарные операции дифференцирования, переводящие кольцевую образующую в другую кольцевую образующую, и отношение порядка на множестве кольцевых образующих выбирается так, чтобы оно было согласовано с дифференцированиями. Аналогично, кольцо разностных многочленов является разностным кольцом.

Векторные пространства и модули.

В вычислительной математике и в алгебре понятие векторного пространства над некоторым полем K играет ключевую роль. При фиксированном базисе пространства задача представления данных не представляет какой-либо сложности — два вектора совпадают тогда и только тогда, когда совпадают все их координаты в фиксированном базисе. Соответствующая структура данных — вектор элементов типа K с индексом 1..n — является одной из базисных структур данных в программировании. Для случая, когда коэффициенты образуют кольцо R, не являющееся полем, положение существенно сложнее — аналогом понятия векторного пространства (множество, замкнутое относительно сложения, вычитания и умножения на элементы кольца с естественными аксиомами сложения и умножения) является в этом случае понятие модуля. Важным частным случаем модуля является свободный модуль над кольцом R ( R -модуль). В частности, любое кольцо с единицей можно рассматривать как свободный модуль над самим собой, любой идеал кольца является его подмодулем. С точки зрения задачи представления данных соответствующая структура данных такж может быть при фиксированном базисе описана как вектор элементов типа R с индексом 1..n.

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

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

3.11. УПРАЖНЕНИЯ.

  1. Привести пример идеала в кольце многочленов от двух переменных, не являющегося свободным модулем над этим кольцом.
  2. Привести пример факторкольца кольца многочленов от одной переменной, не являющегося свободным модулем над этим кольцом.

Лекция 3. Наибольший общий делитель и последовательности полиномиальных остатков

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

Наибольший общий делитель. Определения и алгоритмы вычисления

В данном параграфе мы рассмотрим определение наибольшего общего делителя (НОД) двух элементов и алгоритмы его вычисления.

Пусть R — коммутативное кольцо с единицей, . Мы говорим, что a делит b и пишем a|b, если существует элемент , такой, что ; если такого элемента не существует, то мы говорим, что a не делит b, и пишем . Заметим, что определение делимости зависит от рассматриваемого кольца. Так, например, в поле рациональных чисел , но в кольце целых чисел .

5.1. ОПРЕДЕЛЕНИЕ. Ненулевой элемент такой, что ab = 0 для некоторого называется делителем нуля кольца R, а элемент , такой, что называется обратимым, или делителем единицы, или единицей кольца R.

5.2. ОПРЕДЕЛЕНИЕ. Коммутативное кольцо с единицей и без де- лителей нуля называется областью целостности или просто областью.

5.3. ОПРЕДЕЛЕНИЕ. Пусть R — коммутативное кольцо с единицей. Элемент называется неприводимым, если из представления a = bc в виде произведения двух элементов кольца R, следует, что хотя бы один из элементов b и c обратим в R.

5.4. ОПРЕДЕЛЕНИЕ. Пусть R — коммутативное кольцо с едини- цей. Идеал называется простым, если из следует, что хотя бы один из элементов b и c лежит в I.

5.5. ОПРЕДЕЛЕНИЕ. Мы говорим, что идеал I порожден элементами b1, . . . , bn, и пишем I = (b1, . . . , bn), если и любой элемент может быть записан в виде где .

5.6. ОПРЕДЕЛЕНИЕ. Идеал I называется главным, если I = (b) для некоторого элемента . Кольцо R называется кольцом главных идеалов, если любой идеал кольца R является главным.

5.7. УПРАЖНЕНИЕ. Показать, что Z и k[x] — кольца главных идеалов, а и k[x, y] — нет.

5.8. УПРАЖНЕНИЕ. Показать, что главный идеал (b) является простым тогда и только тогда, когда b — неприводимый элемент.

5.9. ОПРЕДЕЛЕНИЕ. Элементы a и b кольца R называются ассоциированными, если , где — единица (обратимый элемент) кольца R.

5.10. ОПРЕДЕЛЕНИЕ. Кольцо R называется факториальным или кольцом с однозначным разложением на множители, если любой элемент можно представить в виде , где — единица, а pi — неприводимые, причем если — другое такое разложение, то m = n и для любого индекса i существует индекс j, такой, что pi ассоциировано с qj.

5.11. ЛЕММА. Пусть Rобласть главных идеалов. Если элемент допускает разложение на неприводимые множители, то это разложение однозначно в смысле предыдущего определения.

ДОКАЗАТЕЛЬСТВО оставим читателю в качестве упражнения.

5.12. УПРАЖНЕНИЕ. Показать, что и k[x, y] — факториальные кольца.

Сформулируем (без доказательства) теорему, которая позволяет получать новые факториальные кольца.

5.13. ТЕОРЕМА. Если R — факториальное кольцо, то кольцо многочленов R[x] также факториально.

Приведем пример нефакториального кольца.

5.14. ПРИМЕР. Кольцо — нефакториально. В частности, — два различных разложения числа 9 на неприводимые множители в этом кольце.

5.15. ОПРЕДЕЛЕНИЕ. Пусть R — коммутативное кольцо с единицей, . Элемент называется наибольшим общим делителем элементов a и b, если d | a, d | b и для любого другого элемента d', такого, что d' | a и d' | b выполняется соотношение d' | d.

5.16. УПРАЖНЕНИЕ. Показать, что в кольце для любых целых чисел a и b, не равных одновременно нулю, существует наибольшее целое число, которое делит a и b, и это число является наибольших общим делителем чисел a и b в смысле определения 5.15. Показать, что определение 5.15 в кольце определяет НОД( a, b ) неоднозначно.

5.17. УПРАЖНЕНИЕ. Показать, что в кольце k[x] многочленов от одной переменной x над полем k для любых многочленов a и b, не равных одновременно нулю, существует многочлен наибольшей степени, который делит a и b, и этот многочлен является наибольшим общим делителем элементов a и b в смысле определения 5.15. Показать, что определение 5.15 в кольце k[x] определяет НОД( a, b ) неоднозначно.

Свойства НОД(a,b) в Z.

  1. НОД(a, a) = {a,-a}
  2. НОД(a, 0) = {a,-a}
  3. НОД(a, b) = НОД(b, a)
  4. НОД(c · a, c · b) = c · НОД(a, b)
  5. если НОД(a, c) = {1,-1} (в частности, если c = -1 ), то НОД(a, c · b) = НОД(a, b)
  6. НОД(a, b) = НОД(a - b, b)
  7. НОД(a, b) = НОД(b, r), где r — остаток от деления a на b

Используя различные комбинации этих свойств, можно получить различные алгоритмы вычисления НОД(a, b) в кольце . Пользуясь свойствами 3 и 5, можно свести задачу вычисления НОД в к той же задаче для множества неотрицательных целых чисел и ограничиться представителем только положительного числа в качестве результата. Например, используя свойства 1, 3, 6, можно получить один из простейших алгоритмов вычисления НОД; используя свойства 1, 4, 5 с c = 2, получаем бинарный алгоритм вычисления НОД ; а используя свойства 2 и 7, получаем алгоритм Евклида нахождения наибольшего общего делителя натуральных чисел.

5.18. УПРАЖНЕНИЕ. Сформулировать перечисленные алгоритмы.

Евклидовы кольца.

Свойство 7 использует понятие "остаток от деления одного числа на другое" . На этом свойстве основан алгоритм Евклида, и распространение действия этого алгоритма на другие кольца достигается введением следующего определения.

5.19. ОПРЕДЕЛЕНИЕ. Область целостности R называется евклидовым кольцом, если каждому ненулевому элементу сопоставлено целое неотрицательное число g(a) со следующими свойствами:

  1. если и , то ;
  2. для любых двух элементов , где существует представление , в котором или .

УПРАЖНЕНИЕ. Доказать, что следующие кольца являются евклидовыми:

  1. кольцо целых чисел ;
  2. кольцо многочленов k[x] от одной переменной над любым полем k ;
  3. любое поле k.

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

5.21. ТЕОРЕМА. Любое евклидово кольцо является кольцом главных идеалов, а следовательно, факториальным кольцом.

Алгоритмы вычисления НОД(a,b) в кольцах иногочленов k[x] и Z[x]

Сформулируем алгоритмы, предложенные ранее в качестве упражнения. Во всех предложенных ниже алгоритмах считаем, что a и b — натуральные числа, следовательно, ненулевые.

А1. АЛГОРИТМ (НОД1).

Данный алгоритм использует операции сравнения натуральных чисел, вычитания натуральных чисел и присваивания переменной значения натурального числа. Оценивая сложность предложенного алгоритма, можно рассматривать эти операции как элементарные. В теле цикла "пока" выполняется две операции сравнения, одна операция вычитания и одна операция присваивания. Цикл выполняется не более max(a, b) раз. Таким образом, сложность алгоритма равна O(max(a, b)).

Однако, более естественно рассматривать в качестве элементарных битовые операции.

5.22. УПРАЖНЕНИЕ. Показать, что если max(a, b) = n, то сложность вычисления НОД(a, b) по предложенному алгоритму равна O(n log2 n) битовых операций.

А2. АЛГОРИТМ (Евклида).

В алгоритме Евклида использовано стандартное обозначение x (mod y) для остатка от деления x на y. Легко показать, что после двух делений делимое уменьшается, как минимум, в два раза. Значит, количество повторений цикла равно O(log2 n), где n=max(a, b). Определяя битовую сложность алгоритма Евклида, мы должны учитывать, что сложность операции деления зависит от количества цифр квадратично. Таким образом, мы получаем оценку для битовой сложности алгоритма Евклида. Более тщательный анализ позволяет доказать оценку .

Можно показать, что, в определенном смысле, наихудший вариант для алгоритма Евклида представляют последовательные числа Фиббоначчи.

5.23. УПРАЖНЕНИЕ. Показать, что если a = Fn+1, b = Fn — со- ответствующие числа Фиббоначчи, то остатки в алгоритме Евклида принимают последовательно значения Fn-1, . . . , F2 = 1.

5.24. УПРАЖНЕНИЕ. Показать, что если a > b и — последовательные остатки, получаемые в алгоритме Евклида, то a > Fn+1, где Fk — k -ое число Фиббоначчи.

Легко видеть, что алгоритм Евклида применим в любом евкли- довом кольце, т. е. условия и можно заменить на , где R — любое евклидово кольцо.

5.25. УПРАЖНЕНИЕ. Что произойдет, если в алгоритме Евклида a и b — отрицательные или нулевые целые числа?

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

А3. АЛГОРИТМ (бинарный НОД).

5.26. ЗАМЕЧАНИЕ. В конструкции выбор выполняются только действия для первого истинного условия в операторах при. Таким образом, на первые два условия мы можем попасть, когда один из аргументов четный, а другой — нечетный. На последние два условия можно попасть, только когда оба аргумента нечетны. Учитывая, что при вычитании нечетного числа из нечетного получается четное, можно результат сразу разделить на 2, т. е. строки

при x > y делать x := x - y
		при x < y делать y := y - x

заменить строками

при x > y делать x := (x - y)/2
		при x < y делать y := (y - x)/2

Очевидно, что при каждом повторении тела цикла последнего алгоритма хотя бы один аргумент уменьшается в два раза. Значит, количество повторений цикла равно O(log2 n), где n = max(a, b). Определяя битовую сложность бинарного алгоритма, мы должны учитывать, что сложность операций, выполняемых в теле цикла, зависит от количества цифр линейно, т. е. битовая сложность бинарного алгоритма равна .

Приведем еще алгоритм вычисления НОД, основанный на свойстве факториальности кольца .

А4. АЛГОРИТМ ( НОД через примарное разложение).

Расширенные алгоритмы вычисления НОД(a,b) в Z.

Наибольший общий делитель двух целых чисел обладает следую- щим важным свойством: если d = НОД(a, b), то существуют целые числа u и v, такие, что d = u · a + v · b.

5.27. УПРАЖНЕНИЕ. Доказать это свойство, пользуясь тем, что — кольцо главных идеалов.

Для нахождения целых чисел u и v используется метод, называемый расширенным алгоритмом Евклида.

А 5. АЛГОРИТМ (Евклида расширенный).

Три компонента вектора X связаны соотношением:

X[0] = X[1] · a + X[2] · b.

Такое же соотношение справедливо для Y и R.

Чтобы распространить этот алгоритм на отрицательные и нулевые целые числа, достаточно заменить первые две строки следующими:

если a > 0, то X := (a, 1, 0) иначе X := (-a,-1, 0)
		если b > 0, то Y := (b, 0, 1) иначе Y := (-b, 0,-1)

5.28. УПРАЖНЕНИЕ. Доказать, что битовая сложность расширенного алгоритма Евклида равна , где n = max(|a|, |b|).

5.29. УПРАЖНЕНИЕ. Сформулировать расширенную версию алгоритма А 1 и оценить его сложность.

До недавнего времени считалось, что расширенной версии бинарного алгоритма не существует. С.А. Абрамов и С.И. Рыбин [1] построили ее, допустив в рассмотрение вектор (0, b/2k,-a/2k), где 2k — степень 2 в НОД, который можно прибавлять к другим векторам или вычитать из них.

5.30. УПРАЖНЕНИЕ. Написать расширенный бинарный алгоритм.

Эффективность вычисления НОД(a,b) в Z.

Алгоритм Евклида и бинарный алгоритм вычисления НОД являются достаточно эффективными для большинства приложений. При проектировании высокопроизводительных систем используются различные методы повышения быстродействия алгоритма вычисления НОД, в частности, алгоритм Лемера [9].

Алгоритмы вычисления НОД(a,b) в кольцах многочленов k[x] и Z[x]

Последовательности полиномиальных остатков.

Алгоритмы А 2 и А 5 дословно переносятся на любое евклидово кольцо, в частности, на кольцо многочленов k[x] от одной переменной над произвольным полем k.

Последовательность остатков полиномов, полученная при выполнении алгоритма Евклида, называется последовательностью полиномиальных остатков ( PRS ).

Рассмотрим пример, сконцентрировав наше внимание на росте коэффициентов членов последовательности полиномиальных остатков.

6.1. ПРИМЕР. Рассмотрим полиномы p1(x) = x3-7x+7 и p2(x) = = 3x2 - 7 как элементы евклидова кольца . Применяя алгоритм Евклида, получаем такие последовательности:

Поскольку p4(x) = -1/4, получаем НОД[p1(x), p2(x)] = 1.

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

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

Из этого примера видно, что использовать арифметику рациональных чисел для вычисления последовательности полиномиальных остатков нецелесообразно; с одной стороны, число требуемых для максимального редуцирования коэффициентов вычислений НОД целых чисел слишком велико, и с другой стороны, отказ от редукции ведет в стремительному росту выражения.

Коэффициенты многочленов в приведенных выше примерах являются целыми числами, т. е. мы можем рассматривать эти многочлены как элементы кольца . Поскольку это кольцо факториально (с однозначным разложением на неприводимые множители), для любых двух элементов этого кольца, не равных одновременно нулю, определен их наибольший общий делитель. С другой сторо- ны, из вложения следует, что мы можем рассматривать наибольший общий делитель этих же многочленов в кольце . Как связаны между собой эти наибольшие общие делители? Одно отличие мы уже знаем: НОД в кольце определен с точностью до знака, а в кольце — с точностью до умножения на любое ненулевое рациональное число. Покажем, что, по существу, этим отличие и ограничивается.

6.2. ЛЕММА (Гаусса). Если коэффициенты многочлена взаимно просты в совокупности и f = g · h, где и НОД числителей коэффициентов каждого из многочленов g и h равен 1, то .

ДОКАЗАТЕЛЬСТВО. Проведем доказательство методом "от противного". Пусть и — простое число, которое делит знаменатель какого-либо коэффициента ai. Выберем максимальную степень числа p, которая делит знаменатель какого-либо коэффициента ai, обозначим ее k. Без потери общности можем обозначить i0 такой индекс, что знаменатели коэффициентов ai при i > i0 не делятся на pk, а знаменатель коэффициента делится на pk. Рассмотрим теперь многочлен Пусть l — минимальная степень p, на которую делится хотя бы один коэффициент bj (l < 0, если p делит знаменатель какого-либо коэффициента). По условию, l <= 0. Пусть j0 — наибольшее значение индекса, на котором этот минимум достигается. Вычислим коэффициент при в произведении gh. Имеем

Знаменатель первого слагаемого делится на pk-l, знаменатель ни одного из коэффициентов под знаком суммы на это число не делится. Таким образом, знаменатель коэффициента делится на , что противоречит условию леммы.

Пользуясь леммой Гаусса 6.2, мы можем разбить вычисление НОД(f(x), g(x)) в кольце на следующие этапы:

  1. найти наибольший общий делитель коэффициентов многочленов f(x) и g(x) ;
  2. найти dq(x) = НОД(f(x), g(x)) в кольце , нормированный таким образом, что и коэффициенты многочлена dq(x) взаимно просты;
  3. НОД(f(x), g(x)) = dc · dq(x) в кольце .

Введем следующие определения.

6.3. ОПРЕДЕЛЕНИЕ. Наибольший общий делитель коэффициен- тов многочлена называется содержанием этого многочлена и обозначается cont(f). Многочлен f(x)/ cont(f) называется примитивной частью многочлена f(x) и обозначается p. p.(f(x)).

Обратимся теперь к задаче нахождения наибольшего общего делителя двух полиномов p1(x), p2(x) в кольце , при условии, что все арифметические операции над коэффициентами выполняются не в поле , а в кольце , являющимся не полем, а только областью с однозначным разложением на множители. Из приведенных выше рассуждений ясно, что мы можем вывести следующие важные соотношения:

cont{НОД[p1(x), p2(x)]} = НОД{cont[p1(x)], cont[p2(x)]},
			p. p.{НОД[p1(x), p2(x)]} = НОД{p. p.[p1(x)], p. p.[p2(x)]}.

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

Рассмотрим два примитивных ненулевых полинома p1(x) и p2(x) в , у которых deg[p1(x)] = m и deg[p2(x)] = n, m > n. Поскольку алгоритм деления полиномов с остатком требует точной делимости старшего коэффициента делимого на старший коэффициент делителя, обычно этот процесс невозможно выполнить для полиномов p1(x) и p2(x) над целыми числами, не ослабляя требования делимости. Поэтому мы вводим процесс псевдоделения, который всегда дает нам псевдочастное и псевдоостаток (prem), коэффициенты которых являются целыми числами.

Псевдоделение означает предварительное умножение полинома p1(x) на {lc[p2(x)]}m-n+1, а затем применение алгоритма деления многочленов, когда известно, что все частные существуют, т. е.

где q(x) и r(x) — псевдочастное и псевдоостаток соответственно.

6.4. ПРИМЕР. Пользуясь псевдоделением в , разделим p1(x) == x4 - 7x + 7 на p2(x) = 3x2 - 7. Для того, чтобы вычислить q(x) и r(x), предварительно умножим p1(x) на 34-2+1 = 27, а затем, применяя алгоритм деления многочленов, получаем q(x) = 9x2 + 21 и r(x) = -189x + 336. Читатель может убедиться, что алгоритм деления многочленов не будет работать, если мы предварительно домножим p1(x ) только на 3.

Поэтому, пытаясь вычислить наибольший общий делитель полиномов p1(x) и p2(x), мы должны убедиться, что выполнимы все деления полиномов, встречающиеся в этом процессе, т. е. мы должны, используя псевдоделения, сформировать последовательность полиномиальных остатков. Таким образом, мы приходим к следующему обобщенному алгоритму Евклида для полиномов.

А 6. АЛГОРИТМ (GEA-P). Обобщенный алгоритм Евклида для многочленов над целыми числами G eneralized E uclidean A lgorithm for P olynomials over the Integers.

Ясно, что время работы этого алгоритма зависит от того, насколько эффективно мы можем вычислять последовательность полиномиальных остатков . Заметим, что если , то в общем случае мы можем утверждать, что члены этой последовательности удовлетворяют соотношениям

где i = 1, 2, . . . , h - 1 для некоторого h. [Разумеется, , i = 1, 2,где , определены на шаге 2 алгоритма GEA-P ]. Если дан метод выбора коэффициентов , то выписанное соотношение дает алгоритм построения PRS; очевидно, что условие завершения этого семейства алгоритмов — равенство нулю псевдоостатка.

Ниже мы рассматриваем различные алгоритмы, полученные для разных значений .

Евклидов алгоритм PRS.

Здесь для всех , т.е. каждый псевдоостаток используется в том виде, в котором он получен. Это один из худших методов построения PRS, приводящий к экспоненциальному росту коэффициентов.

6.5. ПРИМЕР. Рассмотрим полиномы , в Очевидно, что и , . Мы имеем такую последовательность:

полученную при выполнении следующих псевдоделений:

Из шага 4 алгоритма GEA-P следует, что НОД[p1(x), p2(x)]=1. Отметим также, что в последнем псевдоделении коэффициенты имеют 8 десятичных цифр, поскольку (-441)2p3(x)=-8168202x+12252303.

Последовательность полиномиальных остатков этого примера называется полной, потому что степень каждого ее члена на единицу меньше степени предыдущего; два первых члена могут, конечно, иметь одинаковые степени. В противном случае последовательность называется неполной. Заметим, что не существует способа сказать a priori, будет ли PRS полной или неполной.

Экспоненциальный рост коэффициентов членов PRS в приведенном примере обусловлен тем, что полиномы этой последовательности не являются примитивными, т. е. то, что мы не избавляемся от их содержания, дает вредный эффект. Эта ситуация исправляется ниже.

Алгоритм примитивных PRS

В этом случае

где prem обозначает псевдоостаток, т. е. теперь мы удаляем содержание (i + 2) -го члена PRS до того, как мы используем его. [Напомним, что для данного p(x) удобно определять p. p.[p(x)] так, чтобы старший коэффициент был положительным.]

6.6. ПРИМЕР. Рассмотрим те же полиномы, что и в предыдущем примере: p1(x) = x3 - 7x + 7, p2(x) = 3x2 - 7 в , где снова Теперь мы получаем

что достигается выполнением следующих псевдоделений:

Этот алгоритм дает наилучшие возможные результаты в отношении роста коэффициентов, однако, они достигаются достаточно сложными вычислениями НОД коэффициентов на каждом этапе. В монографии [7], 2.3.3] утверждается, что лучшим из известных методов вычисления НОД многочленов, основанных на применении к многочленам с целыми коэффициентами алгоритма Евклида, является метод, в котором множители выбираются следующим образом.

Предположим, что даны два многочлена . Для вычисления их НОД построим последовательность полиномиальных остатков p3(x), p4(x), . . . , ps(x), 0. Введем обозначение ci для старшего коэффициента многочлена pi(x) и для разности степеней многочленов pi(x) и pi+1(x). Последовательность полиномиальных остатков строим по формуле (6.1), в которой полагаем

где

Теорема о субрезультантах (см., например, [12]) утверждает, что все pi являются многочленами с целыми коэффициентами.

6.7. ПРИМЕР. Анализ вычисления НОД следующих многочленов выполнен Брауном [17]. Этот пример разобран также в монографии [7], § 2.3.3].

Рассматривая эти многочлены как элементы кольца и применяя алгоритм Евклида, мы получаем следующую последовательность:

Все выписанные дроби являются несократимыми.

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

Применение нормализации делителя позволяет уменьшить коэффициенты, но не слишком сильно.

Для данного примера евклидова последовательность полиномиальных остатков имеет вид

Для вычисления этой последовательности с помощью системы Maple нужно в приведенной выше программе заменить функцию rem на prem.

Наконец, применяя формулы (6.2) и (6.3), мы получаем последовательность

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

Модулярный алгоритм вычисления НОД многочленов.

Пусть p — простое число. Любое целое число m можно рассматривать как представитель соответствующего класса вычетов по модулю p, т. е. числу m можно однозначно поставить в соответствие некоторый элемент из поля . В частности, любому многочлену можно однозначно поставить в соответствие многочлен .

Вернемся к примеру 6.7. Многочлены

можно рассматривать как элементы кольца для любого простого p. Можно вычислить их наибольший общий делитель в . При этом у нас не возникнет проблем с ростом коэффициентов, поскольку мы можем пользоваться системой представителей из множества {0, 1, . . . .p - 1}. Полагая p = 5, мы без особого труда убеждаемся, что многочлены a(x) и b(x) взаимно просты в кольце . Можно ли из этого сделать вывод, что многочлены a(x) и b(x) взаимно просты в кольце ? Оказывается, можно. Доказательство этого факта основано на следующих утверждениях.

6.8. ПРЕДЛОЖЕНИЕ. Описанное выше отображение , такое, что является гомоморфизмом колец, т. е. сумма переходит в сумму, а произведение—в произведение. В частности, если g(x) | f(x) в , то gp(x) | fp(x) в .

6.9. ПРЕДЛОЖЕНИЕ. Предположим, что —примитивные многочлены и простое число p не делит старшие коэффициенты многочленов a(x) и b(x). Если НОД(ap(x), bp(x)) = 1 в , то НОД(a(x), b(x)) = 1 в .

6.10. УПРАЖНЕНИЕ. Показать, что оба условия в предложении 6.9 являются существенными, т. е. если многочлены не являются примитивными или p делит их старшие коэффициенты, то из НОД(ap(x), bp(x)) = 1 в не следует, что НОД(a(x), b(x)) = 1 в .

6.11. ПРЕДЛОЖЕНИЕ. Предположим, что примитивные многочлены, такие, что НОД(a(x), b(x))=1 в . Тогда НОД(ap(x), bp(x))=1 в для почти всех простых чисел p.

ДОКАЗАТЕЛЬСТВО. Без потери общности мы можем считать, что рассматриваются только простые числа, которые не делят ни старший коэффициент многочлена a(x), ни старший коэффициент многочлена b(x). Условие НОД(ap(x), bp(x)) = 1 означает, что результант Resp(ap, bp) этих многочленов, рассматриваемых как элементы кольца , не обращается в нуль. Чтобы вычислить Resp(ap, bp), нам достаточно вычислить результант Res(a, b) многочленов a(x), b(x) в кольце и взять образ этого результанта по модулю p. Результант Res(a, b) является ненулевым целым числом (так как исходные многочлены по условию взаимно просты) и делится только на конечное число простых чисел.

6.12. ОПРЕДЕЛЕНИЕ. Пусть —примитивные многочлены, такие, что НОД(a(x), b(x))=1 в . Простое число p назовем плохой редукцией, если либо p делит старший коэффициент хотя бы одного из многочленов a(x), b(x), либо .

6.13. ЗАДАЧА. Для примитивных многочленов найти ограничение сверху для числа плохих редукций (или ограничение сверху для их произведения).

Для решения этой задачи могут пригодиться результаты, приведенные в параграфе 7 .

Итак, мы можем сформулировать следующий алгоритм проверки взаимной простоты примитивных многочленов .

А 7. АЛГОРИТМ (Проверки взаимной простоты многочленов).

В действительности, модулярный метод может быть применен не только для проверки взаимной простоты многочленов, но и для нахождения их НОД.

Следующее предложение обобщает предложение 6.11.

6.14. ПРЕДЛОЖЕНИЕ. Предположим, что —примитивные многочлены и d(x) = НОД(a(x), b(x)) в . Предположим, что p — простое число, которое не делит ни старший коэффициент многочлена a(x), ни старший коэффициент многочлена b(x ). Пусть в . Тогда deg и для почти всех p.

ДОКАЗАТЕЛЬСТВО. Из предложения 6.8 следует, что dp(x) является общим делителем многочленов ap(x) и bp(x)) в , т. е. . Следовательно, . Применяя предложение 6.11 к многочленам a(x)/d(x ) и b(x)/d(x), получим, что для почти всех p.

Обобщим определение 6.12 следующим образом.

6.15. ОПРЕДЕЛЕНИЕ. Пусть —примитивные многочлены. Простое число p назовем плохой редукцией, если либо p делит старший коэффициент хотя бы одного из многочленов a(x), b(x), либо .

Можно ли утверждать, что ? Для ответа на этот вопрос вспомним, что НОД определен с точностью до умножения на обратимые элементы кольца, т. е. , следовательно, и определены с точностью до умножения на , а определен с точностью до умножения на ненулевые элементы поля . Таким образом, среди возможных значений будут , но, в общем случае, ими значения не исчерпываются.

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

Что касается необходимого количества редукций (количества простых чисел, по модулю которых выполняются вычисления), то можно поступить одним из следующих способов:

  1. оценить заранее достаточное число редукций, пользуясь, например, оценками для коэффициентов делителей заданного многочлена, приведенными в параграфе 7 ;
  2. после каждой редукции пересчитывать коэффициенты искомого НОД, пользуясь КТО; если применение новой редукции не меняет этих коэффициентов, то проверить, делит ли полученный многочлен исходные. Если да, то задача решена, иначе выполнять следующие редукции.

Отметим, что в этой задаче, применяя КТО, мы должны находить числа с данными вычетами не из множества неотрицательных чисел , а из симметричной системы (при четном , т. е. когда в качестве одного из модулей используется 2, система получается немного несимметричной: от до , где ).

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

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

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

А 8. АЛГОРИТМ (Модулярный НОД).

Предписание "Применить КТО к " означает следующее. На входе: — простое число, — натуральное число, не делящееся на , коэффициенты многочленов и рассматриваются как представители смежных классов по модулю и соответственно. Вычисляются числа , такие что и , , . На выходе и .

6.16. ЗАДАЧА. Доказать корректность представленного алгоритма.

6.17. ПРИМЕР. Пользуясь модулярным алгоритмом, вычислим НОД многочленов и .

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

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

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

Получаем . Переходя к симметричной системе вычетов, получаем . Убеждаемся, что не делит исходные многочлены в .

Берем . Получаем . Домножая на 4, получим . Пользуясь китайской теоремой об остатках, решаем систему сравнений

Получаем . Переход к симметричной системе вычетов ничего не меняет, и в итоге мы получаем . Убеждаемся, что делит исходные многочлены в и является наибольшим общим делителем исходных многочленов.

Границы для коэффициентов делителя полинома

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

7.1. ПРИМЕР. Рассмотрим многочлены

Легко видеть, что НОД .

Этот пример легко обобщается, например, путем умножения обоих исходных многочленов на .

Неравенство Коши

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

ТЕОРЕМА. Пусть ,

(7.1)
- полином с комплексными коэффициентами. Тогда любой корень полинома удовлетворяет неравенству
(7.2)

ДОКАЗАТЕЛЬСТВО. Пусть . Если , то утверждение теоремы тривиально. Предположим, что и положим . По предположению

следовательно,
то есть .

Разумеется, эта оценка не является единственно возможной. Ниже приведены еще две оценки, первая из которых также принадлежит Коши, а вторая — Кнуту:

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

Воспользуемся неравенством Коши для получения оценки коэффициентов делителя полинома, которая известна как неравенство Ландау. Ландау

Неравенство Ландау

Пусть . Положим

(7.3)
Рассматриваем формулу (7.3) как некоторое удобное обозначение. Можно доказать, что эта формула задает на пространстве полиномов метрику, но мы не пользуемся этим фактом, необходимые нам свойства этой метрики будут доказаны.

ТЕОРЕМА. Предположим, что полином задан формулой (7.1). Пусть — корни полинома . Положим

Тогда .

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

ЛЕММА. Если — полином и — комплексное число, то

(7.4)

ДОКАЗАТЕЛЬСТВО. Пусть . Тогда квадрат выражения в левой части равенства (7.4) равен

(полагаем ). Этому же выражению равен и квадрат правой части.

ДОКАЗАТЕЛЬСТВО ТЕОРЕМЫ. Пусть — корни полинома , лежащие вне единичного круга. Тогда . Положим

k-кратное применение леммы дает . Однако .

7.5. ТЕОРЕМА. Пусть , — делитель полинома , задаваемого формулой (7.1). Тогда

ДОКАЗАТЕЛЬСТВО. Легко проверяется, что

но , и из неравенства Ландау следует, что .

7.6. УПРАЖНЕНИЕ. Пусть и — делитель полинома . Предположим, что . Тогда

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

Другие полезные границы можно найти, например, в работе [25].

Лекция 4. Базисы Гребнера

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

Определение базисов Гребнера

Следующей рассматриваемой задачей будет задача выбора канонического представления для элементов кольца регулярных на некотором алгебраическом многообразии функций. Это кольцо представляет собой факторкольцо кольца многочленов , где - поле, по некоторому идеалу . Предполагаем, что идеал задан конечной системой образующих: . Теорема Гильберта о базисе утверждает, что таким образом может быть задан любой идеал кольца многочленов . Любой элемент факторкольца - это смежный класс элементов кольца относительно идеала . При фиксированном каноническом представлении элементов кольца , задача о представлении элементов факторкольца сводится к задаче выбора канонического представителя в смежном классе. Будем пытаться решить ее в следующей формулировке: в кольце многочленов дано конечное множество элементов . Требуется построить алгоритм, который для любого многочлена выбирал бы канонического представителя в соответствующем смежном классе по идеалу .

Кольцо многочленов можно рассматривать как бесконечномерное векторное пространство над полем , базис которого образует счетное множество мономов . Идеал , а, следовательно, и факторкольцо , также являются векторными -пространствами. Наша задача состоит в построении отображения , правого обратного к каноническому гомоморфизму , т. е. для любого , Таким образом, мы получаем разложение в прямую сумму векторных пространств и . Задачу выбора канонического представления решает тогда отображение , получающееся проектированием прямой суммы векторных пространств на одно из слагаемых. Достаточно выбрать новый базис кольца , рассматриваемого как векторное -пространство, пересечение которого с идеалом представляет базис векторного пространства .

8.1. ПРИМЕР. Пусть идеал является мономиальным, т. е. порожден мономами . Тогда является базисом векторного пространства , а - базисом факторкольца , рассматриваемого как векторное пространство. Каноническое представление получается, если в разложении любого многочлена по базису отбрасывать элементы, принадлежащие .

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

8.2. ПРЕДЛОЖЕНИЕ. Пусть - векторное пространство (возможно, бесконечномерное) и - его подпространство. Предположим, что базис векторного пространства выбран таким образом, что представляет собой базис пространства . Тогда каноническое представление факторпространства в получается, если базис пространства отождествить с .

ДОКАЗАТЕЛЬСТВО получается немедленно из разложения векторного пространства в прямую сумму векторных пространств с базисами и , которые изоморфны пространствам и соответственно.

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

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

Предположим, что множество упорядочено таким образом, что:

  1. для любого монома ;
  2. если , то для любого монома .

Как уже сказано в параграфе 3.1, наиболее часто используются следующие три отношения порядка:

Отображение ставит в соответствие любому многочлену его старший моном (присутствующий в с ненулевым коэффициентом).

8.3. УПРАЖНЕНИЕ. Показать, что многочлены с различными старшими мономами линейно независимы.

8.4. УПРАЖНЕНИЕ. Показать, что свойство системы порождать или не порождать векторное пространство не зависит от выбора представителей в прообразах элементов из .

8.5. УПРАЖНЕНИЕ. Показать, что система порождает векторное пространство тогда и только тогда, когда полугруппа, порожденная в старшими мономами элементов множества , совпадает с полугруппой старших мономов элементов идеала .

8.6. УПРАЖНЕНИЕ. Показать, что система порождает векторное пространство тогда и только тогда, когда идеал, порожденный старшими мономами элементов множества , совпадает с ассоциированным градуированным идеалом идеала (относительно фильтрации с одномерными факторами, определяемой введенным отношением порядка).

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

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

Вернемся к рассмотрению полиномиальных идеалов. Как уже отмечалось, в качестве базиса выбирается множество мономов . Утверждение о том, что является градуированным векторным пространством с базисом , означает, что любой многочлен можно записать в виде , , где для всех . Переход от фильтрации к градуировке означает выделение старшего одночлена: .

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

(8.1)

В качестве можно выбрать любое подмножество , где - произвольная система образующих идеала , руководствуясь двумя требованиями: во-первых, различные элементы множества должны иметь разные старшие мономы; во-вторых, система должна быть максимальна в том смысле, что для любого элемента существует элемент с таким же старшим мономом. Например, можно включить в множество , далее добавить к нему те элементы множества , старшие мономы которых отличаются от старших мономов всех элементов, уже включенных в множество и т.д.

8.7. ОПРЕДЕЛЕНИЕ. Систему образующих идеала назовем базисом Гребнера этого идеала, если подмножество , введенное выше, образует базис векторного пространства .

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

8.8. ПРИМЕР. Пусть - главный идеал, порожденный многочленом . Тогда является базисом Гребнера идеала .

8.9. ПРИМЕР. Многочлены и не составляют базис Гребнера порождаемого ими идеала в кольце . Доказать.

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

8.10. ПРИМЕР. Если , то является базисом Гребнера идеала тогда и только тогда, когда .

8.11. ПРИМЕР. Если поле алгебраически замкнуто и - максимальный идеал, то является базисом Гребнера идеала тогда и только тогда, когда для любой переменной найдется элемент со старшим мономом .

8.12. ПРИМЕР. Если поле не является алгебраически замкнутым, то утверждение предыдущего примера неверно.

Следует заметить, что введенное выше определение базиса Гребнера не является конструктивным: не указано алгоритма для проверки, что некоторая система многочленов представляет базис Гребнера порождаемого ими идеала, и тем более не дан алгоритм, позволяющий для идеала, заданного некоторой системой образующих, построить его базис Гребнера.

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

Базисы Гребнера в полиномиальных, дифференциальных и разностных модулях

Пусть - конечная система элементов. Через обозначим свободную коммутативную полугруппу с единицей (записываемую мультипликативно), порожденную элементами множества . Элементы этой группы будем называть мономами. Пусть , . Порядком монома будем называть сумму и обозначать ее будем . Предположим, что мономы линейно упорядочены так, что для любого элемента выполняются следующие условия:

(9.1)
Если , то
(9.2)

Тогда будем говорить, что на множестве мономов задан ранжир. Следующие примеры показывают, что для одного и того же конечного множества существуют различные ранжиры.

9.1. ПРИМЕР (лексикографическое упорядочение мономов) Пусть . Тогда , если либо , либо для и для некоторого .

9.2. ПРИМЕР (стандартный ранжир) предположим, что , если либо , либо и относительно лексикографического упорядочения.

9.3. ПРИМЕР (упорядочение по полной степени, затем обратное лексикографическое) Пусть , . Положим , если либо , либо и существует , , такое, что для и .

Пусть - поле и - векторное -пространство с базисом . Определим на функцию "выделение лидера" следующим образом: каждый элемент из может быть представлен в виде суммы , где лишь конечное число коэффициентов отлично от нуля (такое представление определено однозначно с точностью до порядка слагаемых). Среди всех мономов, входящих в это разложение с ненулевым коэффициентом, выберем максимальный относительно порядка, введенного на множестве мономов . Этот моном будем называть лидером элемента и обозначать через . Корректность такого определения следует из однозначности разложения элемента векторного пространства по базису и из линейной упорядоченности множества .

9.4. ОПРЕДЕЛЕНИЕ. Пусть задан ранжир на множестве мономов и - векторное -пространство с базисом . Предположим далее, что является -алгеброй, и для всех . Кроме того, предположим, что для любых ; в частности, образующие коммутируют между собой. Такое кольцо будем называть кольцом обобщенных многочленов от переменных .

9.5. ПРИМЕР(кольцо коммутативных многочленов над полем) Рассмотрим любой ранжир на множестве . В качестве возьмем алгебру многочленов от коммутирующих переменных над полем . Нетрудно увидеть, что условие будет выполнено для всех , а, следовательно, мы можем рассматривать как кольцо обобщенных многочленов от переменных .

9.6. ПРИМЕР(кольцо дифференциальных операторов над полем) Пусть - дифференциальное поле с базисным множеством попарно коммутирующих между собой дифференцирований. Ранжир на множестве так же, как и в примере 9.5, может быть любым. Тогда кольцо линейных дифференциальных операторов над (см. определение 3.4) будет являться кольцом обобщенных многочленов от неизвестных .

9.7. ПРИМЕР(кольцо дифференциальных операторов над кольцом многочленов) Пусть - дифференциальное поле с базисным множеством дифференцирований , и пусть - кольцо коммутативных многочленов от переменных над полем . Определим дифференцирования кольца следующим образом: если , то для всех . Выберем теперь для каждого число и положим для всех и . Тогда кольцо линейных -операторов над кольцом будет являться кольцом обобщенных многочленов от переменных . Действительно, если мы рассмотрим такой ранжир, что для всех , , то, как легко доказать, условие будет выполнено.

9.8. ПРИМЕР(кольцо разностных операторов над полем) Пусть - разностное поле с базисным множеством попарно коммутирующих автоморфизмов . Тогда кольцо линейных разностных операторов (см. определение 3.9) будет являться кольцом обобщенных многочленов от переменных . В качестве ранжира можно выбрать любое упорядочение, удовлетворяющее условиям (9.1)-(9.2).

9.9. ПРИМЕР(кольцо дифференциально-разностных операторов над полем) Обобщением примеров 9.6 и 9.8 является случай кольца , когда часть переменных соответствует дифференцированиям, а другая часть - автоморфизмам.

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

9.10. ОПРЕДЕЛЕНИЕ. Ранжиром на множестве термов будем называть отношение полного порядка на , удовлетворяющее следующим условиям:

  1. для любого терма и любого монома ;
  2. если , где , то для всех .

9.11. ОПРЕДЕЛЕНИЕ. правильным если из условия следует для всех .

9.12. ПРИМЕР. Пусть задан ранжир на множестве мономов . Будем сравнивать термы вида по их последней координате и только в случае равенства ее для двух термов переходить к сравнению мономов. Полученный таким образом ранжир на не является правильным.

9.13. ПРИМЕР. Пусть . Будем считать, что тогда и только тогда, когда

Этот ранжир является правильным. Мы будем называть его стандартным.

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

9.14. ОПРЕДЕЛЕНИЕ. Пусть задан ранжир на множестве термов , и пусть . Будем говорить, что терм ниже(выше) рангом, чем , если .

Кроме отношения порядка на , определим отношение частичного порядка следующим образом:

(9.3)
В этом случае будем говорить, что терм делит . Из (1) следует, что < совместно с
(9.4)
, т.е.

9.15. ОПРЕДЕЛЕНИЕ. Любой элемент допускает единственное представление в виде конечной суммы:

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

Пусть - свободный -модуль и . Будем говорить, что элемент ниже рангом, чем , и писать , если . Будем говорить, что элемент выше рангом, чем , и писать , если . Если , то будем говорить, что элементы и имеют одинаковый ранг. Ясно, что различные элементы могут иметь одинаковый ранг.

9.16. ОПРЕДЕЛЕНИЕ. Пусть - конечное множество образующих некоторого -модуля (без потери общности можно предположить, что для любого ). Определим процесс редукции следующим образом: , если и существуют терм , и , такие, что , , .

9.17. ЛЕММА. Пусть и . Тогда .

ДОКАЗАТЕЛЬСТВО. Утверждение леммы следует из того, что отношение > является линейным порядком на множестве термов и свойства (2).

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

9.18. ПРИМЕРЫ.

  1. Пусть , т.е. - векторное пространство над полем . Рассмотрим стандартный ранжир на . Если - вектор, у которого первая ненулевая координата стоит на -м месте, то редукция вектора относительно приводит к обнулению -й координаты вектора путем вычитания соответствующего кратного вектора .
  2. Пусть - поле, и , т.е. - кольцо многочленов от одной переменной. Рассмотрим стандартный ранжир на . Пусть . Тогда и .

9.19. ОПРЕДЕЛЕНИЕ. Пусть на свободном -модуле дано отношение редукции и вычислимая функция такая, что для любого редуцируемого элемента . Рассмотрим вычислимую функцию , определяемую рекурсивно формулой

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

9.20. ОПРЕДЕЛЕНИЕ. Частичную редукцию определим как нормальную редукцию, осуществляемую только до тех пор, пока редуцируется лидер.

9.21. ЛЕММА. Если , то элементы и принадлежат одному и тому же смежному классу модуля , где - подмодуль, порожденный множеством .

ДОКАЗАТЕЛЬСТВО. , следовательно, .

9.22. ЛЕММА. Пусть - свободный -модуль и - конечное подмножество модуля . Тогда отношение редукции является нетеровым, т.е. не существует бесконечных цепочек вида . Следовательно, для любого элемента существует (не обязательно единственный) нередуцируемый элемент , такой, что .

ДОКАЗАТЕЛЬСТВО. Предположим противное. Всякий ранжир, по определению, вполне упорядочивает множество термов . Поэтому мы можем выбрать среди всех бесконечных цепочек редукций цепочку, начинающуюся с элемента с минимальным относительно ранжира лидером . Возможны две ситуации: либо на некотором шаге редукции терм редуцируется и оставшаяся часть цепочки начинается с элемента, все слагаемые которого меньше, чем ; либо не редуцируется ни на каком шаге редукции. В обоих случаях получается противоречие с минимальностью выбранной цепочки: в первом случае можно выбрать хвост исходной цепочки, остающийся после редуцирования ; во втором - вычесть из всех элементов цепочки терм .

9.23. ПРЕДЛОЖЕНИЕ. Множество нередуцируемых относительно отношения элементов является векторным -пространством.

ДОКАЗАТЕЛЬСТВО. Нужно проверить, что если и - нередуцируемые элементы и , то элементы и также нередуцируемы. Это немедленно следует из того, что в и присутствуют с ненулевыми коэффициентами только те слагаемые, которые присутствуют в и .

9.24. ЛЕММА. Если множество порождает подмодуль и , то существует целое и элементы , такие, что для всех от 1 до либо , либо .

ДОКАЗАТЕЛЬСТВО. Поскольку порождает модуль , элемент можно представить в виде суммы

где - коэффициенты, , (могут совпадать при различных значениях ). Доказательство леммы будем вести индукцией по минимальной длине такого представления. Если , то , и утверждение леммы выполнено. Для произвольного мы можем предполагать, что для всех . Положим , . Тогда и , так что можно применить предположение индукции.

9.25. ОПРЕДЕЛЕНИЕ. На прямом произведении определим функцию , такую, что , если , или , или не определен; в остальных случаях , где и .

9.26. ОПРЕДЕЛЕНИЕ. Пусть - кольцо обобщенных многочленов от переменных над полем , - свободный -модуль. Предположим, что - подмодуль свободного модуля , - конечное множество и < - ранжир на множестве термов . Множество называется базисом Гребнера ( -базисом) подмодуля , если для любого ненулевого элемента имеется представление Гребнера ( -представление):

откуда, в частности, следует, что .

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

Для формулировки основного результата настоящего параграфа введем некоторые обозначения и докажем две леммы.

9.27. ОПРЕДЕЛЕНИЕ. Для элементов будем писать , если существует элемент , такой, что и .

9.28. ЛЕММА. Пусть и . Тогда .

ДОКАЗАТЕЛЬСТВО. Пусть , где и , . Если , то , где , тогда

и

9.29. ОПРЕДЕЛЕНИЕ. Будем говорить, что отношение редукции удовлетворяет условию слияния }, если для любого элемента из условий и следует, что .

9.30. ОПРЕДЕЛЕНИЕ. Будем говорить, что отношение редукции удовлетворяет локальному условию слияния, если для любого элемента из и следует, что .

9.31. ОПРЕДЕЛЕНИЕ. Будем говорить, что отношение редукции удовлетворяет псевдолокальному условию слияния, если для всех , таких, что и , существует целое и элементы , такие, что и для всех .

9.32. ЛЕММА. Если нетерово отношение удовлетворяет псевдолокальному условию слияния, то отношение удовлетворяет условию слияния.

ДОКАЗАТЕЛЬСТВО. Применим "нетерову" индукцию, т.е. покажем, что если утверждение леммы верно для всех таких, что , то оно верно и для . Такой индукции достаточно для доказательства леммы, поскольку в противном случае некоторый элемент , для которого утверждение леммы не выполняется, мог бы быть выбран в качестве первого элемента бесконечной цепочки для всех элементов которой утверждение леммы также не выполняется.

Итак, фиксируем и предположим, что для всех элементов таких, что , утверждение леммы выполняется. Покажем, что оно выполняется и для . Без потери общности мы можем предполагать, что данные элементы и отличны от , т.е. имеют место редукции и . Элементы и удовлетворяют псевдолокальному условию слияния при некотором~ .

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



Рис. 6.1. 



Рис. 6.2. 

Переход от к иллюстрируется следующей диаграммой (рис. 6.2). Пусть и удовлетворяют псевдолокальному условию слияния с цепочкой из элементов: . По предположению индукции элементы и удовлетворяют условию слияния (элемент ). Существование элементов , и в приведенной диаграмме следует из предположения о том, что элементы, которые получены редукцией элементов, следующих за , в частности, , удовлетворяют условию слияния.

Следующая теорема перечисляет ряд условий, которые равносильны определению базиса Гребнера. Следует отметить, что среди них содержатся условия (6') и (7') и , позволяющие за конечное число шагов проверить, является ли выписанная система образующих подмодуля его базисом Гребнера.

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

(1) является -базисом модуля ;

(1') любой элемент модуля допускает нормальное -представление;

(2) порождает ;

(3) для любого имеет место ;

(3') для любого имеет место ;

(4) если и нередуцируемы, то ;

(5) если и нередуцируем, то .

Следующие условия являются необходимыми для выполнения предыдущих, и, если множество порождает , то они являются и достаточными:

(6) если и , то допускает -представление;

(6') если и , то допускает нормальное -представление;

(7) если и определен, то в существуют элементы , такие, что

и каждый -элемент , , допускает -представление;

(7') если и определен, то в существуют элементы , удовлетворяющие условию (9.7), такие, что каждый -элемент , , допускает нормальное -представление;

(8) если , и и нередуцируемы, то ;

(9) если , , то существует элемент , такой, что , , т.е. удовлетворяет условию слияния;

(10) для любых ;

(10') для любых ;

(11) если и определен, то в существуют элементы , удовлетворяющие условию (9.7) и такие, что для всех ;

(11') если и определен, то в существуют элементы , удовлетворяющие условию и такие, что для всех .

ДОКАЗАТЕЛЬСТВО. Докажем следующие импликации:

. Тривиально, поскольку .

. Аналогично.

. Достаточно положить .

. Аналогично.

. Тривиально.

. По предложению (9.23) множество нередуцируемых элементов является векторным пространством, значит, если и нередуцируемы, то и их разность нередуцируема. Поскольку , из 3 и предыдущего замечания следует, что , т.е. (4)

. Полагаем .

. Достаточно применить леммы 9.21 и 9.22.

. Очевидно.

. Пусть и . Тогда элемент не может редуцироваться к 0, что противоречит (3).

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

. Очевидно.

. Достаточно заметить, что если , , то .

. Аналогично.

. Очевидно.

. Также очевидно.

. Очевидно.

. Пусть , и , , , , - -представление элемента . Положим . Тогда

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

Выделим в слагаемое , т.е. , где состоит из слагаемых, которые больше, чем , а - из слагаемых, меньших . Нужно рассмотреть два случая: и . В первом из них, полагая и , по лемме 9.28 получаем , откуда .

В случае, когда , одновременно выполняются условия и . Поэтому определен . По условию 11 доказываемой теоремы в существует последовательность , удовлетворяющая условию (9.7) и такая, что для любого . Значит, для любого , поэтому существуют , такие, что , и , . Покажем, что . Это следует из того, что

где и удовлетворяет условию . Следовательно, отношение удовлетворяет псевдолокальному условию слияния.

. Если множество порождает , то по лемме 9.24 существуют элементы , такие, что для любого либо , либо . Пусть обозначает наибольший индекс, для которого не выполняется условие . Тогда и . По условию 9 , и получаем противоречие с выбором , поскольку редуцируется только в самого себя.

. , следовательно, .

. Пусть и . Выберем нередуцируемые и такие, что , . Из (8) следует, что , т.е. отношение удовлетворяет условию слияния.

Поскольку вопрос о -представимости элемента может быть решен алгоритмически, пункт (6') дает нам возможность сформулировать алгоритм проверки, является ли данная система образующих подмoдуля его базисом Гребнера. Пункт (7') этой же теоремы позволяет нам оптимизировать полученный алгоритм, проверяя -представимость не всего множества -элементов, а только некоторого его подмножества.

9.34. УПРАЖНЕНИЕ. Показать, что многочлены

не составляют базис Гребнера порождаемого ими идеала (упорядочение по степени, затем обратное лексикографическое, ).

9.35. УПРАЖНЕНИЕ. Показать, что многочлены

образуют базис Гребнера идеала, введенного в предыдущем упражнении.

9.36. УПРАЖНЕНИЕ. Показать, что, используя теорему 9.33.11, в предыдущем упражнении достаточно рассмотреть -элементы для пар (2,3), (2,4), (5,6), (4,7), (2,7), (5,7), (5,8), (6,8), (4,9), (5,9).

9.37. УПРАЖНЕНИЕ. Пусть - кольцо обобщенных многочленов над полем от конечного числа неизвестных, - свободный -модуль и ранжир на множестве термов правильный. Пусть - подмодуль модуля и - базис Гребнера подмодуля . Показать, что для каждого элемента существует представление , где , такое, что для всех .

Если данная система элементов не является базисом Гребнера порождаемого ею подмодуля, то ее можно расширить, присоединяя поочередно элементы, получающиеся редуцированием -элементов.

9.38. УПРАЖНЕНИЕ. Доказать конечность следующего рекурсивного алгоритма построения базиса Гребнера полиномиального идеала (алгоритм пополнения).

Алгоритм ( )

Очевидно, что сформулированный алгоритм не является оптимальным. Учитывая роль, которую базисы Гребнера играют в компьютерной алгебре, и высокую сложность алгоритмов их построения, оптимизация этих алгоритмов приобретает особое значение. Вопросы оптимизации будут рассмотрены несколько позже.

Базис Гребнера для любого подмодуля определен неоднозначно. В частности, после присоединения к базису Гребнера модуля любого элемента снова получаем базис Гребнера модуля . Естественно возникает вопрос о минимальных базисах Гребнера.

Следующая терминология пришла из дифференциальной алгебры.

9.39. ОПРЕДЕЛЕНИЕ. Подмножество свободного модуля называется авторедуцированным множеством, если любой элемент нередуцируем относительно .

Из определения немедленно следует, что лидеры всех элементов, принадлежащих авторедуцированному множеству, различны.

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

ДОКАЗАТЕЛЬСТВО. Доказательство немедленно следует из леммы 12.1.

Зафиксировав ранжир < на множестве термов , можно ввести отношение частичного порядка на множестве авторедуцированных множеств.

Пусть и - авторедуцированные множества, элементы которых упорядочены по возрастанию лидеров. Будем считать, что , если,

9.41. ЛЕММА. Любое множество авторедуцированных подмножеств содержит минимальный элемент относительно введенного частичного порядка. Минимальный элемент в множестве всех авторедуцированных подмножеств некоторого подмодуля свободного -модуля является базисом Гребнера модуля .

ДОКАЗАТЕЛЬСТВО. По предложению 9.40 мы можем предполагать, что элементы в наших авторедуцированных множествах упорядочены по возрастанию старших термов. Зафиксируем минимальное значение лидера для первых элементов рассматриваемых авторедуцированных множеств (это значение определено однозначно, поскольку множество термов вполне упорядочено). Обозначим этот лидер . В системе авторедуцированных множеств рассмотрим подсистему множеств , таких, что . В найдем минимальное значение лидера вторых элементов, обозначим его . Продолжая подобным образом, получим авторедуцированную систему термов, упорядоченную по возрастанию ранга их лидеров. По предложению 9.40 эта система должна обрываться на конечном шаге. Выбор системы лидеров осуществлялся таким образом, чтобы всегда существовало авторедуцированное множество, лидеры элементов которого имели вид . Авторедуцированное множество, соответствующее полной системе , является минимальным.

Для доказательства того, что - базис Гребнера модуля , воспользуемся условием 2 теоремы 9.33 Предположим противное, тогда существует элемент , старший терм которого редуцирован относительно . Можно предполагать, что он сам также редуцирован относительно . Рассмотрим множество

Это множество авторедуцировано и его ранг меньше ранга , что противоречит предположению о минимальности .

9.42. СЛЕДСТВИЕ. Пусть - кольцо обобщенных многочленов над полем, - свободный конечнопорожденный -модуль. Тогда для каждого подмодуля модуля существует базис Гребнера.

9.43. СЛЕДСТВИЕ. Всякое кольцо обобщенных многочленов над полем является (слева) нетеровым.

ДОКАЗАТЕЛЬСТВО. Как следует из следствия 9.42, во всяком левом идеале такого кольца существует базис Гребнера. Как видно из определения 9.26, базис Гребнера конечен и порождает этот идеал.

9.44. ОПРЕДЕЛЕНИЕ. Базис Гребнера модуля назовем авторедуцированным, если множество авторедуцировано.

9.45. ПРЕДЛОЖЕНИЕ. Авторедуцированный базис Гребнера модуля определен однозначно с точностью до умножения его элементов на константы из поля .

ДОКАЗАТЕЛЬСТВО. Среди всех авторедуцированных подмножеств модуля выберем минимальное. Обозначим его и предположим, что его элементы нормированы так, что все их старшие коэффициенты равны 1. Покажем, что этим условием множество определено однозначно и что оно является базисом Гребнера модуля .

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

9.46. ОПРЕДЕЛЕНИЕ. Пусть - -базис модуля , относительно некоторого упорядочения термов из . Назовем базис редуцируемым, если для некоторого , , существует -представление , в противном случае называем нередуцируемым.

9.47. ОПРЕДЕЛЕНИЕ. -базис модуля , содержащий элементов, назовем минимальным, если не существует -базиса модуля , содержащего менее элементов.

9.48. ПРЕДЛОЖЕНИЕ. Понятия минимальности и нередуцируемости -базисов совпадают. Каждый авторедуцированный -базис минимален, и каждый минимальный -базис квазиавторедуцирован, т.е. множество его лидеров авторедуцировано (это множество определяется модулем однозначно).

ДОКАЗАТЕЛЬСТВО. Очевидно, что редуцируемый -базис не является минимальным. Таким образом для доказательства предложения достаточно показать, что лидеры элементов нередуцируемого базиса определены однозначно. Доказательство проходит во многом аналогично доказательству предложения 9.45 и оставляется читателю в качестве самостоятельного упражнения.

9.49. ПРИМЕРЫ.

  1. Пусть - поле и . Если матрица системы линейных многочленов приведена к ступенчатому виду, т.е. нет строк, которые начинаются с одного и того же столбца, то эта система представляет собой базис Гребнера порождаемого ею модуля. Показать, что обратное, в общем случае, неверно, т.е. могут существовать базисы Гребнера векторного подпространства, первые ненулевые элементы различных векторов которых стоят в одном и том же столбце.
  2. Пусть - поле, . Множество является базисом Гребнера порождаемого им идеала тогда и только тогда, когда оно содержит НОД всех своих элементов. Минимальный базис Гребнера в этом случае состоит из одного элемента.
  3. Базис Гребнера в упражнении 9.35 не является минимальным. После удаления из него первого элемента он становится минимальным и даже авторедуцированным.

9.50. УПРАЖНЕНИЕ. Показать, что система алгебраических уравнений не имеет решений в алгебраическом замыкании поля коэффициентов тогда и только тогда, когда базис Гребнера идеала, порожденного этой системой, содержит константу.

9.51. УПРАЖНЕНИЕ. Показать, что система алгебраических уравнений из имеет конечное множество решений в алгебраическом замыкании поля коэффициентов тогда и только тогда, когда базис Гребнера идеала, порожденного этой системой, содержит для любого многочлен со старшим мономом, являющимся степенью .

9.52. УПРАЖНЕНИЕ. Построить теорию базисов Гребнера для идеалов в кольце многочленов с коэффициентами из кольца .

Инволютивные базисы

Напомним основные определения и результаты теории базисов Гребнера в простейшей постановке, т. е. для полиномиальных идеалов.

Пусть - поле, - кольцо многочленов над полем , - идеал кольца . Как идеал , так и фактор-кольцо являются линейными -пространствами, в общем случае бесконечномерными. Как найти базисы этих пространств? В кольце , рассматриваемом как -пространство, имеется базис, состоящий из множества всех мономов. Естественно попытаться разбить множество на две части так, что образы элементов из в фактор-кольце образуют базис -пространства , а элементы базиса -пространства находятся во взаимно-однозначном соответствии с элементами множества .

Предположим, что на множестве мономов задан допустимый порядок, т.е. отношение , удовлетворяющее условиям:

  1. для любого нетривиального монома ;
  2. если мономы и удовлетворяют соотношению , то для любого монома .

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

Теперь возникает вопрос: как описать множества и конструктивно?

Ответ на него, а также на многие другие вопросы конструктивной теории полиномиальных идеалов, дает теория базисов Гребнера. Имеется несколько эквивалентных определений базисов Гребнера (см., [26] или [16], в [14] стр.40] эти определения рассматриваются с учетом выбора алгоритма нормальной формы). Например, множество называется базисом Гребнера идеала , если любой элемент допускает представление вида , где , , и выполнено условие при (представление такого вида называется -представлением). Это определение, во-первых, не является конструктивным, во-вторых, определяет базис Гребнера неоднозначно. Конструктивный метод построения базиса Гребнера дает алгоритм пополнения (см.упражнение 9.38). Для того, чтобы выделить из всех базисов Гребнера некоторый однозначно определенный, введем понятие авторедуцированного множества.

Множество многочленов называется авторедуцированным, если для любого ни один из одночленов, входящих в с ненулевым коэффициентом, не делится ни на один из мономов для . Базис Гребнера, который является авторедуцированным множеством и старшие коэффициенты элементов которого равны 1, определен однозначно для любого идеала . Назовем такой базис авторедуцированным базисом Гребнера.

Предположим, что мы знаем авторедуцированный базис Гребнера идеала . Чтобы получить базис как линейного пространства, нам достаточно указать процедуру, которая каждому моному ставит в соответствие некоторый элемент , старший моном которого делит , т.е. для некоторого монома . Тогда множество многочленов образует базис линейного пространства . Любую такую процедуру назовем алгоритмом нормальной формы.

10.1. ПРИМЕР. Простейший алгоритм нормальной формы состоит в том, что элементы авторедуцированного базиса Гребнера нумеруются в каком-либо порядке индексами от 1 до и каждому моному ставится в соответствие элемент с минимальным индексом, такой, что . Существуют, однако, и более сложные алгоритмы нормальной формы.

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

Этот же базис можно описать несколько по-другому.

Для каждого выделим максимальное подмножество переменных такое, что произведение на любой моном, включающий только эти переменные (обозначим множество таких мономов ), принадлежит . Назовем эти переменные мультипликативными для монома , остальные переменные назовем немультипликативными. Исключим из моном и все его произведения на мономы из . Если полученное множество непусто, то возьмем в нем младший моном и повторим процесс для него. Таким образом мы можем представить базис линейного пространства в виде объединения конечного набора множеств, каждое из которых описывается некоторым многочленом и набором мультипликативных переменных для этого многочлена. Полученный базис представляет собой пример инволютивного базиса. В коммутативную алгебру понятие инволютивного базиса было введено Жарковым и Блинковым [8], [30].

Итак, для построения инволютивного базиса мы воспользовались базисом Гребнера, алгоритмом нормальной формы и процедурой разделения переменных на мультипликативные и немультипликативные для некоторого набора мономов.

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

Пусть дано множество многочленов и отношение порядка на множестве мономов . Для проверки того, что является базисом Гребнера идеала относительно порядка <, используется некоторый алгоритм нормальной формы, от выбора которого результат не зависит. Алгоритм состоит в том, что формируется множество -полиномов и проверяется, что каждый из этих полиномов редуцируется к нулю. Для повышения эффективности алгоритма используются различные критерии, позволяющие сузить круг рассматриваемых -полиномов, например, "правило треугольника".

Как сказано выше, множество многочленов и алгоритм нормальной формы позволяют сформировать множества , каждое из которых получается путем умножения многочлена на некоторое множество мономов. -полиномы соответствуют многочленам и мономам , таким, что является минимальным (относительно деления мономов) мономом, для которого . В действительности, проверять редуцируемость к нулю нужно только для таких многочленов (заметим, что при этом рассматриваются не все -полиномы, автоматически используется "правило треугольника"). Естественно потребовать, чтобы множество было авторедуцированным.

Алгоритм пополнения основан на описанном выше методе -полиномов и отличается от приведенного выше алгоритма тем, что в случае нередуцируемости -полинома его нормальная форма добавляется к множеству . При этом, как правило, меняется алгоритм нормальной формы, т.е. множества , описанные выше.

Как правило, для повышения эффективности алгоритмов построения базисов Гребнера совершенствуются методы перебора -полиномов, но мало внимания уделяется рассмотрению возможных алгоритмов нормальной формы.

До настоящего момента мы никак не ограничивали выбор алгоритма нормальной формы, т.е. формирование множеств для заданной системы многочленов . Теперь предположим, что на множестве мономов задано некоторое отношение "делимости" , удовлетворяющее следующим аксиомам (аксиомы глобального инволютивного деления, см., например, [22]:

  1. (в смысле обычного деления);
  2. ;
  3. ;
  4. ;
  5. (транзитивность).

В случае, если имеет место отношение , мы будем говорить, что инволютивно делит .

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

Изобразим мономы вида на плоскости точками с координатами . Тогда

Обобщение на случай нескольких переменных очевидно.

10.2. УПРАЖНЕНИЕ. Показать, что глобальное инволютивное деление определяет для каждого монома множество его мультипликативных переменных как множество таких переменных, что инволютивно делит любое произведение на моном, включающий только мультипликативные переменные. Остальные переменные назовем немультипликативными для монома (обозначение ).

Примеры глобальных инволютивных делений:

  1. - правое деление Поммаре.
  2. - левое деление Поммаре.
  3. .

Для двух переменных правое и левое деление Поммаре можно проиллюстрировать следующим образом:

Для третьего примера геометрическая интерпретация выглядит следующим образом:

10.4. УПРАЖНЕНИЕ. В кольце многочленов найти мультипликативные и немультипликативные переменные для мономов , , для каждого из глобальных инволютивных делений, рассмотренных в примерах 10.3.

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

10.5. ОПРЕДЕЛЕНИЕ. Согласно [21], на моноиде задано инволютивное деление , если для каждого конечного подмножества и для каждого монома определен подмоноид моноида , удовлетворяющий следующим условиям:

  1. Если и , то ;
  2. Если и , то или ;
  3. Если и , то ;
  4. Если , то .

Образующие моноида называются мультипликативными переменными для . Если , то пишут , и моном называется ( )- инволютивным делителем монома а моном называется ( )- инволютивным кратным монома . В этом случае равенство мы будем записывать в виде , в противном случае - в виде , и моном будем называть немультипликативным для .

10.6. УПРАЖНЕНИЕ. Показать, что глобальное инволютивное деление является инволютивным делением в смысле определения 10.5.

10.7. ОПРЕДЕЛЕНИЕ. Мы говорим, что многочлен инволютивно редуцируется к многочлену с помощью многочлена по моному m и пишем, опуская упоминание о мономе , , если редуцируется к в обычном смысле, и . Естественным образом определяется отношение для произвольного множества многочленов и его транзитивное и рефлексивно-транзитивное замыкания.

Если задано отношение редукции, то определена нормальная форма, которая в данном случае называется инволютивной.

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

10.8. ПРИМЕР. Пусть - конечное подмножество. Для каждого разделим множество на группы, помеченные неотрицательными целыми числами :

Переменная мультипликативна для , если и , или , и . (Здесь обозначает степень по переменной .)

10.9. ОПРЕДЕЛЕНИЕ. Пусть - кольцо многочленов от переменных , - идеал кольца , - конечное множество и - инволютивное деление на множестве мономов . Множество называется инволютивным базисом идеала , если для любого ненулевого элемента имеется инволютивное представление

(10.1)

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

  1. является инволютивным базисом идеала ;
  2. инволютивно порождает ;
  3. для любого имеет место ;
  4. если и инволютивно нередуцируемы, то ;
  5. если и инволютивно нередуцируем, то . Следующие условия являются необходимыми для выполнения предыдущих, и если множество порождает , то они являются и достаточными:
  6. Если и , то допускает инволютивное представление;
  7. для любых и .

Доказательство оставляется читателю в качестве упражнения.

Инволютивный базис может быть легко построен, если мы знаем авторедуцированный базис Гребнера соответствующего идеала и инволютивное деление. Это построение сводится к домножению элементов базиса Гребнера на немультипликативные переменные.

Имея инволютивный базис и инволютивное деление, можно построить алгоритм нормальной формы следующим образом: для каждого многочлена образуем множество его инволютивных кратных ; множество является базисом линейного пространства , причем любой моном может присутствовать не более, чем в одном элементе этого базиса. Для любого многочлена мы можем исключать те его слагаемые, которые присутствуют в качестве старших мономов в множестве инволютивных кратных. Легко показать, что нередуцируемый многочлен, получающийся после таких исключений, не зависит от порядка этих исключений. Однако, чтобы избежать повторных исключений одного и того же монома (сразными коэффициентами), естественно проводить эти действия в порядке убывания мономов. Таким образом мы получаем алгоритм нормальной формы.

Естественно, не всякий алгоритм нормальной формы может быть получен таким образом. Возникает задача описания тех алгоритмов нормальной формы, которые определяются с помощью инволютивных базисов.

10.11. ПРЕДЛОЖЕНИЕ. Если множество старших мономов многочленов из идеала разбивается на непересекающиеся конусы так, что элементы одного конуса редуцируются по одному многочлену из базиса, то соответствующее инволютивное деление выглядит следующим образом: для вершины конуса мультипликативными являются переменные, соответствующие образующим, а внутри конуса деление задается произвольным образом.

ДОКАЗАТЕЛЬСТВО. Формально указанное инволютивное деление задается так: пусть - произвольное инволютивное деление, соответствующее конусу с вершиной в мономе . Положим

Если же , то положим . Положим . Аксиомы инволютивного деления выполнены:

  1. ;
  2. - по определению ;
  3. , но тогда , значит, . Отсюда ;
  4. .

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

Лекция 5. Целозначные многочлены и размерностные многочлены матриц и подмножеств в Nm

В данной лекции рассматривается определение целозначных многочленов, их основные свойства, а также размерностные многочлены матрицы. Приведены практические примеры и алгоритмы, а также предоставлены задачи для самостоятельного рассмотрения

Определение целозначных многочленов и их основные свойства

11.1. ОПРЕДЕЛЕНИЕ. Многочлен от переменной с рациональными коэффициентами называется целозначным если для всех достаточно больших .

Очевидно, что всякий многочлен с целыми коэффициентами является целозначным. В качестве примера целозначного многочлена, коэффициенты которого не являются целыми числами, рассмотрим многочлен

(11.1)
который для любого целого задает число сочетаний из по .

Иногда мы будем рассматривать выражение для неположительных значений , полагая

(11.2)
Мы также полагаем
Непосредственными вычислениями проверяется, что
(11.3)

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

11.2. ПРЕДЛОЖЕНИЕ. Следующие соотношения выполняются для всех :

(11.4)
(11.5)
(11.6)
(11.7)
(11.8)

ДОКАЗАТЕЛЬСТВО. Справедливость равенств (11.4) и (11.5) может быть легко выведена из (11.3) индукцией по .

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

Сравнивая коэффициенты при в тождестве , мы получим (11.6). Для того, чтобы получить (11.7), сначала докажем, что

(11.9)
для всех (как обычно, мы полагаем для ). Действительно, используя непосредственно проверяемое тождество
получаем
Теперь для завершения доказательства (11.7) достаточно воспользоваться (11.6) и (11.9):
Теперь мы можем применить (11.6) и очевидное тождество
чтобы получить (11.8):
Доказательство предложения закончено.

Заметим, что если - целозначный многочлен, то его первая разность и следующие разности , , \etc также являются целозначными многочленами. В частности, из (11.3) следует, что

(11.10)

11.3. ПРЕДЛОЖЕНИЕ. Пусть - целозначный многочлен степени . Тогда можно представить в виде

(11.11)
где - целые числа, однозначно определенные многочленом .

ДОКАЗАТЕЛЬСТВО. Разделив многочлен на в кольце , мы получим , где и . Разделив на ), мы получим , где . Продолжая этот процесс, мы придем к выражению

(11.12)
где рациональные числа однозначно определены многочленом . Нам нужно показать, что . Будем это делать индукцией по .

Если , то из целозначности многочлена следует, что . Предположим, что и существование и однозначность представления (11.11) (с целыми коэффициентами ) доказана для всех целозначных многочленов степени меньшей . Рассматривая конечные разности обеих частей (11.12) и используя (11.10), мы получаем

Многочлен является целозначным, следовательно, . Применяя предположение индукции к многочлену (степень которого не превосходит ), мы получим, что .

Из предложения 11.3, в частности, следует, что старший коэффициент любого целозначного многочлена степени равен , следовательно, можно представить в виде

(11.13)
(Как обычно, обозначает многочлен с рациональными коэффициентами, степень которого не превосходит .)

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

11.4. СЛЕДСТВИЕ. Пусть - целозначный многочлен. Тогда для всех (не только достаточно больших).

11.5. ПРЕДЛОЖЕНИЕ. Пусть - целозначный многочлен степени и . Тогда существует целозначный многочлен со следующими свойствами:

  1. для всех , ;
  2. ;
  3. старший коэффициент многочлена равен

ДОКАЗАТЕЛЬСТВО. По предложению 11.3 можно представить в виде , где , и легко видеть, что !. Следовательно,

для всех , . Воспользовавшись соотношением (11.4), можно заменить внутреннюю сумму в правой части последнего уравнения на , следовательно,
где . Таким образом, целозначный многочлен удовлетворяет всем условиям (1)-(3) (степень этого многочлена равна , и коэффициент при равен коэффициенту при в многочлене , т.е. числу ). Предложение доказано.

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

Для любых целых чисел и , , пусть обозначает число решений уравнения

(11.14)
в положительных целых числах . Пусть обозначает число решений уравнения (11.14) в неотрицательных целых числах , и - число решений в целых числах уравнения
(11.15)

11.6. ПРЕДЛОЖЕНИЕ. В обозначениях, введенных выше,

(11.16)
(11.17)
(11.18)

ДОКАЗАТЕЛЬСТВО. Прежде всего докажем равенство (11.17). Для этого поставим в соответствие каждому решению уравнения (11.14) упорядоченное множество из нулей и единиц, построенное следующим образом: берем нулей, затем одну единицу, затем нулей и одну 1 и т. д. После последней единицы берем нулей. Легко видеть, что построенное соответствие взаимно однозначно и равно числу описанных выше множеств. С другой стороны, это число равно числу всех -элементных подмножеств множества : подмножество соответствует упорядоченному множеству нулей и единиц, в котором единицы находятся на местах . Следовательно, .

Любое решение уравнения (11.14) в положительных целых числах соответствует решению уравнения , где . Обратно, каждое решение последнего уравнения соответствует решению в положительных целых числах уравнения (11.14). Следовательно,

(Заметим, что (11.16) выполняется также при , так как для .)

Для доказательства равенства (11.18) заметим, что число -наборов , у которых и все координаты кроме нулевые, равно . Значит, число элементов , у которых и все координаты кроме нулевые, равно . Таким образом, существует элементов , таких что и ровно координат вектора отличны от нуля . Следовательно, . Предложение доказано.

11.7. ПРЕДЛОЖЕНИЕ. Пусть , , . Обозначим через , число решений уравнения (11.14), таких, что , и пусть , . Тогда

(11.19)

ДОКАЗАТЕЛЬСТВО. Из определения следует, что это число равно коэффициенту при в многочлене .Действительно, каждое решение при уравнения (11.14) находится во взаимно однозначном соответствии с мономом (с коэффициентом 1), полученным разложением многочлена , если в -х скобках мы возьмем множитель . Следовательно, число таких мономов равно .

Поскольку , имеем . Кроме того, так как в кольце формальных степенных рядов (это равенство является непосредственным следствием очевидного соотношения ), то ,где (в соответствии с вышесказанным) коэффициент равен числу решений уравнения . Следовательно, (см. предложение 11.6), , так что . Это соотношение показывает, что коэффициент при в многочлене

равен

Обозначим через и соответственно число решений неравенства

(11.20)
и число решений неравенства
(11.21)
.

11.8. ПРЕДЛОЖЕНИЕ. Во введенных выше обозначениях

(11.22)
(11.23)

ДОКАЗАТЕЛЬСТВО. Поскольку

получаем (применяя (11.5) при , ), что .

Чтобы доказать (11.23), воспользуемся формулой (11.18):

Так как при , имеем
(см. 11.5). Таким образом, , и остальные равенства в (11.23) немедленно следуют из (11.17) и (11.18). Предложение доказано.

Размерностные многочлены подмножеств в Nm. Размерностный многочлен матрицы

Пусть - упорядоченные множества. Их прямое произведение можно упорядочить различными способами. В основном мы будем рассматривать два отношения порядка на множестве : порядок произведения , в котором неравенство выполняется тогда и только тогда, когда для всех , и лексикографический порядок , который определяется следующими условиями: в , если существует индекс , такой, что , но , . Легко видеть, что если каждое множество вполне упорядочено относительно порядка , то множество является вполне упорядоченным относительно лексикографического порядка (в общем случае, не является даже линейно упорядоченным относительно порядка произведения).

Мы будем рассматривать порядок произведения и лексикографический порядок на множестве всех -мерных векторов с неотрицательными целыми координатами, а также на множествах вида , где для любого , . Множества и всегда рассматриваются с естественным порядком, относительно которого они, очевидно, вполне упорядочены. Этот естественный порядок мы будем обозначать тем же символом , который используется для обозначения порядка произведения, если это не ведет к неоднозначности толкования.

12.1. ЛЕММА.

  1. Любое бесконечное подмножество множества с одержит бесконечную последовательность, строго возрастающую относительно порядка произведения, проекции всех элементов которой на равны между собой.
  2. Существует упорядочение множества , относительно которого это множество является вполне упорядоченным, удовлетворяющее следующим двум условиям:
    1. для всех
    2. если , то
      для всех , .
    3. Множество является вполне упорядоченным относительно любого линейного порядка, удовлетворяющего условию 2a.

ДОКАЗАТЕЛЬСТВО. Легко видеть, что если - бесконечное подмножество множества , то существует бесконечное подмножество , проекции всех элементов которого на равны между собой. Значит, для доказательства первого утверждения леммы достаточно показать, что любое бесконечное подмножество в содержит бесконечную последовательность, строго возрастающую относительно порядка произведения. Пусть - бесконечное подмножество множества . Если множество первых координат элементов множества бесконечно, то существует бесконечное подмножество , первые координаты любых двух различных элементов которого различны. Значит, существует бесконечная последовательность , такая, что первые координаты элементов из образуют строго возрастающую последовательность в . Если же множество первых координат элементов из конечно, то существует бесконечное подмножество , все элементы которого имеют одну и ту же первую координату. В обоих случаях существует бесконечная подпоследовательность , состоящая из различных элементов множества , первые координаты которых образуют неубывающую последовательность в . Аналогично, из можно выбрать бесконечную подпоследовательность , вторые координаты элементов которой образуют неубывающую последовательность в и т.д. В результате мы получим бесконечную последовательность элементов из , которая строго возрастает относительно порядка произведения. Таким образом, первое утверждение леммы доказано.

Рассмотрим порядок на множестве , такой, что

тогда и только тогда, когда
(" " обозначает лексикографический порядок на ) для любых элементов , . Множество вполне упорядочено относительно этого порядка (поскольку множество вполне упорядочено относительно лексикографического порядка), и условия 2a и 2b, очевидно, выполнены.

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

Пусть и - подмножество множества . Для любого обозначим множество элементов из , для которых выполнено неравенство .

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

В дальнейшем обозначает функцию , такую, что для любого .

12.2. ЛЕММА. Пусть и - результат параллельного сдвига множества на вектор , т.е. . Предположим также, что . Тогда для любого имеем , где .

ДОКАЗАТЕЛЬСТВО. Очевидно, параллельный сдвиг на вектор , отображающий точку на точку , является биективным отображением множеств . Следовательно,

12.3. ЛЕММА. Пусть и не превосходит ни одной точки из относительно порядка произведения на . Тогда существует подмножество , такое, что для всех .

ДОКАЗАТЕЛЬСТВО. Для любой точки положим , где , . Пусть . Тогда является требуемым множеством. Действительно, тогда и только тогда, когда и больше или равен некоторой , что эквивалентно неравенству , .

Для любого данного подмножества и для любого элемента пусть и для любого . Ясно, что , где - множество элементов , таких, что . Применяя лемму 12.2 к и , видим, что . Далее, обозначая результат параллельного сдвига на вектор и применяя лемму 12.2, получаем, что совпадает с . Таким образом, , где множество задается следующим условием: тогда и только тогда, когда существует элемент , такой, что , . Таким образом, мы доказали следующую формулу:

(12.1)
для всех .

Отметим, что в формуле (12.1) множество , а следовательно, и , может быть пустым.

12.4. ЛЕММА. Пусть , и . Предположим, что содержит элемент, -я координата которого равна 1, а все остальные равны 0. Пусть обозначает множество всех элементов , таких, что . Тогда для всех .

ДОКАЗАТЕЛЬСТВО. Отображение , такое, что

является взаимно однозначным отображением множества на множество всех элементов с нулевой -ой координатой, т.e на множество .

12.5. ТЕОРЕМА. Для любого множества справедливы следующие утверждения:

  1. существует целозначный многочлен , такой, что для всех достаточно больших ;
  2. , причем тогда и только тогда, когда в этом случае ;
  3. тогда и только тогда, когда .

ДОКАЗАТЕЛЬСТВО. (1) Очевидно, что если - множество всех минимальных элементов множества , то , так что мы можем (и будем) предполагать, что конечно и его элементы попарно несравнимы. Пусть , где и пусть . Доказательство будем вести индукцией по . Если , то либо , либо состоит из единственного элемента . В первом случае и из (11.22) следует, что . Во втором случае (когда ), , следовательно, для любого , так что можно положить . Таким образом, утверждение (1) доказано при .

Более того, если , то содержит только одну точку , так что является требуемым многочленом.

Пусть и . Тогда существует отличный от элемент . Пусть , для некоторого , и - элемент множества , -я координата которого равна 1 и все остальные равны 0. Применяя соотношение (12.1) к и , получаем

для некоторого такого, что .

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

удовлетворяет условиям первого утверждения леммы.

(2) Как мы уже видели, если , то , . Значит, чтобы доказать второе утверждение теоремы, достаточно доказать, что , если . Формула (12.1), примененная в случае пустого множества и произвольного вектора , показывает, что

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

(3) Как мы уже видели, , если . С другой стороны, если , то для всех достаточно больших , следовательно, .

12.6. ОПРЕДЕЛЕНИЕ. Многочлен , существование которого доказано в теореме 12.5, называется "многочленом Гильберта" подмножества .

12.7. ЗАМЕЧАНИЕ. Из рассуждений, приведенных в начале доказательства теоремы 12.5, следует, что размерностный многочлен множества равен размерностному многочлену конечного множества , состоящего из всех минимальных элементов множества . Поэтому, чтобы уметь находить размерностные многочлены подмножеств множества , достаточно найти метод, вычисляющий размерностные многочлены конечных подмножеств , элементы которых попарно несравнимы.

Поэтому в дальнейшем мы всегда будем иметь дело с конечными множествами и записывать элементы этих множеств в виде матрицы размера со строками . Эту матрицу будем обозначать той же буквой . Под размерностным многочленом -матрицы мы будем понимать размерностный многочлен множества строк матрицы (рассматриваемого как подмножество множества ). В следующей теореме мы формулируем уже доказанные свойства размерностных многочленов подмножеств множества в форме свойств размерностных многочленов матриц. Все элементы рассматриваемых матриц и векторов принадлежат .

12.8. ТЕОРЕМА. Предположим, что - -матрица и - вектор. Тогда

  1. имеет место равенство
    (12.3)
    где - матрица, полученная присоединением строки к матрице , - -матрица с элементами , , , и ;
  2. если , то
    где , и - это -матрица, такая, что ;
  3. размерностный многочлен матрицы не меняется при перестановке строк;
  4. размерностный многочлен матрицы не меняется при перестановке столбцов матрицы ;
  5. если при , то , где матрица получена из удалением -й строки (такую строку мы называем лишней );
  6. тогда и только тогда, когда содержит нулевую строку (в этом случае полагаем );
  7. если непусто, т. е. содержит хотя бы одну строку, то ; размерностный многочлен "пустой" матрицы равен ;
  8. если содержит строку , то , где - матрица, полученная из удалением сначала строк, первая координата которых больше 0, а затем первого столбца (состоящего из нулей). В частности, если содержит строку и в первом столбце имеется нулевой элемент, то ;
  9. если и , где , то
    где - -матрица, полученная вычитанием вектора из каждой строки матрицы (в частности, каждый столбец матрицы H содержит 0 ).

Фиксируем -матрицу со строками . Для вычисления можно применить соотношение (12.3), выбирая строки матрицы случайным образом; эта процедура приводит к комбинаторной формуле (12.4), дающей явное выражение для .

Для более точной формулировки введем некоторые обозначения. Пусть элементы множества . Тогда элемент , где называется наименьшим общим кратным элементов и обозначается . Для любых , таких, что , , обозначим через множество всех -элементных подмножеств множества , и для любого положим . Далее, обозначим наименьшее общее кратное элементов множества (как и прежде, элементы множества сравниваются относительно порядка произведения " ", если противное не оговорено явно). Если , то ; если , то, очевидно, , где . Пусть .

12.9. ПРЕДЛОЖЕНИЕ. В обозначениях, введенных выше, следующее соотношение имеет место

(12.4)

ДОКАЗАТЕЛЬСТВО. Воспользуемся индукцией по . Случай следует из теоремы 12.8.

Если , то по формуле (12.3) имеем

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

Предложение 12.9, в частности, означает, что многочлен Гильберта множества представляется в виде

(12.5)

Лекция 6. Алгоритмы вычисления размерностных многочленов

В данной лекции рассматриваются алгоритмы вычисления размерностных многочленов. Приведены практические примеры и алгоритмы, а также предоставлены задачи для самостоятельного рассмотрения

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

Пусть обозначает -матрицу над , т. е. матрицу с строками и столбцами, элементы которой - неотрицательные целые числа. Рассматривая строки матрицы как элементы множества и обозначая -ю строку через , мы получим подмножество , ассоциированное с . Напомним, что размерностный многочлен -матрицы в точности совпадает с размерностным многочленом множества и называется многочленом Гильберта матрицы .

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

Как было отмечено, для того, чтобы уметь вычислять размерностный многочлен любого подмножества в , достаточно уметь вычислять его для любой -матрицы над . Один из методов вычисления основан на формуле (12,4).

Пусть обозначает -матрицу над . Воспользуемся следующими обозначениями, введенными в параграфе 12:

для любого подмножества и . По предложению 12.9 (см. 12.4) мы можем записать
где обозначает множество всех -элементных подмножеств множества .

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

А9. АЛГОРИТМ .

Легко видеть, что асимптотическая сложность алгоритма A9 имеет порядок , где - число строк матрицы (по теореме 12.8 мы можем считать, что строки попарно несравнимы относительно порядка произведения на ).

Мора и Меллер модифицировали алгоритм вычисления многочлена Гильберта [27]. Их алгоритм основан на следующих соображениях. Легко видеть, что в формуле (12.5) может выполняться равенство для двух различных подмножеств и множества , таких, что и являются четным и нечетным числами соответственно (мы пользуемся обозначениями предложения 12.9). Тогда соответствующие слагаемые в формуле (12.5) сократятся. Более того, можно сгруппировать все слагаемые, соответствующие одному и тому же элементу .

Пусть - множество всех элементов , которые равны, по крайней мере, одному из элементов , где . Тогда из формулы (12.4) следует, что

(13.1)
где обозначает сумму всех координат вектора , и
(13.2)

Очевидно, если матрица получена присоединением строки к матрице , и - множество коэффициентов (13.2) в соотношении (13.1) для многочлена , так что

для каждого , то
(13.3)

Таким образом, вычисление многочлена , т. е. вычисление коэффициентов , в (13.1) может быть основано на формуле (13.3), если мы начнем с пустой матрицы (число строк которой равно нулю и многочлен Гильберта которой равен ) и последовательно будем присоединять строки матрицы , вычисляя множество и коэффициенты на каждом шаге (см. алгоритм A10 ).

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

Следующие алгоритмы вычисления размерностного многочлена произвольной -матрицы сводят эту задачу к аналогичной задаче для матрицы с числом строк меньшим, чем в . По одному из этих алгоритмов (см. ниже алгоритм A11 ) можно вычислить коэффициенты в (13.1) размерностного многочлена , что дает выражение для размерностного многочлена. Для обоснования этого алгоритма нам нужны некоторые свойства коэффициентов , которые сформулированы ниже в леммах 13.1-13.5, 13.7 и 13,9. Последняя из этих лемм устанавливает соотношения, на которых основан алгоритм вычисления .

Чтобы подчеркнуть зависимость коэффициентов от матрицы , будем обозначать эти коэффициенты и продолжим это обозначение на случай произвольного вектора , полагая

(Напомним, что - множество всех элементов , таких, что каждый равен либо , либо наименьшему общему кратному некоторых строк матрицы ; элементы множества будем называть допустимыми элементами или допустимыми векторами матрицы .)

13.1. ЛЕММА. Пусть дана -матрица

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

ДОКАЗАТЕЛЬСТВО. Пусть , и ( и обозначают -е строки матриц и соответственно). Покажем, что равенство эквивалентно равенству . Действительно, если , то , так что для каждого существует индекс , такой, что . Таким образом, -й элемент строки равен 1, следовательно, . Обратно, если , то для каждого существует число , такое, что , т. е. . Поэтому, , следовательно, (так как элемент больше любой строки матрицы или равен ей). Таким образом,

Рассмотрим свойства размерностных многочленов матриц, состоящих из 0 и 1 (такова, например, матрица в лемме 13.1). Длякраткости будем писать вместо , где - -матрица и .

13.2. ЛЕММА. Пусть - -матрица, состоящая из 0 и 1, и - ее многочлен Гильберта. Тогда .

ДОКАЗАТЕЛЬСТВО. По (12.4) имеем

(13.4)
и, очевидно, каждая координата любого вектора
равна либо 0, либо 1. Если , то . В этом случае многочлен обращается в нуль при , следовательно,

Из леммы 13.2 следует, что

(13.5)
где - многочлен Гильберта матрицы . Если
то , так что равно свободному члену многочлена Гильберта .

13.3. ЛЕММА. Пусть - -матрица, состоящая из 0 и 1. Тогда

  1. если содержит нулевую строку, то ;
  2. если содержит нулевой столбец, то ;
  3. значение инвариантно относительно перестановки строк (или столбцов) матрицы ;
  4. если состоит из одной строки , то ;
  5. если первая строка матрицы равна и первые элементы остальных строк равны 0, то , где матрица получена из удалением первой строки и первого столбца.

ДОКАЗАТЕЛЬСТВО. Все утверждения леммы следуют из (13.5) и из доказанных выше свойств размерностного многочлена матрицы .

(1) Если содержит нулевую строку, то (см. теорему 12.8(6). Применяя лемму 13.2, получаем .

(2) Если каждый элемент -го столбца матрицы равен нулю , то из формулы (13.2) следует, что (действительно, в обозначениях формулы (13.2) -ая координата любого вектора равна нулю, так что ни для какого подмножества ).

(3) Очевидно, что перестановка строк (или столбцов) матрицы не меняет значения , а, значит, и значения (см. утверждения (3) и (4) теоремы 12.8).

(4) Пусть состоит из одной строки . Поскольку

для всех достаточно больших , имеем
Значит, .

(5) По теореме 12.8(8) имеем , следовательно, .

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

13.4. ЛЕММА. Пусть является -матрицей ; , , состоящей из нулей и единиц. Если первый столбец матрицы состоит только из нулей, а матрица получена из удалением этого нулевого столбца, то .

ДОКАЗАТЕЛЬСТВО. Применяя формулу (12.2) к матрице и вектору , получим , где - матрица с элементами ( суть координаты вектора ). Очевидно, и (см. теорему 12.8(8)), так что и, в частности, . Поскольку содержит нулевой столбец, из леммы 13.3(2) следует, что , значит, .

13.5. ЛЕММА. Пусть ; , является -матрицей состоящей из нулей и единиц. Предположим, что для и для . Тогда , где матрица получена из удалением первого столбца, а получена из удалением первых строк.

ДОКАЗАТЕЛЬСТВО. Применяя (12.2) к и , получаем , где - -матрица с элементами

По теореме 12.8(8) , следовательно, . Далее, пользуясь леммой 13.4, можно написать , значит, . Теперь, по лемме 13.2 имеем

13.6. СЛЕДСТВИЕ. Пусть

- -матрица, состоящая из 0 и 1. Предположим, что существуют , такие, что для всех . Тогда , где получена из удалением -го столбца.

ДОКАЗАТЕЛЬСТВО. Поскольку размерностный многочлен матрицы инвариантен относительно перестановок строк (или столбцов) матрицы , значение также обладает этим свойством. Поэтому, без потери общности, можно считать, что и существует , такое, что для , и для . По лемме 13.5, , где получена из удалением первого столбца и первых строк (поскольку для , каждый элемент -го столбца матрицы равен нулю). Следовательно, (см. лемму 13.3(2)), так что .

13.7. ЛЕММА. Пусть

- -матрица, состоящая из 0 и 1. Предположим, чт о содержит строку , такую, что для и для . Тогда , где матрица получена удалением строки из матрицы , а - матрица получена из матрицы удалением первых столбцов.

ДОКАЗАТЕЛЬСТВО. Применяя формулу (12.3) к матрице и строке , получаем , где матрица получена из присоединением слева нулевых столбцов. Теперь из (12.2) видно, что , следовательно,

Поскольку содержит нулевой столбец, из пункта 2 леммы 13.3 следует, что , значит,

(см. лемму 13.2) и
Поскольку каждый из первых столбцов матрицы мажорирует -й столбец этой матрицы, из следствия 13.6 вытекает, что , где - матрица, полученная присоединением слева нулевого столбца к . Применяя теперь п.5 леммы 13.3, получаем , откуда следует требуемое соотношение .

Пусть

- -матрица. По теореме 12.8 п.5, удаление "лишних" строк матрицы не меняет размерностный многочлен этой матрицы, значит, не меняет и значение . Кроме того, если любой элемент матрицы равен либо 0, либо 1, то из следствия 13.6 вытекает, что удаление "лишних" столбцов матрицы не меняет значения ( -й столбец матрицы называется "лишним", если существует число , такое, что и для всех ).

Таким образом, в ходе вычисления (где - -матрица, состоящая из 0 и 1) мы можем прежде всего отбросить "лишние" строки и столбцы (по п.5 леммы 13.3, эти вычисления сопровождаются соответствующими изменениями знака ), а затем отбросить строки и столбцы, удовлетворяющие соотношениям леммы 13.5. Затем мы можем выбрать одну из следующих альтернатив: воспользоваться леммой 13.5 для вычисления (где - матрица, полученная из с помощью описанного выше процесса сокращения) или вычислить , воспользовавшись леммой 13.7, т. е. "раскладывая" по строкам и столбцам соответственно. Очевидно, что если число строк матрицы больше числа ее столбцов, то предпочтительнее "движение по столбцам" с помощью леммы 13.5, в противном случае для вычисления целесообразно воспользоваться леммой 13.7.

13.8. ПРИМЕР. Найдем значение для матрицы

Применяя лемму 13.5, получаем , где
Легко видеть, что три первых строки матрицы являются "лишними", поэтому
(см. п.5 леммы 13.3). Применяя еще раз лемму 13.5, получаем (в силу утверждений леммы 13.3, что Следовательно, .

Другой метод вычисления основан на лемме 13.7:

В качестве следствия леммы 13.7 получаем следующее утверждение, на котором основан алгоритм вычисления размерностного многочлена матрицы (см. ниже алгоритм A11 ).

13.9. ЛЕММА. Пусть - -матрица над и (как и выше, обозначает множество всех допустимых векторов матрицы , т. е. множество всех элементов , равных либо , либо наименьшему общему кратному некоторых строк матрицы ). Пусть - матрица, состоящая из всех тех строк матрицы , которые мажорируются вектором (для определенности предположим, что строки матрицы располагаются в том же порядке, в каком они расположены в матрице ). Кроме того, пусть - одна из строк матрицы и - матрица, полученная удалением строки из . Тогда для любого подмножества множества , такого, что , имеем

(13.6)
где , суть соответственно коэффициенты , определенные формулой (13.2) для матриц и , а - аналогичные коэффициенты для вектора (вместо ) и для -матрицы, полученной из удалением столбцов с индексами .

ДОКАЗАТЕЛЬСТВО. Без потери общности можно предположить, что - первая строка матрицы . Из леммы 13.1 следует, что

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

Вычисление коэффициентов в (13.4) для размерностного многочлена произвольной -матрицы (а, значит, и вычисление самого размерностного многочлена) может быть выполнено по следующей схеме: сначала применяем (13.6) к матрице (формируя матрицу тех строк матрицы , которые мажорируются вектором . Ясно, что коэффициенты для матриц и совпадают). Затем вычисляем значения и , снова применяя (13.6) и т. д., пока не получим "пустые" матрицы (т. е. матрицы с нулевым числом строк).

А11. АЛГОРИТМ .

Чтобы оценить асимптотическую сложность алгоритма A11 для достаточно больших , заметим, прежде всего, что при фиксированном векторе построение требует не более сравнений чисел (на этом шаге мы запоминаем все пары , для которых ). Далее, выполнение элементарных операций для всех вызовов алгоритма NEXTINDEX (для фиксированного ) требует не более сравнений, где обозначает число строк матрицы , таких, что для всех . Легко видеть, что общее число операций для всех вызовов алгоритма NEXTINDEX (с точностью до постоянного множителя это число равно ) не превосходит для каждого существует , такое, что , и это не превосходит . Поэтому для достаточно больших асимптотическая сложность алгоритма A11 имеет порядок .

Другой способ вычисления размерностного многочлена для -матрицы состоит в следующем. Для можно вычислять многочлен , пользуясь алгоритмом A9. Пусть . В этом случае применяем к соотношение (12.3), в котором - строка с максимальным значением элемента в первом столбце матрицы . (Тривиальные случаи: если , то ; если , применяем алгоритм (12.3).) Легко видеть, что число нулевых столбцов в матрице (см. (12.3)) больше, чем в матрице , и число строк в каждой из матриц , меньше чем в . Затем применяем описанную процедуру к матрице и т.д., пока не получим матрицу, размерностный многочлен которой можно вычислить по алгоритму A9. В результате этого процесса мы получаем представление требуемого многочлена в виде линейной комбинации многочленов (со сдвинутыми аргументами), таких, что каждая матрица имеет ровно строк и число ее нулевых столбцов на один больше, чем в . Многочлен и некоторые из многочленов вычисляются по алгоритму A9 (в тех случаях, когда этот алгоритм нужно применять в соответствии с вышеприведенными рассуждениями). Для вычисления остальных многочленов снова применяем соотношение (12.3) и продолжаем в том же духе. Заметим, что если первый столбец в матрице нулевой и , то число операций в вычислении по предлагаемой схеме совпадает с числом операций при вычислении размерностного многочлена -матрицы. Кроме того, если - -матрица, то все ее строки кроме той, которая содержит элемент , являются лишними, так что вычисление размерностного многочлена по формуле требует операцию. Таким образом, если обозначает число элементарных операций (сложение, сравнение или умножение) необходимых для вычисления размерностного многочлена матрицы размера , то . Поскольку , имеем

и т. д. Поэтому алгоритм вычисления размерностного многочлена, основанный на приведенной схеме (см. алгоритм A12 ), имеет асимптотическую сложность .

А12. АЛГОРИТМ .

Символ , которым мы пользуемся в алгоритме A12, обозначает следующую операцию на векторах:

где для всех . При этом, если , то обозначает -ю координату элемента .

В заключение этого параграфа рассмотрим алгоритм вычисления размерностного многочлена, асимптотическая сложность которого меньше асимптотической сложности алгоритмов A9, A10, A11 и A12. Кроме того, представим алгоритм вычисления старшего коэффициента размерностного многочлена.

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

(13.7)
и если для всех , то

Отметим, что операторы и , удовлетворяют следующему тождеству:

(13.8)
В частности,
Действительно, пусть
для всех , и для почти всех и пусть . По (11.4) имеем

13.10. ЛЕММА. Пусть - - матрица над , и . Через обозначим матрицу, полученную из удалением -го столбца и всех строк с ненулевым элементом в -м столбце. Далее, пусть - -матрица с элементами

Тогда
(13.9)
где , и - размерностные многочлены матриц , и соответственно.

В частности, если

где , а все остальные элементы первого столбца и первой строки равны нулю, то .

ДОКАЗАТЕЛЬСТВО. Применяя формулу (12.2) к матрице и вектору ( - -я координата этого вектора), получаем

Теперь применим (12.2) к матрице и вектору (где 1 стоит на -м месте). По теореме 12.8(8) получим
Повторяя эту операцию раз, получим равенство
откуда следует (13.9) (см. (13.8)).

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

13.11. ПРИМЕР. Вычислим многочлен Гильберта матрицы

Сначала находим . Применяя (13.9), получаем

где и . Ясно, что (см. теорему 12.8(6)) и , следовательно, (см. 13.8)

Заметим, что вычисление многочлена Гильберта по одному из алгоритмов A9, A10, A11 или A12 приводит к представлению этого многочлена в виде . Однако, применяя лемму 13.10, мы получаем многочлен в виде суммы многочленов вида , , . Максимальная степень этих многочленов меньше степени многочленов, фигурирующих в подобном представлении для , когда вычисляется по одному из алгоритмов A9, A10, A11 или A12.

Следующая лемма дает возможность оценивать степень многочлена Гильберта и вычислять его старший коэффициент, не вычисляя многочлен Гильберта полностью.

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

Доказательство леммы проводится индукцией по сумме элементов матрицы и оставляется читателю в качестве упражнения.

Матрицу над назовем нормализованной, если каждый столбец матрицы содержит нуль. Ниже будет показано, что если - нормализованная -матрица, то алгоритм вычисления размерностного многочлена , основанный на лемме 13.10, требует меньшего числа операций, чем для произвольной -матрицы. В то же время, для сведения задачи вычисления размерностного многочлена произвольной -матрицы над к аналогичной задаче для нормализованной -матрицы можно воспользоваться теоремой 12.8(9).

13.13. ЛЕММА. Пусть - -матрица над и предположим, что .

  1. Если при и при , то , где - матрица получена из удалением первой строки и первого столбца.
  2. Если матрица получена из посредством обнуления первого столбца, то .
  3. Если , то
    (13.10)
    где матрица получена из удалением первого столбца и всех строк, содержащих ненулевые элементы в первом столбце, а , где

ДОКАЗАТЕЛЬСТВО. (1) Если , то в имеется нулевая строка, следовательно, (см. теорему 12.8(6)). Если , то применяя (12.2) к и , получаем

Таким образом, индукция по дает требуемый результат.

(2) Лемма 13.12 утверждает, что содержит строку, в которой ненулевой может быть только первая координата. Значит содержит нулевую строку, следовательно, .

(3) Соотношение (13.10) следует из (12.2), записанного для и .

Пользуясь леммой 13.13, можно предложить следующий метод вычисления многочлена Гильберта матрицы в случае, когда : применить соотношение (13.10) к (где - минимальный ненулевой элемент в первом столбце матрицы ), затем выписать аналогичное представление для и т. д. После конечного числа таких шагов получим представление многочлена в виде суммы многочленов Гильберта матриц , с столбцами и многочлена Гильберта , где элементы матрицы равны

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

В общем случае (без условия ) вычисление размерностного многочлена для -матрицы по описанной схеме (используя (13.9) вместо (13.10)) можно свести к вычислению размерностных многочленов матриц, число столбцов в которых меньше , и размерностных многочленов некоторых -матриц с нулевым первым столбцом. Более точно: если первый столбец матрицы содержит ненулевые элементы, то мы полагаем и применяем (13.19). Затем применяем то же самое соотношение к (см. лемму 13.10) и т. д. В результате получим разложение многочлена в сумму многочленов вида , где и - либо матрица, число столбцов в которой меньше , либо -матрица с нулевым первым столбцом. Для вычисления размерностных многочленов матриц второго типа применяем описанный метод ко второму столбцу и т. д., пока не получим представление многочлена в виде суммы размерностных многочленов матриц, число столбцов в которых меньше , и размерностных многочленов матриц с не более чем двумя ненулевыми столбцами. Размерностный многочлен матрицы последнего типа может быть найден с помощью следующего утверждения.

13.14. ЛЕММА. Пусть

- нормализованная -матрица над . Предположим, что и . Тогда
(13.11)
где .

ДОКАЗАТЕЛЬСТВО. Воспользуемся индукцией по . Случай тривиален. Пусть , и предположим, что утверждение леммы доказано для всех матриц, число строк которых меньше . Для доказательства соотношения (13.11) для -матрицы , у которой , , прежде всего заметим, что если , то

где и
(см. лемму 13.10). Первая строка матрицы является лишней, следовательно, , где
По предположению индукции имеем
следовательно,

13.15. СЛЕДСТВИЕ. Пусть

- -матрица над , такая, что , . Тогда
(13.12)

А13. АЛГОРИТМ .

Приведенный здесь алгоритм A13 вычисления многочлена Гильберта для -матрицы основан на данной выше схеме. В соответствии с ней, воспользуемся (13.8), чтобы представить многочлен в виде суммы многочленов Гильберта матриц, которые содержат менее столбцов, и многочлена Гильберта -матрицы , содержащей не более двух ненулевых столбцов (без потери общности можно считать, что ненулевыми являются два первых столбца матрицы ). Многочлен вычисляется с помощью соотношения (13.10). Сначала переупорядочим строки так, чтобы элементы первого столбца удовлетворяли условию леммы 13.14 (такое переупорядочение требует элементарных операций). Тогда видно, что если второй ненулевой столбец не упорядочен в обратном порядке, то матрица содержит лишние строки (в точности те строки , в которых для некоторого ). Таким образом, получаем следующую оценку числа элементарных операций, которые требуются для вычисления многочлена Гильберта для -матрицы с помощью алгоритма A13:

где ; . Следовательно, алгоритм A13 имеет асимптотическую сложность при (если , то асимптотическая сложность ).

13.16. ПРИМЕР. Вычислим многочлен Гильберта матрицы

при помощи алгоритма A13. В процессе вычислений последовательно применяем (13.8), начиная с последнего столбца матрицы . Прежде всего запишем
где
По теореме 12.8(8) имеем
Применяя (12.2) к и , получаем , где
так что из формулы (13.10) следует, что
Поэтому,
следовательно,

Рассмотрим задачу вычисления старшего коэффициента многочлена Гильберта. Пусть

-матрица над и

(13.13)
ее многочлен Гильберта. Тогда по теореме 12.8(7) имеем
Из теоремы 12.8(9) и леммы13.12 что
Вычисление коэффициента (при ) может основываться на следующем утверждении.

13.17. ЛЕММА. Пусть -матрица над , такая, что и первый столбец матрицы нулевой. Пусть — многочлен Гильберта матрицы и . Далее, пусть -матрица, полученная из удалением первого (нулевого) столбца. Тогда и .

ДОКАЗАТЕЛЬСТВО. Применяя (12.2) к и , получим, что . Значит, если

следовательно, и для всех , . В частности, .

Отметим, что если для -матрицы степень многочлена Гильберта меньше или равна , , то

(13.14)
где , матрица получена из удалением первого столбца и всех строк с нулем в первом столбце, а -матрица с элементами
(Соотношение (13.14) легко может быть установлено применением (12.2) к и .)

Прежде чем вычислять коэффициент многочлена Гильберта (13.13), заметим, что, без потери общности, можно предполагать, что . Действительно, применяя (12.2) к и ,получаем, что

где — матрица с элементами . Пользуясь (11.4), можно переписать последнее представление в виде

Поскольку (см. лемму 13.12), имеем , следовательно, можно вместо вычислять , поэтому в дальнейших рассуждениях предполагаем, что и , где . Кроме того, предполагаем, что содержит не более двух ненулевых столбцов (следует отметить, что если в имеется единственный ненулевой столбец, то многочлен Гильберта совпадает с минимальным элементом этого столбца). Предполагая, что первый столбец матрицы ненулевой, упорядочим его элементы и применим (13.14) при . Поскольку число столбцов в (см. (13.14)) равно , вычисление можно свести к выбору минимальных элементов в столбцах матрицы (см. теорему 12.8(3)). Легко видеть, что такой выбор требует элементарных операций, где — число строк матрицы . Применяя (13.14) к , сводим вычисление (в правой части формулы (13.14)) к вычислению коэффициента многочлена Гильберта некоторой матрицы , содержащей столбец (эта матрица получена добавлением некоторых дополнительных строк к ). Чтобы вычислить , нужно не более элементарных операций (здесь обозначает число строк матрицы ). Продолжаем применять (13.14), пока не получим матрицу с нулевым первым столбцом. По лемме 13.17 такой столбец можно отбросить, затем применяем (13.14) к новой матрице и т. д.

Асимптотическая сложность описанного алгоритма не превосходит

А14. АЛГОРИТМ .

Теперь, пользуясь алгоритмом A14 и формулой (13.14), можно найти старший коэффициент многочлена Гильберта для любой матрицы. Сложность вычисления этого коэффициента для матрицы , такой, что , не превосходит

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

А15. АЛГОРИТМ .

Завершая изложение теории размерностных многочленов, следует упомянуть размерностные многочлены от многих переменных, теория которых была заложена в статье [19] и подробно изложена в монографии [20].

Лекция 7. Алгоритмы Кронекера. Разложение на множители, свободные от квадратов. Факторизация

В данной лекции рассматриваются алгоритмы Кронекера, выделение линейных множителей и факторизация, основанная не переборе неприводимых сомножителей. Приведены практические примеры и алгоритмы, а также предоставлены задачи для самостоятельного рассмотрения

Алгоритмы Кронекера

Алгоритм Кронекера находит для данного многочлена многочлен , такой, что , или доказывает, что такого многочлена нет. Алгоритм Кронекера основан на следующих соображениях:

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

Перепишем алгоритм Кронекера в соответствии со сделанными выше замечаниями.

А16. АЛГОРИТМ (Кронекера).

14.1. ЗАМЕЧАНИЕ. Достаточно научиться разлагать на множители многочлены со старшим коэффициентом, равным 1. Действительно, если старший коэффициент равен , то домножив на и сделав замену , сводим задачу к этому случаю. После ее решения остается сделать обратную замену и сократить на общий множитель . Однако этот метод обычно оказывается неэффективным: из-за увеличения коэффициентов ухудшаются различные оценки и скорость работы алгоритмов. Поэтому в большинстве работающих алгоритмов таких преобразований не производится.

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

Задача разложения на неприводимые множители "за конечное число шагов" многочленов от нескольких переменных с "классической" точки зрения решена также примерно сто лет назад. Соответствующий алгоритм также носит имя Кронекера и для некоторых областей коэффициентов (например, для поля комплексных чисел ) остается единственным известным алгоритмом решения этой задачи. Для многочленов с коэффициентами из кольца целых чисел, или из кольца алгебраических чисел, или из конечного поля и некоторых других получены в последнее время новые, более быстрые алгоритмы. Общая схема этих алгоритмов достаточно близка к соответствующим алгоритмам факторизации одномерных многочленов, хотя некоторые отличия весьма существенны. Изложение современных алгоритмов факторизации многомерных многочленов не входит в число вопросов, освещаемых в данном пособии. Читателю, интересующемуся этой задачей, следует обратиться к специальной литературе.

Ниже излагаем многомерный алгоритм Кронекера для задачи, поставленной следующим образом.

Пусть - область целостности с однозначным разложением на множители, . Требуется разложить на неприводимые множители.

Многомерный алгоритм Кронекера

А17. АЛГОРИТМ (Кронекера_многомерный).

В этом алгоритме обратное преобразование определяется на одночленах по формуле

для , , далее распространяется по линейности.

Разложение на множители, свободные от квадратов

Разложение многочлена на множители начнем с приведения его к некоторому каноническому виду. Прежде всего найдем НОД его коэффициентов, эта величина называется содержанием многочлена и обозначается . Далее разложим многочлен на свободные от квадратов множители , т. е. на такие множители, которые являются произведениями взаимно простых неприводимых многочленов в первой степени. Это можно сделать путем дифференцирования исходного многочлена и нахождения общих делителей многочлена и его производной. Свободный от квадратов многочлен, содержание которого равно 1, назовем примитивным.

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

А18. АЛГОРИТМ (факторизовать_многочлен).

Вычисление содержания многочлена сводится к вычислению наибольшего общего делителя целых чисел. Поскольку мы предполагаем коэффициенты не слишком большими, вполне достаточно ограничиться алгоритмом Евклида нахождения НОД.

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

А19. АЛГОРИТМ (разложить_на_свободные_от_квадратов).

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

В теле цикла выполняется присваивание многочленам и значений

15.1. УПРАЖНЕНИЕ. Построить аналог алгоритма A19 для многочленов с коэффициентами из поля .

Алгоритмы разложения на неприводимые множители примитивного свободного от квадратов многочлена с целыми коэффициентами составляют главное содержание данной лекции.

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

Выделение линейных множителей.

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

Нахождение линейных множителей основано на теореме Безу, которая утверждает, что если рациональное число , где -целое, - натуральное, , является корнем многочлена с целыми коэффициентами, то делит старший коэффициент этого многочлена, а делит его свободный член. Кроме того, между рациональными корнями многочлена и его линейными множителями существует взаимно однозначное соответствие: является корнем многочлена тогда и только тогда, когда делится на (предполагается, что и взаимно простые числа).

А20. АЛГОРИТМ (рациональные_корни).

Организация перебора.

15.2. Организация перебора. Простейший случай:

15.3. Перебор с предварительным разложением старшего коэффициента и свободного члена на простые множители.

Мы предполагаем, что количество простых чисел, на которые делятся или , невелико (не превосходит ). Эти числа располагаются в массиве , соответствующие показатели степеней- в и . Числа и задаются векторами и , которые содержат показатели степеней простых делителей чисел и соответственно.

А 21. АЛГОРИТМ NEXTP.

А 22. АЛГОРИТМ NEXTQ.

Факторизация, основанная на переборе неприводимых сомножителей в K[x]

Общая схема.

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

где - старший коэффициент полинома , а - его корни. Если - делитель полинома в кольце , то в имеет место разложение
где - целое число, делящее , а - подмножество множества индексов . С другой стороны, если полином принадлежит , то полином также принадлежит и делит . Таким образом можно предложить следующий метод факторизации полинома .

А23. АЛГОРИТМ (Факторизовать перебором комплексных корней).

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

К сожалению, описанный подход не является решением задачи факторизации даже с "классической" точки зрения, поскольку в общем случае мы не можем "за конечное число шагов" найти даже один корень полинома. Однако мы можем находить корни полинома с любой наперед заданной точностью. При этом возникает другая проблема. Если корни полинома вычислены приближенно, то мы не можем проверить, принадлежит ли полином кольцу .

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

А24. АЛГОРИТМ (с учетом точности вычислений).

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

Выбор точности определяется следующим условием: если

и
где , то коэффициенты полинома по модулю меньше 1/2. На основе оценок значений корней эта задача не представляет особой сложности.

16.1. УПРАЖНЕНИЕ. Используя границы для корней многочлена, оценить значение .

Для нахождения всех комплексных корней полинома можно воспользоваться комплексным аналогом метода Штурма, позволяющим определить количество корней полинома в заданном прямоугольнике комплексной плоскости [28], а далее - методом дихотомии. Однако гораздо чаще для нахождения комплексных корней полинома используются разновидности метода Ньютона. Эти методы разрабатываются в численном анализе, и мы не будем здесь останавливаться на них.

Для сокращения перебора можно воспользоваться тем, что корни исходного полинома (коэффициенты которого предполагаются целыми числами), не являющиеся действительными, распадаются на пары комплексно-сопряженных, при этом комплексно-сопряженные корни относятся к одному и тому же неприводимому над делителю исходного полинома. Это замечание позволяет переписать алгоритм без использования комплексных чисел.

А25. АЛГОРИТМ (факторизовать с помощью разложения над R ).

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

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

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

Применение ее для решения задач факторизации стало возможным после того, как был получен достаточно эффективный метод разложения полиномов на множители над полем - адических чисел. Этот метод состоит из двух ключевых алгоритмов: первый из них, алгоритм Берлекэмпа, позволяет достаточно быстро разлагать на множители полиномы с коэффициентами из конечного поля, что соответствует нахождению нулевого приближения разложения в описанном выше алгоритме; второй представляет - адический аналог метода Ньютона. Математический результат, на котором он основан, носит название леммы Гензеля. Метод факторизации, базирующийся на алгоритме Берлекэмпа и лемме Гензеля, принят во многих системах компьютерной алгебры.

p-адический случай.

Формально алгоритм факторизации с использованием поля - адической метрики совпадает с алгоритмом, приведенным выше для поля :

А26. АЛГОРИТМ. (Факторизовать многочлен с помощью p-адической метрики)

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

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

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

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

Как определить требуемую точность вычислений?

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

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

Определить требуемую точность вычислений }

принимает вид:

Найти наименьшее натуральное , такое, что .

Перейдем теперь к рассмотрению основного шага алгоритма:

Найти все неприводимые над нормированные делители полинома с точностью }

Детализируем его следующим образом.

Нулевое приближение разложения в поле - адических чисел получается из разложения полинома в поле вычетов по модулю . Это разложение выполняется с помощью алгоритма Берлекэмпа.

Итерационный шаг уточнения разложения заключается в переходе от сравнения по модулю к сравнению по модулю , где . Этот переход выполняется с помощью леммы Гензеля. Наиболее часто используется случай (квадратичный подъем) или (линейный подъем). При этом в одной и той же системе могут применяться оба метода: сначала квадратичный, а после, когда применение квадратичного метода приведет к слишком большим числам, - линейный. Итерационный процесс заканчивается, когда показатель степени будет не меньше значения , определенного выше. В качестве представителей системы вычетов по модулю берется сбалансированная система, т.е. целые числа, не превосходящие по абсолютной величине числа .

Проверка испытуемой комбинации на получение делителя полинома осуществляется пробным делением.

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

С учетом сделанных замечаний алгоритм факторизации принимает вид:

А27. АЛГОРИТМ (разложить на неприводимые ).

Лекция 8. Разложение многочленов на неприводимые множители по модулю p. Лемма Гензеля

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

Разложение многочленов на неприводимые множители по модулю p

Этот раздел посвящен детализации предписания "нулевое приближение разложения". Разделим его на два этапа:

  1. разложить многочлен на неприводимые множители по модулю простого ;
  2. найти добавочные множители .

Результатом первого этапа будет целое и вектор элементов типа многочлен с индексом .

Результатом второго этапа должен явиться вектор элементов типа с индексом , такой, что

при этом на элементы вектора накладываются условия
Вектор понадобится нам в предписании "выполнить шаг итерации".

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

Можно также несколько раз воспользоваться расширенным алгоритмом Евклида.

Как и в случае простых чисел, задача разложения многочлена на простые множители безусловно сложнее, чем нахождение НОД, но если выполнять разложение по модулю некоторого простого числа, то оно осуществляется не так сложно, как можно было бы ожидать. Значительно проще найти простые множители произвольного многочлена степени по модулю 2, чем с помощью любого из известных методов определить сомножители произвольного -разрядного числа в двоичной системе счисления. Этот удивительный факт — следствие алгоритма разложения, открытого в 1967 году Элвином Р. Берлекэмпом.

Основными результатами, на которых основан алгоритм Берлекэмпа, является малая теорема Ферма и китайская теорема об остатках.

17.1. ТЕОРЕМА (Ферма малая). Если - простое число, то для любого выполняется сравнение .

17.2. ЗАМЕЧАНИЕ. Малая теорема Ферма может использоваться в алгоритмах проверки простоты натуральных чисел, а именно, если для некоторого , то - составное число. Существуют однако составные числа , для которых для любого .

17.3. ОПРЕДЕЛЕНИЕ. Составное число , такое, что сравнение выполняется для любого , называется кармайкловым.

17.4. УПРАЖНЕНИЕ. Найти несколько первых кармайкловых чисел.

17.5. ТЕОРЕМА (китайская об остатках для целых чисел). Пусть - попарно взаимно простые целые числа. Для любого набора целых чисел существует целое число , такое, что для любого . Условием число определяется однозначно.

17.6. ТЕОРЕМА (китайская об остатках для многочленов). Пусть - поле и - попарно взаимно простые многочлены из . Для любого набора многочленов из существует многочлен , такой, что для любого . Условием многочлен определяется однозначно.

17.7. СЛЕДСТВИЕ. Пусть - простое число, - попарно взаимно простые многочлены из . Для любого набора целых чисел существует единственный многочлен , такой, что

(17.1)

Доказательства малой теоремы Ферма и китайской теоремы об остатках могут быть найдены в большинстве учебников по алгебре и теории чисел и оставляются читателю в качестве упражнения.

Пусть - простое число. Все рассматриваемые ниже операции с многочленами будут выполняться по модулю .

Предположим, что задан многочлен , коэффициенты которoго выбраны из множества . Считаем, что многочлен нормирован, т.e его старший коэффициент равен 1 и свободен от квадратов, если его рассматривать над полем . Если это условие не выполнено, то можно воспользоваться результатом задачи 15.1.

17.8. ПРЕДЛОЖЕНИЕ. Для любого многочлена

(17.2)

ДОКАЗАТЕЛЬСТВО. Для любых многочленов и по модулю выполняются равенства

поскольку все биномиальные коэффициенты кратны (т.е. в обращаются в нуль). Далее, для всякого целого числа по малой теореме Ферма имеем . Поэтому, если , то
что и доказывает ( 17.2 ).

Идея Берлекэмпа состоит в том, чтобы для нахождения неприводимых сомножителей многочлена воспользоваться теперь китайской теоремой об остатках для многочленов, точнее, следствием 17.7. (Отметим, что сравнение выполняется в кольце многочленов с коэффициентами из конечного поля, т.е. утверждение означает, что разность в кольце принадлежит идеалу, порожденному элементами и .)

Если нам известен многочлен , удовлетворяющий системе сравнений ( 17.1 ), то можно получить разложение на множители, используя тот факт, что если и , то делится на и не делится на .}

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

поэтому
(17.3)

В поле выполняется разложение

доказательство которого восходит еще к Лагранжу (1771 год). Следовательно, любой многочлен удовлетворяет соотношению
(17.4)
в котором все операции выполняются по модулю . Отсюда следует, что если многочлен удовлетворяет соотношению (17.3), то делит левую часть \vad равенства (17.4), а следовательно, любой неприводимый множитель многочлена должен делить один из взаимно простых множителей в правой части равенства (17.4). Значит, все решения сравнения (17.3) должны представляться в виде (17.1) при некотором выборе значений , т.е. у этого сравнения имеется ровно решений. Таким образом, решения сравнения (17.3) дают нам ключ к отысканию разложения многочлена на неприводимые множители. Может показаться, что найти все решения сравнения (17.3) еще труднее, чем разложить на неприводимые множители, однако в действительности это не так, поскольку множество решений сравнений (17.3) замкнуто относительно сложения, следовательно, оно является векторным пространством над полем .

Пусть ; рассмотрим матрицу размера

элементы которой определяются соотношениями
Многочлен является решением сравнения (17.3) тогда и только тогда, когда выполняется векторное равенство

В самом деле, последнее равенство выполняется тогда и только тогда, когда

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

и
Тогда
где . По определению полагаем , так что . Таким образом, алгоритм Берлекэмпа разложения многочлена на неприводимые множители состоит в следующем.

Алгоритм Берлекэмпа

А28. АЛГОРИТМ (нулевое_приближение_разложения).

Заметим, что для сравнительно небольших (когда мы можем хранить таблицу обратных элементов для всех элементов поля ) сложность алгоритма Берлекэмпа оценивается величиной .

Детализацию этого алгоритма начнем с рассмотрения предписания "базис нуль пространства матрицы ".

А29. АЛГОРИТМ (базис_нуль_пространства_матрицы).

Пример вычисления матрицы Q и нахождения ее нуль- пространства.

Данный пример взят из монографии Кнута [9].

Пусть

Непосредственными вычислениями проверяется, что
Значит, свободен от квадратов. Далее, , следовательно, 1-я строка матрицы равна . Вычислим вторую строку, т.е. . Ниже приводятся вычисления.

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

Вычитая единичную матрицу, получим

Переходим к нахождению нуль-пространства.

. Первая строка нулевая, таким образом, получаем собственный вектор .

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

Продолжая таким же образом, получим

,

,

,

,

Таким образом, матрица приведена к ступенчатому виду. Для нахождения собственных векторов в качестве свободных параметров выбираем последние две координаты. При этом получаются векторы и .

Им соответствуют многочлены

Находим . Получаем

При всех , отличных от 0 и 2, получаем . Поскольку при приведении матрицы к ступенчатому виду мы получили , продолжаем поиск неприводимых множителей. Находим, что при
при s =8,
при остальных значениях этот равен 1.

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

Лемма Гензеля

Лемма Гензеля в своей классической формулировке, принятой в алгебре и теории чисел, утверждает, что разложение полинома на взаимно простые сомножители, выполненное по модулю простого числа , можно продолжить до разложения в кольце - адических чисел. Доказательство ее можно найти, например, в монографии Ван дер Вардена [4 с. 549]. Основу доказательства составляет итерационный процесс перехода от сравнения по модулю некоторой степени числа к сравнению по модулю большей степени . Показывается, что этот переход можно выполнить за конечное число шагов, вопросам сложности в алгебраическом доказательстве уделяется мало внимания. Нас же в первую очередь интересует алгоритм этого перехода с учетом возможности его практической реализации и оценкой его времени работы.

Начнем с изложения леммы Гензеля в простейшем варианте: линейный подъем для двух сомножителей.

Предположим, что и по модулю некоторой степени простого числа получено разложение на взаимно простые множители: , где . Мы хотим продолжить это сравнение до сравнения по модулю .

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

(18.1)

Эти полиномы можно найти, применяя в кольце расширенный алгоритм Евклида к полиномам и . Полиномы и определены неоднозначно, однозначность получается, если мы потребуем, чтобы их степени были ниже степеней полиномов и соответственно. В частности, полиномы и можно заменить их остатками от деления на и в кольце

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

Полиномы мы будем искать в виде , . Сравнения

эквивалентны сравнению

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

Итак, алгоритм линейного подъема Гензеля можно записать в следующем виде.

А30. АЛГОРИТМ (линейного подъема для двух сомножителей).

Отметим, что для применения этого алгоритма для произвольного числа сомножителей нужно получить соответствующее представление единицы:

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

Снова предполагаем, что старший коэффициент полинома совпадает со старшим коэффициентом полинома , а старшие коэффициенты остальных сомножителей равны .

А31. АЛГОРИТМ (линейного подъема для нескольких множителей).

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

Рассмотрим задачу в следующей постановке.

В рассматриваемом алгоритме факторизации является степенью , а множители получаются подъемом неприводимых делителей по модулю .

А32. АЛГОРИТМ (квадратичный подъем ).

Работа алгоритма начинается с вычисления вспомогательного многочлена . Заметим, что из условий, наложенных на старшие коэффициенты, следует, что . Кроме того, из (18.2) следует, что , поэтому деление во второй строке выполняется нацело. В первом цикле мы ищем многочлены в виде , для чего находим , такие, что и

(18.5)
Условию (18.5) удовлетворяют многочлены , но для них не выполняется ограничение по степеням. При переходе от к его остатку от деления на значение соответствующего слагаемого по модулю не изменится. Выполнение равенства (18.5) после замены всех полиномов соответствующими остатками следует из того, что степени и левой, и правой его части меньше степени полинома .

По завершении работы первого цикла многочлены найдены, и мы переходим к модификации полиномов . Снова вводим вспомогательный многочлен . Из условий(18.3) следует, что , а из (18.4) - что , так что в следующей строке деление выполняется нацело.

В цикле мы ищем многочлены в виде , для чего находим , такие, что и

(18.6)

Условию (18.6) удовлетворяют полиномы , но для них не выполняется ограничение по степеням; при переходе от к его остатку от деления на значение соответствующего слагаемого по модулю не изменится. Выполнение равенства (18.6) после замены всех полиномов соответствующими остатками следует из того, что степени и левой, и правой его части меньше степени полинома .

Обсуждение алгоритма

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

18.1. ЗАМЕЧАНИЕ. Наибольшее количество операций в рассмотренном алгоритме факторизации требуется при выполнении перебора множителей. Версия алгоритма, излагаемая Калтофеном в [10], предполагает, что старший коэффициент первого множителя над полем совпадает со старшим коэффициентом исходного полинома . При этом из перебора исключался первый сомножитель, перебор осуществлялся по всем подмножествам множества , максимальное возможное их количество равно . Если первый сомножитель разделить на , что можно выполнить в кольце , то достаточно организовать перебор только по тем подмножествам множества , которые содержат не более элементов. В действительности деление на происходит не в кольце , а в некотором кольце вычетов , где является степенью . Целесообразно, по-видимому, это деление выполнять после подъема разложения на неприводимые множители до сравнения по модулю . При этом коэффициенты полинома увеличатся, что потребует большего времени для выполнения пробных делений, однако более существенным представляется сокращение времени работы за счет меньшего количества рассматриваемых вариантов перебора.

18.2. ЗАМЕЧАНИЕ. Ограничение вариантов перебора можно организовать не по максимальному количеству сомножителей, а по максимальной степени делителя. Достаточно ограничиться степенью , где . При этом получается лучшее ограничение на необходимую точность разложения . Количество рассматриваемых вариантов может быть в этом случае существенно большим.

18.3. ЗАМЕЧАНИЕ. Как отмечалось выше, проверку, представляет ли произведение неприводимых над полиномов делитель в кольце , целесообразнее производить путем пробного деления на . Напомним, что коэффициенты полинома вычислены с определенной точностью, т.е. по модулю некоторого числа , и представлены целыми числами. Прежде чем выполнять деление полинома на , целесообразно проверить выполнение некоторых необходимых признаков делимости: например, свободный член полинома должен делить свободный член полинома , можно оценить допустимую величину второго по старшинству коэффициента в и сравнить ее с фактической и т.д.

18.4. ЗАМЕЧАНИЕ. В процессе деления полиномов коэффициенты частного могут получиться по абсолютной величине больше, чем допустимые значения для коэффициентов делителя полинома . В таком случае деление нужно немедленно прекращать и переходить к следующей комбинации делителей.

18.5. ЗАМЕЧАНИЕ. При изложении алгоритма уточнения решения мы пользовались квадратичным подъемом, который позволяет переходить от сравнения по модулю к сравнению по модулю . Чтобы избежать многократного превышения достигнутой точности над требуемой, на последнем шаге можно ограничиться меньшим значением , либо применить линейный подъем.

18.6. ЗАМЕЧАНИЕ. Как отмечалось выше, одно из преимуществ использования - адической метрики состоит в том, что неприводимые по модулю многочлены могут иметь сколь угодно высокие степени. Может возникнуть предположение, что для любого полинома возможно выбрать простое число так, что разложение по модулю на неприводимые множители будет совпадать с разложением в кольце . Эта гипотеза неверна, можно привести пример неприводимого в многочлена сколь угодно большой степени, который по модулю любого простого разлагается на линейные или квадратичные множители. Берлекэмпом следующая теорема приписывается Х.П.Ф. Свиннертону-Дайеру.

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

Для доказательства теоремы нам потребуется знакомство с основными фактами теории Галуа. Читателю, не знакомому с теорией Галуа, рекомендуется либо ознакомиться с нею, например, просмотрев соответствующую лекцию в монографии ван дер Вардена, либо пропустить доказательство данной теоремы, что можно сделать без существенного ущерба для понимания дальнейшего материала.

ДОКАЗАТЕЛЬСТВО. Пользуемся следующими обозначениями:

Методом математической индукции докажем, что , и - примитивный элемент расширения над .

Для эти факты очевидны.

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

образует базис линейного пространства над при .

Покажем, что не принадлежит линейному пространству, порожденному множеством .

Предположим противное. Тогда существуют рациональные числа , такие, что

(18.7)
Поскольку все , - различные простые числа, в левой части равенства (18.7) содержится не менее двух ненулевых коэффициентов. Тогда существует , такое, что в одном из ненулевых слагаемых содержится , а в другом - нет. Без потери общности полагаем . Тогда равенство (18.7) можно переписать в виде
(18.8)
Из линейной независимости над элементов множества следует, что и . Возведя обе части равенства (18.8) в квадрат и выполнив несложные преобразования, получим
что противоречит предположению индукции. Следовательно, и .

Покажем, что .

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

Свойство разложимости по модулю любого простого числа выводится из следующих фактов. Все квадратные корни из элементов лежат в некотором квадратичном расширении поля , a поскольку все квадратичные расширения поля изоморфны, то можно считать, что все корни полинома по модулю лежат в поле Галуа . Если у полинома имеется неприводимый по модулю множитель степени , то его корни порождают поле и не могут быть элементами поля .

18.8. УПРАЖНЕНИЕ Доказать, что полином является неприводимым над , но разлагается на множители по модулю любого простого числа .

18.9. УПРАЖНЕНИЕ. Организовать перебор вариантов сомножителей с ограничением по суммарной степени.

18.10. УПРАЖНЕНИЕ. Пусть , делит в кольце . Получить оценку для абсолютной величины коэффициента, следующего за старшим в , через коэффициенты полинома .

Лекция 9. Редуцированные базисы решетки. Редуцирование базиса в решетке

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

Редуцированные базисы решетки

19.1. ОПРЕДЕЛЕНИЕ. Решеткой в -мерном векторном пространстве над полем вещественных чисел или над полем рациональных чисел называется свободный -модуль ранга , т.е. существует базис пространства (соответственно ), такой, что

В этом случае называется рангом решетки, а множество векторов - ее базисом.

19.2. ОПРЕДЕЛЕНИЕ. Детерминантом решетки называется положительное число, определяемое формулой

для некоторого базиса решетки .

19.3. УПРАЖНЕНИЕ. Показать, что определение 19.2 является корректным, т.е. не зависит от выбора базиса решетки .

Прежде чем дать определение редуцированного базиса решетки, нам необходимо напомнить процесс ортогонализации Грама-Шмидта. Векторы и вещественные числа определяются по индукции формулами

(19.1)
(19.2)

Отметим, что - проекция вектора на ортогональное дополнение к пространству в пространстве и что для . Таким образом векторы образуют ортогональный базис пространства .

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

19.4. УПРАЖНЕНИЕ. Показать, что

Показать, что для любого базиса решетки выполняется неравенство Адамара
(19.3)

19.6. ОПРЕДЕЛЕНИЕ. Базис решетки называется редуцированным редуцированным, если выполняются неравенства

(19.4)
и
(19.5)

Векторы и имеют простой геометрический смысл - это проекции векторов и на ортогональное дополнение к пространству в . Константа 3/4 выбирается в значительной мере произвольно: вместо нее можно взять любое фиксированное вещественное число , удовлетворяющее условию .

Грубо говоря, редуцированный базис состоит из "почти ортогональных" векторов, расположенных в порядке "почти неубывания длин".

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

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

19.7. ПРЕДЛОЖЕНИЕ. Пусть - редуцированный базис решетки в и векторы получены из этого базиса процессом ортогонализации Грама - Шмидта. Тогда

(19.6)
(19.7)
(19.8)

ДОКАЗАТЕЛЬСТВО. Сначала докажем формулу (19.6). Из формул (19.4) и (19.5) получаем

(19.9)
для , откуда по индукции выводится неравенство

Из этих формул следует, что

для . Таким образом, формула (19.6) доказана.

Для доказательства формулы (19.7) достаточно воспользоваться упражнением 19.4 и неравенствами

Полагая в формуле (19.6) и перемножив левые и правые части этой формулы для от 1 до , получим неравенство (19.8). Этим заканчивается доказательство предложения 19.7.

19.8. УПРАЖНЕНИЕ. Показать, что если в формуле (19.5) заменить 3/4 на некоторое вещественное число , , то появляющиеся в формулах (19.6), (19.7) и (19.8) степени числа 2 заменятся на такие же степени числа .

19.9. ПРЕДЛОЖЕНИЕ. Пусть - редуцированный базис решетки . Тогда для любого ненулевого вектора выполняется неравенство

ДОКАЗАТЕЛЬСТВО. Любой вектор может быть выражен через векторы базиса с целыми коэффициентами , а через векторы - в виде линейной комбинации с вещественными коэффициентами , т.е.

Если - наибольший индекс, для которого , то . Таким образом,

Последние два неравенства вытекают из формулы (19.6).

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

19.10. ПРЕДЛОЖЕНИЕ. Пусть - редуцированный базис решетки , - линейно независимые векторы решетки . Тогда для любого от 1 до выполняется неравенство

ДОКАЗАТЕЛЬСТВО. Выразим векторы через элементы базиса :

где для . Для каждого фиксированного через обозначим наибольшее значение , для которого . Перенумеруем векторы так, чтобы числа не убывали, т.е. . Из доказательства предыдущего предложения можно получить неравенство
(19.10)

Покажем, что для всех от 1 до . Если это неравенство для некоторого не выполняется, то все векторы принадлежат подпространству , что противоречит линейной независимости векторов . Воспользовавшись неравенством и формулами (19.6) и (19.10), получаем для всех от 1 до неравенство

Этим доказательство предложения 19.10 заканчивается.

Редуцирование базиса в решетке

В этом параграфе рассмотрим алгоритм построения редуцированного базиса решетки, полученный в работе [24]. Определение решетки и редуцированного базиса приведены в параграфе 19. Там же описаны основные свойства редуцированных базисов, которые понадобятся нам в алгоритмах факторизации многочленов.

Ниже сформулирован и обоснован алгоритм построения редуцированного базиса решетки. Построение редуцированного базиса ведем, последовательно присоединяя очередной ( -ый) элемент исходного базиса решетки и редуцируя базис подрешетки, натянутой на векторы с 1-го по -ый. Алгоритм содержит два основных шага: на одном из них мы из присоединяемого вектора вычитаем целые кратные векторов, уже включенных в редуцированный базис, чтобы обеспечить выполнение условия (19.4). При этом длина редуцированной части базиса не меняется. Второй шаг, направленный на выполнение условия 19.5, сводится к перестановке добавляемого вектора с последним вектором, уже включенным в редуцированный базис, при такой перестановке длина редуцированной части базиса уменьшается на 1. Переменная указывает номер элемента, который пытаемся присоединить к редуцированной части базиса, т.е. редуцированная часть базиса содержит в каждый момент вектор. Начальное значение равно 2, т. к. любой базис решетки, порождаемой одним вектором, является редуцированным (условия (19.4) и (19.5) выполняются автоматически, поскольку нет различных индексов).

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

А33. АЛГОРИТМ (редуцирование-базиса).

Элементы вектора представляют собой квадраты длин соответствующих векторов из ортогонального базиса , вычисляемого по формулам (19.1) и (19.2).

Детализируем предложенный алгоритм.

А34. АЛГОРИТМ (начальная-установка).

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

А35. АЛГОРИТМ (обеспечить-выполнение-условия-(19.4)).

Элементы нижней треугольной матрицы вычисляются по формулам (19.2). В данном алгоритме меняем только вектор с индексом . При этом меняется только -ая строка матрицы , из нее вычитается -ая строка матрицы , умноженная на . ( - единичная матрица.)

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

(20.1)

Переходим к вычислению ортогонального базиса. Как отмечалось выше, левая часть равенства (19.5) представляет собой квадрат длины ортогонального дополнения -го вектора к подпространству, порожденному векторами с 1-го по -ой.

Таким образом,

(20.2)

Для вычисления спроектируем на ортогональное дополнение к . Получим

(20.3)
(20.4)
(20.5)

Для вычисления коэффициентов нам понадобится выразить старый ортогональный базис через новый. Из соотношений (20.2), (20.3) и (20.4) получаем

(20.6)
(20.7)

Подставив соотношения (20.1)-(20.7)в формулу (19.1) и приведя подобные члены, получим для

(20.8)
(20.9)

Наконец,

(20.10)
(20.11)

Реализация полученных формул описывается следующим алгоритмом:

А36. АЛГОРИТМ (переставить- -ый-элемент-базиса- - - -м).

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

Для доказательства первого утверждения заметим, что мы выполняем над элементами базиса только элементарные преобразования, которые переводят базис -модуля в другой базис того же самого -модуля, т. к. и перестановка элементов базиса и прибавление к одному из элементов целого кратного другого - обратимые операции. Таким образом, в любой момент времени представляет собой базис исходной решетки. Элементы этого базиса с 1-го по -ый представляют собой редуцированный базис подрешетки, порожденной этими элементами, т. к. для них выполнены условия (19.4) и (19.5). Когда мы производим преобразования вектора , направленные на то, чтобы для него выполнялись условия (19.4), эти преобразования никак не отражаются на векторах с 1-го по -ый, а если мы производим перестановку -го элемента базиса с -ым, то уменьшаем длину редуцированной части базиса на 1 (если она больше 1; меньше 1 длина редуцированной части базиса быть не может) и одновременно уменьшаем значение . Для векторов с 1-го по -ый снова выполнены условия (19.4) и (19.5). Таким образом, если алгоритм завершил свою работу, то получившийся базис - редуцированный базис исходной решетки .

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

20.1. УПРАЖНЕНИЕ. Пусть . Показать, что для любой решетки выполняется неравенство .

Введем обозначение

(20.12)

20.2. УПРАЖНЕНИЕ. Показать, что для всех от 1 до выполняется равенство .

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

20.3. УПРАЖНЕНИЕ. Показать, что каждая такая решетка содержит ненулевой вектор , удовлетворяющий неравенству

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

Из упражнения 20.2 следует, что значение меняется только тогда, когда изменяется хотя бы один из векторов . Это может произойти только при перестановке двух векторов базиса. При этом новое значение равно , что по условию меньше, чем 3/4 от прежнего значения этой величины. Таким образом, при каждой выполняемой перестановке элементов базиса значение величины умножается на положительное число, меньшее 3/4. Из упражнений 20.1-20.3 следует, что ограничено снизу некоторой положительной величиной, следовательно, перестановка элементов выполняется в алгоритме только конечное число раз, обозначим его . При каждом выполнении перестановки значение уменьшается на 1, при выполнении команд, следующих за ключевым словом "иначе" в алгоритме, значение увеличивается на 1. Начальное значение равно 2, алгоритм продолжает работу до тех пор, пока , следовательно, ситуация "иначе" встречается раз, т.е. тело цикла "пока" выполняется конечное число раз. Таким образом, алгоритм завершает работу после выполнения конечного числа шагов. Ниже мы оценим это число для случая, когда все координаты исходного базиса решетки - целые числа.

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

20.4. ПРЕДЛОЖЕНИЕ. Пусть - решетка с базисом и предположим, что задано положительное число , такое, что для любого вектора из исходного базиса решетки выполняется неравенство . Тогда алгоритм построения редуцированного базиса, описанный выше, требует для своего выполнения арифметических операций над целыми числами, двоичная длина которых представляет . Таким образом, для построения редуцированного базиса достаточно бинарных операций.

ДОКАЗАТЕЛЬСТВО. Перед началом работы алгоритма величины , определенные формулами (20.12) удовлетворяют неравенству , что легко следует из упражнения 20.2. Таким образом, перед началом работы алгоритма . Из определения легко следует, что в случае, когда , - неотрицательное целое число, которое не может обратиться в нуль, в силу линейной независимости векторов, составляющих базис решетки. Таким образом, во все время работы алгоритма. Выше отмечалось, что при перестановках элементов базиса, выполняемых алгоритмом построения редуцированного базиса, величина убывает не медленнее геометрической прогрессии со знаменателем 3/4, следовательно, таких перестановок выполняется . Мы оценили, таким образом, сколько раз в головной программе, в цикле "пока" встречается ситуация "то" в условии "если". Из доказательства конечности времени работы алгоритма следует, что ситуация "иначе" встречается также раз. Итак, тело цикла в основном алгоритме выполняется раз. Внутренний цикл в ситуации "иначе" дает еще один множитель для алгоритма A35, который выполняется таким образом раз. Переходим теперь к оценке сложности отдельных предписаний алгоритма A33.

В предписании "начальная-установка" два вложенных цикла дают повторений тела цикла, в котором встречаются векторные операции: скалярное произведение векторов, умножение вектора на число, вычитание векторов, что дает еще один множитель . При этом арифметические операции выполняются над рациональными числами. Сложность выполнения операций над этими числами оценим несколько позже.

Количество арифметических операций в алгоритме A35, как легко видеть, равно , такое же количество операций в алгоритме A36. Сравнивая количество проходов через отдельные ветви алгоритма, получаем, что количество арифметических операций в алгоритме представляется величиной , что и утверждалось в первой части предложения.

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

(20.13)
(20.14)
(20.15)

Первое из этих соотношений следует из упражнения 20.2.

Для доказательства второго соотношения выразим векторы с неопределенными коэффициентами через исходный базис:

Неизвестные коэффициенты с фиксированным первым индексом определяются из системы линейных уравнений

(20.16)

Решая систему (20.16) методом Крамера, воспользовавшись формулой (20.12) получаем, что для всех допустимых значений индексов. Отсюда уже вытекает соотношение (20.14).

Воспользовавшись соотношениями (19.2), (20.13) и (20.14), получаем цепочку равенств

чем заканчивается доказательство соотношения (20.15).

Посмотрим теперь, как меняются величины в процессе работы алгоритма. В начале работы алгоритма они вычисляются по формулам (20.12). В процессе работы эти величины меняются только при перестановке элементов базиса (в алгоритме A36 ). В этом случае заменяется (в обозначениях (20.1)-(20.5)) на

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

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

(20.17)
(20.18)
(20.19)
(20.20)
(20.21)

При доказательстве этих неравенств пользуемся следующим соотношением:

(20.22)

Перед первым выполнением тела цикла неравенства (20.17) и (20.18) следуют из неравенства , которое выполняется по определению . Вместе с (20.22) это неравенство дает соотношение , откуда следует (20.19) и (20.20), а учитывая, что , и (20.21). Таким образом, перед первым выполнением тела цикла неравенства (20.17)-(20.21) справедливы.

Предположим теперь, что неравенства (20.17)-(20.21) выполнены перед началом выполнения тела цикла, и покажем, что эти неравенства будут выполнены и в конце тела цикла, т.е. перед выполнением следующего цикла. Неравенство (20.19) совпадает с (19.4), которое выполняется для текущего все время работы алгоритма A33, в том числе и в начале цикла. Выполнение неравенства (20.17) для следует из соотношений (19.1), (20.19) и неравенства . Покажем, что из (20.17) для и из неравенства (20.21) следуют неравенства (20.18) и (20.20). Доказательство (20.18) сводится к разложению в сумму по формуле (19.1), применению неравенства (20.21) и вычислению суммы геометрической прогрессии. Неравенство (20.20) непосредственно вытекает из (20.22) и (20.17).

Итак, покажем, что если перед началом выполнения тела цикла справедливы неравенства (20.17)-(20.21), то и после его выполнения неравенства (20.17) и (20.21) также имеют место. Отдельно рассмотрим два случая: работа алгоритма осуществляется по ветви "то", т.е. два вектора меняются местами; второй случай - алгоритм идет на ветвь "иначе", т.е. осуществляется выполнение условия (19.4) для всех .

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

Переходим к оценке (если ). Снова в теле цикла может выполняться одна из двух серий команд, причем в конце каждой серии значение переменной меняется, либо увеличиваясь, либо уменьшаясь на 1. Значение увеличивается, когда алгоритм идет по второй ветви, т.е. достигается выполнение условия (19.4) для всех (отдельно, до цикла достигается это условие для , в цикле - для ). Эти операции никак не влияют на , если , в частности, при . На следующем шаге значение увеличивается на 1, и неравенства (20.21) следуют из (20.20), которые выполняются на предыдущем этапе.

Значение уменьшается на 1, если в теле цикла выполняется перестановка векторов, при этом после ее выполнения новые значения коэффициентов совпадают со старыми значениями (с учетом замены на ). Остается только проследить, как изменилось значение коэффициентов , когда до перестановки векторов мы добивались выполнения условия (19.4) для . При этом к -ой строке матрицы прибавлялась ( )-я строка, умноженная на , где . Учитывая, что , получаем

(20.23)

Поскольку новое значение на 1 меньше старого, получаем требуемую формулу, доказательство неравенств (20.17)-(20.21) закончено.

Для завершения доказательства предложения 20.4 нам осталось только оценить значения, получающиеся на промежуточных этапах алгоритма. Заметим, что при выполнении алгоритма A35 значения коэффициентов не более, чем удваиваются. Поскольку в одном теле основного цикла алгоритм A35 выполняется не более, чем раз, то

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

Лекция 10. Алгоритмы факторизации, основанные на выборе малого вектора в решетке

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

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

Общая схема факторизации

В самых общих чертах алгоритм выделения неприводимого множителя с использованием редуцированного базиса решетки имеет следующий вид:

А37. АЛГОРИТМ. (выделить-неприводимый-множитель ( ))

Некоторые дополнительные комментарии к сформулированному алгоритму.

Наиболее трудный этап в этом алгоритме заключается в нахождении минимального вектора решетки. Для решения этой задачи воспользуемся алгоритмом построения редуцированного базиса решетки. В общем случае этот алгоритм не позволяет находить минимальный вектор в решетке, но находит вектор, длина которого отличается от длины минимального не более, чем в раз, где - размерность решетки. Таким образом, на вводимую норму накладывается более сильное условие: должна отличаться от нормы любого взаимно простого с многочлена не менее, чем в раз. Константа должна быть выбрана таким образом, чтобы выполнялись неравенства и и алгоритм построения редуцированного базиса решетки давал положительный ответ на вопрос о существовании вектора, длина которого меньше , в том и только в том случае, когда . Искомая норма зависит от неприводимого над многочлена , при этом нужно помнить, что многочлен мы вычисляем с некоторой точностью (не абсолютной), эта точность должна быть достаточно хорошей для того, чтобы сформулированные выше условия на остались справедливыми.

Нахождение с требуемой точностью неприводимого множителя можно разделить на два этапа: нахождение нулевого приближения и уточнение множителя.

Перепишем алгоритм A37 с учетом сделанных замечаний.

АЛГОРИТМ выделить-неприводимый-множитель (многочлены )

Рассмотрим основные особенности алгоритма факторизации при использовании архимедовой и - адической метрики на поле . В первом случае в качестве поля выберем поле комплексных чисел , во втором - поле - адических чисел .

Архимедова метрика

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

(21.1)
если - минимальный многочлен для над , - ранг решетки ,
(21.2)
для любого многочлена , не делящегося на .

После этого задача сводится к построению редуцированного базиса решетки. Цель данного раздела - показать, что числа , и можно выбрать следующим образом:

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

А38. АЛГОРИТМ (выделить-неприводимый-множитель).

В получившейся версии алгоритма осталось детализировать два предписания:

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

Обоснование выбора значений B, c, S.

Пусть - примитивный многочлен степени и - корень многочлена . Предположим, что - минимальный многочлен для . Очевидно, что - неприводимый множитель многочлена . Цель этого параграфа состоит в том, чтобы показать, как вычисление с достаточной точностью дает нам возможность определить многочлен .

В данном параграфе символ используется для обозначения степени многочлена ( , и т.д.).

21.1. ПРЕДЛОЖЕНИЕ. Пусть , и предположим, что удовлетворяет неравенству

(21.6)
Тогда
(21.7)

ДОКАЗАТЕЛЬСТВО. Для доказательства этого предложения нам потребуются оценки (так как - корень многочлена ) и оценки коэффициентов многочлена

(21.8)
:

Собственно доказательство проводится путем разложения в ряд Тейлора в окрестности точки и несложных вычислений с использованием приведенных оценок.

Следующий этап вычислений заключается в приближении с точностью значений рациональными числами с не слишком большими знаменателями (чтобы не проводить вычислений со слишком большими знаменателями). После этого, выбрав произвольным образом рациональное число , можем вложить многочлены с целыми коэффициентами степени не выше (рассматриваем случай ) в -мерное пространство над полем , тогда образ модуля многочленов образует в этом пространстве решетку размерности . Эту решетку обозначаем . Наша задача заключается в выборе констант и таким образом, чтобы кратчайший вектор этой решетки давал нам неприводимый множитель многочлена . (Квадрат нормы элемента решетки равен сумме квадрата нормы многочлена и приближенного значения квадрата модуля значения многочлена в точке , умноженного на .)

21.2. ПРЕДЛОЖЕНИЕ. Пусть - многочлен степени не выше , такой, что . Предположим, что и что

(21.9)
где . Тогда и .

ДОКАЗАТЕЛЬСТВО. Первым делом покажем, что . Так как и , получаем

(21.10)

Оценки на слагаемые:

(21.11)
(21.12)
(21.13)

оставляются читателю в качестве упражнения.

Доказательство неравенства .

Предполагаем, что (в противном случае неравенство очевидно). Должны доказать, что . Поскольку

(21.14)
и , то достаточно доказать неравенство .

Найдем , такие, что и , и , где обозначает результант многочленов и . Из неравенства Адамара (19.3) следует, что абсолютные значения коэффициентов и ограничены величиной , а значит и . Отсюда, пользуясь тем, что , можно получить неравенство

(21.15)

Отсюда и .

Обсуждение алгоритма

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

А39. АЛГОРИТМ (выделить-неприводимый-множитель).

21.5. p-адическая метрика.

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

(21.16)
(21.17)
(21.18)
(21.19)

Положим , тогда .

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

Другими словами, пусть обозначает естественный гомоморфизм кольца на факторкольцо , ядро гомоморфизма совпадает с главным идеалом кольца , обозначим просто . Пусть - главный идеал кольца , порожденный многочленом , удовлетворяющим условиям (21.16)-(21.19). Тогда существует , такой, что при любом в совпадают идеалы . Многочлен является неприводимым в и делит .

21.3. ПРЕДЛОЖЕНИЕ. Существует неприводимый в кольце множитель многочлена , для которого делит , и этот множитель определен однозначно с точностью до знака. Кроме того, если и делит , то следующие условия эквивалентны.

(21.20)
(21.21)
(21.22)

В частности, делит в кольце . В теоретико-кольцевых терминах эти условия переписываются следующим образом:

(21.20')
(21.21')
(21.22')

В частности,

ДОКАЗАТЕЛЬСТВО. Существование многочлена следует из того, что делится на . Поскольку многочлен неприводим, на него делится хотя бы для одного из неприводимых делителей многочлена , а так как эти делители взаимно просты, то делится в точности один из них.

Поскольку является кольцевым гомоморфизмом, и разлагается в композицию гомоморфизмов , где - естественный гомоморфизмом кольца , как из (21.22), так и из (21.21) следует (21.20).

Покажем, что из (21.20) следует (21.21) и (21.22).

Пусть выполнено условие (21.20). Тогда в силу (21.19) и однозначности разложения на множители в . Значит, . Из однозначности разложения на множители в следует, что , т.е. выполнено (21.22).

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

(21.23)
Обозначим . Применяя к предыдущему соотношению, умноженному на , получим

(21.24)

Из этого соотношения и (21.17) следует (21.21).

Рассмотрим на кольце многочленов фильтрацию по степеням многочленов, т.е. для любого неотрицательного целого векторное пространство, состоящее из многочленов степени не выше , обозначается . Введенная фильтрация индуцирует фильтрацию на кольце : . образует вещественное линейное пространство размерности , а является в нем решеткой (свободным -модулем максимального ранга).

Рассмотрим целое число . Через обозначим множество всех многочленов в кольце , которые делятся на по модулю и степень которых не превосходит , т.е. . Другими словами, состоит из тех многочленов, коэффициенты остатков от деления которых на в - адической метрике не превосходят , т.е. являются малыми величинами. Легко видеть, что базис решетки образует следующее множество многочленов

(21.25)
В качестве базиса всего вещественного пространства многочленов степени не выше удобно выбрать одночлены , . Длиной многочлена назовем евклидову длину этого многочлена в выбранном базисе, который мы предполагаем ортонормированным. Oтождествляем многочлен с вектором его коэффициентов в выделенном базисе. Матрица коэффициентов базиса (21.25) имеет в этом базисе треугольную форму и легко видеть, что . Покажем, что элементы решетки с малой длиной лежат в главном идеале, порожденном многочленом в .

21.4. ПРЕДЛОЖЕНИЕ. Предположим, что многочлен удовлетворяет неравенству

(21.26)
Тогда делится на в кольце , в частности, .

ДОКАЗАТЕЛЬСТВО. Можно считать, что . Положим . Достаточно показать, как следует из предыдущего предложения, что . Предположим противное. Пользуясь неприводимостью и эпиморфностью гомоморфизма , получаем существование многочленов , таких, что

(21.27)

Напомним, что , , - размерность решетки . Положим и .

Очевидно, что . Положим .

Пусть , и , т.е. является -модулем, состоящим из всех многочленов вида , где , .

Покажем, что множество элементов

(21.28)
образует базис -модуля . Очевидно, что они порождают , остается только показать, что выписанная система многочленов линейно независима над . Предположим, что , где . Разделим это соотношение на . Получим, . Пользуясь взаимной простотой многочленов и и ограничениями на степени и , получаем, что .

Рассмотрим проекцию

(21.29)

Пусть . Покажем, что - решеткa в . Для этого достаточно показать, что , т.е. . Пусть , тогда по определению , следовательно, делится на . Поскольку , получаем . Учитывая линейную независимость элементов множества (21.28) над , получаем, что эти элементы образуют базис решетки . Неравенство Адамара (19.3) утверждает, что . Пользуясь предположением теоремы, получаем .

Для получения желаемого противоречия, покажем, что из (21.27) следует обратное неравенство .

Покажем, что для любого элемента , если , то , т.е. . Домножим соотношение (21.27) на . Получим , где , - некоторые многочлены из кольца . Поскольку\break , делится на , следовательно, также делится на . Сравнивая степени, получаем, что .

Для завершения доказательства достаточно теперь показать, что базис решетки можно выбрать таким образом, что . Это упражнение на приведение невырожденной целочисленной матрицы к треугольному виду оставляется читателю. При таком выборе базиса, старшие коэффициенты первых многочленов делятся на . Значит , который в полученном базисе равен произведению старших коэффициентов, удовлетворяет неравенству , что завершает доказательство теоремы.

Следующий результат позволяет находить неприводимый делитель многочлена .

21.5. ПРЕДЛОЖЕНИЕ. Пусть , , , , , выбраны так, как предполагалось в начале параграфа, - решетка, заданная базисом (21.25). Предположим, что - редуцированный базис решетки и что выполняется неравенство

(21.30)

Если - неприводимый над многочлен, делящийся на , то тогда и только тогда, когда

(21.31)

ДОКАЗАТЕЛЬСТВО. Если условие (21.31) выполнено, то по предложению 21.4 многочлен делится на . Решетка выбрана так, что для любого , следовательно, .

Предположим теперь, что . Тогда по предложению 21.4.

Полагая в предложении 19.9, получим .

Теперь из задачи 7.6 следует неравенство . Подставляя сюда (21.30), получим (21.31).

Теперь можно сформулировать следующий алгоритм нахождения неприводимого в многочлена, делящегося по модулю на неприводимый по модулю многочлен .

А40. АЛГОРИТМ (неприводимый-множитель (f, h, g, p)).

Недостаток этого алгоритма заключается в том, что для каждого значения нужно применять алгоритм Гензеля, строить новую решетку и редуцировать ее базис. Следующее предложение позволяет применять алгоритм построения редуцированного базиса решетки только один раз для максимального возможного значения .

21.6. ПРЕДЛОЖЕНИЕ. Предположим, что обозначения выбраны так же, как и в предложении 21.5, и что выполнены те же предположения. Предположим кроме того, что существуют индексы , такие, что

(21.32)

Пусть - наибольшее значение , для которого выполнено (21.32). Тогда

и неравенство (21.32) выполнено для всех , таких, что .

ДОКАЗАТЕЛЬСТВО. Пусть обозначает множество индексов , для которых выполнено неравенство (21.32), - мощность множества . Тогда делит для любого , следовательно, делит многочлен . Положим . Поскольку для всех , эти многочлены принадлежат -модулю , ранг которого равен . В силу линейной независимости векторов получаем

(21.33)
Применяя результат задачи 7.6 к многочленам , получаем
Для имеем , так что из предложения 19.9 получаем

Из неравенства (21.30) следует, что индексы от 1 до принадлежат множеству . Поскольку делится на и выполняется неравенство (21.33), получаем , откуда .

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

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

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

А41. АЛГОРИТМ (неприводимый-множитель (f, h, g, p)).

Лекция 11. Интегрирование полиномов и рациональных функций. Некоторые сведения из дифференциальной алгебры. Структурная теорема

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

Интегрирование полиномов и рациональных функций

Для решения простейших дифференциальных уравнений вида

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

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

В этом разделе символом будем обозначать класс функций, к которому принадлежит функция из правой части уравнения (22.1), а символом - класс функций, в котором выбирается решение.

Прежде всего рассмотрим случай, когда - кольцо полиномов от одной переменной над некоторым кольцом характеристики 0. Предполагается, что мы умеем выполнять арифметические операции в поле , в частности, может совпадать с полем . В этом случае любое уравнение вида (22.1) имеет решение в этом же классе функций, и алгоритм его нахождения хорошо известен: если , то первообразная имеет вид , где - произвольная константа ( константа интегрирования )

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

Напомним два метода решения уравнения (22.1) в этом случае.

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

Основная сложность этого метода приходится на нахождение полюсов функции , т.е корней ее знаменателя и разложение функции в сумму простейших дробей.

II метод. Как и прежде, предполагаем, что и что мы нашли все полюса функции на комплексной плоскости. Разложим в окрестности каждого полюса функцию в ряд Лорана, точнее, вычислим главную часть разложения, , где - порядок полюса в точке . Если - первообразная функции , то главная часть разложения функции в точке имеет вид

Функция
не имеет особенностей в комплексной плоскости и является просто полиномом, степень которого равна . Для нахождения этого полинома можно также проинтегрировать главную часть разложения функции в точке .

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

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

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

Предположим, что рациональная функция представлена в виде суммы полинома и правильной дроби (т. е. отношения двух полиномов, в котором степень числителя меньше степени знаменателя) . Мы можем отдельно интегрировать полиномиальную и рациональную части функции . Интеграл от является полиномом, и его вычисление не представляет труда. Интеграл от представляется в виде суммы правильной дроби и логарифмической части интеграла. Логарифмическая часть получается от интегрирования правильных дробей, в знаменателе которых стоят неприводимые полиномы (в первой степени). Сумма таких дробей является правильной дробью, знаменатель которой свободен от квадратов и делит знаменатель исходной функции . Алгоритм нахождения описан в параграфе "Разложение на свободные от квадратов множители". Как легко следует из первого метода интегрирования, рациональная часть интеграла функции является правильной дробью, знаменатель которой получается из знаменателя функции делением его на . Числитель рациональной части однозначно определяется условиями: и - правильная рациональная дробь со знаменателем . Вычисление полинома осуществляется методом неопределенных коэффициентов.

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

Хотя проблематика интегрирования в конечном виде возникла из математического и функционального анализа, описание удобнее давать в терминах дифференциальной алгебры.

Некоторые сведения из дифференциальной алгебры

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

Прежде всего напомним формальное определение дифференцирования, дифференциального кольца и дифференциального поля (см. определение 3.2).

23.1. ОПРЕДЕЛЕНИЕ. Отображение кольца в себя называется дифференцированием, дифференцирование если оно удовлетворяет условиям

(23.1)
для всех .

23.2. ОПРЕДЕЛЕНИЕ. Обыкновенным дифференциальным кольцом (полем) называется кольцо (поле), на котором действует оператор дифференцирования