Научная статья на тему 'Алгоритм Тарского'

Алгоритм Тарского Текст научной статьи по специальности «Математика»

CC BY
261
30
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ ТАРСКОГО / РАЗРЕШИМОСТЬ ЭЛЕМЕНТАРНОЙ АЛГЕБРЫ И ГЕОМЕТРИИ / ЭЛИМИНАЦИЯ КВАНТОРОВ

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

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

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

Текст научной работы на тему «Алгоритм Тарского»

Матиясевич Юрий Владимирович

АЛГОРИТМ ТАРСКОГО

Аннотация

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

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

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

Алгебра - это арифметика для лентяев.

К. Гаусс

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

В геометрии традиционно рассматриваются различные объекты: точки - неопределяемые понятия, прямые, состоящие из точек, окружности, также состоящие из точек, и т. д. Между этими объектами вводятся первичные отношения - точка А лежит на прямой I, точка А лежит на окружности О и т. д.

Нетрудно, однако, увидеть, что значительную часть планиметрии можно изложить, говоря только о точках и отношениях между ними. Вместо прямых достаточно иметь трехместное отношение ОпЫпе(А, В, С), говорящее что точки А, В

© Ю.В. Матиясевич, 2008

и С лежат на одной прямой, окужности легко заменяются четырёхместным отношением Бд0181апее(А, В, С, D), говорящим что расстояние между точками А и В равно расстоянию между точками С и D и т. д. Вот пример теоремы, записанной таким языком (см. рис. 1).

Узнали эту теорему? Здесь всего на-всего сказано, что три медианы А1В1, А2В2 и А3В3 в треугольнике АА1А2А3 пересекаются в одной точке - точке С.

Мы можем заменить каждую точку А парой вещественных чисел (ах, ау) - её координатами, а вместо отношений между точками использовать соответствующие отношения между числами: ОпЫпе(ах, а , Ьх, Ьу, сх, еу) - точки с координатами

(а , а ), (Ь , Ь ) и (с , с ) лежат на одной прях у х у х у

мой, Ба0181апее(а , а, Ь, Ь, с, с, й, й) -

хухуху ху

расстояние между точками с координатами (ах, ау) и (Ьх, Ьу) равно расстоянию между точками с координатами (сх, су) и

(й, й ). Эти отношения легко записыва-

х у

ются алгебраическими уравнениями:

Теорема. Каковы бы ни были точки Л2 и А3, существуют точки В2, В3 и С такие, что

Aj Ф А2 & Aj Ф А3 & А2 Ф А3 ^

^ OnLine(Ap A2, B3) & EqDistance(Aj, B2, B2, A3) & & OnLine(A2, A3, Bj) & EqDistance(A2, Bp Bp A3) & & OnLine(Ap A3, B2) & EqDistance(Ap B3, B3, A2) & & OnLine(Ap C) & OnLine(A2, B2, C) & OnLine(A3, B3, C).

Рис. 1

OnLine(ax, ay, b

О axby + aycx +

, b , c , c ) О

с' y' x' y'

bc-ac-ab - bc = 0

x y x y yx yx

Бд0181апсе(ах, ау, Ьх, Ьу, сх, су, ¿х, ¿у) о

О («X - Ьх)2 + («у - Ьу)2 = (Сх - ^х)2 + (Су - ^у)2

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

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

Первым делом мы введем формальный язык Л (язык алгебры).

Язык А содержит:

• обозначения для всех рациональных чисел;

• нерешенные для вещественных чисел;

• знаки операций сложения и умножения;

• знаки отношений = , > , < ;

• логические связки &, V, 0, ^ ;

• кванторы V,

В качестве обозначений для рациональных чисел можно использовать, например, обыкновенные дроби - 2, -3, 5/7, —45j/53, ... и конечные десятичные дроби - 3,j4j59265, 2,7j828, ...; мы, однако, не можем иметь в нашем языке обозначения для всех вещественных чисел — бесконечная десятичная дробь не может быть подана на вход никакого алгоритма.

Теорема. Каковы бы ни были числа aj x, aj , a2 x, a2 , a3 x, a3 , существуют числа

