Автоматизированная система управления санаторным комплексом. Подсистема Диетпитание
2.3.1. Размещение пациентов в столовой
Пациенты санаторного комплекса могут выбирать, будут ли они сидеть за столиками в соответствии с диетой, которую каждому из них назначил врач-диетолог или они будут сидеть за отдельными столиками вместе с теми, с кем они приехали и поселились в санатории (с семьей, друзьями и т.д.). Поэтому столы делятся на «диетические» (20 шт.) и свободные (10 шт). За каждым столом могут разместиться четыре человека.
2.3.2. Проблемные ситуации, возникающие в столовой, и
пути их решения
Человек, прибывший в санаторий, регистрируется в столовой. Информация, поступившая от него в систему, заносится в базу данных "Столовая". Регистрация в столовой необходима для рассадки отдыхающих в столовой; кроме того, если необходима диета, то для соблюдения назначенной врачом-диетологом диеты.
При рассадке отдыхающих в столовой могут возникать проблемные ситуации, которые необходимо оперативно решить. Какие это могут быть ситуации:
1.
Отдыхающий прибывает в санаторий не один, а вместе со
своей семьей или товарищами и, вполне естественно, что они
захотят
сидеть за одним столиком;
2.
Врач-диетолог назначает отдыхающему диету.
Отдыхающий
изъявляет желание сидеть за столиком вместе с людьми,
питающимися с ним по одинаковой диете;
3. Отдыхающему не нравится его окружение за столом, и поэтому, он хотел бы пересесть за другой столик.
Разрешение этих проблемных ситуаций возможно при использовании следующих процедур:
1) рассадки отдыхающих (пациентов) по желанию:
2) рассадки отдыхающих (пациентов) в соответствии с назначенной диетой;
3) пересадки отдыхающих (пациентов) за другой столик.
2.4. Подразделение «Кухня»
Задача заказа блюд на кухне является не менее важной, чем задача рассадки отдыхающих в столовой.
Для решения этой задачи необходимо знать:
1) сколько человек питается по каждой диете;
2) подсчитать количество блюд.
Данные о количестве человек, пребывающих в санатории всего и число пациентов, желающих принимать диетическое питание, подразделение «Кухня» получает из подразделения «Столовая».
Схема взаимодействия подразделения «Кухня» с другими подразделениями санатория представлена на рис. 2.4.1.
Рис. 2.4.1. Схема взаимодействия подразделения «Кухня» с другими подразделениями с/к
Обозначение потоков на рис. 2.4.1:
1 – заявка на приобретение продуктов питания;
2 – доставка продуктов со склада на кухню;
3 – запрос бухгалтерии на количество продуктов, ушедших на приготовление блюд;
4 – перечни продуктов, ушедших на приготовление блюд, и их количество;
5 – данные о количестве пациентов, выбирающих диетическое и общее питание;
6 – потоки готовых блюд.
Поскольку в санатории применяется лечебное (диетическое), так и питание по выбору отдыхающего, то в общем случае на кухне следует
заказать следующее количество блюд:
Кб = КБД+КБС, где
КБ - количество блюд, заказанное на кухне;
КБД - количество блюд, заказанных по диете;
КБС - количество блюд, заказанных по свободному выбору.
2.5. Выводы
Итак, во второй главе была описана вся подсистема «Диетпитание» и ее составляющие подразделения «Столовая», «Кухня» и «Врач-диетолог». Были составлены и проанализированы структурная и функциональная схемы подсистемы. Это необходимо для дальнейшего анализа подсистемы на уровне информационного обеспечения для того, чтобы составить алгоритмы процесса движения данных внутри подсистемы и обмена данными с другими подсистемами санаторного комплекса.
ГЛАВА 3
ИНФОРМАЦИОННОЕ ПРЕДСТАВЛЕНИЕ ПОДСИСТЕМЫ
«ДИЕТПИТАНИЕ» НА ОСНОВЕ МЕТОДА
БЛОЧНЫХ АЛЬТЕРНАТИВНЫХ СЕТЕЙ
3.1. Метод блочных альтернативных сетей
3.1.1. Элементарный блок альтернатив
Пусть задан объект или группа объектов {}. Предположим, что такая совокупность объектов отражается в информационном аспекте в виде некоторого информационного портрета предметной области, представленная множеством атрибутов Аi, где i = 1, 2, ..., n. Будем исходить из того, что Аi покрывают полную совокупность свойств объекта .
Каждый атрибут Аi может принимать множество альтернативных значений . Аi: () (логическое отношение «ИЛИ»). Количество значений атрибута определяется самим атрибутом.
Альтернатива – это необходимость выбора между взаимоисключающими возможностями, каждая из исключающих друг друга возможностей. Набор альтернативных значений, которые может принимать атрибут, имеет непрерывный дискретный характер. Значения являются альтернативными, т. к. предполагается, что в каждый момент времени атрибут может принимать одно и только одно значение. Сложные задачи всегда формируют решения на основе различных сочетаний исходных данных, в силу чего образуются совокупности альтернативных (исключающих друг друга) решений. Для сложного объекта: А = (А1,..., Аi,…, Аn) (логическое отношение «И»).
Каждый атрибут определяется множеством его значений, и решение будет задаваться матрицей атрибутов:
А1 = (a11, …, a1j, …, a1m1)
…………………………..
Аn = (an1, …, anj, …, anmn)
……………………………
AN = (aN1, …, aNj, …, aNmN)
Естественно, что значения атрибутов, а в ряде случаев и сами атрибуты могут выступать в качестве альтернативных характеристик или величин-параметров. В рассмотрение можно включить некоторый атрибут Аn и набор его альтернативных значений anj, если сам атрибут и его значения заданы. Следует отметить, что значения anj атрибута Аn могут иметь непрерывный или дискретный характер. Это могут быть числовые величины или некоторые понятия. Отношение атрибут-значение можно представить в виде первичного дерева иерархии (рис. 3.1).
Здесь атрибут Аn выступает в качестве корневой вершины, а значения anj (j=l,... ,N) определяются как альтернативные, так как предполагается, что в любой момент времени атрибут Аn может принимать одно и только одно значение anj.
Элементарный блок альтернатив (ЭБА) можно представить как поименованную структуру организации данных, т.е. класс, определяющий множество объектов-альтернатив.
Рис.3.1. Первичное дерево альтернатив
Аi - имя блока;
ai1, …, aij , …,aim – значения атрибутов (совокупность альтернатив).
Если представить информацию об атрибуте в иерархической модели, то можно ввести еще один блок, который называется якорь, т.е. выходной блок.
|
|
|
|
Рис.3.2. Первичное дерево альтернатив
с замыкающей вершиной «якорем»
Следует отметить, что в элементарном блоке имеет место три вида вершин:
а) вершины первого ранга: вход и выход;
б) вершины второго ранга: значения атрибутов;
в) вспомогательные вершины: рекурсия и транзит.
В подобной структуре должна быть реализована функция выбора альтернативы (ФВА) при условии существования значения (кода) альтернативы. Обычно подобная функция содержит в своем теле две составляющие: рекурсивный (R) и транзитный (Т) блоки.
Транзитный блок используется в тех случаях, когда ни одна из альтернатив в общем решении не участвует, а в частном случае может выступать как ограничитель для рекурсивного перебора альтернатив. То есть когда ни одно значение атрибута не используется, то можно пройти с входа на выход через транзитную вершину Тi. Если поиск по альтернативным атрибутам Аi продолжается, то путь лежит через рекурсивный блок Ri. Другими словами, рекурсивный блок используется, когда необходимо решить задачу поиска альтернативного значения на массиве альтернатив, т. е. организовать циклический процесс.
В результате дополнив двухуровневую схему атрибута замыкающей вершиной («якорем»), транзитным и рекурсивным вершинами, получим структуру элементарного блока альтернатив (рис.3.3.).
Рис.3.3. Структурная схема элементарного блока альтернатив (ЭБА)
Аi - имя блока;
Ri - рекурсивная вершина;
Ti - транзитная вершина;
A*i - замыкание альтернатив.
Для упрощения совокупность альтернатив назовем блоком альтернатив (БА); упрощенный вид ЭБА представлен на рис.
Рис. 3.4. Упрощенный вид ЭБА
БAi = {ai1, …, aij , …,aim }
Совокупность таких последовательно соединенных элементарных блоков образует простую БАС. ЭБА — это базовый блок для формирования сетей. Его использование дает возможность порождать любые конфигурации сетей или структур.
3.1.2. Алгоритмы навигации на БАС
Для работы с БАС необходимо создать алгоритмы навигации на сети. Существует три метода навигации на сети:
• последовательный;
• параллельный;
• смешанный.
Результатом работы алгоритма навигации является формирование вершинного маршрута. Формируется маршрут М=(). Основная цель таких алгоритмов заключается в определении каждого элемента , в оценке согласованности с другими.
Каждый элемент интерпретируется как частное локальное решение. Маршрут интерпретируется как модель результата решения. Если необходимо сгенерировать некоторую совокупность решений, то формируется несколько маршрутов, образующих парадигму решений. На массиве решений возможны реализации задач анализа, выбора, упорядочивания, оптимизации.
Возможные структуры БАС определяются иерархией отношений между классами объектов-альтернатив.
Последовательная БАС
Для последовательной сети последовательный алгоритм навигации может быть реализован двумя базовыми способами.
1. Прохождение сети реализуется последовательно, начиная с первого a1 и заканчивая последним аN блоками. Алгоритм обращается к блоку a1, просматривает его содержимое и через транзитные вершины передает результат. Далее переходит к следующему блоку. В итоге образуется некоторый вершинный маршрут Мj =(a1j, ..., anj, ..., aNj), который и представляет данные о результате решения. Если какое-то решение несовместно, то выявляется причина несовместимости и ищется новое решение.
2. Алгоритм обращается последовательно к каждому блоку и результат из каждого блока передается обратно в алгоритм. Массив частных решений преобразуется в маршрут, далее процедура продолжается.
При последовательной навигации определяется логика прохождения сети, т.е. порядок входа в каждый из блоков, порядок поиска частного решения внутри блока, порядок выхода из блока, входа в следующий блок и «склеивания» частных решений.
Пусть задан кортеж атрибутов (множество альтернатив):
А = {an: (n = 1, 2, …, n)}. Осуществим последовательную генерацию исходов А* = {an*: (n = 1, 2, …, n)} для каждой из альтернатив с помощью последовательной БАС.
БАС с последовательной стратегией представлена на рис. 3.7.
|
|
|
Рис. 3.7. Пример последовательной разомкнутой трехблочной БАС
|
|
|
Рис.3.8. Пример последовательной замкнутой трехблочной БАС
В последовательных БАС генерируемые альтернативные решения соединяются в одну связку с генерирующими следующего ЭБА попарно. В результате вершины А*n и Аn+1 сливаются в одну Аn+1.
Параллельная БАС
При алгоритме с параллельной организацией навигации возможны как минимум две схемы:
• одноуровневый алгоритм;
• двухуровневый алгоритм.
Одноуровневый алгоритм
По схеме одноуровневого алгоритма все элементы сети связаны друг с другом и включают координирующую и исполнительную функции. Одноуровневый алгоритм является децентрализованной схемой навигации.
Рис. 3.9. Параллельная одноуровневая структура БАС
На рисунке 3.9 связь реализуется через общую транзитивную вершину (раздельный вход и выход).
Можно замкнуть параллельную БАС через:
- вершины транзита и рекурсии;
- включить в качестве дополнительной некоторую вершину агрегирования.
При параллельной генерации решений в каждом блоке БАi работает свой алгоритм формирования исходов. Алгоритмы работают одновременно, и матрица альтернативных решений заполняется построчно.
Двухуровневый алгоритм
На верхнем уровне двухуровневого алгоритма (рис.3.10) находится координирующий алгоритм, а на нижнем - исполняющий. По команде координирующего алгоритма каждый исполняющий алгоритм входит в свой блок, определяет частное решение внутри блока и передает результат в координирующий алгоритм. Последний осуществляет функцию сопряжения частных решений в единое общее решение. Этот процесс может быть итеративным, формализующим соответственные парадигмы решений. Данный двухуровневый алгоритм является централизованной схемой навигации.
Рис. 3.10. Параллельная двухуровневая структура БАС
3.1.3. Маршруты на БАС
Применение блочно-альтернативных сетей для решения различного рода задач (анализ, синтез, классификация и т.д.) основано на использовании их свойства порождать множество альтернативных маршрутов МN. При описании допустимых множеств маршрутов МN на сетях , целесообразно исходить из блочной структуры альтернативной сети.
В БАС используется вершинный тип маршрутов. С точки зрения сети маршруты подразделяются на внутриблоковые и сетевые. Последние, в свою очередь, формируются из внутриблоковых и межблоковых.
Внутриблоковый – это такой маршрут МiN МN (i = 1, …, n), который тем или иным образом связывает две соседние вершины () первого ранга, принадлежащие i-му блоку. Другими словами, внутриблоковый маршрут формируется как последовательность вершин, связанных