Вы находитесь на странице: 1из 87

ОГЛАВЛЕНИЕ

Перечень условных обозначений, символов, сокращений и терминов.............4


ВВЕДЕНИЕ..............................................................................................................5
РАЗДЕЛ 1. ЛИНЕЙНАЯ ОПТИМИЗАЦИЯ.........................................................7
1.1. Линейное программирование......................................................................7
1.2. Многокритериальная оптимизация..........................................................12
РАЗДЕЛ 2. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ МНОГОКРИТЕРИАЛЬНОЙ
ОПТИМИЗАЦИИ..................................................................................................19
2.1. Метод последовательных уступок............................................................20
2.2. Метод главного критерия..........................................................................26
2.3. Метод свертывания критериев..................................................................31
РАЗДЕЛ 3. ПРИМЕНЕНИЕ MATLAB И EXCEL ДЛЯ РЕШЕНИЯ ЗАДАЧ
МНОГОКРИТЕРИАЛЬНОЙ ОПТИМИЗАЦИИ................................................39
3.1. Пакет MATLAB..........................................................................................39
3.1.2. Toolboxes и его виды...........................................................................42
3.1.3. Реализация генетического алгоритма в пакете MATLAB..............46
3.2. Решения экономическую модель с помощью инструмента MATLAB.55
3.3. Решения экономическую задачу многокритериальной оптимизации с
помощью MS Excel............................................................................................64
3.3.1. Метод последовательных уступок.....................................................65
3.3.2. Метод главного критерия...................................................................69
3.3.3. Метод свертка критериев....................................................................73
3.4. Анализ полученных результатов..............................................................77
ЗАКЛЮЧЕНИЕ.....................................................................................................80
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.............................................81
ПРИЛОЖЕНИЯ.....................................................................................................88
4

1 Перечень условных обозначений, символов, сокращений и терминов

ГА Генетический алгоритм
ЛП Линейное программирование
МО Многокритериальная оптимизация
ЭВМ Электронно-вычислительные машины
fitnessfun Fitness function (функция полезности)
fun Векторная функция векторного аргумента
gamultiobj Multiobjective optimization using Genetic Algorithm
lb lower (нижние границы)
MATLAB Matrix Laboratory
max Максимизация
min Минимизация
MS Excel Microsoft Excel
ub upper (верхние границы)

2 ВВЕДЕНИЕ

Известно, что многие экономические объекты при формализации с


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

формальном уровне состоят в минимизации или максимизации целевой


функции при линейных ограничениях.

Актуальность темы дипломной работы состоит в том, что любая


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

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


продукции на основе математико-экономическую модель косметической
предприятии Nature Republic.

Объект исследования – оптимизация производство по выпуску


продукции на предприятии.

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


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

Для достижения цели дипломной работы поставлены следующие задачи:

- рассмотреть основные понятия, принципы, структуру и особенности


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

- исследовать систему производства на исследуемом предприятии;

- оптимизировать задачу о производстве на основе изученных методов и


с помощью инструментального пакета MATLAB;

- на основе данных анализа, разработать практические рекомендации по


оптимизации производства предприятии Nature Republic.

Информационной базой исследования явились положения и концепции,


представленные в работах отечественных и зарубежных авторов.
6

Исследование проводилось на основе системно-функционального,


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

Данная дипломная работа посвящена изучению методов оптимизации и


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

3 РАЗДЕЛ 1. ЛИНЕЙНАЯ ОПТИМИЗАЦИЯ

Многие проблемы, возникающие в экономических исследованиях,


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

линейных алгебраических уравнений или неравенств и среди всех


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

Традиционный подход исследования операций предполагается наличие


единственного критерия оценки качества решения. Однако, расширение
области применения методов исследования операций привело к тому, что
аналитики стали сталкиваться с задачами, в которых существенным
оказывается наличие нескольких критериев оценки качества решения. Такие
задачи носят название многокритериальной задачей оптимизации [36,51].

3.1 1.1. Линейное программирование

В настоящее время оптимизация практически неотъемлемая часть в


науке, технике, экономике и в любой другой области человеческой
деятельности.

Оптимизация – целенаправленная деятельность, заключающаяся в


получении наилучших результатов при соответствующих условиях [44,46].

Поиски оптимальных решений привели к созданию специальных


математических методов и уже в XVIII веке были заложены математические
основы оптимизации (вариационное исчисление, численные методы и др.)
[45,48]. Однако до второй половины XX века методы оптимизации во многих
областях науки и техники применялись очень редко, поскольку практическое
использование математических методов оптимизации требовало огромной
вычислительной работы, которую без ЭВМ реализовать было крайне трудно,
а в ряде случаев – невозможно [46].
8

В зависимости от своей постановки, любая из задач оптимизации может


решаться различными методами, и наоборот – любой метод может
применяться для решения многих задач.

Методы оптимизации могут быть:

1) скалярными (оптимизация проводится по одному критерию);

2) векторными (оптимизация проводится по многим критериям);

3) поисковыми (включают методы регулярного и методы случайного


поиска), аналитическими (методы дифференциального исчисления, методы
вариационного исчисления и др.);

4) вычислительными (основаны на математическом программировании,


которое может быть линейным, нелинейным, дискретным, динамическим,
стохастическим, эвристическим и т.д.);

5) теоретико-вероятностными, теоретико-игровыми и др. [45,46,48].

Наиболее часто используемым методом оптимизации является линейное


программирование. Линейное программирование (ЛП) – один из первых и
наиболее подробно изученных разделов математического программирования
[4,29].

Временем рождения линейного программирования принято считать


1939г., когда была напечатана брошюра Леонида Витальевича Канторовича
«Математические методы организации и планирования производства».
Поскольку методы, изложенные Л.В. Канторовичем, были мало пригодны
для ручного подсчета, а быстродействующих вычислительных машин в то
время не существовало, работа Л.В. Канторовича осталась почти
незамеченной [15,18].

В 50-е гг. ХХ века независимо от Канторовича метод решения задачи


линейного программирования (так называемый симплекс-метод) был развит
9

американским математиком Дж. Данцигом, который в 1951 г. и ввел термин


«линейное программирование».

Можно сказать, свое второе рождение линейное программирование


получило с появлением электронно-вычислительных машин (ЭВМ). В то
время началось всеобщее увлечение линейным программированием,
вызвавшее в свою очередь развитие других разделов математического
программирования [29,32].

Слово «программирование» объясняют тем, что неизвестные


переменные, которые отыскиваются в процессе решения задачи, обычно
определяют программу (план) действий некоторого объекта, например,
промышленного предприятия. Слово «линейное» отражает линейную
зависимость между переменными [12,18].

Линейное программирование находит широкое применение в различных


областях практической деятельности: при организации работы транспортных
систем, в управлении промышленными предприятиями, при составлении
проектов сложных систем [4,17]. Многие распространённые классы задач
системного анализа, в частности, задачи оптимального планирования,
распределения различных ресурсов, управления запасами, календарного
планирования, межотраслевого баланса укладываются в рамки моделей
линейного программирования. Несмотря на различные области приложения,
данные задачи имеют единую постановку [2,12,18].

Линейное программирование представляет собой наиболее часто


используемый метод оптимизации. К числу задач линейного
программирования можно отнести задачи:

1) рационального использования сырья и материалов, задачи


оптимизации раскроя;

2) оптимизации производственной программы предприятий;


10

3) оптимального размещения и концентрации производства;

4) составления оптимального плана перевозок, работы транспорта;

5) управления производственными запасами и многие другие,


принадлежащие сфере оптимального планирования [4,12,18,29].

Так, по оценкам американских экспертов, около 75% от общего числа


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

В настоящее время линейное программирование является одним из


наиболее употребительных аппаратов математической теории оптимального
принятия решения [32].

Стандартная задача линейного программирования

Основная задача линейного программирования выглядит следующим


образом [47].

Дана система m линейных уравнений с n неизвестными:

a11 x 1 +a12 x 2 +⋯+ a1 n x n ≤ b1 ,

