Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП Оптимизация.doc
Скачиваний:
73
Добавлен:
02.05.2015
Размер:
4.87 Mб
Скачать

Контрольные вопросы

  1. Какая задача оптимизации называется задачей линейного программирования?

  2. На чем основан графический метод решения задач оптимизации?

  3. Какая графическая интерпретация определяет на координатной плоскости каждое из неравенств задачи линейного программирования и систему неравенств в целом?

  4. Что называется ОДР? Как графически представляется ОДР на координатной плоскости и какими свойствами обладает?

  5. Как графически может быть представлена ОДР?

  6. В каком случае ОДР является пустым множеством?

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

  8. Как располагается вектор с координатами из коэффициентов ЦФ относительно линий уровня и как его направление влияет на решение задачи оптимизации?

  9. В чем суть графического метода решения задачи оптимизации?

  10. Какие ситуации возможны при поиске оптимального решения задач линейного программирования?

  11. Что реализует симплекс-метод решения задач линейного программирования?

  12. На какие две основные фазы можно разделить последовательность вычислений симплекс-методом?

  13. Что предполагает применение симплекс-метода для задачи линейного программирования?

  14. В чем состоит задача симплекс преобразования?

  15. Какие преобразования происходят с целевой функцией и уравнениями-ограничениями?

  16. Какие значения вводятся в строки и столбцы при формализации симплекс-таблицы? Чему соответствует каждая строка симплекс-таблицы?

  17. Какие переменные в симплекс-таблице являются базисными, а какие свободными? Чему равно число базисных переменных?

  18. Как найти разрешающий столбец и разрешающую строку при симплекс преобразовании?

  19. Какие операции допускаются при симплекс преобразовании?

  20. При решении задачи о распределении ресурсов в компьютерной программе MS EXCEL какие ячейки будут рабочими или изменяемыми и что в них отражено?

  21. С помощью какой процедуры решается задача распределения ресурсов в компьютерной программе MS EXCEL?

  22. Какие действия необходимо предпринять, чтобы для решения задачи в компьютерной программе MS EXCEL был использован симплекс-метод?

  23. Что включает в себя «Отчет по результатам» при решении задачи о распределении ресурсов в компьютерной программе MS EXCEL?

Практическое задание № 2. Транспортная задача

Задание. На колбасном заводе для приготовления крупнокусковых полуфабрикатов, вареных колбас, сырокопченых колбас и рубленых полуфабрикатов используют определенное количество ингредиентов аi. Для обеспечения процесса используется сырье bj, которое поставщики привезли на три склада. Сырье должно развозиться по потребителям (цех крупнокусковых полуфабрикатов (1), сырьевой цех отделения вареных колбас (2), сырьевой цех для отделения сырокопченых колбас (3), цех полуфабрикатов (4)). Транспортные расходы Pij для перевозки составляют стоимостное выражение используемой электрокарами электроэнергии.

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

1. По последней цифре номера зачетной книжки выбрать № варианта.

2. По номеру варианта в табл. 2.1 выбрать исходные данные (издержки Pij, количество ингредиентов аi для приготовления продукции, количество видов сырья по складам bj).

.

Решить задачу двумя способами:

  1. с помощью метода северо-западного угла, а улучшение начального решения методом потенциалов;

  1. методом Ньютона с помощью «Поиска решения».

Работа рассчитана на 2 аудиторных часа.

Пример 2. На колбасном заводе для приготовления крупнокусковых полуфабрикатов, вареных колбас, сырокопченых колбас и рубленых полуфабрикатов используют ингредиенты в количестве соответственно 5, 15, 15, 10. Для обеспечения процесса используется сырье из трёх складов, запасы которых составляют 15, 25 и 5 соответственно. Сырье развозится по потребителям (цех крупнокусковых полуфабрикатов (1), сырьевой цех отделения вареных колбас (2), сырьевой цех для отделения сырокопченых колбас (3), цех полуфабрикатов (4)). Транспортные расходы (издержки Pij) при перевозке из складов в цеха приведены в таблице 2.2.

Таблица 2.1

№ варианта

Транспортные расходы (издержки Pij)

Количество ингредиентов (а) для приготовления продукции

Количество видов сырья (b) по складам

со склада № 1 (i1)

со склада №2 (i2)

со склада №3 (i3)

в цеха (потребителю j)

1

2

3

4

1

2

3

4

1

2

3

4

0

10

0

20

11

12

0

