2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Вариант задачи о рюкзаке с двумя критериями
Сообщение22.05.2010, 12:44 
Здравствуйте!
Мне нужно решить вариант задачи о рюкзаке.
Вот неформальная постановка задачи.
Имеется склад с пронумерованными ячейками, в которых лежат различные товары. Один товар может лежать в нескольких ячейках.

Пример содержимого склада:
Ячейка №1 - Товар №1 - 6 коробок по 500 шт.
Ячейка №1 - Товар №2 - 5 коробок по 300 шт.
Ячейка №1 - Товар №3 - 3 коробки по 200 шт.
Ячейка №2 - Товар №2 - 1 коробка по 300 шт.
Ячейка №2 - Товар №2 - 2 коробки по 200 шт.
Ячейка №2 - Товар №3 - 1 коробка по 300 шт.
Ячейка №3 - Товар №1 - 4 коробки по 300 шт.
Ячейка №3 - Товар №3 - 2 коробки по 200 шт.
Ячейка №3 - Товар №3 - 3 коробки по 300 шт.
...

Есть список товара, который нужно выгрузить. Список состоит из нескольких позиций (позиция = вид товара + количество штук).

Пример списка:
Товар №1 - 2840 шт.
Товар №2 - 3130 шт.
Товар №3 - 700 шт.
...

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

Если бы не было критерия №1, это была бы классическая задача о рюкзаке с возможностью единичного выбора предмета. Решение этой задачи динамическим программированием приведено здесь: http://ru.wikipedia.org/wiki/Задача_о_ранце.
Проблема в том, как минимизировать число использованных ячеек для всего списка. Можно, конечно, сначала найти все минимальные наборы ячеек, содержащие всю продукцию по списку (например, {Ячейка №1, Ячейка №7} или {Ячейка №2, Ячейка №5}), и затем для каждого набора решить задачу о рюкзаке с подбором по количеству. Но, боюсь, что такое решение будет работать долго.

Может быть, можно рекуррентные соотношения, приведенные в этой статье (http://ru.wikipedia.org/wiki/Задача_о_ранце), модифицировать так, чтобы находилось решение, оптимальное в первую очередь по количеству ячеек (для списка в целом), а затем по количеству штук?
Я затрудняюсь найти такое рекуррентное соотношение. Может быть, вы поможете найти его, или подскажете другой эффективный алгоритм решения задачи?

 
 
 
 Re: Вариант задачи о рюкзаке с двумя критериями
Сообщение23.05.2010, 08:18 
Прошу прощения, задача была сформулирована не совсем корректно. Вот новая формулировка.

Задача: оптимальным образом выгрузить продукцию по списку.

Критерии оптимальности:
1. Минимальное число использованных ячеек (для списка в целом).
2. Максимальная точность по количеству штук (для каждого элемента списка).
Между критериями нет четкого порядка.

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

Примечание: товар можно извлекать только целыми коробками (нельзя открывать коробки). Из каждой ячейки можно извлекать любое количество коробок.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group