{a21 x 1 +a22 x2 +⋯ +a2 n x n ≤ b2 ,


⋮ ⋮ ⋮⋮
am 1 x1 +a m 2 x 2 +⋯+ amn x n ≤ bm ,
(1.1)

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

x 1 ≥ 0 , x2 ≥ 0 , … , x n ≥0 (1.2)

и линейная функция от тех же переменных

Z=c 1 x 1 +c 2 x 2 +…+ cn x n (1.3)


11

называемая целевой функцией.

Требуется среди всех решений системы уравнений в (1.1) найти

такое неотрицательное решение, при котором целевая функция в формуле


(1.3) принимает наибольшее возможное значение.

Любое неотрицательное решение системы уравнений в (1.1) называют


допустимым решением, а то допустимое решение, при котором целевая
функция в (1.3) принимает наименьшее значение, называют оптимальным
решением задачи линейного программирования в формулах (1.1)-(1.3).
Кратко задачу формулируют так: найти вектор x 1 , x 2 , … , x n,

минимизирующий целевую функцию в (1.3) при линейных ограничениях в


(1.1) и (1.2).

Если в конкретной задаче будет необходимо найти наименьшее


возможное значение некоторой линейной функции, как в формуле (1.3) при
линейных ограничениях, то для приведения такой задачи к принятому нами
виду основной задачи линейного программирования достаточно линейную
функцию Z заменить противоположной ей функцией

− Z=− c 1 x 1 − c 2 x 2 − … −c n xn (1.4)

так как если функция –Z принимает наибольшее значение при


некоторых значениях переменных, то при тех же значениях переменных
функция Z примет наименьшее возможное значение [33,47,48].

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

Методы решения задач линейного программирования с одним


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

характеризуется больше чем одним критерием. Можно понять, что задачи


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

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


что в реальной постановке эти задачи являются многокритериальными. Так,
часто встречающееся выражение «достичь максимального эффекта при
наименьших затратах» уже означает принятие решения при двух критериях.
Оценка деятельности предприятий и планирования как системы принятия
решений производится на основе более десятка критериев: выполнение плана
производства по объему, по номенклатуре, плана реализации, прибыли по
показателям рентабельности, производительности труда и т.д. [51].

Ранее, при исследовании проблемы многокритериальности часто все


критерии, кроме одного, выбранного доминирующим, принимались в
качестве ограничений, оптимизация проводилась по доминирующему
критерию [36]. Такой подход к решению практических задач значительно
снижает эффективности принимаемых решений. Здесь требуется найти точку
области допустимых решений, которая минимизирует или максимизирует все
эти критерии. В связи с этим, исследователи начали развивать имеющиеся
теоритические и практические результаты методов решения задач с одним
критерием таким образом, чтобы они были применимы к исследованию
многокритериальных задач линейного программирования [51].

Ввиду этого в теории многокритериальной оптимизации понятие


оптимальности получает различные толкования, и поэтому сама теория
содержит три основных направления:
13

1. Разработка концепции оптимальности.

2. Доказательство существования решения, оптимального в


соответствующем смысле.

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

Обозначим i-й частный критерий через , а область допустимых


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

z1 ( x )

( )
Z ( x )= z 2 ( x ) → max , при x ∈ Q

zm( x )
(1.5)

Если так смотреть, то по существу многокритериальная задача


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

Например, выбирая работу, человек, как правило, руководствуется


несколькими критериями. Допустим, кому-то хочется, чтобы одновременно
выполнялись такие условия:

- заработная плата была как можно выше;

- условия работы были как можно комфортнее;

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


14

Другим примером задачи с многими критериями является модернизация


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

Еще один пример – выбор инвестиционного решения, когда хочется


получить максимальный доход (или доходность) при наименьшем риске [51].

Примеры многокритериальности в экономике

Как ранее говорилось, в задачах математического программирования с


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

Ниже будет показано, насколько широк диапазон проблем, которые


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

1. Планирование производства:
– mах – суммарный чистый доход, минимальный чистый доход за любой
период;
– min – число невыполненных заказов, сверхурочное время, запасы готовой
продукции.

2. Выбор портфеля ценных бумаг:


– mах – доход, дивиденды;
– min – риск, отклонения от желаемого уровня разнообразия бумаг.

3. Составление сметы капиталовложений:


– mах – наличие средств, инвестиции в проекты, связанные с охраной
15

окружающей среды, инвестиция в проекты в заданном регионе, инвестиции в


проекты по заданной товарной специализации;

– min – спрос на капитальные вложения, ежегодные эксплуатационные


расходы.

4. Управление лесным хозяйством:


– max – устойчивый урожай древесины, человеко-дни отдыха в лесу,
человеко-дни охоты в лесу, ареал распространения диких животных, число
месяцев выпаса домашних животных;
– min – превышения бюджета.

5. Управление попусками водохранилищ:


– max – выгоды от рекреации на водохранилище № 1, выгоды от
зарегулирования стока ниже водохранилища № 1, количество энергии,
вырабатываемой в бассейне реки, выгоды от рекреации на водохранилище №
2, прибыль от орошения земель ниже водохранилища № 2;

– min – недопоставки воды на коммунальные нужды в бассейне реки.

6. Формирование ревизионной службы в фирме:


– max – доход, время, отведенное на профессиональный рост
– min – рост численности персонала службы, уменьшение численности
персонала службы, избыточные сверхурочные, недоиспользование
квалификации кадров;

7. Транспортировка:
– max – производство по заданной технологии;

– min – стоимость, среднее время доставки грузов приоритетным клиентам,


расход топлива.

Конечно, решения, которое одновременно удовлетворяло бы всем


противоречивым требованиям, как правило, не существует. Но математика
16

может помочь и при решении таких задач. Помощь эта состоит не в


нахождении несуществующего решения, одновременно обращающего все
критерии в максимум, а в отбрасывании заведомо плохих решений [28,37,51].

Оптимизация по Парето

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


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

Согласно его концепции, общество находится в состоянии общего


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

При решении большого числа практических задач приходится


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

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


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

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


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

Проиллюстрируем это на примере, где нужно выбрать стратегию


развития предприятия, критерии - ожидаемая прибыль в год (в смысле мат.
ожидания из теории вероятностей), надёжность стратегии (вероятность того,
что будет приемлемая для нас прибыль, хоть сколько-нибудь солидный
доход) [37]. Допустим, у нас есть 5 стратегий:
18

Рис. 1.2. График оптимального плана развития предприятий

Стратегия 2 в среднем даёт больше прибыли, чем стратегия 1, при той


же надёжности. Стало быть, стратегия 1 не может быть лучшей. Стратегия 3
по ожидаемой прибыли равноценна стратегии 2, но надёжнее. Стало быть,
стратегия 2 тоже невыгодна. Стратегия 3 прибыльнее стратегии 4 при той же
надёжность, то есть стратегия 4 тоже неоправданно. Остаются только
стратегии 3 и 5. По одному критерию превосходит одна, по другому - другая.

Операции, оптимальные по Парето, не обязательно являются «самыми


лучшими» - эти операции не являются худшими. Чтобы выбрать конкретное
решение из Парето-оптимального множества, нужны дополнительные
данные [21]. Выделение множества Парето ещё не даёт ответа на вопрос,
какое решение оптимальное, но оно значительно упрощает применение
алгоритмов, работающих с дополнительной информацией, поскольку сужает
множество возможных вариантов [37,51].

В настоящее время линейная оптимизация является одним из наиболее


употребительных аппаратов математической теории оптимального принятия
решения.
19

4 РАЗДЕЛ 2. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ


МНОГОКРИТЕРИАЛЬНОЙ ОПТИМИЗАЦИИ

Чтобы получить более полную характеристику достоинств и


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

С привычной точки зрения задача со многими критериями решения не


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

Перечислим некоторые из подходов к решению задач


многокритериальной оптимизации:

1. Метод уступок – лицо, принимающее решения подводится к выбору


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

2. Метод идеальной точки – в области допустимых значений


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

3. Метод свертывая – лицо, принимающее решения сводит


многокритериальную задачу к задаче с одним критерием.

Ниже, рассмотрим подробно этих методов решения задачи


многокритериальной оптимизации [33,46,48,51].
20

4.1 2.1. Метод последовательных уступок

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


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

Вначале определяется максимальное значение Z1 , первого по важности
критерия в области допустимых решений, решив задачу Z1 ( x ) → max , при x ∈ Q.

Затем назначается, исходя из практических соображений и принятой


точности, величина допустимого отклонения δ 1> 0 (экономически
оправданной уступки) критерия Z1 и отыскивается максимальное значение
второго критерия Z2при условии, что значение первого должно отклоняться
от максимального не более чем на величину допустимой уступки, т.е.
решается задача

Z2 ( x ) → max ,

Z1 ( x ) ≥ Z ❑
1 −δ 1 ,

при x ∈ Q.

Снова назначается величина уступки δ 2> 0 по второму критерию, которая


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

Существенным недостатком метода последовательных уступок является


то, что решение, полученное этим методом, может оказаться неоптимальным
по Парето [37].
21

Рассмотрим пример, математическая модель трехкритериальной задачи


имеет вид [51]:

Z 1=2 x 1 + x 2 − 3 x 3 →max ;
Z 2=x 1 +3 x 2 −2 x 3 → min ;
Z3 =− x 1+ 2 x 2 +4 x 3 → max;

x 1 +3 x 2+2 x 3 ≥ 1 ;

{2 x 1 − x 2+ x 3 ≤16 ;
x 1 +2 x 2 ≤24 ;

x n ≥ 0.

Уступка по первому критерию δ 1=4 , а по второму δ 2=5.

Решение:

Открываем электронную книгу Excel и, как и для решения


однокритериальной задачи определяем ячейки под переменные x 1 , x 2 , x 3. Для
этого в ячейку А2 вводим подпись «Переменные», а соседние три ячейки В2,
С2 и D2 вводим значения переменных. Это могут быть произвольные числа,
например единицы или нули, далее они будут оптимизироваться.

рис. 2.1. Определение переменных значений

В третьей строке задаем целевые функции. В А3 вводим подпись


«Целевые», а в В3 формулой «=2*B2+C2-3*D2» задаем первую целевую
функцию Z1 =2 x 1 + x 2 −3 x 3 → max . Аналогично в С3 и D3 вводим вторую
Z2 =x1 +3 x 2 − 2 x 3 → min и третью Z3 =− x 1+ 2 x 2 +4 x 3 → max целевую функцию, вводя

в С3 «=B2+3*C2-2*D2», а в D3 «=-B2+2*C2+4*D2».
22

рис.2.2. Определение целевых значений

Ячейка А5 будем называть «Ограничения».

x 1 +3 x 2+2 x 3 ≥ 1 ;

{2 x 1 − x 2+ x 3 ≤16 ;
x 1 +2 x 2 ≤24 ;

Левые части ограничений распишем от B5:D7, правые части записываем


в диапазон F5:F7. Вводим в Е5 формулу «=B5*$B$2+C5*$C$2+D5*$D$2»,
номера столбцов и номера строк ряда переменных зафиксировано, далее
воспользуемся автозаполнением, чтобы заполнить ячейки Е6 и Е7.

рис.2.3. Определение ограничений

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


решения» в меню «Данные».

На первом этапе оптимизируем первую целевую функцию. После


открытия окна «Поиск решения» в поле «Оптимизировать целевую
функцию» ставим курсор и делаем ссылку на ячейку «В3», щелкая по ней
мышью. В окне появится $B$3. В связи с тем, что целевая функция
максимизируется, далее нужно проверить, что флажок ниже поля стоит
напротив надписи «Максимум».
23

После ставим курсор в поле «Изменяя ячейки переменных» и обводим


ячейки с переменными В2, С2 и D2, выделяя ячейки с переменными. В поле
появиться $B$2:$D$2.

В нижней части окна находится поле «Ограничения». Для того, чтобы


ввести ограничения, нажимаем кнопку «Добавить», откроется окно
«Добавление ограничения». В левом поле «Ссылка на ячейки» вводят ссылку
на левую часть первого ограничения – ячейку «Е5», в центральном окне
определяем знак «≥» и в правом «Ограничения» выбираем соответствующую
правую часть первого ограничения – «F5». Нажимаем «ОК», видим, что
ограничение появилось в окне. Нажимаем вновь «Добавить», вводим «E6» «≤
» и «F6». Вновь нажимаем «Добавить», вводим «E7» «≤» и «F7».

Для ввода дополнительных ограничений xn ≥ 0 вновь нажимаем


«Добавить», ставим курсор в левое поле и обводим ячейки В2, С2 и D2
(результат $B$2:$D$2) в среднем окне ставим «≥» и в правом число 0.

рис. 2.4. Параметры поиска решения


24

Далее выбираем метод решения «Поиск решения линейных задач


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

Выбираем «Сохранить найденное решение» и «ОК» видим результат. В


ячейках В2, С2 и D2 видны значения переменных x 1 , x 2 , x 3 соответствующие
оптимальному решению: 11,2; 6,4 и 0. В ячейки В3 – значение целевой
функции 28,8.

рис.2.5. Результат полученного решения

На втором этапе оптимизируется вторая целевая функция. Однако,


первую, в соответствие с методом последовательных уступок, можно
ухудшить первый критерий на величину не более, чем δ 1=4 . По этой
причине, на втором шаге, значения в ячейке В3 (где хранится первая целевая
функция, которая максимизируется) может быть значение, не меньшее, чем
24,8 (=28,8-4). Для удобства, можно записать «Уступок» в сторонке.

Вызываем надстройку «Поиск решения», видно, что все прежние данные


остались введенными. Меняем ссылку на целевую функцию. Ставим курсор в
поле «Оптимизировать целевую функцию» и щелкаем по ячейке С3, в
которой находится ссылка на вторую целевую функцию. Так, как вторая
целевая минимизируется, то ставим флажок в поле напротив надписи
«Минимум». Вводим дополнительное ограничение, связанное с уступкой по
первому критерию. Переводим курсор в поле «Ограничения» и нажимаем
кнопку «Добавить», правее поля. В появившемся окне «Добавление
ограничения» в трех окнах (слева на право) вводим данные «В3», «≥», «С9».
25

Результат – переменные x 1 , x 2 , x 3 равны 10,2; 4,4; 0. Вторая целевая


функция равна 23,4 (ячейка С3). Первая равна своему минимальному
значению 24,8 (ячейка В3).

рис.2.6. Определение уступка

На третьем этапе делаем уступку по второму критерию. Величина


уступки равна δ 2=5. Так, как вторая функция минимизируется, то ее значение
не должно превышать 23,4+5=28,4. Вызываем надстройку «Поиск решения».
Меняем ссылку на целевую функцию. Ставим курсор в поле
«Оптимизировать целевую функцию» и щелкаем по ячейке D3, в которой
находится ссылка на третью целевую функцию. Так, как третья целевая
максимизируется, то ставим флажок в поле напротив надписи «Максимум».
Вводим дополнительное ограничение, связанное с уступкой по второму
критерию. Переводим курсор в поле «Ограничения» и нажимаем кнопку
«Добавить». В появившемся окне «Добавление ограничения», вводим данные
«С3», «≤», «С10».

Результат – переменные x 1 , x 2 , x 3 равны 10,76; 6,62; 1,11. Целевые


функции равны, соответственно, 24,8; 28,4 и 6,93. Это окончательный ответ.
Все дополнительные условия соблюдены.
26

рис.2.7. Окончательный результат решения по методу


последовательного уступка

4.2 2.2. Метод главного критерия

Этот метод предполагает сведения задачи многокритериальной


оптимизации к однокритериальной оптимизации . Для этого выбираем один
из рассматриваемых критериев в качестве главного критерия, а остальные
преобразовываются в ограничения [21].

В качестве главного критерия в различных областях часто выбирают:

1. Себестоимость

2. Объем производства

3. Производительность

4. Ресурсоемкость (металлоемкость, энергоемкость,...)

5. Сроки выполнения работы и др.

Задача оптимизации в этом случае, можно сформулировать следующим


образом. Вначале нужно задать главный критерий f i ( X ) при i=1 , … , n. После
этого, для остальных критериев вводится система контрольных показателей.
Т.е. для каждого критерия нужно задать, что он не должен превышать или
быть меньшим, чем некоторое заданное величина . После этого решается
27

задача однокритериальной условной оптимизации, где f i ( X ) стремится к


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

f 1 ( x ) →max , x ∈ X
{
f i ≥ t i , при=2 , … , n
(2.6)

При этом все значении Х должны принадлежать рассматриваемому


допустимому множеству. Наиболее часто этот способ употребляется в
инженерной практике.

Преимущества метода главного критерия относятся простота


интерпретации результатов, отсутствия высоких требований к
математической подготовке экспертов, программному обеспечению и
вычислительным средствам [51]. После того, как мы сведем задачу
многокритериальной оптимизации к задаче однокритериальной оптимизации,
мы получаем возможность использовать стандартные программные средства,
в частности, такие как поиск решения в Microsoft Excel.

К основным недостатком метода относятся:

1) чрезмерное упрощение структуры задач;

2) не всегда можно выделить ярко выраженный главный критерий,


иногда это сделать трудно или вообще нельзя;

3) возможность потери эффекта совокупного влияния нескольких


второстепенных критериев;

4) ограничения для остальных критериев должны быть обоснованными,


