Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Excel-4_Анализ (реш_ур и СЛАУ,сцен), макросы.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.16 Mб
Скачать

Задача о рюкзаке

В общем виде задача о рюкзаке формулируется следующим образом. Имеется рюкзак определенного объема Wmax и неограниченное количество предметов. Для каждого предмета известен его вес (объем) Wi и полезность (ценность, стоимость) Pi. В рюкзак можно положить целое число предметов различного типа.

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

К подобной формулировке может быть сведена задача максимального использования грузоподъемности подвижного состава, грузовместимости судна, автомобиля и т.п. Такая задача часто возникает при выборе оптимального управления в экономико-финансовых областях (например, распределение бюджета отдела по проектам).

Рассмотрим задачу о рюкзаке на конкретном примере.

Пример 4. Имеется рюкзак весом Wmax = 200 кг и предметы 3-х типов. Вес Wi и полезность Pi одного предмета каждого типа составляет соответственно 20 кг и 210 баллов, 12 кг и 130 баллов, 16 кг и 170 баллов. Требуется "упаковать" рюкзак так, чтобы общая полезность P упакованных предметов была наибольшей и их общий вес не превышал 200 кг.

Решение.

1. Разработка математической модели.

Введем обозначения:

x1 – необходимое количество предметов 1-го типа;

x2 – необходимое количество предметов 2-го типа;

x3 – необходимое количество предметов 3-го типа.

Запишем целевую функцию в виде:

f(x1, x2, x3) = 210x1 + 130x2 + 170x3   max

20x1 + 12x2 + 16x3 <= 200 – ограничение по весу;

x1, x2, x3 – целые значения.

2. Формализация модели в Excel.

На рабочем листе Excel подготовим исходные данные, как показано на рис. 6. Для аргументов целевой функции x1, x2, x3, x4 выделим ячейки D7:D10. Для предметов каждого типа в ячейки E7:E10 (рис. 9) введем формулы для расчета общего веса, в ячейки F7:F10 – формулы для расчета общей полезности. В ячейку F11 введем формулу целевой функции, в ячейку E11 – формулу ограничения.

а

б

Рис. 9. Вид рабочего листа Excel для примера 4

(а – обычный режим просмотра, б – режим показа формул)

Задача состоит в том, чтобы за счет подбора значений ячеек D7:D10 добиться максимального значения целевой ячейки F11.

3. Настройка инструментов Поиск решения.

Выполним команду меню Сервис→Поиск решения – откроется диалоговое окно Поиск решения. Укажем в диалоговом окне (рис. 10):

– ссылку на целевую ячейку F11;

– ссылки на изменяемые ячейки D7:D10, в которых размещены параметры целевой функции;

– по кнопке Добавить введем все ограничения.

Рис. 10. Диалоговое окно Поиск решения

Рис. 11. Окно Результаты поиска решения

После щелчка на кнопке OK в ячейках D7:D10 будет получено решение – значения x1, x2, x3, при которых целевая функция имеет максимальное значение при заданных ограничениях (рис. 11).

Таким образом, из предложенных предметов, имеющих наибольшую полезность и не превышающих допустимого веса 200 кг, в рюкзак имеет смысл положить один предмет 1-го типа и 15 предметов 2-го типа.

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

– строго определенное количество предметов;

– не менее (не более) заданного количества предметов.