4

8

3

9

2

6

12, 5, 10, 11

9, 15, 15

1

5

11

3

0

15

4

2

5

10

6

13

5

4, 15, 10, 8

21, 14, 2

2

15

10

9

12

7

8

6

10

0

3

15

8

20, 15, 6, 3

10, 16, 18

3

7

15

5

10

3

6

8

0

5

9

17

11

9, 14, 11, 6

10, 15, 25

4

20

4

8

5

0

3

11

4

7

8

4

10

5, 11, 17, 6

12, 4, 13

5

13

12

10

6

13

10

4

11

2

11

3

0

10, 5, 10, 5

16, 6, 8

6

11

7

15

3

16

15

8

7

6

7

9

5

16, 4, 11, 10

8, 13, 10

7

0

9

13

11

11

13

10

3

4

3

8

13

9, 5, 13, 17

20, 11, 13

8

10

10

11

14

15

8

13

6

10

11

2

2

7, 19, 16, 3

15, 10, 20

9

8

5

7

14

10

9

6

9

11

5

0

8

11, 10, 6, 7

10, 18, 6

Таблица 2.2

Исходный пункт, i

Потребитель, j

Цех крупнокусковых полуфабрикатов

Сырьевой цех отделения вареных колбас

Сырьевой цех для отделения сырокопченых колбас

Цех полуфабрикатов

1

2

3

4

Склад № 1

1

10

0

20

11

Склад № 2

2

12

7

9

20

Склад № 3

3

0

14

16

18

Как и в рассмотренной выше задаче распределения ресурсов (практическое задание № 1) транспортная задача является задачей линейного программирования и может быть решена симплекс-методом. В виду специфики транспортной задачи для нее был разработан специальный метод решения – метод потенциалов.

Задание 1 Решение задачи ЛП методом северо-западного угла

Обычно транспортная задача представляется в виде таблицы, где в ячейках помещаются переменные задачи (xij), а в правом верхнем углу ячейки стоят стоимости перевозки из пункта i в пункт j ( Cij ). В крайнем правом столбце и нижней строке таблицы записываются числа определяющие ограничения задачи (в данном примере – это количество видов сырья и количество ингредиентов).

Для примера 2 таблица имеет вид (табл. 2.3):

Таблица 2.3

Издержки на перевозку единицы продукции со склада i потребителю j.

Склад, i

Потребитель, j

1

2

3

4

1

10

0

20

11

X11

X12

X13

X14

2

12

7

9

20

X21

X22

X23

X24

3

0

14

16

18

X31

X32

X33

X34

Математическая модель задачи.

Переменные задачи. Обозначим количество видов сырья, которые будут перевозиться из склада i в цеха j как Xij (i = 1, 2, 3; j = 1, 2, 3, 4). Это переменные задачи, значения которых должны быть определены в процессе решения. Например, X23 – это количество видов сырья, которое должно быть перевезено из склада № 2 (пункт 2) в сырьевой цех отделения сырокопченых колбас (пункт 3).

В задаче содержится 3·4=12 переменных.

Ограничения на переменные задачи. Очевидно, что все переменные задачи не отрицательные и целые числа, т.е.

Xij 0, (2.1)

Xij – целые числа, (2.2)

где i = 1, 2, 3; j = 1, 2, 3, 4.

Кроме этого, должны быть удовлетворяться следующие условия. Количество видов сырья, вывозимых из склада № 1 равно 15, поэтому:

X11 + X12 + X13 + X14 = = 15. (2.3)

Аналогично для склада № 2:

X21 + X22 + X23 + X24 = = 25. (2.4)

И для склада № 3:

X31 + X32 + X33 + X34 = = 5. (2.5)

По условию задачи для приготовления крупнокусковых полуфабрикатов (пункт 1) требуется 5 ингредиентов, поэтому:

X11 + X21 + X31 = = 5. (2.6)

Аналогично, для приготовления вареных колбас (пункт 2):

X12 + X22 + X32 = = 15 (2.7)

Для приготовления сырокопченых колбас (пункт 3):

X13 + X23 + X33 = = 15. (2.8)

Для приготовления рубленых полуфабрикатов (пункт 4):

X14 + X24 + X34 = = 10. (2.9)

Целевая функция. Транспортные расходы на перевозку сырья для приготовления каждого вида продукции вычисляется по формуле:

Z = CijXij = 10X11 + 0X12 + 20X13 + ... +18X34. (2.10)

