Помощь в написании студенческих работ
Антистрессовый сервис

Методы оптимизации

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Экономический смысл дополнительных переменных: дополнительные перемены задачи ЛП обозначают излишки сырья, времени, других ресурсов, остающихся в производстве данного оптимального плана. Границы области допустимых решений Пересечением полуплоскостей будет являться область, координаты точек которого удовлетворяют условию неравенствам системы ограничений задачи. В 1-м неравенстве смысла (?) вводим… Читать ещё >

Методы оптимизации (реферат, курсовая, диплом, контрольная)

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых»

«Управление и информатика в технических и экономических системах»

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

«Методы оптимизации»

Вариант № 4

Владимир, 2014

1. Задача о кратчайших путях в графе

2. Задача о критическом пути в графе

3. Задача о максимальном патоке в графе

4. Задача об оптимальном распределении заданного потока в транспортной сети

5. Задача линейного программирования, решаемая графическим методом

6. Решение задачи ЛП симплекс-методом

7. Несбалансированная транспортная задача

8. Численные методы решения одномерных задач статической оптимизации

1. Задача о кратчайших путях в графе

X1

X2

X3

X4

X5

X6

X7

X8

X9

X10

X1

X2

X3

X4

X5

X6

X7

X8

X9

X10

1) Исход: X1

2) Строим график

3)Запишем шаги

X1->X4 l=4

X1->X2 l=13

X1->X3 l=13

X4

X1->X6 l=13

X3

X1->X9 l=17

X4

X1->X8 l=19

X1->X5 l=24

X7

X1->X7 l=25

X4, X6

X1->X10 l=28

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

2. Задача о критическом пути в графе Ответ: C1 -> C2 -> C3 -> C9 -> C8 -> C10 -> C12 -> C13 = 61

3. Задача о максимальном патоке в графе

1)Строим рисунок.

2) S=X1 (исход) B=X6 (сход)

S = (7+9) = 16

B = (7+1+8) = 16

Ответ: 16.

4. Задача об оптимальном распределении заданного потока в транспортной сети

1) Строим граф

P=0,8

2) Находим P0 =16*0,8=12,8

3)Решаем.

3.1)

Lk = (X1,X3,X6)=9

Ck = (7,7) = 7

Q1 = 9*7 = 7

P = 7

Pk = 12,8 — 7 = 5,8.

3.2)

Lk = (X1,X2,X4,X6) = 16.

Lk = (9,8,13) = 8

Q = 16*7 = 112

P = 5,8

Pk = 5,8 — 5,8 = 0

4) Строим новый граф

5) Расписываем шаги

P1,3 = 7 P1,2 = 5,8

P3,6 = 7 P2,4 = 5,8

P4,6 = 5,8

5. Задача линейного программирования, решаемая графическим методом Необходимо найти минимальное значение целевой функции F = -x1+2×2 > min, при системе ограничений:

x1-x2?3

(1)

2x1−3×2?0

(2)

2x1-x2=4

(3)

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

Или

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

Обозначим границы области многоугольника решений.

Рассмотрим целевую функцию задачи F = -x1+2×2 > min.

Построим прямую, отвечающую значению функции F = 0: F = -x1+2×2 = 0. Вектор-градиент, составленный из коэффициентов целевой функции, указывает направление минимизации F (X). Начало вектора — точка (0; 0), конец — точка (-1; 2). Будем двигать эту прямую параллельным образом. Поскольку нас интересует минимальное решение, поэтому двигаем прямую до первого касания обозначенной области. На графике эта прямая обозначена пунктирной линией.

Область допустимых решений представляет собой многоугольник Прямая F (x) = const пересекает область в точке A. Так как точка A получена в результате пересечения прямых (1) и (3), то ее координаты удовлетворяют уравнениям этих прямых:

x1-x2=3

2x1-x2=4

Решив систему уравнений, получим: x1 = 1, x2 = -2

Откуда найдем минимальное значение целевой функции:

F (X) = -1*1 + 2*(-2) = -5

x1

x2

B

F (x)

— 1

— 2

=>

— 7

— 2

<=

— 1

— 3

>=

— 1

=

поток распределение транспортный оптимизация

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

Определим максимальное значение целевой функции F (X) = - x1 + x2 — 2×3 + 3×4 + x5 при следующих условиях-ограничений.

x1 + 2×2 — x3 — 2×4 + x5?3

