matrix2.py


matrix2.py


# !/usr/bin/env python3.7 #版权所有:2021,Gurobi 狗万app足彩Optimization, LLC它最大化了n x n #棋盘上皇后的数量,而不会互相威胁。# #演示NumPy切片。将numpy作为np导入scipy。稀疏的sp进口gurobipy如医生从gurobipy进口伽马线暴# n * n的棋盘的大小n = 8尝试:#创建一个新的模型m = gp.Model (matrix2) #创建一个二维数组二进制变量# x (i, j) = 1意味着女王是放置在广场(i, j) x = m.addMVar ((n, n), vtype =伽马线暴。m. setobobjective (x.sum(), GRB.MAXIMIZE)) #在range(n)中为i添加行和列约束:#在range(1, 2*n)中为i添加对角线约束:#一个女王/对角线成岩作用=(范围(最大(0,i n),最小(n,我)),范围(最小(n, i) 1,最大(0,i n) 1, 1)) m.addConstr (x[成岩作用].sum() < = 1,名称=“诊断接头”+ str (i)) #一个女王/反对角adiagn =(范围(最大(0,i n),最小(n,我)),范围(最大(0,n),最小(n, 2 * n))) m.addConstr (x [adiagn] .sum () < = 1,name="adiag"+str(i)) #优化模型m.optimize() print(x.X) print('Queens placed: %g' % m.objVal) except gp。GurobiError as e: print('Error code ' + str(e.errno) + ": " + str(e)) except AttributeError: print('Encountered an attribute error')