тл , b , b , b , b , b и c , c такие, что

j,x' j,y' 2,x' 2,y' 3,x' 3,y x' y '

(aj x Ф a2 x v aj Ф a2 ) & (a j x Ф a3 x v aj Ф a3 ) & (a2 x Ф a3 x v a2 Ф a3 ) ^

^ a a + a b + ab - a b - a a - a0 b

j,x 2,y j,y 3,x 2,x 3,y j,x 3,y j,y 2,x 2,y 3,

.y

= 0&

& (aj,x - b2,x)2 + (aj,y - b2,y)2 = (b2,x - a3,x)2 + (b2,y - a3,y)2 & & a2,xa3,y + a2,ybj,x + a3,xbj,y - a2,xbj,y - a2,ya3,x - a3,ybj,x = 0 & & (a2,x - bj,x)2 + (a2,y - bj,y)2 = (bj,x - a3,x)2 + (bj,y - a3,y)2 &

&a a + a b + a b -ab -a a - ab = 0&

j,x 3,y j,y 2,x 3,x 2,y j,x 2,y j,y 3,x 3,y 2,x & (alr - b3 x)2 + (aj,y - b3,y)2 = (b3 x - a9 x)2 + (b3 y - a9 J2 &

3,y 2,y^

& aj,xbj,y + aj,ycx + bj,xcy - aj,xcy - aj,ybj,x - bj,ycx = 0 & & a2,xb2,y + a2,ycx + b2,xcy - a2,xcy - a2,yb2,x - b2,ycx = 0 & & a3,xb3,y + a3,ycx + b3,xcy - a3,xcy - a3,yb3,x - b3,ycx = 0.

Рис. 2

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

В качестве переменных для вещественных чисел мы будем использовать строчные латинские буквы с индексами и без них - а, Ь, с, ..., Яр ¿2, хб, •••

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

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

С помощью знаков отношений мы можем строить из многочленов элементарные формулы, например,

х2у + 4ху3 > (х - у)2, (1)

ху = 3х + 2у. (2)

С помощью логических связок & («и»), V («или»), 0 («не») и ^ («если ..., то ...») из элементарных формул можно строить более сложные формулы по следующим правилам: если Ф и ¥ - формулы, то (Ф &¥), (Ф V ¥), 0Ф, (Ф также являются формулами.

Из элементарных формул (1) и (2) мы можем образовать, например, формулу х2у + 4ху3 > (х - у)2 & ху = 3х + 2у. (3) Мы, однако, не можем задавать вопрос, верна ли формула (3) сама по себе, поскольку она содержит переменные. Однако можно спросить: Верно ли (3) при х = 4, у = 5?

Существует и другой путь сделать осмысленным вопрос об истинности или ложности (3), а именно, можно спросить следующее:

• Верно ли (3) при любых х, у?

• Существуют ли х, у такие, что выполнено (3)?

• Верно ли, что для любого х существует у такое, что выполнено (3)?

В нашем языке Л для постановки таких вопросов имеются кванторы: квантор общности V («для всех») и квантор существования $ («существует»).

С помощью кванторов из уже построенных формул можно строить ещё более сложные по следующим правилам: если Ф - формула, а а - переменная, то "а{Ф} и $а{Ф} также являются формулами}. При этом говорят, что квантор связывает стоящую за ним переменную.

Приведённые выше вопросы - это вопросы об истинности следующих формул нашего языка:

"х{"у{(х2у + 4ху3 > (х - у)2 & ху = 3х + 2у)}}, 3х{3у{(х2у + 4ху3 > (х - у)2 & ху = 3х + 2у)}}, "х{$у{(х2у + 4ху3 > (х - у)2 & ху = 3х + 2у)}},

(4)

Рассмотрим ещё формулу

"х{({$у{х2у + 4ху3 > (х - у)2} &

& $у{ху = 3х + 2у})}, (5)

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

По аналогичной причине квантор существования в формуле

"х{({$у{х2у + 4ху3> (х - у)2} & ху = 3х + 2у)}, не связывает переменную из второго члена конъюнкции, и поэтому нельзя спрашивать, верна ли эта формула.

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

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

