Программное средство для выбора оптимального компьютера для сотрудников организации

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.09.2015
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение образования

«Гомельский государственный технический университет имени П. О. Сухого»

Факультет автоматизированных и информационных систем

Кафедра «Информационные технологии»

направление специальности 1-40 01 02-01 «Информационные системы и технологии в проектировании и производстве»

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

по дисциплине «Оптимизация проектных решений»

на тему: «Программное средство для выбора оптимального компьютера для сотрудников организации»

Исполнитель: студент группы ИТ-42 Зигинов Н.В.

Гомель 2015

Содержание

  • Введение
  • 1. Анализ методов однокритериальной и многокритериальной оптимизации
    • 1.1 Оптимизация. Основные понятия
    • 1.2 Однокритериальная оптимизация
    • 1.3 Многокритериальная оптимизация
  • 2. Разработка математической модели задачи
    • 2.1 Структуризация задачи
    • 2.2 Метод полного перебора
    • 2.3 Метод Ранга
    • 2.4 Метод Парето
    • 2.5 Метод анализа иерархий
  • 3. Разработка программных средств для решения задачи
    • 3.1 Постановка задачи
    • 3.2 Структура программного комплекса
    • 3.3 Интерфейс пользователя
  • 4. Верификация программных средств
    • Заключение
      • Список использованных источников
      • Приложение А. Текст программы
      • Приложение Б. Руководство программиста
      • Приложение В. Руководство пользователя

Введение

Оптимизация как раздел математики существует достаточно давно. Оптимизация - это выбор, то есть то, чем постоянно приходится заниматься в повседневной жизни. Хотя конечной целью оптимизации является отыскание наилучшего или "оптимального" решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. Поэтому под оптимизацией понимают скорее нахождение наилучшего варианта среди всех существующих. В любой практической оптимизационной задаче существует много совпадающих этапов. Наиболее важным этапом является моделирование рассматриваемой физической ситуации с целью получения математической функции, которую необходимо минимизировать, а также определения ограничений, если таковые существуют. Затем следует выбрать подходящую процедуру для осуществления минимизации. Эта процедура должна быть реализована на практике, что во многих реальных случаях вынуждает использовать ЭВМ для выполнения большого объема вычислений.

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

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

1. Анализ методов однокритериальной и многокритериальной оптимизации

1.1 Оптимизация. Основные понятия

Оптимизация - это процесс приведения объекта (системы) в оптимальное (наилучшее) состояние. Для проведения оптимизации необходимы: математическая модель объекта, целевая функция и оптимизационный алгоритм. Целевая функция формализует требования, предъявляемые к объекту. Оптимизационный алгоритм ищет экстремум целевой функции.

Оптимизация осуществляется при помощи алгоритмов математического программирования и бывает структурной, параметрической и структурно-параметрической. В процессе структурной оптимизации оптимизируется структура объекта, в процессе же параметрической - оптимизируются параметры элементов, входящих в состав структуры. Эти задачи решаются при помощи алгоритмов дискретного, непрерывного и дискретно-непрерывного математического программирования, соответственно.

В зависимости от числа критериев, по которым выполняется оптимизация объекта, различают однокритериальную и многокритериальную оптимизацию.

По наличию ограничений на целевую функцию и рабочие параметры различают оптимизацию без ограничений и при наличии ограничений.

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

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

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

С теорией оптимизации тесно связаны математическое программирование, теория исследования операций, теория принятия решений, динамическое программирование [1].

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

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

Выделим основные этапы решения задачи оптимизации [2]:

- постановка задачи. На этом этапе аналитику необходимо трансформировать слова заказчика в четко сформулированную задачу;

- построение математической модели задачи. Здесь четко поставленная и сформулированная жизненная проблема формализуется математически.

- решение математической модели задачи;

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

Рассмотрим более подробно однокритериальные и многокритериальные задачи оптимизации.

1.2 Однокритериальная оптимизация

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

Общая постановка задачи одномерной оптимизации заключается в следующем: дана некоторая функция f(x) от одной переменной x, необходимо определить такое значение x*, при котором функция f(x) принимает экстремальное значение. Под ним обычно понимают минимальное или максимальное значения. В общем случае функция может иметь одну или несколько экстремальных точек. Нахождение этих точек с заданной точностью можно разбить на два этапа. Сначала экстремальные точки отделяют, т.е. определяются отрезки, которые содержат по одной экстремальной точке, а затем уточняют до требуемой точности .

Максимизация целевой функции эквивалента минимизации противоположной величины, поэтому, можно рассматривать только задачи минимизации.

Для решения задачи минимизации функции f(x) на отрезке [a, b] на практике, как правило, применяют приближенные методы. Они позволяют найти решения этой задачи с необходимой точностью в результате определения конечного числа значений функции f(x) и ее производных в некоторых точках отрезка [a, b]. Методы, использующие только значения функции и не требующие вычисления ее производных, называются прямыми методами минимизации.

