Задача о ранце с topN решений фиксированного размераPython

Программы на Python
Ответить
Anonymous
 Задача о ранце с topN решений фиксированного размера

Сообщение Anonymous »

У меня вопрос по динамическому программированию. Я пытаюсь найти достаточно хорошее решение на Python для задачи о рюкзаке.

Дополнительные требования:
  • Вместо того, чтобы иметь лучшее решение, я ищу лучшие
    topN решения.
  • Я ищу решения точного размера S. т. е. количество предметов в рюкзаке должно быть S. Необязательно, если S равно -1 мы принимаем гибкие размеры
Итак, я хочу положить в рюкзак S элементы, чтобы найти наиболее ценную подпоследовательность предметов, вес которой не превышает максимального веса.
Каждый элемент имеет (значение, вес), где значение — это число, а вес — неотрицательное целое число. Максимальный вес – неотрицательное целое число.

Пример:

def knapsack_variant(items, maxweight, S=-1, topN=10):
"""
>>> items = [(4, 12), (2, 1), (6, 4), (1, 1), (2, 2)]
>>> maxweight = 15
>>> S = 4
>>> topN = 3
>>> knapsack_variant(items, maxweight, S, topN)
(11, [(2, 1), (6, 4), (1, 1), (2, 2)])
next two solutions
"""


Подробнее здесь: https://stackoverflow.com/questions/564 ... fixed-size
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»