Таблица решений

Таблица, определяющая действия в зависимости от условий

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

Обзор

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

Чтобы сделать их более краткими, многие таблицы решений включают в свои альтернативы условий символ « неважно» . Это может быть дефис [1] [2] [3] или пробел, [4] хотя использование пробела не рекомендуется, поскольку это может просто указывать на то, что таблица решений не была завершена. [ необходима цитата ] Одно из применений таблиц решений — выявить условия, при которых определенные входные факторы не имеют значения для действий, которые необходимо предпринять, что позволяет пропустить эти входные тесты и тем самым оптимизировать процедуры принятия решений. [5]

Демонстрация символа «все равно»
Правила
УсловияЧувствуете себя энергичным?ДаНетДаНет
Идет дождь?ДаДаНетНет
ДействияОставайтесь внутри.Может бытьМожет быть
Иди беги.Может быть
Ухаживайте за садом.Может бытьМожет быть
Правила
УсловияЧувствуете себя энергичным?ДаНет
Идет дождь?ДаНетНет
ДействияОставайтесь внутри.Может быть
Иди беги.Может быть
Ухаживайте за садом.Может бытьМожет быть
В приведенных выше таблицах содержится идентичная информация, но во второй таблице для краткости в качестве символа «неважно» используется дефис.

Помимо базовой структуры из четырех квадрантов, таблицы решений значительно различаются по способу представления альтернатив условий и записей действий. [6] [7] Некоторые таблицы решений используют простые значения «истина/ложь» для представления альтернатив условию (аналогично if-then-else), другие таблицы могут использовать пронумерованные альтернативы (аналогично switch-case), а некоторые таблицы даже используют нечеткую логику или вероятностные представления для альтернатив условий. [8] Аналогичным образом записи действий могут просто представлять, должно ли быть выполнено действие (отметьте действия для выполнения), или в более сложных таблицах решений — последовательность действий для выполнения (пронумеруйте действия для выполнения).

Таблица решений считается сбалансированной [4] или полной [3] , если она включает в себя все возможные комбинации входных переменных. Другими словами, сбалансированные таблицы решений предписывают действие в каждой ситуации, где предоставляются входные переменные. [4]

Пример

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

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

Устранение неполадок принтера
Правила
УсловияПринтер печатаетНетНетНетНетДаДаДаДа
Красный свет мигает.ДаДаНетНетДаДаНетНет
Принтер распознан компьютеромНетДаНетДаНетДаНетДа
ДействияПроверьте кабель питания.Может быть
Проверьте кабель принтер-компьютерМожет бытьМожет быть
Убедитесь, что установлено программное обеспечение принтера.Может бытьМожет бытьМожет бытьМожет быть
Проверить/заменить чернилаМожет бытьМожет бытьМожет быть
Проверьте, нет ли замятия бумаги.Может бытьМожет быть

Это всего лишь простой пример, и он не обязательно соответствует реальности устранения неполадок принтера. Тем не менее, он демонстрирует, как таблицы решений могут масштабироваться для нескольких условий со многими возможностями.

Преимущества разработки программного обеспечения

Таблицы решений, особенно в сочетании с использованием предметно-ориентированного языка , позволяют разработчикам и экспертам по политике работать с одной и той же информацией — самими таблицами решений.

Инструменты для преобразования вложенных операторов if из традиционных языков программирования в таблицы решений также могут использоваться в качестве инструмента отладки. [9] [10]

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

История

В 1960-х и 1970-х годах для бизнес-программирования был популярен ряд языков, «основанных на таблицах решений», таких как Filetab .

Программа встроенных таблиц решений

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

Таблица статических решений
ВходУказатель функции
"1"Функция 1 (инициализация)
"2"Функция 2 (процесс 2)
"9"Функция 9 (завершение)

Контрольные таблицы

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

Реализации

  • Filetab , изначально из NCC
  • DETAB/65, 1965, ACM
  • FORTAB от Rand в 1962 году, разработанный для встраивания в FORTRAN [12]
  • Существует реализация Ruby, использующая MapReduce для поиска правильных действий на основе определенных входных значений. [13]

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