Большим достоинством прямых методов является то, что от целевой функции не требуется дифференцируемости и, более того, она может быть не задана в аналитическом виде. Единственное, на чем основаны алгоритмы прямых методов минимизации, это возможность определения значений f(x) в заданных точках [3].

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

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

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

Общая задача линейной оптимизации заключается в нахождении максимума (минимума) линейной целевой функции. Вид целевой функции и ограничений описываются формулами (1.11.4).

, (1.1)

где f(x) - целевая функция, критерий оптимальности или линейная форма;

cj - коэффициенты целевой функции;

х - вектор неизвестных.

При ограничениях:

(1.2)

, (1.3)

(1.4)

где aj коэффициенты ограничений;

xj - вектор неизвестных;

bj величины правых частей ограничений.

Вектор значений неизвестных X, удовлетворяющих условию задачи (1.1) - (1.4), называется допустимым решением или допустимым планом задачи линейной оптимизации. Совокупность всех допустимых планов называется множеством допустимых планов. Допустимое решение X* называется оптимальным, если оно обеспечивает максимальное (или, в зависимости от условий задачи, минимальное) значение целевой функции.

Решение задач линейной оптимизации может быть получено без особых затруднений (естественно, при корректной формулировке проблемы). Классическим методом решения задач данного типа является симплекс-метод. В случае лишь двух переменных успешно может использоваться также графический метод решения, обладающий преимуществом наглядности. Очевидно, в случае n>2 применение графического метода невозможно.

При решении ряда оптимизационных задач требуется, чтобы значения неизвестных выражались в целых числах. К задачам подобного типа относятся те, в которых требуется определить необходимые для принятия решений значения физически цельных объектов (машин, агрегатов различного типа, людей, транспортных единиц и т.д.) [4].

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

Чтобы получить более полную характеристику достоинств и недостатков проектируемого объекта, нужно ввести больше критериев качества в рассмотрение. Как результат: задачи проектирования сложных систем всегда многокритериальные, так как при выборе наилучшего варианта приходится учитывать много различных требований, предъявленных к системе.

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

Некоторые из подходов к задачам со многими критериями [5]:

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

- метод идеальной точки в области допустимых значений неизвестных ищется такая их совокупность, которая способна обеспечить набор значений критериев, в том или ином смысле ближайший к наилучшему варианту;

- метод свертывания лицо, принимающее решения, сводит многокритериальную задачу к задаче с одним критерием;

- метод ограничений множество допустимых значений неизвестных уменьшается путем осмысленного введения дополнительных ограничений на заданные критерии;

- метод анализа иерархий на основании суждений экспертов оценивается вклад в общую оценку каждого критерия.

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

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

В многокритериальной задаче оптимизации сравнение решений по предпочтительности осуществляется не непосредственно, а при помощи заданных на X числовых функций f1, f2, … fm, называемых критериями. Предполагается, что m ? 2, при m = 1 задача оптимизации является однокритериальной.

В задачах принятия индивидуальных решений критерии служат для выражения «интенсивности» существенных свойств (признаков) решений. В задачах принятия групповых решений критерий U характеризует «качество» (или предпочтительность) решений с точки зрения индивида i, входящего в группу {1, 2, …, m}.

По своему характеру критерии подразделяются на два типа: количественные и качественные. Критерий является количественным, когда его значения имеет смысл сравнивать, указывая, на сколько, или во сколько раз одно значение больше другого, и качественным, когда такие сравнения бессмысленны [6].

2. Разработка математической модели задачи

2.1 Структуризация задачи

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

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

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

На рисунке 2.1 представлена структурная схема задачи выбора компьютера для сотрудников организации.

Рисунок 2.1 - Структурная схема задачи выбора компьютера для сотрудников организации

2.2 Метод полного перебора

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

Рисунок 2.2 - Блок-схема алгоритма полного перебора

2.3 Метод Ранга

Основная идея экспертных методов состоит в том, чтобы использовать интеллект людей, их способность искать и находить решение слабо формализованных задач. В теории экспертных оценок разработан ряд методов проведения экспертизы.

Метод приписывания баллов (метод ранга). Этот метод основан на том, что эксперты оценивают важность частного критерия по шкале от 0 до 10. При этом разрешается оценивать важность дробными величинами или приписывать одну и ту же величину из выбранной шкалы нескольким критериям. Обозначим через hik балл i-го эксперта для k-критерия, тогда

(2.1)

где сумма баллов i-ой строки;

m - количество критериев.

rik - называют весом, подсчитанным для k-го критерия i-м экспертом.

Отсюда, учитывая, что , где L количество экспертов, получим веса альтернатив:

(2.2)

Лучшей считается альтернатива, имеющая наибольший вес.

2.4 Метод Парето

Итальянский экономист В. Парето сформулировал один из самых распространенных экономических критериев оптимальности. Он формулируется очень просто: «Следует считать, что любое изменение, которое никому не причиняет убытков и которое приносит некоторым пользу, является улучшением».

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

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

Алгоритм выделения области Парето:

1) Выбрать проект Пi, полагая i = 1.

