86035 (612624), страница 4

Файл №612624 86035 (Линейное и нелинейное программирование) 4 страница86035 (612624) страница 42016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

b

x4

u2

F’

-6

-3/10

-1/2

x2

2

-2/5

1

x1

2

7/20

-1/4

x3

1

1/2

-5/2

X = (2, 2, 1, 0)

F = -F’ = 6



2.2.3 Метод ветвей и границ

2 12/5 3

x2 ≥ 3

x2 ≤ 2

x2


b

x1

x2

x3

12/5

-1/5

2/5

x4

19/10

3/10

-1/10

F’

-31/5

-2/5

-1/5

Задача № 1

Приводим к каноническому виду:

x3, x4, x5 – базисные переменные, x1, x2 – свободные переменные

b

x1

x2

x3

11

2

3

11/2

-5

-1/2

-1/2

x4

10

4

1

5/2

5/2

1/4

1/4

x5

2

0

1

0

0

0

F’

0

2

1

-5

-1/2

-1/2

b

x4

x2

x3

6

-1/2

5/2

12/5

-5

0

-5/2

x1

5/2

1/4

1/4

10

-1/2

0

-1/4

x5

2

0

1

2

2

0

1

F’

-5

-1/2

1/2

-1

0

-1/2

b

x4

x5

x3

1

-1/2

-5/2

x1

2

1/4

-1/4

x2

2

0

1

F’

-6

-1/2

-1/2

X = (2, 2, 1, 0, 0)

F’ = -6

F = -F’ = 6

Задача № 2

Решаем задачу с x2 ≥ 3 в подсистеме «Поиск решения» системы Excel. Получаем допустимое не оптимальное решение F = 5, X = (1, 3)

=2*$B$1+$B$2

1

=2*$B$1+3*$B$2

11

3

=4*$B$1+$B$2

10

=$B$2

3

5

1

11

11

3

7

10

3

3

Ограничения

Ячейка

Имя

Значение

Формула

Статус

Разница

$C$1

11

$C$1<=$D$1

связанное

0

$C$2

7

$C$2<=$D$2

не связан.

3

$C$3

3

$C$3>=$D$3

связанное

0



2.3 Задача целочисленного линейного программирования с булевскими переменными

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

Составить самостоятельно вариант для задачи целочисленного линейного программирования с булевскими переменными с учетом следующих правил: в задаче используется не менее 5 переменных, не менее 4 ограничений, коэффициенты ограничений и целевой функции выбираются произвольно, но таким образом, чтобы система ограничений была совместна. Задание состоит в том, чтобы решить ЗЦЛП с булевскими переменными, используя алгоритм Баллаша и определить снижение трудоемкости вычислений по отношению к решению задачи методом полного перебора.



2.3.2 Метод Баллаша

x4

x3

x2

x1

x5

Выполнение ограничений

Значение F

0

1

2

3

4

5

1

0

0

0

0

0

0

Fф=0

2

0

0

0

0

1

44

3

0

0

0

1

0

17

4

0

0

0

1

1

61

5

0

0

1

0

0

13

6

0

0

1

0

1

57

7

0

0

1

1

0

30

8

0

0

1

1

1

74

9

0

1

0

0

0

-10

+

+

+

+

+

Fф=-10

10

0

1

0

0

1

34

11

0

1

0

1

0

7

12

0

1

0

1

1

51

13

0

1

1

0

0

3

14

0

1

1

0

1

47

15

0

1

1

1

0

20

16

0

1

1

1

1

64

17

1

0

0

0

0

-49

+

+

+

+

+

Fф=-49

18

1

0

0

0

1

-5

19

1

0

0

1

0

-32

20

1

0

0

1

1

12

21

1

0

1

0

0

-36

22

1

0

1

0

1

8

23

1

0

1

1

0

-19

24

1

0

1

1

1

25

25

1

1

0

0

0

-59

+

+

+

+

+

Fф=-59

26

1

1

0

0

1

-15

27

1

1

0

1

0

-42

28

1

1

0

1

1

2

29

1

1

1

0

0

-46

30

1

1

1

0

1

-2

31

1

1

1

1

0

-29

32

1

1

1

1

1

15

Фильтрующее ограничение:



2.3.3 Определение снижения трудоемкости вычислений

Решение задачи методом полного перебора составляет 6*25=192 вычисленных выражения. Решение задачи методом Баллаша составляет 3*6+(25-3)=47 вычисленных выражений. Итого снижение трудоемкости вычислений по отношению к решению задачи методом полного перебора составляет .



3 Нелинейное программирование

3.1 Задача поиска глобального экстремума функции

3.1.1 Постановка задачи поиска глобального экстремума функции

Необходимо написать программа для поиска экстремума функции. Задание состоит в следующем: 1) найти точку глобального экстремума функции f(X) методом поиска по координатной сетке с постоянным шагом; 2) найти точку глобального экстремума функции f(X) методом случайного поиска; 3)сравнить результаты вычислений.



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

