Многокритериальная оптимизация
Основные понятия оптимизации проектных решений, ее разновидности: однокритериальная и многокритериальная. Алгоритмический анализ задачи. Описание разработанного приложения. Анализ данных и верификация результатов работы программы, ее эффективность.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 17.02.2013 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
«Многокритериальная оптимизация»
Введение
В ситуации, когда есть необходимость выбрать «одно из двух зол», ежедневно, и не раз, прибывает каждый из нас. Хорошо, если ошибка в выборе варианта не доставит особых хлопот, но есть сферы деятельности человека, в которых ошибка может стать раковой.
В силу этих обстоятельств появилась необходимость выделить процесс принятия оптимальных решений в отдельную область науки, которая бы занималась формализацией и систематизацией данного процесса.
Процессы принятия решений являются основой любой целенаправленной деятельности человека. А значит, науке о принятии оптимальных решений следовало уделить особое внимание, тем самым повысить процент принятия безошибочных вариантов. Важные решения принимаются опытными людьми, довольно далёкими от математики, и особенно от её новых методов, и поэтому они чаще всего опасаются больше потерять от формализации, чем выиграть.
Время, когда принятие правильного решения можно было сравнить с игрой «Русская рулетка» утонуло в небытии. Сегодня для выработки такого решения требуется научный подход, т.к. слишком велики потери, связанные с ошибками.
Оптимальные решения позволяют достичь цели при минимальных материальных и трудовых затратах. Таким образом, анализу и методам принятия оптимальных решений в настоящее время уделяется большое внимание.
Чтобы процент риска при принятии решения был максимально приближен к нулю, нужно подойти к его изучению со всех возможных сторон. Необходимо построение модели оптимизации решений одновременно по нескольким критериям, что усложняет задачу оптимизации, тем более, если проводить её вручную: число альтернатив может достигать очень большого значения. Поэтому появляется необходимость оптимизировать процесс принятия решения, который позволит сузить число предполагаемых альтернатив и облегчит задачу выбора оптимальной альтернативы лицу принимаемому решение.
В данной курсовой работе стоит задача о написании приложения для выбора покупки пары станков, соответствующих некоторым ограничениям и являющихся наиболее оптимальными для данной задачи. В приложении необходимо реализовать однокритериальную и многокритериальную оптимизацию.
1. Теоретические сведения
1.1 Основные понятия оптимизации проектных решений
оптимизация программа алгоритмический проектный
Термин «оптимизация» понимает под собой процесс выбора наилучшего варианта из множества всех возможных. С точки зрения инженерных расчетов методы оптимизации позволяют выбирать наилучший вариант конструкции, наилучшее распределение ресурсов.
Оптимизация осуществляется при помощи алгоритмов математического программирования и бывает структурной, параметрической и структурно-параметрической. В процессе структурной оптимизации оптимизируется структура объекта, в процессе же параметрической - оптимизируются параметры элементов, входящих в состав структуры. Эти задачи решаются при помощи алгоритмов дискретного, непрерывного и дискретно-непрерывного математического программирования, соответственно.
В зависимости от числа критериев, по которым выполняется оптимизация объекта, различают однокритериальную и многокритериальную оптимизацию.
По наличию ограничений на целевую функцию и рабочие параметры различают оптимизацию без ограничений и при наличии ограничений. Так, если при синтезе усилителя необходимо, чтобы коэффициент усиления был не меньше какой-то заданной величины, то говорят о наложении ограничения на соответствующий критерий. Если же при этом требуется использовать номиналы элементов, значения которых должны попасть в какой-то заданный интервал, то тогда мы имеем дело с ограничениями на рабочие параметры.
В случае параметрического синтеза при известной структуре объекта подбираются параметры элементов таким образом, чтобы минимизировать (максимизировать) целевую функцию.
Следует заметить, что существующие оптимизационные алгоритмы обычно не гарантируют нахождение глобального оптимума, но это не является критическим. Например, для увеличения вероятности нахождения глобального оптимума можно значительно увеличить число итераций, использовать несколько алгоритмов, многократно запускать соответствующие алгоритмы. Современные продвинутые системы автоматизированного проектирования имеют в своем составе модули параметрического синтеза и оптимизации, что, в свою очередь, оказывает немалую помощь человеку в процессе выбора решений.
Если помимо подбора параметров необходимо еще и определить структуру объекта, то мы будем уже иметь дело со структурно-параметрическим синтезом, который решается при помощи алгоритмов дискретно-непрерывного математического программирования. Если задача параметрической оптимизации сейчас решается практически для любых объектов, то развитие структурно-параметрической оптимизация сейчас находится лишь на начальной стадии развития.
С теорией оптимизации тесно связаны математическое программирование, теория исследования операций, теория принятия решений, динамическое программирование.
Дальнейшее развитие теории и практики оптимизации является очень важным для развития науки и техники.
Выбор оптимального решения или сравнения двух альтернативных решений проводится с помощью некоторой зависимой величины (функции), которая определяется проектными параметрами. Эта величина называется целевой функцией или критерием качества. В процессе решения задачи оптимизации должны быть найдены такие значения проектных параметров, при которых целевая функция имеет максимум (или минимум). Таким образом, целевая функция - это глобальный критерий оптимальности в математических моделях, с помощью которых описываются инженерные задачи.
В случае одного проектного параметра является функцией одной переменной и ее графики - некоторая кривая на плоскости. При двух - целевая функция является функцией двух переменных и ее графиком есть поверхность.
Стоит отметить, что целевая функция не всегда может быть представлена в виде формулы. Иногда она может принимать лишь некоторые дискретные значения, задаваться в виде таблицы и так далее. Однако в любом случае она должна быть однозначной функцией проектных параметров.
Выделим основные этапы решения задачи оптимизации [2]:
- постановка задачи. На этом этапе аналитик должен трансформировать слова заказчика в четко сформулированную задачу;
- построение математической модели задачи. Здесь четко поставленная и сформулированная жизненная проблема формализуется математически.
- решение математической модели задачи;
- принятие решений. На этой стадии аналитик, на основе пройденных предыдущих этапов, должен принять оптимальное решение. Принятие решения - это задача управленческого типа.
Рассмотрим более подробно однокритериальные и многокритериальные задачи оптимизации.
1.2 Однокритериальная оптимизация
Задачи одномерной минимизации представляют собой простейшую математическую модель оптимизации, в которой целевая функция зависит от одной переменной, а допустимым множеством является отрезок вещественной оси.
Общая постановка задачи одномерной оптимизации заключается в следующем: дана некоторая функция f(x) от одной переменной x, необходимо определить такое значение x*, при котором функция f(x) принимает экстремальное значение. Под ним обычно понимают минимальное или максимальное значения. В общем случае функция может иметь одну или несколько экстремальных точек. Нахождение этих точек с заданной точностью можно разбить на два этапа. Сначала экстремальные точки отделяют, т.е. определяются отрезки, которые содержат по одной экстремальной точке, а затем уточняют до требуемой точности .
Максимизация целевой функции эквивалента минимизации противоположной величины, поэтому, можно рассматривать только задачи минимизации.
Для решения задачи минимизации функции f(x) на отрезке [a, b] на практике, как правило, применяют приближенные методы. Они позволяют найти решения этой задачи с необходимой точностью в результате определения конечного числа значений функции f(x) и ее производных в некоторых точках отрезка [a, b]. Методы, использующие только значения функции и не требующие вычисления ее производных, называются прямыми методами минимизации.
Большим достоинством прямых методов является то, что от целевой функции не требуется дифференцируемости и, более того, она может быть не задана в аналитическом виде. Единственное, на чем основаны алгоритмы прямых методов минимизации, это возможность определения значений f(x) в заданных точках [4].
Среди задач математического программирования самыми простыми и наиболее хорошо изученными являются так называемые задачи линейного программирования (линейной оптимизации).
Рассмотрим данный тип задач. Для них характерен тот факт, что целевая функция линейно зависит от , а также то, что ограничения, накладываемые на независимые переменные, имеют вид линейных равенств или неравенств относительно этих переменных.
Такие задачи часто встречаются на практике - например, при решении проблем, связанных с распределением ресурсов, планированием производства, организацией работы транспорта и т.д.
Общая задача линейной оптимизации заключается в нахождении максимума (минимума) линейной целевой функции. Вид целевой функции и ограничений описываются формулами (1.11.4).
, (1.1)
при ограничениях:
, (1.2)
, (1.3)
(1.4)
где целевая функция, критерий оптимальности или линейная форма;
x вектор неизвестных;
коэффициенты целевой функции;
коэффициенты ограничений;
величины правых частей ограничений.
Вектор значений неизвестных , удовлетворяющих условию задачи (1.1) - (1.4), называется допустимым решением или допустимым планом задачи линейной оптимизации. Совокупность всех допустимых планов называется множеством допустимых планов. Допустимое решение называется оптимальным, если оно обеспечивает максимальное (или, в зависимости от условий задачи, минимальное) значение целевой функции.
Решение задач линейной оптимизации может быть получено без особых затруднений (естественно, при корректной формулировке проблемы). Классическим методом решения задач данного типа является симплекс-метод. В случае лишь двух переменных успешно может использоваться также графический метод решения, обладающий преимуществом наглядности. Очевидно, в случае n>2 применение графического метода невозможно.
При решении ряда оптимизационных задач требуется, чтобы значения неизвестных выражались в целых числах. К задачам подобного типа относятся те, в которых требуется определить необходимые для принятия решений значения физически цельных объектов (машин, агрегатов различного типа, людей, транспортных единиц и т.д. и т.п.) [5].
1.3 Многокритериальная оптимизация
Чтобы получить более полную характеристику достоинств и недостатков проектируемого объекта, нужно ввести больше критериев качества в рассмотрение. Как результат: задачи проектирования сложных систем всегда многокритериальные, так как при выборе наилучшего варианта приходится учитывать много различных требований, предъявленных к системе.
С привычной точки зрения задача со многими критериями решения не имеет, но к счастью это не так, всегда есть возможность одновременного удовлетворения всех заданных условий. Атак как практически любая подобная ситуация допускает разные компромиссные разрешения, то и подходы к их поиску многочисленны и весьма разнообразны.
Перечислим некоторые из подходов к задачам со многими критериями [6]:
- метод уступок лицо, принимающее решения, подводится к выбору решения путем постепенного ослабления первоначальных требований, как правило, одновременно невыполнимых;
- метод идеальной точки в области допустимых значений неизвестных ищется такая их совокупность, которая способна обеспечить набор значений критериев, в том или ином смысле ближайший к наилучшему варианту;
- метод свертывания лицо, принимающее решения, сводит многокритериальную задачу к задаче с одним критерием;
- метод ограничений множество допустимых значений неизвестных уменьшается путем осмысленного введения дополнительных ограничений на заданные критерии;
- метод анализа иерархий на основании суждений экспертов оценивается вклад в общую оценку каждого критерия.
Концепция принятия решения в качестве первичного элемента деятельности рассматривает решение как сознательный выбор одной из ряда альтернатив, называемых, в зависимости от их конкретного содержания, стратегиями, планами, вариантами и т.п. Этот выбор производит лицо, принимающее решение и стремящееся к достижению определенных целей. В роли такого лица выступают отдельные люди или группы людей, обладающие правами выбора решения и несущие ответственность за его последствия.
Применение математических методов при принятии решений предполагает построение подходящей математической модели. Для задач оптимизации в условиях определенности, когда случайные и неопределенные факторы отсутствуют, компонентами такой модели являются множество X всех альтернативных решений, из которых и надлежит произвести выбор одного наилучшего, или оптимального решения, и описание предпочтений лица, принимающего решение. Для того чтобы была обеспечена возможность выбора, множество X должно содержать не менее двух решений.
В многокритериальной задаче оптимизации сравнение решений по предпочтительности осуществляется не непосредственно, а при помощи заданных на X числовых функций f1, f2, … fm, называемых критериями. Предполагается, что m ?2: при m = 1 задача оптимизации является однокритериальной.
В задачах принятия индивидуальных решений критерии служат для выражения «интенсивности» существенных свойств (признаков) решений. В задачах принятия групповых решений критерий U характеризует «качество» (или предпочтительность) решений с точки зрения индивида i, входящего в группу {1, 2,…, m}.
По своему характеру критерии подразделяются на два типа: количественные и качественные. Критерий является количественным, когда его значения имеет смысл сравнивать, указывая, на сколько, или во сколько раз одно значение больше другого, и качественным, когда такие сравнения бессмысленны [7].
1.4 Методы экспертного анализа
Основная идея экспертных методов состоит в том, чтобы использовать интеллект людей, их способность искать и находить решение слабо формализованных задач. В теории экспертных оценок разработан ряд методов проведения экспертизы. Рассмотрим основные методы экспертного анализа:
- метод Саати [5]. Часто затруднительно напрямую оценить важность некоторого объекта среди ряда других. Подобная ситуация может иметь место при наличии объектов различной природы. Например, среди ранжируемых показателей эффективности могут быть показатели, имеющие определенное стоимостное выражение, а также показатели этического, эстетического рода и т.п. Указанное затруднение преодолевается посредством попарного сравнения объектов по степени их влияния на достижение цели. При этом эксперт должен вынести суждение о том, насколько с точки зрения достижения цели один объект важнее второго. Анализируя совокупность объектов, эксперт определяет численное предпочтение одного объекта перед другим по некоторой заранее выбранной шкале отсчета. Простым примером может служить выбор места работы выпускником ВУЗа. Выпускник должен оценить, насколько для него уровень оплаты труда, например, важнее, чем перспективы продвижения по служебной лестнице и т.д.
Пусть эксперт анализирует объектов. Сравнивая их попарно между собой, он определяет чисел , каждое из которых характеризует, по мнению эксперта, относительную значимость - го объекта по сравнению с - м. Величина представляет оценку (приближенное значение) истинной значимости сравниваемых объектов. Совокупность экспертных оценок можно записать в виде квадратной матрицы
(1.5)
Элементы этой матрицы (относительные значимости объектов) можно рассматривать как отношения истинных важностей
(1.6)
При оценке относительных значимостей используется обычно девятибалльная шкала.
Из формулы (1.6) следует, что из общего числа всех элементов матрицы попарного сравнения независимыми являются лишь . Во-первых, диагональные элементы матрицы равны единице. Во-вторых, при изменении порядка сравнения оценка относительной значимости объекта должна меняться на противоположную оценку:
(1.7)
Это означает, что элементы матрицы попарного сравнения, расположенные симметрично относительно главной диагонали, представляют собой взаимно обратные числа.
Выбор решения выполняется в следующем порядке. Сначала эксперты заполняют матрицы парных сравнений. Затем для каждой матрицы определяются оценки предпочтения альтернатив над другими, то есть находятся суммы строк матриц по формуле (1.8):
(1.8)
где k - число экспертов;
n - число альтернатив.
После этого определяются обобщенные оценки предпочтения альтернатив над другими (с учетом мнения всех экспертов) - и находится сумма всех оценок . Находятся веса альтернатив по формуле (1.9):
(1.9)
Лучшей считается альтернатива, имеющая наибольший вес.
- метод предпочтений. Данный метод основан на ранжировании альтернатив, выполняемом группой экспертов. Каждый из экспертов выполняет ранжирование альтернатив, то есть указывает, какая из альтернатив, по его мнению, является лучшей, какая следующей за ней, и т.д.
Пусть имеется m экспертов: Э1, Э2,…, Эm и n критериев (альтернатив): Z1, Z2,…, Zn [9].
Каждый эксперт проводит оценку критериев, пользуясь числами натурального ряда. Наиболее важной цели присваивается значение 1, менее важной 2 и т.д. В этих условиях веса критериев определяются следующим образом:
- составляется исходная матрица k предпочтений размером mЧn, причём 1? kij ? n, где ;
- составляется модифицированная матрица K предпочтений. С оценками:
; (1.10)
- находятся суммарные оценки предпочтений по каждому критерию:
; (1.11)
- вычисляются исходные веса критериев:
(1.12)
Наиболее предпочтительной является альтернатива, имеющая максимальный вес.
Для данного метода существует возможность проверки согласованности экспертных оценок. Для этого вычисляется коэффициент конкордации по следующему алгоритму. Сначала находятся суммы оценок, указанных экспертами для каждой из альтернатив: , где . Затем находится вспомогательная величина б:
(1.13)
Находится . Находится коэффициент конкордации:
(1.14)
При х ? 5, степень согласованности экспертных оценок считается достаточной, в противном случае требуется уточнение и согласование экспертных оценок.
Также в одну группу с методом Саати и методом предпочтений входит метод Ранга. В нём подобно методу Саати эксперты дают оценки альтернативам. В соответствии с этими оценками высчитываются веса оцениваемых альтернатив, затем происходит выбор максимального из посчитанных весов, и соответственно, наиболее предпочтительной альтернативы.
Стоит упомянуть о том, что в методе Ранга также присутствует проверка на соответствие, путём высчитывания дисперсий, а затем происходит сравнение дисперсий и проверка того, чтобы различие не превышало 5% - 9%.
Но метод Ранга будет описан подробнее чуть позже, с приведением всех необходимых формул для расчёта весов, так является методом, который необходимо реализовать в соответствии с вариантом.
2. Алгоритмический анализ задачи
2.1 Постановка задачи
Предприятие планирует освоить выпуск нового изделия в количестве не менее 10 000 штук в год. Для этого ему необходимо приобрести станки двух типов. Характеристики станков, из которых делается выбор, приведены в таблицах 1 и 2. При этом, на изготовление изделия, предприятие может выделить не более 200 часов в месяц. Существует также ограничение по стоимости (не более 1000 млн. руб.) и по потребляемой мощности (не более 50000 кВт-ч в месяц). Технические характеристики станков первого и второго вида приведены в таблицах 2.1, 2.2 соответственно.
Таблица 2.1 - Технические характеристики станков первого вида
Станок |
ST11 |
ST12 |
ST13 |
ST14 |
ST15 |
|
Производительность, изд./час |
15 |
3 |
7 |
11 |
10 |
|
Стоимость, млн. руб. |
640,0 |
110,0 |
320,0 |
450 |
257,0 |
|
Энергоэффективность, кВт-ч/изд. |
27,8 |
33,5 |
17,0 |
23,0 |
11,6 |
Таблица 2.2 - Технические характеристики станков второго вида
Станок |
ST21 |
ST22 |
ST23 |
ST24 |
ST25 |
|
Производительность, изд./час |
10 |
7 |
13 |
17 |
11 |
|
Стоимость, млн. руб. |
354,0 |
275,0 |
200,0 |
700,0 |
158,0 |
|
Энергоэффективность, кВт-ч/ изд. |
12,0 |
24,0 |
35,5 |
17,0 |
18,3 |
Кроме того, при выборе станков необходимо учесть мнение экспертов в отношении этого оборудования (таблицы 2.3 и 2.4)
Таблица 2.3 - Эксплуатационные характеристики станков первого вида
Станок |
ST11 |
ST12 |
ST13 |
ST14 |
ST15 |
|
Сервисное обслуживание |
да |
нет |
да |
да |
нет |
|
Надежность (наработка на отказ), ч |
150 000 |
70 000 |
70 000 |
100 000 |
110 000 |
|
Удобство в использовании |
хорошо |
отлично |
плохо |
плохо |
отлично |
Таблица 2.4 - Эксплуатационные характеристики станков первого вида
Станок |
ST21 |
ST22 |
ST23 |
ST24 |
ST25 |
|
Сервисное обслуживание |
да |
да |
да |
нет |
да |
|
Надежность (наработка на отказ), ч |
150 000 |
150 000 |
120 000 |
200 000 |
110 000 |
|
Удобство в использовании |
плохо |
отлично |
Очень хорошо |
хорошо |
отлично |
Таблица 2.5 - Вариант задания
вариант |
Однокритериальная оптимизация |
Многокритериальная оптимизация |
|||||
метод |
параметр |
Метод экспертного анализа |
Число экспертов |
Метод отбора |
Выбор лучшего решения |
||
8 |
перебор |
стоим. |
Ранга |
2 |
Парето |
МАИ |
В соответствии с вариантом задания на курсовой проект (таблица 2.5) необходимо:
- разработать программное средство оптимизации по заданному критерию в рамках существующих ограничений методом полного перебора;
- разработать программное средство многокритериальной оптимизации с учетом мнения одного или двух экспертов. Для этого необходимо:
- реализовать перевод качественных оценок в числовую форму по шкале Харрингтона;
- определить лучшую альтернативу методом экспертного анализа (Метод Ранга);
- реализовать отбор бесперспективных альтернатив (Множество Парето);
- определить лучшую альтернативу методом анализа иерархий.
2.2 Описание алгоритма решения задачи
Согласно варианту поставленная задача должна решаться методом полного перебора для одномерной оптимизации. Рассмотрим основную суть данного алгоритма.
Метод перебора или равномерного поиска является простейшим из прямых методов минимизации. Перебор это решение задач, возникающих из заданной задачи. То есть значение некоторого искомого параметра фиксируется различным образом, и производится выбор того из рассмотренных значений, которое дает наиболее подходящее решение.
Основная задача при реализации переборных методов заключается в нахождении такого порядка элементов перебора, при котором искомый элемент «встретится» как можно раньше [8].
Необходимо учесть, что сложность полного перебора зависит от количества всех возможных решений задачи. Если пространство решений очень велико, то полный перебор может не дать результатов в течение нескольких лет или даже столетий.
Для получения оптимального решения поставленной задачи при многомерной оптимизации необходимо реализовать ряд этапов. Рассмотрим их.
1. Для начала необходимо перевести все качественные оценки в числовую форму по шкале Харрингтона. Диапазон значений по данной шкале приведён в таблице 2.6
Таблица 2.6 Шкала Харрингтона
Качественные оценки |
Очень плохо |
Плохо |
Удовлетворительно |
Хорошо |
Отлично |
|
Количественные оценки |
0.0 - 0.2 |
0.2 - 0.36 |
0.36 - 0.63 |
0.63 - 0.8 |
0.8 - 1.0 |
Оценки типа «да/нет» так же переводятся в числовую форму, причём оценке «да» соответствует значение - 0.67, а «нет» - 0.33.
Все числовые оценки переводятся в безразмерный вид (представить оценки в долях единицы) и при этом лучшей оценке соответствует большее значение. Для осуществления такого перевода необходимо разделить все значения оценок по данному критерию на максимальное значение этого критерия.
2. Метод приписывания баллов (метод ранга) [1]. Этот метод основан на том, что эксперты оценивают важность частного критерия по шкале от 0 до 10. При этом разрешается оценивать важность дробными величинами или приписывать одну и ту же величину из выбранной шкалы нескольким критериям. Обозначим через hik балл i-го эксперта для k-критерия, тогда
(1.10)
где сумма баллов i - ой строки;
m - количество критериев.
rik - называют весом, подсчитанным для k - критерия i - м экспертом. Отсюда, учитывая, что , где L количество экспертов, получим веса альтернатив:
(1.11)
Как и в методе попарного сравнения, лучшей считается альтернатива, имеющая наибольший вес.
3. Реализуется метод Парето для отбора бесперспективных альтернатив.
Суть данного метода заключается в следующем: одна альтернатива превосходит вторую, если она превосходит ее, по крайней мере, по одной компоненте и не хуже второй по любой другой компоненте. Если альтернатива удовлетворяет этому свойству относительно всех других альтернатив, то ее называют оптимальной [10].
Применение принципа Парето позволяет из множества всех возможных исключить заведомо неприемлемые решения, т.е. те, которые никогда не могут оказаться выбранными, если выбор осуществляется достаточно «разумно». После такого исключения остается множество, которое называют множеством Парето или областью компромиссов.
Выбор множества Парето производится следующим образом. Все альтернативы попарно сравниваются друг с другом по всем критериям. Если при сравнении каких-либо альтернатив оказывается, что одна из них не лучше другой ни по одному критерию, то ее можно исключить из рассмотрения.
Данный метод позволяет сократить количество альтернатив, но не позволяет получить окончательное решение.
4. Определяем лучшую альтернативу методом анализа иерархий (МАИ). Рассмотрим более подробно данный метод.
Метод анализа иерархий, применяется в настоящее время при решении самых разнообразных проблем, среди которых, в частности: проектирование транспортных систем крупных городов, разработка планов обеспечения энергетическими ресурсами отраслей промышленности, оценка сценария развития высшего образования, определение приоритетных направлений научных исследований и др.
МАИ не предписывает лицу, принимающему решение (ЛПР), какого-либо «правильного» решения, а позволяет ему в интерактивном режиме найти такой вариант (альтернативу), который наилучшим образом согласуется с его пониманием сути проблемы и требованиями к ее решению.
Анализ проблемы принятия решений в МАИ начинается с построения иерархической структуры, которая включает цель, критерии, альтернативы и другие рассматриваемые факторы, влияющие на выбор. Эта структура отражает понимание проблемы лицом, принимающим решение. Каждый элемент иерархии может представлять различные аспекты решаемой задачи, причем во внимание могут быть приняты как материальные, так и нематериальные факторы, измеряемые количественные параметры и качественные характеристики, объективные данные и субъективные экспертные оценки. Иными словами, анализ ситуации выбора решения в МАИ напоминает процедуры и методы аргументации, которые используются на интуитивном уровне.
Следующим этапом анализа является определение приоритетов, представляющих относительную важность или предпочтительность элементов построенной иерархической структуры, с помощью процедуры парных сравнений. Безразмерные приоритеты позволяют обоснованно сравнивать разнородные факторы, что является отличительной особенностью МАИ.
На заключительном этапе анализа выполняется синтез (линейная свертка) приоритетов на иерархии, в результате которой вычисляются приоритеты альтернативных решений относительно главной цели. Лучшей считается альтернатива с максимальным значением приоритета.
Иерархические структуры, используемые в МАИ, представляет собой инструмент для качественного моделирования сложных проблем. Вершиной иерархии является главная цель; элементы нижнего уровня представляют множество вариантов достижения цели (альтернатив); элементы промежуточных уровней соответствуют критериям или факторам, которые связывают цель с альтернативами.
После построения иерархии участники процесса используют МАИ для определения приоритетов всех узлов структуры. Информация для расстановки приоритетов собирается со всех участников и математически обрабатывается.
Приоритеты - это числа, которые связаны с узлами иерархии. Они представляют собой относительные веса элементов в каждой группе. Подобно вероятностям, приоритеты - безразмерные величины, которые могут принимать значения от нуля до единицы. Чем больше величина приоритета, тем более значимым является соответствующий ему элемент. Сумма приоритетов элементов, подчиненных одному элементу выше лежащего уровня иерархии, равна единице [8].
2.3 Описание схемы алгоритма метода Ранга
Рассмотрим одну из основных схем алгоритма созданного программного обеспечения - схему метода Ранга, представленную в приложении А и на рисунке 2.1. Метод Ранга предназначен для поиска весов критериев на основе оценок экспертов.
Также в приложении A представлены схема поиска суммы по столбцам и проверка введённых оценок на согласованность, которые также описаны ниже, как и схема к методу Ранга.
Рисунок 2.1 - Схема алгоритма метода Ранга
Схема данного алгоритма состоит из шести основных блоков, четыре из которых являются подпрограммами. Алгоритмы некоторых из них представлены на рисунках 2.2 и 2.3 соответственно. Рассмотрим данные подпрограммы более подробно.
Для вычисления весов критериев необходимо для начала найти сумму экспертных оценок по каждому критерию, т.е. по каждому столбцу матрицы оценок. Этот процесс отражен в схеме алгоритма, представленной на рисунке 2.2. В результате работы данного алгоритма будет получен массив сумм по каждому критерию.
Рисунок 2.2 - Схема алгоритма вычисления сумм оценок по столбцам
Также приведена схема алгоритма проверки введённых оценок на соответствие. Эта реализация представлена на рисунке 2.3. В результате работы данного алгоритма программа либо продолжает поиск весов альтернатив, либо просит осуществить ввод новых оценоки в случае их несогласованности.
Рисунок 2.3 - Схема алгоритма проверки, введённых оценок на согласованность
После завершения работы описанных подпрограмм их результаты используются основным алгоритмом непосредственно для вычисления весов критериев.
3. Описание разработанного приложения
3.1 Структура программного комплекса
Программное обеспечение для решения поставленной задачи было реализовано в среде разработки MS Visual Studio 2008 на языке C#. Данная среда разработки позволяет быстро, эффективно и просто создать полноценное и многофункциональное приложение.
Созданное приложение состоит из одного пользовательского класса, реализующего методы, описанные в разделе 2.2. Рассмотрим каждый метод класса более подробно.
Метод Preobrazovanie - метод для преобразования исходных данных по шкале Харрингтона.
Метод Max - метод преобразования исходных данных, то есть поиск максимального и деление на него всех текущих значений.
Метод Ves - метод для нахождения весов, используется в методе многомерной оптимизации (Методе анализа иерархий).
Метод PoiskMaxVesa - метод для поиска максимального веса в методе могомерной оптимизации (Методе анализа иерархий), что позволяет выбрать наилучшую альтернативу станков.
Метод Proverka - метод используется в многомерном методе оптимизации (Методе Ранга).
Основной код по реализации одномерной и многомерной оптимизации является событием по нажатию на кнопки: «Метод Ранга», «Метод Парето», «Метод анализа иерархий» соответственно.
Каждая из которых включает занесение необходимых данных, работу с этими данными до момента достижения необходимого результата.
Исходные данные в таблицы занесены зарание, но в случае необходимости их можно отредактировать. Оценки экспертов изначально, естественно, отсутствуют.
С помощью существующих компонентов в MS Visual Studio 2008 на языке C# создан графический интерфейс, как и все остальные методы, он размещён в классе Form1, здесь же отображаются результаты работы приложения.
Исходный код приложения представлен в приложении Б.
3.2 Инструкция пользователя
Созданное приложение предназначено помочь принять решение о покупке станков двух типов лицу принимающему решение. После запуска exe-файла появляется основное окно, представленное на рисунке 3.1.
Рисунок 3.1 - Вид главного окна приложения
Всё приложение разделено на две основные области. Область «Технические характеристики станков» предназначена для ввода технических характеристик станков. В первую таблицу заносятся параметры станков первого типа, во вторую - второго типа. Так же в данных таблицах можно редактировать данные. Для редактирования необходимо выбрать нужную ячейку, кликнуть по ней два раза и ввести новое значение вместо старого. Область «Выбора типа оптимизации» предназначена для осуществления оптимизации. Вкладка «Одномерная оптимизация» предназначена для проведения одномерной оптимизации. Одномерная оптимизация проводится по критерию «стоимость», после нажатия кнопки «Оптимизировать», результат оптимизации приведён на рисунке 3.2.
Рисунок 3.2 - Результат работы одномерной оптимизации
Вкладка «Многомерная оптимизация» предназначена для проведения многомерной оптимизации. Для проведения многомерной оптимизации, необходимо, чтобы два эксперта дали оценки критериям, необходимые для решения задачи. Чтобы ввести оценки нужно нажать кнопку «Ввести данные». После чего появится таблица для ввода оценок, представленная на рисунке 3.3.
Рисунок 3.3 - Таблица для ввода оценок
После задания оценок нужно нажать кнопку «Метод ранга» и приложение выдаст результат оптимизации как представлено на рисунке 3.4.
В приложении присутствует проверка оценок на согласованность. Если согласованности в оценках экспертов не будет, то программа выдаст об этом сообщение, его вид представлен на рисунке 3.5. После появления данного сообщения на экране оценки нужно ввести заново.
При нажатии на кнопки «Метод Парето» и «Метод анализа иерархий» будет проведена многомерная оптимизация в соответствии с указанным методом, результаты работы представлены на рисунках 3.6 - 3.7.
Таким образом были рассмотрены основные функции и возможности пользовательского приложения, а так же детально разъяснена работа с данным приложением и указаны основные ошибки, которые могут возникать при работе приложения и описаны пути их устранения.
Рисунок 3.4 - Результат работы метода ранга
Рисунок 3.5 - Вид сообщения о не согласованности оценок
Рисунок 3.6 - Результат работы метода Парето
Рисунок 3.7 - Результат работы метода анализа иерархий
При нажатии на кнопку «Выход» приложение закончит свою работу. Были рассмотрены основные функции и возможности пользовательского приложения, а так же детально разъяснена работа с данным приложением и указаны основные ошибки, которые могут возникать при работе приложения и описаны пути их устранения.
3.3 Анализ исходных данных и верификация результатов работы программы
В поставленной задаче в качестве исходных данных выступают технические характеристики двух типов станков по следующим шести критериям: энергоэффективность, производительность, стоимость станка, сервисное обслуживание, надёжность и удобство в использовании. В соответствии с данными характеристикам происходит выбор двух станков разного типа. Технические показатели станков должны соответствовать показателям данным в задании: стоимость двух станков не должна превышать 1 000 млн. рублей, максимальная потребляемая мощность 50 000 кВт-ч в месяц, количество изготавливаемых изделий в год не менее 10 000 штук в год, на изготовление изделия тратиться не более 200 часов в месяц. На основе всех вышеописанных данных производится отбор лучшей пары станков. Для проверки правильности работы программы нужно сравнить работу приложения при однокритериальной и многокритериальной оптимизации. Причём, выбранному критерию в одномерной оптимизации должны быть выставлены минимальные оценки в многокритериальной оптимизации. Если результаты первых альтернатив совпадают, то можно утверждать, что приложение работает верно. Для начала проведём одномерную оптимизацию по критерию стоимость. Приложение выдаст результат в соответствии с рисунком 3.7.
Рисунок 3.7 - Результаты работы однокритериальной оптимизации по критерию «Стоимость»
Затем необходимо провести многокритериальную оптимизацию. Главным критерием выступает стоимость, то нужно данному критерию выставить минимальные оценки. После выполнения оптимизации приложение выдаст результат в соответствии с рисунком 3.7.
Рисунок 3.7 - Результаты работы многокритериальной оптимизации
После выполнения оптимизаций необходимо провести сравнение результатов. Если первые лучшие альтернативы для двух оптимизаций совпали, значит, приложение работает правильно.
Заключение
В заключение, к данной курсовой работе можно сказать, что все поставленные задачи по одномерной и многомерной оптимизации в соответствии с заданием успешно решены.
Разработанное приложение позволит при желании осуществить правильный выбор альтернативы станков при их покупке. Следует отметить, что станки будут соответствовать всем параметрам качества, которые определены потребителем, в нашем случае заданием, и в случае необходимости параметры оптимизации можно отредактировать.
Интерфейс прост в использовании и доступен далёкому от программирования пользователю, то есть большому числу пользователей.
Приложение проверено на тестах, то есть, проведена верификация результатов. Этот факт говорит о том, что приложение может применяться для решения реальных практических задач.
В ходе выполнения курсового проекта более детально изучены и реализованы методы однокритериальной и многокритериальной оптимизации, такие как метод полного перебора, метод Ранга, метод анализа иерархий, метод выбора множества по Парето. Данная курсовая работа значительно расширила обзор в области принятия решения и показала, что даже в этой области может успешно применяться автоматизация, что немаловажно в нашем мире полном технологий, которые «должны» оправдывать затраты на них, тем самым делать жить, создавшего их человека, проще и качественнее.
Список использованных источников
1. Шикин, Е.В. Исследование операций / Е.В. Шикин, Г.Е. Шикина. М.: ТК Велби, Изд-во Проспект, 2006. 280 с.
2. Акимов, С.В. Проблемы автоматизации структурно-параметрического синтеза / С.В. Акимов // Оптимизация [Электронный ресурс]. 2005-2006. - Режим доступа: http://www.structuralist.narod.ru/dictionary/opt.htm. Дата доступа: 08.05.2012.
2. МГСУ кафедра «ИСТАС» направление САПР // Методы оптимизации [Электронный ресурс]. 2000-20011. - Режим доступа: http://sapr.mgsu.ru/biblio/optimiz/opt.htm. Дата доступа: 09.05.2012.
4. Сафронов, В. Лекции и учебные пособия по системному анализу / В. Сафронов // Системный анализ и проектирование [Электронный ресурс]. 2006-2012. Режим доступа: http://victor-safronov.narod.ru/systems-analysis/lectures/zhivickaya/28.html. Дата доступа: 10.05.2012.
5. Информационные технологии оптимальных решений. Учебный курс для специальности «Государственное управление и экономика». Минск: Академия управления при Президенте Республики Беларусь, 2003. 241 с.
6. Теория принятия решений. Учебно-методическое пособие / Ю.О. Матузко. Запорожье: Запорожская государственная инженерная академия, 2009. 61 с.
Шикин, Г.Е. Шикина. М.: ТК Велби, Изд-во Проспект, 2006. 280 с.
7. Подиновский, В.В. Парето-оптимальные решения многокритериальных задач. / В.В. Подиновский, В.Д. Ногин. М.: Наука. Главная редакция
физико-математической литературы, 1982. - 256 с.
8. Мосеев, А.В. Применение методов искусственного интеллекта в переборных алгоритмах / А.В. Мосеев // Метод перебора и задачи, решаемые при помощи этого метода [Электронный ресурс]. 1999. Режим доступа: http://underwood.narod.ru/as/diplom/chapter2.html. Дата доступа: 10.05.2012.
9. Саати, Т.Л. Принятие решений. Метод анализа иерархий / Т. Саати. М.: Радио и связь, 1993. 278 с.
10. Теория принятия решений. Учебное пособие / В.М. Горбунов. Томск: Национальный исследовательский томский политехнический университет, 2010. 67 с.
Приложение
Листинг программы
using System;
using System. Collections. Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System. Windows. Forms;
namespace WindowsFormsApplication1
{
public partial class Form1: Form
{
public Form1 ()
{
InitializeComponent();
}
// объявление исходных переменных
float[] ves = new float[6];
float[] st1 = new float[6];
float[] st2 = new float[6];
float[] doe = new float[2];
public double[,] a = new double [4, 5];
public double[,] b = new double [4, 5];
public double[,] a1 = new double [4, 5];
public double[,] b1 = new double [4, 5];
public double[,] c1 = new double [9, 25];
public double min, per;
public int k = 1, l, t = 0, i, j, k1=1;
public const int obkolvo = 10000, obchas = 200, obstoim = 1000, obpotrmosh = 50000;
private void Form1_Load (object sender, EventArgs e)
{
// занесение исходных данных в таблицу
dataGridView1. RowCount = 3;
dataGridView2. RowCount = 3;
dataGridView1 [0, 0].Value = «Производительность»;
dataGridView1 [0, 1].Value = «Стоимость»;
dataGridView1 [0, 2].Value = «Энергоэффективность»;
dataGridView2 [0, 0].Value = «Производительность»;
dataGridView2 [0, 1].Value = «Стоимость»;
dataGridView2 [0, 2].Value = «Энергоэффективность»;
dataGridView1 [1, 0].Value = «15»; dataGridView1 [2, 0].Value = «3»; dataGridView1 [3, 0].Value = «7»; dataGridView1 [4, 0].Value = «11»; dataGridView1 [5, 0].Value = «10»;
dataGridView1 [1, 1].Value = «640»; dataGridView1 [2, 1].Value = «110»; dataGridView1 [3, 1].Value = «320»; dataGridView1 [4, 1].Value = «450»; dataGridView1 [5, 1].Value = «257»;
dataGridView1 [1, 2].Value = «27,8»; dataGridView1 [2, 2].Value = «33,5»; dataGridView1 [3, 2].Value = «17»; dataGridView1 [4, 2].Value = «23»; dataGridView1 [5, 2].Value = «11,6»;
dataGridView2 [1, 0].Value = «10»; dataGridView2 [2, 0].Value = «7»; dataGridView2 [3, 0].Value = «13»; dataGridView2 [4, 0].Value = «17»; dataGridView2 [5, 0].Value = «11»;
dataGridView2 [1, 1].Value = «354»; dataGridView2 [2, 1].Value = «275»; dataGridView2 [3, 1].Value = «200»; dataGridView2 [4, 1].Value = «700»; dataGridView2 [5, 1].Value = «158»;
dataGridView2 [1, 2].Value = «12»; dataGridView2 [2, 2].Value = «24»; dataGridView2 [3, 2].Value = «35,5»; dataGridView2 [4, 2].Value = «17»; dataGridView2 [5, 2].Value = «18,3»;
}
// кнопка для завершения работы приложения
private void button3_Click (object sender, EventArgs e)
{
this. Close();
}
// кнопка, при нажатии на которую проиводится одномерная оптимизация
private void button1_Click (object sender, EventArgs e)
{
listBox1. Visible = true;
int min = Convert. ToInt32 (dataGridView1 [1, 1].Value), k = 0, k1 = 0;
for (int i = 2; i < dataGridView1. ColumnCount; i++)
{ // поиск минимального по стоимости станка
if (min > Convert. ToInt32 (dataGridView1 [i, 1].Value))
min = Convert. ToInt32 (dataGridView1 [i, 1].Value);
k = i;
}
int min1 = Convert. ToInt32 (dataGridView2 [1, 1].Value);
// ограничения по производительности
if (Convert. ToInt32 (dataGridView1 [k, 0].Value) * 200 >= 833)
{
for (int i = 2; i < dataGridView2. ColumnCount; i++)
{
if (min1 > Convert. ToInt32 (dataGridView2 [i, 1].Value))
min1 = Convert. ToInt32 (dataGridView2 [i, 1].Value);
k1 = i;
}
}
if (Convert. ToDouble (dataGridView1 [k, 2].Value) + Convert. ToDouble (dataGridView2 [k1, 2].Value)*200 < 10000)
{
listBox1. Items. Add («Наилучший станок первого типа: ST1» +k. ToString());
listBox1. Items. Add («Наилучший станок первого типа: ST2» + k1. ToString());
}
}
// кнопка, при нажатии на которую выполняется метод Ранга
private void button2_Click (object sender, EventArgs e)
{
float [] summoz= new float [6];
float[] srzo = new float[6];
float[] doa = new float[6];
int i1 = 0, i2 = 0; float summ = 0;
// поиск суммы по столбцам
for (int j = 1; j < dataGridView3. ColumnCount; j++)
{
for (int i = 0; i < dataGridView3. RowCount; i++)
{
summoz[i1] += Convert. ToInt32 (dataGridView3 [j, i].Value);
}
i1++;
}
// нахождении суммы все альтернатив
for (int k1 = 0; k1 < summoz. Length; k1++)
{
summ += summoz[k1];
}
// нахождение веса альтернатив
for (int i = 0; i < summoz. Length; i++)
{
ves[i] = summoz[i] / summ;
}
// поиск наиболее предпочтительной альтернативы
float max = ves[0]; int n = 0;
for (int i = 1; i < ves. Length; i++)
{
if (ves[i]>max)
max = ves[i];
n=i;
}
// нахождение средних значений для расчёта дисперсий
for (int k1 = 0; k1 < summoz. Length; k1++)
{
srzo[k1] = summoz[k1] / 2;
}
// расчёт дисперсий экспертов
for (int i = 0; i < dataGridView3. RowCount; i++)
{
for (int j = 1; j < dataGridView3. ColumnCount; j++)
{
doe[i] += Convert. ToSingle (1.0 / 5 * Math. Pow((Convert. ToSingle (dataGridView3 [j, i].Value) - srzo[i2]), 2));
i2++;
}
i2 = 0;
}
// расчёт дисперсий альтернатив
for (int j = 1; j < srzo. Length; j++)
{
for (int i = 0; i < dataGridView3. RowCount; i++)
{
doa[i2] += Convert. ToSingle (Math. Pow((Convert. ToSingle (dataGridView3 [j, i].Value) - srzo[i2]), 2));
i2++;
}
i2 = 0;
}
// Вызов метода для проверки на соответствие
Proverka();
label6. Visible = true;
listBox2. Visible = true;
int k2 = 1;
// вывод полученных результатов
for (int k = 0; k < summoz. Length; k++)
{listBox2. Items. Add (dataGridView3. Columns[k2].HeaderCell. Value +»:» + ves[k].ToString());
k2++;
}
listBox2. Items. Add («Наиболее предпочительной является альтернатива:» + dataGridView3. Columns[n].HeaderCell. Value);
}
// метод осуществляющий проверку на соответствие введённых оценок
public void Proverka()
{
for (int i = 0; i < doe. Length-1; i++)
{ // нахождение разноси между дисперсиями
if (Math. Abs (doe[i] - doe [i + 1]) < 0.9)
{
object ob = new object();
EventArgs ev = new EventArgs();
MessageBox. Show («Оценки не согласованы!!!! Введте другие!»);
button4_Click (ob, ev);
}
}
}
// преобразование данных по шкале Харрингтона для первой группы таблиц
public void Preobrazovanie (DataGridView dgv)
{
k = 1;
for (i = 0; i < dgv. RowCount; i++)
{
for (j = 0; j < dgv. ColumnCount; j++)
{
if (i == 0) {a1 [i, j] = k; k++;}
else
{
if (Convert. ToString (dgv[j, i].Value) == «Да») a1 [i, j] = 0.67;
if (Convert. ToString (dgv[j, i].Value) == «Нет») a1 [i, j] = 0.33;
if (Convert. ToString (dgv[j, i].Value) == «Очень плохо») a1 [i, j] = 0;
if (Convert. ToString (dgv[j, i].Value) == «Плохо») a1 [i, j] = 0.2;
if (Convert. ToString (dgv[j, i].Value) == «Удовлетворительно») a1 [i, j] = 0.36;
if (Convert. ToString (dgv[j, i].Value) == «Хорошо») a1 [i, j] = 0.63;
if (Convert. ToString (dgv[j, i].Value) == «Очень хорошо») a1 [i, j] = 0.8;
if (Convert. ToString (dgv[j, i].Value) == «Отлично») a1 [i, j] = 1;
if (i == 2) a1 [i, j] = Convert. ToDouble (dgv[j, i].Value);
}
}
}
}
// аналогичен методу Preobrazovanie, но для второй группы таблиц
public void Preobrazovanie1 (DataGridView dgv)
{
for (i = 1; i < dgv. RowCount; i++)
{
for (j = 0; j < dgv. ColumnCount; j++)
{
if (Convert. ToString (dgv[j, i].Value) == «Да») dgv [j, i].Value = 0.67;
if (Convert. ToString (dgv[j, i].Value) == «Нет») dgv [j, i].Value = 0.33;
if (Convert. ToString (dgv[j, i].Value) == «Очень плохо») dgv [j, i].Value = 0;
if (Convert. ToString (dgv[j, i].Value) == «Плохо») dgv [j, i].Value = 0.2;
if (Convert. ToString (dgv[j, i].Value) == «Удовлетворительно») dgv [j, i].Value = 0.36;
if (Convert. ToString (dgv[j, i].Value) == «Хорошо») dgv [j, i].Value = 0.63;
if (Convert. ToString (dgv[j, i].Value) == «Очень хорошо») dgv [j, i].Value = 0.8;
if (Convert. ToString (dgv[j, i].Value) == «Отлично») dgv [j, i].Value = 1;
}
}
}
// кнопка для ввода данных(оценок) к методу Ранга
private void button4_Click (object sender, EventArgs e)
{
listBox1. Visible = false;
dataGridView3. RowCount = 2;
dataGridView3. Visible = true;
dataGridView1. Visible = false;
dataGridView2. Visible = false;
dataGridView4. Visible = false;
dataGridView5. Visible = false;
label4. Visible = false;
dataGridView3 [0, 0].Value = «1»;
dataGridView3 [0, 1].Value = «2»;
}
// кнопка, при нажати на которую реализуется метод Паретто
private void button5_Click (object sender, EventArgs e)
{
label6. Visible = false;
listBox2. Visible = false;
k = 1; int j2 = 0;
// запись данных из таблиц в массивы a и b
for (i = 0; i < dataGridView1. RowCount; i++)
{
for (j = 1; j < dataGridView1. ColumnCount; j++)
{
if (i == 0) {a [i, j2] = k; k++; j2++;}
}
}
j2 =0; int i2 = 1;
for (i = 0; i < dataGridView1. RowCount; i++)
{
for (j = 1; j < dataGridView1. ColumnCount; j++)
{
a [i2, j2] = Convert. ToDouble (dataGridView1 [j, i].Value); j2++;
}
j2 = 0;
i2++;
}
k1 = 1; j2 = 0;
for (i = 0; i < dataGridView2. RowCount; i++)
{
for (j = 1; j < dataGridView2. ColumnCount; j++)
{
if (i == 0) {b [i, j2] = k1; k1++; j2++;}
}
}
i2 = 1; j2 = 0;
for (i = 0; i < dataGridView2. RowCount; i++)
{
for (j = 1; j < dataGridView2. ColumnCount; j++)
{
b [i2, j2] = Convert. ToDouble (dataGridView2 [j, i].Value); j2++;
}
j2 = 0;
i2++;
}
// заполнение тпблиц исходными данными
label5. Visible = true;
dataGridView4. Visible=true;
dataGridView5. Visible = true;
richTextBox1. Visible = true;
dataGridView4. RowCount = 4;
dataGridView4. ColumnCount = 5;
dataGridView4 [0, 0].Value = «ST11»;
dataGridView4 [1, 0].Value = «ST12»;
dataGridView4 [2, 0].Value = «ST13»;
dataGridView4 [3, 0].Value = «ST14»;
dataGridView4 [4, 0].Value = «ST15»;
dataGridView4 [0, 1].Value = «Да»;
dataGridView4 [1, 1].Value = «Нет»;
dataGridView4 [2, 1].Value = «Да»;
dataGridView4 [3, 1].Value = «Да»;
dataGridView4 [4, 1].Value = «Нет»;
dataGridView4 [0, 2].Value = 150000;
dataGridView4 [1, 2].Value = 70000;
dataGridView4 [2, 2].Value = 70000;
...Подобные документы
Классификация методов оптимизации. Обзор и выбор языка C#. Алгоритмический анализ задачи, описание алгоритма решения. Графические схемы разработанных алгоритмов. Разработка приложения и результаты тестовых испытаний. Интерфейс пользователя, тестирование.
курсовая работа [1,6 M], добавлен 08.03.2016Очистка и оптимизация системы на примере CCleaner. Современные операционные системы. Особенности программы CCleaner. Характеристика процесса оптимизации. Скорость работы приложения. Расширенные параметры программы. Надежное затирание данных диска.
отчет по практике [1,9 M], добавлен 16.04.2014Описание предметной области и структуры базы данных. Экономическая сущность информационных задач, построение диаграмм проекта и обособление проектных решений. Технологическое обеспечение и внешний вид программы, описание её работы и программный код.
курсовая работа [910,1 K], добавлен 03.04.2015Определения и классификация математических моделей. Возможности системы, распечатка документа MathCAD. Описание математической модели. Анализ исходных данных и результатов. Графическая схема алгоритма и ее описание. Алгоритмический анализ задачи.
курсовая работа [621,4 K], добавлен 21.01.2013Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы.
курсовая работа [1,2 M], добавлен 16.08.2012Понятия оптимизации проектных решений. Нахождение максимума (минимума) линейной целевой функции. Схема алгоритма метода Саати для вычисления весов критериев. Создание приложения, позволяющего производить однокритериальную и многокритериальную оптимизацию.
курсовая работа [781,9 K], добавлен 23.02.2016Внедрение автоматизации при подборе кадров и персонала. Подготовка и анализ исходных данных для проектирования. Правила валидации данных по умолчанию, верификация проектных решений. Мероприятия по охране труда, обеспечению безопасности и эргономике.
дипломная работа [1,6 M], добавлен 24.10.2009Назначение базы данных для обеспечения работы автобусного парка. Основные возможности админпанели. Выполняемые базой данных и приложением функции. Инфологическое моделирование данных. Описание разработанного web-приложения. Проектирование базы данных.
курсовая работа [2,2 M], добавлен 01.02.2013Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.
курсовая работа [1,0 M], добавлен 16.12.2012Общая характеристика и структурная схема приложения, требования к нему и функциональные особенности, сферы практического применения. Обоснование выбора языка программирования. Описание интерфейса и инструкция пользователя. Проведение листинга программы.
дипломная работа [1,0 M], добавлен 10.07.2017Описание процесса разработки информационной системы. Анализ тестирования и выявления ошибок разработанного модуля. Обследование объекта автоматизации и оформление документации по эксплуатации программы. Сущность экспортирования и импортирования данных.
отчет по практике [1,3 M], добавлен 20.05.2017Разработка клиентского приложения для работы с базой данных (БД) санатория. Классификации БД и приложений для работы с ними. Алгоритмическое и программное конструирование БД. Описание объектов предметной области, их атрибутов и связей между ними.
курсовая работа [1,9 M], добавлен 08.01.2014Реализация алгоритма верификации данных; разработка программы обнаружения аномальных данных в одномерных выборках. Характеристика методов D-статистики, Титьена-Мура, диаграммы "Ящик с усами"; обеспечение эффективности оценок статистических данных.
курсовая работа [2,5 M], добавлен 27.05.2013Общее описание и особенности использования программы, предназначенной для определения нечетных чисел, находящихся в массиве чисел. Листинг и методы оптимизации данной компьютерной программы. Источники оптимизации кода, описание выполненных команд.
лабораторная работа [17,4 K], добавлен 25.03.2011Описание приложения в виде пользовательского сценария. Проектирование обмена сообщениями между модулями. Разработка общей структуры приложения. Обзор структуры файлов. Разработка получения данных со страницы. Характеристика результата работы программы.
дипломная работа [1,5 M], добавлен 22.03.2018Описание использованных структур данных и разработка программы, обеспечивающей сжатие данных по алгоритму LZ77 с пошаговой визуализацией. Описание процедур, функций, структуры приложения и интерфейса пользователя. Тест и анализ работы алгоритма LZ77.
курсовая работа [537,9 K], добавлен 28.06.2011Анализ входной информации необходимой для решения задачи. Разработка исходных данных контрольного примера создания базы данных. Описание технологии и алгоритмов решения задачи и их математических реализаций. Разработка диалогов приложения пользователя.
курсовая работа [1,3 M], добавлен 26.04.2015Анализ алгоритмов, оценка параметров алгоритма (эффективности, сложности, правильности). Комплексный анализ эффективности алгоритма на основе комплексной оценки ресурсов формальной системы. Верификация при коллективной разработке программных систем.
презентация [234,9 K], добавлен 22.10.2013Понятие линейного программирования и оптимизации. Основы работы в системе MathCAD. Интерфейс пользователя, входной язык и тип данных. Этапы компьютерного математического моделирования. Пример решения оптимизационной задачи средствами программы MathCAD.
курсовая работа [352,8 K], добавлен 16.10.2011Методика разработки и листинг программы для управления динамиком системного блока, обеспечения установки частоты и длительности формируемых сигналов. Алгоритм и этапы работы проектируемого приложения, анализ полученных результатов. Пример его работы.
лабораторная работа [79,0 K], добавлен 17.12.2015