#!/bin/env python # # Use NumPy arrays for creating a 3-dimensional array of variables, # then use it to create a mode. # from __future__ import print_function import numpy as np import xpress as xp S1 = range (2) S2 = range (3) S3 = range (4) m = xp.problem () h = np.array ([[[xp.var (vartype = xp.binary) for i in S1] for j in S2] for k in S3]) m.addVariable (h) m.setObjective (h[0][0][0] * h[0][0][0] + h[1][0][0] * h[0][0][0] + h[1][0][0] * h[1][0][0] + xp.Sum (h[i][j][k] for i in S3 for j in S2 for k in S1)) cons00 = - h[0][0][0] * h[0][0][0] + xp.Sum (i * j * k * h[i][j][k] for i in S3 for j in S2 for k in S1) >= 11 m.addConstraint (cons00) m.solve () # Get the matrix representation of the quadratic part of the single # constraint mstart1=[] mclind1=[] dqe1=[] m.getqrowqmatrix (cons00, mstart1, mclind1, dqe1, 29, h[0][0][0], h[3][2][1]) print ("row 0:", mstart1, mclind1, dqe1)