2) Проект Пi сравнивается с остальными по всем показателям и отмечаются те из них, которые строго хуже, чем Пi.

3) Отмеченные проекты не могут принадлежать области Парето и из дальнейшего рассмотрения исключаются.

4) Полагаем i = i + 1.

5) Если и проект Пi уже был отмечен на предыдущих итерациях, то выполняется переход к п.4.

6) Если и проект еще не помечен, то производится переход к п. 2.

7) Если , где n - число сравниваемых проектов, то осуществляется переход к п.8.

8) Оставшиеся не отмеченными проекты образуют множество эффективных решений (область Парето).

Если использовать дополнительную информацию, например, об относительной важности показателей, то можно получить дальнейшее уточнение мест проектов [6].

2.5 Метод анализа иерархий

Метод анализа иерархий - математический инструмент системного подхода к сложным проблемам принятия решений. МАИ не предписывает лицу, принимающему решение (ЛПР), какого-либо «правильного» решения, а позволяет ему в интерактивном режиме найти такой вариант (альтернативу), который наилучшим образом согласуется с его пониманием сути проблемы и требованиями к ее решению.

Этот метод был разработан американским математиком Томасом Саати. МАИ широко используется на практике и активно развивается учеными всего мира. Для компьютерной поддержки МАИ существуют программные продукты, разработанные различными компаниями. Анализ проблемы принятия решений в МАИ начинается с построения иерархической структуры, которая включает цель, критерии, альтернативы и другие рассматриваемые факторы, влияющие на выбор. Эта структура отражает понимание проблемы лицом, принимающим решение. Каждый элемент иерархии может представлять различные аспекты решаемой задачи, причем во внимание могут быть приняты как материальные, так и нематериальные факторы, измеряемые количественные параметры и качественные характеристики, объективные данные и субъективные экспертные оценки. Следующим этапом анализа является определение приоритетов, представляющих относительную важность или предпочтительность элементов построенной иерархической структуры, с помощью процедуры парных сравнений. Безразмерные приоритеты позволяют обоснованно сравнивать разнородные факторы, что является отличительной особенностью МАИ. На заключительном этапе анализа выполняется синтез (линейная свертка) приоритетов на иерархии, в результате которой вычисляются приоритеты альтернативных решений относительно главной цели. Лучшей считается альтернатива с максимальным значением приоритета.

Метод анализа иерархий применяется при решении самых разнообразных проблем, среди которых, в частности: проектирование транспортных систем крупных городов, разработка планов обеспечения энергетическими ресурсами отраслей промышленности, оценка сценария развития высшего образования, определение приоритетных направлений научных исследований и др.[7].

3. Разработка программных средств для решения задачи

3.1 Постановка задачи

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

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

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

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

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

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

Таблица 3.1 - Перевод в безразмерную величину

Возможности проведения видеоконференций

Да

Нет

Оценка

0,33

0,67

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

Далее принимается во внимание оценки экспертов. И используя все это, находится оптимальное решение.

3.2 Структура программного комплекса

Программное обеспечение для решения поставленной задачи было реализовано в среде разработки 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 описаны классы и их методы:

- класс Form1, главный класс, который отображается при запуске программы;

- класс Form2, который отображается информацию о разработанном приложении;

- класс Form3, для реализации однокритериальной оптимизации;

- класс Form4, для реализации многокритериальной оптимизации;

- класс Line, содержит информацию об альтернативах, реализует перевод в безразмерные величины;

- класс OneCriterionOptimization, в нем реализован полный перебор;

- класс MultiCriterionOptimization, в нем реализован метод Ранга, метод Парето, метод анализа иерархий .

Исходный код приложения представлен в приложении А.

Таблица 3.2 - Описание класса Line

Имя

Вид элемента

Тип

Спецификатор

Описание

_cost

поле

int

private

Стоимость

_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

Перевод в безразмерный вид

Таблица 3.3 - Описание класса OneCriterionOptimization

Имя

Вид элемента

Тип

Спецификатор

Описание

Optimize(List<Line> tablets)

метод

Line

public static

Метод перебора

Таблица 3.4 - Описание класса MultiCriterionOptimization

Имя

Вид элемента

Тип

Спецификатор

Описание

Range(double[,] cc)

метод

double[]

static public

Метод Ранга

ParetaMethod(List<Line> tablets)

метод

List<int>

static public

Метод Парето

HierarchyAnalys(double[,] criterionMarks, List<Line> tablets)

метод

Line

static public

Метод анализа иерархий

CriterionWeightByMin(double[] values)

метод

double[]

static private

CriterionWeightByMax(double[] values)

метод

double[]

static private

3.3 Интерфейс пользователя

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

Разработанное приложения позволяет проводить оптимизацию, принимать правильное решение при выборе компьютера из множества альтернатив.

Требования к пользователю:

- умение пользоваться компьютерной мышью и клавиатурой;

- ознакомление с предметной областью задачи;

- понимание работы программы для её оценки.

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

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

Рисунок 3.2 - Результат однокритериальной оптимизации

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

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