Шесть одинаковых лонет ложно расположить на столе так, чтобы они не перекрывали друг друга, но касались бы седьлой такой же лонеты. А сколько биллиардных шаров логут касаться одного шара? Легко видеть, что по крайней лере двенадцать: заленил сель лонет на сель шаров и добавил е^ё три сверху и три снизу. А нельзя ли, пошевелив шары, улестить и тринадцатый шар?

Это было предметом спора между Исааком Ньютоном и Давидом Грегори, первый считал, что 13 шаров разместить нельзя, второй - что можно. Сегодня вы легко можете записать эту проблему на нашем языке .4, после чего для получения ответа останется применить алгоритм Тарского.

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

Рассмотрим теперь базисный случай замкнутой формулы 2х{Ф(х)} с одним квантором, где 2 - либо квантор существования 3, либо квантор общности V. Основная идея алгоритма Тарского проявляется уже в случае, когда Ф(х) - элементарная формула.

Рассмотрим сначала пример, когда Ф(х) является формулой Р(х) = 0, где

Рис. 3

ы \ 1 11 11 2 13 3

P(x )= — + — x--x--x +

2 20 20 20

14 15

+ — x +— x 20 10

Мы можем отметить на вещественной оси те значения x, при которых формула истинна - это нули многочлена P(x) (см. рис. 3), их количество конечно, оно не превосходит степени многочлена. После удаления этих точек остаётся конечное количество открытых промежутков, на которых формула ложна. Концы этих промежутков - это нули многочлена P(x) и, возможно, точки -¥ и +¥. Для наших целей все точки каждого из этих промежутков как бы «на одно лицо», нам важно только то, что количество таких промежутков конечно.

Аналогично формула P(x) > 0 истинна на конечном количестве открытых промежутков, концы которых - нули многочлена и, возможно, точки -¥ и +¥ (см. рис. 4), и

Рис. 4

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

Теперь можно описать «алгоритм» Тар-ского для случая однокванторной формулы (см. рис. 5). Слово алгоритм взято здесь в кавычки, поскольку пока не ясно, как выполнить некоторые шаги.

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

Не ограничивая общности, мы будем предполагать, что правые части всех элементарных формул - это число 0 (ибо всегда можно перенести все члены равенства или неравенства в левую часть).

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

Чтобы превратить описанный выше «алгоритм» в настоящий алгоритм, надо уточнить, что значит найти все корни и

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

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

Оформим работу нашего алгоритма в виде таблицы Тарского. Строки такой таблицы будут помечены некоторыми многочленами Т1(х), ..., Тт(х), степени которых ^е§(Г1(х)), ..., deg(7m(x)) идут в порядке неубывания: deg(T1(x)) < ... < deg(7m(x))• Столбцы таблицы, кроме двух крайних, помечены некоторыми числами х1, ..., хп, идущими в порядке возрастания; крайне левый и крайне правый столбцы помечены, соответственно, символами -¥ и +¥. В клетке, находящейся на пересечении строки, помеченной многочленом 7(х), и столбца, помеченного числом х, будет находиться один из трёх символов -, 0 или +, в соответствии с тем, какое из трех условий 7. (х) < 0, 7.(х) = 0 или же Г(х) > 0 1 ] г ] г ]

выполнено. Аналогично, содержимое клетки, находящейся на пересечении строки, помеченной многочленом 7.(х), и столбца, помеченного символом -¥ или +¥, бу-

«Алгоритм» Тарского (1-я версия) для ^х{Ф(х)}

1. Составить список Р1(х), ..., Рк(х) всех многочленов, входящих в Ф(х) и отличных от тождественного нуля.

2. Найти множество 01 = {х0, ..., х }, состоящее из всех корней всех многочленов Р1(х), ..., Рк(х); не ограничивая общности, мы считаем, что

х0 < х1 < ... < хп-1 < хп

3. Расширить множество до множества ОТ = {у0, ..., у } з 01 такого, что

• для любого г, такого что 0 < г < п, существует ,, такое что 0 < ] < п и

х.-1 < у. < хг;

