зация управляющих воздействий на нулевом уровне отражена в блок-схеме с помощью блоков ввода-вывода. Осуществляемые с помощью УВМ 1-го уровня расчеты отображаются в виде блоков процесса, характеризующих выполнение операций, в результате которых изменяются значение, форма представления и расположение данных.
Список литературы
1. Кучеров О.Ф., Маневич В.Е., Клименко В.В. Автоматизированные системы управления производством стекла,- Л.: Строй-издат, 1980,- 178 с.
2. Марголис Б.И., Шичков A.B. Математическое моделирование и оптимизация технологического процесса отжига стеклоиз-делий // Автоматизация и проектирование в промышленных системах: Межвуз. сб. науч. тр. / ТГТУ,- 1994,- С.65-69.
МЕТОД ДИСКРЕТНОЙ КОММУТАЦИИ УСТРОЙСТВ АСИНХРОННОЙ
ПЕРЕДАЧИ ДАННЫХ
В.Б. Десятов
В настоящее время на различных предприятиях все чаще возникает задача объединения удаленных сетей подразделений и отдельно стоящих персональных компьютеров в единую систему обмена информацией. В мировой практике существует достаточно много средств для решения этих задач. Но все они, как правило, опираются на дорогостоящее оборудование и качественные каналы. В нашей стране в условиях финансовых трудностей для этого в основном применяют обычные коммутируемые телефонные каналы.
Длительный этап соединения в телефонной сети, предваряющий передачу данных, делает также невозможным полную реализацию некоторых важных свойств, характерных для локальных сетей [1]. Одним из таких свойств является свойство прозрачности сети [2], которое заключается в сокрытии сетевых процессов от пользователя.
Пользователь, обращаясь к сетевым ресурсам в прозрачной сети, не замечает ее присутствия. Преимущества такого взаимодействия заключаются в простоте, оперативности и наличии хорошо проработанных формальных правил совместного использования сетевых ресурсов.
Дискретная коммутация устройств асинхронной передачи данных позволяет построить прозрачную сеть, охватывающую всю территорию предприятия.
При этом сеть строится на основе стандартных асинхронных портов с внешним интерфейсом Яв-422, который увеличивает дальность связи до нескольких километров, а в качестве каналов могут
применяться обычные телефонные каналы местной АТС предприятия.
Необходимость применения дискретной коммутации вызвана ограниченностью внешнего интерфейса асинхронного порта в создании развитых сетейдея дискретной коммутации заключается в том, что каналы коммутируются не на время передачи всего запроса, а лишь на короткое время, необходимое для передачи небольшой его части. В единицу времени таких соединений, вызываемых разными станциями, может быть достаточно много, что позволяет представить одновременную передачу запросов всеми станциями сети.
Многовариантность реализации коммутационного устройства, алгоритмов коммутации, определяемых большим набором случайных факторов, действующих в системе, сделали необходимым обоснование принимаемых решений.
В результате проведенных исследований были определены функциональная и структурная модели сети, разработаны методы коммутации и совместного использования коммутационной среды.
Полученные результаты были использованы при построении протяженной (более 3 км) равноранговой сети персональных компьютеров ШМ РС.
Список литературы
1. Нанс Б. Программирование в локальных сетях. // Инфо-троника, 1992.
2. Мартин Дж. Вычислительные сети и распределенная обработка данных. -М.: Финансы и статистика, 1985.
СРЕДСТВА ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ИНФОРМАЦИИ В СИСТЕМАХ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ
А. П. Еремеев, Д. А. Тихонов
Одной из главных проблем при реализации интеллектуальных (экспертных) систем поддержки
принятия решений реального времени (СППР РВ) является необходимость поиска приемлемого реше-
ния в условиях довольно жестких временных ограничений. Время, отводимое на принятие решения, определяется длительностью интервала от момента возникновения аномальной (проблемной) ситуации до момента появления необратимых изменений в технологическом процессе. Число наблюдаемых параметров для сложного объекта может достигать многих сотен и тысяч, что делает процесс принятия решений на основе последовательного анализа недопустимо длительным во времени [1]. Для эффективного выполнения возложенных на нее функций СППР РВ должна ориентироваться на максимально параллельную обработку информации.
В статье рассматриваются средства параллельной обработки информации в интеллектуальных СППР РВ, создаваемых на основе высокоэффективного инструментального комплекса G2-GDA [2].
Уровни параллелизма
Известно, что параллелизм, присущий самой природе решаемой задачи или исследуемого процесса, часто интерпретируется как внешний параллелизм, в отличие от внутреннего параллелизма, характеризующего собственно возможности реализации алгоритма (программы) обработки информации.
Рассматривая вычислительную систему как про-граммно-аппаратный комплекс в целом, можно выделить следующие уровни внешнего и внутреннего параллелизма:
- параллельная работа всего комплекса как системы совместно работающих отдельных машин (процессоров, виртуальных машин и т.п.);
- параллельное выполнение программ, состоящих из программных модулей, на отдельной машине;
- одновременное выполнение собственно программных модулей;
- параллелизм на уровне отдельного модуля;
- параллелизм на уровне отдельной команды.
Первые три уровня относятся к внешнему, а последние два к внутреннему параллелизму. Максимальное быстродействие в решении задачи можно получить лишь в случае, когда уровень параллелизма задачи, не превосходит уровня параллелизма вычислительной системы, на которой решается данная задача.
Для представления знаний в СППР РВ наиболее продуктивной является объектно-ориентированная модель представления знаний в сочетании с продукционными правилами для поиска решения [1-3].
Рассматривая продукционные модели как средство представления и оперирования знаниями, можно выделить два уровня параллелизма [4,5]:
• мелкоструктурный (fine-grain), относящийся к параллелизму внутреннего уровня;
• крупноструктурный (large-grain), являющийся параллелизмом внешнего уровня.
Мелкоструктурный - параллелизм на уровне программных инструкций, крупноструктурный - на уровне задач (программных модулей). Продукционным моделям более свойственен мелкоструктурный параллелизм, хотя можно говорить и о параллельной обработке целых подсистем продукций, например при решении задач прогнозирования или планирования.
Для реализации различных уровней параллелизма в СППР РВ необходимо наличие соответствующих средств поддержки. Опыт последних лет показал, что таким средством является комплекс конструирования экспертных систем РВ G2 (Gensym Corp.,USA) [2,4,6-8] и его графическое расширение GDA (G2 Diagnostic Assistant).
Параллелизм на уровне разработки
Комплекс G2-GDA поддерживает многопользовательский подход к созданию программного продукта (приложения). При этом каждый разработчик имеет доступ к соответствующей базе знаний (БЗ), находящейся на сервере, через средство TELE-WINDOWS, которое обычно находится на другой ЭВМ (клиенте). С2-приложение может быть реализовано не только на различных ЭВМ, но и с использованием нескольких G2, взаимодействующих между собой. Таким образом, уже на уровне разработки приложения возможно максимально распараллелить работу и реализовать параллелизм самого верхнего уровня.
Параллелизм на уровне задач, процедур и программных модулей
В рамках одного приложения может одновременно работать несколько модулей, выполняющих определенные действия. Например, для СППР РВ сложного объекта типа энергоблока [3,8] необходимо разбить весь программный комплекс на модули, которые соответствовали бы различным подсистемам объекта. Это делается для того, чтобы не было путаницы в огромном числе параметров и графиков и лицо, принимающее решение (ЛПР) имело бы возможность наблюдать только за своей подсистемой и лишь в случае необходимости обращаться к другим. Данный уровень можно трактовать как следующую (более низкую) степень внешнего параллелизма.
При параллельном выполнении ряда задач может возникнуть необходимость обмена какими-либо данными и соответственно проблема синхронизации данных. Для организации синхронного взаимодействия между блоками различных подсистем используются продукционные правила типа whenever и when.
Еще одним способом распараллеливания процесса поиска решения в системе G2 является распараллеливание внутри процедур и методов. Для этого применяется конструкция do in parallel, которая служит для одновременного выполнения нескольких независимых операторов и имеет следующий вид.
do in parallel
01;
02;
On; end;
Все операторы Oi выполняются параллельно, и после их завершения выполняются операторы, следующие за оператором end.
Эта конструкция очень полезна для ситуаций, когда необходимо одновременно открыть или закрыть несколько рабочих пространств, переместить их или выполнить любые другие операции с пространствами.
Параллелизм на уровне правил
Комплекс G2-GDA поддерживает 6 типов правил: Initialy, Unconditionaly, Whenever, When, If, For.
Все правила типа Initialy начинают выполняться параллельно при запуске приложения. В этом правиле можно активизировать какую-либо процедуру, присвоить параметрам или переменным начальные значения, открыть нужные для работы подпространства. Например:
Initialy conclude that the actual-zn of m79 is 30 (при инициализации заключить, что параметр actual-zn объекта т79 есть 30);
Initialy start get-message( ) (при инициализации запустить процедуру get-message()).
Правила типа Unconditionaly безусловно производят определенные действия всякий раз, когда они активизируются, и выполняются параллельно, как и правила Initialy. Активизацию этих правил можно производить через определенный промежуток времени или по какому-либо условию.
Правила типа When и Whenever похожи. Правило When активизируется, когда выполняется некоторое логическое условие, a Whenever активизируется, когда совершается некоторое событие. Если в данный момент времени активны несколько правил When или Whenever, то будут выполняться заключения каждого такого правила. Аналогично и для правила типа If, которое отличается от правила When тем, что на его основе можно строить сложные схемы рассуждений типа деревьев решений [4,8].
Примеры использования данных правил:
When actual-zn of т 79 is normal conclude that the status of m79 is ok
(когда параметр actual-zn объекта m79 имеет нормальное значение, заключить, что параметр status объекта т79 есть ok);
Whenever actual-zn of т79 received a value
unconditionaly conclude that the level of m79 is work
(всякий раз, как параметр actual-zn объекта т79 получает значение, безусловно заключить, что параметр level объекта т79 есть work).
If actual-zn of т79 is normal conclude that the status of m79 is ok
(если параметр actual-zn объекта m79 имеет нормальное значение, заключить, что параметр status объекта т79 есть ok);
Правило типа For вместе с действием определяет пространство его выполнимости, например: For any m conclude that status of m is ok (для любого объекта m установить в атрибуте status значение ok).
При параллельной обработке правил, возможна ситуация их некорректного выполнения, если правила имеют противоречивые заключения (то есть указывают на несовместные действия). Например: Whenever actual-zn of т79 received a value unconditionaly conclude that the status of m79 is ok
Whenever actual-zn of m79 received a value unconditionaly conclude that the status of m 79 is notok.
Так как оба правила выполняются независимо друг от друга и параллельно, то неясно, какое значение примет параметр status: ok или not ok. Это довольно очевидный пример противоречивых правил, который легко обнаружить при заполнении БЗ. Но в большинстве случаев правила сложные, используются цепочки прямого (forward chaining) и обратного (backward chaining) связывания правил, когда противоречия могут быть скрыты и возникать только на стадии активизации правил, что может повлечь их некорректное выполнение. Таким образом, разработчику приложения требуются средства, позволяющие обнаруживать взаимозависимости правил и исключать возможные противоречия, ведущие к некорректности параллельной обработки.
Параллелизм внутри правил
Помимо распараллеливания на уровне правил в G2-GDA существует также возможность распараллелить процесс обработки и внутри самих правил, то есть реализовать несколько уровней мелкоструктурного параллелизма. Для организации выполнения определенных действий для целого множества объектов одного и того же типа применяются обобщенные правила. При этом один и тот же процесс активизируется параллельно для всего набора объектов. Для построения обобщенных правил применяются следующие конструкции:
• for - позволяет выполнять определенные действия для объектов одного типа. Например, можно параллельно выводить заключение о состоянии любого из насосов (pump), присутствующих в системе: for any pump
if the power of the pump is off and the flow of the pump > 0.001
then conclude that the condition of the pump is dripping
(для любого насоса, если питание насоса выключено и поток насоса больше 0.001, то заключить, что состояние насоса есть "протекающий").
• every - позволяет выполнять определенные действия для некоторых атрибутов (параметров, переменных) объектов одного типа. Например, можно одновременно присваивать начальные или другие значения объему всех баков (tanks) системы:
conclude that the volume of every tank = 0 ( заключить, что объем кажд&го бака равен 0).
• local names (локальные имена) - задаются неявно посредством своего появления в общих правилах. Первое появление имени является его определением, а последующие - ссылки на представляемый им элемент. Использование локальных имен сокращает правила и делает их более наглядными, например:
For any pump Р connected to any tank if the flow ofP < 1 and the flow of P > 0.001 then conclude that the condition ofP is dripping
(символ P используется здесь как локальное имя для любого насоса).
Задание порядка выполнения действий и синхронизация событий
Правила можно определять с использованием логической связки AND в консеквенте (заключении) правила, например:
whenever the actual-zn of M76 < the lowset of M76
then conclude that the status ofM76 is lower AND start show-mes (M76)
(правило означает, что всякий раз, как значение параметра actual-zn объекта М76 станет меньше нижней уставки, то правило активизируется и обе части консеквента будут выполнены параллельно, то есть будет сделано заключение, что параметр status объекта т76 понижен и запущена процедура выдачи сообщения show-mes).
Как уже отмечалось, в ряде случаев параллельная обработка недопустима, в частности, если действия правил могут зависеть друг от друга и выполнение одного из них должно предшествовать (инициировать) выполнению другого. Например, необходимо изменить какой-либо параметр на время имитации реального процесса, а затем вновь вернуть в начальное положение. Для таких случаев вместе с логической связкой AND используется конструкция in order, с помощью которой устанавливается порядок выполнения определенных действий. Например:
Unconditionaly in order conclude that the status of Boltl is on
AND wait for 5 seconds AND conclude that the status of Boltl is off (в правше все действия будут выполняться строго последовательно: устанавливается, что параметр status объекта Boltl (Задвижка 1) есть on (открыто), затем ожидание 5 секунд и установка параметра status в состояние off (закрыто)).
С помощью использования общих конструкций внутри правил в прототице была реализована возможность одновременного просмотра графиков изменения ряда параметров. Используя технологию полиэкранов, ЛПР может, уменьшив рабочие простран-
Рис.1. Пример информационного диаграммы потоков
ства, просматривать графики всех интересующих его параметров, наблюдаемого объекта и его подсистем.
Для организации логических и арифметических операций и их параллельной обработки (уровень внутреннего параллелизма) используются блоки AND ("И"), OR ("ИЛИ"), N TRUE (голосование), синхронизации и сдерживания.
Блок AND передает значение »true, если все его входы есть .true. Данному блоку необходимо дождаться значений на каждый вход, поэтому одновременное поступление значений на все входы минимизирует время ожидания. Блоку OR достаточно поступления на какой-либо один вход значения .true, в то время как другие входы могут быть не означены (unknown). Здесь параллелизм существенен в случае, когда все входы имеют значение false, так как иначе можно достаточно долго ожидать результата от рассматриваемого блока и тем самым задерживать контроль над протеканием процесса.
Пример информационной диаграммы потока, определяющей последовательно-параллельное выполнение блоков, приведен на рисунке 1, где блоки 1 и
4 - блоки суммирования, 2 - умножения, 3 - определения выхода за пределы значений, 5 - равенства и 6 - блок AND.
Внешний параллелизм на уровне модулей можно проиллюстрировать на примере модуля прогнозирования изменения значений параметров (рис.2). Для проверки состояния непрерывного параметра при прогнозировании используется одновременная проверка, является ли его актуальное значение выше или ниже установленных границ. Проверка сразу двух возможных состояний параметра целесообразна, так как действия ЛПР существенно отличаются в обоих случаях.
На данном уровне мы имеем внешний параллелизм. Обратимся теперь к внутреннему.
Блок N TRUE работает подобно функции голосования. Его результатом является .true, если N или более его входных значений есть »true. При простом последовательном отслеживании входных значений данного блока могут возникнуть проблемы, подобные использованию блока AND. Парайлельная обра-
ботка входных данных позволяет минимизировать
время вычисления результата.
На этапе выполнения потоковой схемы также могут возникнуть сложности по причине того, что в логическом блоке корректно сравниваются значения из двух различных входных портов, если эти значения поступили одновременно (или в приблизительно одинаковое время).
Однако значения, которые были созданы в одно и то же время, могут распространяться (до соответствующего блока) различное время из-за неодинаковой длительности обработки или сетевого передвижения. Кроме того, время выполнения каждого блока (время прохождения данных через блок) отличается друг от друга (например, на суммирование уходит меньше времени, чем на определение результата блока N TRUE). Практически задержки могут оказаться значительными.
Для подобных случаев в GDA имеется блок, который полагает, что два значения будут одновременными (и их можно обрабатывать параллельно), если они находятся внутри периода времени, который определяется с помощью специального атрибута С oncur rency - windo w.
Например, предположим, что Concurrency-window - 1 секунда. Если мы получаем значение в верхний входной порт и через полсекунды в нижний, блок полагает, что два значения приходят одновременно, сохраняет их в хронологии блока как пару и вычисляет новое значение. Однако, если при получении значения в один порт в другой порт значение приходит позже, чем через 1 сек, то это значение игнорируется. Такая тактика может привести к непозволительной задержке результата.
Для решения данной проблемы используется блок син-
хронизации данных, который синхронизирует два входных пути с помощью передачи значений только после их фактического получения и позволяет проводить корректные вычисления с минимальными задержками, так как гарантирует, что все необходимые значения для функционирования соответствующих блоков диаграммы потоков получены, исключая их повторные вычисления.
Для оптимизации вычислений также предназначен блок сдерживания. Допустим, необходимо, чтобы определенное действие над объектом (например закрыть задвижку) выполнялось только при определенном условии (нормальная температура). Это можно организовать посредством блоков синхронизации и сдерживания (рис. За,б).
Авторы рассмотрели основные средства параллельной обработки информации, предоставляемые современным высокоэффективным комплексом для конструирования интеллектуальных (экспертных) систем реального времени G2-GDA. Применение таких средств позволяет повысить производительность и расширить сферу применения интеллектуальных СППР РВ, ориентированных на помощь оперативно-диспетчерскому персоналу при диагностике, мониторинге и управлении сложными техническими объектами и процессами.
Данные средства используются в настоящее время при разработке интеллектуальной системы поддержки оперативно-диспетчерского персонала энергоблока АЭС, реализуемой кафедрой прикладной математики МЭИ совместно с ЦНИИКА. Разработан прототип СППР РВ энергоблока, обслуживающий одновременно подсистемы главного циркуляционного насоса, эжекторной и конденсаторной установок, которые работают параллельно [8,9].
Исследования проводятся при финансовой поддержке РФФИ (проект 99-01-00049).
Список литературы
1. Башлыков A.A., Еремеев А.П. Экспертные системы поддержки принятия решений в энергетике. - М.: Изд-во МЭИ, 1994.
2. Попов Э.В., Фоминых И.Б., Кисель Е.Б., Шапот М.Д. Статические и динамические экспертные системы. - М.: Финансы и статистика, 1996.
3. Башлыков A.A., Вагин В.Н., Еремеев А.П. Экспертные системы поддержки интеллектуальной деятельности операторов АЭС //Вестник МЭИ. - М.: Йзд-во МЭИ, 1995. - С, 27-36.
4. Еремеев А.П. Экспертные модели и методы принятия решений. - М.: Изд-во МЭИ, 1995.
5. Вагин В.Н., Еремеев А.П. Параллелизм в продукционных моделях представления знаний // Изв. АН СССР. Техниче-
температура нормальная?
\
блок синхронизации
блок сдерживания
закрыть задвижку
а) б)
Рис.З. Примеры использования блоков синхронизации и сдерживания
■сЬ
Activi Willi ill
[^ЧШ
Ш Пуск I g[x-
J
Рис.2. Полиэкран для прогнозирования состояния непрерывных параметров
екая кибернетика. - № 2. - 1994. - С. 48-55.
6. G2 Reference Manual. Version 3.0//Gensym Corp., Cambridge, MA, USA, 1993.
7. G2 Diagnostic Assistant Reference Manual. Version 1.1.// Gensym Corp ., Cambridge, MA, USA, 1995.
8. Еремеев А.П., Симонов Д.H., Чибизова H.В. Реализация прототипа системы поддержки принятия решений реального времени на основе инструментального комплекса G2 // Программные продукты и системы. - №3. - 1996. - С. 21-26.
9. Вагин В.Н., Еремеев А.П. Реализация концепции распределенного искусственного интеллекта и многоагентности в системах поддержки принятия решений на базе инструментального комплекса G2+GDA // Proc. of the Internat. Workshop Distributed Artificial Intelligence Multi-Agent Systems "DAIMAS"97, June 15-18, 1997,St.-Peterburg, Russia. - C. 262-268.
ЭКСПЕРТНАЯ СИСТЕМА АНАЛИЗА ФАРМАКОЛОГИЧЕСКОГО ВЗАИМОДЕЙСТВИЯ ЛЕКАРСТВЕННЫХ ПРЕПАРАТОВ
Б.С. Лещинский, Ф.В. Краснояров, C.B. Скрипин
Экспертная система анализа фармакологического взаимодействия лекарственных препаратов, применяемых в кардиологии (ФАРЭКС-К) предназначена для консультирования по вопросам, связанным с особенностями фармакологического взаимодействия лекарственных средств, применяемых в кардиологии. Система содержит подробную информацию о клинических последствиях и механизмах взаимодействия кардиологических препаратов между собой и с веществами других фармакологических групп; о методах контроля успешности комбинированной терапии, коррекции ее нежелательных результатов и несовместимых сочетаниях веществ. Кроме того, система предоставляет врачу рекомендации о рациональном выборе препаратов для терапии кардиологических заболеваний и синдромов, сведения о механизме действия, об особенностях применения, о побочных эффектах, противопоказаниях к назначению, формах выпуска кардиологических лекарственных средств. Система ФАРЭКС-К помогает врачу оптимизировать терапию больных сердечно-сосудистыми заболеваниями с учетом индивидуальных особенностей пациента.
ФАРЭКС-К состоит из базы знаний и трех подсистем: подсистемы управления, интерфейса с пользователем, подсистемы логического вывода. Все подсистемы представляют собой отдельные программные модули, работающие в составе общей исполняемой программы. В системе реализован многооконный интерфейс на основе меню. Работа с системой организована в терминах, хорошо знакомых пользователю. В процессе диалога на экран монитора выводятся различного рода подсказки. В целом система выполнена таким образом, что пользователь может работать с ней без какой-либо специальной подготовки.
ФАРЭКС-К исполнена в двух вариантах: в русскоязычном и англоязычном. В первом варианте система ориентирована на номенклатуру лекарственных препаратов и на особенности их использования в СНГ, во втором - на номенклатуру и особенности использования препаратов в западноевропейских странах и в США. Знания предоставлены профессором А.И. Венгеровским (Сибирский медицинский университет, г. Томск). ФАРЭКС-К получила поло-
жительную оценку у ведущих специалистов Сибирского медицинского университета и НИИ кардиологии СО АМН РФ (г. Томск) и используется в этих учреждениях с 1992 г.
Экспертная система ФАРЭКС-К функционирует на IBM-совместимых ПЭВМ под управлением MS-DOS (версии 3.3 и выше).
ВЗАИМОДЕЙСТВИЕ С СИСТЕМОЙ
После запуска системы на экран выводятся основное меню (верхняя строка), строка состояния (нижняя строка) и окна системы, в которых отражается взаимодействие с пользователем. В строке состояния указана подсказка об использовании клавиш, доступных пользователю в текущий момент. Окно "Система" предназначено для сообщений системы пользователю. В окне "Текущий выбор" помещается информация о режиме, в котором работает система. Окно "Пользователь" предназначено для формирования ответа пользователя системе.
В основном меню системы предлагаются пять режимов работы: "Инфо"\ "Выбор препарата"; "Результат"', "Настройка цвета"', "Выход". При нажатии клавиши <F1> на экран будет выведена справочная информация об этих пяти режимах. В режиме "Инфо" пользователь получает информацию о назначении системы и ее разработчиках. Во втором режиме пользователь имеет возможность выбрать названия тех препаратов, по применению которых он желает получить консультацию системы. В третьем режиме система формирует и выводит информацию о взаимодействии пар выбранных кардиологических препаратов, кардиологических и прочих препаратов, а также о методах контроля и коррекции. В режиме "Настройка цвета" пользователь может изменить цвета окон и меню, отображаемых на экране в процессе диалога. В режиме "Выход" происходит окончание работы экспертной системы.
На каждом этапе (шаге) диалога пользователю предоставляется вся необходимая информация для дальнейшей работы с системой. На любом шаге пользователь имеет возможность возвратиться к предыдущему этапу (клавиша <Esc>) или вернуться в основное меню (клавиша <F10>).