— x1 — x2 + x3 + 2×4 + x5?1

2x1 + x2 + x3 — x4?1

Для построения первого опорного плана систему неравенств приведем к системе уравнений путем введения дополнительных переменных (переход к канонической форме).

В 1-м неравенстве смысла (?) вводим базисную переменную x6. В 2-м неравенстве смысла (?) вводим базисную переменную x7. В 3-м неравенстве смысла (?) вводим базисную переменную x8.

1x1 + 2×2−1×3−2×4 + 1×5 + 1×6 + 0×7 + 0×8 = 3

— 1×1−1×2 + 1×3 + 2×4 + 1×5 + 0×6 + 1×7 + 0×8 = 1

2x1 + 1×2 + 1×3−1×4 + 0×5 + 0×6 + 0×7 + 1×8 = 1

Матрица коэффициентов A = a (ij) этой системы уравнений имеет вид:

— 1

— 2

— 1

— 1

— 1

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

Экономический смысл дополнительных переменных: дополнительные перемены задачи ЛП обозначают излишки сырья, времени, других ресурсов, остающихся в производстве данного оптимального плана.

Решим систему уравнений относительно базисных переменных: x6, x7, x8

Полагая, что свободные переменные равны 0, получим первый опорный план:

X1 = (0,0,0,0,0,3,1,1)

Базисное решение называется допустимым, если оно неотрицательно.

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

x6

— 1

— 2

x7

— 1

— 1

x8

— 1

F (X0)

— 1

— 3

— 1

Переходим к основному алгоритму симплекс-метода.

Итерация № 0.

1. Проверка критерия оптимальности.

Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.

2. Определение новой базисной переменной.

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

3. Определение новой свободной переменной.

Вычислим значения Di по строкам как частное от деления: bi / ai4

и из них выберем наименьшее:

min (-, 1: 2 , —) = Ѕ

Следовательно, 2-ая строка является ведущей.

Разрешающий элемент равен (2) и находится на пересечении ведущего столбца и ведущей строки.

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

min

x6

— 1

— 2

;

x7

— 1

— 1

½

x8

— 1

;

F (X1)

— 1

— 3

— 1

4. Пересчет симплекс-таблицы.

Формируем следующую часть симплексной таблицы.

Вместо переменной x7 в план 1 войдет переменная x4.

Строка, соответствующая переменной x4 в плане 1, получена в результате деления всех элементов строки x7 плана 0 на разрешающий элемент РЭ=2

На месте разрешающего элемента в плане 1 получаем 1.

В остальных клетках столбца x4 плана 1 записываем нули.

Таким образом, в новом плане 1 заполнены строка x4 и столбец x4.

Все остальные элементы нового плана 1, включая элементы индексной строки, определяются по правилу прямоугольника.

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

НЭ = СЭ — (А*В)/РЭ СТЭ — элемент старого плана, РЭ — разрешающий элемент (2), А и В — элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ.

Представим расчет каждого элемента в виде таблицы:

B

x 1

x 2

x 3

x 4

x 5

x 6

x 7

x 8

3-(1 * -2):2

1-(-1 * -2):2

2-(-1 * -2):2

— 1-(1 * -2):2

— 2-(2 * -2):2

1-(1 * -2):2

1-(0 * -2):2

0-(1 * -2):2

0-(0 * -2):2

1: 2

— 1: 2

— 1: 2

1: 2

2: 2

1: 2

0: 2

1: 2

0: 2

1-(1 * -1):2

2-(-1 * -1):2

1-(-1 * -1):2

1-(1 * -1):2

— 1-(2 * -1):2

0-(1 * -1):2

0-(0 * -1):2

0-(1 * -1):2

1-(0 * -1):2

0-(1 * -3):2

1-(-1 * -3):2

— 1-(-1 * -3):2

2-(1 * -3):2

— 3-(2 * -3):2

— 1-(1 * -3):2

0-(0 * -3):2

0-(1 * -3):2

0-(0 * -3):2

Получаем новую симплекс-таблицу:

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

x6

x4

½

— ½

— ½

½

½

½

x8

3/2

3/2

½

3/2

½

½

F (X1)

3/2

— ½

— 5/2

7/2

½

3/2

Итерация № 1.

1. Проверка критерия оптимальности.

Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.

2. Определение новой базисной переменной.

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

3. Определение новой свободной переменной.

Вычислим значения Di по строкам как частное от деления: bi / ai2

и из них выберем наименьшее:

min (4: 1 , —, 11/2: ½) = 3

Следовательно, 3-ая строка является ведущей.

Разрешающий элемент равен (½) и находится на пересечении ведущего столбца и ведущей строки.

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

min

x6

x4

½

— ½

— ½

½

½

½

;

x8

11/2

11/2

½

11/2

½

½

F (X2)

11/2

— ½

— 21/2

31/2

½

11/2

4. Пересчет симплекс-таблицы.

Формируем следующую часть симплексной таблицы.

Вместо переменной x8 в план 2 войдет переменная x2.

Строка, соответствующая переменной x2 в плане 2, получена в результате деления всех элементов строки x8 плана 1 на разрешающий элемент РЭ=½

На месте разрешающего элемента в плане 2 получаем 1.

В остальных клетках столбца x2 плана 2 записываем нули.

Таким образом, в новом плане 2 заполнены строка x2 и столбец x2.

Все остальные элементы нового плана 2, включая элементы индексной строки, определяются по правилу прямоугольника.

Представим расчет каждого элемента в виде таблицы:

B

x 1

x 2

x 3

x 4

x 5

x 6

x 7

x 8

4-(11/2 * 1):½

0-(11/2 * 1):½

1-(½ * 1):½

0-(11/2 * 1):½

0-(0 * 1):½

2-(½ * 1):½

1-(0 * 1):½

1-(½ * 1):½

0-(1 * 1):½

½-(11/2 * -½):½

— ½-(11/2 * -½):½

— ½-(½ * -½):½

½-(11/2 * -½):½

1-(0 * -½):½

½-(½ * -½):½

0-(0 * -½):½

½-(½ * -½):½

0-(1 * -½):½

11/2: ½

11/2: ½

½: ½

11/2: ½

0: ½

½: ½

0: ½

½: ½

1: ½

11/2-(11/2 * -21/2):½

— ½-(11/2 * -21/2):½

— 21/2-(½ * -21/2):½

31/2-(11/2 * -21/2):½

0-(0 * -21/2):½

½-(½ * -21/2):½

0-(0 * -21/2):½

11/2-(½ * -21/2):½

0-(1 * -21/2):½

Получаем новую симплекс-таблицу:

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

x6

— 3

— 3

— 2

x4

x2

F (X2)

5. Проверка критерия оптимальности.

Среди значений индексной строки нет отрицательных. Поэтому эта таблица определяет оптимальный план задачи.

Окончательный вариант симплекс-таблицы:

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

x6

— 3

— 3

— 2

x4

x2

F (X3)

Оптимальный план можно записать так:

x4 = 2

x2 = 3

F (X) = 3*2 + 1*3 = 9

x1

x2

x3

x4

x5

B

F (x)

— 1

— 2

=>

— 1

— 2

<=

— 1

— 1

<=

— 1

<=

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

Запасы

Потребности

Проверим необходимое и достаточное условие разрешимости задачи.

?a = 60 + 52 + 52 = 164

?b = 27 + 40 + 43 + 41 = 151

Как видно, суммарная потребность груза в пунктах назначения превышает запасы груза на базах. Следовательно, модель исходной транспортной задачи является открытой. Чтобы получить закрытую модель, введем дополнительную (фиктивную) базу с запасом груза, равным 13 (164—151). Тарифы перевозки единицы груза из базы во все магазины полагаем равны нулю.

Занесем исходные данные в распределительную таблицу.

Запасы

Потребности

Этап I. Поиск первого опорного плана.

1. Используя метод северо-западного угла, построим первый опорный план транспортной задачи.

План начинается заполняться с верхнего левого угла.

Искомый элемент равен 3

Для этого элемента запасы равны 60, потребности 27. Поскольку минимальным является 27, то вычитаем его.

x11 = min (60,27) = 27.

60 — 27 = 33

x

x

27 — 27 = 0

Искомый элемент равен 8

Для этого элемента запасы равны 33, потребности 40. Поскольку минимальным является 33, то вычитаем его.

x12 = min (33,40) = 33.

x

x

x

33 — 33 = 0

x

x

40 — 33 = 7

Искомый элемент равен 3

Для этого элемента запасы равны 52, потребности 7. Поскольку минимальным является 7, то вычитаем его.

x22 = min (52,7) = 7.

x

x

x

x

52 — 7 = 45

x

x

7 — 7 = 0

Искомый элемент равен 8

