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

иркутским государственный университет путей сообщения

тически обусловлена электронной конфигурацией атомов [10].

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

БИБЛИОГРАФИЯ

1. Кузнецов В. И. Общая химия. Тенденции развития. М. : Высш. шк., 1989. 288 с.

2. Потапов А. А. Концептуальные основы проектирования наносистем // Нано- и микросистемная техника. 2008. № 7. С. 2-7.

3. Потапов А. А. Научные основы нанотехноло-гии // Нанотехника. 2009. № 1. С. 8-26.

4. Потапов А. А. Периодическая система элементов // Доклады независимых авторов. [Россия -Израиль], 2008. Вып. 10. С. 240-262.

5. Потапов А. А. Деформационная поляризация: поиск оптимальных моделей. Новосибирск : Наука. Сиб. отд-ние, 2004. 511 с.

6. Потапов А. А. Оболочечная модель атомов и периодическая система элементов // Вестн. ИрГТУ. 2006. № 3. С. 109-115.

7. Потапов А. А. Динамическая диполь -оболочечная модель атома // Оптимизация, управление, интеллект. 2007. № 1 (13). С. 8495.

8. Волков А. И. Строение атомов и периодический закон. М. : Новое знание, 2006. 196 с.

9. Потапов А. А. Атом: ключ к созданию основ нанотехнологии // Нано- и микросистемная техника. 2009. № 1. С. 2-7.

10. Потапов А. А. Стратегия становления нано-технологии // Нано- и микросистемная техника. 2009. № 6. (В печати)._

Семенов А. А., Отпущенников И. В., Кочемазов С. Е. УДК 519.7

ПРОПОЗИЦИОНАЛЬНЫЙ ПОДХОД В ЗАДАЧАХ ТЕСТИРОВАНИЯ ДИСКРЕТНЫХ АВТОМАТОВ

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

Основополагающей в рассматриваемом далее подходе является идея представления алгоритмов, реализованных в языке некоторой вычислительной модели, в виде систем логических (булевых) уравнений. Данная идея впервые была высказана С.А. Куком в его работе [2]. Отметим, что на тот момент данный факт имел скорее «негативную» трактовку, поскольку означал возможность решать за полиномиальное время очень обширный класс задач при условии наличия полиномиального алгоритма для одной конкретной задачи (задача о пропозициональной выполнимости, известная также как «SAT»). Все сказанное привело к воз-

никновению и бурному развитию структурной теории сложности алгоритмов.

Тем не менее, с течением времени и с ростом мощности вычислительной базы появилось устойчивое понимание возможности эффективного решения комбинаторных задач весьма существенных размерностей (в том числе и NP-трудных) без гарантий наличия для таких задач полиномиальных в общем случае алгоритмов. Весомым подтверждением данного тезиса можно считать относительно недавние успешные результаты по криптоанализу ряда систем поточного шифрования с использованием так называемого «SAT-подхода» (см. [3-5]).

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

верификации дискретных управляющих систем, заданных схемами из функциональных элементов (см., например, [9]).

В работах [10-12] была развита техника пропозиционального кодирования алгоритмов, вычисляющих дискретные функции из весьма широкого класса 3 (достаточно сказать, что в данный класс попадает большая часть известных систем шифрования). Подробное доказательство основных результатов, дающих базу для построения программных трансляторов алгоритмов в логические выражения, приведено в работе [13]. Особенность подхода [13] состоит в том, что в качестве модели вычислительного устройства рассматривается двоичный вариант машины с неограниченными регистрами (МНР) в формализме Н. Катлента (см. [14]). Этот факт дает возможность естественным образом описать технику пропозиционального кодирования алгоритмов, реализованных в высокоуровневых языках программирования.

План статьи следующий. В первом пункте приведены основные результаты работы [13]. Во втором пункте на базе этих результатов описывается общий подход к решению проблем установления ряда свойств недетерминированных конечных автоматов. В заключительном пункте очень кратко выделены некоторые особенности SAT-задач, к которым эффективно сводятся исходные задачи тестирования дискретных автоматов. Учет этих особенностей в ряде случаев позволяет значительно сузить пространство перебора.

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

