2. Model Checking. Вериф. парал. и распределенных программных систем. Карпов (2010) (1185529), страница 64
Текст из файла (страница 64)
В прелпшвленин ВОО таких объектов большинство ребер указывает на термнивльнуо вершину, помеченную О. менп жесп Функ Опр чтоб! нсбш ляюг налог туры одно рам 1 жесп Бина! Для ~ (двои рос г дит в мене код о савв я Г. ша- зко. аз!манях ВРР 1 мо. ЕСГО- фекитоа ГОГО. ство рассмотрим, например, предспшление множества подмножеств конечного множества. Определение 9А вводит характеристическую функцию множества А а Я, как функцию, приннммошую значения 1 на кодировках тех элементов нз 8, которые входят в А.
Несколько подмножеств конечного множества при такой харакшризвции будут опредешпъся несколькими булевыми функциями. Определим другую харахтернзацню подмножества конечного множества так, чтобы одной двоичной функцией можно было представщь срезу насколько небольших подмножеств большого конечного множества. Именно это позволяют сделюь бинарные решмощие диаграммы с подавГмнием нулей — онн используются тогда, когда нужно экономно представить разреженные структуры ленных. Диаграммы УРР во многом похожи иа ВРР, но у них изменено одшэ правило редукции, что н позволяет этим модифицированным структурам быль более эффективными в приложениях, связанных с теорией множеств. Бинарные решающие димраммы с подавлением нулей (ЛЮ) строятся так.
Для каждого элемента множества Я введем свою двоичную переменную (двоичный разряд). Каждый двоичный код будет теперь кодировать некоторое подмножество мнаксства 3 целиком, а именно, подмножеству А~Я ставится в соответствие следующий двоичный код. Бели элемент А и Я юоднт в А, то соотштствуюшвя переменная будет в этом коде равна 1, а переменная, соответствующая элементу, ие входящему н А, будет входим в этот код со значением О. Например, множеству подмножеств: (1«з,«4»,1«з «з «4»,1«Г, «з «4»,(«Г «з».1«Г,«з «4»,(«»«з, «з» 1«Г «з «3 «4»» МНО«метая»«Г, «з,.тз, «,» СООШЕГСтаУСт СЛЕДУЮЩЕЕ МШНКЕСПЮ ДВОНЧНЫХ набором » 0011. 0111,1011,1100,1101,1110, 1111». Будем считать перечисленные наборы единиц и нулей наборами, на которых некоторая булева функция Р принимает значение 1. Зтн функцшь имеет следУюшУю фоРмУльиУю запись Гт =.«Г«з О «з«с. На рис.
9.28 показаны ВРР и 2РР дла функции Р = «,«з ч «з«с. Хотя ВРР для некоторых булевых функций более зффмпивны (содержат меньше вер. ), ЛЮ, н д д р р р у н у. Из рисунка видно, что ЛЮ вЂ” это направленный граф, в котором в терминааьную вершину 1 ведут семь путей, в точности соопмтствующнх всем перечнсвенным выше семи наборам значений переменных .«» ..., «4. ЗЗР Прим Рнс. 9. ция /' ция п! нз тр лепна показ ну! ь (х! =! Этн и мены менп Рне, 9ЛЗ В!ЗО И Ю!Э ЛЯЯ фьниини Г Хглз Ч Язкя Отличие семавтик двух решающих диаграмм молвю выразить так. В ВРО на юокдом пути нз головной вершины в терминальную вершину 1 пропущенным переменным могут быль присвоены как О, так и!.
В ЕОО на каждом пугн из головной вершины в терминальную вершину! пропущенным переменным может быть присвоено только значение О. На рис. 9.28 по этому правилу нз кшкцой диаграммы могу! быль легко воссшновлеиы те наборы значений переменных (1100,!101, 1110, 1111, 0011, 0111, 1011~, на которых функция гт равна!. ВЕЮ с!роятся нз двоичного решмощего дерева булевой функции в соответствии с двумя правиламн упрощения орненгиршшнного графа: С! С!: Правило слияния. Обьедннить (свить) любые нзоморфные подграфы; О! С2: Правило удгмеиик Удалить из графа любую вершину, у которой оба непосредственных преемника совпадают, а все входшцие в эту вершину раб! мр! 2ОО с двум п торых (2 С2! (2 С22 1-рь шиь О-!н Таким ВРО л Оказь (при ' опера в ксп конеч практ чем п едуча равна твори Э на ным н нз ным у из 1 пе- яГ оба зину ребра перенаправить в вершину, в которую напрашюны выходные ребра вершины к Е00 строятся также нз двоичного решающего дерева булевой функции по лвум правилам редукции: П)юеняу свияниа н Праезму удаления, первое из котормх совпгдает с С1, а второе формулнруетоя несколько оо-другому: (2 СЕ!: Правило слияния.
Объединить (слнть) любые нзоморфные подграфы; О СЕ2: Правило удашниа. Удалить нз графа любую вершину г, у которой 1-ребро соединено с терминальной вершиной О, а все входящие в эту вершину ребра перенаправщь в вершмну, в когорую направлено выходное О-ребро вершины г. Таким образом, правила построения Е00 отличаются от правнл пастроеюш В00 лишь В Одном пугшзн.
Пример 0.1 3 рис. 9З представляет булеву функцию у От переыенных х! хз "з. 01унгг цня 1' равна ! на наборах (000, 00 1, 0 10, 110) . Будем считать, чте лш функция представляет следующие четыре подмножества множества (х,, хз, хз) ю трех элементов: (8,(хз),(хз),(хпхз) ). Для экономного представления этих четырех подмножеств постромм Е00 этой функции. Рнс, 9.29 показыещт, как преобразуется в Е00 двоичное решакяцее дерево функнни г .
Диаграмма рис.9.29, е показывает, что в терминальную вершину 1 идут ровно четмре нуги: первый — (х! =0; ~ =0; хз =0), втс(юй— (я, 0; хз 0; хз =!), третий — (хг =0; лз =1), четвертый — (х! =1; лз =1). Зти четыре пути соответствуют четмрем ушзанным выше подмножествам. Оказывается. Е00 сохраняют два главных свойопм В00 — каноничность (при 'определенном порядке переменных) и простоту выполнения булевых операций.
Основная область применения Е00 — это комбинаторные щцачи, в которых необходимы представление и работа с множеепмми подмножеств конечных множеств. Для представления множеств подмножеств при решении практических задач эта структура оказывается намного более компакпюй, чем представление их в В00. Зффекгивность Е00 особенно велика в тех случаях, когда наборы булевых переменных, иа которых булеза функция равна 1, содержат значительно больше нулей, чем единиц (или, в терминах теории множеств, число подмножеств множеств из л элементов значительно меньше.
чем 2", и каждое подмншкество содержит небольшое число элементов). 9Л Бина тес~и ция телы моно яая в ча выпс б с рнс.р.29. Пресбрнюванне самантичесаоге явреев в ВВВ ЮВ фуи~ в~в: Вча бып гих ~ ций пред рые няня ции, Прел сй Ф мояп раин Бина фекг естрг прим демо фуня Меж чнсм очна лами ния ~ расту 200 были использованы во многих областзгх, от минимизации булевых функций ло алгоритмов на графах и представления регулярных выражений. В [88) представлены применения Л)0 для решения комбннаторных проблем. В частности, Дональд Кнут утвержяаег, что любая проблема покрытия макет быть решена построением ЕОО для подходащей булевой функции.
Во многих применениях влгорпгмы, основанные на представлениях булевых функций в форме 200, оказыааотса эффективнее, чем алгоритмы, основанные на представлениах в форме ВОО. Существуют эффективные процедуры, которые позволяют конвертиромпь ВОО в 200 и обратно. Свободно распространяющиеся библиотеки функннй для работы с ВОР обычно содержат и функции, позволжощне работать с 200. 9.11. Заключение Бинарные решыощне диаграммы (В!пму Оеазиш Ойгйшшз, ВОР) введены в теорию и практику информатики около 20 лет нкищ. Предлагаемая концепция проста: строить вычисление значения булевой функции как последоввтгльносп бинарных выборов на направленном ациклическом графе. ВРО можно рассматривать как каноническую форму задание булевых функций, как, например, СДНФ, но облалжощую многими удобными свойствами, в частности, компактным представлением и возможностью эффективного выполнения операций с ними.
Представление булевых функций в форме ВОО можно сравнить с компрессией данных, но в отличие от других видов компрессии, с ВРО все операции можно выполнять непосредственно, без предварительной декомпрессии операндов и последующей компрессии результата операции. Бинарные решающие днагрвммм рагсматрнванпся как прорыв в области автоыатпзироаанного проектирования вследствие того, что они позволяют эффективно представить булевы функции от огромного числа переменных, встречающиесз прн решении практических проблем.
Приведенные выше примеры решения логических и комбннаторных проблем с помощью ВРО демонстрируют удивительные возможности этого представления булевых функций. Можно провести некоторую аналогию ВОО с использованием позиционной числовой записи вместо унарного кода. Действительно, в унарной системе счисления количество дг представляется Ж единицами, и операции нзд чнсламн в ней более очевидны и понятны.