Окончательно транспортная задача имеет вид (табл. 2.2). Нужно найти такие значения переменных Xij (i = 1, 2, 3; j = 1, 2, 3, 4) при которых целевая функция, определяемая формулой (2.10), будет иметь минимальное значение и будут выполнены ограничения (2.1) - (2.9):

Xij 0, где Xij – целые числа (i = 1, 2, 3; j = 1, 2, 3, 4).

; .

;.

;

.

Шаг 1. Проверка на сбалансированность.

Общее число запасов на складах 15 + 25 + 5 = 45.

Общая потребность 5 + 15 + 15 + 10 =45.

Задача является сбалансированной (закрытой)1 (суммы чисел в последнем столбце и нижней строке таблицы равны). Если транспортная задача не сбалансирована, то в таблицу добавляется еще одна строка или столбец. Причем, стоимости перевозки в добавленных ячейках принимают равные нулю.

Шаг 2. Поиск начального решения. Метод северо-западного угла.

Запишем настоящую задачу в виде транспортной таблицы (табл. 2.4). В верхней строке перечислим потребности потребителей по порядку номеров. В левом столбце перечислим имеющиеся запасы на складах. На пересечении j-го столбца и i-й строки будем записывать количество продукции, поставляемое с i-го склада j-му потребителю. Пока начальное решение не найдено, оставим эти клетки пустыми.

Таблица 2.4

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

а2 = 25

а3 = 5

Введем вспомогательные строку и столбец, в которых будем отмечать оставшиеся нераспределенные запасы и, соответственно, потребности (остатки). Изначально их содержимое равно исходным запасам и потребностям, так как еще ничего не распределялось. На рисунке они представлены серым цветом.

Выберем клетку, в которую будем распределять продукцию на следующей итерации, это левая верхняя клетка (северо-западный угол). В табл. 2.5, как сама клетка, так и соответствующие ей остатки отображаются жирным курсивом.

Таблица 2.5

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

Х

15

а2 = 25

25

а3 = 5

5

5

15

15

10

Итерация 1.

Заполним клетку a1, b1. Сравним значения остатков для склада a1 и потребителя b1.

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

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

Таблица 2.6

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

Х

10

а2 = 25

25

а3 = 5

5

0

15

15

10

Итерация 2.

Заполним клетку a1, b2. Сравним значения остатков для склада a1 и потребителя b2. Нераспределенных остатков по запасам для a1 меньше (см. табл. 2.6, жирный курсив), запишем меньшее число в клетку a1, b2 одновременно вычитая его из обеих клеток остатков (см. табл. 2.7). При этом клетка остатков по запасам обнулится, указывая, что все запасы со склада a1 использованы (см. табл. 2.7). Поэтому исключим строку a1 из дальнейшего рассмотрения (темно-серый фон).

Ненулевое значение остатка по потребностям для b2 показывает, сколько единиц продукции ему еще требуется.

Таблица 2.7

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

10

0

а2 = 25

Х

25

а3 = 5

5

0

5

15

10

Итерация 3.

Таблица 2.8

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

10

0

а2 = 25

5

Х

20

а3 = 5

5

0

0

15

10

Итерация 4.

Таблица 2.9

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

10

0

а2 = 25

5

15

Х

5

а3 = 5

5

0

0

0

10

Итерация 5.

Таблица 2.10

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

10

0

а2 = 25

5

15

5

0

а3 = 5

Х

5

0

0

0

5

Итерация 6.

Таблица 2.11

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

10

0

а2 = 25

5

15

5

0

а3 = 5

5

0

0

0

0

0

Получено допустимое начальное решение (опорный план2) (см. табл. 2.12), удовлетворенны нужды всех потребителей и использованы все запасы со складов.

Таблица 2.12

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

10

а2 = 25

5

15

5

а3 = 5

5

Шаг 3. Проверка полученного опорного плана наневырожденность3.

Количество заполненных клеток N должно удовлетворять условию N = n + (m-1) . В нашем случае N = 6, n + m=4 + 3 = 7 , что удовлетворяет условию невырожденностиплана.

Шаг 4. Расчет общих затрат на перевозку всей продукции.

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

Таблица 2.13

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

10

10

0

а2 = 25

5

15

5

7

9

20

а3 = 5

5

18

Перемножим числа стоящие в одной клетке (для всех клеток), затем полученные произведения сложим. Получим значение суммарных затрат, для данного начального решения. Pнач=410.

