Многокритериальная оптимизация

Автор работы: Пользователь скрыл имя, 19 Марта 2014 в 21:05, курсовая работа

Краткое описание

Необходимость принятия решений в какой-либо ситуации так же стара, как и само человечество и принимать решения, как отдельному человеку, так и различным группам людей, вплоть до всего человечества приходится практически во всех областях своей деятельности. Причем в некоторых областях (военных, медицинских, космических, в атомной энергетике, химической промышленности и др.) возникает потребность принятия достаточно сложных управленческих решений, ошибка в которых может повлечь за собой катастрофические последствия. В силу этого появилась необходимость выделить процесс принятия оптимальных решений в отдельную область науки, которая бы формализовала и систематизировала данный процесс.

Вложенные файлы: 1 файл

Пояснительная записка.docx

— 764.08 Кб (Скачать файл)

Вкладка «Одномерная оптимизация» предназначена для проведения одномерной оптимизации. Чтобы программа провела оптимизацию для начала необходимо выбрать один из трёх предлагаемых критериев: стоимость, энергоэффективность и производительность. После выбора критерия нужно нажать кнопку «Оптимизировать». Если введены все необходимые данные и выбран критерий оптимизации, то приложение выдаст результат проведенной оптимизации, т.е. лучшую пару станков, по выбранному критерию и удовлетворяющую всем ограничениям в соответствии с рисунком 3.3.

 

 

Рисунок 3.3 – Результат работы одномерной оптимизации

 

Если критерий не задан, то появиться окошко, представленное на рисунке 3.4.

 

 

Рисунок 3.4 – Окно, появляющееся, если не выбран критерий оптимизации

 

Для закрытия данного окошка нужно нажать кнопку «OK», после чего снова появится главное окно приложения и в нём можно выбрать критерий оптимизации.

Вкладка «Многомерная оптимизация» предназначена для проведения многомерной оптимизации. Для проведения многомерной оптимизации, необходимо, чтобы два эксперта дали оценки критериям, необходимые для решения задачи. Нужно заметить, что оценки должны быть проставлены по следующему правилу: лучшему критерию ставится оценка 1, следующему – 2 и т.д. Максимальная оценка равна числу критериев и соответствует худшему критерию, по мнению эксперта. Причём оценки не могут повторяться (например, эксперт не может поставить оценку 4 два раза).

Для ввода оценок сформирован список в каждой ячейке таблицы для того, чтобы оценка отобразилась в ячейке необходимо раскрыть выпадающий список и выбрать необходимую оценку.

После задания оценок нужно нажать кнопку «Оптимизировать» и приложение выдаст результат оптимизации как представлено на рисунке 3.5.

Если эксперты ввели не все оценки, то появится окошко об ошибке, представленное на рисунке 3.2.

Таким образом были рассмотрены основные функции и возможности пользовательского приложения, а так же детально разъяснена работа с данным приложением и указаны основные ошибки, которые могут возникать при работе приложения и описаны пути их устранения.

 

 

Рисунок 3.5 – Результат работы многомерной оптимизации

 

3.3 Анализ исходных  данных и верификация результатов  работы программы

 

В поставленной задаче в качестве исходных данных выступают технические характеристики двух типов станков по следующим шести критериям: энергоэффективность, производительность, стоимость станка, сервисное обслуживание, надёжность и удобство в использовании. По данным характеристикам и происходит выбор двух станков разного типа, но так же по условию задачи мало, чтобы станки соответствовали максимальным характеристикам по всем критериям, они должны соответствовать следующим ограничениям: стоимость двух станков не должна превышать 2 000 млн. рублей, максимальная потребляемая мощность не должна превышать 100 000 кВт-ч в месяц, количество изготавливаемых изделий в год должно быть не менее 15 000 штук в год, на изготовление изделия тратиться не более 150 часов в месяц. На основе всех вышеописанных данных производится отбор лучшей пары станков.

Для проверки правильности работы программы нужно сравнить работу приложения при однокритериальной и многокритериальной оптимизации. Причём, выбранному критерию в одномерной оптимизации должны быть выставлены минимальные оценки в многокритериальной оптимизации. Если результаты первых альтернатив совпадают, то можно утверждать, что приложение работает верно. Рассмотрим проведение верификации приложения на примере.

Для начала проведём одномерную оптимизацию по критерию энергоэффективность. Приложение выдаст результат в соответствии с рисунком 3.6.

 

 

Рисунок 3.6 – Результаты работы однокритериальной оптимизации по критерию «Энергоэффективность»

 

Затем необходимо провести многокритериальную оптимизацию. Т.к. главным критерием выступает энергоэффективность, то нужно данному критерию выставить минимальные оценки (единицы). После выполнения оптимизации приложение выдаст результат в соответствии с рисунком 3.7.

 

 

Рисунок 3.7 – Результаты работы многокритериальной оптимизации

 

После выполнения оптимизаций необходимо сравнить сравнение результатов. Если первые лучшие альтернативы для двух оптимизаций совпали, значит, приложение работает правильно. Нужно так же заметить, что для того чтобы оптимизации работали правильно нужно проводить их при одинаковых ограничениях и технических характеристиках  станков.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

 

Главным результатом данной курсовой работы является разработанное программное обеспечение для выбора покупки пары станков, соответствующих заданным ограничениям и являющиеся оптимальными для поставленной задачи. Созданное приложение позволяет проводить однокритериальную и многокритериальную оптимизацию, что позволяет расширить выбор необходимой пары станков.

Приложение имеет простой и интуитивно понятный интерфейс, работа с которым не составит труда для обычного пользователя, имеющего малый опыт работы с компьютером. После создания приложение была успешно проведена верификация результатов, таким образом, созданное приложение может применяться на практике.

