Разработка модуля информационной системы для принятия многокритериальных решений методом уверенных суждений ЛПР
Создание программы "Annoy-o-Tron", построение ее физической и логической модели. Решение с ее помощью практически значимой задачи на нахождение региона, который эффективно бы удовлетворял требованиям задаваемой ЛПР (лицо, принимающее решение) стратегии.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Выберем какую-нибудь таблицу из списка, пусть это будет таблица «six».
На рис. 2.5 показан макет для таблицы с шестью расчетными столбцами. В него включены шесть расчётных столбцов.
Рис. 2.4 - Всплывающий список «Выбрать таблицу» на главной форме программы
Рис. 2.5 - Макет таблицы из 6 расчётных столбцов
Первый столбец «Имя» служит для наименований различных альтернатив. Предпоследний столбец «Мягкий рейтинг» служит для расчёта мягкого рейтинга, находится максимальное значения суммы произведений весовых коэффициентов и нормированных значений для всех вариантов и каждая эта сумма произведений делится на это максимальное значение. В последнем столбце «Жёсткий рейтинг» рассчитывается соответственно жёсткий рейтинг. Вариант, у которого минимальное (максимальное, в зависимости от выбранного плана) значение суммы произведений весовых коэффициентов и нормированных значений, будет вариантом-победителем и ему присвоится единица. Если количество вариантов-победителей “p” несколько, т. е. два и более варианта имеют минимальное одинаковое значение, то в последний столбец каждому варианту записывается частное “1/p”.
2) Кол-во расчётных столбцов - в этом списке следуя из названия необходимо указать количество расчётных столбцов, к примеру, для макета из шести столбцов (рис. 2.5) необходимо выбрать «6 столбцов». В этом списке можно выбрать максимум 15 столбцов, что является максимально допустимым для расчётов в представленной программе.
Рис. 2.6 - Всплывающий список «Кол-во расчётных столбцов» на главной форме программы
Выберем «6 столбцов» в этом списке:
Рис. 2.7 - Окно программы после выбора количества столбцов для расчёта (в данном случае «6 столбцов») со всплывающими списками над расчётными столбцами
После выбора «6 столбцов» над расчётными столбцами появились еще всплывающие списки (рис. 2.7). Следует отметить, что расчёт значений происходит со второго столбца и заканчивается третьим справа. Таким образом, необходимо минимум 4 столбца, если участвует всего один критерий.
Теперь рассмотрим появившихся два новых всплывающих списка над каждым расчётным столбцом:
1) Важность - задаётся, к какой группе важности относится критерий (рис. 2.8). Она показывает степень важности критериев. Чем важнее критерий, тем больше шансов на победу у варианта, имеющего лучшее значение в наиважнейшем критерии. Эти группы необходимы для того, чтобы отделить основные критерии от вторичных критериев.
В программе реализовано три группы важности критериев:
1.1) Neutrally - нейтральная группа важности. В данную группу относят критерии, которые не оказывают существенного влияния на выбор варианта и не представляют ценности в расчёте, по сути, они игнорируются, и все значения в данной группе получаются нулевыми;
1.2) Important - важная группа важности. В этой группе отмечаются важные критерии, они оказывают влияния на выбор альтернативы, но не являются основными, а всего лишь вторичными, при выборе какого-либо варианта. Хоть они не несут особой важности, но их также учитывают в процессе выбора и может статься так, что несколько важных перекроют очень важный критерий;
1.3) Very important - группа очень важных критериев. В этой группе сосредоточены основные критерии, которые оказывают ключевое влияние и обязательно учитываются при выборе какого-либо варианта. Однако это не значит, что лучшие в этой группе важности, значения критерия будут определять вариант-победителя, а лишь прибавит варианту с лучшим значением больше шансов при определении оптимального варианта.
Рис. 2.8 - Всплывающий список «Важность» для одного из столбцов
2) Направление - этот список, позволяет задать направление для критериев в сторону максимума или минимума (рис. 2.9). Это необходимо для дальнейшей нормировки значений по критериям в зависимости от выбранного направления. Направление необходимо для того, чтобы понять какие критерии лучше как минимальные, а какие как максимальные. Не во всех критериях лучшее значение это максимальное значение, где-то наоборот минимальное значение будет предпочтительнее. К примеру, цена - чем меньше, тем лучше, а вот эффективность - чем больше, тем лучше.
Рис. 2.9 - Всплывающий список «Направление» для одного из столбцов
В списке «Направление» имеется, как уже говорилось два вида направлений:
2.1) Minimum - задаётся направление в сторону минимума, минимальное значение в критерии будет лучшим, а максимальное значение соответственно худшим. После нормировки минимальное значение становится 1, а максимальное 0.
2.2) Maximum - задаётся направление в сторону максимума, минимальное значение в критерии будет худшим, а максимальное значение соответственно лучшим. После нормировки минимальное значение становится 0, а максимальное 1.
Если направление не задать, то критерий учитываться не будет. Поэтому важно заранее задать направления для всех критериев. Для группы нейтральной важности это не важно.
Так вот мы ознакомились со всеми всплывающими списками этой программы, теперь приступим к дальнейшему ознакомлению с программой. В программе имеются два основных списка меню: «Файл» и «Таблица».
В меню «Файл» (рис. 2.10) можно сохранить/открыть таблицу в формате .xml, сменить пользователя, тем самым вернуться в окно авторизации или просто закрыть программу.
Рис. 2.10 - Меню «Файл»
В меню «Таблица» (рис. 2.11) можно выбрать режим работы. Всего имеется два режима: «Произвести расчёт» и «Редактировать таблицы». В зависимости от выбранного режима на основной форме можно выполнить определённые для этих режимов действия.
Рис. 2.11 - Меню «Таблица»
Теперь рассмотрим по отдельности каждый из режимов. Начнём с режима «Редактировать таблицы»:
Рис. 2.12 - Выбран режим «Редактировать таблицы»
Тут как мы наблюдаем, имеется 6 основных кнопок, которые позволяют нам работать с таблицами, точнее их редактировать:
1) Добавить столбец - позволяет добавить дополнительный столбец в таблицу;
2) Удалить столбец - позволяет удалить выбранный столбец. Столбец выбирается в специальном окне «Окно ввода» (рис. 2.13), с помощью которого считывается введенное значение и удаляется выбранный столбец. Если введённое значение не соответствует количеству столбцов, то появится сообщение об ошибке (рис. 2.14).
3) Удалить строку - исходя из названия, удаляет выбранную строку, также как и со столбцами появляется «Окно ввода» значений (рис. 2.13). Если ввести номер не существующей строки произойдёт аналогичная со столбцами ошибка.
Рис. 2.13 - Окно ввода значений
Рис. 2.14 - При удалении не существующего столбца
4) Переименовать столбец - позволяет переименовать столбец в таблице. Номер и новое имя столбца записываются в текстовых полях слева от кнопки. После того когда введено новое имя и указан номер столбца, необходимо нажать на кнопку «Переименовать столбец» и столбец получит новое имя.
5) Удалить таблицу - данная кнопка служит для удаления выбранной таблицы. Достаточно выбрать интересующую нас таблицу и нажать эту кнопку и таблица будет удалена.
6) Создать таблицу - служит для создания новой таблицы. После нажатия на кнопку появляется «Окно ввода» (рис. 2.15), в которое необходимо ввести название таблицы. После чего у нас в списке таблиц появится новая таблица, которую мы только что создали (рис. 2.16). После этого мы можем создавать столбцы (из которых 3 обязательных), записывать в них значения, производить расчёты. Потом таблица будет сохранена за текущим пользователем.
Рис. 2.15 - Ввод названия новой таблицы
Рис. 2.16 - Список с новой таблицей
Теперь перейдём к следующему режиму - «Произвести расчёт» (рис 2.17). На главной форме изменились кнопки, на те которые нам необходимы для проведения расчётов и нахождения оптимального варианта.
Как можно заметить на (рис 2.17) присутствует 5 основных кнопок и 2 переключателя, которые мы сейчас рассмотрим:
1) Запись - позволяет записать значения с расчётных столбцов в другую таблицу. Это необходимо для того, чтобы мы могли оперировать исходными значениями и наглядно наблюдать за изменениями в основной таблице. Таблица, которая хранит истинные значения, скрыта от глаз, но расчёт происходит через неё и вычисления отражаются уже на видимой нами таблице.
Рис. 2.17 - Главное окно с выбранным режимом «Произвести расчёт»
2) Нормировать критерии - нормирует критерии в зависимости от направления. Мы уже упоминали выше о нормировании критериев, задав разные направления, мы можем получить разное нормирование. Рассмотрим пример для трёх столбцов:
Рис. 2.18 - Пример с тремя столбцами и уже заданными направлениями
Для первого критерия выбран максимум, для второго минимум, а для третьего тоже максимум. После задания направления критериев мы произведем нормировку, для начала нам необходимо произвести запись исходных значений, после этого проводим нормировку, нажав на соответствующую кнопку, в результате мы получим новую таблицу с уже нормированными значениями, с которыми можно производить расчёт и находить интересующий нас мягкий и жёсткий рейтинги для вариантов. Результат нормировки мы можем увидеть на рис. 2.19.
Рис. 2.19 - Результат нормировки
Сравнивая изначальную таблицу (рис 2.18) и полученную после нормировки (рис 2.19), мы можем убедиться, что нормировка провелась верно.
3) Расчёт - основная функция программы, которая позволяет определить оптимальный вариант. После нажатия необходимо указать число итераций в специальном дополнительном окне «Расчёт» (Рис. 2.20). Однако не следует забывать нажать один из переключателей перед этим:
3.1) Максимум - единица для жёсткого рейтинга будет присваиваться варианту с максимальной суммой произведения;
3.2)Минимум - единица для жёсткого рейтинга будет присваиваться варианту с минимальной суммой произведения;
После ввода значения начнёт выполняться операция расчёта с указанным количеством итераций. Допустим, будет 200 итераций. После этого пойдёт загрузка (рис. 2.21):
Рис. 2.20 - Окно «Расчёт» для ввода количества итераций
Рис. 2.21 - Загрузка выполнения 200 итераций
После того когда расчёт закончился мы получим в результате таблицу с найденными рейтингами для каждого варианта (рис. 2.22). Проверить правильность прохождения 200 итераций можно путём сложения значений из жёсткого рейтинга, оно не должно превышать количества итераций.
Рис. 2.22 - Результат прохождения 200 итераций
Сложив значения в поле жёсткого рейтинга, мы действительно получаем значение 200. Возникает вопрос: Почему получились не целые числа? - как уже говорилось раньше если вариантов-победителей несколько, то единица делится на количество этих вариантов-победителей и результат деления присваивается каждому из них.
4) Привести к долям - функция, выполняемая этой кнопкой, производит деление каждого значения в жёстком рейтинге на сумму всех значений в этом же столбце, чтобы определить его долевую часть. А также делит значения в мягком рейтинге на максимальное значение этого столбца. Таким образом, происходит формирование значений мягкого и жёсткого рейтинга (рис. 2.23). Этот шаг является обязательным для получения достоверной информации. Так как нас интересуют именно полученные значения после выполнения этой функции. Именно с этими результатами работает ЛПР. Дальнейший и последний шаг это приведение лучшего результата по жёсткому рейтингу.
Рис. 2.23 - Значения в счётчике приведены к долям
5) Отобразить лучших - позволяет выделить оптимальный (-ые) варианты. Необязательно будет один оптимальный вариант, можно ввести в «Окно для ввода отклонения от оптимального решения» (рис. 2.24) некое отклонение и уже будет отмечен не только лучший из вариантов, но и те, которые близки к нему, в зависимости от уровня отклонения. В «Окно для ввода отклонения от оптимального решения» необходимо ввести коэффициент отклонения, который будет умножен на значение наиболее оптимального варианта в столбце жёсткого рейтинга. Для примера охватим кроме 3 строки ещё 1 и 4, для этого введем значение 0,05 (рис. 2.25).
Рис. 2.24 - Окно для ввода отклонения от оптимального решения
В результате получим 3 оптимальных варианта:
Рис. 2.25 - Выделение оптимальных вариантов
2.2 Построение физической и логической модели программы
Построение диаграммы процессов в ERWin.
Логический уровень информационной модели. Таблица сущностей, представленных в модели:
Таблица 2.1 Сущности, используемые в физической/логической модели
Имя сущности |
Описание |
|
Пользователь |
Информация о пользователях |
|
Регистрация |
Процедура регистрации |
|
Авторизация |
Процедура авторизации |
|
База данных |
Источник данных |
|
Таблица |
Отдельная часть базы данных |
|
Расчёт |
Процедура расчёта |
|
Нормировка |
Процедура нормировки |
|
Результат |
Процедура формирования результата |
Отношения между сущностями:
Диаграмма отношений сущностей на уровне атрибутов (логическая модель):
Рис. 2.26 - Логический уровень модели
Физический уровень:
На основе логического уровня физический уровень создается автоматически. Сущности превращаются в таблицы данных. Ключи превращаются в индексы.
Рис. 2.27 - Физический уровень модели
2.3 Диаграмма вариантов использования
Рис. 2.28 - Диаграмма вариантов использования
2.4 Описание работы функции кнопки «Нормировать критерии»
Блок схема:
Рис. 2.29 - Блок-схема «Нормировать критерии»
Описание выполняемой работы: После заполнения таблицы исходными данными необходимо выбрать направление критериев, если направление критериев не задать, то в результате мы получим нулевой вектор-столбец.
Допустим, задали таблицу в нашей программе:
Таблица 2.2 Таблица исходных значений
Варианты |
Критерии |
|||||
1 критерий |
2 критерий |
3 критерий |
4 критерий |
5 критерий |
||
1 вариант |
2 |
4 |
3 |
3 |
4 |
|
2 вариант |
4 |
2 |
2 |
4 |
2 |
|
3 вариант |
3 |
3 |
4 |
2 |
3 |
Выбрали направление для каждого критерия. Допустим:
1 критерий - на максимум;
2 критерий - на максимум;
3 критерий - на минимум;
4 критерий - на максимум;
5 критерий - на минимум.
Формула для нормирования по максимуму:
(2.1)
Формула для нормирования по минимуму:
,(2.2)
Где ;
- нормированное значение;
- исходное значение;
- минимальное значение в столбце;
- максимальное значение в столбце.
После задания направления можно производить нормировку. Направление влияет на порядок нормирования, взяв за основу табл. 2.1 и выбранные направления критериев, в результате выполнения функции нормировки получится таблица c нормированными значения:
Таблица 2.2 Таблица с нормированными значениями
Варианты |
Критерии |
|||||
1 критерий |
2 критерий |
3 критерий |
4 критерий |
5 критерий |
||
1 вариант |
0 |
1 |
0,5 |
0,5 |
0 |
|
2 вариант |
1 |
0 |
1 |
1 |
1 |
|
3 вариант |
0,5 |
0,5 |
0 |
0 |
0,5 |
Дальше эти значения будут необходимы при выполнении расчёта.
Листинг реализации нормировки критериев для трёх расчётных столбцов:
int p = dataGridView3->RowCount - 1;
for (int i = 1; i < dataGridView3->ColumnCount; i++)
{
double max = 0;// присваиваем max ноль
for (int j = 0; j < dataGridView3->RowCount - 1; j++)
{
double A1 = Convert::ToDouble(dataGridView3->Rows[j]->Cells[i]->Value);// присваиваем A1 все значения
if (max < A1) // если max меньшь A1
{
max = A1; // то max = A1
}
if (Convert::ToString(dataGridView3->Rows[j]->Cells[i]->Value) != ""){
dataGridView3->Rows[p]->Cells[i]->Value = max;// если не пустые
} // значения в ячйках, то
} // в p-ой строке для них
} // записать максимум
for (int i = 1; i < dataGridView3->ColumnCount; i++)
{
double min = 100000; // присваиваем min 100000
for (int j = 0; j < dataGridView3->RowCount - 1; j++)
{
double B1 = Convert::ToDouble(dataGridView3->Rows[j]->Cells[i]->Value); // присваиваем B1 все значения
if (B1 < min)// если min больше B1
{
min = B1;// то min = B1
}
if (Convert::ToString(dataGridView3->Rows[j]->Cells[i]->Value) != ""){ // если не пустые значения в ячйках
dataGridView3->Rows[p-1]->Cells[i]->Value = min; // то в p-1-ой строке для них записать минимум
}
}
}
double A1, A2, A3;//
double max1, max2, max3;// Объявление переменных
double min1, min2, min3;//
for (int k = 0; k < dataGridView1->RowCount - 1; k++)
{
max1 = Convert::ToDouble(dataGridView3->Rows[p]->Cells[1]->Value);
min1 = Convert::ToDouble(dataGridView3->Rows[p - 1]->Cells[1]->Value);
max2 = Convert::ToDouble(dataGridView3->Rows[p]->Cells[2]->Value);
min2 = Convert::ToDouble(dataGridView3->Rows[p - 1]->Cells[2]->Value);
max3 = Convert::ToDouble(dataGridView3->Rows[p]->Cells[3]->Value);
min3 = Convert::ToDouble(dataGridView3->Rows[p - 1]->Cells[3]->Value);
A1 = Convert::ToDouble(dataGridView3->Rows[k]->Cells[1]->Value);
A2 = Convert::ToDouble(dataGridView3->Rows[k]->Cells[2]->Value);
A3 = Convert::ToDouble(dataGridView3->Rows[k]->Cells[3]->Value);
else if (dataGridView1->ColumnCount == 6){
if (comboBox1->SelectedItem == "Maximum"){
dataGridView1->Rows[k]->Cells[1]->Value = Math::Round(((A1 - min1) / (max1 - min1)), 3);// нахождение нормированных
} // значений в сторону максимума
else if (comboBox1->SelectedItem == "Minimum"){// нахождение нормир.
dataGridView1->Rows[k]->Cells[1]->Value = Math::Round((1 - ((A1 - min1) / (max1 - min1))), 3); // значений в сторону мин.
} // для 1го столбца
if (comboBox2->SelectedItem == "Maximum"){
dataGridView1->Rows[k]->Cells[2]->Value = Math::Round(((A2 - min2) / (max2 - min2)), 3); // нахождение нормированных
} // значений в сторону максимума
else if (comboBox2->SelectedItem == "Minimum"){ // нахождение нормированных
dataGridView1->Rows[k]->Cells[2]->Value = Math::Round((1 - ((A2 - min2) / (max2 - min2))), 3); // значений в сторону мин
} // для 2 столбца
if (comboBox3->SelectedItem == "Maximum"){
dataGridView1->Rows[k]->Cells[3]->Value = Math::Round(((A3 - min3) / (max3 - min3)), 3); // нахождение нормированных
} // значений в сторону максимума
else if (comboBox3->SelectedItem == "Minimum"){ // нахождение нормир.
dataGridView1->Rows[k]->Cells[3]->Value = Math::Round((1 - ((A3 - min3) / (max3 - min3))), 3); // значений в сторону мин
} // для 3 столбца
}
2.5 Описание работы функции кнопки «Расчёт»
Блок схема рис. 2.30.
Описание выполняемой работы: После заполнения таблицы исходными данными, задают группы важности для критериев, что формирует случайные значения весовых коэффициентов бi для этих критериев, где i - номер столбца (. где k - количество столбцов. Если критерий нейтральный, то формируется 0.
Предположим у нас 5 расчётных столбцов. Первый и третий столбцы относятся к важным критериям. Второй и пятый к очень важным критериям. А оставшийся четвёртый столбец относится к нейтральным критериям. Нейтральный мы отбрасываем, так как у него формируется нулевое значение, что означает его бесполезность в дальнейшем расчёте.
Допустим, значения весовых коэффициентов получились следующими:
1) Для важных критериев:
;
.
2) Для очень важных критериев:
;
Следует учесть, что . Однако дальнейшая работа невозможна с текущими значениями весовых коэффициентов. Дальше находится максимум среди весовых коэффициентов важных критериев.
Рис. 2.30 - Блок-схема процедуры «Расчёт»
В данном примере это . После этого выделятся значимость очень важных весовых коэффициентов, делается это по следующей формуле:
(2.3)
где - это новые значения весовых коэффициентов для очень важных критериев (j - номер столбца);
- это максимальное значение весового коэффициента среди важных критериев;
- это изначально сформированные случайные значения весовых коэффициентов очень важных критериев ().
Для нашего примера получится:
После нахождения весовых коэффициентов они приводятся к долям, чтобы в результате их суммы получалась единица. Расчёт происходит по формуле:
(2.4)
где - окончательные значения весовых коэффициентов (;
- значения важных весовых коэффициентов и полученных очень важных (;
- сумма .
Для нашего примера получится:
;
;
Далее находятся реальные значения весовых коэффициентов:
Полученные значения весовых коэффициентов умножаются с нормированными значениями всех вариантов в таблице в соответствии с конкретным столбцом (критерием) по всем строкам и вычисляется их сумма.
(2.5)
где
- итоговое значение суммы произведений, которое было необходимо найти;
- значение весового коэффициента;
- нормированные значения в таблице по всем строкам.
Возьмем для нашего примера простенькую таблицу из 3-х вариантов табл. 2.2 (так как необходима таблица с уже нормированными значениями). Используя формулу (2.3) найдём и получим таблицу:
Таблица 2.3 Таблица с примером найденных итоговых значений
Варианты |
Критерии |
МР |
|||||
1 критерий |
2 критерий |
3 критерий |
4 критерий |
5 критерий |
|||
1 вариант |
0 |
1 |
0,5 |
0,5 |
0 |
0,9 |
|
2 вариант |
1 |
0 |
1 |
1 |
1 |
2,3 |
|
3 вариант |
0,5 |
0,5 |
0 |
0 |
0,5 |
1,3 |
|
Весовые коэффициенты |
0,6 |
0,7 |
0,4 |
0 |
1,3 |
МР - мягкий рейтинг, однако этот столбец в данный момент является расчётным для жёсткого рейтинга. Когда будет найден жёсткий рейтинг, после этого будет вычисляться уже мягкий рейтинг.
Остался последний шаг, а именно определить оптимальный вариант. Оптимальным будет вариант с минимальным (максимальным), в зависимости от выбора ЛПР, значением, т.е. необходимо найти минимум (максимум) в поле «МР». В нашем примере нужно найти минимум из табл. 2.3 это 1 вариант, у которого итоговое значение 0,9. После чего оптимальному варианту прибавляется единица (или доля от количества оптимальных вариантов, если их больше одного). После этого происходит определение максимального значения в поле «МР». Далее все значения в поле «МР» делятся на это максимальное значения, тем самым мы определяем мягкий рейтинг, который является более точным при определение оптимального варианта.
Таблица 2.4 Конечная таблица, получаемая в ходе расчёта (при одной итерации)
Варианты |
Критерии |
МР |
ЖР |
|||||
1 критерий |
2 критерий |
3 критерий |
4 критерий |
5 критерий |
||||
1 вариант |
0 |
1 |
0,5 |
0,5 |
0 |
0,39 |
1 |
|
2 вариант |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
|
3 вариант |
0,5 |
0,5 |
0 |
0 |
0,5 |
0,57 |
0 |
|
Весовые коэффициенты |
0,6 |
0,7 |
0,4 |
0 |
1,3 |
Как мы видим из табл. 2.4 наиболее оптимальным вариантом оказался первый. Значения в столбце «ЖР» это жёсткий рейтинг, который определил оптимальному варианту единицу, а остальным вариантам нулевые значения. Мягкий же рейтинг (поле «МР») сформирован значения для всех вариантов. В нашем случае, чем меньше, тем лучше. Варианты-победители совпадают. Таким образом, ЛПР может на основе полученных рейтингов: мягкого и жёсткого выбрать оптимальный вариант.
Данный расчёт был проведён для одной итерации. Однако можно указать сколько угодно итераций (подразумевается выбор человека, основываясь на его предпочтениях, количество итераций это множество оценок людей).
Листинг реализации расчёта для трёх расчётных столбцов:
int A1;// определяем переменную А1
groupBox1->Visible = true;// делаем видимой нашу полоску загрузки
MyForm1^ f2 = gcnew MyForm1();
f2->ShowDialog();
this->label2->Text = f2->textBox1->Text;// считывания значения с
f2->button1->PerformClick(); // формы ввода кол-ва итераций
if (label2->Text == String::Empty){ // если ничего не введено,
String^ message = "Введите число!"; // то появится сообщение
MessageBox::Show(this, message); // "Введите число!"
}
else if (label2->Text != String::Empty){ // Если не пусто
A1 = Convert::ToInt32(label2->Text); // то введенное число
if (A1 >= 0){ // конвертируется в int и
A1 = Convert::ToInt32(label2->Text); // сравнивается, если >=0,
int j; // то проходит цикл
for (j = 0; j < A1; j++){
int a = j;
Decimal pcdone;
pcdone = Convert::ToDecimal(a + 1);
groupBox1->Text = Convert::ToString(Convert::ToInt32((pcdone / A1) * 100)) + "%"; // заполнение % на полосе загр.
groupBox1->Refresh();
label3->Width = Convert::ToInt32((pcdone * (groupBox1->Width - 10))) / A1; // заполнение полоски загрузки
double C1, B1;
Random^ rand = gcnew Random();
if (dataGridView1->ColumnCount == 6)
{
if (comboBox16->SelectedItem == "Neytrally") // если нейтральная
{ // важность то весовой
dataGridView2->Rows[0]->Cells[0]->Value = 0; // коэф. Равен 0
}
else if (comboBox16->SelectedItem == "Important"){// если важный крит.
dataGridView2->Rows[0]->Cells[0]->Value = rand->Next(1, 100).ToString();// то формируется случаное число в диапазоне 0…1
C1 = Convert::ToDouble(dataGridView2->Rows[0]->Cells[0]->Value);
B1 = C1 / 100;
Thread::Sleep(5);
}
else if (comboBox16->SelectedItem == "Very important"){// если очень
dataGridView2->Rows[0]->Cells[0]->Value = rand->Next(1, 100).ToString();// важ. крит. то формир. случ. число в диапазоне 0…1
C1 = Convert::ToDouble(dataGridView2->Rows[0]->Cells[0]->Value);
B1 = C1 / 100;
Thread::Sleep(5);
}
if (comboBox17->SelectedItem == "Neytrally")
{
dataGridView2->Rows[0]->Cells[1]->Value = 0;
}
else if (comboBox17->SelectedItem == "Important"){
dataGridView2->Rows[0]->Cells[1]->Value = rand->Next(1, 100).ToString();
C1 = Convert::ToDouble(dataGridView2->Rows[0]->Cells[1]->Value);
B1 = C1 / 100;
Thread::Sleep(5);
}
else if (comboBox17->SelectedItem == "Very important"){
dataGridView2->Rows[0]->Cells[1]->Value = rand->Next(1, 100).ToString();
C1 = Convert::ToDouble(dataGridView2->Rows[0]->Cells[1]->Value);
B1 = C1 / 100;
Thread::Sleep(5);
}
if (comboBox18->SelectedItem == "Neytrally")
{
dataGridView2->Rows[0]->Cells[2]->Value = 0;
}
else if (comboBox18->SelectedItem == "Important"){
dataGridView2->Rows[0]->Cells[2]->Value = rand->Next(1, 100).ToString();
C1 = Convert::ToDouble(dataGridView2->Rows[0]->Cells[2]->Value);
B1 = C1 / 100;
Thread::Sleep(5);
}
else if (comboBox18->SelectedItem == "Very important"){
dataGridView2->Rows[0]->Cells[2]->Value = rand->Next(1, 100).ToString();
C1 = Convert::ToDouble(dataGridView2->Rows[0]->Cells[2]->Value);
B1 = C1 / 100;
Thread::Sleep(5);
}
}
button6->PerformClick(); // последовательное
button2->PerformClick(); // выполнение
button12->PerformClick(); // процедур
button10->PerformClick(); // из кнопок
button17->PerformClick();
button9->PerformClick();
}
}
else if (A1<0){ // если А1<0, то
dataGridView3->Rows[0]->Cells[0]->Value = "";
String^ message = "Введите положительное число!";// появится сообщение
MessageBox::Show(this, message); // "Введите положительное число!";
}
}
button7->PerformClick();// выполнение перезаписи в основную
groupBox1->Visible = false;// таблицу и закрытие полоски загрузки
программа логический стратегия
3. Задача нахождения оптимального варианта решения
3.1 Постановка задачи
В качестве примера взята за основу информация с удалённого электронного ресурса [7, табл. 4-6]. Таблицы, представленные там, содержат информацию о социально-экономическом развитии регионов РФ, которые включают в себя 85 субъектов РФ, оцененных в 85-ти балльной системе. Анализ данных будет производиться с применением 15 критериев.
Нам необходимо найти наиболее эффективный вариант решения задачи для конкретной стратегии. Задача заключается в нахождение региона, который бы удовлетворял условиям заданного выбора. Процесс нахождения наиболее варианта будет происходить при помощи, созданной в рамках данной работы программе «Annoy-o-Tron». С помощью реализованной функции «Расчёт» мы зададим определённое количество итераций, которые как уже упоминалось в предыдущей главе, является оценкой разных людей, которые отдали предпочтения тому или иному варианту. На основе полученных в результате рейтингов, мы методом уверенных суждений определим наиболее эффективный вариант. Полученный в результате жёсткий рейтинг мы отобразим в исходной таблице. После чего сделаем выводы и сможем увидеть различия между реальной информацией и итоговым расчётом программы
Все критерии будем определять в различные группы важности в зависимости от стратегии выбора. Для каждой стратегии они могут существенно отличаться друг от друга. Некоторые могут быть нейтральны в одной стратегии и очень важными в другой. Также мы зададим направление критериев для проведения нормировки. Нормировка нам необходима для приведения к единой шкале оценки, чтобы провести расчёт. Однако в [7, табл. 4-6] значения приведены к единой шкале, но мы всё равно проведём нормировку. В результате расчёта мы получим мягкий и жёсткий рейтинги, на основе которых ЛПР может принимать решения и определить наиболее эффективный вариант.
Сейчас мы рассмотрим, какие же критерии будут присутствовать при анализе данных.
Критерии, которые присутствуют в задаче:
1) Численность населения на 1 января 2016 г.;
2) Коэффициент естественного прироста населения, 2015 г.;
3) Относительный прирост (убыль) населения, 2015 г.;
4) Ожидаемая продолжительность жизни при рождении (оба пола, все население), 2014 г.;
5) Уровень безработицы в среднем за год, 2015 г.;
6) Объем валового регионального продукта (ВРП) в расчете на одного жителя субъекта РФ, 2014 г.;
7) Среднемесячная номинальная начисленная заработная плата работников по полному кругу организаций, январь-декабрь 2015 г.;
8) Инвестиции в основной капитал на душу населения, 2014 г.;
9) Оборот розничной торговли на душу населения, 2014 г.;
10) Доходы бюджета субъекта РФ (без учета безвозмездных поступлений) на душу населения субъекта РФ, 2014 г.;
11) Оборот общественного питания на душу населения, 2014 г.;
12) Базовый индекс потребительских цен в декабре 2015 г., к декабрю 2014 г.;
13) Индекс промышленного производства, 2015 г.;
14) Количество индивидуальных предпринимателей на 1 марта 2016 г.;
15) Количество юридических лиц на 1 марта 2016 г.
Всего мы будем рассматривать две стратегии выбора наиболее эффективного варианта: с наилучшими показателями качества жизни населения и с наилучшим экономическим потенциалом. После чего подведем итоги о наиболее эффективных вариантах среди регионов РФ.
3.2 Стратегия выбора оптимального варианта с наилучшими показателями качества жизни населения
Приступим к рассмотрению нашей первой стратегии: Нужно найти такой регион, который имел бы наилучший показатель качества жизни. Будем подбирать критерии, которые влияют на показатели качества жизни населения. Определим группы важности для критериев и их направление. После чего проведём расчёт, получим интересующие нас рейтинги. На основе полученных рейтингов мы проанализируем нашу таблицу и найдём наиболее эффективный вариант.
Рассмотрев детально все критерии, определяем, что:
1) Очень важными критериями для этой стратегии являются: 4, 7 и 11 критерий. Так как они напрямую влияют на показатель качества жизни населения. Они составляют основу для выбора наиболее эффективного варианта.
2) Важными критериями являются: 2, 3, 5, 8 и 9 критерий. Эти критерии также имеют влияние при выборе наиболее эффективного варианта, хоть и не являются основными. Они помогут определить дополнительные преимущества какого-либо варианта.
3) Оставшиеся же критерии, а именно 1, 6, 10, 12, 13, 14 и 15 относятся к нейтральной группе. Они никак не влияют на показатель качества жизни населения, хоть и имеют место быть. Таким образом, они никак не повлияют на определение наиболее эффективного варианта.
Теперь рассмотрим направления для критериев. Для этой стратегии, не считая нейтральные критерии, только «Уровень безработицы в среднем за год, 2015 г.» будет направлен в сторону минимума. Так как этот критерий подразумевает, что чем меньше, тем лучше. Остальные же критерии, которые учитываются этой стратегией, будут направлены в сторону максимума.
Сведём в таблицу наши рассуждения по поводу критериев для выбранной нами стратегии:
Таблица 3.1 Входные данные для первой стратегии
Показатель (критерий) |
Группа важности |
Направление |
|
Численность населения на 1 января 2016 г. |
Нейтрально |
Не имеет значения |
|
Коэффициент естественного прироста населения, 2015 г. |
Важно |
Максимум |
|
Относительный прирост (убыль) населения, 2015 г. |
Важно |
Максимум |
|
Ожидаемая продолжительность жизни при рождении (оба пола, все население), 2014 г. |
Очень важно |
Максимум |
|
Уровень безработицы в среднем за год, 2015 г. |
Важно |
Минимум |
|
Объем валового регионального продукта (ВРП) в расчете на одного жителя субъекта РФ, 2014 г. |
Нейтрально |
Не имеет значения |
|
Среднемесячная номинальная начисленная заработная плата работников по полному кругу организаций, январь-декабрь 2015 г. |
Очень важно |
Максимум |
|
Инвестиции в основной капитал на душу населения, 2014 г. |
Важно |
Максимум |
|
Оборот розничной торговли на душу населения, 2014 г. |
Важно |
Максимум |
|
Доходы бюджета субъекта РФ (без учета безвозмездных поступлений) на душу населения субъекта РФ, 2014 г. |
Нейтрально |
Не имеет значения |
|
Оборот общественного питания на душу населения, 2014 г. |
Очень важно |
Максимум |
|
Базовый индекс потребительских цен в декабре 2015 г., к декабрю 2014 г. |
Нейтрально |
Не имеет значения |
|
Индекс промышленного производства, 2015 г. |
Нейтрально |
Не имеет значения |
|
Количество индивидуальных предпринимателей на 1 марта 2016 |
Нейтрально |
Не имеет значения |
|
Количество юридических лиц на 1 марта 2016 |
Нейтрально |
Не имеет значения |
Приступаем к определению наиболее эффективного варианта для первой стратегии:
Для начала мы заполнили нашу таблицу в созданной программе исходными данными из таблиц [7, табл. 4-6]. После этого мы зададим направление критериев по табл. 3.1. Проведём нормировку. Зададим группу важности для критериев по табл. 3.1, после чего проведем расчёт коэффициентов (расчёт коэффициентов выполняется в самой операции «Расчёт»).
Следующим шагом будет непосредственно сам расчёт. Для расчёта мы возьмём 1000 итераций, чтобы процесс не затянулся на долгое время (для 85 вариантов и 15 критериев при прохождении 1000 итераций на ПК, используемом в данной работе необходимо приблизительно 5 мин).
После того, как операция расчёта была выполнена, мы получили новую таблицу, в которой содержаться нормированные значения из исходной таблицы, а также найденные мягкие и жёсткие рейтинги для всех вариантов. Наиболее эффективный вариант будем определять по жёсткому рейтингу. Хотя ЛПР может делать выбор, опираясь на любой из рейтингов.
Если мы хотим выделить несколько вариантов, то мы могли бы ввести отклонение от наиболее эффективного варианта. Допустим на 0,15 и получили бы кроме наиболее эффективного варианта ещё и входящие в зону отклонения от наиболее эффективного варианта. Это необходимо для того, чтобы просмотреть другие альтернативы, которые хороши, но не являются лучшими. В данной задаче отклонения рассмотрены не будут.
Таким образом, можем наблюдать результат выполнения расчёта на следующей таблице (указаны только те варианты, которые имеют значение для жёсткого рейтинга больше 0):
Таблица 3.2 Результат нахождения наиболее эффективного варианта для первой стратегии
Субъект РФ |
Критерии |
МР |
ЖР |
|||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
||||
Ненецкий АО |
0 |
0.9 |
0.9 |
0.6 |
0.8 |
1 |
0.9 |
1 |
0.7 |
1 |
1 |
0.1 |
0.8 |
0 |
0 |
0.99 |
0.57 |
|
г. Москва |
1 |
0.7 |
0.9 |
0.9 |
0 |
0.9 |
0.9 |
0.8 |
1 |
0.9 |
0.9 |
0.2 |
0.1 |
1 |
1 |
0.97 |
0.3 |
|
Ханты-Мансийский АО |
0.6 |
0.9 |
0.9 |
0.8 |
0.1 |
0.9 |
0.9 |
0.9 |
0.9 |
0.9 |
0.9 |
0.1 |
0.2 |
0.7 |
0.6 |
0.98 |
0.13 |
Желтым цветом выделены те критерии, которые являются очень важными. Они как уже говорилось, являются определяющими в выборе наиболее эффективного варианта. Как можно судить наиболее эффективным вариантом с лучшими показателями качества жизни населения является Ненецкий автономный округ. Это можно сказать по его полученному максимальному мягкому и жёсткому рейтингу. За ним следует г. Москва у неё второе место по показателю жёсткого рейтинга, однако по мягкому рейтингу она уступает Ханты-Мансийскому автономному округу, но так как мы ориентируемся в нашей задаче на жёсткий рейтинг то г. Москва занимает второе место, а Ханты-Мансийский автономный округ третье место.
Можно также заметить, что Ненецкий автономный округ в сумме по очень важным критериям имеет меньший рейтинг, чем г. Москва или Ханты-Мансийский автономный округ. Однако показатель по уровню безработицы в среднем за год, 2015 г. у него в разы меньше (чем больше нормированный рейтинг для критерия «Уровень безработицы в среднем за год, 2015 г.» тем лучше, так как направление этого критерия в сторону минимума, что значит минимальное значение, будет лучшим для данного критерия).
Самарская область в полученном в результате расчёта рейтинге занимает 32 место по значению мягкого рейтинга число, которого равно 0.6. По исходному рейтингу она занимала 13 место. Значение жёсткого рейтинга не имеется. Таким образом, можно сказать, что Самара в первой половине по показателю качеству жизни населения.
В итоге, по полученным данным из табл. 3.2 мы можем определить какой регион с наиболее лучшими показателями качества жизни.
3.3 Стратегия выбора оптимального варианта с наилучшим экономическим потенциалом
Для второй стратегии нам необходимо определить регион с наибольшим экономическим потенциалом. Как и для первой стратегии, нужно подобрать подходящие критерии, чтобы провести анализ данных. Источником информации также являются таблицы из удаленного ресурса [7, табл. 4-6].
Определяем критерии для различных групп важности:
К очень важной группе критериев для этой стратегии отнесём: 5, 6, 7, 10, 12 и 13 критерий. Эти критерии являются наиболее важными для определения оптимального варианта по выбору региона с лучшим экономическим потенциалом.
К важной группе отнесём: 1, 8, 9, 11, 14 и 15 критерий. Сюда отнесли те критерии, которые являются дополнительными для определения экономического потенциала региона. Они будут влиять на ход поиска оптимального варианта (региона) с наилучшим экономическим потенциалом.
В нейтральной группе остались 2, 3 и 4 критерий. Как уже говорилось для предыдущей стратегии, они никак не будут влиять на поиск оптимального варианта (региона) с наилучшим экономическим потенциалом, а только будут учтены условно.
Для этой стратегии, как и для первой необходимо определить направление для критериев. «Уровень безработицы в среднем за год, 2015 г.» и «Базовый индекс потребительских цен в декабре 2015 г., к декабрю 2014 г.» будут направлены в сторону минимума. Остальные критерии этой стратегии будут направлены на максимум.
Составим таблицу с входными данными по второй стратегии:
Таблица 3.3 Входные данные для второй стратегии
Показатель (критерий) |
Группа важности |
Направление |
|
Численность населения на 1 января 2016 г. |
Важно |
Максимум |
|
Коэффициент естественного прироста населения, 2015 г. |
Нейтрально |
Не имеет значения |
|
Относительный прирост (убыль) населения, 2015 г. |
Нейтрально |
Не имеет значения |
|
Ожидаемая продолжительность жизни при рождении (оба пола, все население), 2014 г. |
Нейтрально |
Не имеет значения |
|
Уровень безработицы в среднем за год, 2015 г. |
Очень важно |
Минимум |
|
Объем валового регионального продукта (ВРП) в расчете на одного жителя субъекта РФ, 2014 г. |
Очень важно |
Максимум |
|
Среднемесячная номинальная начисленная заработная плата работников по полному кругу организаций, январь-декабрь 2015г. |
Очень важно |
Максимум |
|
Инвестиции в основной капитал на душу населения, 2014 г. |
Важно |
Максимум |
|
Оборот розничной торговли на душу населения, 2014 г. |
Важно |
Максимум |
|
Доходы бюджета субъекта РФ (без учета безвозмездных поступлений) на душу населения субъекта РФ, 2014 г. |
Очень важно |
Максимум |
|
Оборот общественного питания на душу населения, 2014 г. |
Важно |
Максимум |
|
Базовый индекс потребительских цен в декабре 2015 г., к декабрю 2014 г. |
Очень важно |
Минимум |
|
Индекс промышленного производства, 2015 г. |
Очень важно |
Максимум |
|
Количество индивидуальных предпринимателей на 1 марта 2016 |
Важно |
Максимум |
|
Количество юридических лиц на 1 марта 2016 |
Важно |
Максимум |
Приступаем к определению наиболее эффективного варианта для второй стратегии:
Заполняем нашу таблицу в созданной программе исходными данными [7, табл. 4-6]. Задаем по табл. 3.3 направление критериев, производим нормировку. Задаём критериям группу важности. Делаем расчёт коэффициентов.
После чего выполняем расчёт, задав также 1000 итераций. По окончанию расчёта у нас сформируются жесткие и мягкие рейтинги для всех вариантов второй стратегии.
Отобразим также как и для первой стратегии только те варианты, которые получили жёсткий рейтинг больше 0:
Таблица 3.4 Результат нахождения наиболее эффективного варианта для второй стратегии
Субъект РФ |
Критерии |
МР |
ЖР |
|||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
||||
Ненецкий АО |
0 |
0.9 |
0.9 |
0.7 |
0.8 |
1 |
0.9 |
1 |
0.8 |
1 |
1 |
0.9 |
0.9 |
0 |
0 |
0.99 |
0.68 |
|
Тюменская область |
0.6 |
0.8 |
0.9 |
0.6 |
0.6 |
0.9 |
0.8 |
0.9 |
0.9 |
0.9 |
0.9 |
0.6 |
0.9 |
0.6 |
0.7 |
0.98 |
0.32 |
Основываясь на данных из табл. 3.4 можно увидеть, что наиболее эффективным вариантом (регионом) с наилучшим экономическим потенциалом является Ненецкий автономный округ с наивысшим показателем жёсткого рейтинга. После него идёт Тюменская область с отставанием более чем в два раза по показателю жёсткого рейтинга. По мягкому рейтингу Ненецкий автономный округ также является лучшим, что делает его бесспорным победителем.
Как мы можем наблюдать в табл. 3.4 по выделенным жёлтым критериям (очень важным критериям) Ненецкий автономный округ действительно имеет высокие показатели, что делает его фаворитом при выборе наиболее эффективного варианта.
Самарская область по результатам расчёта получила 25 место на основании мягкого рейтинга число, которого равно 0,72. Жёсткий рейтинг равен 0, как и в первой стратегии. Таким образом, Самарская область и в этой стратегии находится в лучшей половине субъектов РФ уже по экономическому потенциалу.
Мы также получили мягкие и жёсткие рейтинги для второй стратегии (табл. 3.4) на основе которых ЛПР может принимать решения и выбрать наиболее эффективный вариант.
3.4 Выводы по полученным результатам исследуемых стратегий
Теперь подведем итоги по полученным данным с помощью нашей программы и составим обобщённую таблицу с исходными данными и тремя дополнительными столбцами (жёсткий рейтинг для первой стратегии, жёсткий рейтинг для второй стратегии и сумма баллов по исходным данным):
На основе информации полученной по результатам выбора для первой стратегии (табл. 3.2) мы можем точно сказать, что наиболее эффективный вариант с наилучшими показателями качества жизни населения является Ненецкий автономный округ.
Для второй стратегии мы также получили результирующую таблицу 3.4, на основании которой, можно определить наиболее эффективный вариант регионов с наилучшим экономическим потенциалом. Причём наиболее эффективным вариантом оказался Ненецкий автономный округ, как и в первой стратегии.
Таким образом, мы определили наиболее эффективный вариант решения поставленной задачи для двух стратегий, им как мы уже определили, является один тот же регион. Однако это совпадение, а не закономерность.
Также по исходным данным [7, табл. 4-6], табл. 3.2 и табл. 3.4 мы составили общую таблицу 3.5, куда свели наши итоги. Мы взяли лишь жёсткий рейтинг, однако ЛПР может ориентироваться также и на мягкий рейтинг, чтобы принимать решения выбора наиболее эффективного варианта. Таким образом, ЛПР может методом уверенных суждений, используя мягкий и жёсткий рейтинг, полученный в результате расчёта, способен выбрать наиболее эффективный вариант решения задачи. Что значит, мы решили поставленную задачу.
Самарская область для первой стратегии, в которой определялся регион РФ с наилучшим качеством жизни населения, заняла 32 место, по второй стратегии, где определялся регион РФ с наилучшим экономическим потенциалом, заняла 25 место. По исходным данным [7, табл. 4-6] Самарская область занимает 13 место. Такая разница образуется из-за того, что в исходном рейтинге рассматривается общая характеристика регионов. А для нашей задачи мы провели комплексное исследование и определили конкретный результат для определённой стратегии. Таким образом, Самарская область является достаточно развитым регионом и находится в первой половине рейтинга.
Так же можно отметить, что программа является уникальным инструментом в руках исследователя. Так как она позволяет взглянуть на проблему с любой стороны.
Таблица 3.5 Рейтинг социально-экономического развития регионов
Субъект РФ |
Критерии |
Общий балл |
ЖР 1 |
ЖР 2 |
|||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|||||
г. Москва |
85 |
65 |
79 |
84 |
85 |
80 |
81 |
73 |
85 |
81 |
81 |
26 |
16 |
85 |
85 |
1091 |
0,3 |
0 |
|
Республика Татарстан |
78 |
69 |
67 |
72 |
80 |
72 |
56 |
76 |
78 |
66 |
66 |
69 |
39 |
79 |
79 |
1046 |
0 |
0 |
|
г. Санкт-Петербург |
82 |
64 |
73 |
82 |
84 |
75 |
75 |
67 |
77 |
76 |
72 |
24 |
11 |
81 |
84 |
1027 |
0 |
0 |
|
Ханты-Мансийский авт. округ-Югра |
58 |
80 |
77 |
74 |
70 |
83 |
79 |
83 |
81 |
80 |
82 |
8 |
21 |
61 |
56 |
993 |
0,13 |
0 |
|
Московская область |
84 |
45 |
81 |
62 |
83 |
65 |
73 |
59 |
80 |
70 |
71 |
6 |
42 |
83 |
83 |
987 |
0 |
0 |
|
Тюменская область (без АО) |
54 |
74 |
83 |
50 |
38 |
76 |
71 |
78 |
79 |
79 |
79 |
31 |
79 |
53 |
62 |
986 |
0 |
0,32 |
|
Краснодарский край |
83 |
50 |
80 |
75 |
44 |
57 |
44 |
75 |
75 |
45 |
74 |
50 |
44 |
84 |
81 |
961 |
0 |
0 |
|
Ямало-Ненецкий авт.округ |
14 |
81 |
4 |
69 |
81 |
84 |
84 |
84 |
83 |
83 |
84 |
80 |
64 |
21 |
16 |
932 |
0 |
0 |
|
Республика Саха (Якутия) |
30 |
79 |
66 |
36 |
24 |
79 |
77 |
79 |
63 |
78 |
80 |
82 |
63 |
55 |
38 |
929 |
0 |
0 |
|
Красноярский край |
73 |
61 |
65 |
23 |
41 |
74 |
70 |
74 |
62 |
68 |
42 |
83 |
28 |
74 |
72 |
910 |
0 |
0 |
|
Свердловская область |
81 |
46 |
55 |
34 |
35 |
66 |
63 |
57 |
82 |
59 |
77 |
16 |
19 |
80 |
82 |
852 |
0 |
0 |
|
Новосибирская область |
71 |
55 |
70 |
47 |
31 |
56 |
50 |
47 |
59 |
48 |
46 |
67 |
46 |
72 |
80 |
845 |
0 |
0 |
|
Самарская область |
75 |
34 |
43 |
31 |
82 |
61 |
47 |
66 |
74 |
61 |
62 |
30 |
30 |
71 |
77 |
844 |
0 |
0 |
|
Сахалинская область |
13 |
47 |
39 |
10 |
36 |
82 |
80 |
82 |
84 |
84 |
73 |
75 |
83 |
23 |
25 |
836 |
0 |
0 |
|
Республика Башкортостан |
79 |
56 |
51 |
35 |
43 |
50 |
41 |
46 |
73 |
38 |
55 |
66 |
47 |
77 |
75 |
832 |
0 |
0 |
|
Белгородская область |
57 |
28 |
59 |
73 |
78 |
68 |
38 |
51 |
56 |
41 |
14 |
77 |
68 |
59 |
53 |
820 |
0 |
0 |
|
Пермский край |
69 |
49 |
48 |
21 |
37 |
63 |
52 |
52 |
71 |
49 |
68 |
58 |
35 |
73 |
73 |
818 |
0 |
0 |
|
Нижегородская область |
76 |
20 |
32 |
29 |
71 |
51 |
45 |
55 |
72 |
51 |
41 |
62 |
56 |
75 |
76 |
812 |
0 |
0 |
|
Ненецкий авт.округ |
1 |
78 |
78 |
56 |
17 |
85 |
83 |
85 |
67 |
85 |
85 |
4 |
76 |
1 |
1 |
802 |
0,57 |
0,68 |
|
Ростовская область |
80 |
31 |
46 |
65 |
42 |
32 |
33 |
32 |
66 |
29 |
56 |
46 |
85 |
82 |
74 |
799 |
0 |
0 |
|
Хабаровский край |
50 |
53 |
33 |
11 |
53 |
70 |
72 |
62 |
68 |
69 |
69 |
29 |
38 |
48 |
59 |
784 |
0 |
0 |
|
Мурманская область |
23 |
48 |
17 |
40 |
19 |
71 |
76 |
71 |
76 |
72 |
75 |
42 |
75 |
22 |
33 |
760 |
0 |
0 |
|
Челябинская область |
77 |
42 |
57 |
32 |
27 |
42 |
58 |
36 |
47 |
39 |
40 |
81 |
24 |
76 |
78 |
756 |
0 |
0 |
|
Воронежская область |
64 |
15 |
58 |
61 |
69 |
48 |
36 |
69 |
69 |
33 |
16 |
20 |
60 |
66 |
69 |
753 |
0 |
0 |
|
Ленинградская область |
59 |
8 |
62 |
48 |
57 |
69 |
66 |
63 |
49 |
71 |
44 |
18 |
29 |
57 |
48 |
748 |
0 |
0 |
|
Иркутская область |
66 |
63 |
49 |
4 |
15 |
64 |
65 |
58 |
18 |
62 |
22 |
53 |
67 |
70 |
70 |
746 |
0 |
0 |
|
Томская область |
37 |
66 |
63 |
57 |
20 |
67 |
68 |
68 |
14 |
63 |
58 |
47 |
33 |
35 |
50 |
746 |
0 |
0 |
|
Ставропольский край |
72 |
59 |
56 |
77 |
49 |
20 |
27 |
18 |
58 |
16 |
70 |
13 |
71 |
78 |
61 |
745 |
0 |
0 |
|
Магаданская область |
3 |
43 |
2 |
6 |
72 |
78 |
82 |
81 |
64 |
77 |
78 |
64 |
74 |
5 |
5 |
734 |
0 |
0 |
|
Омская область |
62 |
54 |
53 |
45 |
32 |
47 |
49 |
17 |
52 |
43 |
39 |
73 |
41 |
60 |
64 |
731 |
0 |
0 |
|
Республика Коми |
26 |
58 |
6 |
22 |
28 |
77 |
74 |
80 |
70 |
74 |
67 |
32 |
48 |
29 |
31 |
722 |
0 |
0 |
|
Удмуртская Республика |
56 |
60 |
52 |
42 |
59 |
44 |
37 |
27 |
29 |
44 |
65 |
71 |
22 |
52 |
57 |
717 |
0 |
0 |
|
Оренбургская область |
63 |
44 |
31 |
17 |
61 |
62 |
35 |
50 |
33 |
56 |
60 |
78 |
9 |
58 |
55 |
712 |
0 |
0 |
|
Ярославская область |
47 |
19 |
54 |
55 |
52 |
49 |
43 |
45 |
42 |
65 |
47 |
14 |
70 |
46 |
60 |
708 |
0 |
0 |
|
Калининградская область |
31 |
41 |
75 |
49 |
47 |
53 |
53 |
39 |
34 |
55 |
52 |
54 |
13 |
41 |
67 |
704 |
0 |
0 |
|
Приморский край |
61 |
38 |
40 |
18 |
30 |
59 |
67 |
44 |
41 |
57 |
54 |
57 |
2 |
64 |
71 |
703 |
0 |
0 |
|
Астраханская область |
34 |
67 |
37 |
59 |
23 |
41 |
40 |
72 |
54 |
35 |
53 |
44 |
72 |
38 |
29 |
698 |
0 |
0 |
|
Республика Дагестан |
74 |
82 |
76 |
83 |
5 |
12 |
1 |
41 |
60 |
4 |
83 |
15 |
52 |
62 |
47 |
697 |
0 |
0 |
|
Липецкая область |
42 |
17 |
45 |
53 |
77 |
60 |
32 |
60 |
61 |
52 |
28 |
49 |
43 |
40 |
32 |
691 |
0 |
0 |
|
Камчатский край |
8 |
62 |
29 |
12 |
68 |
73 |
78 |
53 |
38 |
73 |
76 |
43 |
53 |
9 |
15 |
690 |
0 |
0 |
|
Кемеровская область |
70 |
30 |
35 |
9 |
21 |
39 |
51 |
56 |
20 |
46 |
36 |
60 |
54 |
63 |
65 |
655 |
0 |
0 |
|
Саратовская область |
67 |
24 |
41 |
63 |
62 |
28 |
22 |
23 |
19 |
23 |
20 |
63 |
58 |
67 |
63 |
643 |
0 |
0 |
|
Архангельская область (без АО) |
41 |
36 |
7 |
46 |
34 |
52 |
69 |
43 |
65 |
67 |
61 |
19 |
12 |
45 |
37 |
634 |
0 |
0 |
|
Вологодская область |
43 |
37 |
34 |
33 |
33 |
55 |
48 |
40 |
23 |
54 |
23 |
52 |
51 |
47 |
58 |
631 |
0 |
0 |
|
Тульская область |
55 |
2 |
22 |
30 |
76 |
38 |
46 |
33 |
44 |
60 |
6 |
34 |
80 |
54 |
51 |
631 |
0 |
0 |
|
Калужская область |
33 |
27 |
50 |
39 |
73 |
54 |
57 |
65 |
53 |
58 |
25 |
7 |
4 |
42 |
42 |
629 |
0 |
0 |
|
Пензенская область |
51 |
16 |
20 |
68 |
64 |
25 |
26 |
28 |
32 |
21 |
38 |
72 |
73 |
51 |
41 |
626 |
0 |
0 |
|
Волгоградская область |
68 |
29 |
25 |
67 |
26 |
40 |
30 |
48 |
25 |
30 |
11 |
38 |
32 |
69 |
66 |
604 |
0 |
0 |
|
Кировская область |
48 |
26 |
18 |
52 |
56 |
18 |
17 |
15 |
24 |
24 |
63 |
74 |
62 |
50 |
54 |
601 |
0 |
0 |
|
Чукотский авт.округ |
2 |
72 |
9 |
2 |
79 |
81 |
85 |
77 |
10 |
82 |
7 |
84 |
1 |
2 |
2 |
595 |
0 |
0 |
|
Республика Хакасия |
15 |
57 |
61 |
20 |
45 |
46 |
59 |
49 |
21 |
34 |
43 |
85 |
23 |
17 |
14 |
589 |
0 |
0 |
|
Республика Бурятия |
32 |
76 |
68 |
16 |
11 |
16 |
55 |
7 |
37 |
20 |
64 |
70 |
55 |
27 |
30 |
584 |
0 |
0 |
|
Курская область |
39 |
12 |
64 |
44 |
75 |
37 |
28 |
38 |
40 |
37 |
17 |
10 |
65 |
37 |
36 |
579 |
0 |
0 |
|
Новгородская область |
16 |
6 |
21 |
14 |
66 |
58 |
42 |
64 |
48 |
50 |
51 |
40 |
57 |
16 |
19 |
568 |
0 |
0 |
|
Амурская область |
24 |
39 |
19 |
5 |
46 |
43 |
64 |
61 |
55 |
64 |
49 |
22 |
5 |
26 |
24 |
546 |
0 |
0 |
|
Брянская область |
44 |
14 |
16 |
27 |
67 |
21 |
10 |
22 |
51 |
13 |
59 |
35 |
82 |
44 |
34 |
539 |
0 |
0 |
|
Тамбовская область |
36 |
4 |
3 |
64 |
65 |
35 |
12 |
70 |
50 |
17 |
13 |
45 |
66 |
31 |
28 |
539 |
0 |
0 |
|
Чувашская Республика |
45 |
51 |
47 |
54 |
58 |
17 |
8 |
12 |
12 |
18 |
48 |
61 |
17 |
49 |
39 |
536 |
0 |
0 |
|
Рязанская область |
40 |
10 |
23 |
60 |
63 |
36 |
39 |
21 |
36 |
36 |
26 |
36 |
18 |
36 |
45 |
525 |
0 |
0 |
|
Владимирская область |
53 |
9 |
15 |
24 |
51 |
29 |
29 |
19 |
28 |
31 |
34 |
41 |
50 |
56 |
46 |
515 |
0 |
0 |
|
Тверская область |
49 |
3 |
8 |
15 |
48 |
30 |
34 |
34 |
45 |
47 |
32 |
51 |
14 |
43 |
49 |
502 |
0 |
0 |
|
Ульяновская область |
46 |
22 |
28 |
51 |
60 |
26 |
24 |
30 |
27 |
25 |
15 |
21 |
45 |
39 |
43 |
502 |
0 |
0 |
|
Чеченская Республика |
52 |
85 |
82 |
78 |
3 |
3 |
20 |
11 |
6 |
3 |
57 |
11 |
40 |
28 |
12 |
491 |
0 |
0 |
|
Смоленская область |
29 |
5 |
14 |
28 |
39 |
33 |
25 |
25 |
43 |
32 |
45 |
65 |
34 |
30 |
40 |
487 |
0 |
0 |
|
Республика Карелия |
17 |
21 |
26 |
25 |
12 |
45 |
60 |
20 |
46 |
40 |
33 |
59 |
31 |
13 |
35 |
483 |
0 |
0 |
|
Алтайский край |
65 |
32 |
30 |
41 |
16 |
15 |
2 |
9 |
26 |
14 |
8 |
55 |
36 |
65 |
68 |
482 |
0 |
0 |
|
Республика Мордовия |
25 |
13 |
44 |
66 |
74 |
24 |
19 |
26 |
7 |
53 |
9 |
68 |
15 |
19 |
18 |
480 |
0 |
0 |
|
Республика Марий Эл |
20 |
52 |
38 |
26 |
54 |
23 |
18 |
42 |
11 |
15 |
35 |
27 |
78 |
11 |
21 |
471 |
0 |
0 |
|
Республика Крым |
60 |
25 |
71 |
58 |
25 |
1 |
21 |
2 |
5 |
1 |
5 |
1 |
81 |
68 |
44 |
468 |
0 |
0 |
|
Забайкальский край |
38 |
68 |
27 |
7 |
7 |
22 |
62 |
35 |
22 |
28 |
50 |
12 |
27 |
34 |
20 |
459 |
0 |
0 |
|
Республика Адыгея |
10 |
40 |
69 |
70 |
13 |
10 |
15 |
8 |
57 |
11 |
19 |
48 |
61 |
14 |
10 |
455 |
0 |
0 |
|
Республика Тыва |
7 |
83 |
72 |
1 |
2 |
8 |
54 |
24 |
2 |
8 |
4 |
76 |
77 |
7 |
4 |
429 |
0 |
0 |
|
Кабардино-Балкарская Республика |
28 |
75 |
60 |
81 |
8 |
5 |
5 |
3 |
15 |
7 |
12 |
5 |
69 |
33 |
17 |
423 |
0 |
0 |
|
Республика Алтай |
5 |
77 |
74 |
8 |
9 |
13 |
23 |
37 |
9 |
10 |
10 |
39 |
84 |
6 |
8 |
412 |
0 |
0 |
|
г. Севастополь |
9 |
33 |
85 |
76 |
14 |
2 |
31 |
1 |
8 |
75 |
21 |
2 |
7 |
15 |
11 |
390 |
0 |
0 |
|
Орловская область |
22 |
7 |
11 |
37 |
40 |
31 |
11 |
31 |
30 |
22 |
27 |
37 |
25 |
25 |
23 |
379 |
0 |
0 |
|
Республика Северная Осетия-Алания |
21 |
73 |
42 |
79 |
10 |
11 |
6 |
13 |
31 |
6 |
24 |
28 |
3 |
18 |
13 |
378 |
0 |
0 |
|
Костромская область |
19 |
18 |
24 |
43 |
55 |
27 |
13 |
10 |
13 |
26 |
31 |
33 |
8 |
20 |
27 |
367 |
0 |
0 |
|
Еврейская автономная область |
4 |
35 |
1 |
3 |
18 |
34 |
61 |
29 |
17 |
42 |
29 |
79 |
6 |
3 |
3 |
364 |
0 |
0 |
|
Ивановская область |
35 |
11 |
12 |
38 |
50 |
6 |
7 |
4 |
35 |
12 |
30 |
23 |
10 |
32 |
52 |
357 |
0 |
0 |
|
Республика Ингушетия |
12 |
84 |
84 |
85 |
1 |
4 |
14 |
5 |
1 |
2 |
1 |
3 |
37 |
4 |
6 |
343 |
0 |
0 |
|
Республика Калмыкия |
6 |
71 |
13 |
71 |
6 |
9 |
3 |
54 |
3 |
9 |
3 |
56 |
20 |
8 |
7 |
339 |
0 |
0 |
|
Псковская область |
18 |
1 |
10 |
13 |
29 |
14 |
9 |
14 |
39 |
27 |
37 |
17 |
59 |
12 |
22 |
321 |
0 |
0 |
|
Карачаево-Черкесская Республика |
11 |
70 |
36 |
80 |
4 |
7 |
4 |
16 |
4 |
5 |
2 |
25 |
26 |
10 |
9 |
309 |
0 |
0 |
|
Курганская область |
27 |
23 |
5 |
19 |
22 |
19 |
16 |
6 |
16 |
19 |
18 |
9 |
49 |
24 |
26 |
298 |
0 |
0 |
Заключение
В процессе выполнения работы освоен, проанализирован и реализован в виде программного модуля один из методов принятия многокритериальных решений - метод уверенных суждений ЛПР. Данный метод является очень эффективным средством принятия многокритериальных решений, так как ЛПР уверенными суждениями формирует комплексный критерий в рассматриваемой проблеме, определяя критерии в различные группы важности, и ему не требуется использовать сложные математические методы задания критериев. Он позволяет облегчить работу ЛПР, повысив при этом объективность принимаемых решений.
В дипломной работе были рассмотрены и изучены основные определения и термины в области принятия многокритериальных решений.
Реализованный программный модуль «Annoy-o-Tron» необходим для нахождения оптимального варианта в задачах с большим массивом входных данных, которая позволит благодаря настройке критериев, а именно указании их направлений и группы важности, найти оптимальный вариант, отвечающий определённым требованиям. Программа была реализована в среде разработки - Microsoft Visual Studio 2013 на языке C++. С помощью данной программы в ходе выполнения работы было продемонстрировано решение практически значимой задачи на нахождение региона, который эффективно бы удовлетворял требованиям задаваемой ЛПР стратегии. Всего было рассмотрено две стратегии: оценка регионов с позиций наилучшего качества жизни населения и наиболее развитого экономического потенциала. Было проведено комплексное исследование, в котором Самара заняла достойные места в первой половине. Задача решалась на разработанном программном продукте.
Учитывая, что набор критериев может быть разным и их можно перенастроить, разработанную программу можно использовать для решения различных задач по выбору оптимального решения.
В заключении хотелось бы отметить, что это тема является одной из самых важных, так как даже в повседневной жизни человека он принимает какие-либо решения. Человек их принимает, как правило, интуитивно, что может привести к каким-то рискам, но с помощью специальных методов принятия решений можно уменьшить неопределённость и принять наиболее оптимальный вариант решения.
Размещено на Allbest.ru
Подобные документы
Разработка и внедрение программного модуля поддержки принятия управленческих решений для информационной системы медицинского предприятия ООО "Центр эндохирургических технологий". Эффективность применения модуля, полученные с его помощью результаты.
дипломная работа [1,9 M], добавлен 11.04.2013Построение пространства допустимых решений. Нахождение оптимального решения с помощью определения направления убывания целевой функции. Нахождение оптимальной точки. Поиск экстремумов методом множителей Лагранжа. Условия экстремума Куна-Таккера.
контрольная работа [396,2 K], добавлен 13.09.2010Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.
курсовая работа [844,3 K], добавлен 16.06.2011Решение в среде Microsoft Excel с помощью программной модели "Поиск решения" транспортной задачи, системы нелинейных уравнений, задачи о назначениях. Составление уравнения регрессии по заданным значениям. Математические и алгоритмические модели.
лабораторная работа [866,6 K], добавлен 23.07.2012Разработка программного средства для поиска альтернативных решений многокритериальных задач. Проектирование программного средства с помощью объектно-ориентированного подхода. Пример листинга программного кода. Особенности работы программы на примере.
контрольная работа [346,5 K], добавлен 11.06.2011Построение математической модели. Выбор, обоснование и описание метода решений прямой задачи линейного программирования симплекс-методом, с использованием симплексной таблицы. Составление и решение двойственной задачи. Анализ модели на чувствительность.
курсовая работа [100,0 K], добавлен 31.10.2014Алгоритм решения задач линейного программирования симплекс-методом. Построение математической модели задачи линейного программирования. Решение задачи линейного программирования в Excel. Нахождение прибыли и оптимального плана выпуска продукции.
курсовая работа [1,1 M], добавлен 21.03.2012Математическая постановка транспортной задачи открытой модели методом потенциалов при известных показателях запаса груза поставщика и потребности потребителя; ее решение ручным способом и с помощью компьютерной программы, написанной в среде Delphi.
курсовая работа [167,2 K], добавлен 16.01.2011Решение задачи линейного программирования симплекс-методом: постановка задачи, построение экономико-математической модели. Решение транспортной задачи методом потенциалов: построение исходного опорного плана, определение его оптимального значения.
контрольная работа [118,5 K], добавлен 11.04.2012Разработка информационной системы на платформе "1С:Предприятие 8.0" для автоматизации документооборота и учета по приему аварийных автомобилей и составлению заказ-нарядов. Проектирование интерфейса. Построение логической и физической моделей данных.
дипломная работа [640,5 K], добавлен 14.02.2015