Метод поиска глобального минимума, называемый методом поиска по координатной сетке, является надежным, но применим только для задач малой размерности (n<4). Неправильный выбор начального шага сетки может привести к тому, что в действительности один из локальных минимумов может быть принят как глобальный. Из всех значений целевой функции, вычисленных в узлах координатной сетки, выбирается минимальное. Результат: число испытаний 905, f(X*) = -2.500, X*=(-0.500; 2.000)

Метод случайного поиска характеризуется намеренным введением элемента случайности в алгоритм поиска. Этот метод предполагает наличие генератора случайных чисел, обращаясь к которому, в любой нужный момент времени можно получить реализацию случайного вектора с заданным законом распределения. Результат: число испытаний 299, f(X*) = -2.469, X*=(-0.677; 2.173).

Расчет в системе MathCAD: f(X*) = -2.500, X*=(-0.500; 2.000)

Как видим, метод случайного поиска сократил число испытаний на 66%, при этом относительная погрешность составляет 1%. Т.е. мы достигли значительного сокращения вычислений с небольшой относительной погрешностью.



3.2 Задача одномерной оптимизации функции

3.2.1 Постановка задачи одномерной оптимизации функции

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



3.2.2 Метод дихотомии

Итерация 1

Итерация 2

Итерация 3

Итерация 4

После четырех итераций получим:



3.2.3 Метод Фибоначчи

Итерация 1

Итерация 2

Итерация 3

Итерация 4

Поиск окончен. Длина интервала:



3.2.4 Метод кубической аппроксимации



3.3 Задача многомерной оптимизации функции

3.3.1 Постановка задачи многомерной оптимизации функции

Минимизировать функцию, применяя следующие методы: нулевого порядка – Хука-Дживса, первого порядка – наискорейшего спуска (Коши), второго порядка – Ньютона, и провести сравнительный анализ методов оптимизации по количеству итераций, необходимых для поиска экстремума при фиксированной точности и начальных координатах поиска X(0)=[-1,-1]T.



3.3.2 Метод Хука – Дживса


Итерация 1

1 Исследующий поиск

2 Поиск по образцу

Итерация 2

1 Исследующий поиск

2 Поиск по образцу

Итерация 3

1 Исследующий поиск

2 Поиск по образцу

Поиск завершен



3.3.3 Метод наискорейшего спуска (метод Коши)


Итерация 1. Счет итераций k = 0

Итерация 2. Счет итераций k = 1

Поиск завершен



3.3.4 Метод Ньютона




3.3.5 Сравнение результатов вычислений

Метод Хука-Дживса сходится за три итерации, при этом происходит вычисление значения функции в 13 точках, всего 38 вычислений. Метод наискорейшего спуска (метод Коши) сходится за одну итерацию, 9 вычислений. Метод Ньютона сходится за одну итерация, 9 вычислений. Методы Коши и Ньютона в данном случае сходятся за одну итерацию, поскольку функция представляет собой функцию для сферы (линии уровня – концентрические окружности) и направление, противоположное градиенту функции, направлено на точку минимума. Из этого можно сделать вывод, что в случае функций такого вида использование метода Хука-Дживса нерационально.



Заключение

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

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



Библиографический список

1 Лященко И.Н. Линейное и нелинейное программирования / И.Н.Лященко, Е.А.Карагодова, Н.В.Черникова, Н.З.Шор. – К.: «Высшая школа», 1975, 372 с.

2 Методические указания для выполнения курсового проекта по дисциплине «Прикладная математика» для студентов специальности «Компьютерные системы и сети» дневной и заочной форм обучения / Сост.: И.А.Балакирева, А.В.Скатков– Севастополь: Изд-во СевНТУ, 2003. – 15 с.

3 Методические указания по изучению дисциплины «Прикладная математика», раздел «Методы глобального поиска и одномерной минимизации» / Сост. А.В.Скатков, И.А.Балакирева, Л.А.Литвинова – Севастополь: Изд-во СевГТУ, 2000. – 31с.

4 Методические указания для изучения дисциплины «Прикладная математика» для студентов специальности «Компьютерные системы и сети» Раздел «Решение задач целочисленного линейного программирования» дневной и заочной форм обучения / Сост.: И.А.Балакирева, А.В.Скатков – Севастополь: Изд-во СевНТУ, 2000. – 13 с.



ПРИЛОЖЕНИЕ

А Текст программы глобальной многомерной оптимизации

{$APPTYPE CONSOLE}

program GlobalMinimize;

const

large = 10e99;

var

a1, a2, b1, b2 : real;

a1n, a2n, b1n, b2n : real;

fmin, x1, x2 : real;

alpha, dV, eps : real;

Rho, P : real;

fT, fS : real;

d1, d2, dx1, dx2 : real;

x1min, x2min : real;

