Пример выполнения задания.
Содержательная постановка задачи. Имеется ранец с максимально допустимой массой 50кг. Дано 5 видов предметов, при этом один предмет j‑го вида имеет цену zj (у.е.) и массу wj (кг).
Вид предмета |
1 |
2 |
3 |
4 |
5 |
масса 1 предмета (wj ) |
3 |
4 |
2 |
6 |
2 |
ценность 1 предмета (zj) |
3 |
4 |
1 |
5 |
2 |
Математическая модель задачи.
Обозначение вводится следующим образом:
пусть xj – количество
предметов j‑го вида, загруженных
в ранец,
.
N=5.
Формализуем целевую функцию и ограничения. Суммарная цена предметов имеет следующий вид:
.
Ограничение на допустимую массу запишется как
,
где М=50.
Ограничения на переменные (физический
смысл):
.
Получаем следующую математическую модель задачи:
;
;
Данная математическая модель с учетом исходных данных перепишется:
3х1+4х2+1х3+5х4+2х5max
3 х1+ 4 х2+ 2 х3+ 6 х4 +2 х5 ≤ 50
Целевая функция представляет из себя сумму, т.е является сепарабельной. По виду математической модели можно сделать вывод, что данная задача представляет собой задачу о загрузке рюкзака и может быть переписана в терминах динамического программирования. В общем виде:
Здесь
- вес рюкзака перед погрузкой грузов
j-того вида (текущий
вес),
-
вес рюкзака до начала погрузки. В терминах
поставленной задачи:
3х1+4х2+1х3+5х4+2х5max
y2=y1+3 х1
y3=y2+4 х2
y4=y3+2 х3
y5=y4+6 х4
y6=y5+2 х5
y1=0
0≤ х1≤(50- y1)/3
0≤ х2≤(50- y2)/4
0≤ х3≤(50- y3)/2
0≤ х4≤(50- y4)/6
0≤ х5≤(50- y5)/2
Применяя к полученной математической модели программу вычислений Dinamic, получены следующие результаты:
х1=0, х2=0, х3=0, х4=0, х5=25. y6=50, F=50.
Данные результаты означают следующее: в рюкзак следует погрузить только 25 единиц груза пятого вида. При этом вес рюкзака составит 50 кг, а ценность 50 у.е.
Описание работы с программой Dinamic.
Программа предназначена для решения целочисленных задач с сепарабельной целевой функцией типа задачи о загрузке рюкзака методом динамического программирования. Запуск исполняемого файла Dinamic.exe активизирует диалоговое окно, в которое вводятся исходные данные задачи: количество видов помещаемых в рюкзак грузов (кнопка «Изменить» служит для формирования пустых таблиц для ввода всех последующих данных с учетом указанного количества), весов единицы груза каждого вида, грузоподъемности рюкзака и ценности помещаемых в него грузов(Рис.1). Данные вводятся студентом в соответствии с сформированной им мат. моделью.
Рис. 1
Нажав кнопку «Вычислить», студент запускает процесс вычислений. Каждая итерация вычислений отражается в отдельной таблице (Рис. 2).
Рис. 2
Последняя таблица содержит результаты обратного прохода алгоритма – решение задачи (Рис. 3).
Рис. 3
Все таблицы по каждому этапу вычислений доступны и после завершения расчетов, что упрощает проверку работы преподавателем и понимание сущности алгоритма студентом (Рис. 4).
Рис. 4
Вариант № 1. Задача о погрузке контейнеров.
Контейнер |
1 |
2 |
3 |
4 |
5 |
6 |
Площ. vj |
20 |
40 |
17 |
38 |
55 |
29 |
Ценность uj |
120 |
150 |
110 |
180 |
220 |
165 |
Вариант № 2. Задача о строительстве домов.
Заказ |
Прибыль sj |
1 |
12 |
2 |
14 |
3 |
10 |
4 |
22 |
5 |
13 |
Заказ |
1 |
2 |
3 |
4 |
5 |
Ресурсы rj |
39 |
34 |
19 |
42 |
46 |
Вариант № 3. Задача о выпуске обуви.
Вид обуви |
1 |
2 |
3 |
4 |
5 |
Расход ej |
36 |
48 |
13 |
36 |
51 |
Прибыль hj |
1200 |
1500 |
950 |
1800 |
2000 |
Вариант № 4. Задача о перевозке грузов.
Имеется транспортное судно грузоподъемностью 200 единиц. На это судно необходимо погрузить: бочки с сельдью (вес бочки 35 ед., стоимость 500 руб.), ящики с гвоздями (вес ящика 45 ед., стоимость 1000 руб.), мешки с солью (вес мешка 34 ед., стоимость 500 руб.) и цистерны с керосином (вес 56 ед., стоимость 600руб.). Требуется определить, какой груз и в каком количестве следует погрузить, чтобы общая стоимость перевезенного груза была максимальна, и при этом не была превышена грузоподъемность.
Вариант № 5. Задача о печати книг.
Книга |
1 |
2 |
3 |
4 |
5 |
Расход бумаги cj |
70 |
67 |
51 |
56 |
58 |
Цена книги dj |
80 |
100 |
120 |
140 |
150 |