• для любого г, такого что 0 < г < п, у0 < хг ;

• для любого г, такого что 0 < г < п, х < у ;

^ > 'г ут'

4. Формула $х{Ф(х)} истинна, если и только если Ф(у0) V ... V Ф(ут) Формула "х{Ф(х)} истинна, если и только если Ф(у0) & ... & Ф(ут)

Рис. 5

Рис. 6

«Алгоритм» Тарского (2-я версия) для Ох{Ф(х)}

1. Составить список Р2(х), ..., Рк(х) всех многочленов, входящих в Ф(х) и отличных от тождественного нуля.

2. Добавить многочлен Р0(х) = (Р1(х) • ... • Рк(х))'.

3. Найти множество Ш = {х0, ..., х }, состоящее из всех корней всех многочленов Р0(х), Р^х), Рк(х).

4. Расширить множество 9! до множества ОТ = {х ^, х0, х1.....х+оо}, где х^ и х -

такие числа, что х < хп < х, < ... < х , < х < х, .

' -¥ 0 1 П-1 П +¥

5. Формула 3х{Ф(х)} истинна, если и только если Ф(х-¥) V Ф(х0) V ... V Ф(хп) V Ф(х+^). Формула "х{Ф(х)} истинна, если и только если Ф(х_^) & Ф(х0) &... v& Ф(хп) & Ф(х+¥).

дет определяться тем, какое из трех условий Г(х) < 0, Г(х) = 0 или же Г(х) > 0 выполнено для всех достаточно больших по абсолютной величине отрицательных или, соответственно, положительных значений х.

Таким образом, таблица Тарского выглядит так (см. табл. 1).

От каждой таблицы Тарского мы будем требовать выполнения двух следующих условий:

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

• Если некоторый столбец помечен числом у, то одна из строк помечена многочленом, который отличен от тождественно нулевого многочлена и для которого у является корнем.

Из этих свойств следует, в частности, что знаки - и + не могут стоять в двух

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

Перейдем к рассмотрению 3-ей версии «алгоритма» Тарского (см. рис. 7).

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

Табл.1

х0

+ ¥

-101+ -101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

Т(х) Т((х)

«Алгоритм» Тарского (3-я версия) для Ох{Ф(х)}

1. Составить список Р1(х), ..., Рк(х) всех многочленов, входящих в Ф(х) и отличных от тождественного нуля.

2. Добавить многочлен Р0(х) = (Р1(х) • ... • Рк(х))'.

3. Построить таблицу Тарского для многочленов Р0(х), Р1(х), ..., Рк(х).

4. Вычислить логичекие значения Ф(х,) для каждого столбца таблицы, пользуясь только содержимым таблицы:

-¥ х0 ... х, ... хп +¥

Р0(х)

Pi(x)

Рк(х) Ф(х)

5. Формула $х{Ф(х)} истинна, если и только если хотя бы одно из этих значений истинно; формула "х{Ф(х)} истинна, если и только если все эти значения истинны.

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

и/л и/л

и/л

и/л и/л

Рис. 7

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

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

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

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

Далее, полунасыщенная система многочленов называется насыщенной, если для любых двух её многочленов T^x) и Tk(x), таких что 0 < degTi(x) < degTk(x), в систему входит и остаток от деления Tk(x) на Ti(x), то есть многочлен R(x) такой, что его степень строго меньше степени многочлена Ti(x) и существует многочлен S(x) такой, что

Tk(x) = S(x)T(x) + R(x). (6)

Остаток от деления многочлена на многочлен легко находится с помощью

«деления столбиком», аналогичного изучаемому в школе методу деления целых чисел.

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

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

Начало построения тривиально. Если первые к многочленов являются константами, тогда сокращённая таблица Тарс-кого для них имеет только два столбца, помеченных символами -¥ и +¥, и эти столбцы легко заполняются.

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

Но как заполнить клетку, стоящую не в крайнем столбце? Вспомним, что он может быть помечен некоторым не известным нам корнем х. какого-то многочлена Г(х). Поскольку система насыщена, она содержит и остаток В(х) от деления Тк(х) на ТГ(х), то есть выполнено (6) для некоторого многочлена 5(х). Подсталяя в (6) х. на место х, мы видим, что Г,(х) = Л(х-), так что нам достаточно скопировать в пос-

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

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