функций. Через {0,l}n, n е N, далее обозначается множество, образованное всевозможными двоичными последовательностями длины n;

{0, l} = ^ {0, l}n . Переменные, которые принимают значения в множестве {0, l}, называются булевыми. Рассматриваем дискретные функции вида fn : {0, l}n ^{0,1}*. Через Dom/, e{0,l}n и

Ran fn с {0, l }* обозначаются соответственно область определения и область значений функции fn (см. [14]). Если Domfn = {0, l}n, то функция fn называется всюду определенной или кратко «тотальной» (см. [14]). Если Ran fn е {0, l}, то функция f называется булевой. Если существует программа My для машины Тьюринга с входным алфавитом Е = {0, l} (см. [15]), которая вычисляет

любую функцию натурального семейства f = {f }„6n , то говорим, что данное семейство образовано алгоритмически вычислимыми дискретными функциями. Пусть f - натуральное семейство, образованное тотальными алгоритмически вычислимыми дискретными функциями. Под временной сложностью семейства f (в соответствии, например, с [15]) понимаем функцию, которая ставит в соответствие каждому n е N наибольшее число шагов программы My по всем входным

словам из {0, l}n .

Определение 1 (см. [11]). Класс 3 - это класс, образованный всевозможными натуральными семействами тотальных дискретных функций, которые алгоритмически вычислимы за полиномиальное время. Задача обращения произвольной функции fn е f, f е3, ставится следующим образом: по известному y е Ran fn с {0, l}* найти такой

х е Dom fn = {0,l}n, что fn (x) = y .

Пусть b(xx,...,х„)- произвольная формула алгебры логики над множеством булевых переменных X = {х1,..., xn }. Если a = (a1,...,an ), аг е {0, l}, i e{l,...,n} - произвольный вектор из

{0,l}n, то запись Цxí,...,xn)\(ai,...fin)=Р, ^{(Ub означает, что булева функция, задаваемая формулой L(xlv.., xn ), при подстановке xl =ах,..., xn =an принимает значение 3 . Логическими (булевыми) уравнениями называются выражения вида

L(xu...x) = 3, 3 е {0, l}.

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

{0, l}n, для которого L(xx,...,xn) \а= 3. Если такого вектора не существует, то говорят, что данное уравнение не имеет решений (в отношении не имеющих решений систем логических уравнений используется термин «несовместность»).

Детерминированная машина Тьюринга

иркутский государственный университет путей сообщения

«с поправкой» на двоичный характер входных данных.

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

команды записи в ячейку с номером к бита «0» или бита «1», соответственно, Б0 (к) и Б (к);

команды условного перехода J

Следующая теорема, приведенная в [13], представляет собой достаточно типичный (см., например, [16]) результат о полиномиальном моделировании одной формальной вычислительной модели посредством другой.

Теорема 1. Пусть Tf - это ДМТ-про-

грамма, вычисляющая произвольное семейство функций f еЗ. Существует алгоритмически вычислимая тотальная функция g, которая, получая на входе число n е N и текст программы Tf,

в общем случае за полиномиальное от n время выдает текст МНР-программы Rf , вычисляющей функцию fn е f. Сложность семейства программ R } при этом ограничивается некоторым полиномом от n.

Далее приводится аналог теоремы С.А. Кука в контексте проблемы обращения дискретных функций из класса З .

Теорема 2. Пусть |Rf ) - семейство бинарных МНР-программ, сопоставляемое семейству функций f = {fn }eN, f е З, в соответствии с теоремой 1. Существует алгоритмически вычислимая тотальная функция h, которая, получая на входе текст программы R , за полиномиальное в

общем случае от n время строит такую систему логических уравнений S(fn ), что для произвольного y е Ran fn система S(fn) | совместна и из

произвольного ее решения можно эффективно (за полиномиальное от n время) выделить некоторый прообраз y при отображении fn.

Подробное доказательство данной теоремы приведено в [13] и является довольно сложным в техническом плане. Остановимся лишь на ключевых моментах, которые потребуются для обоснования последующих результатов.

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

