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

R中限定取值的双变量约束优化问题求助

解决离散取值变量的优化问题

由于你的变量x和y只能取0、1、2这三个离散值,且变量数量极少,直接用枚举法是最简洁高效的方案——constrOptim这类函数针对连续变量设计,无法强制变量取指定的离散值,不适用当前场景。

实现步骤:

  • 生成所有可能的x和y组合
  • 计算每个组合的目标函数值
  • 筛选满足约束条件100x + 150y ≥ 350的组合(x≥0、y≥0已由取值范围保证)
  • 在符合约束的组合中找到目标值最小的解

R代码实现

# 定义目标函数
g <- function(x, y) 100*x + 150*y

# 生成所有x、y的可能组合
all_pairs <- expand.grid(x = 0:2, y = 0:2)

# 计算每个组合的目标值
all_pairs$target <- g(all_pairs$x, all_pairs$y)

# 筛选满足约束的组合
valid_pairs <- subset(all_pairs, target >= 350)

# 找到最优解(目标值最小的组合)
best_solution <- valid_pairs[which.min(valid_pairs$target), ]

# 输出结果
print(best_solution)

结果说明

运行代码后会得到最优解:x=1,y=2,对应的目标值为400,这是满足约束条件的最小可能值(其他符合约束的组合如x=2,y=2目标值为500,x=0,y=3不在允许的取值范围内)。

内容的提问来源于stack exchange,提问作者Alex Germain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:30:32