Предположим, что в нижней строке в соседних клетках оказались знаки - и +. В этом случае мы кричим «Эврика!» и добавляем новый столбец, разделяя эти клетки. В нижнюю клетку нового столбца мы вписываем 0, но как заполнить остальные клетки нового столбца?

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

Предположим, что слева от некоторой пустой пока клетки стоит клетка со знаком +. Легко понять, что тогда и в эту пока пустую клетку мы должны также поместить знак +, поскольку корни всех «старых» многочленов уже были представлены в таблице. Аналогично, если слева от пустой клетки стоит знак -, мы копируем его. Если же слева от пустой клетки находится клетка со знаком 0, то мы можем посмотреть на клетку, соседнюю справа. Если там знак - или +, то мы копируем его, но что делать, если в обеих соседних клетках стоят нули? Как было отмечено ранее, такое возможно, лишь если эта строка была помечена тождественно нулевым многочленом, и мы, соответственно, вписываем также 0.

Табл. 2 ... х,-

+ ¥

ад

Л(х)

Т(х) Тк-1 (х)

ад

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

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

Корни многочлена Тк(х) могут быть простыми или кратными. Кратный корень является также корнем производной Тк(х) и потому уже представлен каким-то столбцом. Пусть у - простой корень, то есть Тк(у) = 0, но Тк(у)' Ф 0. Рассмотрим случай Тк(у)' > 0 (случай Тк(у)' < 0 аналогичен). Если у не является корнем ни одного из многочленов Т1(х), ..., Тк-1(х), то пусть х - максимум тех из этих корней, которые не превосходят у (если таких корней нет, то по определению этот максимум есть -¥). Аналогично пусть х - минимум тех корней, которые превосходят у (если таких корней нет, то по определению этот минимум есть +<»). Нетрудно понять, что Тк(х)' > 0 при х е (х , х), столбцы, соответствующие х и х, являются соседними, и их нижние клетки содержат, соответственно,

- и +. Таким образом, описанная выше процедура действительно выявит все требуемые новые столбцы.

Теперь мы наконец можем убрать кавычки вслове «алгоритм» (см. рис. 8).

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

В качестве примера рассмотрим формулу

Зх{ях2 + Ьх + с = 0}. (7)

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

Алгоритм Тарского для £х{Ф(х)}

1. Составить список Р1(х), ..., Рк(х) всех многочленов, входящих в Ф(х) и отличных от тождественного нуля.

2. Добавить многочлен Р0(х) = (Р1(х) • ... • Рк(х))'.

3. Расширить этот список до насыщенной системы многочленов Т1(х), ..., Тт(х) с

^^(Т^х)) < ... < deg(T¡-l(x)) < deg(T¡(x)) < ... < deg(Tm(x))•

4. Последовательно построить сокращенные таблицы Тарского для многочленов Т1(х), Т2(х), ..., Т(х), г = 0, 1, 2, ..., т.

5. Вычислить логичекие значения Ф(х) для каждого столбца последней таблицы:

+ ¥

Т1(х)

-101+

Тт(х) -101 + Ф(х)

-101+

-101+

-101+

-101+

-101+

-101+

-101+

-101+

и/л и/л

и/л

и/л и/л

6. Формула $х{Ф(х)} истинна, если и только если хотя бы одно из этих значений истинно; формула "х{Ф(х)} истинна, если и только если все эти значения истинны.

Рис. 8

истинна или ложна одновременно с (7):

((а Ф 0 & Ь2 - 4ас > 0) V V (а =0 & (Ь Ф 0 V с = 0))). (8)

Переход от (7) к (8) называется эли-линацием (устранениел) квантора.

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

Пусть имеется формула вида

0х{Ф(а1, ..., ат, х)} (9)

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

Давайте попробуем применить к формуле (9) алгоритм Тарского.

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

