ЭФФЕКТИВНЫЙ АЛГОРИТМ ОПРЕДЕЛЕНИЯ ИСТИННОСТИ УТВЕРЖДЕНИЙ О ДЕЙСТВИТЕЛЬНЫХ ЧИСЛАХ В СИГНАТУРЕ ОТНОШЕНИЙ ПОРЯДКА
Коварцев А Н.
Самарский государственный аэрокосмический университет имени академика С.П. Королёва (национальный исследовательский университет) (СГАУ)
Аннотация
В статье предлагается новый эффективный алгоритм определения истинности утверждений о действительных числах в сигнатуре отношений порядка. В отличие от известного алгоритма А. Тарского, предложенный алгоритм сводит переборную задачу проверки истинности любого утверждения о вещественных числах к оптимизационной задаче. В новой версии алгоритма могут использоваться не только алгебраические, но и трансцендентные функции.
Ключевые слова: разрешимость предиката, теорема Тарского, замкнутая формула, доказательство истинности, глобальная оптимизация, сложность алгоритмов.
Введение
Многие практические приложения теоретической информатики могут быть сформулированы в виде некоторого утверждения Р(х1, ..., хп), которое, в зависимости от значений набора переменных, выдаёт результативный ответ (И или Л). Естественно, что на содержательном уровне нас интересует не сама постановка задачи как таковая, а существование алгоритма, устанавливающего истинность предиката Р, т.е. проблема разрешимости предиката [2].
Имеется множество примеров разрешимости формальных систем [2]. В частности, алгоритмически разрешима проблема проверки истинности любого утверждения про конечное число вещественных чисел с отношениями равенства и порядка [3]. Как известно, первый такой алгоритм предложил А. Тар-ский в 1948 году. Однако алгоритм Тарского оказался настолько неэффективным, что практически воспользоваться им невозможно.
В данной работе предлагается новый, более эффективный алгоритм проверки истинности утверждений, заданных на множестве действительных чисел в сигнатуре отношений порядка, сводящийся к решению оптимизационной задачи.
Следует отметить, что под эффективностью здесь понимается не достижение полиномиальной сложности алгоритма, а возможность его практического использования для решения широкого круга прикладных задач. Естественно, что сложность такого алгоритма должна быть меньше экспоненциальной.
В качестве практически значимого примера использования предложенного алгоритма можно привести широкий круг задач, связанных с верификацией вычислительных программ, т. е. программ, реализующих вычислительные методы.
1. Постановка задачи
Рассмотрим утверждения исчисления предикатов первого порядка с сигнатурой, включающей отношения порядка. Более точно рассмотрим сигнатуру, содержащую предикаты =, £, <, >, >, Ф , арифметические операции и аналитические функции над действительными числами. Предикаты и операции пони-
маются естественным образом. В этом случае произвольный предикат можно представить в виде:
P (X) ° f( X ) е 0, (1)
где е - любое из перечисленных выше отношений порядка, f(X - аналитическая функция (алгебраическая или трансцендентная или их комбинация), X = (x1, ..., xn)' - переменные предиката.
Поставим задачу разработки эффективного алгоритма определения истинности замкнутой формулы, т.е. формулы, не имеющей свободных параметров. Например, аксиомы порядка:
"x "y (((x < y) л (y < x)) ® (x = y)).
2. «Решающая» функция
Каждому предикату (1) можно поставить в соответствие множество вида:
Mq= {X| f(X)е0}.
В качестве базисных отношений порядка выберем отношения < и <. Очевидно, что через базисные отношения можно выразить все остальные отношения порядка:
P> = P<, P = P<, P= = P<л P<, P = P<v P<.
Введём функцию f (X) = - f(X) и через неё определим дополнение базисных множеств соответствующих базисных отношений:
M< = {X | f(X) < 0} и M< = {X | f(X) < 0}.
Между логическими операциями над предикатами и теоретико-множественными операциями над множествами существует очевидная связь:
P(X) ^ {X | f(X) < 0} = {X | f(X) < 0} {X | f(X) < 0} = {X|f(X) < 0},
или
P(X) л Q(X){X | fp(X) < 0}р {X | fQ(X) < 0},
P(X) v Q(X) {X | fp(X) < 0}U {X | fQ(X) < 0}.
Для описания логических операций над предикатами введём «решающую» функцию Р(X) [1]. Для этого первоначально определим «индикаторные» функции следующим образом: 1) для отношения <
Р£ ( X) =
1 если/7(X) > 0,
(2)
Р< (X) =
(3)
[0 если/7(X) < 0; 2) для отношения <
[1 если/7 (X) > 0, |0 если/7(X) <0.
Тогда для логической операции конъюнкции «решающую» функцию можно определить следующим образом:
РЛ (X) = (рр /Р + р0 /д)/ (рр + р0 + рРр0) +
+ ррр0 (/р + /д )/2.
В формуле (7) подразумевается, что индикаторные функции (5) - (6) и функции /р и /д зависят от X.
«Решающую» функцию для операции дизъюнкции определим так:
(4)
Р, ( X) = (рр /р + рд /д )/ (рр + рд + рррд ) +
(5)
+ ррр0 ( /р + /д )/2.
«Решающая» функция атомарных формул, использующих базисные отношения (р< (X) ° /(X) < 0 или р< (X) ° /(X) < 0), определяется простым выражением:
Р (X) = / (X).
Тогда решающую функцию для операции отрицания можно определить следующим образом: р = р> ф (X) < 0, откуда Р(X) = - /(X). Аналогично для отношения строгого порядка <:
р< = р> ° ф (X) < 0, и в результате Р(^ = - /(X).
Далее нам потребуется понятие интерпретации формулы. Определим это понятие так, как это сделано в работе [2].
Оценкой р назовём отображение, которое ставит в соответствие каждой индивидуальной переменной некоторый элемент множества, являющийся носителем интерпретации. Этот элемент будем называть значением переменной при данной оценке и обозначать [х](р). Значение атомарной формулы р(хь ..., хп) определим как [р]([х1](я), ..., [хп](р)). Для логических операций справедливо:
[р (р)=[ркп),
[р Л 0|(р) = [р](п) Л [0|(р),
[рV 0](п) = [р](я) V [0](п),
где р и д - формулы.
Очевидно, что атомарные формулы р< (X) (или р< (X)) истинны для тех оценок интерпретации переменных, для которых «решающая» функция Р (X) < 0 (или <) 0.
Теорема 1. Формула Р л Q, связывающая предикаты, использующие базисные отношения, истинна тогда и только тогда и для тех оценок интерпретации переменных формулы, для которых «решающая» функция (4) меньше или равна нулю.
Доказательство. Несложно показать, что для логической операции конъюнкции, если хотя бы один из предикатов использует отношение <, то р л д ^1X1 Р(X) < 0}. В противном случае р л Q<^>{XР(X> < 0}. Пусть р ^1X1 /^ < 0}, а О ^ | /д (X) < 0}.
«Решающая» функция (4) по построению предполагает четыре варианта интерпретации переменных:
1) [А](л1): р(^) = 1, О(Л) = 0. Из чего следует, что рр = 0, р^ = 1, но тогда РЛ (X) = /д. Из чего следует, что для оценки р РЛ (X) > 0.
2) [А](я2): р(X) = 0, ^Л) = 1. Для этой оценки рр = 1, р^ = 0 и РЛ (X) = /р. Из чего следует, что для оценки я2 РЛ (X) > 0.
3) [А](л3): р(X) = 0, О(^) = 0. Для этой оценки рр = 1, р^ = 1 и РЛ (X) = (/р + /д)/2, но поскольку /р> 0 и /ч> 0, то для оценки р3 справедливо
РЛ (X) > 0.
4) И наконец, существует оценка [А](я4): р(X) = 1, д (X) = 1, для которой рр = 0, р^ = 0. В этом случае РЛ (X) = (/р + /д) /2, но поскольку /р < 0 и /ч < 0, то для оценки я4 РЛ (X) < 0.
Но тогда справедливо рл О ^{X|Р(X) < 0}.
Верно и обратное. Пусть для оценки [А](я4) выполняется условие РЛ (X) < 0. Учитывая структуру формулы (4), такая ситуация возможна, если у «решающей» функции используется второе слагаемое, т.е. РЛ(X) = рррд(/р + /д)/2 , но это возможно, когда
рр = 0, р д = 0, откуда следует, что р(X) = 1, ^(А) = 1. Аналогично доказываются и остальные случаи оценок интерпретаций переменных.
Для формул, использующих логическую связку «ИЛИ», можно сформулировать следующую теорему. Приведем её без доказательства.
Теорема 2. Формула Pv д, связывающая предикаты, использующие базисные отношения, истинна тогда и только тогда и для тех оценок интерпретации переменных формулы, для которых «решающая» функция (5) меньше или равна нулю.
Замечание. Для решающей функции Р,(X) следует использовать отношение порядка <, если хотя бы один из предикатов содержит это отношение.
Остальные логические связки можно выразить через логические операции «И», «ИЛИ», «НЕ». Таким образом, для произвольной формулы рекурсивно можно поставить в соответствие «решающую» Рф (X) функцию, а следовательно, задачу проверки условия:
ф ° (Рф (X) < (или <) 0).
3. Алгоритм проверки истинности утверждений
Зададимся вопросом, что же нам даёт «решающая» функция? Применительно к задаче проверки истинности формул для случая, когда носителем интерпретации выступает конечное множество, алгоритм достаточно прост. Можно построить таблицу истинности формулы (на конечном множестве оценок) и этим закрыть проблему. В случае, когда носителем выступают действительные числа, задача значительно осложняется, поскольку число оценок становится бесконечным и область переменных формулы «раскрашивается» в чёрно-белые тона (И или Л). Кроме того, зная значение интерпретации формулы для какой-либо оценки (например, Л), мы не можем знать, в каком направлении изменения переменных следует искать истинную оценку интерпретации переменных.
«Решающая» функция в пространстве переменных предиката устанавливает порядок (рис. 1), в связи с чем появляется возможность организации поиска таких сочетаний переменных Р(Х), для которых она принимает отрицательные значения. Для этого достаточно поставить задачу поиска глобального минимума «решающей» функции:
X* = arg min F( X).
-4 -3
Рис. 1. Общий вид «решающей» функции
Для формулы ф, имеющей одно свободное вхождение переменной x, проверка её истинности эквивалентна оценке истинности формулы 3 xFf (x), которая, в свою очередь, однозначно связана с проверкой условия
Ff (arg min Ff (x))) < 0, (6)
т.е. решением задачи глобальной оптимизации (6) для соответствующей «решающей» функции.
Обобщая полученные результаты, несложно построить алгоритм проверки истинности утверждений о действительных числах в сигнатуре отношений порядка.
1. Предварительно исходную замкнутую формулу необходимо привести к эквивалентной ей предварённой (пренексной) нормальной форме [2]:
ф° Ki X1...K nxnM(Xi,..., xn), (7)
где K e{V,3}. Этого несложно добиться за счёт продвижения знака отрицания до атома, переименования
переменных и вынесения кванторов в левую часть формулы [2]. При этом мы предполагаем, что в бескванторной части формулы используются только логические связки «И», «ИЛИ», «НЕ».
2. Для бескванторной части формулы построим «решающую» функцию ^М(Х).
3. Последовательно, шаг за шагом будем избавляться от связанных переменных в формуле (7), организовав рекурсивный процесс решения оптимизационных задач:
f = K BxBM (Ai,..., Xn ),
fn-i = K n-1An-1 fB (X^lX
f = Kl Al f2(Xi).
(8)
Для каждой из задач (8) фп = K¿ xiфт (аь ..., x) строится «решающая» функция Ffi (аь ..., а) и ищется её глобальный минимум. Причём если K¿ = 3, то F (xj,...,ам) = minfi+1(x1,...,x¡). В случае, если
Ai
K¿ = V, то предварительно производится эквивалентное преобразование Vxф = 3х ф и задача сводится к предыдущему случаю.
4. Примеры
Алгоритм Тарского [3] позволяет установить истинность или ложность утверждений в элементарной теории действительных чисел с операциями сложения и умножения, т.е. для предикатов, использующих алгебраические функции. Рассмотрим, как работает наш алгоритм для предикатов, содержащих тригонометрические функции.
Пример 1. Проверка формулы Vx3y(sin х = y).
Прежде всего, преобразуем бескванторную часть формулы к нормализованному виду
M(x.y) = (sin x = y) ° (sin x- y = 0) °
° (sin x- y < 0) л (sin x- y < 0) ° ° (y - sin x < 0) л (sin x - y < 0).
Для (7) построим «решающую» функцию, положив 9 = y - sin x и f= sin x - y, тогда в соответствии с (4) имеем
Fm (x, y) = (ßq9 + ß ff )/(ßq+ß f + ßqß f ) + + ßqß f (9+ f) /2.
На первом шаге свернём переменную у.
fi (x) = $y (Fm (x, y) < 0) ° (min Fm(x, y) < 0).
y
Следующим шагом свернём переменную x
(9)
f = "x (min FM (x, y) < 0) ° $x (min FM (x, y) < 0) °
y y
° $x (- min FM (x, y) < 0) ° min(max FM (x, y)) < 0) °
x y
° min(max FM(x, y)) > 0.
В результате задача проверки истинности замкнутой формулы свелась к оптимизационной задаче и проверке условия
(min max FM (x, y) > 0).
x y
Вычислительные эксперименты показали, что при изменении переменной xе [-3;3] функция
F1(x) = max FM (x, y) ° 0 , следовательно, исходная
y
формула верна, по крайней мере, в рассматриваемом диапазоне изменения переменной x.
Пример 2. Проверка невыполнимой формулы "y3x (sin x=y).
Для данной формулы мы имеем аналогичную предыдущему случаю «решающую» функцию (9). На первом шаге свернём переменную x
fi(y) = 3x ( Fm (x, y) < 0) ° (min Fm (x, y) < 0).
x
Следующим шагом свернём переменную y.
ф = "y (min Fm (x, y) < 0) ° 3 y (min Fm (x, y) < 0) °
° $У (- min FM (x, y) < 0) ° min (max Fu (x, y)) < 0) °
x y x
° min (max Fu (x, y)) > 0.
yxu
Для этого примера функция Fi(y) = maxFu(x,y)
x
показана на рис. 2.
-0,5
-1,0
F¡
-2-10 1 у
Рис. 2. График «решающей» функции F1(y)
Из рисунка видно, что min F1(y), по крайней ме-
y
ре, меньше -0,5, следовательно, исходная формула невыполнима.
Заключение
Кратко обсудим полученные результаты.
1. Предложенный выше алгоритм, основанный на использовании «решающей» функции, позволил свести фактически переборную задачу проверки истинности любого утверждения о вещественных числах к оптимизационной задаче. Причём в новой версии алгоритма могут использоваться не только алгебраические, но и трансцендентные функции.
2. Универсальный алгоритм Тарского оказался чрезвычайно неэффективным. Было доказано [3], что
алгоритм Тарского будет работать дважды экспоненциальное время на некоторых «плохих» формулах в зависимости от их длины. Предлагаемый алгоритм, сводящийся к решению задачи глобальной оптимизации, в общем случае также имеет экспоненциальный характер роста его сложности [4], но уже в зависимости от числа оптимизируемых переменных. Размер формулы в этом случае не играет роли.
Кроме того, с точки зрения нахождения приближенного решения оптимизационные задачи имеют более стройные схемы их классификации, чем обычная теория ЛР-полноты. Дело в том, что практическая сложность реализации алгоритмов глобальной оптимизации во многом определяется свойствами оптимизируемой функции.
Например, для класса унимодальных гладких функций алгоритмы оптимизации сходятся к решению за полиномиальное время. В приведённом примере, использующем тригонометрическую функцию, как видно из рис. 1, «решающая» функция имеет множество равнозначных глобальных минимумов, расположенных на дне извилистого оврага. Очевидно, что нахождение любого из них не займёт много времени.
Более того, оптимизационные алгоритмы существенно снижают свою трудоёмкость (вплоть до полиномиального случая) при отказе от поиска точного решения. Известны многочисленные примеры приближённых алгоритмов оптимизации [6], решающих задачу оптимизации за полиномиальное время, к ним же относятся и рандомизированные алгоритмы. В нашем случае в задачах опровержения формулы (пример 2) достаточно найти любое, пусть даже приближённое решение меньше нуля.
3. Предложенный алгоритм имеет вариант практического использования, например, при проверке корректности графа управления сложного программного обеспечения (ПО), в той части, которая связана с проверкой логических выражений, управляющих вычислительным процессом. Такая задача актуальна в процессе тестирования и отладки ПО управления космическими объектами [5].
Благодарности
Работа выполнена при государственной поддержке Министерства образования и науки РФ в рамках реализации мероприятия Программы повышения конкурентоспособности СГАУ среди ведущих мировых научно-образовательных центров на 2013-2020 годы.
Литература
1. Коварцев, А.Н. Автоматизация разработки и тестирования программных средств / А.Н. Коварцев. - Самара: Самарский государственный аэрокосмический университет, 1999. - 150 с.
2. Верещагин, Н.К. Языки и исчисления / Н.К. Верещагин, А. Шень. - М.: МЦНМО, 2012. - 240 с.
3. Матиясевич, Ю.В. Алгоритм Тарского / Ю.В. Матия-севич // Компьютерные инструменты в образовании. -2008. - № 6. - С. 4-14.
4. Коварцев, А.Н. К вопросу об эффективности параллельных алгоритмов глобальной оптимизации функций многих переменных / А.Н. Коварцев, Д.А. Попова-Коварцева // Компьютерная оптика. - 2011. - Т. 35, № 2. - С. 256-261.
5. Мостовой, Я.А. Имитационная математическая модель внешней среды в жизненном цикле бортового программного обеспечения управления космической платформой / Я.А. Мостовой // Компьютерная оптика. - 2012. - Т. 36, № 3. - С. 412-418.
6. Vazirani, Vijay V. Approximation Algorithms // Vijay V. Va-zirani. - Berlin: Springer, 2003. - 375 p.
References
1. Kovartsev, A.N. Automating the development and testing of software / A.N. Kovartsev. - Samara: "SSAU" Publisher, 1999. - 150 p. - (In Russian).
2. Vereshchagin, N.K Languages and calculus / N.K. Vereshchagin, A. Shen. - Moscow: "MCCME_PUBL", - 2012. - 240 p. - (In Russian).
3. Matiyasevich, Y. Tarski algorithm / Y. Matiyasevich // Computer Tools in Education. - 2008. - Vol. 6. - P. 4-14. -(In Russian).
4. Kovartsev, A.N On efficiently of parallel algorithms for global optimization of functions of several variables / A.N. Kovartsev, D.A. Popova-Kovartseva // Computer Optics. - 2011. - Vol. 35(2). - P. 256-261. - (In Russian).
5. Mostovoi, J.A. Simulation mathematical model of the external ambience in life cycle of on-board software of management cosmic platform / J.A. Mostovoi // Computer Optics. - 2012. - V. 36(3). - P. 412-418.
6. Vazirani, Vijay V. Approximation Algorithms // Vijay V. Vazirani. - Berlin: Springer, 2003. - 375 p.
AN EFFICIENT ALGORITHM FOR TESTING THE TRUTH OF ASSERTIONS FOR REAL NUMBERS EXPRESSED IN RELATIONAL SIGNATURES
A.N. Kovartsev Samara State Aerospace University
Abstract
In this paper a new efficient algorithm is proposed for testing the truth of assertions for real numbers expressed in relational signatures. In contrast to the well known Tarski algorithm, the proposed algorithm reduces the search problem of checking the truth of any assertion for real numbers to the optimization problem. The new version of the algorithm can be used for algebraic and transcendental functions.
Key words: predicate derivation, Tarski theorem, closed formula, the proof of the truth, global optimization, algorithm complexity.
Сведения об авторе
Коварцев Александр Николаевич, 1952 года рождения. В 1975 году окончил Куйбышевский авиационный институт (ныне - Самарский государственный аэрокосмический университет имени академика С.П. Королёва) по специальности «Прикладная математика». Доктор технических наук (2000 год), профессор, работает заведующим кафедрой программных систем СГАУ. Директор школы информатики СГАУ. А.Н. Коварцев -специалист в области автоматизации проектирования, разработки и тестирования сложных программных средств; надёжности программного обеспечения; моделирования параллельных вычислений и глобальной оптимизации. Имеет более 90 научных публикаций.
Alexandr Kovartsev (b. 1952) graduated with honours (1975) from S. P. Korolyov Kuibyshev Aviation Institute (presently, S. P. Korolyov Samara State Aerospace University (SSAU)), majoring in Applied Mathematics. He received his Doctor of Engineering (2000) degrees from Samara State Aerospace University. Professor, chair of SSAU's sub-department software systems SSAU. Director of the School of Computer SSAU. His current research interests include computer-aided design, development and testing of complex software; simulation of parallel computing and global optimization. He has more than 90 scientific publications.
Поступила в редакцию 13 мая 2014 г.