Таблица принятия решений

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

Таблицы принятия решений, как правило, разделяются на четыре квадранта, как показано ниже.

Условия Варианты выполнения условий
Действия Необходимость действий

В простейшем случае здесь Условия — список возможных условий, Варианты выполнения условий — комбинация из выполнения и/или невыполнения условий из этого списка. Действия — список возможных действий, Необходимость действий — указание надо или не надо выполнять соответствующее действие для каждой из комбинаций условий. Например, для ситуации «неожиданно погас свет» таблица принятия решений может быть такой:

Свет в соседней комнате горит Да Нет Нет
Свет у соседей горит - Да Нет
Поменять лампочку Х
Проверить пробки Х
Позвонить электрику Х Х
Позвонить диспетчеру Х

Вариантов выполнения условия может быть не два: да или нет, а несколько, например цвет может быть красным, оранжевым, синим. В более сложных таблицах может применяться нечёткая логика.

Действия могут быть элементарными или ссылаться на другие таблицы принятия решений. Необходимость выполнения действий может быть неупорядоченной, как в данном примере, или упорядоченной. В последнем случае если при определённой комбинации выполнения условий возможно выполнение нескольких действий, то в таблице решений указывается их приоритет.

Ссылки

  • Rufus-decision — реализация таблиц принятия решений на языке Ruby