You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求解特定比例二元组分化学制剂的最低成本制备组合算法

解决思路:寻找最低成本的药品组合问题

首先咱们把你的问题转化成更清晰的数学表述:
你需要从给定药品中选择一组(每个药品只能选或不选,即0/1决策),满足:

  • 总X物质的量:$\sum A_i x_i = k \cdot R_x$
  • 总Y物质的量:$\sum B_i x_i = k \cdot R_y$
    其中$k$是正整数(因为$R_x$和$R_y$互质,总配比必须是它们的整数倍),核心目标是最小化总成本$\sum C_i x_i$,$x_i \in {0,1}$。

这本质是**0-1整数线性规划(0-1 ILP)**问题,也可以转化为带成本约束的子集和变种问题,下面分场景给你具体解决方向:

一、小规模问题:追求精确最优解

如果你的药品数量不多(比如$n \leq 100$),直接用成熟的整数规划工具是最稳妥的选择,不用自己造轮子:

  • 商业求解器:比如CPLEX、Gurobi,它们对0-1 ILP的优化效率极高,能快速找到绝对最优解。
  • 开源工具/库:比如Python的PuLP、SCIP,或者Julia的JuMP,这些都能轻松定义问题并完成求解。

举个PuLP的简单示例框架:

from pulp import LpProblem, LpMinimize, LpVariable, lpSum

# 初始化问题
prob = LpProblem("OptimalDrugCombination", LpMinimize)

# 定义0-1变量:x[i]表示是否选择第i种药品
x = [LpVariable(f"x{i}", cat="Binary") for i in range(n)]

# 目标函数:最小化总成本
prob += lpSum(C[i] * x[i] for i in range(n))

# 核心约束:总X/Y配比符合Rx:Ry → Rx*ΣBi xi = Ry*ΣAi xi
prob += lpSum(Rx * B[i] * x[i] for i in range(n)) == lpSum(Ry * A[i] * x[i] for i in range(n))

# 执行求解
prob.solve()

# 输出结果
print("最优成本:", prob.objective.value())
print("选中的药品索引:", [i for i in range(n) if x[i].value() == 1])

这个框架会自动处理$k$的所有可能取值,求解器会直接找到满足约束的最低成本组合。

二、大规模问题:近似最优或启发式解法

如果药品数量很大(比如$n > 200$),0-1 ILP的精确求解会非常耗时,这时候可以用以下方法:

1. 带成本的子集和动态规划

把约束条件变形为:$\sum (A_i R_y - B_i R_x) x_i = 0$,这就转化成了「寻找一个子集,使得该子集的$(A_i R_y - B_i R_x)$之和为0,同时子集总成本最小」的带权重子集和问题,用动态规划处理:

  • 定义状态$dp[s]$:表示得到和为$s$时的最小总成本,初始时$dp[0] = 0$,其他状态设为无穷大。
  • 遍历每个药品,对当前所有可能的$s$,更新$dp[s + (A_i R_y - B_i R_x)] = min(dp[s + ...], dp[s] + C_i)$。
  • 最终$dp[0]$就是我们要找的最小成本(注意$s$的范围需要根据$A_i,B_i$的取值确定上下界,避免内存溢出)。

2. 启发式算法

如果动态规划的状态空间太大,还可以用遗传算法、模拟退火这类启发式算法:

  • 遗传算法:把每个药品组合编码成二进制串,通过选择、交叉、变异操作,迭代寻找成本更低的可行解。
  • 模拟退火:从一个初始可行解出发,通过随机调整组合(比如切换一个药品的选/不选),接受更优解,同时以一定概率接受较差解,避免陷入局部最优。

这些方法不能保证找到绝对最优解,但能在合理时间内找到接近最优的结果,适合大规模问题场景。

关键细节提醒

  • 因为$R_x$和$R_y$互质,只要满足$\sum A_i x_i / \sum B_i x_i = R_x/R_y$,就一定存在正整数$k$使得总X量为$kR_x$、总Y量为$kR_y$,不用手动枚举$k$。
  • 要注意存在多个$k$的可能,比如$k=1$的组合成本可能高于$k=2$的组合,求解器或算法会自动帮你筛选出成本最低的选项。

内容的提问来源于stack exchange,提问作者satish kumar V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 16:22:46