Closed
Description
OR-Tools9.3.10497
Version: main/v9.3
Language: Python
Which solver are you using (e.g. CP-SAT)
What operating system (Windows10, ...) and version?
What did you do?
Steps to reproduce the behavior:
def merge_models(main_model, sub_models):
"""合并多个子模型到主模型""
main_model_Proto=main_model.Proto()
variable_offset = len(main_model_Proto.variables) # 获取主模型当前变量数量
for sub_model in sub_models:
sub_model_Proto=sub_model.Proto()
for var in sub_model_Proto.variables:
new_var = cp_model.IntegerVariableProto()
new_var.CopyFrom(var)
main_model_Proto.variables.append(new_var)
for constraint in sub_model_Proto.constraints:
new_constraint = cp_model.ConstraintProto()
new_constraint.CopyFrom(constraint)
for i in range(len(new_constraint.vars)):
new_constraint.vars[i] += variable_offset
main_model_Proto.constraints.append(new_constraint)
variable_offset = len(main_model_Proto.variables)
status = main_model.Validate()
print("status:", "ok" if status else "fail")
return main_model
print:fail