получить бескванторную формулу, эквивалентную формуле (9), нам остаётся выбрать все ветви, где ответом является ИСТИНА, конъюнктивно объединить все предположения, сделанные вдоль каждой такой ветви, и затем дизъюнктивно объединить получившиеся конъюнкции.

Теперь можно описать применение алгоритма Тарского к произвольной замкнутой формуле Ч* языка Л. Если в ней есть кванторы, то выберем среди них один такой, в области действия которого нет других кванторов. С этого квантора начинается некоторая формула вида (9). Заменив в ¥ эту формулу на эквивалентную ей бескванторную формулу, мы получим формулу, эквивалентную формуле но имеющую на один квантор меньше. Продолжая этот процесс, мы получим в конце концов формулу без переменных, установление истинности или ложности которой сводится к простому вычислению.

Описанную выше версию алгоритма Тарского запрограммировать несложно, однако даже для простых формул программа будет работать очень долго и требовать огромной памяти. Тот же недостаток имел и первоначальный вариант, предложенный самим Тарским - время работы алгоритма нельзя было ограничить никакой башней экспонент от длины формулы. С тех пор многие исследователи улучшали алгоритм, в частности, Г.Е. Коллинз предложил алгоритм, основанный на цилиндрическом алгебраическом деколмозиции (су/гм^ггса/ а/^ейгаг'с ¿есогарои'И'ом), время работы которого ограничено двойной эк-спонентой. Прогресс достигнут за счёт того, что при элиминации кванторов строится эквивалентная бескванторная формула в языке более широком, чем наш язык Д. К сожалению, существенного дальнейшего улучшения в общем случае ожидать не приходится - было доказано, что любом алгоритм будет работать дважды экспоненциальное время на некоторых «плохих» формулах. Тем не менее, построение цилиндрической алгебраической декомпозиции реализовано в ряде систем компьютерной алгебры и с успехом применяется к конкретным формулам.

Литература

1. A.Tarski. A decision method for elementary algebra and geometry} Santa Monica CA: RAND Corp., 1948.

2. http://en.wikipedia.org/wiki/Tarski

3. http://ru.wikipedia.org/wiki/Tарский,_Альфред

4. http://en.wikipedia.org/wiki/Quantifier_elimination

5. http://en.wikipedia.org/wikiiTarski's_axioms

6. http://plus.maths.org/issue23/features/kissing/index.html

Выдающийся математический логик Альфред Тарский родился в 1901 году в Варшаве.

Алгоритм для установления истинности замкнутых формул с вещественными переменными он придумал в начале 30-х годов, но первоначально этот результат был сформулирован в других терминах. В 1931 другой великий математический логик Курт Гёдель опубликовал революционную работу, в которой показал, что в формальной арифметике могут быть верные, но недоказуемые утверждения. Результат Тарского был в некотором смысле противоположным: он показал, что если все переменные принимают вещественные значения (а не целочисленные как у Гёделя), то можно построить полную систему аксиом - какова бы ни была замкнутая формула, из этих аксиом можно вывести либо саму формулу, либо её отрицание. Отсюда, конечно, получается такой алгоритм: будем выводить из аксиом всевозможные следствия и ждать, пока не выведется либо интересующая нас формула (и тогда она истинна), либо её отрицание (и тогда наша формула является ложной).

Прошло очень много времени, прежде чем результат был опубликован. В 1939 году Тарский был вынужден эмигрировать в США, но и там из-за наступившей войны не смог сразу напечатать свой замечательный алгоритм. Тарский сделал это только в 1948 году, причем в виде отдельной книги - столь сложным был первоначальный вариант алгоритма.

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

Abstract

Tarski's algorithm allows us to determine whether a given statement about a finite set of real numbers is true of false. Together with the Cartesian coordinate system, it allows us to prove automatically a large class of theorems of elementary geometry.

The version of the algorithm presented here is suitable for introduction to the subject it is not difficult to understand the algorithm, it is easy to write a program, but it would be extremely inefficient.

Матиясевич Юрий Владимирович, академик РАН,

зав. лабораторией математической логики ПОМИ РАН

http://logic.pdmi.ras.ru/~yumat

© Наши авторы, 2008. Our authors, 2008.

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