Общий вид окна «Многокритериальная оптимизация» расположен на рисунке 3.3.

Рисунок 3.3 - Общий вид окна «Многокритериальная оптимизация»

Результат выполнения многокритериальной оптимизации расположен справа окна, рисунок 3.4.

Рисунок 3.4 - Результат выполнения многокритериальной оптимизации

компьютер парето интерфейс программа

4. Верификация программных средств

Для проведения верификации была сформирована и решена задача с помощью MS Excel. Задача была сокращена до трех альтернатив с целью облегчения расчетов.

Исходные данные для задачи представлены в таблицах 4.1 и 4.2.

Таблица 4.1 - Альтернативы участвующие в отборе

Стоимость, бел. руб.

Размер экрана, дюймов

Вес, кг.

Разрешение камеры, Мп

Возможность проведения видеоконференций

1

5821200

18,5

16,1

0,3

Да

2

6444900

19

14,3

1,3

Да

3

6222150

19

13,8

2

Да

Таблица 4.2 - Мнения экспертов

Эксперт

Стоимость

Размер экрана

Вес

Разрешение камры

Возможность проведения видеоконференций

Эксперт 1

4

7

2

9

10

Эксперт 2

7

1

8

2

9

Эксперт 3

9

5

4

3

1

На начальном этапе сформируем множество Парето-оптимальных альтернатив и проверим, есть ли компьютеры, по всем характеристикам уступающие или равные другим.

На рисунке 4.1 показан результат сравнения.

Рисунок 4.1 - Результат сравнения

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

На рисунке 4.2 приведены результаты выполнения данного шага в программе.

Рисунок 4.2 - Список компьютеров после оптимизации

Из полученных результатов видно, что данный этап в разработанном приложении выполняется верно.

На следующем этапе были вычислены веса критериев методом Ранга.

Были вычислены суммы оценок по каждому критерию, общая сумма оценок, а также были вычислены веса критериев (рисунок 4.3).

Результаты, полученные в приложении, представлены на рисунке 4.4.

Рисунок 4.3 - Результаты вычислений в MS Excel

Рисунок 4.4 - Результаты выполнения метода Ранга в debug режиме

Следующий шаг для верификации - перевод характеристик компьютеров в безразмерный вид. Критерий «стоимость» должен стремиться к минимуму, поэтому для перевода его в безразмерную форму необходимо найти минимальный элемент в строке и делить его на каждый элемент этой строки.

Критерий «вес» должен стремиться к минимуму, поэтому для перевода его в безразмерную форму необходимо найти минимальный элемент в строке и делить его на каждый элемент этой строки. Критерий «размер экрана» должен стремиться к максимуму, поэтому для перевода его в безразмерный вид требуется найти максимальный элемент в строке и делить на него каждый элемент этой строки. Критерий «возможность проведения видеоконференций» имеет два варианта: «да», «нет». Полагаем, что этим вариантам соответствуют значения 0,67 и 0,33 соответственно. Критерий «разрешение камеры» должен стремиться к максимуму, поэтому для перевода его в безразмерный вид требуется найти максимальный элемент в строке и делить на него каждый элемент этой строки.

Результаты, полученные в MS Excel, представлены на рисунку 4.5.

Данные полученные в приложении представлены на рисунке 4.6.

Рисунок 4.5 - Результаты, полученные в MS Excel

Рисунок 4.6 - Результат приведения к безразмерному виду в debug режиме.

На заключительном этапе определяем лучшую альтернативу (по максимальному значению). Для этого находим произведение веса альтернативы на вес соответствующего критерия для всех критериев и суммируем соответствующие значения для каждой альтернативы (рис. 4.7).

Результат, полученный в приложении, представлен на рисунке 4.8.

Рисунок 4.7 - Результат выбора лучшей альтернативы в MS Excel

Рисунок 4.8 - Результат оптимизации в debug режиме

Результат работы программы представлен на рисунке 4.9. Сравнивая все результаты, полученные при помощи MS Excel, и результаты выполнения программы, можно сделать вывод, что данная программа работает корректно.

Рисунок 4.9 - Результат выполнения оптимизации

Заключение

В данной работе было спроектировано и разработано программное обеспечение выбора оптимального компьютера для сотрудника организации.

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

Перед разработкой программного обеспечения были спроектированы блок-схемы алгоритмов, а также функциональная модель. Впоследствии по ним было разработано Windows-приложение на языке C#.

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

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

Результатом работы стало Windows-приложение для выбора компьютера, по одному критерию, а также по оценкам экспертов.

компьютер парето интерфейс программа

Список использованных источников

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

2. Акимов, С.В. Проблемы автоматизации структурно-параметрического синтеза / С.В. Акимов // Оптимизация. 2005 - 2006.

3. Сафронов, В. Лекции и учебные пособия по системному анализу / В. Сафронов // Системный анализ и проектирование. 2006 - 2012.

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

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

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

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

Приложение А

Текст программы

Line.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Data;

using System.Windows.Forms;

namespace CourseProject