а не взяты кое-как; 

5) возможность получения неэффективных решений;


28

6) даже если есть критерий, который гораздо важнее любого другого, то


не факт, что в сумме остальные критерии не окажутся весьма значимыми.
Особо ярко это может проявляться в задачах, где n велико [21,25,30,33,46].

В методе главного критерия, если задача имеет единственное


допустимое решение, то оно является эффективным по Парето. Если же
задача имеет более чем одно допустимое решение, то множество этих
решений содержит эффективные по Парето решения [37,45,48,51]. Но оно
также может содержать и слабо эффективные решения.

В связи с этим процедура поиска решения в общем случае включает два


этапа:

1) нахождение множества допустимых решений;

2) выбор некоторого эффективного по Парето решения.

На практике, критерии очень часто имеют различные масштабы и шкал


измерения, и тогда возникает необходимость нормировки этих критериев.

Нормировка критериев

Для приведения критериев к сопоставимому виду и обеспечения их


эквивалентности используется нормировка:

norm ( f ||n ( A i ) )
fn ( Ai ) =f n ( Ai ) − min (2.7)
max ( f ||n ( Ai ) ) − min ( f ||n ( A i ) )

при min ( f ||n ( Ai ) ) ≠ max ( f ||n ( Ai ) ) (2.8)

От значения критерия отнимаем минимальное значение этого критерия и


делим полученную разность на разность между максимальным и
минимальным значениями этого критерия [51]. Предполагается при этом, что
минимальное и максимальное значение не совпадают. При такой
нормировке, все нормированные значение f norm
n ( Ai ) будут лежать в интервале
[0;1].
29

Рассмотрим в качестве примера такую задачу, предполагается, что


необходимо организовать рекламную компанию по продвижению нового
товара. Для этого могут быть использованы альтернативы А1 , А 2 , А3 и А 4 .
Критерии оптимальности - минимум затрат на рекламу, максимум доли
рынка и объема продаж в течении заданного периода времени. f 1 - реклама, f 2
- доля рынка, f 3 - объем продаж.

Исходные данные записываются таким образом:

рис.2.8. Таблица исходных данных

Прежде чем решить задачу, нужно провести нормировку критериев. В


качестве главного критерия берем критерию f 1- затраты за рекламу, а
критерия f 2и f 3превратим в ограничения. Поэтому для нормировки мы можем
ограничиться только критериями f 2и f 3. Для второго критерия, минимальное
значение будет 15, а максимальное – 35. Для третьего соответственно 50 и 75.
В качестве примера, можно посчитать нормированное значение второго
критерия для первой альтернативы:

35 −15
f norm
2 ( A1 )= =1
35 −15

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


минимумы у второго и третьего критерия, затем воспользоваться
автозаполнением для быстроты работы. В результате получим вот такую
таблицу, значения критерия f 1 остаются такими же, как были. А значения
критериев f 2и f 3мы переводим в относительные величины.
30

рис.2.9. Нормировка критериев

Выберем такое ограничение, что частные критерия f 2и f 3должны быть не


меньше 0,7 умноженное на максимальное значение этих критериев:
f n >0,7 ∗max ( f ||n ).

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


критерия

Тогда этим ограничениям для критерия f 2 удовлетворяет альтернативы


А1 и А 4. А для критерия f 3 альтернативы А3 и А 4. Единственная альтернатива,

которая одновременно удовлетворяет ограничением по критерию f 2и по

критерию f 3это альтернатива А 4, которая в данном случае и выбирается в


качестве оптимального решения.

Для сравнения, возьмем в качестве ограничение 0,8 умноженное на


максимальное значение критериев f 2и f 3: f n >0,8 ∗max ( f ||n ). Новым
ограничением, для критерия f 2 удовлетворяет только альтернатива А1, а для
критерия f 3удовлетворяет альтернативы А3 и А 4. Мы не имеем ни одной
альтернативы, которая бы одновременно удовлетворяла ограничением по
31

критерию f 2и по критерию f 3. Таким образом, множество решения будет


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

4.3 2.3. Метод свертывания критериев

Метод свертывания критериев предполагает преобразование набора


имеющихся частных критериев в один суперкритерий.

F=φ ( f 1 , f 2 ,… , f n ) (2.8)

Т.е. мы получаем новый суперкритерий F, который является функций φ


от частных критериев f 1 , f 2 , … , f n. В общем случае, функцию φ называют
сверткой частных критериев [46,48,51].

К основным этапом свертывания относятся:

1. Обоснование допустимости свертки

При обосновании допустимости свертки, мы в первую очередь должны


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

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

- показатели ресурсоемкости;

- показатели оперативности.

Критерии, которые мы сворачиваем, должны относиться к одной и той


же группе, нельзя сворачивать критерии, которые относятся, например, один
из них к показателям оперативности, а другой к показателям
результативности. Т.е. для каждой группы свертывание частных критериев
следует выполнять отдельно. При нарушении этого принципа теряется смысл
критерия [30,33,51].
32

2. Нормировка критериев

Правила нормализации критериев, мы рассматривали ранее в


предыдущем разделе.

3. Учет приоритетов критериев

Учет приоритетов обычно задается некоторым векторам весовых


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

4. Построение функции свертки

Для свертывания критериев, используют такие основные типы функций:

- Аддитивные функции свертки;

- Мультипликативные;

- Агрегированные, а также могут быть другие варианты сверток.

Аддитивная свертка

Аддитивную свертку критериев можно рассматривать как реализацию


принципа справедливой компенсации абсолютных значений нормированных
частных критериев [25,30,51]. В этом случае, суперкритерий обычно строятся
как взвешенная сумма частных критериев
n
F ( A i )= ∑ α i f i ( A i ) (2.9)
i=1

Весовые коэффициенты α i выбираются такими, чтобы их сумма была


n
равна единицы ∑ αi=1. В методе равномерной оптимизации, который
i=1

является частным случаем аддитивной свертке, весовые коэффициенты


берутся равными друг другу α 1=α 2=…=α n. Иногда оказывается более
33

удобным другой подход к определению весовых коэффициентов α i, их


определяет соответствие с такой таблицей:

таблица 2.1.

Таблица относительной важности критериев

αi Относительная важность
1 Равная важность сравниваемых требований
3 Умеренное (слабое) превосходство одного над другим
5 Сильное (существенное) превосходство
7 Очевидное превосходство
8 Абсолютное (подавляющее) превосходство
2, 4, 6, 8 Промежуточные решения между двумя соседними оценками

Мультипликативная свертка

Мультипликативная свертка базируется на принципе справедливой


компенсации относительных изменений частных критериев. При этом,
n

суперкритерий имеет вид: F ( A i )=∏ f αi ( A i ), произведение частных критериев f i,


i

i=1

каждый из которых возведен в степень α i. При этом сумма весовых


n
коэффициентов α i должна быть равна единицы ∑ αi=1, а каждый из весовых
i=1

коэффициентов должен быть не отрицательной величиной α i ≥ 0.

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


нормировка частных критериев, и это является их преимуществом
[30,33,45,46,48].

Выбор между аддитивными и мультипликативными критериями


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

Агрегирование частных критериев используют также различные


варианты агрегирование. В частности, если компенсация значений одних
34

показателей эффективности другими недопустима, то используют функции


агрегирования вида:

F ( A i )=extr i ( α i f i ( A i ) ) (2.10)

Для каждого частного критерия, находится его нормированное значение


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

Если первые m показателей надо увеличить, а остальные – уменьшить,


то используют функцию агрегирования вида:
m

∏ f iα ( A i )
i

i=1
F ( A i )= p (2.11)
αi
∏ f ( Ai )
i
i=m+1

В числители находятся произведение тех критериев, значение которых


нам надо максимизировать, а в знаменателе находятся произведение тех
критериев, значение которых нам надо минимизировать. И поэтому мы
получаем новый критерий, который нам надо будет максимизировать
[1,6,9,48,51].

Методы свертывания критериев широко используются в решение задач


многокритериальной оптимизации. Однако они имеют также проблемы и
недостатки. В частности трудно обосновать выбор метода свертывания
критериев, а от выбора метода часто зависит получаемый результат. Другим
недостатком является трудность обоснование выбора весовых
коэффициентов, часто для этого привлекается эксперты, проводятся опросы,
потом обрабатываются полученные результаты, однако это требует много
времени и затраты других ресурсов. Еще одна проблема связана с тем, что
эти методы, как правила дает возможность компенсировать малые значения
одних критериев большими значениями других, что часто бывает
неприемлемо для конкретных решений [8,16,21,25].
35

Рассмотрим в качестве примера такую задачу:

f 1=4 x1 +2 x 2 −6 x 3 →max ;
f 2=5 x 1+2 x 2 − 3 x 3 →min ;
f 3=3 x 1+3 x 2 +2 x 3 →max ;

x 1+2 x 2+ 2 x 3 ≥ 4 ;

