let TOT = w1 + w2 + ... + wn
.
В этом ответе я опишу вторую сумку.Я обозначу оригинал как «мешок», а дополнительный как «рюкзак»
Заполните сумку всеми элементами и начните исключать из нее элементы, «наполняя» новый рюкзак с размером не более TOT-W
, с максимально возможным значением!У вас есть обычная проблема с рюкзаком, с такими же элементами и размером сумки TOT-W
.
Доказательство:
Предположим, у вас есть лучшее решение с k элементами: e_i1,e_i2,...,e_ik
,тогда размер мешка будет не менее размера W
, что делает рюкзак из исключенных предметов максимально по размеру TOT-W
.Кроме того, поскольку значение ранца минимизировано для размера W
, значение исключенных предметов максимально увеличено для размера TOT-W
, потому что, если бы оно не было максимизировано, был бы лучший мешок размера, по крайней мере, W
, с меньшим значением.
Обратный путь [при условии, что у вас есть максимально исключенная сумка] практически идентичен.