Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мат программирование - методичка.doc
Скачиваний:
35
Добавлен:
10.11.2018
Размер:
3 Мб
Скачать
☆

Введение

Предмет «Математическое программирование» является дисциплиной по выбору для специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем». Он базируется на дисциплинах «Математические методы», «Дискретная математика», «Объектно-ориентированное программирование», «Технология разработки программных продуктов». Вместе с тем знания, умения и навыки, приобретенные при изучении дисциплины «Математическое программирование» используются при написании курсового проекта по «Математическим методам».

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

В данном пособии изложены 8 лабораторных работ по предмету «Математическое программирование». В начале каждой лабораторной работы даны теоретические сведения, необходимые для решения всех последующих примеров и задач. Далее рассматриваются примеры типовых практических задач с подробными пояснениями. Где это возможно, решения сопровождаются геометрическими интерпретациями.

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

Лабораторная работа №1 Решение транспортных задач методом «северо-западного угла» и методом минимального элемента.

Цель работы: Приобретение навыков решения стандартных транспортных задач линейного программирования методом «минимального элемента» и методом «северо-западного угла» и составление программы решения задач.

1.1 Ход работы

1) изучить теоретический материал по теме лабораторной работы (лекции, учебники);

2) согласно номеру своего варианта выбрать условие транспортной задачи;

3) решить задачу методом «минимального элемента» и методом «северо-западного угла» аналитически;

4) составить программу решения задачи в среде программирования Delphi;

5) распечатать текст и результаты программы в отчет;

6) оформить отчет по лабораторной работе;

7) защитить лабораторную работу.

1.2 Содержание отчета

1) тема работы;

2) цель работы;

3) ход работы;

4) формулировка задания;

5) аналитическое решение задачи своего варианта;

6) распечатка текста программы решения задачи;

7) распечатка результатов решения задачи.

1.3 Теоретическая справка к лабораторной работе №1

1.3.1 Общий вид транспортной задачи

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

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

Таблица 1 – Общий вид транспортной задачи

Поставщики

Потребители

Запасы груза

В1

В2

…

Вm

А1

c11

c12

…

c1m

a1

x11

x12

x1m

А2

c21

c22

…

c2m

a2

x21

x22

x2m

…

…

…

…

…

…

Аn

cn1

cn2

…

cnm

an

xn1

xn2

xnm

Потребности

в грузе

b1

b2

…

bm

где Аi – поставщики груза (i=)

Bj – потребители груза (j=)

ai – запасы груза (i=)

bJ – потребители в грузе (j=)

cij – стоимость (тариф) каждой перевозки (i=, j=)

xij – количество распределенного товара от i-го поставщика j-му потребителю(i=, j=).

Если в транспортной задаче выполняется условие , то транспортная задача называется закрытой, иначе - открытой.

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

  1. (i=);

  2. (j=);

  3. xij ≥ 0 (i=;j=);

  4. .

Методами отыскания начального плана (опорного решения) для решения транспортной задачи являются:

  1. метод «северо-западного угла»;

  2. метод минимального элемента;

  3. метод Фогеля.

1.3.2 Метод «северо-западного угла».

Заполнение таблицы начинается с левого верхнего угла (северо-запаного), передвигаясь дальше по столбцу или по строке. В клетку (1;1) заносят меньшее из чисел а1 или b1 , т.е x11=min(а1; b1).

Если а1> b1, то x11= b1. Следовательно, xi1 = 0, i = 2,3...n., т.е. потребности первого потребителя удовлетворены полностью.

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

x12 = min(a1-b1; b2).

Если b1> a1, то x11= a1. Следовательно, x1j = 0, j = 2,3...n., т.е. запасы первого поставщика исчерпаны полностью.

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

x21 = min(a2 ; b1-a1) и т.д.

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

Пример 1:

Пять песчано-гравийных карьеров добывают в сутки 60, 70, 120, 130, 100 у.е. гравия. Для строительства трех дорог необходимо гравий в количестве 140, 180, 160 у.е. соответственно. Стоимость перевозок из одного карьера на один объект приведена в таблице 2 в денежных единицах.

Построить опорный план перевозок по правилу «северо-западного угла» и определить значения целевой функции построенного плана.

Таблица 2 – Исходные данные задачи

Карьеры

Дорога 1

Дорога 2

Дорога 3

Запасы гравия

№ 1

2

8

9

60

№ 2

3

5

8

70

№ 3

4

1

4

120

№ 4

2

4

7

130

№ 5

4

1

2

100

Потребности в гравии

140

180

160

Решение задачи рассмотрим в таблице 3.

Таблица 3 - Оптимальное решение методом «северо-западного угла»

Карьеры

Дорога 1

Дорога 2

Дорога 3

Запасы гравия

№ 1

2

8

9

60

60

0

0

№ 2

3

5

8

70

70

0

0

№ 3

4

1

4

120

10

110

0

№ 4

2

4

7

130

0

70

60

№ 5

4

1

2

100

0

0

100

Потребности в гравии

140

180

160

480

X11 = min(60; 140)=60;

X21 = min(70; 140-60)=70;

X31 = min(120; 10)=10;

X32 = min(120-10; 180)=60;

X42 = min(130; 180-110)=70;

X43 = min(130-70; 160)=60;

X53 = min(100; 160-60)=100.

Таким образом, опорный план равен:

X =

Найдем сумму затрат на перевозки:

Z = 60*2+70*3+10*4+110*1+70*4+60*7+100*2=1380 д.е.

Теорема: Число положительных компонент в опорном плане N ≤ n+m-1, где n – число строк, m – число столбцов плана.

Если условие N ≤ n+m-1 выполняется, то план называется невырожденным, иначе вырожденным.

1.3.3 Метод минимального элемента

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

2. Производится корректировка оставшихся запасов и потребностей.

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

4. Если наименьший тариф соответствует более чем одной клетке, то выбор осуществляется случайным образом.

Рассмотрим решение примера №1 методом минимального элемента, используя таблицу №4.

Таблица 4 - Оптимальное решение методом минимального элемента

Карьеры

Дорога 1

Дорога 2

Дорога 3

Запасы гравия

№ 1

2

8

9

60

60

0

0

№ 2

3

5

8

70

0

0

70

№ 3

4

1

4

120

0

120

0

№ 4

2

4

7

130

80

0

50

№ 5

4

1

2

100

0

60

40

Потребности в гравии

140

180

160

480

С52 = 1- min, X52= min (100; 180)=100.

C32=1- min, X32= min (120; 180-100)=80.

C11=2 – min, X11= min (60;140)=60.

C41=2 – min, X11=min(130;140-60)=80.

C33=3 - min, X33=min(120-180;160)=40.

C43=7 - min, X43=min(130-80;160-40)=50

C23=8 – min, X23=min(70;160-90)=70

Таким образом, опорный план равен:

X =

Затраты на перевозки равны:

Z = 60*2+80*2+70*8+120*1+60*1+50*7+40*2=1450 д.е.