{
2 x 1 − x 2+ x 3 ≤10 ; x n ≥ 0.
x 1 +2 x2 ≤17 ;

Перед тем как преобразовывать эти критерии в 1, мы должны привести


их в однородном состоянии. Т.е. в данном случае нужно максимизировать
f2→ f2' = -f2. И тогда получим: f 2=−5 x 1 − 2 x 2 +3 x3 → max.

После этого суммируем частных критериев f 1 , f 2 , f 3 в один, и можем дальше


решить задачу обычным путем F=2 x1 +3 x 2 − x 3 → max.

Также нужно учитывать и весовые коэффициенты, при этом их сумма


должна быть = 1, и каждый из весовых коэффициентов должен быть
неотрицательной величиной. Весовые коэффициенты распределяется по
важности этих самих частных критериев f 1 , f 2 , f 3. В данном случае, весовые
коэффициенты будут распределяться следующим образом: 0,5; 0,2; 0,3.

После подсчета вместе с весовыми коэффициентами, мы получим


целевую функцию такого вида: F=0,5 ∗2 x 1+ 0,2∗ 3 x 2 −0,3 ∗ x 3 →max или
F=x 1+ 0,6 x2 −0,3 x 3 → max .

Открываем электронную книгу Excel и, как и для решения


однокритериальной задачи определяем ячейки под переменные x 1 , x 2 , x 3. Для
этого в ячейку А3 вводим подпись «Переменные», а соседние три ячейки В2,
С2 и D2 вводим значения переменных. Это могут быть произвольные числа,
например единицы или нули, далее они будут оптимизироваться. В нашем
случае это единицы.
36

рис.2.11. Определение переменных, целевых и ограничений

В четвертой строке задаем целевую функцию. В А4 вводим подпись


«Целевая», а в В4, С4, D4 наши значения.

Дальше, в ячейку F4 вводим формулу «=B4*B3+C4*C3+D4*D3», таким


образом, задаем целевую функцию F=x 1+ 0,6 x2 −0,3 x 3 → max .

В ячейку F6, F7 и F8 вводим формулы «=B6*$B$3+C6*$C$3+D6*$D$3»,


«=B7*$B$3+C7*$C$3+D7*$D$3»,«=B8*$B$3+C8*$C$3+D8*$D$3»
соответственно.

После открытия окна «Поиск решения» в поле «Оптимизировать


целевую функцию» ставим курсор и делаем ссылку на ячейку «F4». В окне
появится $F$4. В связи с тем, что целевая функция максимизируется, далее
нужно проверить, что флажок ниже поля стоит напротив надписи
«Максимум».

После ставим курсор в поле «Изменяя ячейки переменных» и обводим


ячейки с переменными В3, С3 и D3, выделяя ячейки с переменными. В поле
появиться $B$3:$D$3.

В нижней части окна находится поле «Ограничения». Добавляем все


необходимые ограничения, «F6» «≥» «F6», «F7:F8» «≤» и «G7:G8».

Вводим дополнительное ограничение x n ≥ 0, и получим следующую


формулу «B3:D3», «≥», «0».
37

рис.2.12. Параметры поиска решения

Далее выбираем метод решения «Поиск решения линейных задач


симплекс-методом». Для запуска вычислений нажимаем кнопку «Найти
решение». Появляется надпись, что решение найдено. Выбираем «Сохранить
найденное решение» и «ОК» видим результат.

рис.2.13. Окончательный результат решения по методу свертывания


критериев

Существующие методы предназначены в основном для сравнения


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

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


разные методы и шкалы оценок.

С математической точки зрения не существует идеального способа или


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

5 РАЗДЕЛ 3. ПРИМЕНЕНИЕ MATLAB И EXCEL ДЛЯ РЕШЕНИЯ


ЗАДАЧ МНОГОКРИТЕРИАЛЬНОЙ ОПТИМИЗАЦИИ

5.1 3.1. Пакет MATLAB

Современная компьютерная математика предлагает целый набор


интегрированных программных систем и пакетов программ для
автоматизации математических расчетов: MATLAB, Eureka, Gauss, TK
Solver!, Derive, Mathcad, Mathematica, Maple V и др. Среди них, MATLAB
занимает одно из лидирующих мест.

MATLAB — одна из старейших, тщательно проработанных и


проверенных временем систем автоматизации математических расчетов,
построенная на расширенном представлении и применении матричных
операций. Это нашло отражение в названии системы — MATrix LABoratory
— матричная лаборатория [14]. 

MATLAB является важным инструментом для решения широкого спектра


научных и прикладных задач, в таких областях как: моделирование объектов
и разработка систем управления, проектирование коммуникационных
систем, обработка сигналов и изображений, измерение сигналов и
тестирование, финансовое моделирование, вычислительная биология и для
многокритериальной оптимизации в том числе [10,23].

В настоящее время MATLAB далеко вышла за пределы


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

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


основанных на них параллельных вычислений и крупных баз данных
[24,31,35].

В целом MATLAB — это уникальная коллекция реализаций


современных численных методов компьютерной математики, созданных за
последние три десятка лет. Она вобрала в себя и опыт, правила и методы
математических вычислений, накопленные за тысячи лет развития
математики. Это сочетается с мощными средствами графической
визуализации и даже анимационной графики. Систему с прилагаемой к ней
обширной документацией вполне можно рассматривать как
фундаментальный многотомный электронный справочник по
математическому обеспечению ЭВМ — от массовых персональных
компьютеров до супер-ЭВМ [38,54].

MATLAB представляет собой основу всего семейства продуктов


MathWorks и является главным инструментом для решения широкого
спектра научных и прикладных задач, в таких областях как:

1) Математические расчеты;

2) Разработка алгоритмов;

3) Моделирование;

4) Анализ данных и визуализация;

5) Научная и инженерная графика;

6) Разработка приложений, включая графический интерфейс пользователя.

MATLAB развивался в течение нескольких лет, ориентируясь на


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

машиностроении и науки. В промышленности, MATLAB – это инструмент


для высокопродуктивных исследований, разработок и анализа данных [55].

В MATLAB важная роль отводится специализированным группам


программ, называемых Toolboxes. Они очень важны для большинства
пользователей MATLAB, так как позволяют изучать и применять
специализированные методы. Это своего рода пакет расширения,
позволяющее быстро ориентировать систему на решение задач в той или
иной предметной области: в специальных разделах математики, в физике и в
астрономии, в области нейронных сетей и средств телекоммуникаций, а так
же в математическом моделировании [38,54,55].

Этот пакет подходит для анализа многокритериальных экономических


задач линейного программирования. Тщательно рассмотрим систему
MATLAB и ее пакеты расширения.

Основные компоненты MATLAB

Система MATLAB состоит из пяти основных частей:

1. Язык MATLAB. Это язык матриц и массивов высокого уровня с


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

2. Среда MATLAB. Это набор инструментов и приспособлений, с


которыми работает пользователь или программист MATLAB. Она включает
в себя средства для управления переменными в рабочем
пространстве MATLAB, вводом и выводом данных, а также создания,
контроля и отладки М-файлов и приложений MATLAB.
42

3. Управляемая графика. Это графическая система MATLAB, которая


включает в себя команды высокого уровня для визуализации двух- и
трехмерных данных, обработки изображений, анимации и иллюстрированной
графики. Она также включает в себя команды низкого уровня, позволяющие
полностью редактировать внешний вид графики, также как при
создании Графического Пользовательского Интерфейса (GUI) для MATLAB
приложений.

4. Библиотека математических функций. Это обширная коллекция


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

5. Программный интерфейс. Это библиотека, которая позволяет писать


программы на Си и Фортране, которые взаимодействуют с MATLAB. Она
включает средства для вызова программ из MATLAB(динамическая связь),
вызывая MATLAB как вычислительный инструмент и для чтения-записи
МАТ-файлов [13,14,38,54].

5.1.1 3.1.2. Toolboxes и его виды

Toolboxes – это дополнительные специализированные пакеты MATLAB.

Виды Toolboxes:

1. Communications Toolbox – это пакет расширения MATLAB, содержащий


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

2. Control System Toolbox – это пакет расширения для анализа,


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

3. Financial Toolbox – этот пакет дополняет возможности Statistics Toolbox и


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

4. System Identification Toolbox содержит инструменты создания


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

5. Fuzzy Logic Toolbox – содержит инструменты для проектирования систем


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

6. Higher-Order Spectral Analysis содержит специальные алгоритмы для


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

7. Image Processing Toolbox содержит полный набор типовых эталонных


алгоритмов для обработки и анализа изображений, в том числе функций
44

фильтрации, частотного анализа, улучшения изображений,


морфологического анализа и распознавания.

8. Mapping Toolbox содержит полный набор средств для построения карт,


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

9. Model Predictive Control Toolbox – это пакет расширения MATLAB для


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

10. Neural Network Toolbox содержит средства для проектирования,


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

11. Optimization Toolbox – это пакет расширения MATLAB, содержащий


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

12. Partial Differential Equation Toolbox содержит инструменты для


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

13. Robust Control Toolbox – это пакет расширения MATLAB для разработки
систем управления объектами с неопределенностями и нелинейностями
различного типа. Он позволяет проектировать и настраивать системы
управления с учетом чувствительности к неопределенным параметрам,
возмущениям и ошибкам модели.

14. Signal Processing Toolbox содержит набор типовых функций для


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

15. Spline Toolbox содержит набор функций и алгоритмов для работы со


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

16. Statistics Toolbox – это пакет расширения MATLAB обеспечивающий


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

17. Symbolic Math Toolbox – это функции аналитических преобразований и


поддерживающий арифметику произвольной точности.

18. System Identification Toolbox содержит инструменты создания


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

19. Wavelet Toolbox – это пакет расширения MATLAB для работы с


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

20. Genetic Algorithm - это пакет, расширяющий оптимизационные


возможности MATLAB и Optimization Toolbox для решения задач
оптимизации недифференцируемых, стохастических и разрывных функций.

Для решения ряда больших (крупных) и экономически важных задач в


бизнесе и в инженерных разработках выгодно применять генетические
алгоритмы. Для реализации таких генетических алгоритмов не нужно
создавать отдельный программный продукт, так как ряд базовых свойств
этих алгоритмов остается постоянной при решении совершенно разных задач
[7,10,13,14,23,24,55].

5.1.2 3.1.3. Реализация генетического алгоритма в пакете MATLAB

Генетические алгоритмы позволяют решить задачи оптимизации с


плохой обусловленностью, не поддающиеся решению с помощью
классических методов оптимизации [34].

Генетические алгоритмы (ГА) – это метод решения оптимизационных задач,


основанный на биологических принципах естественного отбора и эволюции.

Генетический алгоритм повторяет определенное количество раз процедуру


модификации популяции (набора отдельных решений), добиваясь тем самым
получения новых наборов решений (новых популяций). При этом на каждом
шаге из популяции выбираются «родительские особи», то есть решения,
совместная модификация которых (скрещивание) и приводит к
формированию новой особи в следующем поколении [34,53].
47

Генетический алгоритм использует три вида правил, на основе которых


формируется новое поколение: правила отбора, скрещивания и мутации.

Мутация позволяет путем внесения изменений в новое поколение избежать


попадания в локальные минимумы оптимизируемой функции.

Специальные графические функции пакета обеспечивают визуализацию


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

Для решения задач многокритериальной оптимизации с помощью


генетических алгоритмов мы воспользуемся одним из его
многофункциональных пакетов – Multiobjective optimization using Genetic
Algorithm или сокращенно называется gamultiobj [55,56].

Для запуска пакета следует выбрать Apps → Optimization. После этого


запустится пакет генетических алгоритмов и на экране появится основное
окно утилиты. Выбираем в командной строке Solver (решающее устройство)
→ gamultiobj, это и есть наш генетический алгоритм

рис.3.14. Вкладка Optimization Tool


48

В поле Fitness function (функция пригодности) указывается


оптимизируемая функция в виде @fitnessfun, где fitnessfun.m – название M-
файла, в котором предварительно следует описать оптимизируемую
функцию. M-файл создается в среде MATLAB через меню File->New-
>Function.