Шаг 5. Проведение поэтапного улучшения начального решения. Метод потенциалов.

Итерация 1.

Составим вспомогательную рабочую матрицу затрат. Она строится из исходной матрицы издержек (см. таблицу 2.13) путем переноса только тех ячеек Pij, которые соответствуют заполненным клеткам транспортной таблицы. Остальные ячейки остаются пустыми. Кроме того, введем вспомогательный столбец, в который внесем значения неизвестных U1 ... U3 (3, это m - число складов) и вспомогательную строку, в которую внесем значения неизвестных V1 ... V4 (4, это n - число потребителей). На рисунке они представлены серым цветом заливки. Эти n+m неизвестных должны для всех (i, j), соответствующих загруженым клеткам, удовлетворять линейной системе уравнений

Ui + Vj = Pij (2.11)

Эту систему всегда можно решить следующим способом. На первом шаге полагают V4 = 0. Если на k-м шаге найдено значение неизвестной, то в системе всегда имеется еще не определенная неизвестная, которая однозначно может быть найдена на (k+1)-м шаге из уравнения (2.11), так как значение другой неизвестной в этом уравнении уже известно. То, какую неизвестную можно найти на (k+1)-м шаге, определяют методом проб. Переменные Ui и Vj называются симплекс-множителями или потенциалами. Рабочая матрица затрат с рассчитанными потенциалами представлена в табл. 2.14.

Таблица 2.14

b1

b2

b3

b4

а1

10

0

U1 = 13

а2

7

9

20

U2 = 20

а3

18

U3 = 18

V1 = -3

V2 = -13

V3 = -11

V4 = 0

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

   1) Пусть V4 = 0;

   2) U2 = P2,4 - V4;

   3) U3 = P3,4 - V4;

   4) V2 = P2,2 - U2;

   5) V3 = P2,3 - U2;

   6) U1 = P1,2 - V2;

   7) V1 = P1,1 - U1;

Теперь для всех свободных клеток рабочей матрицы затрат вычислим оценки Sij, по формуле Sij = Pij – Ui - Vj (курсив). Каждая такая оценка показывает на сколько изменятся общие транспортные затраты при загрузке данной клетки единицей груза. Таким образом, если среди оценок имеются отрицательные (затраты уменьшаются), то данный план можно улучшить переместив в соответствующую клетку некоторое количество продукции. Если же среди оценок нет отрицательных, то план является оптимальным.

Рабочая матрица затрат с заполненными оценками клетками, представлена в табл. 2.15.

Таблица 2.15

b1

b2

b3

b4

а1

10

0

18

-2

u1 = 13

а2

-5

7

9

20

u2 = 20

а3

-15

9

9

18

u3 = 18

v1 = -3

v2 = -13

v3 = -11

v4 = 0

Из всех отрицательных оценок имеет смысл выбрать наибольшую по модулю (жирный курсив), так как ее воздействие на общие затраты является максимальными. В нашем случае такая оценка находится в ячейке а3,b1 (жирный курсив). В соответствующую ячейку транспортной таблицы необходимо переместить некоторое количество продукции, т.е. загрузить ее. Отметим в транспортной таблице ячейку а3,b1 знаком +. Пометим знаками - и + другие занятые числами ячейки таким образом, что в каждой строке и каждом столбце транспортной таблицы число знаков + будет равно числу знаков -. Это всегда можно сделать единственным образом, причем в каждой строке и каждом столбце содержится по одному + и -. То есть, помеченные знаками клетки должны образовывать цикл4 (табл. 2.16).

Таблица 2.16

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

5

10

-

+

а2 = 25

5

15

5

-

+

а3 = 5

5

+

-

Затем определяем минимум M из всех элементов, помеченных знаком -, и выбираем одну ячейку, где этот минимум достигается. В нашем случае таковой является а1,b1 и обозначает загруженную клетку, которая должна стать свободной.

Число M при этом составляет 5.

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

а) в ячейку а3,b1 новой таблицы записывается число M;

б) ячейка а1,b1 остается пустой;

в) в остальных ячейках, помеченных знаками - или +, число M соответственно вычитается из стоящего в ячейке числа или складывается с ним. Результат вносится в соответствующую ячейку новой таблицы;

г) непомеченные числа переносятся в новую таблицу без изменений. Остальные ячейки новой таблицы остаются пустыми (табл. 2.17).

Таблица 2.17

b1