Для этого элемента запасы равны 45, потребности 43. Поскольку минимальным является 43, то вычитаем его.

x23 = min (45,43) = 43.

x

x

x

x

45 — 43 = 2

x

x

x

43 — 43 = 0

Искомый элемент равен 4

Для этого элемента запасы равны 2, потребности 41. Поскольку минимальным является 2, то вычитаем его.

x24 = min (2,41) = 2.

x

x

x

x

x

2 — 2 = 0

x

x

x

41 — 2 = 39

Искомый элемент равен 6

Для этого элемента запасы равны 52, потребности 39. Поскольку минимальным является 39, то вычитаем его.

x34 = min (52,39) = 39.

x

x

x

x

x

x

x

x

52 — 39 = 13

39 — 39 = 0

Искомый элемент равен 0

Для этого элемента запасы равны 13, потребности 13. Поскольку минимальным является 13, то вычитаем его.

x35 = min (13,13) = 13.

x

x

x

x

x

x

x

x

13 — 13 = 0

13 — 13 = 0

Запасы

3[27]

8[33]

3[7]

8[43]

4[2]

6[39]

0[13]

Потребности

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

2. Подсчитаем число занятых клеток таблицы, их 7, а должно быть m + n — 1 = 7. Следовательно, опорный план является невырожденным.

Значение целевой функции для этого опорного плана равно:

F (x) = 3*27 + 8*33 + 3*7 + 8*43 + 4*2 + 6*39 + 0*13 = 952

Этап II. Улучшение опорного плана.

Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.

u1 + v1 = 3; 0 + v1 = 3; v1 = 3

u1 + v2 = 8; 0 + v2 = 8; v2 = 8

u2 + v2 = 3; 8 + u2 = 3; u2 = -5

u2 + v3 = 8; -5 + v3 = 8; v3 = 13

u2 + v4 = 4; -5 + v4 = 4; v4 = 9

u3 + v4 = 6; 9 + u3 = 6; u3 = -3

u3 + v5 = 0; -3 + v5 = 0; v5 = 3

v1=3

v2=8

v3=13

v4=9

v5=3

u1=0

3[27]

8[33]

u2=-5

3[7]

8[43]

4[2]

u3=-3

6[39]

0[13]

Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vj > cij

(1;3): 0 + 13 > 4; ?13 = 0 + 13 — 4 = 9

(1;4): 0 + 9 > 5; ?14 = 0 + 9 — 5 = 4

(1;5): 0 + 3 > 0; ?15 = 0 + 3 — 0 = 3

(3;2): -3 + 8 > 4; ?32 = -3 + 8 — 4 = 1

(3;3): -3 + 13 > 2; ?33 = -3 + 13 — 2 = 8

max (9,4,3,1,8) = 9

Выбираем максимальную оценку свободной клетки (1;3): 4

