Правила представления ИЛМ в каноническом виде кратко изложены в п. 4.3.1.7. Там же приведен пример использования неформального способа упорядочения ИнО по уровням иерархии. Хотя в рассматриваемом примере количество ИнО в ИЛМ мало, длина цепочек, составляющих последовательность ИнО, связанных отношениями типа “Один-ко-многим”, невелика и можно расположить ИнО по уровням иерархии, не прибегая к формальным способам, в учебных целях рассмотрим формальный способ.
Формальный подход основан на использовании матрицы смежности – квадратной матрицы, количество строк (и столбцов) которой равно количеству ИнО. Значения элементов матрицы Xij = 1 ( i – номер строки, j – номер столбца) определяются по формулам:
Xij = 1, если ИОi : Иоj = 1 : М,
Xij = 0, если ИОi : Иоj ¹ 1 : М.
Подсчитываются суммы элементов по столбцам. Равенство суммы нулю означает, что ИнО столбца выносится на текущий иерархический уровень. Для получения следующего уровня
иерархии удаляются строки и столбцы матрицы, соответствующие выделенным на текущий иерархический уровень ИнО. Этот процесс продолжается до тех пор, пока в итоговой строке получатся только нулевые суммы.
Другими словами, значение “1” в матрице смежности записывается в позиции на пересечении “строка-столбец” в том случае, если между ИнО, записанным в названии строки, и ИнО, имя которого указано в названии столбца, имеется связь “Один-ко-многим”. Если сумма по столбцу равна нулю, то этот столбец и строка с таким же именем вычеркиваются, а оставшиеся столбцы и строки образуют новую матрицу смежности. Вычеркнутые ИнО выносятся на нулевой уровень иерархии.
Ниже приведена исходная матрица смежности для рассматриваемого примера.
ТТН | Отгрузка | ЦН | Сдача | Изделие | Цех | Склад | |
ТТН | |||||||
Отгрузка | |||||||
ЦН | |||||||
Сдача | |||||||
Изделие | |||||||
Цех | |||||||
Склад | |||||||
Сумма по столбцу |
В исходной матрице смежности нулевые суммы образовались в столбцах “ТТН”, “Цех” и “Склад”. Следовательно, в этой матрице вычеркиваются соответствующие им столбцы и строки, и на нулевой уровень иерархии выносятся ИнО с этими названиями. Теперь получим вторую матрицу смежности, образованную вычеркиванием строк и столбцов исходной матрицы.
Во второй матрице смежности нулевые суммы образовались в столбцах “ЦН” и “Изделие”. Следовательно, эти столбцы в ней вычеркиваются, а ИнО “ЦН” и “Изделие” выносятся на первый уровень.
Отгрузка | ЦН | Сдача | Изделие | |
Отгрузка | ||||
ЦН | ||||
Сдача | ||||
Изделие | ||||
Сумма по столбцу |
Вычеркиванием строк и столбцов второй матрицы получим третью матрицу смежности.
Отгрузка | Сдача | |
Отгрузка | ||
Сдача | ||
Сумма по столбцу | 0 |
Таким образом, на второй (и последний) уровень иерархии выносятся ИнО “Отгрузка” и “Сдача”. На рис. 4.14 представлена ИЛМ рассматриваемого примера в каноническом виде.
Рис. 4.14. ИЛМ ПО “Движение готовой продукции на складах”