blob: 42ca3bddfe24358a2fc70807318ed93228c8f152 [file] [log] [blame]
import numpy as np
from scipy import sparse
import scipy as sp
import utils.codegen_utils as cu
from numpy.random import Generator, PCG64
# Set random seed for reproducibility
rg = Generator(PCG64(2))
n = 50
m = 150
# Generate random Matrices
Pt = sparse.random(n, n, random_state=rg)
P = Pt.T.dot(Pt) + sparse.eye(n)
P = sparse.triu(P, format='csc')
q = sp.randn(n)
A = sparse.random(m, n, random_state=rg).tolil() # Lil for efficiency
u = 3 + sp.randn(m)
l = -3 + sp.randn(m)
# Make random problem primal infeasible
A[int(n/2), :] = A[int(n/2)+1, :]
l[int(n/2)] = u[int(n/2)+1] + 10 * rg.random()
u[int(n/2)] = l[int(n/2)] + 0.5
# Convert A to csc
A = A.tocsc()
# Generate problem solutions
sols_data = {'status_test': 'primal_infeasible'}
# Generate problem data
cu.generate_problem_data(P, q, A, l, u, 'primal_infeasibility', sols_data)