i, N : integer;

t : boolean;

function f(x1, x2 : real) : real;

begin

f := 2*sqr(x1) + 2*x1*x2 + sqr(x2) - 2*x1 - 3*x2

end;

function ceil(x : real) : integer;

var a : integer;

begin

a := trunc(x);

if frac(x) > 0 then

a := a + 1;

ceil := a

end;

function max(a, b : real) : real;

begin

if a > b then

max := a

else

max := b

end;

function min(a, b : real) : real;

begin

if a < b then

min := a

else

min := b

end;

begin

randomize;

writeln('Поиск глобального многомерного минимума функции');

writeln('(для курсового проекта по прикладной математике)');

writeln('Автор: Ткаченко К.С. М-21д');

writeln;

writeln('Введите интервал изменения x1');

write(' Введите a1 : '); readln(a1);

write(' Введите b1 : '); readln(b1);

writeln('Введите интервал изменения x2');

write(' Введите a2 : '); readln(a2);

write(' Введите b2 : '); readln(b2);

write('Введите погрешность eps : '); readln(eps);

write('Введите вероятность поиска P : '); readln(P);

write('Введите коэффициент alpha : '); readln(alpha);

write('Введите коэффициент dV : '); readln(dV);

writeln;

writeln('Алгоритм поиска глобального минимума по координатной '+

'сетке с равномерным шагом');

writeln;

t := false; N := 0;

fS := large; fmin := large;

a1n := a1; a2n := a2; b1n := b1; b2n := b2;

repeat

d1 := b1n - a1n; d2 := b2n - a2n;

dx1 := d1 / alpha; dx2 := d2 / alpha;

x1 := a1n; x2 := a2n;

fT := f(x1, x2);

N := N + 1;

if fT < fmin then

begin

fmin := fT;

x1min := x1; x2min := x2;

end;

repeat

repeat

x1 := x1 + dx1; (* Шаг 1 *)

fT := f(x1, x2);

N := N + 1;

if fT < fmin then (* Шаг 2 *)

begin

fmin := fT;

x1min := x1; x2min := x2;

end;

until x1 > b1n; (* Шаг 3 *)

x1 := a1n; x2 := x2 + dx2; (* Шаг 4 *)

fT := f(x1, x2); (* Шаг 5 *)

N := N + 1;

if fT < fmin then (* Шаг 6 *)

begin

fmin := fT;

x1min := x1; x2min := x2;

end;

until x2 > b2n; (* Шаг 7 *)

if abs(fS - fmin) > eps then (* Шаг 8 *)

begin (* Шаг 9 *)

fS := fmin;

a1n := max(x1min-dx1,a1n); b1n := min(x1min+dx1,b1n);

a2n := max(x2min-dx2,a2n); b2n := min(x2min+dx2,b2n);

end

else t := true; (* Шаг 10 *)

until t;

writeln('Число испытаний N = ', N);

writeln('fmin = ', fmin : 6 : 3);

writeln('x1min = ', x1min : 6 : 3);

writeln('x2min = ', x2min : 6 : 3);

writeln;

writeln('Алгоритм поиска глобального минимума функции '+

'методом случайного поиска');

writeln;

fmin := large;

x1min := fmin; x2min := fmin;

d1 := b1 - a1; d2 := b2 - a2;

Rho := dV/(d1 * d2);

N := ceil(ln(1 - P)/ln(1 - Rho));

writeln('Число испытаний N = ', N);

for i := 1 to N do (* Шаги 1, 2 *)

begin

x1 := a1 + random * d1; (* Шаги 3, 4 *)

x2 := a2 + random * d2;

fT := f(x1, x2); (* Шаг 5 *)

if fT < fmin then (* Шаг 6 *)

begin

fmin := fT;

x1min := x1;

x2min := x2

end;

end; (* Шаг 7 *)

writeln('fmin = ', fmin : 6 : 3);

writeln('x1min = ', x1min : 6 : 3);

writeln('x2min = ', x2min : 6 : 3);

end.



Б. Результаты работы программы

Поиск глобального многомерного минимума функции

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

Автор: Ткаченко К.С. М-21д

Введите интервал изменения x1

Введите a1 : -5

Введите b1 : 5

Введите интервал изменения x2

Введите a2 : -5

Введите b2 : 5

Введите погрешность eps : 0.0001

Введите вероятность поиска P : 0.95

Введите коэффициент alpha : 20

Введите коэффициент dV : 1

Алгоритм поиска глобального минимума по координатной сетке с равномерным шагом

Число испытаний N = 905

fmin = -2.500

x1min = -0.500

x2min = 2.000

Алгоритм поиска глобального минимума функции методом случайного поиска

Число испытаний N = 299

fmin = -2.469

x1min = -0.677

x2min = 2.173

Характеристики

Тип файла
Документ
Размер
8,13 Mb
Тип материала
Предмет
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее