или формулой
3x 3y (x = y, (x, y)eR'). (13)
В формуле 12 в отношении (x,y) x - идентификатор сотрудника из новой записи, находящейся до завершения транзакции в таблице inserted, y - идентификатор руководителя из таблицы emp_mgr.
Оператор UPDATE может изменить иерархическую структуру таким образом, что возникает транзитивное замыкание, проиллюстрированное на рисунке 5. Для исключения подобных преобразований используем SQL-операторы: IF UPDATE(mgr) BEGIN
DECLARE @x CHAR(2), @y CHAR(2), @xx CHAR(2) SELECT @xx=inserted.emp FROM inserted SELECT @x=@xx SELECT @y='*' WHILE @y IS NOT NULL BEGIN
SELECT @y=mgr FROM emp_mgr WHERE emp=@x IF @xx=@y BEGIN
RAISERROR('траmитивное замыкание',16,10) ROLLBACK TRAN
RETURN END ELSE
SELECT @x=@y END END
Пример блокирования нарушения иерархической структуры показан в правом окне рисунка 7.
SQL-операторы, построенные по формулам 7, 9 и 11, необходимо добавить в триггеры emp_ins и emp_upd после ключевого слова AS. В триггер emp_upd включается также и фрагмент, разработанный для исключения транзитивных замыканий.
Список литературы
1. Маклаков С.В. Bpwin и Erwin - CASE-средства разработки информационных систем. -М.: ДИАЛОГ-МИФИ, 1999.256 с.
2. Райан Стивен, Рональд Плю. SQL./ Пер. с англ. -М.: ЗАО «Издательство БИНОМ», 1998. - 400 с.
3. Microsoft SQL Server: Database Developer's Companion. - Microsoft Corporation, 1998. -709 p.
4. Грей П. Логика, алгебра и базы данных /Пер. с англ. Х.И. Килова, Г.Е. Минца; Под ред. Е.В. Орловского, А.О. Сли-сенко. - М.: Машиностроение, 1989.-368 с.
СИСТЕМА ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ НА БАЗЕ МОДЕЛЕЙ И МЕТОДОВ ВОЗМОЖНОСТНОЙ ОПТИМИЗАЦИИ
Статья выполнена при частичной финансовой поддержке РФФИ (проект №98-01-00212)
С.В. Сорокин, А.В. Язенин
Возросшая сложность задач принятия решений в управлении производством, финансами и в других отраслях человеческой деятельности, с одной стороны, и развитие вычислительной техники и математического аппарата теории принятия решений, с другой стороны, привели к возникновению и развитию программных систем поддержки принятия решений (СППР). Такие системы обеспечивают поддержку лицу, принимающему решения (ЛПР), на этапах сбора и хранения больших объемов информации, обработки полученной информации с использованием различных методов принятия решений в зависимости от класса поставленной задачи; выбора оптимальной альтернативы и выдачи рекомендаций по реализации полученного решения.
В последнее время выработались критерии, которым должны удовлетворять интеллектуальные СППР. Приведем основные из них [1]:
• интеллектуальные системы должны быть системами, основанными на знаниях;
• интеллектуальные системы должны быть мо-дельно-ориентированными, то есть они должны обеспечивать инструментарий для создания модели принятия решения;
• интеллектуальные системы поддержки принятия решений должны обеспечивать возможность работы с различными видами неопределенности, ис-
пользование и манипулирование нечеткими целями-ограничениями.
Многие практические задачи могут быть представлены моделями линейного программирования. В настоящее время теория классического линейного программирования хорошо разработана и реализована в различных программных системах. Однако в связи с недостатком информации или самой сутью проблемы может оказаться невозможным точное определение значения параметров задачи и применение аппарата линейного программирования. Часто диапазоны изменения параметров модели строятся по экспертным оценкам. Адекватным средством моделирования такой информации является современная теория возможностей. Ввиду этого многие практические задачи могут быть представлены моделями воз-можностного программирования. Практическое применение моделей возможностного программирования делает актуальной разработку соответствующих СППР.
Представленная в этой статье СППР FIESTA (Fuzzzy Intelligent System) является интеллектуальной в условиях нечетких данных.
Система FIESTA обеспечивает:
• выбор модели принятия решений;
• настройку системы принятия решений в соответствии с выбранной моделью принятия решений;
9
• управление базой данных моделей возможно-стного программирования;
• представление и обработку нечетких данных;
• решение задачи по выбранной модели.
Система FIESTA может быть использована для
поддержки процесса принятия решений при решении задач производственного планирования, в качестве интеллектуального компонента САПР при выборе параметров проектируемых изделий, в гибких производственных системах, при решении задач оперативного управления.
Методы решения задач возможностного программирования
Для решения задач возможностного программирования в СППР FIESTA применяются непрямые методы возможностного программирования, суть которых состоит в сведении задачи возможностной оптимизации к детерминированной эквивалентной задаче. Задачи возможностного программирования в СППР FIESTA сводятся в ряде случаев к задачам линейного программирования специальной структуры. Их решение базируется на методах линейного программирования. Для решения детерминированных эквивалентов некоторых моделей возможностной оптимизации разработаны оригинальные методы [2].
Введем некоторые базовые понятия теории возможностей, которые потребуются для описания моделей, поддерживаемых СППР FIESTA.
Пусть Г - множество с элементами Y
Р(Г) - мощность-множество Г.
Определение 1. Мера возможности П есть функция множеств П: Р(Г)^[0,1] обладающая свойствами:
1. П(0)=О, П(Г)=1,
2. П (у A¡) = sup П(A,) VI и Л1еР(Г).
ÍEI ÍEI
Двойственное понятие для меры возможности вводится посредством меры необходимости V: Р(Г)^[0,1] : v(A)=1-П(Ac).
Тройку (Г,Р(Г),П) называют возможностным пространством.
Определение 2. Отображение X: Г^Е1, возможные значения которого ограничены распределением возможностей Х(х)=П(теГ: X(y)=x} VxeE1; называют возможностной переменной.
Функция возможностей для совокупности воз-можностных переменных X1,...,Xn определяется следующим образом:
^1>...>*п(х1,...,Хп)=П{уеГ: X1(Y)=x1,...,Xn(Y)=xn} = П^!-1^!)!! .RXn-1(Xn)}.
Определение 3. Пусть X1,...,Xn - совокупность возможностных переменных. Будем называть эту совокупность несвязанной, если V{i1;...,ik} ^xi1,.,xik(xi1,.,xik)=min {Цх,1 (xi1),., Hx,k(xik)}.
В приводимых далее моделях возможностной оптимизации нечеткие параметры моделируются возможностными переменными. При реализации этих моделей первоочередной является задача опре-
деления (построения) функций распределения возможных значений нечетких параметров.
Ниже приведены поддерживаемые системой модели критериев и ограничений задач возможностного программирования.
Проблема модальной оптимизации состоит в максимизации модального значения функции f0, вида f0(x,Y)=Ejel:n a0j(Y)Xj, где a0j являются несвязанными возможностными переменными с унимодальными распределениями возможностей и имеют модальные значения Щу.
Максимаксная модель. Максимаксная модель критерия задачи возможного программирования:
k^max,
П{ EjS!:, aoj (Y) Xj =k} > a, ae (0,1], где a0j(Y) являются несвязанными возможностными переменными.
Задача максимизации возможности достижения нечеткой цели представляется моделью:
n{a0j(Y)Xj=b(Y)}^max.
Максимизация возможности достижения целей-ограничений представляется моделью:
n{£jei:i a¡j Xj =b¡ (y), i=1,...,m}^max.
Модальные ограничения имеют вид
M{fi(x,Y)} <, =, > 0.
Пусть fi(x,Y)=Zjel:n 3¡j (Y) Xj - bi(Y) и a¡j, bi являются несвязанными возможностными переменными с модальными значениями maij, mbi соответственно. В этом случае эквивалентное ограничение имеет вид £jei:nmaij Xj-mbi <, =, > 0.
Ограничения по возможности и необходимости. СППР FIESTA работает с ограничениями на меру возможности вида n{£je1:n aj(Y)Xj = bi(Y)} > a и n{£je1:n aij(Y)Xj < bi(Y)}>a, а также с ограничениями по мере необходимости вида V{£je1:n aij(Y)Xj < bi(Y)}>a.
Работа с нечеткой информацией
В ходе разработки СППР FIESTA большое внимание было уделено разработке методов работы с нечеткой информацией. Пользователю предоставляется возможность настроить интерфейс системы в зависимости от его познаний в теории возможностей. При работе со специалистами, знакомыми с понятиями теории возможностей, система позволяет оперировать нечеткими данными на параметрическом уровне. Пользователь может выбрать один из типов распределения возможностей (детерминированное число, триангулярное, трапециевидное, нормальное, возрастающее и убывающее) и задать соответствующие параметры распределения (границы интервала толерантности или модальное значение и коэффициенты нечеткости). Выбор пользователя поддерживается графиком функции распределения текущей нечеткой величины.
Во многих случаях с практическими СППР работают лица, не являющиеся специалистами в области нечеткого программирования и теории принятия ре-
10
шений. Для работы с этой категорией пользователей в СППР FIESTA предусмотрен режим "помощник". Этот режим реализован в виде меню-системы, позволяющей на семантическом уровне извлечь из пользователя информацию, необходимую для восстановления возможностного распределения. Меню содержит следующие альтернативы-шаблоны.
• Коэффициент мал, он меньше_, но с наибольшей возможностью он меньше ___ .
• Коэффициент может меняться в диапазоне от ___ до ___ , но наиболее возможное значение равно
• Коэффициент может меняться в диапазоне от ___ до ___ , но наиболее возможное значение меняется от_до_.
• Коэффициент большой, он больше _, но с
наибольшей возможностью он больше ___ .
• Коэффициент может принимать любое значение, но с наибольшей возможностью он принимает значения около ___ .
• Коэффициент имеет значение_.
Выбрав одну из альтернатив и проведя ее спецификацию, пользователь предоставляет системе необходимую информацию для восстановления возмож-ностного распределения.
Кроме этих двух вариантов работы с известными распределениями возможностей, предусмотрен режим восстановления распределения по предъявляемым значениям. Для восстановления распределений используется метод оценки максимума ц/E, описанный в [3]. Этот метод позволяет восстановить унимодальное распределение известного типа по выборке.
При восстановлении распределения пользователь определяет, какого типа распределение нужно восстанавливать - распределение с конечным носителем (триангулярное) или с бесконечным (нормальное) и вводит выборку экспертных значений. Система восстанавливает параметры распределения и устанавливает распределение соответствующего параметра задачи.
Архитектура системы FIESTA
При разработке СППР FIESTA была выбрана объектно-ориентированная концепция построения системы. Применение принципов объектно-ориентированного программирования позволило разработать гибкую архитектуру программного обеспечения, позволяющую с минимальными затратами на программирование расширять возможности системы. FIESTA реализована на языке C++ с применением библиотеки классов Microsoft Foundation Classes (MFC). Использование библиотеки MFC позволило сократить временные затраты на разработку интерфейса пользователя без ущерба для конечного результата и тем самым уделить больше времени разработке систем работы с нечеткими данными.
Иерархия классов СППР FIESTA включает около 40 классов, образующих подсистемы:
• хранения, визуализации и обработки нечетких данных;
• генерации задач возможностной оптимизации;
• работы с распределениями возможностей.
Подсистема хранения, обработки и визуализации нечетких данных
В СППР FIESTA имеется ряд классов, представляющих понятия и сущности теории возможностей. Это прежде всего класс CFVariable, представляющий возможностную переменную, и классы, представляющие модели критериев и ограничений.
Класс CFVariable инкапсулирует информацию, необходимую для описания возможностной переменной, и содержит методы, обеспечивающие чтение и запись этой информации в файл, а также доступ к параметрам распределений и границам а-уровней распределения.
Классы, соответствующие моделям критериев задач возможностного программирования, наследованы от класса CFModel. Базовым классом для классов, реализующих модели ограничений, является класс CConsModel. Основная функция этих классов -построение детерминированных аналогов соответствующих критериев и ограничений задач возможно-стной оптимизации. В данный момент в системе реализованы классы, соответствующие четырем моделям критериев, и трем моделям ограничений, описанным ранее. Алгоритмы построения детерминированных аналогов, использованные в этих классах, базируются на работах А.В. Язенина [2,4]. Новые модели могут быть легко добавлены в систему путем порождения новых классов от соответствующего базового класса. Хранение задачи возможностного
CFuzzyDoc
Векторы целей и ограничений задачи возможностного программирования
Рис. 1. Потоки даных при решении задачи возможностного программирования
11
программирования и управление процессами изменения и обработки данных осуществляется объектом CfuzzyDoc. Этот объект отвечает за сохранение и загрузку задач, обеспечивает интерфейс доступа к данным задачи для других подсистем и объектов, управляет процессом создания детерминированных аналогов и решения задач. Объект CFuzzyDoc взаимодействует с объектом CFuzzyView, обеспечивающим отображение задачи в окнах приложения и обрабатывающим команды пользователя. Базовым классом для классов, обеспечивающих построение детерминированных аналогов и решения задач возможност-ного программирования, является класс CLPExport. Этот класс предоставляет базовый интерфейс для создания и хранения детерминированных задач линейного программирования.
Экспорт детерминированных аналогов обеспечивается классом CMPSExport, который является потомком класса CLPExport и дополняет его интерфейс функцией записи сгенерированной детерминированной задачи в файл формата MPS.
Другим потомком класса CLPExport является класс CsimplexSolver, реализующий симплекс-метод решения задач линейного программирования и сохраняющий полученный результат.
Решение задач сепарабельного программирования обеспечивается классом CAdvSolver, являющимся потомком класса CSimplexSolver. Этот класс обеспечивает построение аппроксимирующей задачи в X-форме и решение полученной задачи модифицированным симплекс-методом [5].
Подсистема генерации задач возможностной оптимизации
Данная подсистема обеспечивает построение модели возможностной оптимизации в диалоге с пользователем. Система состоит из классов Cnew-DocWizard, CWizNewStepl, CWizNewStep2, CwizNew-Step3 и CWizNewStep4.
Класс CNewDocWizard позволяет хранить полученную от пользователя на разных этапах информацию и передавать ее классу CDocument для создания новой задачи. Этот класс хранит: информацию о размерности задачи; моделях критерия и ограничений; имена переменных, ограничений и целевых функций.
Распределение: И
tp{10;13;1;1)
■Н" и АО |13
Коэффициенты нечеткости левый: |l правый : | ]
............гт
5 10 15
Классы CNewStep1,...,CNewStep4 обеспечивают извлечение информации из пользователя на разных этапах диалога. На первом этапе вводится имя генерируемой задачи и выбирается модель критерия. Затем определяется размерность задачи. На третьем этапе определяются названия и модели ограничений задачи. После сбора всей информации на четвертом этапе пользователю предъявляется описание генерируемой задачи. Если пользователь удовлетворен этим описанием, то диалог завершается, в противном случае пользователь может вернуться к предыдущим шагам и внести необходимые изменения.
Подсистема работы с распределениями возможностей
Подсистема состоит из классов CFParamDlg, CFDisplay, CFuzzyWizDlg, CEstimateDlg.
Классы CFParamDlg и CFDisplay обеспечивают редактирование распределений возможности в режиме задания параметров распределения. Этот режим ориентирован на пользователей, владеющих понятиями теории возможностей. Класс CFParamDlg обеспечивает функционирование диалогового окна, в котором пользователь выбирает тип распределения и вводит необходимые параметры. Класс CFDisplay реализует окно отображения получаемой функции распределения возможностей.
Класс CFuzzyWizDlg обеспечивает работу с распределениями возможностей в режиме "помощник", ориентированном на неподготовленных пользователей.
Класс CEstimateDlg обеспечивает восстановление распределения возможностей по представленной выборке экспертных значений.
Пример решения задачи с использованием системы FIESTA
Рассмотрим задачу максимизации возможности выполнения нечеткой цели:
n{ao1x1+ao2x2+ao3x3=bo}^max
с тремя ограничениями:
xj+x2+x3>5.6,
n{a21x1+a22x2=b2}>0.5,
n{2x!-x2+3x3=b3}>0.5,
где a01, a02, a03 - триангулярные нечеткие переменные с параметрами (2;1;1), (1;1;0.5) и (15.24;1;1) соответственно; a21, a22, b - нормальные нечеткие переменные с параметрами (1;2), (1;2), (2;2) соответственно; b3 - трапециевидная нечеткая переменная с параметрами (10;13;1;1). Все нечеткие переменные являются мини-связанными.
Процесс решения задачи начинается с генерации модели задачи. Пользователь последовательно выбирает модель критерия задачи, указывает ее размерность (число переменных, целевых функций и ограничений), задает модели и названия ограничений.
Рис. 2. Окно редактирования коэффициента
12
После получения ответа на все вопросы система создает модель задачи с нулевыми коэффициентами и отображает окно, содержащее эту задачу. Теперь пользователь должен задать значения всех параметров задачи. На рисунке 2 показан процесс задания коэффициента Ь3 нашей задачи.
Вид окна задачи после задания всех параметров показан на рисунке 3.
После того как все параметры заданы, пользователь активизирует пункт "Решить" меню "Решение" и получает решение задачи (рис. 4).
Рис.4. Окно отображения результата решения задачи
Дальнейшее развитие СППР FIESTA будет связано с разработкой и реализацией методов коррекции задач возможностного программирования, позволяющих корректировать и решать задачи, которые в своей исходной постановке являются противоречивыми.
Список литературы
1. Sebastian H.-J., Intelligent support systems, Proceedings of EUFIT'93 (Sept. 7-10, 1993, Aachen, Germany) 299-307.
2. Язенин А.В. Методы оптимизации и принятия решений при нечетких данных: Дис... докт. физ.-матем. наук: ТГУ -Тверь, 1995.
3. Wang Xizhao, Ha Minghu. Note on maxmin ц/E estimation // Fuzzy Sets and Systems. 1998, №94, pp. 71-75.
4. Язенин А.В. К задаче максимизации возможности достижения нечеткой цели// Изв. АН РФ. Теория и системы управления. - 1999. - №4. - С. 120-123.
5. Гольштейн Е.Г, Юдин Д.Б. Новые направления в линейном программировании. - М., Сов. радио. - 1966.
ПРИМЕНЕНИЕ СИМВОЛЬНЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В ЗАДАЧАХ МОДЕЛИРОВАНИЯ ЭЛЕКТРОННЫХ УСТРОЙСТВ
В.М. Курейчик, Л.А. Зинченко, М.В. Тарасенко
Поиски путей интеллектуализации САПР электронной аппаратуры [1] приводят к необходимости использования символьных методов схемотехнического моделирования. Это объясняется тем, что инженер-разработчик владеет как численными, так и символьными методами расчета характеристик электронных устройств. В отличие от естественного интеллекта развитие систем автоматизации схемотехнического моделирования в основном было сконцентрировано на использовании численных методов. Их существенным недостатком является возможность получить решение только в численном виде при задании конкретных параметров схемы и внешнего воздействия, что позволяет решить только задачу анализа характеристик конкретной схемы. Полученная модель оказывается неприменимой при изменении одного из параметров, что приводит к необходимости многократного расчета характеристик схемы при различных параметрах. При проектировании необходимо установить соотношения между параметрами схемы и заданными функциональными характеристиками. Для установления связи между заданными эксплуатационными характеристиками и необходимыми параметрами и топологией электронного устройства разработчик вынужден выполнять большое количество итерационных расчетов различных вариантов решения, что приводит к значительным материальным и временным затратам и снижает конкурентоспособность разрабатываемого изделия.
Наиболее эффективным способом решения этой задачи в настоящее время является аналитическое моделирование. Определение модели при переменных параметрах схемы и внешнего воздействия по-
зволяет установить влияние параметров схемы на ее эксплуатационные характеристики. Нахождение этих соотношений в аналитическом виде позволяет решить задачу синтеза принципиальных и функциональных схем электронных устройств с заданными свойствами.
В связи с трудоемкостью определения символьной модели возникает проблема алгоритмизации процесса определения моделей в аналитическом виде и использования для решения этой задачи информационных технологий. Отдельные попытки формализации использования символьных методов моделирования наталкивались на ограниченные возможности вычислительной техники и значительную громоздкость получаемых моделей и оказывались неприменимыми для практики. Для устранения этих проблем в САПР с искусственным интеллектом более эффективным является использование баз знаний, содержащих численно-аналитические методы схемотехнического моделирования, сочетающие в себе преимущества численных и аналитических методов. Программы этого поколения только начинают появляться на рынке программных средств.
В качестве технологической базы для выполнения символьного моделирования могут быть использованы системы аналитических преобразований, известные как системы компьютерной алгебры. [2]. При этом возможно использование как универсальных систем компьютерной алгебры, так и разработка специализированных пакетов для схемотехнического проектирования.
Системы компьютерной алгебры в настоящее время являются первыми доступными примерами
13