Рассматриваем бинарную МНР-программу Я^ , вычисляющую функцию /п е /, / еЗ. Каждому условному переходу, определяемому командами типа 3(к, 1, т), ставятся в соответствие три

конфигурации МНР: конфигурация К0, в которой находится машина на момент прочтения команды

3(к, 1, т), и две конфигурации К+ и К~, представляющие возможные альтернативы рассматриваемого перехода. Тем самым МНР-программа вычисления дискретной функции /п может быть представлена в виде дерева, размер которого, вообще говоря, экспоненциален от длины входа. Экспоненциального разрастания дерева можно избежать, если «свернуть» конфигурации К+ и К~ в одну конфигурацию К0 . Данная конфигурация описывается набором новых булевых переменных [у,...,ур(и)}. Если хе {0,1}п- некоторый

фиксированный вход функции /п, то программа

Я^ , прочитав х, перейдет либо в К+, либо в К~,

при этом переменные у,...,ур(п) примут значения,

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

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

К0. Сказанное позволяет каждый условный переход в Я^ описать логическим уравнением вполне

определенного вида (см. [13]). Размер двоичного описания полученной системы логических уравнений ^(/п), соответствующей программе Я^ , в

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

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

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

функций из класса 3. Задачи поиска решений систем логических уравнений, фигурирующих в формулировке и доказательстве теоремы 2 (системы £ (/п)), можно эффективно сводить к поиску решений логических уравнений вида «КНФ=1» (КНФ - конъюнктивная нормальная форма). Такого рода задачи называются «8АТ-задачами». Технология подобных сведений (см. [13]) основана на преобразованиях Цейтина (см. [17]). Для решения получаемых 8АТ-задач можно эффективно использовать информацию, которую дает исходная постановка задачи обращения функции /п е 3. Именно такой подход был применен в задачах криптоанализа некоторых генераторов ключевого потока (см. [3]). Дальнейшее развитие данный подход получил в работах [4, 18], где для решения 8АТ-задач, кодирующих задачи обращения дискретных функций из класса 3, были использованы распределенные вычислительные среды.

2. Пропозициональный подход в тестировании конечных автоматов. Результаты данного пункта являются новыми и представляют собой развитие идеи пропозиционального подхода в направлении задач «диагностики» конечных автоматов. Здесь под термином «диагностика» мы понимаем процедуры установления тех или иных свойств автоматов, а также процедуры их верификации.

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

Далее мы рассматриваем простейший класс детерминированных конечных автоматов (ДКА), основное назначение которых состоит в распознавании двоичных языков (см. [19]). Автоматы данного класса можно рассматривать как пятерки вида (б, {0,1 }, 8, д0, ^), где б - множество состояний, {0,1 } - множество входных символов, q0, Ч0 е б, - начальное состояние, ^, ^ с б, -множество допускающих состояний, 8 - функция переходов: 8: {0,1 } х б ^ б.

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

Рис. 1. Диаграмма переходов ДКА, допускающего двоичные слова, содержащие не менее двух единиц

Двойной окружностью обозначено допускающее состояние (в данном случае д2).

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

0 1

qo qo

2

* 2

q2 2

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

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

Допускающим состоянием в этом автомате является q2. Недетерминизм в данном случае означает, что, находясь в q0 и получая на входе символ «1», автомат может перейти как в q0 , так и в q1. Если автомат находится в q1 и получает на входе символ «0», то состояние перехода не определено (в терминологии [19] «автомат умирает»).

иркутским государственный университет путей сообщения

Аналогично оба перехода из 42 приводят к «умиранию» автомата. Это легко понять, если рассмотреть слово 0110 - оно не заканчивается двумя единицами, однако после прочтения 011 автомат находится в состоянии 42. В отличие от ДКА, который допускает слово х = ,...,хи) тогда и только тогда, когда после прочтения хи переходит в допускающее состояние, НКА допускает слово х = (х,.., хи ), если и только если после прочтения символа х среди состояний, в которые переходит НКА, есть допускающее. Поэтому автомат на рис. 2 не допускает слово 0110, так как после прочтения последнего символа «0» он находится только в состояниях \д0, 0} (символом « 0 » обозначается неопределенное состояние).

