Скачать .docx  

Реферат: Контрольная работа: Линейное программирование 2 3

Задача 1 (16.88)

Минимизировать функцию f(x) на всей числовой оси методом Ньютона. Критерием достижения требуемой точности считать выполнение неравенства .

Решение:

Найдем первую и вторую производные исходной функции:

Выберем начальное приближение . И осуществим вычисления по формуле

Результаты запишем в таблице

n

0

0

2

1

1

-0,2

1,91

-0,1649

2

-0,175697

1,908525

-0,0032

3

-0,17520305

1,908524

-0,0000013

n=1

n=2

n=3

n=4

Далее мы заканчиваем вычисления, потому что данная точность достигнута. В результате мы получаем: и .


Осуществим проверку при помощи встроенной функции Minimize:

,

Ответ:

и

Задача 2 (16.115)

Выписать матрицу Q квадратичной функции f(x), найти ее градиент в точке и убедиться в выпуклости f(x) в .

,

Решение:

Запишем исходную функцию в следующем виде:

,

где

Тогда матрица Q примет вид:


Найдем градиент в точке по формуле , где r – вектор-столбец и равен :

Подставляя в полученную матрицу , мы получаем следующее значение градиента в данной точке:

Теперь убедимся в выпуклости f(x) в . Для того, чтобы исходная функция была выпуклой в , достаточно, чтобы матрица Q была положительно определена. Для этого найдем угловые миноры матрицы Q и если они будут больше нуля, то функция f(x) будет выпуклой в .

,


Так как , ,то функция f(x) выпукла в .

Проверка в Mathcad :

Проверка на выпуклость и нахождение градиента в точке x0


Ответ: градиент равен и функция f(x) будет выпуклой в .

Задача 3 (16.136)

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

Решение:


Тогда производные исходной функции будут иметь вид:

Выберем начальное приближение . Тогда

Для нахождения точки минимума функции найдем нули ее производной:

Зная , мы определим следующим образом:

И так далее по выше описанной цепочке.

Реализуем решение данной задачи в математическом пакете Mathcad.

Функция имеет вид:


Тогда коэффициенты будут равны

Возьмем следующие начальное приближение и :

Далее пишем программу


В результате получаем искомое решение и функцию :

Ответ:

и

Задача 4 (16.155)

Минимизировать функцию f(x) методом сопряженных направлений, заканчивая вычисления при , .

Решение:

Тогда частные производные исходной функции будут иметь вид:

Решение будем искать по следующему алгоритму:


Шаг 1.

Выбрав начальное приближение

,

Для нахождения точки минимума функции используем метод перебора:

=>> , откуда

Шаг 2.

Для нахождения точки минимума функции используем метод перебора:

=>> ,


откуда

Шаг 3.

Для нахождения точки минимума функции используем метод перебора:

=>> , откуда

Шаг 4.

следовательно требуемая точность достигнута и


Ответ:

Задача 5 (16.193)

Решить задачу линейного программирования графическим методом.

Решение:

Изобразим на плоскости наш многоугольник ABCDE (красного цвета) и одну из линий уровня (розового цвета).

Линии AB соответствует уравнение , BC соответствует , CD соответствует , DE соответствует и EA соответствует

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


X2

Ответ: и

Задача 6 (16.205)

Решить задачу линейного программирования в каноническом виде графическим методом.

Решение:

Матрица системы будет иметь следующий вид:


Ранг этой матрицы равен . Тогда число свободных переменных равно , поэтому для решения задачи можно использовать графический метод. Решив систему ограничений – равенств относительно базисных переменных , , получим:

Исключая с помощью полученной системы переменные , из выражения для целевой функции, получаем:

С учетом условия неотрицательности , , и последних равенств получаем следующую задачу:

Изобразим на плоскости наш многоугольник ABCDEJ (красного цвета) и одну из линий уровня (розового цвета).

Линии AB соответствует уравнение , BC соответствует , CD соответствует , DE соответствует , EJ соответствует и JA соответствует .

Направление убывания функции указывает вектор . Совершая параллельный перенос линии уровня вдоль направления , мы видим, что целевая функция содержит сторону AB многоугольника ABCDEJ. Таким образом, все точки отрезка AB являются точками минимума функции . Так как концы A и B имеют координаты и соответственно, то найдем отсюда координаты и :