{

class Line

{

private int _cost;

private double _razm_ekrana;

private double _ves;

private double _razr_cam;

private String _konf;

private double _konf_;

/// <summary>

/// Конструктор

/// </summary>

public Line(int cost, double razm_ekrana, double ves, double razr_cam, string konf)

{

_cost = cost;

_razm_ekrana = razm_ekrana;

_ves = ves;

_razr_cam = razr_cam;

_konf = konf;

}

public double KonfMark

{

get

{

_konf_ = 0.33;

if (_konf.Trim() == "Да")

_konf_ = 0.67;

return _konf_;

}

}

/// <summary>

/// Свойства доступа

/// </summary>

public int Cost

{

get { return _cost; }

set { _cost = value; }

}

public double Razm_ekrana

{

get { return _razm_ekrana; }

set { _razm_ekrana = value; }

}

public double Ves

{

get { return _ves; }

set { _ves = value; }

}

public double Razr_cam

{

get { return _razr_cam; }

set { _razr_cam = value; }

}

public string Konf

{

get { return _konf; }

set { _konf = value; }

}

public override string ToString()

{

return "\nCтоимость: " + Cost + " бел. руб.\n Размер экрана: " + Razm_ekrana + " ''\n" +

" Вес: " + Ves + " кг\n Разрешение камеры: " + Razr_cam + " Мп\n Видеоконференции: " + Konf;

}

}

}

MultiCriterionOptimization.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.IO;

namespace CourseProject

{

static class MultiCriterionOptimization

{

static public double[] Range(double[,] cc)

{

int rows = cc.GetLength(0);

int cols = cc.GetLength(1);

double[] sums = new double[rows];

double[] result = new double[rows];

double TotalSum = 0;

for (int i = 0; i < rows; i++)

{

for (int j = 0; j < cols; j++)

{

sums[i] += cc[i, j];

TotalSum += cc[i, j];

}

}

for (int i = 0; i < sums.Length; i++)

{

result[i] = Convert.ToDouble(sums[i]) / Convert.ToDouble(TotalSum);

}return result;

}

static public List<int> ParetaMethod(List<Line> tablets)

{

List<int> index = new List<int>();

for (int i = 0; i < tablets.Count; i++)

{

if (i == (tablets.Count - 1))

{

break;

}

if (tablets[i].Cost >= tablets[i + 1].Cost && tablets[i].Razm_ekrana <= tablets[i + 1].Razm_ekrana &&

tablets[i].Ves >= tablets[i + 1].Ves &&

tablets[i].Razr_cam <= tablets[i + 1].Razr_cam &&

tablets[i].KonfMark <= tablets[i + 1].KonfMark)

{

tablets.Remove(tablets[i]);

index.Add(i);

}

}return index;

}

static public Line HierarchyAnalys(double[,] criterionMarks, List<Line> tablets)

{

double[] criterion = Range(criterionMarks);

StreamWriter file5 = new StreamWriter("file_5.csv");

for (int i = 0; i < criterion.Length; i++)

{

file5.WriteLine(criterion[i]);

}

file5.Close();

double[] cost = new double[tablets.Count];

double[] razm_ekrana = new double[tablets.Count];

double[] ves = new double[tablets.Count];

double[] razr_kam = new double[tablets.Count];

double[] konf = new double[tablets.Count];

double[] optimazedResult = new double[tablets.Count];

for (int i = 0; i < tablets.Count; i++)

{

cost[i] = tablets[i].Cost;

razm_ekrana[i] = tablets[i].Razm_ekrana;

ves[i] = tablets[i].Ves;

razr_kam[i] = tablets[i].Razr_cam;

konf[i] = tablets[i].KonfMark;

}

cost = CriterionWeightByMin(cost);

razm_ekrana = CriterionWeightByMax(razm_ekrana);

ves = CriterionWeightByMin(ves);

razr_kam = CriterionWeightByMax(razr_kam);

konf = CriterionWeightByMax(konf);

for (int i = 0; i < optimazedResult.Length; i++)

{

optimazedResult[i] = criterion[0] * cost[i] + criterion[1] * razm_ekrana[i] + criterion[2] * ves[i] +

criterion[3] * razr_kam[i] + criterion[4] * konf[i];

}

double max = optimazedResult.Max();

List<double> resultList = optimazedResult.ToList();

int index = resultList.IndexOf(max);

return tablets[index];

}

static private double[] CriterionWeightByMin(double[] values)

{

double min = values.Min();

for (int i = 0; i < values.Length; i++)

values[i] = min / values[i];

return values;

}

static private double[] CriterionWeightByMax(double[] values)

{

double max = values.Max();

for (int i = 0; i < values.Length; i++)

values[i] = values[i] / max;

return values;

}

}

}

OneCriterionOptimization.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace CourseProject

{

static class OneCriterionOptimization

{

public static Line Optimize(List<Line> tablets)

{

Line bestTablet = null;

if (!tablets.Any())

{

return null;

}

bestTablet = tablets[0];

for (int i = 0; i < tablets.Count; i++)

{

if (tablets[i].Cost < bestTablet.Cost)

bestTablet = tablets[i];

}

return bestTablet;

}

}

}

Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace CourseProject

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void однокритериальнаяToolStripMenuItem_Click(object sender, EventArgs e)

