Сравнительный анализ методов оптимизации
Министерство образования и науки Республики Казахстан
Карагандинский Государственный Технический Университет
Кафедра САПР
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине «Теория принятия решений»
Тема: «Сравнительный анализ методов оптимизации»
Караганда 2009
Введение
Необходимо выполнить оптимизацию заданных целевых функций. Определить параметры заданного геометрического тела методом многопараметрической оптимизации. В процессе решения задач оптимизации должны быть найдены такие значения проектных параметров, при которых целевая функция имеет минимум (или максимум).
Актуальность математического моделирования процессов и явлений заключается в том, что функции и методы их оптимизации, которые исследуется в данном курсовом проекте, довольно часто применяется на практике в различных сферах жизнедеятельности, и их исследование позволило бы сократить временные и материальные затраты предприятий, использующих в производстве данные математические модели.
1. Основы теории оптимизации
Оптимизация – это выбор наилучшего решения. Математическая теория оптимизации включает в себя фундаментальные результаты и численные методы, позволяющие находить наилучший вариант из множества возможных альтернатив без их полного перебора и сравнения.
Для того чтобы использовать результаты и вычислительные процедуры теории оптимизации на практике, необходимо, прежде всего, сформулировать рассматриваемую задачу на математическом языке, т.е. построить математическую модель объекта оптимизации.
Построение математических моделей оптимизации можно условно разбить на следующие основные этапы.
Определение границ объекта оптимизации. Необходимость этого этапа диктуется невозможностью учета и исчерпывающего описания всех сторон большинства реальных систем. Выделив главные переменные, параметры и ограничения, следует приближенно представить систему как некоторую изолированную часть реального мира и упростить ее внутреннюю структуру. Может оказаться, что первоначальные границы объекта оптимизации выбраны неудачно. Тогда в одних случаях границы системы следует расширить, а в других – сузить.
Выбор управляемых переменных. На этом этапе математического моделирования необходимо провести различие между теми величинами, значения которых можно варьировать и выбирать с целью достижения наилучшего результата (управляемыми переменными), и величинами, которые фиксированы или определяются внешними факторами. Определение тех значений управляемых переменных, которым соответствует наилучшая (оптимальная) ситуация, и представляет собой задачу оптимизации.
Формулировка математической задачи оптимизации. Объединяя результаты предыдущих этапов построения математической модели, ее записывают в виде математической задачи оптимизации, включающей построенную целевую функцию и найденные ограничения на управляемые переменные. При записи математических задач оптимизации в общем виде обычно используется следующая символика:
f(xi) min (max), хi U
где f(xi) – целевая функция, а U – допустимое множество, заданное ограничениями на управляемые переменные. Значение параметров f(xi) min (max) при которых достигается min (max), называется оптимальным решением.
2. Численные методы одномерной безусловной оптимизации
Число х* U называется точкой глобального (абсолютного) минимума функции f (x) на множестве U, если f (x*) f (x) для всех х U.
Значение f * = f (x*) = называют глобальным (абсолютным) минимумом или просто минимумом функции f (x) на множестве U.
Множество всех точек минимума f (x) на U будем в дальнейшем обозначать через U*.
Число U называется точкой локального минимума функции f (x), если для всех xU, достаточно близких к , т.е. если существует > 0 такое, что это неравенство выполняется для любого.
Глобальный минимум f (x) является и локальным минимумом, а обратное, неверно.
Если функция f (x) на множестве U имеет, кроме глобального, локальные минимумы, отличные от него, то минимизация f (x), как правило, сильно затрудняется. В частности, многие методы поиска точки минимума f (x) приспособлены только для функций, у которых каждый локальный минимум является одновременно и глобальным. Этим свойством обладают унимодальные функции.
Функция f (x) называется унимодальной на отрезке [а; b], если она непрерывна на [а; b] и существуют числа и , , такие, что:
1) если а < , то на отрезке [a; ] функция f (x) монотонно убывает;
2) если < b, то на отрезке [; b] функция f (x) монотонно возрастает;
3) при х [; ] f (x) =f * = .
Возможно вырождение в точку одного или двух отрезков из [a; ], [; ] и [; b]. Некоторые варианты расположения и вырождения в точку отрезков монотонности и постоянства унимодальной функции показаны на.
Основные свойства унимодальных функций:
1. Любая из точек локального минимума унимодальной функции является и точкой ее глобального минимума на отрезке [а; b].
2. Функция, унимодальная на отрезке [а; b], является унимодальной и на любом меньшем отрезке [с; d] [а; b].
3. Пусть f (x) Q [а; b] и . Тогда:
если , то x* [a; x2];
если , то x* [x1; b],
где х* – одна из точек минимума f (x) на отрезке [a; b].
Из численных методов одномерной безусловной оптимизации рассмотрим два:
метод дихотомии
метод золотого сечения
2.1 Метод дихотомии
В этом методе точки x1 и х2 располагаются близко к середине очередного отрезка [а; b], т.е:
,
где > 0 – малое число. При этом отношение длин нового и исходного отрезков близко к 1/2, этим и объясняется название метода.
Отметим, что для любых точек x1 и х2 величина > 1/2, поэтому указанный выбор пробных точек объясняется стремлением обеспечить максимально возможное относительное уменьшение отрезка на каждой итерации поиска х*.
В конце вычислений по методу дихотомии в качестве приближенного значения х* берут середину последнего из найденных отрезков [а; b], убедившись предварительно, что достигнуто неравенство .
Опишем алгоритм метода деления отрезка пополам.
Шаг 1. Определить x1 и х2 по формулам (2.11). Вычислить f (x1) и f (x2).
Шаг 2. Сравнить f (x1) и f (x2). Если , то перейти к отрезку [а; x2], положив b = x2 , иначе – к отрезку [x1; b], положив а = x1 .
Шаг 3. Найти достигнутую точность Если , то перейти к следующей итерации, вернувшись к шагу 1. Если , то завершить поиск х*
2.2 Метод золотого сечения
Рассмотрим такое симметричное расположение точек x1 и х2 на отрезке [а; b], при котором одна из них становится пробной точкой и на новом отрезке, полученном после исключения части исходного отрезка. Использование таких точек позволяет на каждой итерации метода исключения отрезков, кроме первой, ограничиться определением только одного значения f (x), так как другое значение уже найдено на одной из предыдущих итераций.
Рассмотрим сначала отрезок [0; 1] и для определенности предположим, что при его уменьшении исключается правая часть этого отрезка. Пусть х2 = , тогда симметрично расположенная точка х1 = 1– (рис.2.2).
Рис. 2.2.-Определение пробных точек в методе золотого сечения
Пробная точка х1 отрезка [0; 1] перейдет в пробную точку х2 = 1– нового отрезка [0; т]. Чтобы точки х2 = , и х2 = 1– делили отрезки [0; 1] и [0; ] в одном и том же отношении, должно выполняться равенство или , откуда находим положительное значение … Таким образом, х1 = 1– = , .
Для произвольного отрезка [а; b] выражения для пробных точек примут вид
; .
1. Точки x1 и х2 обладают следующим свойством: каждая из них делит отрезок [а; b] на две неравные части так, что отношение длины всего отрезка к длине его большей части равно отношению длин большей и меньшей частей отрезка. Точки с таким свойством называются точками золотого сечения отрезка [а; b].
2. На каждой итерации исключения отрезков с пробными точками одна из них переходит на следующий отрезок и значение f (x) в этой точке вычислять не следует. Если новым отрезком становится [а; х2], то на него переходит пробная точка исходного отрезка, становясь его второй пробной точкой (х2’= х1) (рис. 2.2). В случае перехода к отрезку [х1; b] пробная точка исходного отрезка становится первой пробной точкой отрезка [х1; b].
3. Легко проверить, что х1=а+b–х2 , и x2=а+b–х1. Поэтому на каждой итерации метода золотого сечения недостающую пробную точку нового отрезка можно найти по перешедшей на него пробной точке с помощью сложения и вычитания.
4. В конце вычислений по методу золотого сечения в качестве приближенного значения х* можно взять середину последнего из полученных отрезков .
На каждой итерации отрезок поиска точки минимума уменьшается в одном и том же отношении , поэтому в результате п итераций его длина становится . Таким образом, точность n определения точки х* после п итераций находят из равенства, а условием окончания поиска точки х* с точностью служит неравенство n .
2.3 Пример решения методами дихотомии и золотого сечения
Дана функция , где d=2, e=1
Необходимо найти минимум на отрезке [a,b], где , , т.е. на отрезке [7.23,8.21]
Составить программу, которая выдаст число итераций при точности ε=0,001
Решить двумя методами: дихотомии и золотого сечения
Решение методом дихотомии:
Шаг 1:
Шаг 2:
Так как f1
Шаг 3:
Так как f1
Решение методом золотого сечения:
Шаг 1: Шаг 2: Так как f1 Шаг 3: Так как f1
Так как f1
Листинг программы реализующей методы дихотомии и золотого сечения представлен в приложении А
3. Численные методы многомерной безусловной оптимизации
Рассмотрим конкретные вычислительные алгоритмы решения задачи безусловной минимизации f (х) min, x En, которые опираются только на вычисление значений функции f (х), т.е. прямые методы минимизации. Важно отметить, что для их применения не требуется дифференцируемость целевой функции и даже ее аналитическое задание. Нужно лишь иметь возможность вычислять или измерять значения f (х) в произвольных точках. Такие ситуации часто встречаются в практически важных задачах оптимизации.
3.1 Поиск точки min методом правильного симплекса
В пространстве E2 правильным симплексом является совокупность вершин равностороннего треугольника, в E3 – правильного тетраэдра.
Если х0 – одна из вершин правильного симплекса в En то координаты остальных n вершин х1 ,..,хn можно найти, например, по формулам:
(3.1)
где d1 , d2 , a– длина ребра. Вершину х0 симплекса, построенного по формулам (3.1), будем называть бaзовой.
По известному симплексу можно построить новый симплекс отрaжением какой–либо вершины, например, хk симметрично относительно центра тяжести хc остальных вершин симплекса.
А
В
D
(1)
(2)
(3)
С
Е
Пусть задана функция f(x,y) min и начальный базис (x0,y0).
Новая и старая вершины связаны соотношением:
, где xc
, где уc(3.2)
Вычисляем значение функции в точках f(A), f(B), f(D) (пусть f(A)<f(B)<f(D)) и присваиваем им номера в порядке возрастания A-1, B-2, D-3.
Вершину с наибольшим номером отражаем относительно центра тяжести стороны 1-2
Координаты вершины Е:
(3.3)
Затем вычисляем f(E) и сравниваем f(E) и f(D). Если в отраженной вершине получается меньшее значение функции, то переходят к новому симплексу. В противном случае выполняют еще одну попытку отражения для вершины со следующим по величине значением f (х). Если и она не приводит к уменьшению функции, то сокращают длину ребра симплекса, например, вдвое и строят новый симплекс с этим ребром. В качестве базовой выбирают ту вершину х0 старого симплекса, в которой функция принимает минимальное значение. Поиск точки минимума f (x) заканчивают, когда либо ребро симплекса, либо разность между значении функции в вершинах симплекса становятся достаточно малыми.
3.2 Поиск точки min методом деформируемого симплекса
Алгоритм, описанный выше, можно модифицировать, добавив к процедуре отражения при построении нового симплекса процедуры сжатия и растяжения. Положение новой вершины находится сравнением и выбором наименьшего среди значений целевой функции в точках;
(3.5)
Так как величина (0; 1), то выбор точек z1 и z2 соответствует сжатию симплекса; 1, поэтому выбор точки z3 соответствует отражению, а > 1 и выбор точки z4 приводит к растяжению симплекса. На практике хорошо зарекомендовал себя следующий набор параметров , и для выбора пробных точек zi: = 1/2, = 1 и =2.
Рис. 3.2. Пробные точки z1,z2,z3,z4 для перехода к новому симплексу
Рис. 3.3. Новые симлексы полученные в результате процедур сжатия (а,б); отражения (в); растяжения(г).
Опишем алгоритм метода поиска точки минимума функции по деформируемому симплексу.
Шаг 0 – Шаг 3 Аналогичны методу правильного симплекса.
Шаг 4. Найти и пробные точки zk , k=1, …, 4 пo формулам (3.5). Найти f (z*)= min f (zk). Если f (z*) < f (zn). то положить xn=z* и перейти к шагу 2. Иначе – перейти к шагу 5.
3.3 Поиск точки min методом циклического покоординатного спуска
Этот метод заключается в последовательной минимизации целевой функции f (x) сначала по направлению первого базисного вектора е1, затем второго – е2 и т.д. После окончания минимизации по направлению последнего базисного вектора еn цикл повторяется.
Опишем этот алгоритм.
Шаг 0. Выбрать х En , критерий достижения точности, величину . Найти f (x), положить j= 1.
Шаг 1. Решить задачу одномерной минимизации Ф() = f (х + еj) min, R, т.е. найти *. Положить = х +*еj, вычислить f (х).
Шаг 2. Если j < п, то положить х =, j=j+1 и перейти к шагу 1, иначе – перейти к шагу 3.
Шаг 3. Проверить условие достижения точности ||х–|| <
3.4 Поиск точки min методом Хука – Дживса
Этот алгоритм содержит две основные процедуры:
а) исследующий покоординатный поиск в окрестности данной точки, предназначенный для определения направления убывания f (х);
б) перемещение в направлении убывания.
Опишем алгоритм исследующего покоординатного поиска из заданной точки х с приращениями по каждой координате j , j = 1, …, n
Шаг 1. Положить = x , i = 1.
Шаг 2. Сделать пробный шаг y=– je j, где e j –j–й базисный вектор. Если f () f (y), то перейти к шагу 3, иначе – к шагу 4.
Шаг 3. Сделать пробный шаг y=+je j . Если f () f (y), то перейти к шагу 5, иначе – к шагу 4.
Шаг 4. Положить = у.
Шаг 5. Положить j = j + 1. Если j n, то перейти к шагу 2. В противном случае исследующий поиск окончен – получена точка для которой f () < f (y), если х.
3.5 Пример решения методами правильного симплекса, деформируемого симплекса, покоординатного спуска, Хука – Дживса
Дана функция , с=7; d=7.
Найти минимум функции с точностью ε=0,001
Метод правильного симплекса
Выбираем длину стороны треугольника l=10ε=0,0001
Вершины треугольника находим следующим образом:
A();
B();
D().
A(1,065; 0,918);
B(1,07,0,927);
D(1,075,0,918).
Шаг 0
F(A)=10,903; F(B)=11,081; F(D)=11,051.
F1
F1=F(A); F2=F(D); F3=F(B).
Отражаем вершину 3 относительно центра тяжести.
F(E)=10,873.
Значение функции в найденной точке меньше, значения функции в точке 1, поэтому принимаем новый симплекс (1,2,E).
Шаг 1
F(1)=10,903; F(2)=11,081; F(E)=10,873.
F1<F2<F3:
F1=F(E); F2=F(1); F3=F(2).
Отражаем вершину 3 относительно центра тяжести.
F(E)=10,726.
Значение функции в найденной точке меньше, значения функции в точке 1, поэтому принимаем новый симплекс (1,2,E).
,
.
В результате получаем x1=0,125, x2=0,208, f(x1, x2)=-0,41.
Метод деформируемого симплекса
Выбираем длину стороны треугольника l=5ε=0,005
Вершины треугольника находим следующим образом:
A();
B();
D().
A(1,065; 0,918);
B(1,07,0,927);
D(1,075,0,918).
Принимаем коэффициенты выбора пробных точек k1=0,5, k2=1, k3=2.
Шаг 0
F(A)=10,903; F(B)=11,081; F(D)=11,051.
F1
F1=F(A); F2=F(D); F3=F(B).
Находим центр тяжести вершины 3 относительно вершин 1 и 2:
Выбираем пробные точки:
F(z1)=10,966.
F(z2)=11,018.
F(z3)=11,044.
F(z3)=11,097.
Значение функции в z1 точке меньше, значения функции в точке 3, поэтому принимаем новый симплекс (1,2,z1).
Шаг 1
F(1)= 10,903; F(2)= 11,051; F(z1)=10,966.
F1<F2<F3:
F1=F(1); F2=F(z1); F3=F(2).
Выбираем пробные точки:
F(z1)=10,955.
F(z2)=10,998.
F(z3)=11,019.
F(z3)=11,062.
Значение функции в точке z1 меньше, значения функции в точке 3, поэтому принимаем новый симплекс (1,2,z1).
,
.
В результате получаем x1=-0,012, x2=0,419, f(x1, x2)=-0,014.
Метод покоординатного спуска
(1,065; 0,918).
α=5ε=0,005.
Шаг 1
Координату закрепляем,
Т.к.,
Следовательно
Получим x1=0,012,
Шаг 2
Принимаем и закрепляем,
Т.к.,
Получим x2=0,199,
Продолжаем поиск до тех пор, пока не будет выполнено условие
В результате получаем x1=0,117, x2=0,189, f(x1, x2)=-0,411.
Метод Хука-Дживса
x0: (1,065; 0,918).
Δ1=5*ε=5*0,001, Δ2=5*ε=5*0,001.
λ=2.
Шаг 1
Принимаем k1=-1, k2=-1 – коэффициенты, определяющие направление поиска.
В данном направлении функция убывает.
Шаг 2
Принимаем k1=-1, k2=-1.
В данном направлении функция убывает.
Продолжаем поиск до тех пор, пока не будет выполнено условие
В результате получаем x1=0,115, x2=0,198, f(x1, x2)=-0,411.
4. Основы линейного программирования
Если в задаче оптимизации целевая функция и все ограничения заданы в виде линейных функций, то этот класс задач носит название задач линейного программирования.
Примечание: если переменных две, то задача может быть решена и геометрически.
Точка оптимального решения является крайней точкой пересечения выпуклых множеств,
4.1 Симплекс-метод решения задачи ЛП
Допустим, что есть базисное решение. Не трудно заметить, что в качестве базисного решения можно принять:
,
Суть симплекс-метода заключается в переходе решения к другим базисным допустимым решениям, при которых значение целевой функции не убывает.
Предполагаем, что базисная точка найдена, тогда:
,
– значение функции в базисной точке (базисе).
Тогда значение функции:
– симплекс-разность
Тогда в скалярной форме:
Для того, чтобы при переходе к следующей точке значение целевой функции было неубывающим на выбор симплекс-разности ставится несколько условий, которые позволяют производить замену столбцов базиса.
,
Если , то быть не может, следовательно , т.к. при отрицательном коэффициенте может стать отрицательным.
Это условие необходимое.
Max значение базисной переменной определяется:
,
где – номер столбца, который выводится из базиса.
Если , то функция может возрастать неограниченно.
Процедуру поиска решения задачи линейного программирования, записанной в стандартной форме, симплекс-методом при известном базисном решении можно представить в качестве нескольких шагов:
по известному базисному решению строятся матрицы и находим ;
вычисляется симплекс-разности. Из них выделяются положительные наибольшие. Соответствующая переменная вводится в базис;
для выбора выводимой переменной из базиса вычисляется и max значение новой базисной переменной
Вычисляются значения новых базисных переменных:
4.2 Пример решения задач ЛП симплекс – методом
Дана функция и ограничения
a=3, b=6, c=4, k подобрать таким образом, чтобы область была пятиугольной.
Графическое решение задачи линейного программирования
Чтобы получить пятиугольную область допустимых значений выберем k=11.2.
Подставив коэффициенты a, b, c, k, получим функцию
Построим область допустимых значений
x1
x2
Рисунок 4.1 – Область допустимых значений
Чтобы получить максимум целевой функции будем ее переносить параллельно самой себе до пересечения с крайней точкой области допустимых значений. В данном случае максимум находится в точке пересечения функций 6x1+x2=12 и 2x1+4x2=11,2.
Решим систему уравнений:
Получим точку максимума целевой функции:
Значение функции в этой точке f(x1,x2)=15,927
Решение задачи линейного программирования симплекс-методом
Приведем задачу к стандартной форме записи:
Начальный базис y0(0 0 8 12 11.2).
Процедура поиска оптимальной точки симплекс-методом сведена в таблицу 1.
Таблица 1. Симплекс-таблица
-
Номер итерации
Базисные переменные
Значение
y1
y2
y3
y4
y5
отношения
0
y3
8
1
3
1
0
0
0,125
y4
12
6
1
0
1
0
0,5
y5
11,2
2
4
0
0
1
0,17857143
-f'
0
6
3
0
0
0
1
y3
6
0
2,833333
1
-0,16667
0
0,4722
y1
2
1
0,166667
0
0,166667
0
0,0833
y5
7,2
0
3,666667
0
-0,33333
1
0,5093
-f'
-12
0
2
0
-1
0
2
y3
0,436363636
0
0
1
0,090909
-0,77273
y1
1,672727273
1
0
0
0,181818
-0,04545
y2
1,963636364
0
1
0
-0,09091
0,272727
-f'
-15,92727273
0
0
0
-0,81818
-0,54545
На шаге 2 нет положительных коэффициентов в симплекс разности, значит, решение прекращаем.
Получаем оптимальное значение целевой функции
5. Определение оптимальных параметров технического объекта
Рисунок 5.1-Модель сосуда
Параметры сосуда (рис.5.1):
Высота цилиндров – h1
Высота параллелепипеда – h2
Высота усеченного конуса – h3
Длина параллелепипеда – а
Ширина параллелепипеда – а
Радиус нижнего основания усеченного конуса – R
Радиус верхнего основания усеченного конуса – r
Соотношения параметров:
2h1 = 2h2 = h3 = H
a = 2R = 4r = x
Для того, чтобы рассчитать максимальный объем при заданной площади поверхности надо найти общую площадь сосуда
Площадь поверхности цилиндра:
Площадь поверхности параллелепипеда:
Площадь поверхности усеченного конуса:
Общая площадь боковой поверхности:
При заданной площади поверхности S=10 м2 выразим H из последнего уравнения
Найдем объем сосуда
Объем цилиндра:
Объем параллелепипеда:
Объем усеченного конуса:
Общий объем сосуда равен:
Рисунок 5.2
Подставив H в последнее уравнение, получим зависимость объема сосуда от одного параметра x. Зависимость и график функции представлен на рисунке 2. Область определения функции 1 четверть, т.к. объем и радиус – положительные величины. Для нахождения максимума функции воспользуемся методом золотого сечения.
Таким образом, максимальный объем при площади поверхности равной
10 м2 равен 1,19 м3
Заключение
В ходе выполнения данной курсовой работы нам удалось решить следующие задачи:
проведен анализ методов однопараметрический безусловной оптимизации;
проведен анализ методов многопараметрический безусловной оптимизации;
были разобраны основы линейного программирования;
был смоделирован и оптимизирован трёхмерный объект;
Список использованной литературы
Дегтярев Ю.И., «Исследование операций», Москва 1986;
Турчак Л.И., «Основы численных методов», Москва 1987;
Мудров А.Е., «Численные методы», Томск 1991;
Щетинин Е.Ю., «Математические методы оптимизации»;
1
Нравится материал? Поддержи автора!
Ещё документы из категории экономико-математическое моделирование:
Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.
После чего кнопка «СКАЧАТЬ» станет доступной!
Кнопочки находятся чуть ниже. Спасибо!
Кнопки:
Скачать документ