Применение логических уравнений широко используется в различных приложениях [1]. Например, задача синтеза логических схем, нахождения корня систем логических уравнений, поиска диагностических тестов, сводится к нахождению корня логического уравнения по возможности меньшей длины. Корень логического уравнения представляется в виде конъюнкции. Требования к рангу конъюнкции, а также необходимость информации о том существует ли такая конъюнкция, какой вид она должна иметь, зависят от поставленной задачи. Например, задачу построения тестового набора для b - неисправности можно свести к отысканию одного корня логического уравнения D = 0.[2] Данная работа посвящена сокращению ранга корня логического уравнения. В общем случае нахождение корня логического уравнения сводится к процедуре обхода дерева решения, которая заключается в выборе переменной ветвления и фиксации значения этой переменной, с последующим упрощением множества, которое представляет ДНФ D. Процедура продолжается до тех пор, пока мы не найдем корень уравнения, либо корня для данного уравнения не существует. В данной работе предлагается модификация алгоритма, предложенного в работе [4]. В частности, предлагается особая процедура сокращения множеств, путем анализа положительно и отрицательно однородных множеств и множества неоднородных векторов, для которого формируется срез. Данная процедура позволяет сократить ранг конъюнкции и ускорить процедуру нахождения решения.
Был исследован и реализован алгоритм поиска корня логического уравнения D = 0 с помощью использования информации о подмножествах однородных векторов. Было выявлено, что данный алгоритм может быть оптимизирован. Предложена модификация алгоритма, заключающаяся в анализе срезов множества М* и множеств однородных векторов, c последующим нахождением покрытия, позволяющая сократить время на поиск корня логического уравнения.
На основе полученных экспериментальным путем данных, можем сделать вывод о том, что алгоритм, использующий анализ срезов множества М, может находить решения меньшего ранга за меньшее время, но с возрастанием процента неопределенных компонент в векторах множества, представляющего ДНФ D, мы можем наблюдать, что классический алгоритм начинает находить более качественные решения.
1. Crama Y., Hammer P.L. Boolean functions: theory, algorithms, and applications. Cambridge; New York: Cambridge University Press, 2011. P. 440.
2. Матросова А.Ю. Построение полного теста для схем,
синтезированных методом факторизации // Автоматика и вычислит. техника. - 1978. - No 5. - С. 42 - 46.
3. Zakrevskiy, A.D. (2003) Logical equations. Moscow: Editorial URSS
4. Андреева В.В., Тарновская Т.П. Сокращение ранга конъюнкции, представляющей корень логического уравнения. Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2015. № 4. С. 62-68.
5. Mechura, T. (2008) Random Circuits Generators. [Online] Available from: http://ddd.fit.cvut.cz/prj/Circ_Gen