{

Form f = null;

f = new Form3();

f.ShowDialog();

}

private void многокритериальнаяToolStripMenuItem_Click(object sender, EventArgs e)

{

Form f = null;

f = new Form4();

f.ShowDialog();

}

private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

{

Form f = null;

f = new Form2();

f.ShowDialog();

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Environment.Exit(0);

}

private void исходныеДанныеToolStripMenuItem_Click(object sender, EventArgs e)

{

System.Diagnostics.Process.Start("file_1.csv");

}

}

}

Form2.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace CourseProject

{

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void Form2_Load(object sender, EventArgs e)

{

label1.Text = "Тема курсоваго проекта: Программное средство для выбора оптимального \nкомпьютера для сотрудников организации.\n";

label1.Text = label1.Text + "Исходные данные к проекту:\n";

label1.Text = label1.Text + "Критерии выбора: 1) Стоимость; 2) Размер экрана; 3) Вес; 4) Разрешение камеры; \n5) Возможность проведения видеоконференций.\n";

label1.Text = label1.Text + "Однокритериальная оптимизация: Параметр - стоимость\n";

label1.Text = label1.Text + "Многокритериальная оптимизация:\n";

label1.Text = label1.Text + "Метод экспертного анализа - метод Ранга\n";

label1.Text = label1.Text + "Число экспертов - 3\n";

label1.Text = label1.Text + "Метод отбора - Парето\n";

label1.Text = label1.Text + "Выбор лучшего решения - Метод анализа иерархий\n";

}

private void закрытьToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}

}

}

Form3.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Diagnostics;

using System.IO;

namespace CourseProject

{

public partial class Form3 : Form

{

private List<Line> _tablets;

public Form3()

{

InitializeComponent();

}

private void Form3_Load(object sender, EventArgs e)

{

Input();

}

private void назадToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Environment.Exit(0);

}

private void button1_Click(object sender, EventArgs e)

{

Stopwatch sw = new Stopwatch();

sw.Start();

label2.Text = OneCriterionOptimization.Optimize(_tablets).Cost + " бел. руб.";

label4.Text = OneCriterionOptimization.Optimize(_tablets).Razm_ekrana + " ''";

label6.Text = OneCriterionOptimization.Optimize(_tablets).Ves + " кг";

label8.Text = OneCriterionOptimization.Optimize(_tablets).Razr_cam + " Мп";

label10.Text = OneCriterionOptimization.Optimize(_tablets).Konf.ToString();

FileStream fileName = new FileStream("file_2.csv",FileMode.Truncate, FileAccess.Write);

StreamWriter file = new StreamWriter(fileName, Encoding.UTF8);

file.WriteLine(OneCriterionOptimization.Optimize(_tablets).ToString());

file.Close();

sw.Stop();

MessageBox.Show(Convert.ToString(sw.Elapsed), "Затраченное время", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Результаты оптимизации занесены в файл file_2.csv", "Данные записаны", MessageBoxButtons.OK, MessageBoxIcon.Information);

button2.Enabled = true;

Width = 948;

}

private void button2_Click(object sender, EventArgs e)

{

System.Diagnostics.Process.Start("file_2.csv");

}

private void исходныеДанныеToolStripMenuItem_Click(object sender, EventArgs e)

{

System.Diagnostics.Process.Start("file_1.csv");

}

private void Input()

{

StreamReader file = new StreamReader("file_1.csv");

string s = file.ReadToEnd();

file.Close();

string[] parts = s.Split('\n');

_tablets = new List<Line>(); ;

for (int i = 0; i < parts.Length; i++)

{

string[] marm = parts[i].Split(';');

_tablets.Add(new Line(Convert.ToInt32(marm[0]), Convert.ToDouble(marm[1]), Convert.ToDouble(marm[2]), Convert.ToDouble(marm[3]), marm[4].ToString()));

}

dataGridView1.RowCount = _tablets.Count;

for (int i = 0; i < _tablets.Count; i++)

{

dataGridView1[0, i].Value = _tablets[i].Cost + " бел. руб.";

dataGridView1[1, i].Value = _tablets[i].Razm_ekrana + " ''";

dataGridView1[2, i].Value = _tablets[i].Ves + " кг";

dataGridView1[3, i].Value = _tablets[i].Razr_cam + " Мп";

dataGridView1[4, i].Value = _tablets[i].Konf.ToString();

}

}

}

}

Form4.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

using System.Diagnostics;

namespace CourseProject

