Пример № 1.
Рассмотрим пример описания вычислительного процесса с помощью таблицы решений. Предположим, что Интернет-провайдер использует следующее распределение льгот на свои услуги.
абоненты, пользующиеся услугами системы более 5 лет, получают скидку 20%;
абоненты, регулярно оплачивающие счета, получают скидку 10%;
абоненты, для которых объем оказанных им услуг превышает 100000 р., получают скидку 15%.
абонент со стажем более 5 лет лишается скидки на 20% в случае, если он нерегулярно производит оплату счетов.
Таблица 2
Стандартная форма таблицы решений
-
1
2
3
4
5
6
7
8
Стаж пользования > = 5 лет
+
+
+
+
-
-
-
-
Регулярность оплаты
+
+
-
-
+
+
-
-
Объем услуг > = 100 000
+
-
+
-
+
-
+
-
45%
1
30%
1
25%
1
10%
1
15%
1
1
0%
1
1
Оптимизация таблицы решений.
Оптимизация таблицы решений сводится к сокращению количества столбцов. Для этого необходимо выполнение определенных условий. Например, в таблице 2 правила (столбцы) 3 и 7, 4 и 8 предполагают одни и те же действия. Говорят, что правила 3 и 7, 4 и 8 безразличны к значению условия 1. Такие столбцы таблицы могут быть объединены.
Объединение столбцов таблицы решений выполняется с помощью следующего алгоритма:
Шаг 1. Производится поиск пары правил (столбцов) для которых:
определено одно и то же действие;
значения условий совпадают, за исключением одного и только одного условия, для которого значения различны.
Шаг 2. Выбранная пара правил заменяется на одно. В строке условия, значения которого различны, ставится символ «*».
Шаг 3. Шаг 1 и Шаг 2 повторяются до тех пор, пока не будут произведены все возможные объединения.
Результат применения алгоритма приведен ниже (см. Таблицу 3). Столбцы 3 и 7, 4 и 8 объединены, в качестве значения условия, к которому правила безразличны (стаж пользования), проставлен символ «*».
Таблица 3
Таблица решений с объединенными колонками
-
1
2
3/7
4/8
5
6
Стаж пользования > = 5 лет
+
+
*
*
-
-
Регулярность оплаты
+
+
-
-
+
+
Объем услуг > = 100 000
+
-
+
-
+
-
45%
+
30%
+
25%
+
10%
+
15%
+
0%
+