Ссылки

  1. ^ LI Jing (1 апреля 2015 г.). "SEEM 3430 Tutorial: Decision Tables" (PDF) . стр. 23 . Получено 11 ноября 2017 г. .
  2. ^ "Создание таблицы решений в бизнес-правилах". Oracle Help Center . 6 августа 2017 г. Получено 11 ноября 2017 г.
  3. ^ ab Ross, Ronald G. (2005). "Таблицы решений, часть 2 ~ Путь к полноте". Business Rules Journal . 6 (8) . Получено 11 ноября 2017 г. .
  4. ^ abc Snow, Paul (19 июля 2012 г.). «Таблицы решений». DTRules: Java Based Decision Table Rules Engine . Получено 11 ноября 2017 г.
  5. ^ ЛИ Цзин 2015, стр. 24-25.
  6. ^ Роджерс, Уильям Т. "Примеры таблиц решений: медицинское страхование". Системный анализ и проектирование Университета Святого Ксавьера . Архивировано из оригинала 29 марта 2007 г.
  7. ^ "Таблицы решений". Архивировано из оригинала 2012-09-08 . Получено 2010-07-07 .
  8. ^ Wets, Geert; Witlox, Frank; Timmermans, Harry; Vanthienen, Jan (1996). "Моделирование выбора местоположения с использованием таблиц нечетких решений". Новые рубежи в нечеткой логике и вычислениях: Двухгодичная конференция Североамериканского общества обработки нечеткой информации 1996 года – NAFIPS. Двухгодичная конференция Североамериканского общества обработки нечеткой информации. Беркли, Калифорния: IEEE. стр. 80–84. doi :10.1109/NAFIPS.1996.534708. ISBN 0-7803-3225-3. S2CID  62056954.
  9. ^ "Реальный пример CCIDE"
  10. ^ "Опыт работы с процессором таблиц решений Cope". Архивировано из оригинала 2017-05-04 . Получено 2010-07-07 .
  11. Удо В. Пуч, «Перевод таблиц решений», ACM Computing Surveys, том 6, выпуск 2 (июнь 1974 г.) Страницы: 125–151 ISSN  0360-0300
  12. ^ "FORTAB: Язык таблиц решений для научных вычислительных приложений", 1962, Рэнд
  13. ^ Александр Уильямс (2015). "Парсер таблиц решений Ruby"

Дальнейшее чтение

  • Дуайер, Б. и Хатчингс, К. (1977) «Оптимизация блок-схемы в Cope, таблица решений с несколькими вариантами выбора» Aust. Comp. J. Vol. 9 No. 3 p. 92 (сентябрь 1977 г.).
  • Фишер, Д. Л. (1966) «Данные, документация и таблицы решений» Comm ACM Vol. 9 No. 1 (январь 1966) стр. 26–31.
  • General Electric Company (1962) Справочное руководство GE-225 TABSOL и руководство по применению GF-224 TABSOL CPB-l47B (июнь 1962).
  • Гриндли, CBB (1968) «Использование таблиц решений в систематике» Comp. J. Vol. 11 No. 2 стр. 128 (август 1968 г.).
  • Джексон, MA (1975) Принципы разработки программ Academic Press
  • Майерс, Х. Дж. (1972) «Составление оптимизированного кода из таблиц решений» IBM J. Res. & Development (сентябрь 1972 г.) стр. 489–503.
  • Поллак, С.Л. (1962) «DETAB-X: улучшенный компьютерный язык, ориентированный на бизнес» Rand Corp. Memo RM-3273-PR (август 1962)
  • Шумахер, Х. и Севчик, К. К. (1976) «Синтетический подход к преобразованию таблиц решений» Comm. ACM Vol. 19 No. 6 (июнь 1976) стр. 343–351
  • CSA, (1970): Z243.1–1970 для таблиц решений, Канадская ассоциация стандартов
  • Йоргенсен, Пол К. (2009) Моделирование поведения программного обеспечения: подход мастера. Auerbach Publications, CRC Press. Глава 5.
  • Программное обеспечение RapidGen для версий Windows, Unix, Linux и OpenVMS инструментов программирования и компиляторов на основе таблиц решений
  • Программное обеспечение LogicGem для процессора таблиц решений Windows для совершенствования логики и бизнес-правил
  • Программное обеспечение LF-ET для Windows, Unix, Linux — редактор таблиц решений, генератор программ и генератор тестовых случаев.
  • [1] Пример таблицы решений
Взято с "https://en.wikipedia.org/w/index.php?title=Decision_table&oldid=1246340786"