МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ...

50
1 Министерство образования и науки Российской Федерации ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» Кафедра программного обеспечения вычислительной техники и автоматизированных систем В.Н. Костин МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ ПО ДИСЦИПЛИНЕ МЕТОДЫ ОПТИМИЗАЦИИ Рекомендовано Ученым советом государственного образовательного учреждения высшего профессионального образования «Оренбургский государственный университет» в качестве учебного пособия для студентов, обучающихся по программам высшего профессионального образования по направлениям «Информатика и вычислительная техника» и «Программная инженерия» Оренбург 2013

Upload: others

Post on 06-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

1

Министерство образования и науки Российской Федерации

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Кафедра программного обеспечения вычислительной техники

и автоматизированных систем

В.Н. Костин

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ

КУРСОВОЙ РАБОТЫ ПО ДИСЦИПЛИНЕ

МЕТОДЫ ОПТИМИЗАЦИИ

Рекомендовано Ученым советом государственного образовательного

учреждения высшего профессионального образования «Оренбургский

государственный университет» в качестве учебного пособия для студентов,

обучающихся по программам высшего профессионального образования по

направлениям «Информатика и вычислительная техника» и «Программная

инженерия»

Оренбург 2013

Page 2: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

2

ББК 22.172Я73

К 72

УДК 519.23/ .24(075.8)

Рецензент

Кандидат технических наук, доцент Баровский А.С.

Костин В.Н.

К 72

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

дисциплине «Методы оптимизации»: Учебное пособие. – Оренбург:

ИПК ГОУ ОГУ, 2013. – 49 с.

ISBN 5-7410-0399-0

Учебное пособие предназначено для студентов, обучающихся по программе

высшего профессионального образования по направлению подготовки

230105.65, при изучении дисциплины «Методы оптимизации»

К 1602090000 ББК 22.172Я73

6Л9-04

Костин В.Н., 2013.

ГОУ ОГУ, 2013

ISBN 5-7410-0399-0

Page 3: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

3

Содержание

Введение 4

1 Тема и цель курсовой работы 5

2 Задания для выполнения курсовых работ 7

3 Теоретические предпосылки и рекомендации 13

3.1 По теме «Линейное программирование» 13

3.2 По теме «Распределение ресурсов на сетевой модели» 15

3.3 По теме «Задача о покрытии» 18

3.4 По теме «Теория расписания» 19

3.5 По теме «Метод ветвей и границ» 21

Приложение А Пример оформления отчета 24

Page 4: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

4

Введение

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

ПОВТАС, изучающих дисциплину «Методы оптимизации». В результате

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

продукт в соответствии с вариантом задания.

Курсовая работа включает 70% изучаемого материала по дисциплине

«Методы оптимизации» и выполняется каждым студентом индивидуально в

соответствии с номером варианта задания.

Результаты выполнения курсовой работы оформить в соответствии с

требованием нормативных документов и стандартом предприятия СТП 101-

10.

Page 5: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

5

1 Тема и цель курсовой работы

Тема курсовой работы: Оптимизация различных технологических

систем с использованием методов оптимизации.

Цель курсовой работы:

- закрепить теоретические знания в области теории методов

оптимизации, формирования алгоритмов, написания программ;

- формирование практических умений в построении алгоритмов и

написании программ, реализующих расчетный алгоритм;

- закрепление практических навыков самостоятельного решения

инженерных задач, развитие творческих способностей студентов и умений

анализировать полученные результаты и делать выводы.

1. Основы теории оптимизации технологических систем изложены

в учебном пособии «Математическое программирование»

2. Исходные данные к работе согласно заданию варианта.

3. Содержание расчетно-пояснительной записки:

- титульный лист;

- задание на курсовую работу;

- формализация задачи;

- решение задачи;

- разработка алгоритма;

- разработка программы и решение задачи;

- выводы и заключение;

- список используемой литературы.

4. Материалы, представляемые к защите:

- расчетно-пояснительная записка;

- алгоритм и программа решения задачи.

Page 6: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

6

2 Задания на выполнение курсовой работы

Вариант 1

Решение задачи линейного программирования по оптимизации плана

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

Цех выпускает трансформаторы двух видов. На один трансформатор

1-го вида расходуется 5 кг железа и 3 кг проволоки, а на один трансформатор

2-го вида - 3 кг железа и 2 кг проволоки. От реализации одного

трансформатора 1-го вида цех получает 1,2 р. прибыли, а от реализаций

одного трансформатора 2-го вида - 1 р. прибыли. Каков должен быть план

выпуска трансформаторов обоих видов, чтобы цех поучил максимальную

прибыль, если и цехе имеется 480 кг железа и 300 кг проволоки.

Вариант 2

Решение задачи линейного программирования по оптимизации плана

производства с целью получения минимума затрат на ресурсы (на минимум).

Из листового проката определенной формы необходимо вырезать

заготовки двух типов А и В. Возможны четыре варианта раскроя одного

листа проката. Количество заготовок А и В, вырезаемых из одного листа при

каждом варианте раскроя, и отходы раскроя показаны в таблице:

Таблица 1 – Варианты раскроя

Вариант Заготовки Отходы

А В

1 4 0 2

2 3 3 5

3 1 9 3

4 0 12 0

Для изготовления одного изделия нужны 2 заготовки А и 10 заготовок

В. Какое количество листов нужно раскроить каждым вариантом раскроя для

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

Вариант 3

Решение задачи распределения ограниченных ресурсов на сетевой

модели эвристическими методами с целью минимизации времени

выполнения технологического процесса (максимум ресурсов, минимум

позднего времени наступления события). Y=5

Page 7: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

7

Рисунок 1 – Сетевая модель

Вариант 4

Решение задачи о назначениях с помощью линейного

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

функции и ограничения.

Имеется 5 ракет и 5 целей. Известна вероятность поражения любой

цели каждой из ракет. Составить оптимальный план распределения ракет,

чтобы математическое ожидание числа пораженных целей было

максимальным. В таблице 2 приведены вероятности поражения, в котором

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

ракета.

Таблица 2 – Вероятности поражения

ракеты Цели

1 2 3 4 5

1 0.12 0.02 0.5 0.43 0.15

2 0.71 0.18 0.81 0.05 0.26

3 0.84 0.76 0.25 0.37 0.52

4 0.22 0.45 0.83 0.81 0.65

5 0.49 0.02 0.25 0.26 0.27

Вариант 5

Решение задачи оптимизации сложного технологического процесса

(задача о покрытии, коммивояжера и определение параметров сетевой

модели). Заданы технологические процессы. Определить последовательность

исследований, чтобы время было минимально.

1(3) 1(2)

3(1)

2(2) 2(4) 2(3)

2(3)

3(2) 2(1)

Page 8: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

8

Таблица 3 – Оценка временных параметров

Виды

работ

Номера действующих элементов

811 714 716 142 820 371 814 816

1 1 0 0 0 0 0 1 0

14 0 1 1 0 0 0 0 0

15 0 0 0 0 1 0 0 1

16 0 0 0 0 0 0 0 1

23 0 0 1 0 0 0 0 0

24 1 0 0 0 0 0 0 0

28 0 1 0 0 0 0 0 0

29 0 0 1 0 1 0 0 0

30 1 0 0 0 0 0 0 0

31 0 0 0 0 0 0 1 0

32 0 0 0 0 0 1 0 0

Таблица 4 – Оценка функционирования систем

Виды

работ

Номера действующих элементов

712 714 716 820 812 142 814 720 816

1 1 1 0 0 0 1 0 0 0

12 0 0 1 0 1 0 0 0 0

13 0 0 0 1 1 0 0 0 0

14 0 0 0 0 0 0 0 1 0

15 0 0 1 0 1 0 0 0 0

19 0 0 1 0 0 0 0 0 0

20 0 1 0 0 0 1 0 0 0

21 1 0 0 0 0 0 1 0 0

22 1 0 0 0 0 0 0 0 1

23 0 1 0 0 0 0 0 1 0

24 1 0 0 0 0 0 1 0 0

25 0 0 0 0 1 0 0 0 1

Таблица 5 – Оценка эксплуатационной документации

Виды

работ

Номера действующих элементов

810 714 716 142 820 371 814 816

1 1 0 0 1 0 0 0 0

14 0 0 1 0 0 0 0 0

15 0 0 0 0 1 0 0 0

16 0 0 0 0 0 0 0 1

23 0 0 1 0 0 0 0 0

24 1 0 0 0 0 0 0 0

28 0 1 0 0 0 0 0 0

29 0 0 1 0 0 0 0 0

Page 9: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

9

Продолжение таблицы 5

Таблица 6 – Проведение регламента

Виды

работ

Номера действующих элементов

712 714 716 821 812 142 814 720 816

1 1 1 0 0 0 1 0 0 0

12 0 0 1 0 1 0 0 0 0

13 0 0 0 1 1 0 0 0 0

14 0 0 0 0 0 0 0 1 0

15 0 0 1 0 1 0 0 0 0

19 0 0 1 0 0 0 0 0 0

20 0 1 0 0 0 1 0 0 0

21 1 0 0 0 0 0 1 0 0

22 1 0 0 0 0 0 0 0 1

23 0 1 0 0 0 0 0 1 0

24 1 0 0 0 0 0 1 0 0

25 0 0 0 0 0 0 0 0 1

Вариант 6

Решение задачи оптимизации технологических структур (задача о

покрытии, коммивояжера на максимум) с целью минимизировать количество

действующих элементов.

Таблица 7 – Оценка временных параметров

Виды

работ

Номера действующих элементов

810 714 716 142 820 371 814 816

1 1 0 0 0 0 0 1 0

14 0 1 1 0 0 0 0 0

15 0 0 0 0 1 0 0 1

16 0 0 0 0 0 0 0 1

23 0 0 1 0 0 0 0 0

24 1 0 0 0 0 0 0 0

28 0 1 0 0 0 0 0 0

29 0 0 1 0 1 0 0 0

30 1 0 0 0 0 0 0 0

31 0 0 0 0 0 0 1 0

32 0 0 0 0 0 1 0 0

Виды

работ

Номера действующих элементов

810 714 716 142 820 371 814 816

30 1 0 0 0 0 0 0 0

31 0 0 0 0 0 0 1 0

32 0 0 0 0 0 1 0 0

Page 10: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

10

Таблица 8 – Оценка функционирования систем

Виды

работ

Номера действующих элементов

712 714 716 820 812 142 814 720 816

1 1 1 0 0 0 0 0 0 0

12 0 0 1 0 1 0 0 0 0

13 0 0 0 1 1 0 0 0 0

14 0 0 0 0 0 0 0 1 0

15 0 0 1 0 1 0 0 0 0

19 0 0 1 0 0 0 0 0 0

20 0 1 0 0 0 1 0 0 0

21 1 0 0 0 0 0 1 0 0

22 1 0 0 0 0 0 0 0 1

23 0 1 0 0 0 0 0 1 0

24 1 0 0 0 0 0 1 0 0

25 0 0 0 0 0 0 0 0 1

Таблица 9 – Оценка эксплуатационной документации

Виды

работ

Номера действующих элементов

810 714 716 142 820 371 814 816

1 1 0 0 0 0 0 0 0

14 0 0 1 0 0 0 0 0

15 0 0 0 0 1 0 0 0

16 0 0 0 0 0 0 0 1

22 0 0 1 0 0 0 0 0

24 1 0 0 0 0 0 0 0

28 0 1 0 0 0 0 0 0

29 0 0 1 0 0 0 0 0

30 1 0 0 0 0 0 0 0

31 0 0 0 0 0 0 1 0

32 0 0 0 0 0 1 0 0

Таблица 10 – Проведение регламента

Виды

работ

Номера действующих элементов

712 714 716 820 810 142 814 720 816

10 1 1 0 0 0 1 0 0 0

11 0 0 1 0 1 0 0 0 0

13 0 0 0 1 1 0 0 0 0

14 0 0 0 0 0 0 0 1 0

15 0 0 1 0 1 0 0 0 0

19 0 0 1 0 0 0 0 0 0

20 0 1 0 0 0 1 0 0 0

21 1 0 0 0 0 0 1 0 0

22 1 0 0 0 0 0 0 0 1

Page 11: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

11

Продолжение таблицы 10

Виды

работ

Номера действующих элементов

712 714 716 820 810 142 814 720 816

23 0 1 0 0 0 0 0 1 0

24 1 0 0 0 0 0 1 0 0

25 0 0 0 0 0 0 0 0 1

Вариант 7

Решение задачи теории расписания на сетевой модели методом ветвей

и границ.

Рисунок 2 – Сетевая модель

В скобках стоит продолжительность работы, перед скобкой стоит

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

Вариант 8

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

программирования (задача о назначениях).

Даны ракеты и цели, а также вероятности поражения каждой ракетой

любой цели. Распределить весь ресурс ракет по воем целям.

Таблица 11 – Входные данные

Ракеты Цели

Ц I Ц 2 ЦЗ Ресурсы

Тип А (x) 0,7 0,6 0,5 10

Тип В (y) 0,6 0,7 0,7 12

Кол-во целей 6 9 7

Ресурс распределить так, чтобы математическое ожидание числа

уничтоженных целей было максимальным.

2(3) 1(2)

1(3)

1(2) 2(4) 3(4)

2(4)

1(2) 2(4)

Page 12: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

12

Вариант 9

Решение задачи построения организационных структур (задача о

покрытии, коммивояжера на минимум и определение параметров загрузки).

Вариант 10

Решение задачи оптимизации информационных потоков в

организационной структуре (по вертикале сверху вниз и обратно).

Page 13: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

13

3 Теоретические предпосылки и рекомендации

3.1 По теме «Линейное программирование»

Линейное программирование (ЛП) это раздел математического

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

искомой функции при линейных ограничениях в виде равенств или

неравенств.

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

образом.

Требуется определить целевую функцию:

n

ijj

xcF1

minmax , (1.1)

при ограничениях

i

n

jjij

bxa

1

, (1.2)

,0

,1

,1

jx

mi

nj

(1.3)

где cj, aij, bi - заданные величины;

xj - искомая переменная.

В основу метода линейного программирования положено условие:

F = c1x1 + c2x2 + … + cjxj + … + cnxn, (1.4)

частные производные по всем переменным – величины постоянные:

constj

j

cx

dF, (1.5)

Так как производные постоянные величины, следовательно, решение

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

минимальных значениях xj. Если у нас переменная xj имеет порядок n, то мы

получим 2n комбинаций решений. Осуществив перебор всех угловых точек

области допустимых значений можно определить оптимальное решение. Это

Page 14: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

14

трудоемкий процесс, поэтому для решения задачи линейного

программирования разработан геометрический метод решения и симплекс

метод (аналитический и табличный).

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

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

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

должны определяться в виде равенств:

n

jjj

xcF1

max , (1.6)

m

iijij

bxa1

, (1.7)

xj 0,

где m – переменные, определяющие базисное решение целевой

функции. Эти переменные называются базисными. Остальные переменные n-

m будут равны нулю, они называются свободными.

Из условия const

j

j

cx

dF одно из базисных решений, доставляющих

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

зрения базисное решение находится на границе многогранника области

допустимых решений.

Для получения оптимального решения m – базисных переменных

принимают максимальное (минимальное) значение, а свободные переменные

принимают значения равные нулю. Выразим m – базисных переменных через

свободные переменные:

n

mjjmjmm

n

mjjj

n

mjjj

xabx

xabx

xabx

1

1

12

1

22

11

1

11

...............

, (1.8)

Если значения базисных переменных x1, …, xm подставим в целевую

функцию, получим функцию, выраженную через свободные переменные:

j

n

mj

i

jxCCF

1

0, (1.9)

Page 15: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

15

где xj = 0.

То есть целевая функция равна F = C0.

По виду целевой функции, а точнее по знакам перед коэффициентами

при свободных переменных можно определить возможно ли улучшение

целевой функции. Если улучшение возможно, то свободная переменная

перемещается в базисную, а одна из базисных становится свободной. При

нахождении максимума все коэффициенты при свободных переменных в

целевой функции должны иметь отрицательное значение. При нахождении

минимума целевой функции все коэффициенты при свободных переменных

должны иметь положительное значение.

3.2 По теме «Распределение ресурсов на сетевой модели»

Рассмотрим резервы времени работ. Существует много резервов. Мы

остановимся только на 2 резервах работ:

1) Полный резерв работы;

2) Свободный резерв работы.

Для их определения нужно ввести несколько понятий:

- раннее начало работы (обозначается

) - это время

совпадает с ранним временем i-ого события.

- раннее окончание работы (обозначается

)

- позднее время окончания работы (обозначается

)

- позднее время начала работы (обозначается

)

Все эти параметры необходимы для определения резервов.

Существует полный и свободный резерв.

, (2.1)

517

1

167

25

4

215

Рисунок 3 – Сетевая модель

- это максимальное время, на которое можно отложить начало

работы или увеличить ее продолжительность без увеличения критического

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

целью оптимизации сетевой модели.

Свободный резерв времени

. Свободные резерв

никогда не может быть больше полного.

Свободный резерв времени – это максимальное время на которое

можно отложить начало работы или увеличить ее продолжительность не

Page 16: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

16

изменяя при этом ранних сроков наступления всех последующих за ней

событий.

, (2.2)

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

случае его нужно приравнять нулю.

Проведем расчет ранних и поздних наступлений событий

графическим методом и на основе этого метода проведем табличный метод

расчета. При табличном методе расчета сетевая модель представляется в

развернутом виде.

Имеем сетевую модель:

00

0

0

15

0

53

11

0

11

28

2

6

416

9

7

4

2

5

6

3

1

1

518

0

18

2

7

Рисунок 4 – Сетевая модель

Представим расчет параметров сетевой модели в виде таблицы.

Таблица 12—Параметры сетевой модели

Р

П П

Св

0 1 5 5 5 0 0 0

0 2 2 6 8 2 6 4

0 4 4 7 16 9 12 3

1 2 1 6 8 2 2 0