Пример описания функции:

function f = chaos (x)

f(1)= -2*x(1)-2*x(2)-3*x(3)-3*x(4)-2*x(5);

f(2)= 5*x(1)+2*x(2)+3*x(3);

end

Вернемся к основному окну утилиты Optimization Tool. В поле Number


of variables (число переменных) указывается длина входного вектора
оптимизируемой функции. В рассмотренном выше примере функция my_fun
имеет входной вектор длины 5.

В панели Constraints (ограничения) можно задать ограничения или


ограничивающую нелинейную функцию. В поле Linear inequalities задается
линейное ограничение неравенством вида: A*x ≤ b.

В поле Linear equalities данной панели задаются линейные ограничения


равенством: A*x = b.

В обоих случаях A – некоторая матрица, b – вектор.

В поле Bounds (границы) в векторном виде задаются нижнее и верхнее


ограничения переменных.

Если в конкретной задаче не требуется задание ограничений, все поля


панели Constraints следует оставить незаполненными.
49

В Options, находится панель настройки графиков. Она позволяет


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

Подробнее эта панель будет описана ниже наравне с остальными


панелями вкладки Options утилиты gamultiobj.

Панель Run Solver содержит управляющие элементы (кнопки Start, Pause


и Stop для начала, временной и полной остановки работы генетического
алгоритма). Также она содержит поля Current Iteration, в которое выводятся
текущие результаты работы запущенного генетического алгоритма, и Final
point, в котором выводится значение конечной точки работы алгоритма —
наилучшей величины оптимизируемой функции (то есть, искомое значение).
В правой части основного окна утилиты Optimization Tool находится панель
Options. Она позволяет устанавливать различные настройки для работы
генетических алгоритмов. При щелчке мышью по кнопкам «+», которые
находятся напротив названия каждого из настраиваемых параметров в
панели Options, появляются выпадающие списки (вкладки), содержащие поля
для ввода и изменения соответствующих параметров генетического
алгоритма.

рис.3.15. Панель Options


50

Основными настраиваемыми параметрами в Optimization Tool являются:

1) популяция (вкладка Population);

2) оператор отбора (вкладка Selection);

3) оператор репродукции (вкладка Reproduction);

4) оператор мутации (вкладка Mutation);

5) оператор скрещивание (вкладка Crossover);

6) перенесение особей между популяциями (вкладка Migration);

7) многокритериальные специальные параметры (вкладка Multiobjective


problem settings);

8) задание гибридной функции (вкладка Hybrid function);

9) задание критерия остановки алгоритма (вкладка Stopping criteria);

10) вывод различной дополнительной информации по ходу работы


генетического алгоритма (вкладка Plot Functions);

11) вывод результатов работы алгоритма в виде новой функции (вкладка


Output function);

12) задание набора информации для вывода в командное окно (вкладка


Display to command window);

13) способ вычисления значений оптимизированной и ограничивающей


функций (вкладка User function evaluation).

Рассмотрим подробнее все вышеперечисленные вкладки панели Options


и элементы, которые они содержат.

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


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

При этом стоит учитывать, что использование битовой строки и


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

Также вкладка популяции позволяет настраивать размер популяции (из


скольких особей будет состоять каждое поколение) и каким образом будет
создаваться начальное поколение (Uniform – если отсутствуют
накладываемые ограничения, в противном случае – Feasible population).
Кроме того, в рассматриваемой вкладке имеется возможность задать
вручную начальное поколение (используя пункт Initial population) или его
часть, начальный рейтинг особей (пункт Initial scores), а также ввести
ограничительный числовой диапазон, которому должны принадлежать особи
начальной популяции (Initial range).

2. Вкладка «Selection» позволяет выбрать оператор отбора родительских


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

- Tournament – случайно выбирается указанное число особей, среди них


на конкурсной основе выбираются лучшие;

- Custom – позволяет писать свою собственную функцию выбора.

3. Вкладка «Reproduction» уточняет каким образом происходит создание


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

4. Во вкладке оператора мутации выбирается тип оператора мутации.


Доступны следующие варианты:
52

- Gaussian – добавляет небольшое случайное число (согласно


распределению Гаусса) ко всем компонентам каждого вектора-особи;

- Uniform – выбираются случайным образом компоненты векторов и


вместо них записываются случайные числа из допустимого диапазона;

- Adaptive feasible – генерирует набор направлений в зависимости от


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

- Custom – позволяет задать собственную функцию.

5. Вкладка «Crossover» позволяет выбрать тип оператора скрещивания


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

6. Во вкладке «Migration» можно настраивать правила, согласно


которым особи будут перемещаться между подпопуляциями в пределах
одной популяции. Подпопуляции создаются, если в качестве размера
популяции указан вектор, а не натуральное значение. В данной вкладке
можно указать направление миграции (forward – в следующую
подпопуляцию, both – в предыдущую и следующую), долю мигрирующих
особей и частоту миграции (сколько поколений проходит между
миграциями). Если создание подпопуляций не требуется, эту вкладку всегда
стоит оставлять без изменений.

7. «Multiobjective problem settings» определяет параметры, характерные


для многокритериального генетического алгоритма. Можно задать
следующие функции:

- Distance measure function


53

- Pareto front population fraction

8. Вкладка «Hybrid function» позволяет задать ещё одну функцию


минимизации, которая будет использоваться после окончания работы
алгоритма. В качестве возможных гибридных функций доступны следующие
встроенные в саму среду MATLAB функции: none (не использовать
гибридную функцию) и – fgoalattain.

9. Во вкладке критерия остановки («Stopping criteria») указываются


ситуации, при которых алгоритм совершает остановку. При этом,
настраиваемыми являются следующие параметры:

- Generations – максимальное число поколений, после превышения


которого произойдет остановка;

- Time limit – лимит времени на работу алгоритма;

- Fitness limit – если оптимизируемое значение меньше или равно


данного лимита, то алгоритм остановится;

- Stall generations – количество мало отличающихся поколений, по


прошествии которых алгоритм остановится;

- Function tolerance – минимальные значения изменений оптимизируемой


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

10. Особый интерес представляет вкладка «Plot Functions», которая


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

- Plot interval – число поколений, по прошествии которого происходит


очередное обновление графиков;
54

- Distance – вывод интервала между значениями особей в поколении;

- Genealogy – вывод генеалогического дерева особей;

- Score diversity – вывести гистаграмму рейтинга в каждом поколении;

- Selection – вывод гистограммы родителей;

- Stopping – вывод информации о состоянии всех параметров, влияющих


на критерии остановки;

- Custom function – отображение на графике некоторой указанной


пользователем функции.