В процессе выполнения курсового проекта были более детально изучены и реализованы методы однокритериальной и многокритериальной оптимизации, такие как метод полного перебора, метод Предпочтений, метод анализа иерархий, метод выбора множества по Парето. Данная курсовая работа значительно расширила обзор в области принятия решения и показала, что даже в этой области может успешно применяться автоматизация.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

1. Теория принятия решений.  Учебное пособие / В.М. Горбунов.- Томск: Национальный исследовательский томский политехнический университет, 2010. - 67 с.

2. Теория   принятия   решений.    Учебно-методическое    пособие  /              Ю.О. Матузко. - Запорожье: Запорожская государственная инженерная академия, 2009. - 61 с.

3. Акимов, С. В. Проблемы автоматизации структурно-параметрического синтеза / С. В. Акимов // Оптимизация [Электронный ресурс]. - 2005-2006. – Режим доступа: http://www.structuralist.narod.ru/dictionary/opt.htm .- Дата доступа : 08.05.2012.

4. МГСУ кафедра "ИСТАС" направление САПР // Методы оптимизации [Электронный ресурс]. - 2000-20011. – Режим доступа: http://sapr.mgsu.ru/biblio/optimiz/opt.htm .- Дата доступа : 09.05.2012.

5. Информационные технологии оптимальных решений. Учебный курс для специальности «Государственное управление и экономика» . - Минск: Академия управления при Президенте Республики Беларусь, 2003. - 241 с.

6. Шикин, Е. В. Исследование операций / Е. В. Шикин, Г. Е. Шикина.- М.: ТК Велби, Изд-во Проспект, 2006. - 280 с.

7. Подиновский, В. В. Парето-оптимальные решения многокритериальных задач. / В. В. Подиновский, В. Д. Ногин.- М.: Наука. Главная редакция

физико-математической литературы, 1982.— 256 с.

8. Мосеев, А. В. Применение методов искусственного интеллекта в переборных алгоритмах / А. В. Мосеев // Метод перебора и задачи, решаемые при помощи этого метода [Электронный ресурс]. - 1999. - Режим доступа: http://underwood.narod.ru/as/diplom/chapter2.html . - Дата доступа: 10.05.2012.

9. Сафронов, В. Лекции и учебные пособия по системному анализу / В. Сафронов // Системный анализ и проектирование [Электронный ресурс]. - 2006-2012. - Режим доступа: http://victor-safronov.narod.ru/systems-analysis/lectures/zhivickaya/28.html . - Дата доступа: 10.05.2012.

10. Саати,   Т. Л.   Принятие   решений. Метод анализа   иерархий /     Т. Саати . - М.: Радио и связь, 1993. - 278 с.

11. Википедия / Метод анализа иерархий [Электронный ресурс]. - 2012 . - Режим доступа: http://ru.wikipedia.org/wiki/Метод_анализа_иерархий. - Дата доступа: 09.05.2012.

 

 

 

 

 

 

ПРИЛОЖЕНИЕ А

(обязательное)

Схема алгоритма метода Предпочтений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ Б

(обязательное)

Листинг программы

 

PerevodOcenok.cs

namespace MonogokreterialnaiaOptimizacia

{

    class PerevodOcenok

    {

        public double[,] ocenki;

       

        public PerevodOcenok(int m,int n)

        {

            ocenki = new double[m, n];

        }

 

        public double Max(double[] kriteriy)//поиск максимума в массиве

        {

            double max = kriteriy[0];

            for (int i = 1; i < kriteriy.Length; i++)

                if (kriteriy[i] > max) max = kriteriy[i];

            return max;

        }

 

        public void PerevodOcenokVBezrazmVid(double[] kriteriy,int i, bool isMax)//перевод оценок в безразмерный вид(от 0 до 1)

        {

            double max = Max(kriteriy);//находим максимальное значение для критерия

            for (int j = 0; j < kriteriy.Length; j++)

                ocenki[i,j] = kriteriy[j] / max;

            if (isMax == false)  //если оценка чем меньше, тем лучше

                for (int j = 0; j < kriteriy.Length; j++)

                    ocenki[i, j] = 1 - ocenki[i, j];

        }

 

        public void PerevodYesNo(string[] kriteriy,int i)//перевод оценок Да-Нет в числовые значения

        {

            for (int j = 0; j < kriteriy.Length; j++)

                if (kriteriy[j] == "Да") ocenki[i,j] = 0.67;//значение "Да"

                else ocenki[i,j] = 0.33;//значение "Нет"

        }

 

        public void ShkalaHarringtona(string[] kriteriy,int i)//перевод оценок по шкале Харрингтона

        {

            for (int j = 0; j < kriteriy.Length; j++)

            {

                if (kriteriy[j] == "Отлично") ocenki[i,j] = 1;

                if (kriteriy[j] == "Хорошо") ocenki[i,j] = 0.7;

                if (kriteriy[j] == "Очень хорошо") ocenki[i,j] = 0.8;

                if (kriteriy[j] == "Удовлитворительно") ocenki[i,j] = 0.5;

                if (kriteriy[j] == "Плохо") ocenki[i,j] = 0.3;

                if (kriteriy[j] == "Очень плохо") ocenki[i,j] = 0.1;

            }

        }

    }

}

 

OdnokreterialnaiaOptimizacia.cs

using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;

 

namespace MonogokreterialnaiaOptimizacia

{

    class OdnokreterialnaiaOptimizacia

    {

        double[,] texnXarakter1; //техничнские характеристики станков 1-го вида

        double[,] texnXarakter2; //техничнские характеристики станков 2-го вида

        int timeM;//количество часов в месяц на изготовления изделия

Информация о работе Многокритериальная оптимизация