{

public partial class Form4 : Form

{

private List<Line> _tablets;

private List<Line> _paretoTablets;

private readonly String[] _criterionsNames = { "Стоимость", "Размер экрана", "Вес", "Разрешение камеры", "Возможность проведения в-к" };

private double[,] criterionValue;

public Form4()

{

InitializeComponent();

}

private void назадToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}

private void исходныеДанныеToolStripMenuItem_Click(object sender, EventArgs e)

{

System.Diagnostics.Process.Start("file_1.csv");

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Environment.Exit(0);

}

private void Form4_Load(object sender, EventArgs e)

{

Input();

rangeMethodTableC();

}

private void dataGridView2_MouseDown(object sender, MouseEventArgs e)

{

for (int i = 0; i < dataGridView2.RowCount; i++)

for (int j = 0; j < dataGridView2.ColumnCount; j++)

dataGridView2.Rows[i].Cells[j].Style.BackColor = Color.White;

}

private void button2_Click(object sender, EventArgs e)

{

Stopwatch sw = new Stopwatch();

sw.Start();

_paretoTablets = _tablets;

List<int> deletetIndex = MultiCriterionOptimization.ParetaMethod(_paretoTablets);

foreach (var index in deletetIndex)

{

dataGridView1.Rows.RemoveAt(index);

}

_tablets = _paretoTablets;

criterionValue = new double[_criterionsNames.Length, 3];

GetValuesFromTable(dataGridView2, criterionValue);

label8.Text = MultiCriterionOptimization.HierarchyAnalys(criterionValue, _tablets).Cost + " бел. руб.";

label9.Text = MultiCriterionOptimization.HierarchyAnalys(criterionValue, _tablets).Razm_ekrana + "''";

label10.Text = MultiCriterionOptimization.HierarchyAnalys(criterionValue, _tablets).Ves + " кг";

label11.Text = MultiCriterionOptimization.HierarchyAnalys(criterionValue, _tablets).Razr_cam + " Мп";

label12.Text = MultiCriterionOptimization.HierarchyAnalys(criterionValue, _tablets).Konf.ToString();

FileStream fileName = new FileStream("file_3.csv", FileMode.Truncate, FileAccess.Write);

StreamWriter file = new StreamWriter(fileName, Encoding.UTF8);

file.WriteLine(MultiCriterionOptimization.HierarchyAnalys(criterionValue, _tablets).ToString());

file.Close();

sw.Stop();

MessageBox.Show(Convert.ToString(sw.Elapsed), "Затраченное время", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Результаты оптимизации занесены в файл 3.csv", "Данные записаны", MessageBoxButtons.OK, MessageBoxIcon.Information);

Width = 987;

}

private void button3_Click(object sender, EventArgs e)

{

System.Diagnostics.Process.Start("file_3.csv");

}

private void Input()

{

StreamReader file = new StreamReader("file_1.csv");

string s = file.ReadToEnd();

file.Close();

string[] parts = s.Split('\n');

_tablets = new List<Line>(); ;

for (int i = 0; i < parts.Length; i++)

{

string[] marm = parts[i].Split(';');

_tablets.Add(new Line(Convert.ToInt32(marm[0]), Convert.ToDouble(marm[1]), Convert.ToDouble(marm[2]), Convert.ToDouble(marm[3]), marm[4].ToString()));

}

dataGridView1.RowCount = _tablets.Count;

for (int i = 0; i < _tablets.Count; i++)

{

dataGridView1[0, i].Value = _tablets[i].Cost + " бел. руб.";

dataGridView1[1, i].Value = _tablets[i].Razm_ekrana + " ''";

dataGridView1[2, i].Value = _tablets[i].Ves + " кг";

dataGridView1[3, i].Value = _tablets[i].Razr_cam + " Мп";

dataGridView1[4, i].Value = _tablets[i].Konf.ToString();

}

}

private void rangeMethodTableC()

{

var markList = new List<string>() { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };

for (int collumn = 0; collumn < _criterionsNames.Length; collumn++)

{

DataGridViewComboBoxColumn newColumn = new DataGridViewComboBoxColumn();

newColumn.Name = _criterionsNames[collumn];

newColumn.DataSource = markList;

dataGridView2.Columns.Add(newColumn);

}

dataGridView2.RowCount = 3;

dataGridView2.RowHeadersWidth = 100;

for (int i = 0; i < dataGridView2.ColumnCount; i++)

{

for (int j = 0; j < dataGridView2.RowCount; j++)

{

dataGridView2[i, j].Value = "1";

}

}

}

private void GetValuesFromTable(DataGridView table, double[,] array)

{

for (int i = 0; i < array.GetLength(0); i++)

{

for (int j = 0; j < array.GetLength(1); j++)

{

array[i, j] = Convert.ToDouble(table[i, j].Value);

}

}

}

}

}

Приложение Б

Руководство программиста

1. Назначение и условия применения программы.

Разработанное ПО предназначено для оказания помощи в выборе оптимального компьютера для сотрудников организации.

Приложение обладает следующими функциями:

- выбор микроконтроллера по цене;

- выбор микроконтроллера по совокупности параметров.

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

- процессор с одним и более ядрами и минимальной тактовой частотой 1800МГц;

- объем оперативного запоминающего устройства 512 Мб;

- минимальный размер видеопамяти 512 Мб;

- 1 Мб свободного места на жёстком диске;

