#作者:Paul Tabatabai#日期:2016年7月4日,更新日期:2020年7月28日导入gurobipy作为gp将itertools作为它导入定义a182531(n):model=gp.model()边缘={}对于范围(n)内的i:对于范围(i+1,n)中的j:边缘[(i,j)]=模型.addVar(vtype=gp.GRB.BINARY)model.setObjective(sum(edge.values()),gp.GRB。最大化)#(a,b,c)形成三角形对于其中的(a,b,c)组合(范围(n),3):其他=[x代表范围(n)中的x,如果x不在[a,b,c]]对于其他中的o:#o是顶点连接到三角形,将o连接到a、b或c:#每个约束一个:型号.地址Constr(边[(a,b)]+边[(a,c)]+边缘[(b,c)]+边[元组(排序((a,o)))]<=3)型号.地址Constr(边[(a,b)]+边[(a,c)]+边缘[(b,c)]+边[元组(排序((b,o)))]<=3)型号.地址Constr(边[(a,b)]+边[(a,c)]+边缘[(b,c)]+边[元组(排序((c,o)))]<=3)model.setParam(“输出标志”,False)模型优化()返回轮(model.getAttr(“ObjVal”))如果__name__==“__main__”:对于范围(1,23+1)中的n:打印(n,a182531(n))