1 3 6 11 11 0 0 0

2 3 3 11 11 0 2 0

2 4 1 7 16 9 9 0

3 5 7 11 18 0 0 0

4 5 2 18 18 0 9 0

Так работа 0,1 лежит на критическом пути, то она имеет нулевой

резерв и полный и свободный.

Page 17: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

17

До настоящего времени при расчете параметров, мы считали, что мы

неограниченны ресурсами, однако реально в жизни мы всегда ограничены

ресурсами то есть на выполнение комплекса взаимосвязанных работ

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

финансы и так далее. В этом случае каждая работа задается 2 параметрами:

продолжительностью и затратами. Обозначим через

.

Необходимо при ограниченных ресурсах определить

последовательность выполнения комплекса связанных между собой работ

при ограниченном числе исполнителей. Под ресурсами будем понимать

технические устройства, машины, механизмы, инструменты, приборы,

материалы, сырье, топливо и деньги.

Различают 2 типа ресурсов:

- складируемые ресурсы – это невозобновляемые ресурсы, которые

расходуются непосредственно в ходе выполнения работ и не допускают их

повторного использования.

- нескладируемые ресурсы – это ресурсы возобновляемые, в

процессе выполнения самих работ они не расходуются, а сами производят

или делают какие-то работы. Это машины, оборудование, трудовые ресурсы.

Потребность отдельных работ определяется интенсивностью потребления

ресурсов. Потребление ресурсов должно быть постоянным.

Возможны 2 постановки задачи оптимизации:

Необходимо минимизировать время выполнения комплекса работ при

заданных ограниченных ресурсах.

Надо минимизировать ресурсы для выполнения комплекса работ за

директивный срок.

С математической точки зрения задача является очень сложной и

эффективных методов решения задачи нет. Существует несколько подходов:

метод ветвей границ (теория расписания), динамического программирования;

эвристический метод, который по определенным правилам позволяет строить

расписание.

Правило №1. При составлении расписания выполнения работ в

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

для каждой работы.

Правило №2. В первую очередь для выполнения назначаются те

работы, которые имеют . Первоочередными являются работы имеющие

минимальный срок.

Правило №3. Задачу распределения ресурсов нужно начинать с

обратного конца и в первую очередь включают работу с .

Обычно задачу решают тремя способами из них выбирают тот,

который является наилучшим.

Page 18: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

18

3.3 По теме «Задача о покрытии»

С помощью задачи о покрытии решаются следующие задачи

оптимизации:

- задача оптимального размещения средств поражения. Задано n

районов возможных маршрутов выдвижения противника и m позиций

размещения средств поражения. Необходимо минимальным количеством

средств поражения перекрыть все маршруты выдвижения противника;

- задача тестирования сложных автоматизированных средств.

Имеется n алгоритмов тестирования, каждый из которых определяет

(контролирует) исправность определенных систем. Необходимо выбрать

такой набор минимальных алгоритмов, чтобы проконтролировать все

системы сложного технического средства;

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

(специализаций) для выполнения технологического процесса. Имеется n

специалистов различной квалификации, каждый из которых может

выполнять определенные операции технологического процесса. Необходимо

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

объем операций технологического процесса.

Математическая постановка задачи:

min1

m

iii

XC ,

1 iijxa , (3.1)

случае. противном в ,0

я,выполняетс операция ескаятехнологич если ,1 ix

i

Ограничение (3.5) означает, что каждая технологическая операция

должна покрываться. Исходные данные задаются с помощью матрицы

инцидентности:

ijaA , (3.2)

где i = 1, …, m - количество операций, которые должны быть

выполнены;

j = 1, …, n - количество действующих элементов (специалистов),

которые могут выполнять (покрывать) определенные операции;

я.выполняетс не ,0

элементом, мдействующи явыполняетс операция если ,1 jia

ij

Действующие элементы могут быть реальные специалисты или

мнимые (нереальные) специалисты. Если считать, что все действующие

элементы равноценны то необходимо минимальным количеством

специализаций покрыть все технологические операции, т.е. minxn

=jj

1

. При

этом избыточность специализаций должна быть минимальной:

Page 19: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

19

m=imin,xaj

n

j=ij

1,1

, то есть нереализованные возможности (способности)

исполнителей должны стремиться к минимуму. При этом каждая операция

должна выполняться хотя бы одним действующим элементом

(специалистом).

Данная задача решается методом ветвей границ. Для ее решения

указать два момента: во-первых, необходимо определить способ ветвления

дерева решений; во-вторых, определить способ вычисления границ решения

задачи.

Для оценки границ решения необходимо определить мощность

каждого действующего элемента с помощью формулы:

W(j) = E'(j) - S(j), (3.3)

где E'(j) – потенциал j-го действующего элемента:

IiJjajEIi

ij

