Как видно из графика, гибридная реализация позволяет сэкономить временные затраты на обучение нейронной сети в среднем в 1,75. Подобное ускорение, возможно, не критично для небольших сетей, время обучения которых составляет порядка нескольких десятков секунд, но существенно для сложных сетей, время обучения которых может достигать нескольких часов или дней. Следует также отметить, что попытка выделения более крупного вычислительного блока (вычисление градиента функции ошибки для одной пары обучающей выборки) для реализации на С не дала желаемого ускорения.
На основе проведенных исследований можно сделать следующие выводы: совмест-
ное применение таких языков программирования, как Erlang и C, позволяет получить возможность использования преимуществ функционального подхода к разработке программного обеспечения; преимуществ непосредственно Erlang как языка, созданного для реализации отказоустойчивых и надежных систем; преимуществ высокопроизводительного императивного языка программирования С. При этом затраты на преобразование данных для работы на стороне Erlang и на стороне С не оказывают большого негативного эффекта на скорость работы программы при условии, что правильно выделена та ее часть, которая содержит наибольшее количество вычислительных операций.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Оссовский С. Нейронные сети для обработки информации / С. Оссовский ; пер. с польск.
И. Д. Рудинского. М. : Финансы и статистика, 2002. 344 с.
2. Armstrong J. Making reliable distributed systems in the presence of sodware errors / J. Armstrong. Thesis. November, 2003. 283 p.
3. Erlang programming language [Электронный ресурс]. Режим доступа: http://
www.erlang.org/. Загл. с экрана.
Поступила 06.02.2012.
УДК 004.422.612
МИНИМИЗАЦИЯ ЧАСТИЧНО ОПРЕДЕЛЕННЫХ БУЛЕВЫХ ФУНКЦИЙ
Р. Н. Песков, В. Н. Щенников
В данной работе рассматривается задача минимизации частично определенных булевых функций. Решается вопрос о доопределении функции таким образом, чтобы она удовлетворяла исходным требованиям.
В некоторых прикладных задачах заданная булева функция может быть не определена на некоторых наборах. Если эти наборы в исследуемой задаче не будут играть никакой роли, то можно доопределить функцию на этих наборах таким образом, чтобы получить наиболее минимальную нормальную форму, т. е. форму, имеющую наименьшее число букв [1].
Рассмотрим, например функцию, заданную следующей последовательностью
01x111x011x010x0, где «х» означает, что функция на данном наборе значений не определена.
Доопределим данную функцию нулями [2]. Найдем минимальную дизъюнктивную нормальную форму (ДНФ). Сначала необходимо определить импликанты заданной булевой функции. Функция А = А(Х1, ..., хп) является импликантой функции / = / (Х1, ..., хп ), если А принимает значение единицы лишь в тех точках (не обязательно во всех), в кото-
Песков Р. H., Щенников В. H., 2012
рых значения / равны единице или не определены. Иначе говорят, что А заключает в себе / и записывают: А < /".
Будем проводить минимизацию с помощью дерева декомпозиций [3]. Метод заключается в построении дерева всех 2к возможных декомпозиций функции / от к переменных и применении оператора л в каждом узле дерева. Нулевой уровень дерева — декомпозиция = /. Первый уровень дерева
будут составлять декомпозиции В2, Вз,
В,.
01011100 01011100
Д : V 11001000; Б2 : V 11001000;
д1 = 01001000 д2 = 01001000
01111110 00101010
Б3 : V 01000000; Б4 : V 11101000.
д3 = 01000000 д4 = 00101000
Второй уровень:
0100 0110
D12 : v 1000; D13 : v 0000;
gi2 = 0000 g13 = 0000
0010 0110
D14 : v 1000; D23 : v 0000;
g14 = 0000 g23 = 0000
0010 0110
D24 : v 1000; D34 : v 0000.
g24 = 00 00 g34 = 0000
При последующем разложении все функции д будут равны 00, поэтому нет необходимости построения третьего уровня. Получим 7 простых импликант: Х2Х3Х4, Х2Х3Х4,
X^1 Х3 X 4, Х1Х3Х4, Х1Х2 Х4, Х2Х3Х4, Х2 Х3 X 4.
Построим имплицентную таблицу:
0001 0011 0100 0101 1000 1001 1100
Х2Х3Х4 * *
Х2Х3Х4 * *
Х1Х3Х4 * *
Х1Х3Х4 * *
Х1Х2Х4 * *
Х2Х3Х4 * *
Х2Х3Х4 * *
Если в каком-либо столбце имеется только одна метка, то импликанта, стоящая в соответствующей строке, является существенной — без нее не может быть получено покрытие всего множества импликант данной
функции. Она в любом случае войдет в минимальную форму, поэтому из дальнейшего рассмотрения можно исключить соответствующие ей столбцы и строки. После исключения таблица примет вид:
0100 0101 1000 1001 1100
Х2Х3Х4 *
Х2Х3Х4 * *
Х1Х3Х4 *
Х1Х3Х4 * *
Х2Х3Х4 * *
Х2Х3Х4 * *
Из таблицы получим систему ограничений:
и + М5 > 1,
Ид + М5 > 1,
<! М4 + Ид > 1 М1 + Мд > 1,
М2 + М4 > 1,
^ = М + щ + и3 + и 4 + М5 + и^.
Решив соответствующую задачу целочисленного программирования, определим, что в минимальную КНФ войдут 4-я, 5-я и 6-я им-пликанты. Добавим исключенную ранее существенную импликанту и в итоге минимальная ДНФ будет иметь вид:
Х1Х3Х4 V Х2Х3Х4 V Х2Х3Х4 V Х1Х2Х4.
Теперь доопределим исходную функцию единицами [2] и построим дерево декомпозиций. Нулевой уровень дерева — декомпозиция = /. Первый уровень дерева будут составлять декомпозиции 02, Од, 04:
01111110 01111110
Д : V 11101010; О2 : V 11101010;
0! = 01101010 д2 = 01101010
0001 0011 0100 0101 1000 1001 1100
Х2Х3Х4 * *
Х3Х4
Х2Х4 * *
Х1Х3Х4 * *
Х1Х4 * *
Х1Х2 Х4 * *
Х1Х2Х3 *
Х1Х2 Х3 * *
Х1Х2Х3 * *
Решив соответствующую задачу целочисленного программирования, определим, что минимальная ДНФ будет иметь вид:
Х1Х2Х4 V Х1Х2Х3 V Х1Х2Х3 V Х2Х4.
Таким образом, более простую минимальную ДНФ можно получить, если доопределить функцию единицами на всех неопределенных наборах. Из полученных данным способом импликант в минимальную форму необходимо включить только импли-
М2 + М4 + М^ > 1,
М^ + Му > 1,
М4 + Мд > 1
М5 + Мд > 1,
Мі + Мд > 1,
М3 + М5 > 1;
L = М1 + М2 + М3 + и 4 + М5 + М^ + Му + Мд + Мд.
01111110 01111111
О3 : V 11101010; О4 : V 11101000.
д3 = 01101010 д4 = 01101000
Второй уровень:
0110 0110
О12 : V 1010; О13 : V 1010;
012 = 0010 0!3 = 0010
0111 0110
О14 : V 1000; О23 : V 1010;
д14 = 0000 д23 = 0010
0111 0110
^24 : V 1000; ^34 : V 1000.
д24 = 0000 д34 = 0000
Получим следующие простые импликан-ты: Х2Х3Х4, Х3Х4, Х2Х4, Х1Х3Х4, Х1Х4, Х1Х2Х4,
Х1Х2Х3, ^1^2 Х3, ^1^2 Х3.
Имплицентная таблица примет вид:
канты, обеспечивающие покрытие тех наборов, что определены. Сделать это можно с помощью импликантной таблицы. Поиск минимальной конъюнктивной формы (КНФ) частично определенной булевой функции производится аналогичным образом, только доопределение производится нулями, а не единицами.
Важно отметить, что в некоторых задачах могут требоваться булевы функции определенного подкласса, например, линейные, однородные или симметричные. Поэтому в таких случаях целесообразно производить доопределение таким образом, чтобы исходная функция принадлежала необходимому подклассу. С помощью дерева декомпозиций можно проверить принадлежность функции к некоторым подклассам [2]. Например, симметричные функции могут быть синтезированы с использованием меньшего числа логических элементов, поэтому они играют важную роль в логическом синтезе и используются для построения эффективных электрических цепей. Симметричной называется такая булева функция, которая изменяет свое значение при перестановке любой пары переменных. Симметричные булевы функции п переменных могут быть представлены не таблицей истинности, а вектором
с п + 1 значениями, где г-е значение равно значению функции на наборах, содержащих г единиц.
Проверим, является ли частично определенная булева функция 01x111x011x010x0, рассматриваемая выше, симметричной. Как доказано в работе [2], функция будет симметричной, если декомпозиции первого уровня будут одинаковы. Для рассматриваемой выше функции декомпозиции первого уровня следующие:
01x111x0 01x111x0
О : ; Оп : ;
1 11x010 x0 2 11x010x0
01111110 0x1x1x1x
Оз : ; Од: .
3 x1x0x0x0 4 11101000
Можно заметить, что декомпозиции будут одинаковыми, а значит, и функция будет симметричной, если ее доопределить следующим образом: 0111111011101000. В виде вектора ее можно представить так: (0, 1, 1, 0, 0). Несмотря на то что ее ДНФ будет содержать большее число букв, чем доопределенная полностью единицами, запись в виде вектора будет даже меньше, чем в виде последовательности нулей и единиц собственных значений.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Глушков В. М. Синтез цифровых автоматов / В. М. Глушков. М. : Физматгиз, 1962.
С. 264 267.
2. Самофалов К. Г. Прикладная теория цифровых автоматов / К. Г. Самофалов, А. М. Романке-
вич, В. Н. Валуйский, Ю. С. Каневский [и др.]. Киев : Вища Школа, 1987. С. 210 211.
3. Friedel M. The Decomposition Tree for analyses of Boolean functions / M. Friedel, S. Niko-
lajewa, T. Wilhelm // Math. Struct. in Comp. Science. 2008. Vol. 18. P. 411 426.
Поступила 18.01.2012.