Рис. 2. Диаграмма переходов НКА, допускающего двоичные слова, заканчивающиеся двумя единицами

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

0 1

40 40 ^ 41}

41 0 * 4*

* 4* 0 0

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

С другой стороны, задача проверки эквивалентности двух НКА является очень трудной, она Р8РЛСЕ-полна даже в простейших частных случаях (см. [15]). Можно предложить подход к решению данной задачи, основанный на преобразовании НКА в эквивалентный ДКА с последующей проверкой эквивалентности полученных ДКА. Однако все известные техники перехода от НКА к эквивалентному ДКА (который заведомо существует) используют так называемую «конструкцию

подмножеств» (см. [19]) - процедуру, сложность которой растет как экспонента от числа состояний исходного НКА.

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

Определение 2 (проблема локальной эквивалентности двух НКА). По произвольной паре НКА N , N и натуральному числу п определить, являются ли N и N эквивалентными на множестве {0,1}".

Основной результат настоящей работы заключается в возможности эффективного сведения задачи о локальной эквивалентности двух НКА к некоторой 8ЛТ-задаче.

Еще раз дополнительно оговоримся, что рассматривается простейший класс НКА - автоматы, допускающие двоичные языки. Базовая идея дальнейших построений состоит в ассоциации с произвольным НКА А из данного класса семейства булевых функций gA = У" }ие1Ч, g" : {0,1}" ^ {0,1} называемого семейством характеристических функций автомата А.

Определение 3. Для произвольного НКА А из рассматриваемого класса определим значение функции gA на произвольном векторе х е {0,1}" следующим образом:

[1, А допускает х, [0, А не допускает х.

Зафиксируем некоторую схему Е кодирования исходных описаний автоматов (например, в форме диаграмм переходов или таблиц) в двоичные слова. Предполагаем, что схема Е является «разумной» в смысле [15]. Тот факт, что двоичное слово (х,. .,хг) кодирует автомат А в соответствии со схемой Е , обозначим сос1еЕ(А)=(х^... ,хг).

gA (х)=-

I оо оо I

Рассмотрим семейство булевых функций hE = {hf }„eN, которое определяется следующим

образом: если n нечетно, то hf = 0 на {0,1 }n. Если n четно, то

0, (xl,...,x„codeE(A)(VA),

1 (x„+l ,...,xn) (xi ,...,x„ )= code f (A).

hf (x) =

gn \xn i

2 \ 2 т

Проще говоря, функция Нп принимает значение 1 на (хх,...,хи) только если п четно, слово х,...,х„) кодирует некоторый НКА А, и А до-

V 2

пускает слово (х„+1,...,хп). Во всех остальных случаях Ип принимает значение 0.

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

Лемма 1. Семейство булевых функций НЕ попадает в класс 3 .

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

читает произвольные двоичные слова из {0,1 }п и выдает 0, если п нечетно. Если п четно, то программа ТЕ читает слово (хх,...,х„), проверяя, является ли это слово кодом некоторого НКА. Если нет, то программа останавливается и выдает 0. Если же х,...,хп) кодирует некоторый НКА А, то

программа Тп моделирует работу А на входе (х„+1,...,хп) и выдает 1, если А допускает данный

вход, и 0 в противном случае. Очевидно, что программа ТЕ вычисляет семейство функций НЕ .

Можно заметить, что основной вклад в сложность Тп вносит процедура моделирования работы А на входе (х„+1,...,хп). Покажем, что данная процедура полиномиальна по сложности. Действительно, пусть автомат А задан некоторой таблицей переходов и имеет | б | состояний (полагаем, что неопределенное состояние 0 принадлежит б ). Программа Тп подает на вход А символ

х„ , после чего автомат переходит в состояния

2

q11,...,qSl, причем ^ < | б |. Затем программа ТЕ

подает на вход А символ х„ , после чего из каж-

2+2

дого состояния q11,...,qSl осуществляется переход в состояния q12,...,qS2 , s2 < | б |, и так далее. Будем считать элементарными шагами ТЕ процедуры

считывания символов входного слова и процедуры «эмуляции» переходов между парами состояний. На каждый бит входа приходится < | б |2 переходов между парами состояний. Учитывая, что вся таблица переходов А кодируется словом длины п /2 , заключаем, что общая сложность программы ТЕ заведомо ограничена сверху величиной й(п3). Данный факт завершает доказательство леммы 1.

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

Теорема 3. Проблема локальной эквивалентности НКА N и N на множестве {0,1 }п допускает полиномиальную сводимость к проблеме поиска решений уравнения вида С = 1, где С -КНФ над некоторым множеством булевых переменных У (| У | > п). При этом N и N локально эквивалентны на {0,1 }п тогда и только тогда,

когда уравнение С = 1 не имеет решений (КНФ С невыполнима).

Доказательство (кратко). Техника доказательства комбинирует конструкции, использованные в доказательствах теоремы 2 и леммы 1. Прежде всего, несложно понять, что НКА N и N локально эквивалентны на множестве {0,1 }п тогда и только тогда, когда на этом множестве эквивалентны их характеристические функции. С другой стороны, в лемме 1 в явном виде описана полиномиальная по сложности процедура моделирования работы произвольного НКА некоторой детерми-

~ -л- N N

нированной программой. Пусть gn 1 и gn 2 - характеристические функции автоматов Nl и N2 на {0,1 }п. В силу леммы 1 эти функции принадлежат классу 3 , поэтому (в соответствии с теоремой 2) можно за полиномиальное время осуществить пропозициональное кодирование алгоритмов их вычисления на бинарных МНР.

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

Рассмотрим булевы функции и /2, которые определены всюду на множестве {0,1 }п. Предположим, что данные булевы функции заданы схемами соответственно £1 и £2 из элементов некоторого функционально полного базиса В (для простоты можно считать, что В = {&, V, —1 }). По

иркутским государственный университет путей сообщения

схемам 5Х и 52 построим схему 5, общий вид которой приведен на рис. 3.

Ч'Ч XV: )

Рис. 3. Схема 5, реализующая булеву функцию к

Данная схема реализует булеву функцию к, которая определена всюду на {0,1}". Несложно видеть, что функция к есть константа 0 на {0,1}" тогда и только тогда, когда и /2 эквивалентны.

Оставим без доказательства тот факт, что системы логических уравнений, кодирующие ал-

N N

горитмы вычисления 1 и gn 2, за полиномиальное от " время преобразуются в схемы из функциональных элементов, представляющие функции gNl и gN'2 над базисом В = {&, V, -1}. Далее по построенной схеме 5 следует при помощи преобразований Цейтина (см. [17]) перейти к уравнению вида С = 1, где С - некоторая КНФ. Процесс перехода сопровождается вводом новых переменных, поэтому С - это КНФ над множеством булевых переменных У таким, что, вообще говоря, X с У. Из результатов работы [17] заключаем, что функция к, реализуемая схемой 5, является тождественным нулем на {0,1}" тогда и только тогда, когда КНФ С невыполнима. Теорема 3 доказана.

3. Особенности алгоритмики решения задач тестирования дискретных автоматов. В

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

Рассмотрим 8ЛТ-задачу, полученную в результате пропозиционального кодирования неко-

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

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

Подобная точка зрения нашла отражение в работе [21], где были исследованы принципиальные возможности сокращения перебора при решении DPLL-подобными алгоритмами SAT-задач, полученных в результате пропозиционального кодирования алгоритмов обращения функций из класса 3 . Основной вывод работы [21] состоит в том, что при решении DPLL-подобным алгоритмом задачи Пsat (П - задача обращения дискретной функции из класса 3) можно формировать иерархию предпочтений среди угадываемых в процессе DPLL-поиска переменных. Высший приоритет при этом следует отдавать переменным, образующим так называемое «ядро DPLL-вывода». Грубо говоря, ядро DPLL-вывода образовано всеми такими переменными в КНФ C , последовательная подстановка произвольного вектора значений которых в C приводит либо к конфликту, либо к бесконфликтному выводу значений всех остальных переменных. Выделение ядра DPLL-вывода как можно меньшей мощности можно рассматривать как шаг в направлении сокращения перебора. Основным результатом работы [21] в этом направлении является следующая теорема.

Теорема 4. Рассмотрим произвольную функцию fn : {0,1} ^ {0,1}* из некоторого семейства f е3. Обозначим через X = {х,...,хп} множество переменных входа fn. Пусть C(v ,...,vq („)) = 1 - логическое уравнение вида «КНФ=1» над множеством булевых переменных V = {у,...,^(и)}, кодирующее задачу обращения

функции fn в точке y е Ran fn и построенное в соответствии с процедурой, описанной в доказательстве теоремы 2. Через V»ker(C) обозначим

ядро DPLL-вывода КНФ C = C(v,...,vq(„)) наименьшей мощности. Тогда

V*ker (c(vl,...,vi(n )))е х.

Данный факт на первый взгляд представляется тривиальным, однако он имеет ряд интересных следствий. Например, из доказательства данной теоремы (см. [21]) следует, что SAT-решатель, базирующийся на DPLL и использующий рестарты и процедуру «Clause Learning», обладает полнотой на задачах обращения функций из 3 при произвольном порядке угадывания переменных только из множества X. Легко понять, что порождаемые в ходе использования такой стратегии конфликтные дизъюнкты составлены только из литералов над множеством X .

Другим полезным следствием из факта наличия некоторого нетривиального ядра DPLL-вывода является возможность решения рассматриваемых SAT-задач в распределенных вычислительных средах в соответствии с концепцией крупноблочного параллелизма (см. [4, 18]).

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

Работа выполнена при поддержке гранта РФФИ № 07-01-00400-а и гранта Президента РФ НШ-1676.2008.1.

БИБЛИОГРАФИЯ

1. Агибалов Г. П. Дискретные автоматы на полурешетках. Томск : Изд-во Томск. ун-та, 1993. 227 с.

2. Cook S. A. The complexity of theorem-proving procedures // Theory of Computing : proc. 3 Ann. ACM Symp. ACM. 1971. P. 151-159. [Пер. изд. : Кук С. А. Сложность процедур вывода теорем // Кибернетический сб. 1975. Вып. 12. С. 5-15.]

3. SAT-подход в криптоанализе некоторых систем поточного шифрования / А. А. Семенов, О. С. Заикин, Д. В. Беспалов, А. А. Ушаков // Вычислительные технологии. 2008. Т. 13, № 6. С.134-150.

4. Заикин О. С., Семенов А. А. Технология крупноблочного параллелизма в SAT-задачах // Проблемы управления. 2008. № 1. С. 43-50.

5. Семенов А. А.,. Заикин О. С. Неполные алгоритмы в крупноблочном параллелизме комбинаторных задач // Вычислительные методы и программирование. 2008 Т. 9, № 1. С. 112-122.

6. Wedler M., Stoffel D., Kunz W. Arithmetic Reasoning in DPLL for application in bounded model checking // Automation and Test in Europe (DATE-04) : Proc. Design. Paris, 2004. P. 30-35.

7. Gu J. Local search for satisfiability (SAT) problem // IEEE Trans. on Systems, Man and Cybernetics. 1993. Vol. 23 (4). P. 1108-1129.

8. Богданова В. Г. Методы и средства программирования в булевых ограничениях : автореф. дис... канд. техн. наук. Иркутск, 2005.

9. Закревский А. Д., Поттосин Ю.В., Черемиси-нова Л. Д. Логические основы проектирования дискретных устройств. М. : ФИЗМАТЛИТ, 2007.

10. Семенов А. А., Буранов Е. В. Погружение задачи криптоанализа симметричных шифров в пропозициональную логику // Вычислительные технологии ; Регион. вестн. Востока. 2003. Т. 8. С. 118-126.

11. Семенов А. А. О сложности обращения дискретных функций из одного класса // Дискретный анализ и исследование операций. 2004. Т. 11, № 4. С. 44-55.

12. Буранов Е. В. Программная трансляция процедур логического криптоанализа симметричных шифров // Вестн. ТГУ. Прил. 2004. № 9 (1). С.60-65.

13. Семенов А. А. Трансляция алгоритмов вычисления дискретных функций в выражения пропозициональной логики // Прикладные алгоритмы в дискретном анализе. Сер. Дискретный анализ и информатика. Иркутск, 2008. Вып. 2. С.70-98.

14. Катленд Н. Вычислимость. Введение в теорию рекурсивных функций. М. : Мир, 1983.

15. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М. : Мир, 1982.

16. Ах А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М. : Мир, 1979.

17. Цейтин Г. С. О сложности вывода в исчислении высказываний // Записки научных семинаров ЛОМИ АН СССР. 1968. Т. 8. С. 234-259.

18. Решение задач обращения дискретных функций на многопроцессорных вычислительных системах / А. А. Семенов, О. С. Заикин, Д.

B. Беспалов, П. С. Буров, А. Е. Хмельнов // Параллельные вычисления и задачи управления : тр. IV Междунар. конф. РАСО'2008. М., 2008.

C.152-176.

иркутским государственный университет путей сообщения

19. Хопкрофт Дж., Мотвани Р., Ульман Дж. Вве- 21. Семенов А. А., Отпущенников И. В. Об алго-

дение в теорию автоматов, языков и вычислений. М. : Вильямс, 2002. 20. Биркгоф Г., Барти Т. Современная прикладная алгебра. М. : Мир, 1976.

ритмах обращения дискретных функций из одного класса // Прикладные алгоритмы в дискретном анализе. Сер. Дискретный анализ и информатика. Иркутск, 2008. Вып. 2. С. 127156.

Семенов Э. И.

УДК 517.946

УРАВНЕНИЕ НЕЛИНЕИНОИ ДИФФУЗИИ И КОНФОРМНОЕ ПРЕОБРАЗОВАНИЕ КООРДИНАТ

1. Двумерный оператор Лапласа и конформное преобразование координат. Пусть дана функция ¥

др _ дд др _ дд

или

дх ду' ду дх

дх _ ду дх _ дУ др дд дд др

а якобианы прямого и обратного преобразований

3 (х, у) =

др

дх дд дх

др ду дд ду

з р, д) =