b2

b3

b4

а1 = 15

15

а2 = 25

0

15

10

а3 = 5

5

0

Итерация 2.

Рабочая матрица затрат с пересчитанными потенциалами и оценкам (табл. 2.18).

Таблица 2.18

b1

b2

b3

b4

а1

15

0

18

-2

U1 = 13

а2

10

7

9

20

U2 = 20

а3

0

9

9

18

U3 = 18

V1 = -18

V2 = -13

V3 = -11

V4 = 0

Ячейка а1,b4, транспортной таблицы, должна загрузиться (табл. 2.19).

Таблица 2.19

b1 = 5

b2 = 15

b3 = 15

b4 = 10

а1 = 15

15

-

+

а2 = 25

0

15

10

+

-

а3 = 5

5

0

Ячейка а2,b4 становится свободной. M = 10 (табл. 2.20).

Таблица 2.20

b1

b2

b3

b4

а1 = 15

5

10

а2 = 25

10

15

а3 = 5

5

0

Итерация 3.

Рабочая матрица затрат с пересчитанными потенциалами и оценкам (табл. 2.21).

Таблица 2.21

b1

b2

b3

b4

а1

17

0

18

11

U1 = 11

а2

12

7

9

2

U2 = 18

а3

0

7

7

18

U3 = 18

V1 = -18

V2 = -11

V3 = -9

V4 = 0

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

Таблица 2.22

b1 = 5

b2 = 5

b3 = 5

b4 = 5

а1 = 15

5

10

0

11

а2 = 25

10

15

7

9

а3 = 5

5

0

0

18

Общие затраты на перевозку всей продукции, для оптимального плана составляют: Pопт= 315.

Задание 2. Решение транспортной задачи в процедуре MS EXCEL «Поиск решения»

1) Ввод данных. Вводим данные таблицы 1 и 2 в ячейки MS EXCEL (рис. 2.1).

В ячейках B3 : E5 введены стоимости перевозок (из табл. 2.1).

В ячейках F3 : F5 находится число видов сырья. А в ячейках B6 : E6 находится число мест на складах. Ячейки B8 : E10 – рабочие (изменяемые) ячейки, в которых будут вычисляться значения переменных задачи Xij.

В ячейках F8 : F10 нужно записать формулы для вычисления левых частей ограничений (2.3)- (2.5):

в F8 должна быть сумма ячеек B8 : E8;

в F9 должна быть сумма ячеек B9 : E9;

в F10 должна быть сумма ячеек B10 : E10.

Формулы для вычисления левых частей ограничений (2.6)-(2.9) введем в ячейки B11 : E11:

в B11 должна быть сумма ячеек B8 : B10;

в C11 должна быть сумма ячеек C8 : C10;

в D11 должна быть сумма ячеек D8 : D10;

в E11 должна быть сумма ячеек E8 : E10;

Целевую функцию поместим в ячейку G3:

G3: СУММПРОИЗВ (B3 : E5; B8 : E10).

Таблица исходных данных имеет вид (рис. 2.1):

2) Заполнение окна процедуры «Поиск решения».

целевая функция : G3;

значение целевой функции : min;

изменяемые ячейки : B8 : E10;

ограничения задачи :

F8 : F10 = F3 : F5 (формулы (3)(5))

B11 : E11 = B6 : E6 (формулы (6)(9))

B8 : E10 0 (1) и B8 : E10 – целые числа (2).

Рис. 2.1.

В окне «Параметры» установить «Линейная модель», что соответствует решению задачи симплекс-методом. Результаты заполнения окна на рис. 2.2.

Рис. 2.2.

3) Выполнив процедуру «Поиск решения» получим следующие результаты (рис. 2.3):

Рис. 2.3.

Таким образом, со склада №1 (исходный пункт 1) следует 10 видов сырья отвезти в камеру посола мяса (пункт 4) и 5 видов сырья в отделение приготовления кишечной оболочки (пункт назначения 2); из склада № 2 (исходный пункт 2) 10 видов сырья в отделение приготовления кишечной оболочки (пункт назначения 2) и 15 в отделение приготовления искусственной оболочки (пункт назначения 3); из склада № 3 (исходный пункт 3) 5 видов сырья нужно отправить в отделение приготовления рассола (пункт назначения 1). Все эти результаты видны в конечной таблице (рис. 2.3) При этом суммарная стоимость транспортных расходов составит 315 рублей (ячейка G3).