Тогда любая точка минимума представима в виде


где . Минимальное значение целевой функции

Ответ: бесконечное множество решений

, где и .

Задача 7 (16.216)

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

Решение:

Матрица системы имеет вид

.

Ее ранг равен 3. Введем дополнительные переменные и запишем условие вспомогательной задачи линейного программирования для рассматриваемого случая:


Считая дополнительные переменные базисными, запишем симплекс таблицу этой задачи, соответствующую угловой точке :

3

-2

3

2

9

1

2

-1

1

0

-1

-1

2

1

6

-3

1

-4

-4

-15

Произведем преобразования исходной симплекс-таблицы симплекс-методом следующим образом:

1) смотрим на нижнюю строку – выбираем тот столбец, в котором нижний элемент отрицательный, если таких столбцов несколько, то выбираем любой (в нашем случае выбираем первый столбец );

2) далее смотрим на последний и выбранный столбцы – сравниваем отношения элементов последнего и выбранного столбцов (в выбранном столбце берем только положительные числа), и выбираем тот элемент выбранного столбца, где отношение элементов будет наименьшим (в нашем случае 9/3 и 0/1, так как второе отношение наименьшее, следовательно, опорным элементом будет 1);

3) меняем местами переменные и , остальные переменные оставляем на своих местах;

4) на место опорного элемента ставим отношение 1/(опорный элемент);

5) на остальных местах разрешающей строки записываем соответствующие элементы исходной таблицы, деленные на опорный элемент;

6) на свободные места разрешающего столбца ставим со знаком минус соответствующие элементы исходной таблицы, деленные на опорный элемент;

7) оставшиеся свободные места в новой симплекс-таблице заполняем построчно следующим образом: из строки элементов исходной таблицы вычитаем произведение ее элемента из разрешающего столбца на уже заполненную разрешающую строку новой таблицы.

Производя преобразования симплекс-метода, получим такую последовательность симплекс-таблиц:

-3

-8

6

-1

9

1

2

-1

1

0

1

1

1

2

6

3

7

-7

-1

-15

-2

-6

5

1

9

1

2

-1

1

0

-1

-3

3

-2

6

4

9

-8

1

-15

-2/5

-6/5

1/5

1/5

9/5

3/5

4/5

1/5

6/5

9/5

1/5

3/5

-3/5

-13/5

3/5

4/5

-3/5

8/5

13/5

-3/5

0

2

-1

-5

3

1/3

-4/3

1

14/3

1

1/3

5/3

-1

-13/3

1

1

1

1

0

0

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

Ответ: и .

Задача 8 (16.237)

Решить полностью целочисленную задачу линейного программирования методом Гомори.

Решение:

Введем дополнительные переменные и запишем условие вспомогательной задачи линейного программирования для рассматриваемого случая:

Считая дополнительные переменные базисными, запишем симплекс таблицу этой задачи, соответствующую угловой точке :

1

0

2

1

8

1

1

0

-1

4

-1

2

1

3

6

-1

-3

-3

-3

-18

Произведем преобразования исходной симплекс-таблицы симплекс-методом следующим образом: смотрим на нижнюю строку – выбираем тот столбец, в котором нижний элемент отрицательный, если таких столбцов несколько, то выбираем любой (в нашем случае выбираем первый столбец ); далее смотрим на последний и выбранный столбцы – сравниваем отношения элементов последнего и выбранного столбцов (в выбранном столбце берем только положительные числа), и выбираем тот элемент выбранного столбца, где отношение элементов будет наименьшим (в нашем случае 9/3 и 0/1, так как второе отношение наименьшее, следовательно, опорным элементом будет 1); меняем местами переменные и , остальные переменные оставляем на своих местах; на место опорного элемента ставим отношение 1/(опорный элемент); а остальных местах разрешающей строки записываем соответствующие элементы исходной таблицы, деленные на опорный элемент; на свободные места разрешающего столбца ставим со знаком минус соответствующие элементы исходной таблицы, деленные на опорный элемент; оставшиеся свободные места в новой симплекс-таблице заполняем построчно следующим образом: из строки элементов исходной таблицы вычитаем произведение ее элемента из разрешающего столбца на уже заполненную разрешающую строку новой таблицы. Производя преобразования симплекс-метода, получим такую последовательность симплекс-таблиц:

4/3

-2/3

5/3

-1/3

6

2/3

5/3

1/3

1/3

6

-1/3

2/3

1/3

1/3

2

-2

-1

-2

1

-12

1

1

2

0

8

3/2

-5/2

-1/2

-1/2

1

-1/2

3/2

1/2

1/2

3

-5/2

3/2

-3/2

3/2

-9

1/2

1/2

1/2

0

4

7/4

-9/4

1/4

-1/2

3

-3/4

5/4

-1/4

1/2

1

-7/4

9/4

3/4

3/2

-3


-2/7

8/7

3/7

1/7

22/7

4/7

-9/7

1/7

-2/7

12/7

3/7

2/7

-1/7

2/7

16/7

1

0

1

1

0

Как видим, в последней строке таблицы все элементы положительны, то есть получаем решение и . Но это решение не удовлетворяет условию целочисленности, поэтому дополняем последнюю симплекс-таблицу строкой, используя следующие правила: среди нецелых элементов выбирается произвольный элемент , по r -ой строке симплекс-таблицы составляется дополнительное ограничение вида (здесь мы полагаем, что свободные переменные имеют номера m +1,…, n ). С помощью вспомогательной переменной это ограничение представляется в виде равенства и вводится в симплекс-таблицу дополнительной строкой

Где

,


где фигурные скобки означают дробную часть.

Таким образом, мы получаем следующую таблицу:

-2/7

8/7

3/7

1/7

22/7

4/7

-9/7

1/7

-2/7

12/7

3/7

2/7

-1/7

2/7

16/7

2/7

-1/7

-3/7

-1/7

-1/7

1

0

1

1

0

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

Для перехода к допустимому базисному решению производятся следующие операции:

а) строка с отрицательным свободным членом считается разрешающей;

б) если все коэффициенты , то задача не имеет решения, в противном случае номер l разрешающего столбца находится из условия:

в) совершается преобразование симплекс-таблицы с опорным элементом

Если в новой таблице по-прежнему есть хотя бы один отрицательный свободный член, то описанная процедура повторяется, начиная с операции а), необходимое число раз.

Применяя данные правила к нашей симплекс-таблице, мы получаем следующие преобразования:

-2/7

8/7

3/7

1/7

22/7

4/7

-9/7

1/7

-2/7

12/7

3/7

2/7

-1/7

2/7

16/7

2/7

-1/7

-3/7

-1/7

-1/7

1

0

1

1

0

2

8

-3

-1

2

-2

-9

4

1

3

1

2

-1

0

2

-2

-7

3

1

1

1

0

1

1

0

Полученная симплекс-таблица не только соответствует допустимому базисному решению, но и дает решение рассматриваемой задачи:

и

Ответ: и

Задача 9 (16.258)

Решить задачу дробно - линейного программирования.


Знаменатель целевой функции положителен при всех x из допустимого множества U, так как .

Вводим новые переменные

, ,

и получаем следующую задачу линейного программирования:

Неизвестные параметры мы можем уже из этих выражений найти:

,


Ответ: ,

Задача 10 (16.268)

Решить задачу квадратичного программирования.

,

Решение:

Матрица нашей квадратичной функции положительно определена. Наша исходная задача имеет вид:

(1)

, , (2)

, . (3)

На основании теоремы Куна-Таккера точка минимума целевой функции из (1) на допустимом множестве (2) и (3) может быть найдена как решение следующей системы уравнений с дополнительными переменными ; :


, ,

, ,

, ,

, ,

удовлетворяющее условию неотрицательности:

, , ,

, .

Применяя выше описанные условия, мы преобразуем исходную задачу в следующий вид:

Будем искать угловую точку множества, определяемого этой системой, методом искусственного базиса. Введем дополнительные переменные и в 3-е и 4-ое уравнения выше написанной системы, считая базисными переменными начальной угловой точки , , и .

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

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


Как видим, в последней строчке нет отрицательных чисел, следовательно, мы нашли решение и оно имеет вид и .

Ответ: и