Двоичное решение

Бинарное решение — это выбор между двумя альтернативами, например, между выполнением определенного действия или невыполнением его. [1]

Бинарные решения являются базовыми для многих областей. Примеры включают:

Диаграммы бинарных решений

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

Диаграмма двоичного решения уменьшенного порядка для f
Сокращенная упорядоченная двоичная диаграмма решений для булевой функции ф {\displaystyle f}

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

  • Каждый последующий узел каждого узла индивидуален.
  • Не существует двух отдельных узлов одной и той же переменной с одинаковыми потомками. [7] [8]

BDD, которые упорядочены и сокращены, можно назвать сокращенными упорядоченными бинарными диаграммами решений (ROBDD). Примером ROBDD является рисунок справа, который представляет функцию . Порядок переменных вдоль любого пути всегда , , тогда , все узлы имеют различных последователей, и нет двух узлов с одной и той же переменной и одинаковыми последователями. ф ( х 1 , х 2 , х 3 ) = х ¯ 1 х ¯ 2 х ¯ 3 + х 1 х 2 + х 2 х 3 {\displaystyle f(x_{1},x_{2},x_{3})={\bar {x}}_{1}{\bar {x}}_{2}{\bar {x}}_{3}+x_{1}x_{2}+x_{2}x_{3}} х 1 {\displaystyle x_{1}} х 2 {\displaystyle x_{2}} х 3 {\displaystyle x_{3}}

Условные операторы

В информатике условные операторы используются для принятия бинарных решений. [9] Программа может выполнять различные вычисления или действия в зависимости от того, оценивается ли определенное логическое значение как истинное или ложное.

Конструкция if-then-else представляет собой оператор потока управления , который запускает один из двух блоков кода в зависимости от значения логического выражения, и его структура выглядит следующим образом:

если условие то блок кода 1еще блок кода 2конец
Блок-схема, иллюстрирующая использованиеelse if

Условное выражение — condition, и если оно истинно, то code block 1выполняется, в противном случае code block 2выполняется. Также возможно объединить несколько условий с конструкцией else-if:

если условие 1 то блок кода 1иначе если условие 2 тогда блок кода 2еще блок кода 3конец

Это можно представить с помощью диаграммы потока справа. Если одно условие оказывается истинным, то остальные пропускаются, поэтому может быть выполнен только один из трех блоков кода выше.

Цикл while — это оператор потока управления, который многократно выполняет блок кода, пока его логическое выражение не станет ложным, принимая решение о том, продолжать ли повторение перед каждым циклом. Это похоже на конструкцию if-then, но может выполнять блок кода несколько раз.

Смотрите также

Ссылки

  1. ^ Сноу, Роберта М.; Филлипс, Пол Х. (2007), Принятие критических решений: практическое руководство для некоммерческих организаций, John Wiley & Sons, стр. 44, ISBN 978-0-470-18503-2.
  2. ^ Диксит, Дж. Б. (2009), Основы информатики и программирование на языке C, Firewall Media, стр. 61, ISBN 978-81-7008-882-0.
  3. Йордон, Эдвард (19 марта 1975 г.), «Ясное мышление жизненно важно: вложенные IF не являются злонамеренным заговором, ведущим к ошибкам в программах», Computerworld : 15.
  4. ^ Кларк, Э.М.; Грумберг, Орна ; Пелед, Дорон (1999), Проверка моделей, MIT Press, стр. 51, ISBN 978-0-262-03270-4.
  5. ^ Бен-Акива, Моше Э.; Лерман, Стивен Р. (1985), Анализ дискретного выбора: теория и применение к спросу на поездки, Транспортные исследования, т. 9, MIT Press, стр. 59, ISBN 978-0-262-02217-0.
  6. ^ Кукреджа, Джоти. "Применение двоичной диаграммы принятия решений в анализе цифровых цепей" (PDF) . Университет Южной Калифорнии . S2CID  13980719. Архивировано из оригинала (PDF) 2003-09-28.
  7. ^ Пфеннинг, Фрэнк (28 октября 2010 г.). «Конспект лекций по диаграммам бинарных решений» (PDF) . Школа компьютерных наук Карнеги-Меллона . Архивировано (PDF) из оригинала 2014-03-09 . Получено 26 мая 2020 г. .
  8. ^ "Диаграммы двоичных решений" (PDF) . Кафедра компьютерных наук - Университет Вероны . Архивировано (PDF) из оригинала 2016-04-18 . Получено 26 мая 2020 .
  9. ^ "Программирование - Условные конструкции". www.cs.utah.edu . Получено 2020-05-26 .


Взято с "https://en.wikipedia.org/w/index.php?title=Двоичное_решение&oldid=1223580288"