Для этого в перспективную клетку (1;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».

Запасы

3[27]

8[33][-]

4[+]

3[7][+]

8[43][-]

4[2]

6[39]

0[13]

Потребности

Цикл приведен в таблице (1,3 > 1,2 > 2,2 > 2,3).

Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т. е. у = min (1, 2) = 33. Прибавляем 33 к объемам грузов, стоящих в плюсовых клетках и вычитаем 33 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.

Запасы

3[27]

4[33]

3[40]

8[10]

4[2]

6[39]

0[13]

Потребности

Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.

u1 + v1 = 3; 0 + v1 = 3; v1 = 3

u1 + v3 = 4; 0 + v3 = 4; v3 = 4

u2 + v3 = 8; 4 + u2 = 8; u2 = 4

u2 + v2 = 3; 4 + v2 = 3; v2 = -1

u2 + v4 = 4; 4 + v4 = 4; v4 = 0

u3 + v4 = 6; 0 + u3 = 6; u3 = 6

u3 + v5 = 0; 6 + v5 = 0; v5 = -6

v1=3

v2=-1

v3=4

v4=0

v5=-6

u1=0

3[27]

4[33]

u2=4

3[40]

8[10]

4[2]

u3=6

6[39]

0[13]

Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vj > cij

(3;1): 6 + 3 > 8; ?31 = 6 + 3 — 8 = 1

(3;2): 6 + -1 > 4; ?32 = 6 + -1 — 4 = 1

(3;3): 6 + 4 > 2; ?33 = 6 + 4 — 2 = 8

max (1,1,8) = 8

Выбираем максимальную оценку свободной клетки (3;3): 2

Для этого в перспективную клетку (3;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».

Запасы

3[27]

4[33]

3[40]

8[10][-]

4[2][+]

2[+]

6[39][-]

0[13]

Потребности

Цикл приведен в таблице (3,3 > 3,4 > 2,4 > 2,3).

Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т. е. у = min (2, 3) = 10. Прибавляем 10 к объемам грузов, стоящих в плюсовых клетках и вычитаем 10 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.

Запасы

3[27]

4[33]

3[40]

4[12]

2[10]

6[29]

0[13]

Потребности

Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.

u1 + v1 = 3; 0 + v1 = 3; v1 = 3

u1 + v3 = 4; 0 + v3 = 4; v3 = 4

u3 + v3 = 2; 4 + u3 = 2; u3 = -2

u3 + v4 = 6; -2 + v4 = 6; v4 = 8

u2 + v4 = 4; 8 + u2 = 4; u2 = -4

u2 + v2 = 3; -4 + v2 = 3; v2 = 7

u3 + v5 = 0; -2 + v5 = 0; v5 = 2

v1=3

v2=7

v3=4

v4=8

v5=2

u1=0

3[27]

4[33]

u2=-4

3[40]

4[12]

u3=-2

2[10]

6[29]

0[13]

Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vj > cij

(1;4): 0 + 8 > 5; ?14 = 0 + 8 — 5 = 3

(1;5): 0 + 2 > 0; ?15 = 0 + 2 — 0 = 2

(3;2): -2 + 7 > 4; ?32 = -2 + 7 — 4 = 1

max (3,2,1) = 3

Выбираем максимальную оценку свободной клетки (1;4): 5

Для этого в перспективную клетку (1;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».

Запасы

3[27]

4[33][-]

5[+]

3[40]

4[12]

2[10][+]

6[29][-]

0[13]

Потребности

Цикл приведен в таблице (1,4 > 1,3 > 3,3 > 3,4).

Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т. е. у = min (3, 4) = 29. Прибавляем 29 к объемам грузов, стоящих в плюсовых клетках и вычитаем 29 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.

Запасы

3[27]

4[4]

5[29]

3[40]

4[12]

2[39]

0[13]

Потребности

Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.

u1 + v1 = 3; 0 + v1 = 3; v1 = 3

u1 + v3 = 4; 0 + v3 = 4; v3 = 4

u3 + v3 = 2; 4 + u3 = 2; u3 = -2

u3 + v5 = 0; -2 + v5 = 0; v5 = 2

u1 + v4 = 5; 0 + v4 = 5; v4 = 5

u2 + v4 = 4; 5 + u2 = 4; u2 = -1

u2 + v2 = 3; -1 + v2 = 3; v2 = 4

v1=3

v2=4

v3=4

v4=5

v5=2

u1=0

3[27]

4[4]

5[29]

u2=-1

3[40]

4[12]

u3=-2

2[39]

0[13]

Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vj > cij

(1;5): 0 + 2 > 0; ?15 = 0 + 2 — 0 = 2

(2;5): -1 + 2 > 0; ?25 = -1 + 2 — 0 = 1

max (2,1) = 2

Выбираем максимальную оценку свободной клетки (1;5): 0

Для этого в перспективную клетку (1;5) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».

Запасы

3[27]

4[4][-]

5[29]

0[+]

3[40]

4[12]

2[39][+]

0[13][-]

Потребности

Цикл приведен в таблице (1,5 > 1,3 > 3,3 > 3,5).

Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т. е. у = min (1, 3) = 4. Прибавляем 4 к объемам грузов, стоящих в плюсовых клетках и вычитаем 4 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.

Запасы

3[27]

5[29]

0[4]

3[40]

4[12]

2[43]

0[9]

Потребности

Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.

u1 + v1 = 3; 0 + v1 = 3; v1 = 3

u1 + v4 = 5; 0 + v4 = 5; v4 = 5

u2 + v4 = 4; 5 + u2 = 4; u2 = -1

u2 + v2 = 3; -1 + v2 = 3; v2 = 4

u1 + v5 = 0; 0 + v5 = 0; v5 = 0

u3 + v5 = 0; 0 + u3 = 0; u3 = 0

u3 + v3 = 2; 0 + v3 = 2; v3 = 2

v1=3

v2=4

v3=2

v4=5

v5=0

u1=0

3[27]

5[29]

0[4]

u2=-1

3[40]

4[12]

u3=0

2[43]

0[9]

Опорный план является оптимальным, так все оценки свободных клеток удовлетворяют условию ui + vj <= cij.

Минимальные затраты составят:

F (x) = 3*27 + 5*29 + 0*4 + 3*40 + 4*12 + 2*43 + 0*9 = 480

Анализ оптимального плана.

Из 1-го склада необходимо груз направить в 1-й магазин (27), в 4-й магазин (29)

Из 2-го склада необходимо груз направить в 2-й магазин (40), в 4-й магазин (12)

Из 3-го склада необходимо весь груз направить в 3-й магазин На 1-ом складе остался невостребованным груз в количестве 4 ед.

Оптимальный план является вырожденным, так как базисная переменная x15=0.

На 3-ом складе остался невостребованным груз в количестве 9 ед.

Оптимальный план является вырожденным, так как базисная переменная x35=0.

Стоимости перевозок

Поставщики

Потребители

A

B

C

Неизвестные

Функция цели

8. Численные методы решения одномерных задач статической оптимизации

1) Метод золотого сечения в Excel

N

a

b

b-a

a+i*c

a+k*c

F (l)

F (m)

— 2

— 0,854

— 0,146

— 0,49 384

— 0,14 295

— 2

— 0,146

1,854

— 1,29 177

— 0,854

— 0,48 405

— 0,49 384

— 1,29 177

— 0,146

1,145 772

— 0,854

— 0,58 368

— 0,49 384

— 0,43 536

— 1,29 177

— 0,58 368

0,708 087

— 1,2 128

— 0,854

— 0,49 989

— 0,49 384

— 1,29 177

— 0,854

0,437 772

— 1,12 454

— 1,2 128

— 0,49 658

— 0,49 989

— 1,12 454

— 0,854

0,270 543

— 1,2 128

— 0,95 735

— 0,49 989

— 0,49 953

— 1,12 454

— 0,95 735

0,167 196

— 1,6 067

— 1,2 128

— 0,49 913

— 0,49 989

— 1,6 067

— 0,95 735

0,103 327

— 1,2 128

— 0,99 682

— 0,49 989

— 0,5

— 1,2 128

— 0,95 735

0,63 935

— 0,99 682

— 0,98 177

— 0,5

— 0,49 992

— 1,2 128

— 0,98 177

0,39 512

— 1,619

— 0,99 682

— 0,49 999

— 0,5

— 1,619

— 0,98 177

0,24 418

— 0,99 682

— 0,9911

— 0,5

— 0,49 998

— 1,619

— 0,9911

0,15 091

— 1,42

— 0,99 682

— 0,5

— 0,5

— 1,619

— 0,99 682

0,9 371

— 1,261

— 1,42

— 0,5

— 0,5

— 1,261

— 0,99 682

0,5 791

— 1,42

— 0,99 903

— 0,5

— 0,5

— 1,261

— 0,99 903

0,3 579

— 1,124

— 1,42

— 0,5

— 0,5

— 1,124

— 0,99 903

0,2 212

— 1,42

— 0,99 988

— 0,5

— 0,5

— 1,42

— 0,99 903

0,1 394

— 0,99 988

— 0,99 956

— 0,5

— 0,5

— 1,42

— 0,99 956

0,861

— 1,0001

— 0,99 988

— 0,5

— 0,5

— 1,42

— 0,99 988

0,549

— 1,21

— 1,0001

— 0,5

— 0,5

2) Метод золотого сечения С#

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System. IO;

namespace ConsoleApplication1

{

class Program

{

static double fg (double x)

{

double mf = x / (1 + (x * x));

return mf;

}

static void Main (string[] args)

{

const double e = 0.001; // точность

double gold = ((1 + Math. Sqrt (5)) / 2); // пропорция «Золотого Сечения»

double a = -2, b = 1; // начало и конец отрезка

double x1 = 0, x2 = 0; // точки деления

double y1 = 0, y2 = 0; // значение целевой функции в точках деления

double f;

int n = 0; // число итераций

do

{

n++;

x1 = b — ((b — a) / gold);

x2 = a + ((b — a) / gold);

y1 = fg (x1);

y2 = fg (x2);

if (y1 >= y2) { a = x1; } else { b = x2; }

Console.WriteLine («Процесс вычисления №» + n + «отрезок от, а до б («+ a + »: «+ b + «) значение функции на интервале: «+ y1 + »: «+ y2);

f = b — a;

} while (Math.Round (f, 3) >= e);

Console.WriteLine («Точка минимума: «+ (x1+x2)/2);

Console.WriteLine («Значение функции в точка минимума: «+ (y1+y2)/2);

Console.WriteLine («Результат получен за: «+ n + «итераций.»);

Console.ReadKey ();

}

}

}

Процесс вычисления № 1отрезок от, а до б (-2: -0,145 898 033 750 316) значение функции на интервале: -0,493 846 095 040 953: -0,142 857 142 857 143

Процесс вычисления № 2отрезок от, а до б (-1,29 179 606 750 063: -0,145 898 033 750 316) значение функции на интервале: -0,48 404 770 824 998: -0,493 846 095 040 953

Процесс вычисления № 3отрезок от, а до б (-1,29 179 606 750 063: -0,583 592 135 001 262) значение функции на интервале: -0,493 846 095 040 953: -0,43 532 816 449 453

Процесс вычисления № 4отрезок от, а до б (-1,29 179 606 750 063: -0,854 101 966 249 684) значение функции на интервале: -0,499 889 109 598 277: -0,493 846 095 040 953

Процесс вычисления № 5отрезок от, а до б (-1,12 461 179 749 811: -0,854 101 966 249 684) значение функции на интервале: -0,496 571 787 514 389: -0,499 889 109 598 277

Процесс вычисления № 6отрезок от, а до б (-1,12 461 179 749 811: -0,957 427 527 495 584) значение функции на интервале: -0,499 889 109 598 277: -0,499 527 196 176 926

Процесс вычисления № 7отрезок от, а до б (-1,6 075 308 874 148: -0,957 427 527 495 584) значение функции на интервале: -0,499 131 624 599 642: -0,499 889 109 598 277

Процесс вычисления № 8отрезок от, а до б (-1,2 128 623 625 221: -0,957 427 527 495 584) значение функции на интервале: -0,499 889 109 598 277: -0,499 997 581 281 123

Процесс вычисления № 9отрезок от, а до б (-1,2 128 623 625 221: -0,981 819 383 762 934) значение функции на интервале: -0,499 997 581 281 123: -0,499 915 850 312 333

Процесс вычисления № 10отрезок от, а до б (-1,621 124 003 028: -0,981 819 383 762 934) значение функции на интервале: -0,499 990 414 844 916: -0,499 997 581 281 123

Процесс вычисления № 11отрезок от, а до б (-1,621 124 003 028: -0,991 136 243 808 359) значение функции на интервале: -0,499 997 581 281 123: -0,499 980 183 587 142

Процесс вычисления № 12отрезок от, а до б (-1,621 124 003 028: -0,996 894 379 984 858) значение функции на интервале: -0,499 999 948 697 475: -0,499 997 581 281 123

Процесс вычисления № 13отрезок от, а до б (-1,265 251 616 136: -0,996 894 379 984 858) значение функции на интервале: -0,499 998 245 698 987: -0,499 999 948 697 475

Процесс вычисления № 14отрезок от, а до б (-1,265 251 616 136: -0,99 909 379 229 243) значение функции на интервале: -0,499 999 948 697 475: -0,499 999 794 510 766

Процесс вычисления № 15отрезок от, а до б (-1,12 932 046: -0,99 909 379 229 243) значение функции на интервале: -0,499 999 582 445 798: -0,499 999 948 697 475

Процесс вычисления № 16отрезок от, а до б (-1,45 310 385 378: -0,99 909 379 229 243) значение функции на интервале: -0,499 999 948 697 475: -0,499 999 998 907 395

Процесс вычисления № 17отрезок от, а до б (-1,45 310 385 378: -0,999 613 003 107 567) значение функции на интервале: -0,499 999 998 907 395: -0,499 999 962 543 859

Процесс вычисления № 18отрезок от, а до б (-1,1 322 139 227: -0,999 613 003 107 567) значение функции на интервале: -0,499 999 995 630 448: -0,499 999 998 907 395

Процесс вычисления № 19отрезок от, а до б (-1,1 322 139 227: -0,999 811 323 991 623) значение функции на интервале: -0,499 999 998 907 395: -0,499 999 991 098 662

Точка минимума: -0,999 872 608 515 135

Значение функции в точка минимума: -0,499 999 995 003 028

Результат получен за: 19 итераций.

Показать весь текст
Заполнить форму текущей работой