Скачиваний:
11
Добавлен:
28.03.2019
Размер:
6.83 Mб
Скачать

Пример выполнения работы

Содержательная постановка задачи. Автогараж располагает 3 видами грузовых машин: А, Б и В грузоподъемностью 5т, 4т и 3т соответственно. Одна машина типа А тратит на выполнение работы 60л бензина, типа Б - 30л, типа С - 20л. Найти число машин, исходя из следующих условий:

  • затраты бензина не превосходят 3000л ,

  • объем перевозок не менее 300т ,

  • суммарное количество машин минимально.

Анализ словесного описания задачи

Управляемые параметры: количество машин каждого вида Неуправляемые параметры: грузоподъемность каждой машины и расход бензина Целевые параметры: суммарные затраты бензина, суммарный объем перевозок суммарное количество используемых машин

Построение математической модели

Характеристика машины

Машина типа А

Машина типа Б

Машина типа В

Грузоподъемность, т

5

4

3

Расход бензина

60

30

20

Условные обозначения:

Управляемые параметры: X1,X2,X3 - количество машин типа А,Б и В соответственно, т.е. количество неизвестных равно 3.

Целевые параметры: F3 - количество используемых машин.

Ограничиваемые параметры:

  • W1 - затраты бензина,

  • W2 - объем перевозок,

т.е. количество ограничений равно 2. Неуправляемые параметры: a1,1=60 a1,2=30 a1,3=20 a2,1=5 a2,2=4 a2,3=3 Соотношения между параметрами: W1 = 60X1+30X2 +20X3 W2 = 5X1 + 4X2 + 3X3 F3 = X1 + X2 + X3

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

Искомые параметры: X1 , X2 , X3 Целевая функция: F(X) = X1 + X2 +X3 => min Ограничения:

60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300 Xi ≥0 - целые, (i=1,3)

Решение данной задачи.

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

Это означает, что решением является план (331/3; 331/3; 0), , и значение целевой функции при этом 662/3.

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

G0

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300 Xi ≥0 (i=1,3)

Решение: (331/3; 331/3; 0), F=662/3.

разбивается на две:

G11

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33 (-целая часть компоненты Х*1=33,3) Xi ≥0 (i=1,3)

G12

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1  34 (-целая часть

компоненты Х*1=33,3 плюс 1) Xi ≥0 (i=1,3)

Решаем обе эти задачи при помощи той же программы LDPTechs. Первую (G11):

И вторую (G12):

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

G0

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300 Xi ≥0 (i=1,3)

Решение: (331/3; 331/3; 0), F=662/3.

G11

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33 (-целая часть компоненты Х*1=33,3) Xi ≥0 (i=1,3)

G12

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1  34 (-целая часть

компоненты Х*1=33,3 плюс 1) Xi ≥0 (i=1,3)

Решение: (33; 33 3/4; 0), F=66 ¾.

Решение: (34; 28; 6), F=68.

На множестве G12 полученный план – целый, однако оценка нижней границы (значение целевой функции) выше, чем на множестве G11 (F(G11)=66¾ < F(G12)=68). Поэтому план (34; 28; 6) не является оптимальным. План же множества G11 не целый, поэтому необходимо продолжить ветвление множества G11 относительно нецелочисленной компоненты плана (33; 33 3/4; 0), т.е. относительно Х2 =33 3/4. Получим:

G0

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300 Xi ≥0 (i=1,3)

Решение: (331/3; 331/3; 0), F=662/3.

G11

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33 Xi ≥0 (i=1,3)

G12

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1  34 Xi ≥0 (i=1,3)

Решение: (33; 33 3/4; 0), F=66 ¾.

Решение: (34; 28; 6), F=68.

G111

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2 ≤ 33

Xi ≥0 (i=1,3)

G112

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2  34

Xi ≥0 (i=1,3)

Перенумеровав полученные множества: G111= G21, G112= G22, G12= G23, введем данные задач G21 и G22 в программу LDPTechs и решим их:

Для G21:

Для G22:

Отразим решение в дереве:

G0

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300 Xi ≥0 (i=1,3)

Решение: (331/3; 331/3; 0), F=662/3.

G11

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33 Xi ≥0 (i=1,3)

G23

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1  34 Xi ≥0 (i=1,3)

Решение: (33; 33 3/4; 0), F=66 ¾.

Решение: (34; 28; 6), F=68.

G21

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2 ≤ 33

Xi ≥0 (i=1,3)

G22

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2  34

Xi ≥0 (i=1,3)

Решение: (33; 33; 1), F=67

Решение: (32 4/5; 34; 0), F=66 4/5.

Минимальное значение целевой функции достигается на множестве G22, соответствующий план – не целый. Продолжаем ветвление: ветвим множество G22 относительно компоненты Х1=32 4/5.

G0

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300 Xi ≥0 (i=1,3)

Решение: (331/3; 331/3; 0), F=662/3.

G11

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33 Xi ≥0 (i=1,3)

G23

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1  34 Xi ≥0 (i=1,3)

Решение: (33; 33 3/4; 0), F=66 ¾.

Решение: (34; 28; 6), F=68.

G21

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2 ≤ 33

Xi ≥0 (i=1,3)

G22

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2  34

Xi ≥0 (i=1,3)

Решение: (33; 33; 1), F=67

Решение: (32 4/5; 34; 0), F=66 4/5.

G221

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2 ≤ 33

X1 ≤ 32

Xi ≥0 (i=1,3)

G221

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2  34

X1  33

Xi ≥0 (i=1,3)

Перенумеровываем: G23= G31, G21= G32, G221= G33, G222= G34 введем данные в программу LDPTechs и решим их:

Для G33:

Для G34:

G0

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300 Xi ≥0 (i=1,3)

Решение: (331/3; 331/3; 0), F=662/3.

G11

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33 Xi ≥0 (i=1,3)

G31

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1  34 Xi ≥0 (i=1,3)

Решение: (33; 33 3/4; 0), F=66 ¾.

Решение: (34; 28; 6), F=68.

G32

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2 ≤ 33

Xi ≥0 (i=1,3)

G22

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2  34

Xi ≥0 (i=1,3)

Решение: (33; 33; 1), F=67

Решение: (32 4/5; 34; 0), F=66 4/5.

G33

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2 ≤ 33

X1 ≤ 32

Xi ≥0 (i=1,3)

G34

F(X) = X1 + X2 +X3 => min 60X1 +30X2 +20X3 ≤ 3000 5X1 +4X2 +3X3  300

X1 ≤ 33

X2  34

X1  33

Xi ≥0 (i=1,3)

Решение: (32; 35; 0), F=67

Решение: (33; 34; 0), F=67

Минимальное значение целевой функции F= 67 достигается сразу на трех множествах: G32, G33, G34. На всех трех множествах полученные планы – целочисленные. Поэтому в качестве решения можно выбрать любое из:

(33; 33; 1), (32; 35; 0), (33; 34; 0). К примеру, возьмем первое.

Если бы при равных значениях F некоторые планы были бы не целые, то в качестве решения мы выбрали бы целочисленное.

В терминах постановки задачи данные результаты могут быть интерпретированы следующим образом: необходимо использовать 33 машины типа А, 33 машины типа Б и одну машину типа В. Суммарное количество машин при этом – 67 штук.