Таблица решений - Decision table

Гольф dataset.png

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

Обзор

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

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

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

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

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

Пример

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

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

Ниже приводится таблица сбалансированных решений (создано Systems Made Simple).

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

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

Преимущества программной инженерии

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

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

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

История

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

Встроенные в программу таблицы решений

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

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

Таблицы управления

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

Реализации

  • Filetab, изначально из NCC
  • ДЕТАБ / 65, 1965, АКМ
  • FORTAB от Rand в 1962 году, разработанный для встраивания в FORTRAN[12]
  • А Рубин реализация существует с использованием Уменьшение карты чтобы найти правильные действия на основе определенных входных значений.[13]

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

Рекомендации

  1. ^ Ли Цзин (1 апреля 2015 г.). «Учебное пособие по SEEM 3430: таблицы решений» (PDF). п. 23. Получено 11 ноября 2017.CS1 maint: ref = harv (связь)
  2. ^ «Создание таблицы решений в бизнес-правилах». Справочный центр Oracle. 6 августа 2017 г.. Получено 11 ноября 2017.
  3. ^ а б Росс, Рональд Г. (2005). "Таблицы решений, часть 2 ~ Путь к завершению". Журнал бизнес-правил. 6 (8). Получено 11 ноября 2017.
  4. ^ а б c Сноу, Пол (19 июля 2012 г.). «Таблицы решений». DTRules: механизм правил таблицы решений на основе Java. Получено 11 ноября 2017.
  5. ^ Ли Цзин 2015, п. 24-25.
  6. ^ Роджерс, Уильям Т. «Примеры таблицы решений: медицинское страхование». Системный анализ и дизайн Университета Святого Ксавьера. Архивировано из оригинал 29 марта 2007 г.
  7. ^ «Архивная копия». Архивировано из оригинал на 2012-05-30. Получено 2010-07-07.CS1 maint: заархивированная копия как заголовок (связь)
  8. ^ Wets, Герт; Витлокс, Франк; Тиммерманс, Гарри; Вантиенен, Ян (1996). «Моделирование выбора местоположения с использованием нечетких таблиц решений». Новые рубежи в нечеткой логике и вычислениях: проводимая раз в два года конференция Североамериканского общества обработки нечеткой информации - NAFIPS, 1996 г.. Раз в два года конференция Североамериканского общества обработки нечеткой информации. Беркли, Калифорния: IEEE. С. 80–84. Дои:10.1109 / NAFIPS.1996.534708. ISBN  0-7803-3225-3.
  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. Комп. J. Vol. 9 № 3 стр. 92 (сентябрь 1977 г.).
  • Фишер, Д. (1966) "Данные, документация и таблицы решений" Comm ACM Vol. 9 № 1 (январь 1966 г.) с. 26–31.
  • General Electric Company (1962 г.) Справочное руководство GE-225 TABSOL и руководство по применению GF-224 TABSOL CPB-l47B (июнь 1962 г.).
  • Гриндли, К. Б. Б. (1968) "Использование таблиц решений в систематике" Comp. J. Vol. 11 № 2 стр. 128 (август 1968 г.).
  • Джексон, M.A. (1975) Принципы разработки программ Academic Press
  • Майерс, Х.Дж. (1972) «Компиляция оптимизированного кода из таблиц решений» IBM J. Res. & Development (сентябрь 1972 г.) стр. 489–503.
  • Поллак, С. (1962) «DETAB-X: улучшенный компьютерный язык, ориентированный на бизнес». Записка Rand Corp. RM-3273-PR (август 1962 г.)
  • Шумахер, Х. и Севчик, К. (1976) "Синтетический подход к преобразованию таблицы решений" Comm. ACM Vol. 19 № 6 (июнь 1976 г.) с. 343–351
  • CSA, (1970): Z243.1–1970 для таблиц решений, Канадская ассоциация стандартов
  • Йоргенсен, Пол С. (2009) Моделирование поведения программного обеспечения: подход мастера. Публикации Ауэрбаха, CRC Press. Глава 5.

внешняя ссылка