Определение экстремума методом случайного поиска
Особенности использования случайного поиска для определения экстремума функции качества. Определение функции распределения для дискретной случайной величины. Совместное распределение случайных величин. Основные элементы алгоритма случайного поиска.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 29.03.2024 |
Размер файла | 285,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Политехнический институт
Кафедра «Промышленная автоматика и робототехника»
КУРСОВАЯ РАБОТА
по дисциплине «Методы принятия оптимальных решений»
Пояснительная записка к курсовой работе для студентов очной формы обучения направления 09.03.02 «Информационные системы и технологии»
Выполнил: ст-т гр.621011и
Нгуен М.Т.
Проверил: к.т.н., доц. каф.ПАиР
Акименко Т.А.
ОГЛАВЛЕНИЕ
- ВВЕДЕНИЕ
- ЗАДАНИЕ
- ТЕОРИТИЧЕСКИЕ СВЕДЕНИЯ
- АЛГОРИТМ РАБОТЫ ПРОГРАММЫ
- ЛИСТИНГ ПРОГРАММЫ
- АНАЛИЗ РЕЗУЛЬТАТОВ РАБОТЫ ДЛЯ РАЗНЫХ ВХОДНЫХ ДАННЫХ
- ВЫВОД
- СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
ВВЕДЕНИЕ
Теория принятия оптимальных решений в наиболее общем смысле представляет собой совокупность математических и численных методов, ориентированных на нахождение наилучших вариантов из множества альтернатив и позволяющих избежать их полного перебора.
Так как размерность практических задач, как правило, достаточно велика, а расчеты в соответствии с алгоритмами оптимизации требуют значительных затрат времени, поэтому методы принятия оптимальных решений ориентированы главным образом на реализацию их с помощью ЭВМ.
В настоящее время для оптимального планирования и управления различными процессами создание и внедрение на практике современных экономико-математических моделей играет все большую роль.
Данные модели помогают не только определить оптимальный вариант, но также показывает возможные альтернативы, что также немаловажно для руководителей любого процесса или производства.
Целью выполнения данной курсовой работы является овладение математическими методами решения задач.
В данной курсовой работе содержится 24 л., 5 ил., 3 табл.
ЗАДАНИЕ
Для данной функции вычислить экстремум методом случайного поиска.
Функция для варианта №7:
.
ТЕОРИТИЧЕСКИЕ СВЕДЕНИЯ
Случайный поиск является одним из методов определения экстремума функции качества. Он применяется тогда, когда имеется значительное количество параметров оптимизации и функция качества L(X) с высокой вычислительной сложностью, имеющая точки разрыва, для которой проблематично рассчитать градиент даже разностным методом.
Основным понятием метода случайного поиска является понятие реализации. Компоненты вектора X представляют собой случайные величины, которые для каждой реализации выбираются случайным образом из области допустимых значений: .
Случайной величиной на вероятностном пространстве (1.1) называют измеримую функцию , определенную на элементах множества элементарных событий , и принимающую действительные значения.
Функцией распределения случайной величины называют функцию
.
Функция распределения F(x) обладает следующими свойствами.
Область определения R функции F(x) совпадает с областью распределения случайной величины или, что то же самое, с областью изменения функции . В общем случае можно считать, что область определения функции F(x) R = ().
Для любого справедливо неравенство:
.
Функция F(x) является неубывающей и непрерывной, хотя и может иметь счетное число скачков (точек разрыва).
Если , и , то имеет место равенство
,
где - вероятность попадания случайной величины в соответствующую область.
Если множество является бесконечным, а элементы функции представляют собой континуум, то для функции распределения может быть определена плотность распределения по зависимости:
.
Вследствие того, что функция F(x) является неубывающей, для нее справедливо свойство
.
Вследствие зависимости (1.19) справедливо также свойство
; ;
.
Если множество является конечным (счетным) и функция представляет собой дискретную случайную величину, принимающую значения из множества (х1,..., хп,..., хN), то функцию F(x) можно представить в виде совокупности единичных ступенчатых функций
,
где - приращение функции распределения, имеющее физический смысл вероятности того, что х = хп,
;
- единичная функция Хевисайда
Дифференцирование (1.25) дает
,
где - дельта-функция Дирака,
.
Таким образом, случайную дискретную величину можно задать набором ее значений и вероятностями , которые могут быть представлены в виде множества двоек
,
или в виде матрицы
.
Указанные представления называются дискретным распределением.
В соответствии с общим определением для дискретной случайной величины функция распределения определяется равенством
.
Решетчатое распределение случайная величина имеет решетчатое распределение, если она дискретна и для тех значений, которые принимаются с положительной вероятностью и существуют величины а и h такие, что
.
При решении многих практических задач бывает достаточно охарактеризовать случайную величину рядом чисел, которые дают достаточно полное представление об ее поведении. Такие характеристики, назначение которых - выразить в сжатой форме наиболее существенные особенности распределения называются числовыми характеристиками случайной величины. К таковым относятся начальные моменты s-го порядка и центральные моменты r-го порядка.
Начальным моментом s-го порядка непрерывной случайной величины х называется интеграл
.
Начальным моментом s-го порядка дискретной случайной величины х называется сумма вида
.
Начальный момент первого порядка называется математическим ожиданием и вычисляется по формуле
для непрерывной случайной величины
;
для дискретной случайной величины
.
Пусть имеется случайная величина х с математическим ожиданием Х. Тогда центрированной случайной величиной называется величина, смещенная на математическое ожидание, т.е.
хо = х - Х.
Начальные моменты центрированной случайной величины носят название центральных моментов.
Центральным моментом r-го порядка непрерывной случайной величины х называется интеграл
.
Центральным моментом r-го порядка дискретной случайной величины х называется сумма вида
.
Начальный момент второго порядка называется дисперсией и вычисляется по формуле
для непрерывных величин
;
для дискретных величин
.
Дисперсия случайной величины есть характеристика рассеяния, разбросанности случайной величины относительно ее математического ожидания.
Математическое ожидание имеет размерность случайной величины. Дисперсия имеет размерность квадрата случайно величины, что не всегда удобно. Поэтому на практике часто применяют квадратный корень из дисперсии, который называется среднеквадратичным отклонением случайной величины от математического ожидания:
.
Многомерной случайной величиной на вероятностном пространстве называют измеримую функцию , определенную на элементах множества , и принимающую действительные значения. В данном случае случайная величина представляет собой вектор в L-мерном пространстве.
Если задана величина х = (х1,..., хl,..., хL) то может быть определена многомерная функция распределения
Функция распределения также является неубывающей по каждой из случайных величин.
Для каждой из случайных величин xl
; .
Дискретным случайным вектором называется система случайных величин, принимающая конечное или счетной число значений. Совместное распределение случайных величин задается вероятностями
.
Совместная функция распределения задается формулой
.
Для системы непрерывных случайных величин задается совместная плотность распределения . Функция совместного распределения определяется формулой
.)
Свойства совместной плотности распределения:
.
.
Случайные величины считаются независимыми (в совокупности), если
.
Если случайные величины имеют непрерывные распределения, то для независимых (в совокупности) случайных величин совместная плотность распределения определяется в виде
.
Смешанным моментом порядка k называют момент
,
(1.58)
где
.
Ковариацией двух случайных величин называют смешанный центральный момент второго порядка центрированных случайных величин:
. (1.59)
Для произвольно зависимых случайных величин
. (1.60)
Коэффициентом корреляции называют величину
. (1.61)
Свойства:
; . (1.62)
Если , то с вероятностью единица случайные величины х и у связаны линейной зависимостью
. (1.63)
Ковариационной матрицей случайных величин называют квадратную, симметричную относительно главной диагонали матрицу С с элементами .
Случайные величины называют попарно некоррелироваными, если для любых l, и .
Если случайные величины попарно независимы, то они попарно некоррелированы. Обратное в общем случае неверно.
Если случайные величины имеют многомерное нормальное распределение и попарно некоррелированы, то они независимы.
При случайном поиске величины считаются некоррелированными. Границы области допустимых решений, с целью дальнейшего сокращения вычислительной сложности, выбираются максимально простыми. , . Критерием окончания вычислений служит, как правило, количество реализаций.
Если заранее неизвестно местоположение экстремума, то распределения параметров принимаются равномерными, в противном случае - имеющими максимум, приблизительно совпадающий с предполагаемым экстремумом. В первом случае понижается вычислительная сложность алгоритма, во втором случае повышается при том же количестве реализаций точность решения. случайный поиск экстремум дискретный
Одним из основных элементов любого алгоритма случайного поиска экстремума является генератор случайных чисел. К указанному генератору предъявляются следующие требования:
1. Большое количестве реализаций без повторения последовательности.
2. Равномерность распределение.
Как правило, генератор случайных чисел входит в компилятор языков высокого уровня с именем RAND. В частности, имеется такой генератор в средах программирования MATHCAD, MATHLAB. Генераторы вырабатывают случайную величину у, распределенную равновероятно в интервале . Если параметр xi выбирается распределенным равномерно, то пересчет величины y в параметр xi производится следующим образом:
.
Если параметр считается распределенным по закону, отличному от равновероятного, то для определения xi решается уравнение:
.
Общий алгоритм определения экстремума методом случайного поиска является следующим.
1. В ячейку L0 заносится начальное значение.
2. Обнуляется счетчик количества реализаций m = 0.
3. Обнуляется счетчик количества переменных i = 0.
4. Запускается генератор случайных чисел и формируется число у, равномерно распределенное в интервале от 0 до 1.
5. Определяется переменная xi:= {xi|}.
6. Пп. 4, 5 повторяются для .
7. Определяется функция качества L(X).
8. Выполняется основная процедура оптимизации.
9. Пп. 3 - 8 выполняются для 0 < m < M.
Если объем области допустимых решений равен , а объем области, обеспечивающей требуемую точность решения , то вероятность попадания в указанную область при однократной реализации функции качества
.
Количество попаданий в область допустимых решений определяется биномиальным распределением
где m, M - целые числа; - число сочетаний из M элементов по m.
Вероятность того, что хотя бы одна реализация попадет в область допустимых решений равна
Р = 1 - (1 - р)М.
Эта вероятностная мера и является фактором, определяющим точность метода случайного поиска. При заданной вероятности определения экстремума с заданной точностью количество реализаций определяется в виде:
.
Соответственно, вычислительная сложность алгоритма
,
где - вычислительная сложность получения случайного параметра и вычисления функции качества, соответственно.
Для понижения вычислительной сложности рекомендуется нормировать случайные величины в интервале о 0 до 1, а затем, после успешного решения задачи оптимизации производить обратный пересчет.
АЛГОРИТМ РАБОТЫ ПРОГРАММЫ
Исходя из теоретических сведений, составим алгоритм для программы, находящий экстремум. Для большей наглядности составим блок-схему.
Рисунок 1 Блок схема алгоритма
Данный алгоритм будет искать экстремум, соответствующий максимуму. Для получения минимума нужно изменить условие для сохранения значений, сохраняя туда новое значение, которое меньше старого.
ЛИСТИНГ ПРОГРАММЫ
uses graphABC;
var
del, n, m, ww, wh, x0, y0, keox, keoy: integer;
a, b: real;
function F(x: real): real; // Функция из условия, для которой ищем экстремум
begin
F:= exp(-x-1)+x*x+2*x-1;
end;
procedure interval(aint:real); // Процедура, выделяющая края интервала поиска на графике
var
yf:real;
begin
yf:= F(aint);
setpenwidth(3);
setPencolor(clgreen);
line(round(x0+m*aint*del+del), 0, round(x0+m*aint*del+del), wh);
end;
procedure ploshad_poiska(xpoisk, ypoisk: real);
{
Процедура проводит для каждого x и y найденного на этапе поиска линию,
постепенно закрашивая площадь поиска на интервале.
}
begin
setPencolor(clpurple);
setpenwidth(1);
if (ypoisk > 0) then
line(round(x0+m*xpoisk*del+del), y0, round(x0+m*xpoisk*del+del), round(y0-m*ypoisk*del+del));
if (ypoisk < 0) then
line(round(x0+m*xpoisk*del+del), y0, round(x0+m*xpoisk*del+del), round(y0+m*abs(ypoisk)*del+del));
end;
procedure finish(xpoisk, ypoisk: real); // Выводит линию и подписывает значения найденного экстремума на графике
var s: string;
begin
setPencolor(clblack);
setpenwidth(2);
if (ypoisk > 0) then
line(round(x0+m*xpoisk*del+del), y0, round(x0+m*xpoisk*del+del), round(y0-m*ypoisk*del+del*- 20));
s:=('Fin('+ xpoisk +') = '+ ypoisk);
textOut(round(x0+m*xpoisk*del+del-40),round(y0-m*ypoisk*del+del*- 40),s);
if (ypoisk < 0) then
line(round(x0+m*xpoisk*del+del), y0, round(x0+m*xpoisk*del+del), round(y0+m*abs(ypoisk)*del+del));
end;
procedure osi; // Процедура для отрисовывания сетки и осей координат
var
i: integer;
s: string;
begin
setpencolor(rgb(100,100,100));
for i:= 1 to keox do // Отрисовка сетки по оси y
begin
line(x0+m*i, 0, x0+m*i, wh);
line(x0-m*i, 0, x0-m*i, wh);
end;
for i:= 1 to keoy do // Отрисовка сетки по оси x
begin
line(0, y0+m*i, ww, y0+m*i);
line(0, y0-m*i, ww, y0-m*i);
end;
setPencolor(rgb(0,0,0));
setpenwidth(3);
line(x0,0,x0,wh); // Отрисовка оси y
line(x0+3,15,x0,0);
line(x0-3,15,x0,0);
line(0,y0,ww,y0); // Отрисовка оси x
line(ww-15,y0+3,ww,y0);
line(ww-15,y0-3,ww,y0);
for i:=1 to keox do begin // Подписи на оси x
s:=floatToStr(i/del);
textOut(x0+m*i,y0+2,s);
textOut(x0-m*i,y0+2,'-'+ s);
end;
for i:=1 to keoy do begin // Подписи на оси y
s:=floatToStr(i/del);
textOut(x0-14,y0-m*i,s);
textOut(x0-14,y0+m*i,'-'+ s);
end;
end;
procedure grafic; // Процедура для отрисовки графика функции
var
x,y:real;
xscr,yscr:integer;
begin
x:= -keox;
while x<keox do begin
y:= F(x);
xscr:= round((x0+x*m*del+del));
yscr:= round((y0-y*m*del+del));
putpixel(xscr,yscr,clred);
x:= x + 0.002;
end;
end;
procedure poisk(a, b, e: real; n: integer); // процедура, которая ищет экстремум функции
var
max_dx, y, dx, rand, x_rand, xp, fend, xend: real;
i: integer;
begin
fend:= F(a);
for i:= 0 to n do
begin
max_dx:= (b-a)/10*e; // максимальный шаг, за который нельзя выходить
rand:= (b-a)/max_dx; // количество подсчетов.
dx:= random*(b-a)*rand; // Шаг, получаемый в данной итерации
xp:= a+max_dx*dx;
if (xp > a) and (xp < b) then // проверка на то, находится ли полученный x в зоне поиска
begin
y:= F(xp);
if (y<fend) then // Если прошлое значение функции меньше нового
begin
fend:= y; // Получаем новое значение для предполагаемого экстремума
xend:= xp;
end;
ploshad_poiska(xp, y);
end
end;
finish(xend, fend);
end;
begin
del:= 1; // коэффициент масштабирования
m:= 60; //Размер деления сетки
ww:= 1000; // Размер окна по вертикали
wh:= 800; // Размер окна по горизонтали
x0:= ww div 2; // Начальное положение для x и осей по x
y0:= wh div 2;
keox:= ww div m; // количество точек, в которых вычисляется значение функции
keoy:= wh div 2 div m;
setwindowsize(ww,wh);
osi;
grafic;
a:= -2; // Левая граница для поиска
b:= 0; // Правая граница для поиска
interval(a);
interval(b);
Randomize;
n:= round(random*(keox-1)*keox); // Вычисляем количество точек для поиска
poisk(a,b,0.0001, n);
setpencolor(clblack);
end.
АНАЛИЗ РЕЗУЛЬТАТОВ РАБОТЫ ДЛЯ РАЗНЫХ ВХОДНЫХ ДАННЫХ
Посмотрим на результат работы первого испытания
Таблица 1
Испытание №1 |
||
Входные данные |
||
a |
-2 |
|
b |
0 |
|
e |
0.0001 |
|
Выходные данные |
||
F(x) |
-1.17280639981136 |
Рисунок 2 Выходные данные первого испытания
Посмотрим на результат работы второго испытания.
Таблица 2
Испытание №2 |
||
Входные данные |
||
a |
-1 |
|
b |
3 |
|
e |
0.0001 |
|
Выходные данные |
||
F(x) |
-1.17149885442691 |
Рисунок 3 результат второго испытания
Посмотрим на результат работы третьего испытания.
Таблица 3
Испытание №3 |
||
Входные данные |
||
a |
-4 |
|
b |
4 |
|
e |
0.0001 |
|
Выходные данные |
||
F(x) |
-1.17280915963144 |
Рисунок 5 результат третьего испытания
Как мы видим, в каждом из трех испытаний алгоритм находит приблизительное значение экстремума функции на заданном интервале при случайно заданном количестве точек для проверки.
ВЫВОД
В данной курсовой работе рассмотрен и применен метод Монте-Карло. Он действительно позволяет получать локальную точку экстремума на заданном интервале с заданной точностью. На точность измерений так же влияет количество точек, проверяемых на экстремум, поэтому нельзя сказать, что данный метод следует использовать в высокоточных вычислениях.
Стоит заметить, что метод Монте-Карло является довольно простым для реализации методом, что делает его очень популярным для простых вычислений.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Акименко А.А., Методические указания к курсовой работе / Т.А. Акименко. издательство ТулГу, 2020. 20 с.
Размещено на Allbest.ru
Подобные документы
Выбор наиболее эффективного метода поиска экстремума для функции. Оценка погрешности определения точки минимума. Проверка унимодальности уравнения аналитическим методом и по графику. Сравнение алгоритмов по количеству обращений к функции и по точности.
контрольная работа [909,0 K], добавлен 14.08.2019Методика разработки программной модели числового метода поиска экстремума функции двух переменных, конструирование ввода исходных данных и вывода с сохранением. Исследование ограничений на функцию, обусловленные методом поиска и средствами моделирования.
курсовая работа [195,4 K], добавлен 17.04.2010Основа технологии использования программного комплекса LabVIEW, достоинства системы. Программирование, основанное на архитектуре потоков данных. Методы нахождения экстремума. Использование метода Гаусса-Зейделя для поиска максимума двумерной функции.
контрольная работа [648,0 K], добавлен 18.03.2011Методика моделирования случайного процесса по заданной корреляционной функции и математическому ожиданию с использованием MatLab. Вычисление передаточной функций формирующего фильтра. Реализация случайного процесса. Значения корреляционной функции.
контрольная работа [1012,0 K], добавлен 23.12.2012Пример расчета экстремума функции методом прямого поиска с дискретным шагом. Результаты отладки программы на контрольных примерах. Составление инструкции по использованию программы. Обработка результатов исследований визуальными средствами Excel.
курсовая работа [1,0 M], добавлен 20.05.2012Обзор алгоритмов распознания объектов на двумерных изображениях. Выбор языка программирования. Обнаружение устойчивых признаков изображения. Исследование алгоритмов поиска объектов на плоскости. Модификация алгоритма поиска максимума дискретной функции.
дипломная работа [1,0 M], добавлен 16.06.2013Нахождение стационарной точки. Расчет безусловного экстремума функции методами прямого поиска. Графическое пояснение метода равномерного симплекса. Метод поиска Хука-Дживса. Метод сопряженных направлений Пауэлла. Разработка программного модуля расчетов.
курсовая работа [1,4 M], добавлен 16.09.2012Необходимые условия экстремума. Разработка машинного алгоритма и программы многомерной оптимизации для градиентного метода с использованием метода равномерного поиска. Проверка необходимых и достаточных условий экстремума для найденной точки минимума.
курсовая работа [249,8 K], добавлен 25.09.2013Применение и генерирование независимого случайного процесса. Исследование вариантов формирования случайных величин с разными законами распределения. Оценка их независимости с помощью построения гистограммы распределения в программной среде LabVIEW.
контрольная работа [611,5 K], добавлен 18.03.2011Классификация задач нелинейного программирования. Сущность методов безусловной одномерной оптимизации. Построение алгоритма случайного поиска, правило исключения интервалов. Понятие золотого сечения и квадратичной аппроксимации, метод хорд и касательных.
презентация [377,0 K], добавлен 30.10.2013