- операционная система Windows 7/8/8.1;

- Microsoft.NET Framework 4.5.

2 Характеристики программы.

Программа корректно работает в следующих операционных системах:

- Windows 7 x86/x64;

- Windows 8 x86/x64;

- Windows 8.1 x86/x64.

Никаких ограничений и требований на режим работы и запуск программы не налагается.

3 Обращение к программе.

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

4 Входные и выходные данные.

Входные данные - список компьютеров. Выходные данные - список лучших альтернатив.

5 Сообщения.

В случае, когда исходные данные записаны в файле некорректно, то будет выведено уведомление (рисунок В.1).

Рисунок В.1 - Предупреждение для пользователя

После удачной оптимизации выводится затраченное время для оптимизации (рисунок В.2).

Рисунок В.2 - Затраченное время для оптимизации

После удачной оптимизации выводится сообщение о записи данных в файл (рисунок В.3).

Рисунок В.3 - Сообщение о записи данных в файл

Приложение В

Руководство пользователя

1. Введение.

Разработанное приложение предназначено для оказания помощи в выборе оптимального компьютера для сотрудников организации. Основные возможности описаны в приложении В.

2. Назначение и условия применения.

Назначение приложения: из указанного списка компьютеров выбрать наиболее оптимальные для пользователя с учетом важности каждого параметра.

Работа с приложением доступна для всех пользователей.

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

3. Подготовка к работе.

Для запуска приложения никаких подготовительных действий не требуется.

4. Описание операций.

Основные действия в требуемой последовательности:

- запустить приложение;

- в появившемся окне (рисунок Г.1) выбрать пункт меню;

Рисунок Г.1 - Главное окно приложения

- в меню нажать кнопку «Однокритериальная» или «Многокритериальная», для выбора вида оптимизации;

- пригласить эксперта и предоставить ему возможность для оценки важности критериев (рисунок Г.2);

Рисунок Г.2 - Ввод оценок важности критериев

- посмотреть результат оптимизации (рисунок Г.3);

Рисунок Г.3 - Результаты оптимизации

5. Аварийные ситуации.

Все возможные аварийные ситуации описаны в приложении В.

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

6. Рекомендации по освоению.

Перед первым запуском приложения рекомендуется предварительно ознакомиться с разделом 3 и приложением В пояснительной записки.

Размещено на Allbest.ru


Подобные документы

  • Состав и обоснование выбора компонентов персонального компьютера (процессора, материнской платы, комплектующих и периферийных устройств), требования к ним и характеристики. Структурная схема компьютера, его программное обеспечение и расчёт стоимости.

    контрольная работа [1,3 M], добавлен 12.02.2015

  • История развития аппаратных средств и программного обеспечения. Представление данных (числа, символы, графика, звук). Язык двоичных кодов. Устройство компьютера (архитектура). Навыки пользователя в работе с операционной системой, программным обеспечением.

    презентация [1,9 M], добавлен 19.10.2014

  • Сущность глобальной компьютеризации и ее распространенность на современном этапе. Основные характеристики персонального компьютера и требования к нему, главные критерии выбора и оценка ассортимента. Порядок выбора конфигурации персонального компьютера.

    реферат [398,1 K], добавлен 31.10.2010

  • Обзор и характеристика программного обеспечения компьютера как совокупности программ системы обработки информации. Характеристика аппаратного обеспечения как комплекса электрических и механических устройств, входящих в состав ЭВМ. Взаимодействие систем.

    презентация [931,9 K], добавлен 23.12.2010

  • Сущность и назначение программного обеспечения - совокупности программ, управляющих работой компьютера или автоматизированной системы. Функции операционной системы - набора взаимодействующих программ, обеспечивающих работу (функционирование) компьютера.

    контрольная работа [294,8 K], добавлен 18.01.2011

  • Понятие и структура персонального компьютера, его возможности. Уровни программного обеспечение компьютера. Базовое и прикладное программное обеспечение персонального компьютера. Особенности стационарных ПК, ноутбуков, нетбуков, моноблоков, планшетов.

    курсовая работа [34,9 K], добавлен 23.10.2014

  • Функциональное назначение системного, прикладного и инструментального программного обеспечения компьютера. Характеристика состава и командного языка операционной системы MS DOS. Интерфейс и структура окон в Windows 98; методы управления программами.

    реферат [41,2 K], добавлен 18.12.2011

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

    презентация [528,8 K], добавлен 08.02.2014

  • Конфигурирование компьютера для работы со звуком на любительском уровне с качественным звуковоспроизведением и просмотром DVD. Обоснование выбора комплектующих и периферийных устройств и дополнительного программного обеспечения ПК; анализ характеристик.

    курсовая работа [3,7 M], добавлен 24.06.2013

  • Исследование особенностей реализации клиентского приложения в режиме сервер-терминал. Изучение процесса подготовки компьютера перед установкой программного обеспечения. Характеристика защиты клиентской части программы от несанкционированного доступа.

    курсовая работа [332,4 K], добавлен 13.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.