簡體   English   中英

為特定的 Python Pulp 最大化問題創建條件約束

[英]Creating a conditional constraint for a specific Python Pulp Maximization problem

我無法找到一種方法來創建聽起來像這樣的約束:例如,我有 2 個變量,一個是普通產品,另一個是超級稀有產品。 為了擁有超級稀有的產品,您需要已經擁有 25 個該產品的普通版本。 這可以堆疊(例如,如果算法選擇 75 個普通產品,它可以有 3 個超級稀有)。 這樣做的原因是超級稀有的更有利可圖,所以如果我沒有任何限制地放置它,它只會選擇超級稀有的。 關於如何編寫此類約束的任何想法?

提前致謝!

部分代碼:

hwProblem = LpProblem("HotWheels", LpMaximize)

# Variables
jImportsW_blister = LpVariable("HW J-Imports w/ blister", lowBound=20, cat=LpInteger)  # regular product
jImportsTH = LpVariable("HW J-Imports treasure hunt", lowBound=None, cat=LpInteger)  # super rare product

# Objective Function
hwProblem += 19 * jImportsW_blister + 350 * jImportsTH  # profit for each type of product

# Constraints
hwProblem += jImportsW_blister <= 50, "HW J-Imports maximum no. of products"
hwProblem += jImportsTH <= jImportsW_blister / 25
                            # ^this is where the error is happening

這里有一些關於模型結構的“缺失部分”,但一般來說,您可以通過執行以下操作來限制“超級稀有”( SR ):

prob += SR <= R / 25

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM