Алгоритмы нахождения оптимальных решений поставленных задач
Метод ветвей и границ как алгоритмический метод нахождения оптимальных решений различных задач дискретной и комбинаторной оптимизации. Применение алгоритма перебора с отсевом подмножеств множества допустимых решений, не содержащих оптимальных решений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 30.05.2013 |
Размер файла | 164,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Вступление
1. Математическая формулировка задачи
2. Выбор метода решения и постановка задачи
3. Описание алгоритма решения задачи
4. Описание программы
5. Описание методики решения задачи по разработанной программе на основе контрольного примера
Заключение
Литература
Вступление
Метод ветвей и границ - общий алгоритмический метод для нахождения оптимальных решений различных задач оптимизации, особенно дискретной и комбинаторной оптимизации. По существу, метод является комбинаторным (алгоритм перебора) с отсевом подмножеств множества допустимых решений, не содержащих оптимальных решений. Метод был впервые предложен Ленд и Дойг в 1960 г. для решения задач целочисленного линейного программирования.
Метод ветвей и границ состоит в следующем: множество допустимых решений (планов) некоторым способом разбивается на подмножества, каждое из которых этим же способом снова разбивается на подмножества. Процесс продолжается до тех пор, пока не получено оптимальное целочисленное решение исходной задачи.
Методы типа ветвей и границ - это наиболее широко используемые в настоящее время методы решения не только целочисленных и частично целочисленных задач ЛП, но и других дискретных оптимизационных задач. Различные методы типа ветвей и границ существенно используют специфику
конкретных задач и поэтому заметно отличаются друг от друга. Однако
все они основаны на последовательном разбиении допустимого множества на подмножества (ветвлении) и вычислении оценок (границ), позволяющем отбрасывать подмножества, заведомо не содержащие решений задачи.
1. Математическая формулировка задачи
Пример: Методом Монте-Карло приближённо вычислить интеграл:
где область интегрирования определяется следующими неравенствами:
Размещено на http://www.allbest.ru/
Интеграл дан в приведенном виде, т. е. Область интегрирования расположена в единичном квадрате
Для решения задачи воспользуемся таблицей случайных чисел и следующими вычислениями:
Отсюда
,
и, следовательно, с формулы:
имеем:
Если приближенно принять
то получим:
2. Выбор метода решения и постановка задачи
алгоритм оптимизация комбинаторный дискретный
Использовать метод Монте-Карло рациональнее, так как его легче реализовать, и он требует меньшего количества вычислений.
Таким образом: метод решения задачи - метод Монте-Карло.
Постановка задачи - вычислить определённый интеграл методом Монте-Карло.
3. Описание алгоритма решения задачи
4. Описание программы
Программа реализации алгоритма написана на языке Paskal.
Таблица переменных
Переменная |
Назначение |
Тип |
|
a |
Верхняя граница интеграла |
array [0…20]of real |
|
b |
Нижняя граница интеграла |
array [0...20] of real |
|
pp |
Рабочая переменная |
array [0...20] of real |
|
pl |
Рабочая переменная |
array [0...20] of real |
|
pc |
Результат |
array [0...20] of real |
|
pt |
Рабочая переменная |
array [0...20] of real |
|
int |
Рабочая переменная |
char |
|
z |
Рабочая переменная |
array [0...20] of real |
|
S1 |
Уровень значимости |
real |
|
S2 |
Рабочая переменная |
real |
|
S3 |
Рабочая переменная |
real |
|
dh |
Переменная для определения результата |
real |
|
h |
Переменная для определения результата |
real |
|
e |
Рабочая переменная |
real |
|
i |
Переменная цикла |
Integer |
|
j |
Переменная цикла |
Integer |
|
n |
Счетчик цикла |
Integer |
program kurs;
uses crt;
var x,y,pp,pl,pc,pt,z:array [0..20] of real;
s1,s2,s3,dh,h,e:real;
i,j,n:integer;
int: char;
begin
clrscr;
textcolor(9);
writeln(' РАСЧОТНО-ГРАФИЧЕСКАЯ РАБОТА');
writeln(' ВЫЧИСЛЕНИЕ ИНТЕГРАЛОВ МЕТОДОМ МОНТЕ-КАРЛО.');
textcolor(green);
writeln(' ВЫПОЛНИЛА СТУДЕНТКА 3-ГО КУРССА');
writeln(' ЛИЗОГУБ ВАЛЕНТИНА ВИКТОРОВНА');
textcolor(green);
writeln('Введите нижнюю границу интегрирования ');
readln(a);
writeln('Введите верхнюю границу интегрирования ');
readln(b);
n:=10;
writeln('Введите точность интегрирования ');
readln(e);
textcolor(10);
writeln('Введите интеграл');
readln(int);
textcolor(13);
writeln('Вычисление интеграла ');
writeln(' ')
for i:=1 to 2 do begin
x[0]:=a;
h:=(b-x[0])/(i*n);
for j:=1 to n*i do x[j]:=x[j-1]+h;
for j:=0 to n*i do y[j]:=sqrt(1+x[j]*x[j]*x[j]){cos(x[j]*x[j])};
s1:=0;
s2:=0;
for j:=1 to round(i*n/2) do s1:=s1+y[2*j-1];
for j:=1 to round(i*n/2-1) do s2:=s2+y[2*j];
z[i]:=(h/3)*(y[0]+y[i*n]+4*s1+2*s2);
end;
textcolor(yellow);
writeln('По методу Монте-Карло интеграл равен:');
write(' pc=',z[i]:0:3);
dh:=abs(z[2]-z[1])/15;
writeln(', погрешность:',dh:14:10);
pp[1]:=0;
pl[1]:=0;
pc[1]:=0;
pt[1]:=0;
pp[2]:=1;
pl[2]:=1;
pc[2]:=1;
pt[2]:=1;
while((abs(pp[1]-pp[2])/3>e) and (abs(pl[1]-pl[2])/3>e) and (abs(pc[1]-pc[2])/3>e) and (abs(pt[1]-pt[2])/3>e)) do begin
for i:=1 to 2 do begin
h:=(b-x[0])/(n*i);
for j:=1 to n*i do begin
x[j]:=x[j-1]+h;
y[j]:=sqrt(1+x[j]*x[j]*x[j]);
end;
s1:=0;
s2:=0;
s3:=0;
for j:=1 to n*i do begin
s1:=s1+y[j-1];s2:=s2+y[j];
s3:=s3+sqrt(1+(sqrt(x[0]+h*(j-1)+h/2)))
end;
pp[3-i]:=h*s2;
pl[3-i]:=h*s1;
pc[3-i]:=h*s3;
pt[3-i]:=h*((y[0]-y[i*n])/2+s1*y[0]);
end;
n:=n+1;
end;
textcolor(20);
write('Для выхода из программы нажмите ENTER...');
readln;
end.
5. Описание методики решения задачи по разработанной программе на основе контрольного примера
Данная программа разработана на основе метода Монте-Карло. Исходными данными являются верхние, нижние границы интегрирования и погрешность интегрирования. В начале программы нас просят ввести верхнюю и нижнюю границы интегрирования - это могут быть любые числа, которые вводятся с клавиатуры. Наша задача состоит в том, чтобы определить приближенное значение интеграла с гарантированно малой оценкой погрешности. Для этого мы выбираем точность интегрирования из таблицы случайных чисел, равномерно распределённых на отрезке [0;5]
0,57705 |
1,35483 |
2,11578 |
3,65339 |
4,66674 |
|
0,71618 |
1,09393 |
2,93045 |
3,93382 |
4,99279 |
|
0,73710 |
1,30304 |
2,93011 |
3,05758 |
4,24202 |
|
0,70131 |
1,55186 |
2,42844 |
3,00336 |
4,94010 |
|
0,16961 |
1,64003 |
2,52906 |
3,88222 |
4,60981 |
|
0,53324 |
1,20514 |
2,09461 |
3,98585 |
4,13094 |
|
0,43166 |
1,00188 |
2,99602 |
3,52103 |
4,35193 |
|
0,26275 |
1,55709 |
2,69962 |
3,91827 |
4,64560 |
|
0,05926 |
1,86977 |
2,31311 |
3,07069 |
4,64559 |
|
0,66289 |
1,31303 |
2,27004 |
3,13928 |
4,68008 |
Вводим одно из этих чисел, затем вводим интеграл и считаем интеграл по формуле:
После чего получаем результат, который выводится на экран. После результата выводится погрешность. Для выхода из программы нужно нажать ENTER.
Контрольный пример
РАСЧОТНО-ГРАФИЧЕСКАЯ РАБОТА
ВЫЧИСЛЕНИЕ ИНТЕГРАЛОВ МЕТОДОМ МОНТЕ-КАРЛО
Введите нижнюю границу интегрирования
0
Введите верхнюю границу интегрирования
9
Введите точность интегрирования
0,57705
Введите интеграл
(2x2+4x+9) d x
ВЫЧИСЛЕНИЕ ИНТЕГРАЛА
По методу Монте-Карло интеграл равен
рc=40.256, погрешность 0,0001579347
ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ ENTER…..
Введите нижнюю границу интегрирования
0
Введите верхнюю границу интегрирования
9
Введите точность интегрирования
1,35483
Введите интеграл
(2x2+4x+9) d x
ВЫЧИСЛЕНИЕ ИНТЕГРАЛА
По методу Монте-Карло интеграл равен
рc=40.256, погрешность 0,0001579498
ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ ENTER…..
Введите нижнюю границу интегрирования
0
Введите верхнюю границу интегрирования
9
Введите точность интегрирования
2,11578
Введите интеграл
(2x2+4x+9) d x
ВЫЧИСЛЕНИЕ ИНТЕГРАЛА
По методу Монте-Карло интеграл равен
рc=40.256, погрешность 0,0001579627
ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ ENTER…..
Введите нижнюю границу интегрирования
0
Введите верхнюю границу интегрирования
9
Введите точность интегрирования
3,65339
Введите интеграл
(2x2+4x+9) d x
ВЫЧИСЛЕНИЕ ИНТЕГРАЛА
По методу Монте-Карло интеграл равен
рc=40.256, погрешность 0,0001579828
ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ ENTER…..
Введите нижнюю границу интегрирования
0
Введите верхнюю границу интегрирования
9
Введите точность интегрирования
4,66674
Введите интеграл
(2x2+4x+9) d x
ВЫЧИСЛЕНИЕ ИНТЕГРАЛА
По методу Монте-Карло интеграл равен
рc=40.256, погрешность 0,000157996
ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ ENTER…..
По результатам мы видим, что с уменьшением точности погрешность увеличивается.
Проверка
Из выше проведённых примеров мы убедились, что метод Монте-Карло вычисляет точнее интеграл чем мы вычисляем его в ручную
Заключение
Часть пользователей предубеждена против метода Монте-Карло вследствие того, что малость погрешности метода обеспечивается лишь с некоторой вероятностью, и вследствие этого отрицает правомерность его использования. Поэтому применение метода Монте-Карло вызвано обстановкой, когда трудно надеяться на получение приближенного значения интеграла с гарантированно малой оценкой погрешности. После проведения контрольного примера мы убедились, что с уменьшением точности погрешность интегрирования растёт.
Литература
1. Математические методы в технологических исследованиях / Рыжов Э.В., Горленко О.А. Отв. ред. Гавриш А.Г.; АН УССР. Ин-т сверхтвердых материалов, Киев: Наук. думка, 1996. - 184с.
2. Методы анализа данных: Подход, основанный на методе динамических сгущений; Пер. с фр./ Кол. авт. под рук. Э. Дидэ. Под ред. и с предисловием С.А. Айвазяна и В.М. Бухштабера. - М.: Финансы и статистика, 1985 - 357с.
3. Оптимизация технологических процессов в машиностроении. Душинский В.В. Пуховский Е.С. Радченко С.Г. Под общ. ред. канд. техн. наук Г.Э. Таурита "Техника", 1977, 176с.
Размещено на Allbest.ru
...Подобные документы
Постановка и решение дискретных оптимизационных задач методом дискретного программирования и методом ветвей и границ на примере классической задачи коммивояжера. Этапы построения алгоритма ветвей и границ и его эффективность, построение дерева графов.
курсовая работа [195,5 K], добавлен 08.11.2009Основные способы решения задач целочисленного программирования: округление решений до целого, метод полного перебора, применение оптимизационных алгоритмов. Алгоритм метода ветвей и границ. Пример с оптимизацией побочного производства лесничества.
презентация [323,6 K], добавлен 30.10.2013Сущность задач оптимизации и методы их решения с ориентацией на современные средства компьютерной техники. Область допустимых решений. Структура оптимизационной модели. Проверка правильности нахождения точек координат методом половинного деления.
курсовая работа [2,4 M], добавлен 25.04.2015Теория математических моделей принятия оптимальных решений. Принятие решения в условиях неопределённости. Критерий пессимизма-оптимизма Гурвица, минимаксного риска Сэвиджа, Ходжа-Лемана. Разработка программного приложения. Программная среда разработки.
дипломная работа [999,7 K], добавлен 23.04.2015Виды и оценка различных численных методов нелинейного программирования. Разработка способов вычисления оптимальных решений. Целевая функция метода проекции антиградиента. Решение тестовых задач в MS Excel. Определение направления проекции антиградиента.
курсовая работа [216,1 K], добавлен 22.01.2015Разработка экспертной системы диагностики и выбора оптимальных решений. Формирование медицинской базы. Структура программного средства. Работа с базами данных. Функционирование программного средства, добавление и редактирование заболеваний, симптомов.
дипломная работа [5,5 M], добавлен 23.03.2012Содержание фундаментальной теории гена. Описание простого генетического алгоритма поиска оптимальных решений. Сущность понятий "кроссинговер", "сайт", "иллегальная рекомбинация". Этапы реализации алгоритма Девиса по перераспределению участков хромосом.
контрольная работа [23,7 K], добавлен 17.09.2010Модификация алгоритма RPC таким образом, чтобы он не требовал входного параметра, но сохранил свою гибкость при решении задачи нахождения максимальной клики для разных графов. Метод ветвей и границ. Построение функции-классификатора. Листинг алгоритма.
курсовая работа [197,8 K], добавлен 06.10.2016Особенности метода ветвей и границ как одного из распространенных методов решения целочисленных задач. Декомпозиция задачи линейного программирования в алгоритме метода ветвей и границ. Графический, симплекс-метод решения задач линейного программирования.
курсовая работа [4,0 M], добавлен 05.03.2012Использование конечного двойственного метода для корректировки решений близких задач линейно-квадратичного программирования. Разработка программы на языке С для решения и корректировки решений. Двойственная задача. Основные понятия и утверждения.
курсовая работа [165,9 K], добавлен 01.06.2014Предмет, постановка и особенности задач дискретного программирования. Задачи с неделимостями и с разрывными целевыми функциями. Экстремальные комбинаторные задачи. Примеры решений задач дискретного программирования методом ветвей и границ, методом Гомори.
курсовая работа [211,3 K], добавлен 22.05.2013Описание процесса нахождения оптимальных параметров ПИД регулятора. Овладение методами математического описания систем. Рассмотрение и применение методов синтеза непрерывных и дискретных систем автоматического управления с помощью MATLAB Simulink.
курсовая работа [1,7 M], добавлен 23.12.2015Человеко-машинные комплексы, специально предназначенные для принятия решений. Процесс принятия решений и его этапы. Методы поиска новых вариантов решений: дерево решений, морфологические таблицы, конференции идей. Принцип математической оценки тенденций.
курсовая работа [272,1 K], добавлен 30.07.2009Сущность математических моделей, классификация и принципы их построения. Анализ операционного исследования. Этапы решения задачи принятия оптимальных решений с помощью ЭВМ. Примеры задач линейного программирования. Математические методы экспертных оценок.
курсовая работа [56,0 K], добавлен 20.11.2015Разработка программного средства для поиска альтернативных решений многокритериальных задач. Проектирование программного средства с помощью объектно-ориентированного подхода. Пример листинга программного кода. Особенности работы программы на примере.
контрольная работа [346,5 K], добавлен 11.06.2011Алгоритмы нахождения кратчайшего пути: анализ при помощи математических объектов - графов. Оптимальный маршрут между двумя вершинами (алгоритм Декстры), всеми парами вершин (алгоритм Флойда), k-оптимальных маршрутов между двумя вершинами (алгоритм Йена).
курсовая работа [569,6 K], добавлен 16.01.2012Принятие решений в условиях неопределенности. Классические и производные критерии принятия решений. Критерии Байеса-Лапласа, Сэвиджа, Гурвица, Ходжа-Лемана и Гермейра. Графоаналитический метод решения матричных игр. Основные элементы матрицы решений.
контрольная работа [1,4 M], добавлен 26.04.2012Исследование типовых примеров задач оптимизации. Реализация программы в среде MatLab для их решения. Изучение функций нелинейной оптимизации. Определение оптимума целевой функции одной или нескольких переменных. Поиск оптимальных настроек регулятора.
лабораторная работа [188,8 K], добавлен 07.12.2016Теория оптимизации, принципы построения алгоритмов оптимальных решений. Основные понятия: проектные параметры, целевые функции, поиск минимума и максимума, пространство проектирования, ограничения – равенства и неравенства, локальный и глобальный оптимум.
реферат [72,3 K], добавлен 14.09.2009Решение задач по информатике, перебор различных комбинаторных конфигураций объектов и выбор наилучшего, с точки зрения условия задачи. Генерация k-элементных подмножеств, всех подмножеств данного множества, всех перестановок n-элементного множества.
реферат [44,0 K], добавлен 03.01.2010