Диссертация (1149249), страница 12
Текст из файла (страница 12)
Списки критериев, вариантов и квантов вней изначально пусты; их предстоит заполнять, пользуясь методами соответствующих классов, которые будут описаны ниже.Для получения компонентов задачи принятия решения применяются следующие методы:public C r i t e r i a g e t C r i t e r i a ( ) ;public C h o i c e s g e t C h o i c e s ( ) ;public Quanta getQuanta ( ) ;Объекты класса Criteria хранят информацию о списке критериев, по которым оцениваются доступные варианты.
Для добавления критерия в конецсписка следует использовать методpublic void a d d C r i t e r i o n ( f i n a l S t r i n g name ) ;В качестве параметра указывается название добавляемого критерия.Количество критериев можно проверить с помощью методаpublic int count ( ) ;Для переименования критериев применяется метод67public void rename ( f i n a l int index , f i n a l S t r i n g name ) ;Наконец, методpublic void r e m o v e C r i t e r i o n ( f i n a l int i n d e x ) ;позволяет удалить критерий из списка, указав его индекс.Следует отметить, что добавление и удаление критериев может привестик перестройке внутренних структур данных ассоциированных с этим набором критериев вариантов и квантов, поэтому рекомендуется составить списоккритериев до начала работы со списками вариантов и квантов.Класс Choices хранит возможные варианты в виде векторов, размерностькоторых равна количеству критериев.
Класс Quanta содержит список квантовинформации, которые можно будет использовать для сужения списка вариантов. Каждый квант — вектор той же размерности, что и вариант. Поэтомуметоды добавления, изменения и удаления вариантов и квантов вынесены вобщий базовый класс FuzzyVectorList.Добавление векторов производится с помощью методаpublic void addVector ( f i n a l double [ ] components , f i n a l C e r t a i n t y c e r t a i n t y ) ;Размерность компонент вектора должна совпадать с количеством критериев,в противном случае возбуждается IllegalArgumentException.
При добавлении варианта второй параметр роли не играет: исходное множество возможных вариантов считается чётким. При добавлении же квантов этот параметрхарактеризует степень уверенности ЛПР в готовности пойти на компромисс,описываемый данным квантом.Класс Certainty также используется для описания степени желательности выбора того или иного варианта после сужения множества Парето. Сматематической точки зрения он хранит степень принадлежности векторатому или иному нечёткому множеству. Объекты этого класса неизменяемы:любые операции с ними возвращают новый объект. В классе предусмотренконструкторpublic C e r t a i n t y ( f i n a l double v a l u e ) ;Параметр value должен иметь значение в сегменте [0; 1], иначе выбрасывается исключение IllegalArgumentException. Предопределены константыCertainty.MINIMUM и Certainty.MAXIMUM для соответственно наименьшей инаибольшей степеней уверенности.Для удаления вектора класс FuzzyVectorList предусматривает метод68public void removeVector ( f i n a l int v e c t o r ) ;Параметром является индекс удаляемого вектора в этом списке.Для изменения векторов используются методыpublic void setComponent ( f i n a l int v e c t o r ,f i n a l int c r i t e r i o n , f i n a l double v a l u e ) ;public void s e t C e r t a i n t y ( f i n a l int v e c t o r , f i n a l C e r t a i n t y c e r t a i n t y ) ;Здесь vector — индекс вектора в списке, criterion — номер критерия, компоненту по которому необходимо изменить, последний параметр — новое значение компоненты или степени уверенности.Упомянем, что предусмотрены методы и для чтения векторов:public double getComponent ( f i n a l int v e c t o r , f i n a l int c r i t e r i o n ) ;public C e r t a i n t y g e t C e r t a i n t y ( f i n a l int v e c t o r ) ;Может возникнуть вопрос, почему степень уверенности хранится вместес вектором несмотря на то, что она является характеристикой не вектора, анечёткого множества.
Такое решение было принято в связи с тем, что квантыпо сути задают образующие нечёткого конуса, с которыми, если вспомнитьопределение 2.5, ассоциируются степени уверенности. Возможны ситуации, вкоторых один и тот же вектор используется в качестве образующей несколькораз, притом необязательно с одинаковыми степенями принадлежности. Еслинабор образующих считать конечным нечётким множеством, такие ситуациипредставить невозможно.Рассмотрим теперь отличительные особенности классов Quanta и Choices.Так как учёт квантов приводит к перестройке векторного критерия, методpublic F u z z y V e c t o r L i s t computeTransform ( ) ;возвращает список векторов, компоненты каждого из которых суть коэффициенты, с которыми надо суммировать исходные критерии, чтобы получитьновый. При этом доминирование по такому критерию гарантирует вариантустепень принадлежности не меньшую, чем степень уверенности, ассоциированную с этим новым критерием.
С другой стороны, эти векторы являютсяобразующими конуса, двойственного к нечёткой конической оболочке квантови ортов критериального пространства. Если же набор квантов противоречив,метод возвращает null.Так как расчёт образующих двойственного конуса — дорогая операция, еёрезультаты кэшируются. Таким образом, реально этот метод производит рас69чёт только в том случае, если набор квантов был изменён с момента предыдущего вызова.Полученный список векторов можно использовать для сужения наборавариантов с помощью метода класса Choicepublic void r e d u c e ( f i n a l F u z z y V e c t o r L i s t t r a n s f o r m ) ;Он меняет степени принадлежности вариантов так, что они становятся оценками сверху на степени принадлежности множеству выбираемых вариантов.Все варианты, не входящие во множество Парето, получат нулевые степенипринадлежности.
Оценки остальных вариантов зависят от предоставленныхквантов.Графическая оболочка является простой надстройкой над описанным ядром, призванной предоставить пользователю удобный доступ ко всем возможностям ядра. Она выполнена в стиле MDI (Multiple Document Interface),т. е. пользователь имеет возможность работать одновременно с несколькимиразными файлами.Основное окно описывается классом FrameWindow. В нём могут располагаться фреймы ProblemWindow с отдельными задачами. Каждый такойфрейм содержит панель инструментов и четыре вкладки с информацией озадаче.Первая вкладка — «Критерии» — отображает список критериев, хранящийся в классе Criteria. Вторая вкладка — «Кванты» — показываетсписок квантов информации из класса Quanta. Далее, третья вкладка —«Новые критерии» — отображает список векторов, возвращаемый методомcomputeTransform() класса Quanta, или сообщение о противоречивости квантов информации.
Наконец, четвёртая вкладка — «Варианты» — отображаетсписок вариантов из класса Chioces с оценками их степеней принадлежностимножеству выбираемых решений.Рассмотрим кнопки на панели инструментов окна задачи. Первые две отвечают за сохранение данных. Задачу можно сохранить в том файле, из которого она была открыта, а можно выбрать другой файл. Необходимостьсохранения изменений показывается звёздочкой в заголовке окна задачи.Следующие две кнопки позволяют добавлять варианты. Первая из нихоткрывает диалог, в котором пользователю предлагается ввести оценки добавляемого варианта по всем имеющимся критериям.
Вторая вставляет ва70рианты из буфера обмена. Формат хранения данных в буфере совпадает стаковым для Excel, что позволяет легко переносить данные из электроннойтаблицы в ParSetRe и обратно.Далее расположены кнопки для добавления квантов. Их поведение полностью аналогично таковому для кнопок, добавляющих варианты.Затем следует кнопка сравнения пары критериев. Она открывает диалог,в котором пользователь может сравнить значимость двух критериев, ответивна вопрос, сколько он готов пожертвовать по одному критерию ради увеличения на единицу оценки по другому критерию. Это добавляет новый квантинформации об отношении предпочтения.Наконец, самая правая кнопка предназначена для сужения множествавозможных вариантов. Она вычисляет оценки сверху на степени принадлежности вариантов множеству выбираемых решений.71Глава 4Прикладная экономическаязадачаВ этой главе будет рассмотрен пример применения последовательного алгоритма учёта «квантов» информации об отношении предпочтения ЛПР водной экономической задаче.
Исследуется случай взаимосвязанных «квантов», который не подпадает ни под одну ранее доказанную теорему для учётанабора «квантов» той или иной структуры.Первый параграф содержит общую постановку задачи, описывает множество возможных решений и критерии. Во втором параграфе приводится пример сужения множества Парето за счёт учёта трёх «квантов» информации.По ходу рассуждений автоматически выводится и критерий их непротиворечивости.4.1Постановка задачиПусть некоторая фирма столкнулась с проблемой увеличения выпускапроизведённой продукции при одновременном стремлении сократить затратына ресурсы. Ясно, что увеличение объёма продукции невозможно без ресурсных затрат, поэтому стремление максимизировать объём продукции входитв противоречие с желанием сокращения ресурсов.













