Автор работы: Пользователь скрыл имя, 24 Сентября 2015 в 15:57, курсовая работа
Оптимизация как раздел математики существует достаточно давно. Оптимизация – это выбор, то есть то, чем постоянно приходится заниматься в повседневной жизни. Хотя конечной целью оптимизации является отыскание наилучшего или "оптимального" решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. Поэтому под оптимизацией понимают скорее нахождение наилучшего варианта среди всех существующих. В любой практической оптимизационной задаче существует много совпадающих этапов.
В многокритериальной задаче оптимизации сравнение решений по предпочтительности осуществляется не непосредственно, а при помощи заданных на X числовых функций f1, f2, … fm, называемых критериями. Предполагается, что m ≥ 2, при m = 1 задача оптимизации является однокритериальной.
В задачах принятия индивидуальных решений критерии служат для выражения «интенсивности» существенных свойств (признаков) решений. В задачах принятия групповых решений критерий U характеризует «качество» (или предпочтительность) решений с точки зрения индивида i, входящего в группу {1, 2, …, m}.
По своему характеру критерии подразделяются на два типа: количественные и качественные. Критерий является количественным, когда его значения имеет смысл сравнивать, указывая, на сколько, или во сколько раз одно значение больше другого, и качественным, когда такие сравнения бессмысленны [6].
2.1 Структуризация задачи
Прежде чем проектировать структуры данных, разработчик должен построить функциональную модель проектируемой системы.
Функциональная модель проектируемой системы напрямую вытекает из функциональных требований, которые, в свою очередь, могут быть описаны в виде прецедентов.
Описание начинается с прецедента высокого уровня, который обращается к прецедентам более низкого уровня, а те, в свою очередь, обращаются к прецедентам ещё более низкого уровня и т.д. Каждый абстрактный прецедент детализируется конкретными прецедентами. Это позволяет сократить размер прецедента и сделать его более понятным для восприятия.
На рисунке 2.1 представлена структурная схема задачи выбора компьютера для сотрудников организации.
Рисунок 2.1 – Структурная схема задачи выбора компьютера для сотрудников организации
2.2 Метод полного перебора
Полный перебор – это простейший метод минимизации. Суть метода заключается в последовательном переборе элементов, имеющих различные значения интересующего параметра. В ходе перебора находится элемент, у которого значение параметра, интересующего нас, наиболее полно удовлетворяет требованиям. Главный недостаток данного метода – долгое время выполнения при больших количествах обрабатываемых элементов. Основная задача при реализации такого метода заключается в написании алгоритма, требующего наименьшее время на поиск решения. Блок схема алгоритма представлена на рисунке 2.2.
Рисунок 2.2 – Блок-схема алгоритма полного перебора
Основная идея экспертных методов состоит в том, чтобы использовать интеллект людей, их способность искать и находить решение слабо формализованных задач. В теории экспертных оценок разработан ряд методов проведения экспертизы.
Метод приписывания баллов (метод ранга). Этот метод основан на том, что эксперты оценивают важность частного критерия по шкале от 0 до 10. При этом разрешается оценивать важность дробными величинами или приписывать одну и ту же величину из выбранной шкалы нескольким критериям. Обозначим через hik - балл i-го эксперта для k-критерия, тогда
где - сумма баллов i-ой строки;
m – количество критериев.
rik – называют весом, подсчитанным для k-го критерия i-м экспертом.
Отсюда, учитывая, что , где L - количество экспертов, получим веса альтернатив:
(2.2)
Лучшей считается альтернатива, имеющая наибольший вес.
Блок-схема алгоритма представлена в приложении А.
Итальянский экономист В. Парето сформулировал один из самых распространенных экономических критериев оптимальности. Он формулируется очень просто: «Следует считать, что любое изменение, которое никому не причиняет убытков и которое приносит некоторым пользу, является улучшением».
Критерий Парето имеет весьма широкий экономический смысл и очень часто используется при решении сложных экономических задач. Его можно использовать тогда, когда оптимизация одной совокупности показателей, характеризующих объект, не должна ухудшать другую совокупность не менее важных показателей.
Критерий Парето не применим к тем ситуациям, когда экономический эффект одних связан с убытками других. Область решений, оптимальных по Парето, получила название области компромиссов.
Алгоритм выделения области Парето:
Если использовать дополнительную информацию, например, об относительной важности показателей, то можно получить дальнейшее уточнение мест проектов [6].
Метод Анализа Иерархий – математический инструмент системного подхода к сложным проблемам принятия решений. МАИ не предписывает лицу, принимающему решение (ЛПР), какого-либо «правильного» решения, а позволяет ему в интерактивном режиме найти такой вариант (альтернативу), который наилучшим образом согласуется с его пониманием сути проблемы и требованиями к ее решению.
Этот метод был разработан американским математиком Томасом Саати. МАИ широко используется на практике и активно развивается учеными всего мира. Для компьютерной поддержки МАИ существуют программные продукты, разработанные различными компаниями. Анализ проблемы принятия решений в МАИ начинается с построения иерархической структуры, которая включает цель, критерии, альтернативы и другие рассматриваемые факторы, влияющие на выбор. Эта структура отражает понимание проблемы лицом, принимающим решение. Каждый элемент иерархии может представлять различные аспекты решаемой задачи, причем во внимание могут быть приняты как материальные, так и нематериальные факторы, измеряемые количественные параметры и качественные характеристики, объективные данные и субъективные экспертные оценки. Следующим этапом анализа является определение приоритетов, представляющих относительную важность или предпочтительность элементов построенной иерархической структуры, с помощью процедуры парных сравнений. Безразмерные приоритеты позволяют обоснованно сравнивать разнородные факторы, что является отличительной особенностью МАИ. На заключительном этапе анализа выполняется синтез (линейная свертка) приоритетов на иерархии, в результате которой вычисляются приоритеты альтернативных решений относительно главной цели. Лучшей считается альтернатива с максимальным значением приоритета.
Метод анализа иерархий применяется при решении самых разнообразных проблем, среди которых, в частности: проектирование транспортных систем крупных городов, разработка планов обеспечения энергетическими ресурсами отраслей промышленности, оценка сценария развития высшего образования, определение приоритетных направлений научных исследований и др.[7].
Необходимо разработать программное средство для выбора оптимального компьютера для сотрудников организации. Предлагаются компьютеры с критериями (стоимость, размер экрана, вес, разрешение камеры, возможность проведения видеоконференций) и оценки экспертов.
Для выбора оптимального решения использовать однокритериальную оптимизацию по стоимости. Для однокритериальной оптимизации задача решается методом полного перебора.
Перебор – это простейший метод минимизации. Суть метода заключается в последовательном переборе элементов, имеющих различные значения интересующего параметра. В ходе перебора находится элемент, у которого значение параметра, интересующего нас, наиболее полно удовлетворяет требованиям. Главный недостаток данного метода – долгое время выполнения при больших количествах обрабатываемых элементов. Основная задача при реализации такого метода заключается в написании алгоритма, требующего наименьшее время на поиск решения.
Многокритериальную оптимизацию методом анализа иерархий. Также методом отбора Парето учесть наиболее подходящие альтернативы. В многокритериальной оптимизации необходимо учесть оценки экспертов. Для экспертного анализа использовать метод Ранга.
Для решения задачи многокритериальной оптимизации необходимо выполнить несколько этапов. Рассмотрим их.
Изначально необходимо организовать перевод возможности проведения видеоконференций в безразмерную величину. Диапазон значений приведён в таблице 3.1.
Таблица 3.1 – Перевод в безразмерную величину
Возможности проведения видеоконференций |
Да |
Нет |
Оценка |
0,33 |
0,67 |
Для удаления альтернатив, не превосходящих над другими, используется метод отбора Парето. Данный принцип построения множества Парето является оптимальным с математической точки зрения, но в определенных случаях, когда количество альтернативных решений и критериев отбора велико, может привести к необходимости сужения или свертки множества Парето из-за большого количества элементов, вошедших в него.
Далее принимается во внимание оценки экспертов. И используя все это, находится оптимальное решение.
Программное обеспечение для решения поставленной задачи было реализовано в среде разработки MS Visual Studio 2013 на языке C#. Данная среда разработки позволяет быстро, эффективно и просто создать полноценное и многофункциональное приложение.
Исходные данные в таблицы считываются с файла. Пример файла с исходными данными представлен на рисунке 3.1.
Рисунок 3.1 – Пример файла с исходными данными
С помощью существующих компонентов в MS Visual Studio 2013 на языке C# создан графический интерфейс, как и все остальные методы, они размещены в классах Form1, Form2, Form3, Form4, Line, MultiCriterionOptimization, OneCriterionOptimization здесь же отображаются результаты работы приложения.
В классах реализованы различные методы, которые предназначенные для упрощения общих задач программирования. Ниже в таблицах 3.2-3.4 описаны классы и их методы:
Исходный код приложения представлен в приложении Б.
Таблица 3.2 – Описание класса Line
Имя |
Вид элемента |
Тип |
Спецификатор |
Описание | |
1 |
2 |
3 |
4 |
5 | |
_cost |
поле |
int |
private |
Стоимость | |
Продолжение таблицы 3.2 | |||||
1 |
2 |
3 |
4 |
5 | |
_razm_ekrana |
поле |
double |
private |
Размер экрана | |
_ves |
поле |
double |
private |
Вес | |
_razr_cam |
поле |
double |
private |
Разрешение камеры | |
_konf |
поле |
String |
private |
Возможность проведения видеоконферениций | |
_konf_ |
поле |
double |
private |
Возможность проведения видеоконферениций | |
Line(int cost, double razm_ekrana, double ves, double razr_cam, string konf) |
конструктор |
- |
public |
Конструктор с параметрами | |
KonfMark |
свойство |
double |
public |
Перевод в безразмерный вид |