11. Вкладка вывода результатов в виде новой функции («Output


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

12. Вкладка «Display to command window» позволяет настраивать


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

- Off – нет вывода в командное окно;

- Iterative – вывод информации о каждой итерации работающего


алгоритма;

- Diagnose – вывод информации о каждой итерации и дополнительных


сведениях о возможных ошибках и измененных ключевых параметрах
алгоритма;

- Final – выводится только причина остановки и конечное значение.

13. Наконец, вкладка «User function evaluation» описывает, в каком


порядке происходит вычисление значений оптимизируемой и
55

ограничивающей функций (отдельно, параллельно в одном вызове или


одновременно) [56].

Однако наличие многих критериев и ограничений затрудняют


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

При большом количестве альтернатив и критериев достаточно трудно


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

5.2 3.2. Решения экономическую модель с помощью инструмента


MATLAB

Рассмотрим следующую экономическую модель:

Косметическая компания Nature Republic выпускает тринадцать


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

В приложении А более подробно представлена состав натуральных


экстрактов, растительных масел и минеральных компонентов для
изготовления косметики.
56

В таблице размещены пропорции для каждой из видов продукции и


запасы каждого вида сырья (a ij):
57

таблица 3.2.

Пропорция + запас сырья (как назвать?)

Солнцезащитный крем
Пенка для умывания

Очищающее масло

Крем для мужчин

Крем для детей


Крем для тела
Запасы

Крем гель
Эмульсия
Эссенция
СС крем
ББ крем

Тонер
Сырье/ед.

Силиконовая основа 15 10 61500


Растительные экстракты 25 30 30 25 50 5 20 90 100 115 40 30 776000
Лекарственные экстракты 5 5 10 20 10 5 10 50 45 10 20 20 368000
Растительное масло 10 10 110 100 15 80 20 20 10 10 5 521000
Минеральные компоненты 5 5 10 20 10 5 10 30 10 15 5 15 2145000
Натуральные красители 5 5 5 10 49500
Очищенная ароматизированная вода 100 20 50 25 10 256000
58

Известно цены (стоимость) за единицы каждого ресурса (d i и стоимость


каждого продукта.

таблица 3.3.

Стоимость за единицы каждого ресурса

Нумерация Наименование сырья Стоимость (₴)


1 Силиконовая основа 1
2 Растительные экстракты 0,9
3 Лекарственные экстракты 0,8
4 Растительное масло 1,4
5 Минеральные компоненты 0,6
6 Натуральные красители 0,2
7 Очищенная ароматизированная вода 0,4

таблица 3.4.

Рыночная цена каждого продукта

Нумерация Наименование товара Стоимость (₴)


1 ББ-крем 78
2 СС-крем 85
3 Пенка для умывания 80
4 Очищающее масло 165
5 Тонер 160
6 Ампульная эссенция 46
7 Эмульсия 156
8 Крем гель 195
9 Крем для тела 190
10 Крем для мужчин 98
11 Крем для детей 72
12 Солнцезащитный крем 68

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


сырья, высококачественная косметика Nature Republic пользуется большим
спросом на рынке. Поэтому, каждый день поступают множество заказов от
различных заказчиков:
59

1. Торговый центр Phoenix – ББ-крем, СС-крем, пенки для умывания и


очищающее масло, при условии, что сумма всех товаров будет больше
10000₴.

2. Косметический магазин Magnolia – тонер, ампульная эссенция,


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

3. Иностранный партнер Banilla Co. – крем гель, крем для тела, крем для
мужчин и крем для детей, при условии, что сумма всех товаров будет больше
12000₴.

Перед компанией ставятся следующие вопросы, сколько нужно


изготовить изделий для получения наибольшей прибыли и при этом
минимизировать себестоимость сырья?

Решение:

Перед тем, как приступить к решению задачи многокритериальной


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

И так, введем следующие обозначения:

x 1 – ББ-крем

x 2 – СС-крем

x 3 – пенка для умывания

x 4 – очищающее масло

x 5 – тонер

x 6 – ампульная эссенция

x 7 – эмульсия
60

x 8 – крем гель

x 9 – крем для тела

x 10 – крем для мужчин

x 11 – крем для детей

x 12 – солнцезащитный крем

Ограничения:

1. На сырье:

15 x 1+10 x 2 ≤ 61500

25 x 1+30 x 2+30 x 3+25 x 4+50 x 5+5 x 6+20 x 7+90 x 8+100 x 9+40 x 10+30 x 11+30 x 12≤ 776000

5 x 1+5 x 2+10 x 3+25 x 4+10 x 5+5 x 6+10 x 7+50 x 8+45 x 9+40 x 10+20 x 11+20 x 12≤ 368000

10 x 1+10 x 2+60 x 4+60 x 5+15 x 6+80 x 7+20 x 8+20 x 9+10 x 10+10 x 11+5 x 12 ≤ 521000

5 x 1+5 x 2+10 x 3+20 x 4+10 x 5+5 x 6+10 x 7+30 x 8+10 x 9+5 x 10+5 x 11+15 x 12 ≤ 2145000

5 x 1+5 x 2+5 x 4+10 x 8 ≤ 49500

60 x 3+50 x 8+25 x 9+20 x 10+10 x 12 ≤ 256000

2. На заказов:

75 x 1+74 x 2 +80 x 3+ 155 x 4 ≥ 10000

158 x 5+ 48 x6 +159 x 7 +78 x12 ≥9500

204 x 8 +185 x 9+108 x 10+ 75 x 11 ≥ 12000

Целевые функции:

1. Максимизация прибыли:

f 1 ( x )=75 x 1+74 x2 +80 x 3 +155 x 4+ 158 x 5 + 48 x 6 +159 x 7+ 204 x8 +185 x 9 +108 x10 +75 x 11 +78 x12 → max
61

2. Минимизация себестоимости сырья:

Чтобы найти себестоимость сырья ( Si), мы должны перемножать


стоимость одной единицы ресурса (d i на количество использованных
ресурсов для каждого вида продукции (a ij):

1 ∗15 x 1+0,9 ∗ 25 x 1 +0,8 ∗5 x 1 +1,4 ∗10 x 1+ 0,6 ∗5 x 1+ 0,2∗ 5 x 1=60 x 1

1 ∗10 x 2+ 0,9∗ 30 x 2 +0,8 ∗5 x 2 +1,4 ∗10 x 2+ 0,6 ∗5 x 2+ 0,2∗ 5 x 2=59 x 2

0,9 ∗30 x 3 +0,8 ∗10 x 3+ 0,6 ∗10 x 3+ 0,4 ∗60 x 3=65 x 3

0,9 ∗25 x 4 +0,8 ∗ 25 x 4+ 1,4 ∗60 x 4 +0,6 ∗ 20 x 4 +0,2∗ 5 x 4=140 x 4

0,9 ∗50 x 5 +0,8 ∗10 x 5+ 1,4 ∗60 x 5+ 0,6 ∗10 x 5=143 x5

0,9 ∗5 x 6 +0,8 ∗5 x 6 +1,4 ∗15 x 6 +0,6 ∗5 x 6=33 x 6

0,9 ∗20 x 7 +0,8 ∗10 x 7 +1,4 ∗80 x 7 +0,6 ∗10 x 7=144 x 7

0,9 ∗ 90 x 8 +0,8 ∗50 x 8 +1,4 ∗ 20 x 8 +0,6 ∗ 30 x 8 +0,2 ∗10 x 8 +0,4 ∗50 x 8=189 x 8

0,9 ∗100 x 9 +0,8 ∗ 45 x 9 +1,4 ∗ 20 x 9+ 0,6∗ 10 x 9+ 0,4 ∗25 x 9=170 x 9

0,9 ∗ 40 x10 +0,8 ∗ 40 x10 +1,4 ∗ 10 x 10 +0,6 ∗5 x 10+ 0,4 ∗20 x 10=93 x 10

0,9 ∗30 x 11 +0,8 ∗ 20 x 11 +1,4 ∗ 10 x11 + 0,6 ∗5 x 11=60 x 11

0,9 ∗30 x 12+ 0,8∗ 20 x12 +1,4 ∗5 x 12+ 0,6 ∗15 x 12+0,4 ∗ 10 x12=63 x 12

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

f 2 ( x )=60 x 1+ 59 x 2 +65 x 3+140 x 4 +143 x 5 +33 x 6 +144 x 7 +189 x 8+ 170 x 9 +93 x 10+ 60 x 11 +63 x 12 → min

Теперь мы можем приступить к решению задачи в среде MATLAB с


помощью генетических алгоритмов.

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


вкладку «Home» → «New» → «Function».
62

Описываем функции и дадим ей название:

function f = nature(x)

f(1) = -75*x(1)-74*x(2)-80*x(3)-155*x(4)-158*x(5)-48*x(6)-159*x(7)-
204*x(8)-185*x(9)-108*x(10)-75*x(11)-78*x(12);

f(2)=60*x(1)+59*x(2)+65*x(3)+140*x(4)+143*x(5)+33*x(6)+144*x(7)+189
*x(8)+170*x(9)+93*x(10)+60*x(11)+63*x(12);

end

Вторую целевую функцию мы умножили на (-1) и поменяли на


противоположные знаки.

Функция будет иметь такой вид:

рис.3.16. Целевые функции в среде MATLAB

Теперь сохраняем и переходим к следующему этапу. Открываем вкладку


«Apps» → «Optimization» → «Solver» → «gamultiobj – Multiobjective
optimization using Genetic Algorithm».
63

рис.3.17. Вкладка Optimization Tool

Пропишем целевую функцию во вкладке «Fitness function» - @nature, в


строке «Number of variables» записываем количество переменных, они у нас

12. Дальше заполняем поля Linear inequalities значениями линейных


ограничений (неравенств), которые есть у нас в условия задачи:

A = [15 10 0 0 0 0 0 0 0 0 0 0; 25 30 30 25 50 5 20 90 100 40 30 30; 5 5 10 25 10


5 10 50 45 40 20 20; 10 10 0 60 60 15 80 20 20 10 10 5; 5 5 10 20 10 5 10 30 10 5
5 15; 5 5 0 5 0 0 0 10 0 0 0 0; 0 0 60 0 0 0 0 50 25 20 0 10; -75 -74 -80 -155 0 0 0
0 0 0 0 0; 0 0 0 0 -158 -48 -159 0 0 0 0 -78; 0 0 0 0 0 0 0 -204 -185 -108 -75 0]

b = [61500; 776000; 368000; 521000; 840500; 49500; 256000; -10000; -9500;


-12000]

Нижние границы «Bounds: Lower» = [0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0]

Назначим размер популяции: 1

После выполненных шагов, выбираем «Start» и получим следующие


результаты:
64

рис.3.18. Окончательный результат решения в среде MATLAB

Задача решена за 102 итерации. Многокритериальная оптимизация


согласна генетического алгоритма дали нам следующие результаты:
продукцию 1-ого вида нужно произвести в объеме 18 единиц, 2-ого вида в
объеме 17 единиц, 3-ого – 19 единиц, 4-ого – 36 единиц, 5-ого – 25 единиц, 6-
ого – 7 единиц, 7-ого – 25 единиц, 8-ого – 26 единиц, 9-ого – 24 единиц, 10-
ого – 13 единиц, 11-ого – 9 единиц, 12-ого – 13 единиц. При этом
обеспечивается максимальная выручка в размере 31500,008 ₴ и
минимальную стоимость в размере 27917,294 ₴.

5.3 3.3. Решения экономическую задачу многокритериальной


оптимизации с помощью MS Excel

Рассмотрим решения этой задачи с помощью различных методов


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

5.3.1 3.3.1. Метод последовательных уступок

Из двух приведенных критерий, мы максимизируем первый, наиболее


важный критерий, затем назначаем величину допустимого снижения
значения этого критерия. В данном случае, размер уступка равна 20000.

рис.3.19. Целевые, переменные значения и ограничения

В «В1» вводим надпись «Переменные», следующая строка это имя


наших переменных x 1 , … , x 12. В ячейках «В3:M3» вводим значения
переменных, то есть наши x n. Это могут быть произвольные числа,

допустим, запишем нули, далее они будут оптимизироваться.

Ячейку «A5» назовем «Целевые», в соседние ячейки записываем


значения переменных первой целевой функции, которая мы хотим
максимизировать. В «Р5», вводим «=B5*$B$3 +C5*$C$3 +D5*$D$3
+E5*$E$3+F5*$F$3+G5*$G$3+H5*$H$3+I5*$I$3+J5*$J$3+K5*$K$3+L5*$L$
3+M5*$M$3», или «=СУММПРОИЗВ(B3:M3;B5:M5)». Таким образом, мы
задали первую целевую функцию.

Ячейка «А8» будет называться «Ограничения». Левые части


ограничений распишем от «B9:M18», правые части находятся в диапазоне от
«P9:P18». В ячейке «О9» вводим формулу «=B9*$B$3+ C9*$C$3+ D9*$D$3
+E9*$E$3+F9*$F$3+G9*$G$3+H9*$H$3+I9*$I$3+J9*$J$3+K9*$K$3+L9*$L$
3+M9*$M$3», номера столбцов и номера строк ряда переменных
66

зафиксировано, далее воспользуемся автозаполнением, чтобы заполнить


ячейки «O10:O18».

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


решения», «P5» - это наша целевая функция.

рис.3.20. Параметры поиска решения

В связи с тем, что функция максимизируется, мы ставим флажок в поле


напротив надписи «Максимум». Изменяем ячейки переменных $B$3:$M$3.
Добавляем следующие ограничения:

1. $B$3: $M$3 ≥ 0

2. $O$16:$O$18 ≥ $P$16:$P$18

3. $O$9:$O$15 ≤ $P$9:$P$15

Выбираем «Поиск решения линейных задач симплекс-методом».


Запускаем решения и сохраняем найденное решение.
Теперь мы можем увидеть следующие результаты:
67

рис.3.21. Определение размер уступка

На следующем этапе оптимизируем вторую целевую функцию, для


этого, нам необходимо ввести уступок в размере 20000. Теперь, значения
первой целевой функции может быть не менее, чем 2637985 (2637985 =
2657985-20000).

Начиная с «B6:M6» мы записываем значения переменных второй


целевой функции, которая минимизируется. В «Р6», вводим саму функцию
«=B6*$B$3
+C6*$C$3+D6*$D$3+E6*$E$3+F6*$F$3+G6*$G$3+H6*$H$3+I6*$I$3+J6*$J
$3+K6*$K$3+L6*$L$3+M6*$M$3», или «=СУММПРОИЗВ(B3:M3;B6:M6)».

Снова вызываем надстройку «Поиск решения», прежние данные


остались введенными.

Меняем ссылку на целевую функцию, теперь это будет ячейка «Р6». Так,
как вторая целевая минимизируется, то ставим флажок в поле напротив
надписи «Минимум». Вводим дополнительное ограничение, связанное с
уступкой по первому критерию «Р5» «≥» «С21».
68

рис.3.22. Параметры поиска решения

Выбираем «Поиск решения линейных задач симплекс-методом».


Запускаем решения и сохраняем найденное решение.
Теперь мы можем увидеть окончательные результаты:

рис.3.23. Окончательный результат решения по методу последовательных


уступок

Согласно методу последовательных уступок, оптимальный план


производства, при данных условиях, состоит в том, что продукцию 2-ого, 6-
69

ого и 11-ого видов необходимо производить в объеме 135, 198 и 160 единиц
соответственно, а продукции 1-ого, 3-ого, 4-ого, 5-ого, 7-ого, 9-ого, 10-ого и
12-ого видов не стоит выпускать в производство. При этом обеспечивается
максимальная выручка в размере 32110,65 ₴ и размер минимальной
себестоимости ресурса в размере 24104,22 ₴.

5.3.2 3.3.2. Метод главного критерия

В качестве главного критерия берем первую целевую функцию


f 1 ( x )=75 x 1+74 x2 +80 x 3 +155 x 4+ 158 x 5 + 48 x 6 +159 x 7+ 204 x8 +185 x 9 +108 x10 +75 x 11 +78 x12 → max

А вторую критерию
f 2 ( x )=60 x 1+ 59 x 2 +65 x 3+140 x 4 +143 x 5 +33 x 6 +144 x 7 +189 x 8+ 170 x 9 +93 x 10+ 60 x 11 +63 x 12 → min

преобразовываем в ограничения, при этом, зададим контрольное значение –


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

Теперь, наша задача имеет следующий вид:

f 2 ( x )=75 x 1+ 74 x2 +80 x 3 +155 x 4 +158 x 5 + 48 x 6 +159 x 7+ 204 x 8+185 x 9 +108 x10 +75 x 11 +78 x12 → max

15 x 1+10 x 2 ≤ 61500

25 x 1+30 x 2+30 x 3+25 x 4+50 x 5+5 x 6+20 x 7+90 x 8+100 x 9+40 x 10+30 x 11+30 x 12 ≤ 776000

5 x 1+5 x 2+10 x 3+25 x 4+10 x 5+5 x 6+10 x 7+50 x 8+45 x 9+40 x 10+20 x 11+20 x 12 ≤ 368000

10 x 1+10 x 2+60 x 4+60 x 5+15 x 6+80 x 7+20 x 8+20 x 9+10 x 10+10 x 11+5 x 12 ≤ 521000

5 x 1+5 x 2+10 x 3+20 x 4+10 x 5+5 x 6+10 x 7+30 x 8+10 x 9+5 x 10+5 x 11+15 x 12 ≤ 2145000

5 x 1+5 x 2+5 x 4+10 x 8 ≤ 49500


70

60 x 3+50 x 8+25 x 9+20 x 10+10 x 12 ≤ 256000

75 x 1+74 x 2 +80 x 3+ 155 x 4 ≥ 10000

158 x 5+ 48 x6 +159 x 7 +78 x12 ≥9500

204 x 8 +185 x 9+108 x 10+ 75 x 11 ≥ 12000

60 x 1+59 x 2 +65 x3 +140 x 4 +143 x 5+ 33 x 6 +144 x 7 +189 x8 +170 x 9 +93 x 10+60 x 11 +63 x 12 ≤ 27936

В «В1» вводим надпись «Переменные», следующая строка это имя


наших переменных x 1 , … , x 12. В ячейках «В3:M3» вводим значения
переменных, то есть наши x n. Это могут быть произвольные числа,

допустим, запишем нули, далее они будут оптимизироваться.

рис.3.24. Целевая, переменные значения и ограничения

Ячейку «A5» назовем «Целевая», в соседние ячейки записываем


значения переменных первой целевой функции, которая мы хотим
максимизировать. В «Р5», вводим «=B5*B3 +C5*C3 +D5*D3 +E5*E3 +F5*F3
+G5*G3+H5*H3+I5*I3+J5*J3+K5*K3+L5*L3+M5*M3»,или«=СУММПРОИЗ
В(B3:M3;B5:M5)». Таким образом, мы задали первую целевую функцию.

Ячейка «А7» будет называться «Ограничения». Левые части


ограничений распишем от «B8:M18», правые части находятся в диапазоне от
«P8:P18». В ячейке «О8» вводим формулу «=B8*$B$3 +C8*$C$3 +D8*$D$3
+E8*$E$3+F8*$F$3+G8*$G$3+H8*$H$3+I8*$I$3+J8*$J$3+K8*$K$3+L8*$L$
71

3+M8*$M$3, номера столбцов и номера строк ряда переменных


зафиксировано, далее воспользуемся автозаполнением, чтобы заполнить
ячейки «O9:O18».

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


решения», отметим, что «P5» - наша целевая функция.

рис.3.25.Параметры поиска решения

Целевую функцию мы максимизируем, поэтому выбираем «Максимум».

При этом изменяем ячейки переменных «$B$3:$M$3».

Добавляем следующие ограничения:

1. $B$3:$M$3 ≥ 0

2. $O$15:$O$17 ≥ $P$15:$P$17

3. $O$18 ≤ $P$18
72

4. $O$8:$O$14 ≤ $P$8:$P$14

Выбираем метод решения «Поиск решения линейных задач симплекс-


методом». Запускаем решения и сохраняем найденное решение.

После проделанной работы, мы получили следующие результаты:

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

Согласно методу главного критерия, оптимальный план производства,


при данных условиях, состоит в том, что продукцию 2-ого, 6-ого и 11-ого
видов необходимо производить в объеме 200, 198, 160 единиц
соответственно, а продукции 1-ого, 3-ого, 4-ого, 5-ого, 7-ого, 8-ого, 9-ого, 10-
ого и 12-ого видов не стоит выпускать в производство. При этом
обеспечивается максимальная выручка в размере 37631 ₴. Но цель нашей
работы заключается в том, что нужно найти не только оптимального размера
прибыли, но и размер минимальной себестоимости. Исходя из полученных
результатов, можно сказать, что метод является не оптимальным для
решения данной задачи.

5.3.3 3.3.3. Метод свертка критериев

Идея этого метода заключается в том, что мы преобразовываем набора


частных критериев в один суперкритерий. Этот критерий и называется
сверткой.
73

Для нашей задачи, перед тем, как преобразовать эти две критерий в
один, мы должны привести их к однородному состоянию. В данном случае,
мы минимизируем первую целевую функцию
f 1 ( x )=75 x 1+74 x2 +80 x 3 +155 x 4+ 158 x 5 + 48 x 6 +159 x 7+ 204 x8 +185 x 9 +108 x10 +75 x 11 +78 x12 → max

, умножая на (-1).

Тогда условия нашей задачи снова меняется, и следовательно теперь


имеет вид:

f 1 ( x )=− 75 x 1 − 74 x 2 − 80 x 3 −155 x 4 −158 x5 − 48 x6 −159 x 7 − 204 x 8 − 185 x 9 −108 x 10 −75 x 11 −78 x12 →m

f 2 ( x )=60 x 1+ 59 x 2 +65 x 3+140 x 4 +143 x 5 +33 x 6 +144 x 7 +189 x 8+ 170 x 9 +93 x 10+ 60 x 11 +63 x 12 → min

15 x 1+10 x 2 ≤ 61500

25 x 1+30 x 2+30 x 3+25 x 4+50 x 5+5 x 6+20 x 7+90 x 8+100 x 9+40 x 10+30 x 11+30 x 12 ≤ 776000

5 x 1+5 x 2+10 x 3+25 x 4+10 x 5+5 x 6+10 x 7+50 x 8+45 x 9+40 x 10+20 x 11+20 x 12 ≤ 368000

10 x 1+10 x 2+60 x 4+60 x 5+15 x 6+80 x 7+20 x 8+20 x 9+10 x 10+10 x 11+5 x 12 ≤ 521000

5 x 1+5 x 2+10 x 3+20 x 4+10 x 5+5 x 6+10 x 7+30 x 8+10 x 9+5 x 10+5 x 11+15 x 12 ≤ 2145000

5 x 1+5 x 2+5 x 4+10 x 8 ≤ 49500

60 x 3+50 x 8+25 x 9+20 x 10+10 x 12 ≤ 256000

75 x 1+74 x 2 +80 x 3+ 155 x 4 ≥ 10000

158 x 5+ 48 x6 +159 x 7 +78 x12 ≥9500

204 x 8 +185 x 9+108 x 10+ 75 x 11 ≥ 12000

И так, теперь мы должны просуммировать двух частных критериев в


один, и решим эту задачу как задачу однокритериальной оптимизации.
74

рис.3.27. Суперкритерий (как назвать?)

Но также существуют и весовые коэффициенты, сумма этих


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

Наш следующий шаг заключается в том, что мы перемножали значении


в ячейках «B1:M1» на весовой коэффициент и получили главную функцию с
такими значениями:

F ( x )=− 1,5 x 1 − 2,17 x 2 −1,25 x 3 − 2,08 x 4 − 1,42 x 5 − 1,08 x6 −1 x 7 − 0,5 x 8 −1,67 x 9 − 0,42 x 10 −1 x 11 − 0

В «А5» вводим надпись «Целевая», и в соседних ячейках запишем


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

рис.3.28. Определение целевую функцию

В ячейках «А8:M8» вводим значения переменных, то есть наши x n. Это


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

В «Р5», вводим «=B5*B8 +C5*C8 +D5*D8 +E5*E8 +F5*F8 +G5*G8


+H5*H8+I5*I8+J5*J8+K5*K8+L5*L8+M8*M5», или «=СУММПРОИЗВ
(B5:M5;B8:M8)». Таким образом, мы задали целевую функцию.
75

рис.3.29. Целевая функция, переменные значения и ограничения

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

Левые части ограничений мы запишем в ячейках «B11:M20», а правые


части в ячейках «Р11:Р20». В «О11» запишем формулу «=B9*$B$7
+C9*$C$7+D9*$D$7+E9*$E$7+F9*$F$7+G9*$G$7+H9*$H$7+I9*$I$7+J9*$J
$7+K9*$K$7+L9*$L$7+M9*$M$7» или можно воспользоваться командой
«=СУММПРОИЗВ(B7:M7;B9:M9)». Зафиксируем номера столбцов и номера
строк ряда переменных, далее воспользуемся автозаполнением, чтобы
заполнить ячейки «O12:O20».

После того, как мы выполнили все необходительные подготовки,


вызываем команду «Поиск решения» и определяем целевую ячейку – «Р5».
76

рис.3.30. Параметры поиска решения

Функцию мы минимизируем, поэтому выбираем «Минимум». Изменяем


ячейки переменных «$B$8:$M$8».

Добавляем нам необходимые ограничения:

1. $O$18:$O$20 ≥ $P$18:$P$20

2. $B$8:$M$8 ≥ 0

3. $O$11:$O$17 ≤ $P$11:$P$117

Выбираем «Поиск решения линейных задач симплекс-методом».


Запускаем «Найти решение » и сохраняем найденное решение.
Теперь мы можем увидеть окончательные результаты:
77

рис.3.31. Окончательный результат решения по методу свертывания


критериев

Мы получили целевое значение в размере 2657985 ₴, с учетом того, что


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

5.4 3.4. Анализ полученных результатов

Мы рассмотрели математико-экономическую модель компании Nature


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

Методы оптимизации не являются идеальными, тем не менее, они


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

Решения с помощью генетического алгоритма MATLAB являются


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

Сделаем сравнительную характеристику между полученными


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

табл.3.5.

Сравнительная характеристика использованных методов для решения


экономической задачи на основе предприятия Nature Republic

Показатели
максимизация минимизация себестоимости сырья
Способ решения прибыли
ГА MATLAB 31500,008 27917,294
Метод последовательных 32110,65 24104,22
уступок
Метод главного критерия 37631 для данной модели, метод главного
критерия не является оптимальным для
подсчета минимизации себестоимости
сырья
Метод свертывания для данной модели, метод свертывания критериев не
критериев является оптимальным

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


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

Таким образом, согласно методам решения задач многокритериальной


оптимизации, за сутки максимально возможный размер прибыль, что
79

предприятия Nature Republic получит, равна 37631₴, а минимальный размер


себестоимости сырья равна 24104,22₴.
80

6 ЗАКЛЮЧЕНИЕ

результате применения программного комплекса поддержки принятия


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

Общая стратегия поиска решения зависит от имеющейся информации о


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

Различные методы оптимизации дают различные результаты, и каждая


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

Но, эти методы оптимизации и сам пакет MATLAB являются лишь


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

То есть, окончательные решения все равно принимает ЛПР на базе


анализа полученных результатов.
81

7 СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Книги:

1. Аттетков А.В. Методы оптимизации: Учеб. для вузов / Аттетков А.В.,


Галкин С.В., Зарубин В.С; под ред. В.С. Зарубина, А.П. Крищенко [2-е изд.].
– МГТУ им. Н.Э. Баумана, 2003. – 440с.

2. Ашманов С.А. Линейное программирование / Ашманов С.А. – М.:


Наука. Главная редакция физико-математической литературы, 2000. – 340с.

3. Банди Б. Основы линейного программирования / Банди Б. ; [пер. с


англ.]. – М.: Радио и связь, 1989. – 176с.

4. Большакова И.В. Линейное программирование: Учебно-метод.


пособие к контрольное работе [для студ. эконом. факультета] / Большакова
И.В., Кураленко М.В. – Ми.: БНТУ, 2004. – 148с.

5. Бородакий Ю.В. Основы теории систем управления. Исследование и


проектирование / Ю.В. Бородакий, Ю.Г. Лободинский. – М.: Радио и связь,
2004. – 256с.

6. Васильев Ф.П. Методы оптимизации / Васильев Ф.П. – М.: Факториал


Пресс, 2002. – 824с.

7. Гайдук А.Р. Теория автоматического управления в примерах и задачах


с решениями в MATLAB / Гайдук А.Р., Беляев В.Е., Пьявченко Т.А. – СПб.:
Лань, 2011. – 464с.

8. Гамидов, Рафаэль Гусейн Оглы Методы решения некоторых


многокритериальных задач оптимизации: дис. …кандидат физико-
математических наук: 01.01.09 / Гамидов, Рафаэль Гусейн Оглы. – К.,2007. –
119с.
82

9. Гарипов В.Р. Многокритериальная оптимизация систем управления


сложными объектами методами эволюционного поиска: дис. … канд. техн.
наук: 05.13.01 / Гарипов Валерий Рашитович. – Красноярск, 1999. – 166с.

10. Гультяев А. Визуальное моделирование в среде MATLAB: Учебный


курс / Гультяев А. – Спб.: Питер, 2000. – 432с.

11. Гуменникова А.В. Адаптивные поисковые алгоритмы для решения


сложных задач многокритериальной оптимизации : дис. … кандидата
технических наук : 05.13.01 / Гуменникова Александра Викторовна. – К.,
2006. – 129с.

12. Данциг Д. Линейное программирование, его применения и


обобщения / Данциг Д. –М.: Прогресс, 1966. – 600с.

13. Дьяконов В. MATLAB с пакетами расширений / Дьяконов В.,


Абраменкова И., Круглов В. – Нолидж, 2001. – 101с.

14. Дьяконов В. MATLAB. Полный самоучитель / Дьяконов В. – ДМК


Пресс, 2012. – 768с.

15. Егоренков Д.Л. Основы математического моделирования.


Построение и анализ моделей с примерами на языке MATLAB / Егоренко
Д.Л., Фрадков А.Л., Харламов В.Ю. – СПб.: БГТУ, 1994. – 190с.

16. Задачі та концепції методів багатокритеріальних рішень в


інтелектуальних системах / Г.І. Стопченко, І.А. Макрушан , С. В. Білан //
Біоніка інтелекту: наук.-техн. журнал. – 2010. – № 1 (72). – С. 122–125.

17. Землянухина Л.Н. Линейное программирование и смежные вопросы.


Часть 4. Методические указания / Землянухина Л.Н., Зинченко А.Б.,
Сантылова Л.И. – Ростов-на-Дону: РГУ, 1998. – 36с.

18. Карманов В.Г. Математическое программирование: Учеб. пособие. /


Карманов В.Г. [5-е изд.]. – М.: ФИЗМАТЛИТ, 2004. – 264с.
83

19. Кини Р.Л. Принятие решений при многих критериях: предпочтения и


замещения / Р.Л. Кини, Х. Райфа. – М.: Радио и связь, 1981. – 560с.

20. Колпаков В.М. Теория и практика принятия управленческих


решений / Колпаков В.М. – К.: МАУП, 2004. – 504с.

21. Корнеенко В.П. Методы оптимизации / Корнеенко В.П. – М.:


Высшая школа, 2007. – 664с.

22. Коробкин А.Д. Оптимизация производственного планирования на


предприятии / Коробкин А.Д., Мироносецкий Н.Б. – Новосибирск: Наука.
Сиб. отд-ние, 2004. – 336с.

23. Кривилев А. Основы компьютерной математики с использованием


системы MATLAB / Кривилев А. – М.: Лекс-Книга, 2005. – 485с.

24. Лазарев Ю. Моделирование процессов и систем в MATLAB.


Учебный курс. / Лазарев Ю. – СПб.: Питер: Киев: Издательская группа BHV,
2005. – 512с.

25. Ларичев О.И. Теория и методы принятия решений, а также хроника


событий в Волшебных Странах / Ларичев О.И. – М.: Логос, 2000. – 296с.

26. Леоненков А.В. Решение задач в среде MS Excel. Учебное пособие /


Леоненков А.В. – СПб.: БХВ –Петербург, 2005. – 690с.

27. Лопатников Л.И. Экономико-математический словарь: Словарь


современной экономической науки. / Л.И. Лопатников. – М.: Дело, 2003. –
121с.

28. Лотов В.А. Многокритериальные задачи принятия решений: учебное


пособие / В.А. Лотов, И.И. Поспелова – М.: МАКС Пресс, 2008. – 197с.

29. Лунгу К.Н. Линейное программирование. Руководство к решению


задач / Лунгу К.Н. – М.: ФИЗМАТЛИТ, 2005. – 128с.
84

30. Математические методы и модели в экономике: Учеб. пособие /


[С.А. Минюк, Е.А. Ровба, К.К. Кузьмич]. – М.: ТетраСистемс, 2002. – 432с.

31. Мэтьюз, Джон Численные методы. Использование MATLAB / Д.Г.


Мэтьюз, К.Д. Финк, [пер. с англ.]; под ред. Ю.В. Козаченко. [3-е изд.]. – М.:
Вильямс, 2001. – 720с.

32. Палий И.А. Линейное программирование. Учебное пособие / И.А.


Палий. – М.: Эксмо, 2008. – 256с.

33. Пантелеев А.В. Методы оптимизации. Практический курс / А.В.


Пантелеев, Т.А. Летова. – М.: Логос, 2011. – 110с.

34. Панченко Т.В. Генетические алгоритмы / Панченко Т.В. –


Астрахань: Астраханский университет, 2007. – 87с.

35. Плохотников К.Э. Вычислительные методы. Теория и практика в


среде MATLAB. Курс лекций / Плохотников К.Э. – М.: Горячая Линия –
Телеком, 2009. – 496с.

36. Подиновский В.В. Введение в теорию важности критериев в


многокритериальных задачах принятия решений / Подиновский В.В. – М.:
Физматлит, 2007. – 64с.

37. Подиновский В.В. Парето-оптимальные решения


многокритериальных задач / В.В. Подиновский, В.Д. Ногин. – М.: Наука,
1982. -64с.

38. Половко А.М. MATLAB для студента / А.М. Половко, П.Н. Бутусов.
– СПб.: БХВ-Петербург, 2005. – 320с.

39. Попов А.Л. Системы поддержки принятия решений: Учебно-метод.


пособие / Попов А.Л. – Екатеринбург: Урал. гос. ун-т, 2008. – 80с.

40. Рагулина М.И. Информационные технологии в математике /


Рагулина М.И. – М.: Академия, 2008. – 304с.
85

41. Редько В.Г. Эволюция, нейронные сети, интеллект. Модели и


концепции эволюционной кибернетики. – М. Либроком, 2013. – 224с.

42. Сирота А. Компьютерное моделирование и оценка эффективности


сложных систем / Сирота А. – М.: Техносфера, 2006. – 280с.

43. Системный анализ и принятие решений: словарь-справочник: Учеб.


пособие для вузов / [под. ред. В.Н. Волковой, В.Н. Козлова]. – М.: Высш. шк.,
2004. – 616 с.

44. Соболь И.М. Выбор оптимальных параметров в задачах со многими


критериями / И.М. Соболь, Р.Б. Статников. – М.: Дрофа, 2006. – 176с.

45. Соловьев В.И. Методы оптимальных решений / Соловьев В.И. – М. :


Финансовый университет, 2012. – 364с.

46. Струченков В.И. Методы оптимизации / Струченков В.И. – М.:


Экзамен, 2005. – 256с.

47. Таха, Хемди А. Введение в исследование операций / Таха, Хемди А. ;


пер. с англ. – М. : Издательский дом «Вильямс», 2001. – 912с.

48. Черноруцкий И.Г. Методы оптимизации и принятия решений /


Черноруцкий И.Г. – СПб.: Лань, 2001. – 384с.

49. Шевченко В.Н. Линейное и целочисленное линейное


программирование / В.Н. Шевченко, Н.Ю. Золотых. – Нижний Новгород:
Изд-во Нижегородского госуниверситета им. Н.И. Лобачевского, 2004. –
154с.

50. Шикин Е.В. Математические методы и модели в управлении / Е.В.


Шикин, А.Г. Чхартишвили. – М.: Дело, 2002. – 440с.

51. Штойер Р. Многокритериальная оптимизация / Штойер Р. : пер. с


англ. – М. : Радио и связь, 1992. – 504с. – (Теория, вычисления и
приложения).
86

52. Экономико-математические методы и прикладные модели: Учеб.


пособие для вузов / [В.В. Федосеев, А.Н. Гармаш, Д.М. Дайнтбегов и др.];
под ред. В.В. Федосеева. – М.: ЮНИТИ, 1999. – 391с.

Электронные ресурсы:

53. Исаев Б.Р. Популярно о генетических алгоритмах [Электронный


ресурс] / Б.Р. Исаев. – Режим доступа: http://algolist.manual.ru/ai/ga/ga1.php

54. Трифонов А.Г. Многокритериальная оптимизация [Электронный

ресурс] / А.Г. Трифонов. – Режим доступа:


http://matlab.exponenta.ru/optimiz/book_1/16.php

55. MathWorks – MATLAB / The Language of Technical Computing


[Электронный ресурс] – USA: The MathWorks, Inc. – Режим доступа:
http://mathworks.com/help/matlab/index.html

56. MathWorks – Global Optimization Toolbox / Multiobjective Optimization


[Электронный ресурс] – USA: The MathWorks, Inc. – Режим доступа:
http://mathworks.com/help/gads/gamultiobj.html

57. Nature Republic – Product / Baby&Kids [Электронный ресурс] -


KOR:Nature Republic Co. – Режим доступа:
http://www.naturerepublic.com/eng/product/babyandkids.jsp

58. Nature Republic – Product / Cleansing [Электронный ресурс] - KOR:


Nature Republic Co. – Режим доступа:
http://www.naturerepublic.com/eng/product/cleansing.jsp

59. Nature Republic – Product / Make-up [Электронный ресурс] - KOR:


Nature Republic Co. – Режим доступа:
http://www.naturerepublic.com/eng/product/makeup.jsp
87

60. Nature Republic – Product / Men [Электронный ресурс] - KOR: Nature


Republic Co. – Режим доступа:
http://www.naturerepublic.com/eng/product/men.jsp

61. Nature Republic – Product / Skin Care [Электронный ресурс] - KOR:


Nature Republic Co. – Режим доступа:
http://www.naturerepublic.com/eng/product/skincare.jsp
88

8 ПРИЛОЖЕНИЯ

Приложение А
Состав натуральных экстрактов, растительных масел и минеральных
компонентов для изготовления косметики

Растительные и - эктракт фисташки


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

Продолжение приложения А

Минеральные - диоксид титана


компоненты - оксид цинка
- оксид железа
- ультрамарин
- шелковая пудра
- серицит
- перламутровые мики
- жемчужный порошок
- нитрид бора
- магния стеарат
- каолин (белая глина
Амазонии)
- диоксид кремний
- ниацинамид
- водорастворимый коллаген
- гиалуронат натрия
- салициновая кислота