,,)(' , (3.4)

где I – множество операций, которые еще не вошли в расписание;

1

/ JJ=j,a=jSI'i

ij

, (3.5)

где I' – множество операций, вошедших в расписание;

S(j) – избыточность или неиспользованные возможности j-го

действующего элемента.

Для того, чтобы задача о покрытии быстро сходилась, к конечному

результату вводится оценка перспективной мощности действующего

элемента:

jSiW=jW ~

, (3.6)

где W(i) - мощность i-го действующего элемента, из которого идет

ветвление;

S(j) - избыточность действующего элемента, который претендует на

включение в расписание;

jW~

- перспективная мощность.

3.4 По теме «Теория расписания»

Постановка задачи. Имеется m – машин для обработки n – изделий.

Каждое изделие должно пройти обработку в определенной

последовательности m – машин. Этот порядок может быть одинаков или

Page 20: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

20

различный для всех изделий. При этом каждая машина может выполнять

только один вид операций. Одновременно на одной машине может

обрабатываться не более одного изделия. Обработка изделий на машине

начавшись не может быть приостановлена. Последующая операция по

обработке каждого изделия может начаться только после выполнения

предыдущей операции. Для заданной матрицы tij необходимо определить

такую последовательность обработки всех изделий, чтобы общее время

обработки всех изделий было минимально.

Решение данной задачи перебором практически затруднено, так как

перебор составляет n! вариантов.

Для решения общей задачи теории расписания существуют

следующие методы:

- приближенные методы (метод Джексона и др.);

- эвристические методы, основанные на правилах предпочтения;

- точный метод, основанный на основе метода ветвей и границ.

Алгоритм ветвей и границ для решения общей задачи теории

расписаний.

Для решения задачи методом ветвей и границ необходимо:

- указать способ ветвления;

- определить способ оценки нижней границы решения.

На первом шаге на первое место в расписании поставлено любое

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

начинается ветвление. Всего n! возможных вариантов дерева ветвления.

Рассмотрим случай когда количество машин m = 3.

Обозначим: u = {1, 2, …, n} - множество изделий;

S = {1, 2, ..., k}, (k < n) – множество изделий, вошедших в расписание

(дерево), для которых уже определен порядок обработки изделий.

Для изделий обозначим время обработки на соответствующих

машинах: T1(S), T2(S), T3(S).

Обработка изделий на 3-й машине закончится в следующие моменты

времени:

jSUi

CSTSh/

21min)()(

,

где )(1

Sh - нижняя граница решения (меньшее время получить нельзя,

третья машина работает без остановки);

U/S – множество изделий не вошедших в расписание.

Обработка изделий на 2-й машине закончится в следующие моменты

времени:

jSUi

SUji

CbSTSh/

/32

min)()(

, (4.1)

где )(2

Sh – нижняя граница решения (меньшее время получить

нельзя, вторая машина работает без остановки, на третьей машине последним

обрабатывается изделие с минимальным временем Cj).

Page 21: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

21

Обработка изделий на 1-й машине закончится в следующие моменты

времени:

)(min)()(/

/13 jj

SUjSUj

jbcaSTSh

, (4.2)

где )(3

Sh – нижняя граница решения ( меньшее время получить

нельзя, последним обрабатывается изделие с минимальным временем cj + bj).

Тогда оценкой нижней границы будет наихудшая (наибольшая) из

этих оценок:

H(S) = max[h1(S), h2(S), h3(S)], (4.3)

3.5 По теме «Метод ветвей и границ»

У многих задач целочисленного программирования, в частности у

сформулированных выше, множество всех допустимых решений

представляет собой всевозможные комбинации (перестановки) одного и того

же набора чисел. Естественно, что оптимальное решение можно найти,

анализируя все возможные варианты. Вопрос лишь в том, как

целесообразней организовать такой анализ. Существуют методы

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

последовательный анализ вариантов.

Рассмотрим второй из них. Пусть G0 - множество допустимых

решений задачи, в которой среди совокупности x G0 требуется найти то х,

при котором целевая функция F имеет минимум. По некоторому закону

(правилу) поставим в соответствие множеству G0 число Z0, которое является

оценкой нижней границы целевой функции на множестве G0. Разобьем

множество G0 на конечное число непересекающихся подмножеств (для

наглядности на два) G1 и G2: G0 =G1 G2, G1 G2 = . Определим по

выбранному закону (правилу) оценки нижней границы целевой функции на

этих подмножествах Z1 и Z2.

Возьмем подмножество с меньшей оценкой, допустим G2, и разобьем

G2= G3 G4, G3 G4 = и найдем оценки подмножеств G3 и G4.

Подмножество с меньшей оценкой выбираем для ветвления и т.д.

(рисунок 5).

Рисунок 5

Естественно ожидать, что оптимальное решение с большей

вероятностью содержится в подмножестве, оценка которого меньше оценок

Z0 Z2 Z4

Z1 Z3

G0 G2 G4

G1 G3

Page 22: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

22

неветвленных подмножеств и, таким образом, производя ветвления,

добраться до оптимального решения.

Рассмотрим задачу о коммивояжере. Пусть njniSSij

,1,1,, -

матрица, элемент которой Sij определяет расстояние при переходе из пункта i

в пункт j. Полагаем niSii

,1, , рассматриваем это как запрет на переезд

из i в i.

ОПРЕДЕЛЕНИЕ. Циклом t назовем набор из n упорядоченных пар

городов, образующих маршрут, который проходит через каждый город

только один раз:

t = {(i1, i2), (i2, i3), …, (in-1, in), (in, it)}, (5.1)

ОПРЕДЕЛЕНИЕ. Издержками Z(t) для цикла t назовем величину:

1

1k,, 1

)(n

jiji nkkSStZ , (5.2)

В нашей интерпретации Z(t) - это длина замкнутого маршрута,

образованного циклом t.

ОПРЕДЕЛЕНИЕ. Матрица, которая получается из данной вычитанием

из элементов каждой строки минимального элемента этой строки, а затем

вычитанием из элементов каждого столбца минимального элемента этого

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

приведения элементов называется приводящей константой.

Если обозначить niSSji

njji

,1,min,

,1)i(,

- минимальный элемент S в

строке i, тогда после вычитания этих элементов получится матрица S' с

неотрицательными элементами

njniSSSijiij

,1,,1,)(,

'

ij , (5.3)

Обозначим

njSSji

niji

,1,min '

,,1

'

),i(

, (5.4)

минимальный элемент S' в столбце j. Тогда после вычитания этих

элементов получится приведенная матрица S" с неотрицательными

элементами

njniSSSjiiij

,1,,1,'

),(

'''

ij , (5.5)

По определению приводящая константа

Page 23: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

23

n

jji

n

ijiSSh

1j

'

,1i

,, (5.6)

Если Z(t) - издержки цикла t для исходной матрицы, a Z'(t) - издержки

цикла t после приведения, то Z(t) = Z'(t) + h и, очевидно, что h является

нижней границей издержек для всех циклов t исходной матрицы расстояний,

поскольку h - сумма минимальных элементов строк и столбцов. Из этого

следует, что применяя метод ветвей и границ, мы можем использовать h в

качестве оценки разветвляемых подмножеств.

Определимся теперь с принципом разбиения на подмножества и

нахождения оценок этих подмножеств. Пусть G0 - множество всех

маршрутов. Разобьем G0 на два подмножества: первое подмножество состоит

из всех маршрутов, включающих переезд из города i в город j, говорят

содержащих пару (i, j), а второе подмножество состоит из множества

маршрутов не содержащих пару (i, j). Пару городов (i, j) для ветвления будем

выбирать среди тех пар, которым в приведенной матрице соответствуют

нулевые элементы, причем выбирается такая пара (i, j), чтобы подмножество,

не содержащее пару (i, j) имело максимальную оценку. Разветвляя,

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

подмножество, содержащее две пары городов, завершающих маршрут.

Спускаясь по дереву ветвей, мы по парам городов, определяющих ветвление,

определим все пары городов, составляющих маршрут (рисунок 3.2).

Рисунок 6 – Спуск

Опишем вычислительный алгоритм.

1 Осуществим приведение матрицы S по строкам и столбцам,

получим приведенную матрицу S'.

2 Вычислим сумму приводящих констант h(k) - это оценка для

исходного множества маршрутов G0. Обозначим оценку (G0) = h.

3 Выберем претендентов для ветвления, т.е. (i, j) i = l, 2, ..., j = 1, 2,

..., i≠j, для которых Sij(k) = 0 и вычислим для всех таких Sij(k) величины

...2,1,...,2,1,minmin ''

''

'ij

ijCSij

iiij

jj

(5.7)

4 Выберем для ветвления ту пару (i, j) из претендентов на

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

… G0 {i,j}

22

11

nm

nm

ji, 1,k

Page 24: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

24

5 В качестве оценки множества всех маршрутов, не содержащих

выбранную пару (i, j), возьмем оценку того множества, которое разветвляли

плюс max ij.

6 Так как из каждого города можно выезжать только один раз и в

каждый город можно въезжать только один раз, то строку i и столбец j можно

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

неполных циклов, нужно наложить необходимые запреты, в частности, на

переезд из j в i то есть положить Sij = .

7 Если полученная после вычеркивания строки столбца и

наложения запретов матрица имеет размерность 2×2, то определяемые ею

пары городов завершают маршрут. Приводя эту матрицу и добавляя

приводящую константу к оценке последнего разветвляемого множества,

получим оценку маршрута. Если эта оценка не больше оценки всех

тупиковых ветвей, то маршрут, описываемый деревом ветвей, является

оптимальным, иначе процесс ветвления должен быть продолжен, исходя из

множества с меньшей оценкой.

8 Если усеченная матрица не имеет размерности 2×2, то приводим

полученную матрицу и находим оценку множества {i, j}, то есть множества

маршрутов, содержащих пару (i, j) , как сумму приводящей константы и

оценки разветвляемого множества.

Переходим к п. 3.

Page 25: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

25

Приложение А ( бязатель е)

Пример оформления отчета

Министерство образования и науки Российской Федерации

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ

БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Факультет информационных технологий

Кафедра программного обеспечения

вычислительной техники и автоматизированных систем

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

по курсу «Оптимизация технологических систем»

Решение задачи линейного программирования по оптимизации плана

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

ГОУ ОГУ 230100.65.6011.10 О

Руководитель работы

_____________Костин В.Н.

«___»______________2011г.

Исполнитель

студент гр. 11 ИВТ(м)ИПО

_____________Кунафина Н.З.

«___»______________2011г.

Оренбург 2011

Page 26: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

26

Содержание

Введение………………………………………………………….……….

Ошибка! Закладка не определена. Постановка задачи…………………………………………………………. 4

1. Теоретико-методическое описание метода линейного

программирования…………………………………………………….…

Ошибка! Закладка не определена. 2. Области применения и ограничения использования линейного

программирования для решения экономических задач………………… 12

3. Оптимизация прибыли с применением метода ЛП…………………. 16

3.1 Постановка задачи и формирование оптимизационной модели…... 16

3.2 Расчет и анализ результатов оптимизации прибыли………………. 16

4 Разработка программы…………………………………………………. 19

4.1 Инструментальные средства, используемые при разработке……… 19

4.2 Описание основных процедур и функций…………………………. 19

Заключение……………………………………………………………….. 21

Список литературы……………………………………………………….

Ошибка! Закладка не определена.2

Приложение А…………………………………………………………….. 23

Page 27: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

27

Введение

Развитие современного общества характеризуется повышением

технического уровня, усложнением организационной структуры

производства, углублением общественного разделения труда, предъявлением

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

В этих условиях только научный подход к руководству экономической

жизнью общества позволит обеспечить высокие темпы развития народного

хозяйства.

Одним из необходимых условий дальнейшего развития

экономической науки является применение точных методов количественного

анализа, широкое использование математики. В настоящее время новейшие

достижения математики и современной вычислительной техники находят все

более широкое применение в экономических исследованиях и планировании.

Этому способствует развитие таких разделов математики, как

математическое программирование, теория игр, теория массового

обслуживания, а также бурное развитие быстродействующей электронно-

вычислительной техники. Уже накоплен достаточный опыт постановки и

решения экономических задач с помощью математических методов.

Особенно успешно развиваются методы оптимального планирования,

которые и составляют сущность математического программирования.

Одной из основных становится задача создания единой системы

оптимального планирования и управления народным хозяйством на базе

широкого применения математических методов и электронно-

вычислительной техники в экономике.

Цель курсовой работы:

1. закрепить теоретические знания в области теории методов

оптимизации, формирования алгоритмов, написания программ;

2. формирование практических умений в построении алгоритмов и

написании программ, реализующих расчетный алгоритм;

3. закрепление практических навыков самостоятельного решения

инженерных задач и умений анализировать полученные результаты и делать

выводы.

Основной целью написания курсовой работы является всесторонний

анализ применения линейного программирования для решения задач в сфере

электронной коммерции. Задачами курсовой работы являются:

1. Теоретико-методическое описание метода линейного

программирования;

2. Выявление области применения и ограничения использования

линейного программирования для решения экономических задач в сфере

электронной коммерции;

Page 28: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

28

3. Максимизация прибыли посредством использования методов

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

4. Постановка задачи и формирование оптимизационной модели;

5. Расчет и анализ результатов оптимизации прибыли.

На современном этапе развития экономики не одна сфера или

составная часть производства не может обойтись без оптимизации процессов.

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

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

центральных задач в ведении бизнеса.

Базой для выполнения курсового проекта является дисциплина

«Оптимизация технологических систем».

Постановка задачи

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

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

прибыли (на максимум).

Page 29: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

29

1 Теоретико-методическое описание метода линейного

программирования

В настоящее время линейное программирование является одним из

наиболее употребительных аппаратов математической теории оптимального

принятия решений. Для решения задач линейного программирования

разработано сложное программное обеспечение, дающее возможность

эффективно и надежно решать практические задачи больших объемов.

Владение аппаратом линейного программирования необходимо каждому

специалисту в области прикладной математики.

Линейное программирование – это наука о методах исследования и

отыскания наибольших и наименьших значений линейной функции, на

неизвестные которой наложены линейные ограничения. Таким образом,

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

экстремум функции. По типу решаемых задач методы разделяются на

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

решаться любые задачи линейного программирования (ЗЛП). Специальные

методы учитывают особенности модели задачи, ее целевой функции и

системы ограничений.

Особенностью задач линейного программирования является то, что

экстремума целевая функция достигает на границе области допустимых

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

с нахождением экстремумов функции во внутренней точке области

допустимых значений. Отсюда — необходимость разработки новых методов.

[3, c.7]

Линейное программирование представляет собой наиболее часто

используемый метод оптимизации. К числу задач линейного

программирования можно отнести задачи:

- рационального использования сырья и материалов;

- задачи оптимального раскроя;

- оптимизации производственной программы предприятий;

- оптимального размещения и концентрации производства;

- составления оптимального плана перевозок, работы транспорта

(транспортные задачи);

- управления производственными запасами;

- и многие другие, принадлежащие сфере оптимального планирования.

Линейное программирование является одной из основных частей того

раздела современной математики, который получил название

математического программирования. В общей постановке, задачи этого

раздела выглядят следующим образом.

Требуется найти такие неотрицательные n ,...,, 21

_

, которые

обеспечивают максимум или минимум целевой функции (формула 1.1),

Page 30: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

30

которые удовлетворяют системе ограничений (формула 1.2) и не

противоречат условиям неотрицательности:

nJj ,1;0 .

n

j

jjnn C CCF1

2211

_

... (1.1)

11212111 ,,... BAAA nn

22222121 ,,... BAAA nn (1.2)

… … … … … … … … … … mnmnmm BAAA ,,...2211

В зависимости от вида функции F различают разделы

математического программирования: квадратичное программирование,

выпуклое программирование, целочисленное программирование и т.д.

Линейное программирование характеризуется тем, что функция F

является линейной функцией переменных n ,...,, 21 . [1 c.11-12]

Формы задач линейного программирования:

1. стандартная;

1.1 первая стандартная форма (формула 1.3);

1.2 вторая стандартная форма (формула 1.4);

2. каноническая (формула 1.5).

max...2211 nnCCC

11212111 ... BAAA nn

22222121 ... BAAA nn (1.3)

… … … … … … … … … …

mnmnmm BAAA ...2211

nJj ,1;0 .

min...2211 nnCCC

11212111 ... BAAA nn

22222121 ... BAAA nn (1.4)

… … … … … … … … … …

mnmnmm BAAA ...2211

nJj ,1;0 .

min...2211 nnCCC

11212111 ... BAAA nn

22222121 ... BAAA nn (1.5)

… … … … … … … … …

Page 31: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

31

mnmnmm BAAA ...2211

nJj ,1;0 .

Задачу на минимум (формула 1.6) можно решать как задачу на

максимум. Достаточно знаки целевой функции поменять на

противоположные (формула 1.7). В результате необходимо знак целевой

функции поменять на противоположный.

min...2211 nnCCC (1.6)

max)(...)()( 2211 nnCCC (1.7)

Аналогично можно сменить знак неравенства меньше или равно

(формула 1.8) на больше или равно (формула 1.9).

mnnmmm BAAA 1212111 ... (1.8)

mnmnmm BAAA )(...)()( 2211 (1.9)

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

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

области. Если целевая функция достигает экстремального значения более чем

на одной вершине, то она достигает того же значения в любой точке,

являющейся выпуклой комбинацией этих вершин (альтернативный

оптимум).

Эта теорема имеет важнейшие значение, так как она указывает путь

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

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

области, а ведь их конечное число. Кроме того, не нужно перебирать все

вершины, можно этот перебор существенно сократить.

Любой набор чисел n

,...,, 21 , удовлетворяющий ограничениям

задачи, называют планом, а множество всех планов допустимой областью.

Тот план, который доставляет экстремум (минимум или максимум) целевой

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

линейного программирования. [3 c.7-8]

Задачи линейного программирования решаются несколькими

методами:

1. графический метод;

2. симплексный метод;

3. двойственность в ЛП;

4.двойственный симплексный метод.

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

можно решить графически. Однако уже в трехмерном пространстве такое

Page 32: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

32

решение усложняется, а в пространствах, размерность которых больше трех,

графическое решение невозможно.

Графический метод довольно прост и нагляден. Он основан на

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

неравенств задачи ЛП определяет на координатной плоскости

некоторую полуплоскость, а система неравенств в целом – пересечение

соответствующих плоскостей. Множество точек пересечения данных

полуплоскостей называется областью допустимых решений (ОДР). ОДР

всегда представляет собой выпуклую фигуру, т.е. обладающую следующим

свойством: если две точки А и В принадлежат этой фигуре, то и весь отрезок

АВ принадлежит ей. ОДР графически может быть представлен выпуклым

многоугольником, неограниченным выпуклой многоугольной областью,

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

ОДР является пустым множеством.

При поиске оптимального решения задач линейного

программирования возможны следующие ситуации: существует

единственное решение задачи, существует бесконечное множество решений

(альтернативный оптимум); ЦФ не ограничена; область допустимых

решений– единственная точка; задача не имеет решений. [3 c.55-57]

Любая задача линейного программирования, независимо от вида

записи, может быть приведена к стандартной и канонической форме и

решена симплексным методом, который в определенном смысле является

универсальным методом ЛП. Алгоритм симплекс-метода носит

итерационный характер.

Симплекс-метод позволяет переходить от одного допустимого

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

непрерывно возрастают. Алгоритмы симплекс-метода позволяют также

установить, является ли задача ЛП разрешимой.

Переход от одного базиса к другому позволяет находить решения

почти всех задач ЛП. Определив все крайние точки, можно вычислить

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

больших значений m и n это практически невозможно. [1 c.15]

Алгоритм решения задачи ЛП табличным симплексом-методом

состоит из следующих этапов:

1. рассчитывают и заполняют начальную симплекс-таблицу с

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

2. находят разрешающий столбец;

3. находят разрешающую строку;

4. рассчитывают методом Жордано-Гаусса все параметры матрицы;

5. анализируют полученные данные в индексной строке.

Таблицы симплекс-метода необходимо строить до тех пор, пока не

будет получен оптимальный план. План будет считаться оптимальным, если

в последней индексной строке симплекс-таблицы будут только нули и

положительные числа. [1 c.20-22]

Page 33: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

33

При построении симплексного метода предполагалось, что все

опорные планы невырожденные, что обеспечивало получение оптимального

плана за конечное количество шагов. В случае вырожденного плана

вычисления производят аналогично, но в этом случае возможен возврат к

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

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

ограничении знаков “равно”, “больше либо равно”, “меньше либо равно” и

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

путём ввода искусственных переменных со знаком, зависящим от типа

оптимума, т.е. для исключения из базиса этих переменных последние

вводятся в целевую функцию с большими отрицательными коэффициентами

, а в задачи минимизации - с положительными . Таким образом, из

исходной получается новая - задача.

Если в оптимальном решении - задачи нет искусственных

переменных, это решение есть оптимальное решение исходной задачи. Если

же в оптимальном решении - задачи хоть одна из искусственных

переменных будет отлична от нуля, то система ограничений исходной задачи

несовместна и исходная задача неразрешима.

В основу модифицированного симплекс – метода положены такие

особенности линейной алгебры, которые позволяют в ходе решения задачи

работать с частью матрицы ограничений. Иногда метод называют методом

обратной матрицы.

В процессе работы алгоритма происходит спонтанное обращение

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

векторам. Указанная способность делает весьма привлекательной машинную

реализацию вычислений вследствие экономии памяти под промежуточные

переменные и значительного сокращения времени счёта. Хорош для

ситуаций, когда число переменных n значительно превышает число

ограничений m.

В целом, метод отражает традиционные черты общего подхода к

решению задач линейного программирования, включающего в себя

канонизацию условий задачи, расчёт симплекс-разностей, проверку условий

оптимальности, принятие решений о коррекции базиса и исключение

Жордана-Гаусса.

Особенности заключаются в наличии двух таблиц - основной и

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

расчётных формул.

Каждой задаче линейного программирования можно определенным

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

или сопряженной по отношению к исходной или прямой задаче. Сопоставляя

формы записи прямой и двойственной задач, можно установить между ними

следующие взаимосвязи:

1. если прямая задача является задачей максимизации, то

двойственная будет задачей минимизации, и наоборот;

Page 34: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

34

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

свободными членами ограничений двойственной задачи;

3. свободные члены ограничений прямой задачи становятся

коэффициентами целевой функции двойственной задачи;

4. матрица ограничений двойственной задачи получается путем

транспортирования матрицы ограничений прямой задачи;

5. знаки неравенств в ограничениях изменяются на противоположные;

6. число ограничений прямой задачи равно числу переменных

двойственной задачи, и наоборот.

Виды математических моделей двойственных задач могут быть

представлены в таблице (табл. 1.1).

Таблица 1.1-- Виды математических моделей двойственных задач

Исходная задача Двойственная

задача

Несимметричные задачи

0

min

0

AAX

CX

C

F

0max

0

max

0

AAX

CX

C

F

0min

Симметричные задачи

0

min

0

AAX

CX

0

max 0

Y

C

F

0

max

0

AAX

CX

0

max 0

Y

C

F

Таким образом, прежде чем записать двойственную задачу для данной

исходной, систему ограничений исходной задачи необходимо привести к

соответствующему виду. [3, с.114-115]

Если из пары двойственных задач одна обладает оптимальным

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

линейных функций выполняется определенное соотношение (формула 1.10).

Если линейная функция одной из задач не ограничена, то другая не имеет

решения.

Fmaxmin (1.10)

Если прямая (а значит, и двойственная) задача разрешима, то в

каждой паре двойственных условий одно является свободным, а другое

закрепленным. Любое из условий называется свободным, если оно

Page 35: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

35

выполняется как строгое неравенство хотя бы для одного оптимального

вектора. Условие называется закрепленным, если оно выполняется как

равенство для всех оптимальных векторов.

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

задаче при малом количестве переменных имеется большое количество

ограничений. [2, c 70-71]

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

задачи получать и решение двойственной задачи. Этот результат и лежит в

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

состоит в таком последовательном переборе угловых точек допустимого

множества Q0 двойственной задачи, при котором значение целевой функции

возрастает, т. е. в применении симплексного метода к решению

двойственной задачи. Будем предполагать, что задача не вырождена, т. е.

каждой угловой точке множества Q0 соответствует квадратная

невырожденная система уравнений размерности m, матрицу которую и

называют двойственным базисом прямой задачи. Вместе с тем двойственный

симплекс–метод можно применять при решении задачи линейного

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

быть любыми числами (при решении задачи симплексным методом эти числа

предполагались неотрицательными).

Отыскание решения задачи двойственным симплекс-методом

включает в себя следующие этапы:

1. Находят псевдоплан задачи.

2. Проверяют этот псевдоплан на оптимальность. Если псевдоплан

оптимален, то найдено решение задачи. В противном случае либо

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

псевдоплану.

3. Выбирают разрешающую строку с помощью определения

наибольшего по абсолютной величине отрицательного числа столбца вектора

0 и разрешающий столбец с помощью нахождения наименьшего по

абсолютной величине отношения элементов (m+1)–и строки к

соответствующим отрицательным элементам разрешающей строки.

4. Находят новый псевдоплан и повторяют все действия начиная со

второго этапа.

Двойственный симплексный метод называют также методом

последовательного уточнения оценок, поскольку угловые точки задачи,

возникающие при итерациях, можно рассматривать как приближенные

значения точной оценки у*, т. е. как приближенные оценки влияния условий

задачи на величину минимума целевой функции. [2, c.87-92]

Значительная часть экономических задач, относящихся к задачам

линейного программирования, требует целочисленного решения. К ним

относятся задачи, у которых переменные величины означают количество

единиц неделимой продукции, например распределение производственных

заданий между предприятиями, раскрой материалов, загрузка оборудования,

Page 36: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

36

распределение судов по линиям, самолетов по рейсам, а также задачи по

производству неделимой продукции. Если единица составляет малую часть

всего объема производства, то оптимальное решение находят обычным

симплексным методом, округляя его до целых единиц, исходя из смысла

задачи. В противном случае округление может привести к решению,

далекому от оптимального целочисленного решения.

Задача целочисленного программирования формулируется так же, как

и задача линейного программирования, но включается дополнительное

требование, состоящее в том, что значения переменных, составляющих

оптимальное решение, должны быть целыми неотрицательными числами.

Метод решения таких задач, предложенный Гомори, основан на

симплексном методе и состоит в следующем. Симплексным методом

находится оптимальный план задачи без учета условия целочисленности.

Если оптимальный план целочисленный, то вычисления заканчивают; если

же оптимальный план содержит хотя бы одну дробную компоненту Xi, то

накладывают дополнительное ограничение, учитывающее целочисленность

компонент плана, и вычисления симплексным методом продолжают до тех

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

доказано, что задача не имеет целочисленных оптимальных планов. [3 c.122-

123]

Особенно широкое распространение линейное программирование

получило в экономике, так как исследование зависимостей между

величинами, встречающимися во многих экономических задачах, приводит к

линейной функции с линейными ограничениями, наложенными на

неизвестные.

Page 37: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

37

2. Области применения и ограничения использования

линейного программирования для решения экономических

задач

Особенно широкое применение методы и модели линейного

программирования получили при решении задач экономии ресурсов (выбор

ресурсосберегающих технологий, составление смесей, раскрой материалов,

производственно-транспортных и других задач). [2, c.92]

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

Пусть некоторая производственная единица (цех, завод, объединение и т. д.),

исходя из конъюнктуры рынка, технических или технологических

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

продукции (товаров), известных под номерами, обозначаемыми индексом j

)n.1j( . Товары будем обозначать j . Предприятие при производстве этих

видов продукции должно ограничиваться имеющимися видами ресурсов,

технологий, других производственных факторов (сырья, полуфабрикатов,

рабочей силы, оборудования, электроэнергии и т. д.). Все эти виды

ограничивающих факторов называют ингредиентами iR . Пусть их число

равно m; припишем им индекс i )m.1i( . Они ограничены, и их количества

равны соответственно m21 b,...,b,b условных единиц. Таким образом,

)b;...;b;...;b(b mi1 - вектор ресурсов. Известна экономическая выгода (мера

полезности) производства продукции каждого вида, исчисляемая, скажем, по

отпускной цене товара, его прибыльности, издержкам производства, степени

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

например, цену реализации jc )n.1j( , т. е. )c;...;c;...;c;c(c nj21 — вектор цен.

Известны также технологические коэффициенты ija , которые указывают,

сколько единиц i–го ресурса требуется для производства единицы продукции

j-го вида. Матрицу коэффициентов ija называют технологической и

обозначают буквой А. Имеем ]a[A ij . Обозначим через )x;...;x;...;x(x nj1 план

производства, показывающий, какие виды товаров nj1 ,...,,..., нужно

производить и в каких количествах, чтобы обеспечить предприятию

максимум объема реализации при имеющихся ресурсах. Так как jc - цена

реализации единицы j-й продукции, цена реализованных jx единиц будет

равна jjcx , а общий объем реализации примет вид (формула 2.1). Это —

целевая функция, которую нужно максимизировать.

nnxcxc ...11 (2.1)

Так как jijxa - расход i-го ресурса на производство jx единиц j-й

продукции, то, просуммировав расход i-го ресурса на выпуск всех n видов

Page 38: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

38

продукции, получим общий расход этого ресурса, который не должен

превосходить ib )m.1i( единиц (формула 2.2).

ininjij bxaxaxа ......111 (2.2)

Чтобы искомый план )x;...;x;...;x;x(x nj21 был реализован, наряду с

ограничениями на ресурсы нужно наложить условие неотрицательности на

объёмы jx выпуска продукции 0x j )n.1j( .

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

целевая функция (формула 2.3), система ограничений (формула 2.4) и

условия неотрицательности (формула 2.5)

n

1j jjxcZmax (2.3)

n

1j ijij bxa )m.1i( (2.4)

0x j )n.1j( (2.5)

Так как переменные jx входят в функцию )x(z и систему ограничений

только в первой степени, а показатели jiij c,b,a являются постоянными в

планируемый период, то это – задача линейного программирования.

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

составления таких рабочих смесей на основе исходных материалов, которые

обеспечивали бы получение конечного продукта, обладающего

определенными свойствами. К этой группе задач относятся задачи о выборе

диеты, составлении кормового рациона в животноводстве, шихт в

металлургии, горючих и смазочных смесей в нефтеперерабатывающей

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

Высокий уровень затрат на исходные сырьевые материалы и необходимость

повышения эффективности производства выдвигает на первый план

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

наименьших затратах на исходные сырьевые материалы.

Сущность задачи об оптимальном раскрое состоит в разработке таких

технологически допустимых планов раскроя, при которых получается

необходимый комплект заготовок, а отходы (по длине, площади, объему,

массе или стоимости) сводятся к минимуму. Более сложные постановки

ведут к задачам целочисленного программирования.

Общая постановка транспортной задачи состоит в определении

оптимального плана перевозок некоторого однородного груза из m пунктов

отправления mAAA ..., 21 в n пунктов назначения nBBB ..., 21 . При этом в качестве

критерия оптимальности обычно берется либо минимальная стоимость

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

транспортную задачу, в качестве критерия оптимальности которой взята

Page 39: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

39

минимальная стоимость перевозок всего груза. Обозначим через ij тарифы

перевозки единицы груза из i-го пункта отправления в j-й пункт назначения,

через ja – запасы груза в i-м пункте отправления, через jb – потребности в

грузе в j–м пункте назначения, а через ij – количество единиц груза,

перевозимого из i-го пункта отправления в j-й пункт назначения. Тогда

математическая постановка задачи состоит в определении минимального

значения функции (формула 2.7) при определенных ограничениях (формула

2.8) и условиях неотрицательности (формула 2.9).

n

j

ijij

m

i

C11

(2.7)

miAi

n

j

ij ...2,1;1

(2.8)

njBi

m

i

ij ...2,1;1

)...2,1;...2,1(0 njmiij (2.9)

Обычно исходные данные транспортной задачи записывают в виде

таблицы, которую называют матрицей планирования. (табл. 2.1).

Таблица 2.1 -- Матрица планирования ТЗ

Поставщик

и

Потребители Запасы

B1 B2 … Bn

A1 C11 C12 … C1n a1

A2 C21 C22 … C2n a2

… … … … … …

Am Cm1 Cm2 … Cmn am

b1 b2 … bn

Таким образом, обеспечивается доставка необходимого количества

груза в каждый из пунктов назначения, вывоз имеющегося груза из всех

пунктов отправления, а также исключаются обратные перевозки. Всякое

неотрицательное решение систем линейных уравнений называется планом

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

минимальное значение, называется оптимальным планом транспортной

задачи. Если в опорном плане число отличных от нуля компонент равно в

точности n+m–1, то план является невырожденным, а если меньше – то

вырожденным. [3 c.132-134]

Если общая потребность в грузе в пунктах назначения равна запасу

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

называется закрытой. Если же указанное условие не выполняется, то модель

транспортной задачи называется открытой.

Page 40: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

40

В случае превышения запаса над потребностью, вводится фиктивный

(n+1)–й пункт назначения с потребностью (формула 2.10) и соответствующие

тарифы считаются равными нулю. Аналогично, в случае, если потребности

превышают количество запасов, также вводится фиктивный (m+1)–й пункт

отправления с запасом груза и тарифы полагаются равными нулю (формула

2.11). Этим задача сводится к обычной транспортной задаче, из

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

n

j

j

m

i

in bab11

1 (2.10)

n

j

m

i

ijm abb1 1

1

(2.11)

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

план транспортной задачи является и опорным планом. Опорный план

является допустимым решением ТЗ и используется в качестве начального

базисного решения при нахождении оптимального решения методом

потенциалов. Существует четыре метода нахождения опорных планов:

- метод северо-западного угла;

- метод минимального элемента;

- метод двойного предпочтения;

- метод штрафов (Фогеля).

"Качество" опорных планов, полученных этими методами,

различается: в общем случае метод Фогеля дает наилучшее решение

(зачастую оптимальное), а метод северо-западного угла– наихудшее.

Все существующие методы нахождения опорных планов отличаются

только способом выбора клетки для заполнения. Само заполнение

происходит одинаково независимо от используемого метода. Следует

помнить, что перед нахождением опорного плана транспортная задача

должна быть сбалансирована.

В методе северо-западного угла из всех не вычеркнутых клеток

выбирается самая левая и верхняя (северо-западная) клетка. Другими

словами, на каждом шаге выбирается первая из оставшихся не вычеркнутых

строк и первый из оставшихся не вычеркнутых столбцов.

Для того чтобы заполнить клетку (i,j), необходимо сравнить текущий

запас товара в рассматриваемой i-й строке с текущей потребностью в

рассматриваемом j-м столбце. Нахождение опорного плана продолжается до

тех пор, пока не будут вычеркнуты все строки и столбцы. [3 c.137]

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

наименьшей суммой доставки и заполняют ее максимально возможным

грузом.

Если таблица стоимостей велика, то перебор всех элементов

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

суть которого заключается в следующем: в каждой строке и каждом столбце

отмечают «V» наименьшую стоимость, а затем клетки с двойным символом

Page 41: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

41

«VV» заполняют с учетом наименьшей стоимости. Затем распределяют

перевозки по клеткам, отмеченным знаком «V». В оставшейся части таблицы

перевозки распределяют по наименьшей стоимости.

На каждом шаге метода Фогеля для каждой i-й строки вычисляются

штрафы, как разность между двумя наименьшими тарифами строки. Таким

же образом вычисляются штрафы для каждого j-го столбца. После чего

выбирается максимальный штраф из всех штрафов строк и столбцов. В

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

выбирается не вычеркнутая клетка с минимальным тарифом. Если

существует несколько одинаковых по величине максимальных штрафов в

матрице, то в соответствующих строках или столбцах выбирается одна не

вычеркнутая клетка с минимальным тарифом.

Если клеток с минимальным тарифом также несколько, то из них

выбирается клетка (i,j) с максимальным суммарным штрафом, т.е. суммой

штрафов по i-й строке и j-му столбцу.

Если план транспортной задачи является оптимальным, то ему

соответствует система из m+n чисел Ui и Vj, удовлетворяющих условиям:

Ui+Vj=Cij для занятых клеток и Ui+Vj≤Сij в свободных клетках. Числа Ui и

Vj называются потенциалами соответственно поставщиков и потребителей.

При решении одному неизвестному потенциалу придается произвольное

значение. [3 c.141]

3. Оптимизация прибыли с применением метода

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

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

Предприятие реализует товары трех групп. Известны нормативы

затрат ресурсов Aij в расчете на единицу товара и ограничения по

располагаемым ресурсам, которые приведены в (табл. 3.1)

Ресурсы

Нормативы затрат ресурсов по продаже

товаров

Aj Bj Cj

Рабочее время, чел.ч. А11=0,1 А12=0,2 А13=0,4

Площадь торговых

помещений, м2 А21=0,05 А22=0,02 А23=0,02

Издержки обращения на

ед. товара, руб. А31=3 А32=1 А33=2

Доход на единицу товара,

руб. С1=3 С2=5 С3=4

План продажи, ед. X1 X2 X3

Таблица 3.1- Нормативы затрат ресурсов и ограничений

Page 42: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

42

Ограничение объемов ресурсов составляют: ресурс первого вида ≤

1300, ресурс второго вида ≤ 140, ресурс третьего вида ≤8200.

Необходимо составить оптимальный план товарооборота по критерию

максимума дохода.

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

использовании ресурсов. В данной задаче также будет присутствовать

целочисленное программирование, т.к. продукция неделимая.

Составим оптимизационную модель. Запишем целевую

функцию(формула 3.1), ограничения на количество ресурсов (формула 3.2) и

условия неотрицательности (формула 3.3)

max453 321 F (3.1)

13004,02,01,0 321 (3.2)

14002,002,005,0 321

820023 321

целыеJ jj ;3,2,1;0

(3.3)

3.2 Расчет и анализ результатов оптимизации прибыли

Первоначальный опорный план симплекс методом находится только

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

Поэтому необходимо перейти от неравенств к равенствам, прибавляя к левым

частям неотрицательные дополнительные переменные (дополнительным

переменным в линейной функции соответствуют коэффициенты равные

нулю). Следовательно, целевая функция (формула 3.4), система ограничений

(формула 3.5) и условия неотрицательности (формула 3.6)примут другой вид.

max000453 654321 F (3.4)

13004,02,01,0 4321 (3.5)

14002,002,005,0 5321

820023 6321

целыеJ jj ;6...2,1;0

(3.6)

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

симплекс таблице. (см. табл. 3.2)

Базис Cj

баз. B

X1 X2 X3 X4 X5 X6

3 5 4 0 0 0

X4 0 1300 0.1 0.2 0.4 1 0 0

X5 0 140 0.05 0.02 0.02 0 1 0

X6 0 8200 3 1 2 0 0 1

Page 43: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

43

П(x) 0 -3 -5 -4 0 0 0

Таблица 3.2 - Первая симплексная таблица

Этот план не является оптимальным, так как в строке «прибыль» есть

три отрицательные оценки. Выбирая наименьшую оценку, находим

направляющий столбец. Направляющую строку находим, поочередно деля,

значение «В» i-й строки на элемент i-й строки направляющего столбца.

Направляющей строкой будет та, в которой значение частного будет

наименьшим. Направляющий столбец - пятый, направляющая строка первая.

Разрешающий элемент находим на пересечении направляющей строки и

столбца, он равен 0.2. Строим вторую симплексную таблицу. (табл. 3.3)

Базис Cj

баз. B

X1 X2 X3 X4 X5 X6

3 5 4 0 0 0

X2 5 6500 0.5 1 2 5 0 0

X5 0 10 0.04 0 -0.02 -0.1 1 0

X6 0 1700 2.5 0 0 -5 0 1

П(x) 32500 -0.5 0 6 25 0 0

Таблица 3.2 - Вторая симплексная таблица

Этот план тоже не оптимальный, так как в строке «прибыль» еще есть

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

Направляющий столбец - четвертый, направляющая строка - вторая.

Разрешающий элемент равен 0.04. Строим третью симплексную таблицу.

(табл. 3.4)

Базис Cj

баз. B

X1 X2 X3 X4 X5 X6

3 5 4 0 0 0

X2 5 6375 0 1 2.25 6.25 -12.5 0

X1 3 250 1 0 -0.5 -2.5 25 0

X6 0 1075 0 0 1.25 1.25 -62.5 1

П(x) 32625 0 0 5.75 23.75 12.5 0

Таблица 3.3 - Третья симплексная таблица

В результате проведения двух итераций получаем оптимальный план

1075;0;0;0;6375;2500 , которому соответствует максимальное значение

линейной функции F(x)max=32625.

В итоговой строке «прибыль» на пересечении со столбцами X4 X5 X6

можно найти двойственные оценки ресурсов, которые покажут, какую

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

Page 44: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

44

Прибыль от одного человеко-часа рабочего времени составит 23 рубля

75 копеек. Прибыль от одного квадратного метра торговых помещений равна

12 рублям 50 копейкам, а третий ресурс (издержки обращения на единицу

товара) использован не полностью и прибыль от него равна 0 рублям.

Ответ: Предприятию необходимо реализовывать 250 единиц товара

первой группы и 6375 единиц товара второй группы, тогда остатки третьего

ресурса (издержки обращения на единицу товара) составят 1075 рублей. При

этом максимальный доход будет равен 32625 рублей.

4 Разработка программы

4.1 Инструментальные средства, используемые при разработке

Прежде, чем приступить к разработке программы для реализации

метода оптимизации в сфере коммерции необходимо помимо выбора

алгоритма выбрать инструментальные средства для реализации и определить

оптимальные параметры процедур алгоритма. Затем процедуры должны быть

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

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

исследования с использованием среды разработки программных средств

Borland Delphi 7.

4.2 Описание основных процедур и функций

Для начала работы программы необходимо задать количество

уравнений. Для этого в программе реализована процедура выбора файла:

procedure TForm1.Button3Click(Sender: TObject);

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

открывается диалоговое окно с каталогом. При работе программы могут

возникать ситуации, когда пользователь некорректно вводит данные либо

выбирает файл, неудовлетворяющий условиям, для того чтобы предупредить

пользователя об этом использовались сообщения, которые реализуются

посредством процедуры:

procedure Error(Msg: string; Args: array of const);

которая Генерирует исключительную ситуация с сообщением Msg

Создает массив ссылок Regions на регионы

procedure Create;

Создает массив 2-мерный случайных чисел

Окно интерфейса пользователя выглядит следующим образом:

Page 45: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

45

Рисунок 1 – Окно интерфейса пользователя

На рисунке 2 представлен результат работы программы

Рисунок 2 – Результат работы программы

Page 46: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

46

Заключение

Содержание математического программирования составляют теория и

методы решения задач о нахождении экстремумов функций на множествах,

определяемых линейными и нелинейными ограничениями (равенствами и

неравенствами). Математическое программирование является одним из

разделов науки об исследовании операций.

Задачи математического программирования находят применение в

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

одного из возможных образов действий (программ действий), например, при

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

в проектировании и перспективном планировании, в военном деле и т.д.

Значительное число задач, возникающих в обществе, связано с

управляемыми явлениями, т.е. с явлениями, регулируемыми на основе

сознательно принимаемых решений. При том ограниченном объеме

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

принималось оптимальное в некотором смысле решение на основании

интуиции и опыта, а затем, с возрастанием объема информации об изучаемом

явлении, - с помощью ряда прямых расчетов. Так происходило, например,

создание календарных планов работы промышленных предприятий.

Совершенно иная картина возникает на современном промышленном

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

когда объем входной информации столь велик, что его обработка с целью

принятия определенного решения невозможна без применения компьютеров.

Еще большие трудности возникают в связи с задачей о принятии наилучшего

решения. Проблема принятия решений в исследовании операций неразрывно

связана с процессом моделирования.

Первый этап процесса моделирования состоит в построении

качественной модели. Второй этап - построение математической модели

paccматриваемой проблемы. Этот этап включает также построение целевой

функции, т. е. такой числовой характеристики, большему (или меньшему)

значению которой соответствует лучшая ситуация с точки зрения

принимающего решения. Итак, в результате этих двух этапов формируется

соответствующая математическая задача.

Третий этап - исследование влияния переменных на значение целевой

функции. Этот этап предусматривает владение математическим аппаратом

для решения математических задач, возникающих на втором этапе процесса

принятия решения.

Четвертый этап - сопоставление результатов вычислений, полученных

на третьем этапе, с моделируемым объектом, т. е. экспертная проверка

результатов (критерий практики). Таким образом, на этом этапе

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

пределах точности исходной информации.

Page 47: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

47

Широкий класс задач управления составляют такие экстремальные

задачи, в математических моделях которых условия на переменные задаются

равенствами и неравенствами. Теория и методы решения этих задач как раз и

составляют содержание математического программирования.

Page 48: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

48

Список использованных источников

Берюхова Т.Н.Банк производственных задач в расчетах на ЭВМ: учебное

пособие. – Тюмень.: ТюмИИ, 1992. – 124с.

Карманов В.Г. Математическое программирование: учебное пособие для

студентов вузов. – М.: Физматлит, 2001. – 264с.

Кузнецов А.В. Математическое программирование: учебное пособие для

вузов. – М.: Высшая школа, 1976. – 352с.

Мочалов И.А. Нечеткое линейное программирование. // Промышленные

АСУ и контроллеры. – 2006. - № 10. – с.26-29.

Пашутин С.Оптимизация издержек и технология формирования

оптимального ассортимента. // Управление персоналом. – 2005. - №5. – с.20-

24.

Page 49: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

49

Приложение А program SimplexMethod; {$APPTYPE CONSOLE} uses SysUtils, MatrixIO in 'matrixio.pas'; procedure Exclude(matrix: TMatrix; n,m: integer); var i,j: integer; t: extended; begin for j := 0 to leny(matrix)-1 do begin if j = m then continue; t := matrix[n,j]; for i := 0 to lenx(matrix)-1 do matrix[i,j] := matrix[i,j] - matrix[i,m]*t; end; end; function simplex(c: TArray; ogr: TMatrix): TArray; var i,j,t,imin,jmin: integer; tt: double; a: TMatrix; cd,d,m1,res: TArray; begin t := Length(c); SetLength(c,t+leny(ogr)); for i:= t to leny(ogr)-1 do c[i] := 0; SetLength(a,lenx(ogr)+leny(ogr),leny(ogr)); for j:= 0 to leny(a)-1 do for i:= 0 to lenx(a)-1 do if i < lenx(ogr)-1 then a[i,j] := ogr[i,j] else if i = j+lenx(ogr)-1 then a[i,j] := 1 else if i = lenx(a)-1 then a[i,j] := ogr[lenx(ogr)-1,j] else a[i,j] := 0; SetLength(m1,lenx(a)); SetLength(d,leny(a)); for i:= 0 to Length(d)-1 do d[i] := i + leny(a)-1; SetLength(cd,leny(a)); repeat for i:= 0 to Length(cd)-1 do cd[i] := c[round(d[i])]; Writeln('c'); WriteArray(c); Writeln('a'); WriteMatrix(a); Writeln('d'); WriteArray(d); Writeln('cd'); WriteArray(cd);

Page 50: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ВЫПОЛНЕНИЯ …povt.osu.ru/data/subject/443_metod.pdf · 230105.65, при изучении дисциплины

50

for i:= 0 to Length(m1)-1 do begin m1[i] := 0; for j:= 0 to Length(m1)-1 do m1[i] := m1[i] + cd[j] * a[i,j]; m1[i] := m1[i] - c[i]; end; WriteLn('m1'); WriteArray(m1); for i:= 0 to Length(m1)-1 do if m1[i] < 0 then break; if not (m1[i] < 0) then break; imin := 0; for i:= 1 to length(m1)-1 do if m1[i] < m1[imin] then imin := i; jmin := 0; for j:= 1 to leny(a)-1 do if not (a[imin,j] = 0) then if a[lenx(a)-1,j] / a[imin,j] < a[lenx(a)-1,jmin] / a[imin,jmin] then jmin := j; tt := a[imin,jmin]; d[jmin] := imin; cd[jmin] := c[jmin+t]; for i:= 0 to lenx(a)-1 do a[i,jmin] := a[i,jmin] / tt; Exclude(a,imin,jmin); until false; SetLength(res,lenx(a)); for i:= 0 to Length(res)-1 do res[i] := 0; for i:= 0 to Length(d)-1 do res[round(d[i])] := a[lenx(a)-1,i]; res[lenx(a)-1] := m1[length(m1)-1]; simplex := res; end; var fun,t: TArray; ogr: TMatrix; i: integer; begin ReadArray(fun); WriteArray(fun); ReadMatrix(ogr); WriteMatrix(ogr); t := simplex(fun,ogr); for i:= 0 to length(t)-1 do write(t[i]:8:4); writeln;