дх др ду др

дх дд ду дд

отличны от нуля, то преобразование ¥(х, у) ^ ¥(р, д) называется конформным [1]. Покажем, что относительно этого преобразования инвариантны некоторые важные уравнения математической физики. Под инвариантностью понимается неизменяемость вида уравнения под действием какого-либо преобразования.

Утверждение 1. Стационарное (эллиптическое) уравнение нелинейной диффузии

Р^Д ш + Q(¥)|VxVW|2=0

Д„

¥

= 3

Подставив эти выражения в уравнение (2) и учитывая тот факт, что якобиан преобразования 3 (х, у) отличен от нуля, мы увидим, что оно преобразуется к уравнению аналогичного вида на функцию ¥(р, д) :

Р

что и требовалось доказать.

Замечание 1. Из формул (3) следует, что уравнение Лапласа также инвариантно относительно указанного преобразования.

Если в уравнении (2) положить Р(¥) = —¥2(¥), то в этом случае соотношение

¥Д ху¥ |2= 0

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

Лемма 1. Если функция г}(х, у) является гармонической, то гармонической будет функция 1П| У^|2 .

Доказательство. Для удобства выкладок введем обозначение ¥(х, у) = | У^|2, тогда

¥хх + ¥уу)-

Д 1п ¥ = [({(хх + ¥уу)- (х + ¥2у )]

Последовательно вычисляя необходимые

с произвольными функциями Р{[), Q{w) инвариантно относительно конформного преобразования.

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

частные производные, находим

¥хх +¥уу = + Л2уу)+ ^ + 2Лх Ьхх +Луу )х +

+ 2^у Ьхх +Луу )у ,

¥2х + ¥2у = 8ЛхЛуЛху {чхх + Луу ) +

+ 4^х2 Ь« + п1у )+ 4П2у [Г]2УУ +Г12у ).