Математические методы решения задач

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.03.2024
Размер файла 245,4 K

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

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

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

Политехнический институт

Кафедра «Промышленная автоматика и робототехника»

КУРСОВАЯ РАБОТА

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

Выполнил: ст-т гр.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

...

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

  • Характеристика основных методов для решения различных задач с помощью случайных последовательностей. Реализация и проверка эффективности метода Монте-Карло при его применении на различных примерах. Алгоритм метода имитации. Издержки неопределенности.

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

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

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

  • Графоаналитический метод решения задач. Получение задачи линейного программирования в основном виде. Вычисление градиента и поиск экстремумов методом множителей Лагранжа. Параболоид вращения функции. Поиск решения на основе условий Куна-Таккера.

    контрольная работа [139,3 K], добавлен 13.09.2010

  • Некоторые сведения теории вероятностей. Математическое ожидание, дисперсия. Точность оценки, доверительная вероятность. Сущность метода Монте-Карло. Генераторы случайных чисел. Вычисление кратных интегралов. Описание пользовательского интерфейса.

    курсовая работа [301,5 K], добавлен 08.11.2013

  • Решение задач о распределении ресурсов на предприятии. Определение количества продукции для получения максимальной прибыли. Методы решения транспортных и линейных производственных задач симплексным методом. Сравнение мощности поставщиков и потребителей.

    контрольная работа [163,5 K], добавлен 10.12.2013

  • Построение пространства допустимых решений. Нахождение оптимального решения с помощью определения направления убывания целевой функции. Нахождение оптимальной точки. Поиск экстремумов методом множителей Лагранжа. Условия экстремума Куна-Таккера.

    контрольная работа [396,2 K], добавлен 13.09.2010

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

    курсовая работа [56,3 K], добавлен 05.07.2008

  • Сравнение эффективности программ Excel и Mathcad при решении задач нахождения корней нелинейного уравнения и поиска экстремумов функции. Проведение табулирования функции на заданном интервале. Построение графика двухмерной поверхности в Excel и Mathcad.

    курсовая работа [1,4 M], добавлен 07.05.2013

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

    курсовая работа [2,4 M], добавлен 25.04.2015

  • Анализ метода линейного программирования для решения оптимизационных управленческих задач. Графический метод решения задачи линейного программирования. Проверка оптимального решения в среде MS Excel с использованием программной надстройки "Поиск решения".

    курсовая работа [2,2 M], добавлен 29.05.2015

  • Расчет производства необходимого количества продукции для получения максимальной прибыли предприятия. Математическая модель для решения задач линейного программирования. Построение ограничений и целевых функций. Исследование чувствительности модели.

    задача [74,7 K], добавлен 21.08.2010

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

    презентация [981,0 K], добавлен 28.04.2014

  • Классы задач P и NP, их сводимость. Примеры NP-полных и NP-трудных задач. Сущность метода поиска с возвратом. Алгоритмы решения классических задач комбинаторного поиска. Решение задачи о восьми ферзях. Поиск оптимального решения методом ветвей и границ.

    презентация [441,5 K], добавлен 19.10.2014

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

    контрольная работа [316,1 K], добавлен 13.11.2014

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

    курсовая работа [56,0 K], добавлен 20.11.2015

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

    лабораторная работа [99,5 K], добавлен 16.12.2014

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

    контрольная работа [909,0 K], добавлен 14.08.2019

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

    дипломная работа [2,4 M], добавлен 13.08.2011

  • Ознакомление с методами решения оптимизационных задач. Алгоритм метода ломанных. Определение наименьшего значения целевой функции. Описание метода анализа математической модели. Расчет поиска минимума по методу ломаных. Листинг программы, интерфейс.

    курсовая работа [2,2 M], добавлен 06.12.2014

  • Особенности применения матриц, функций Given..Find и Given..Minerr для решения нелинейного уравнения типа 4sin x+х=5 для заданной точности с помощью математического пакета MathCAD. Создание базы данных "Расписание автобусов" на основе программы Ms Access.

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

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