23. Задача о ранце, методы ее решения

Имеется ранец объемом b и дано множество предметов J . Для каждого предмета задана его ценность c-i и объем a-j. Необходимо найти такой набор предметов, который имел бы наибольшую ценность в походе при ограничении на суммарный объем.

 Решение задачи о ранце.

Подготовительный этап:

1. Для каждого предмета вычислить коэффициент , упорядочить и переименовать предметы в порядке убывания h-j.

2. Сформировать множество Go всех решений задачи и определить верхнюю оценку как . Для нахождения  определить такой номер l в нумерации предметов, для которого выполняется ограничение: 

Первая итерация:

1. Разделить исходное множество  на два непересекающихся подмножества . Для этого определить переменную, которая должна быть включена в оптимальное решение, исходя из условия , где G-s - это множество предметов, включение которых не приведет к нарушению ограничения.

2. Пусть r=1 тогда  - это множество предметов, которое предполагает обязательное включение первого предмета в набор,  - это множество решений в котором первый предмет не включается в набор.

3. Определить верхнюю оценку подмножества .

4. Определить верхнюю оценку подмножества .

5. Сравнить оценки и выбрать наиболее перспективное подмножество.

Вторая итерация: Продолжаем делить множество на подмножество и т.д.

Условие окончания ветвления:

Если не существует такого номера, для которого не выполнялись бы ограничения, то процесс ветвления для этой вершины заканчивается, фиксируется ее максимальная верхняя оценка, совпадающая со значением критерия для этой вершины: 

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

Создать бесплатный сайт с uCoz