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

CP-SAT | OR-Tools:如何通过名称获取已创建的变量?

在CP-SAT | OR-Tools中通过变量名称获取变量的解决办法

OR-Tools的CP-SAT模块目前没有提供get_bool_var_by_name()这类直接按名称获取变量的API,可行的解决办法有两种:

1. 自行维护变量映射字典(推荐)

创建变量时同步将变量存入字典,后续直接通过字典键名获取变量,这是最直观且可靠的方式:

model = CpModel()
var_dict = {}

# 创建变量时存入字典
var_dict["mySuperBoolVar"] = model.new_bool_var("mySuperBoolVar")

# 多行代码后获取变量
bv = var_dict["mySuperBoolVar"]

2. 利用get_bool_var_from_proto_index()方法

get_bool_var_from_proto_index()的作用是通过变量在模型proto结构中的索引值来获取变量。你可以在创建变量时记录名称与索引的映射,后续通过索引反向获取:

model = CpModel()
var_index_map = {}

# 创建变量并记录索引
bv = model.new_bool_var("mySuperBoolVar")
var_index_map["mySuperBoolVar"] = bv.Index()

# 后续通过索引获取变量
bv = model.get_bool_var_from_proto_index(var_index_map["mySuperBoolVar"])

两种方式中,第一种维护字典的方法更简洁易用,也是社区普遍采用的方案。

内容的提问来源于stack exchange,提问作者Leszek Pachura

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:24:51