Задача максимизации ежедневной прибыли с помощью Python и PulpPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Задача максимизации ежедневной прибыли с помощью Python и Pulp

Сообщение Anonymous »


У меня возникли проблемы при попытке максимизировать ежедневную прибыль шоколадной фабрики.

Задача: максимизировать ежедневную прибыль фабрики, которая производит отдельные шоколадные конфеты (каждая из которых имеет прибыль и максимальную дневную производственную мощность) и специальные упаковки (каждая из которых содержит 3 шоколадные конфеты и прибыль). Пример:

# предельных переменных # n - количество шоколадок #p - количество специальных пакетов # max_chocolates — общее максимальное производство шоколада # производительность в день п = 5 р = 2 max_chocolates = 150 # Для шоколадных конфет: каждая шоколадка (1,2,3,4,5) имеет прибыль и максимальную дневную производственную мощность. прибыль_шоколад = [50, 30, 45, 40, 35] емкость_шоколад = [27, 33, 30, 37, 35] # Для специальных упаковок: каждая упаковка состоит из 3 шоколадных конфет и прибыли за указанную упаковку. package_comComponents = [(1, 3, 5), (2, 3, 4)] профит_пакеты = [130, 130] Далее я представляю код для получения максимальной ежедневной прибыли:

# Инициализация проблемы проб = LpProblem("Максимизировать_шоколад_и_упаковку_прибыли", LpMaximize) # Переменные решения: Chocolate_vars = [LpVariable(f"x{i}", lowBound=0, cat="Integer") для i в диапазоне (n)] packages_vars = [LpVariable(f"p{i}", lowBound=0, cat="Integer") для i в диапазоне(p)] # Целевая функция проб += lpSum(profit_chocolates * шоколад_vars для i в диапазоне(n)) + \ lpSum(profit_packs * packages_vars для i в диапазоне(p)) # Ограничения: # Для максимального количества шоколадных конфет, которые нам разрешено производить в день. проб += lpSum(chocolate_vars для i в диапазоне(n)) = 0 проб.решить() для меня в диапазоне (len(chocolate_vars)): print(chocolate_vars.varValue) для меня в диапазоне (len(packs_vars)): печать(packs_vars.varValue) print(f"Максимальная дневная прибыль: {int(prob.objective.value())}") Для приведенных выше входных данных ожидаемый результат (максимальная прибыль) должен составлять 6440. Однако я получаю результат 6035.

Я думаю, разница в результатах связана со специальными упаковками, поскольку они зависят от каждого шоколада.

Не могли бы вы помочь мне узнать, что я упускаю/делаю неправильно?

Спасибо
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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