print 'Initial point: ', x0[:max_n] print 'Lower bounds on x: ', nlp.Lvar[:max_n] print 'Upper bounds on x: ', nlp.Uvar[:max_n] print 'f( x0 ) = ', nlp.obj(x0) g0 = nlp.grad(x0) print 'grad f( x0 ) = ', g0[:max_n] if max_m > 0: print 'Initial multipliers: ', pi0[:max_m] print 'Lower constraint bounds: ', nlp.Lcon[:max_m] print 'Upper constraint bounds: ', nlp.Ucon[:max_m] c0 = nlp.cons(x0) print 'c( x0 ) = ', c0[:max_m] J = nlp.jac(x0) H = nlp.hess(x0, pi0) print print ' nnzJ = ', J.nnz print ' nnzH = ', H.nnz print print ' Printing at most first 5x5 principal submatrix' print print 'J( x0 ) = ', J[:max_m, :max_n] print 'Hessian (lower triangle):', H[:max_n, :max_n] print print ' Evaluating constraints individually, sparse gradients' print
print 'Initial point: ', x0[:max_n] print 'Lower bounds on x: ', nlp.Lvar[:max_n] print 'Upper bounds on x: ', nlp.Uvar[:max_n] print 'f( x0 ) = ', nlp.obj( x0 ) g0 = nlp.grad( x0 ) print 'grad f( x0 ) = ', g0[:max_n] if max_m > 0: print 'Initial multipliers: ', pi0[:max_m] print 'Lower constraint bounds: ', nlp.Lcon[:max_m] print 'Upper constraint bounds: ', nlp.Ucon[:max_m] c0 = nlp.cons( x0 ) print 'c( x0 ) = ', c0[:max_m] J = nlp.jac( x0 ) H = nlp.hess( x0, pi0 ) print print ' nnzJ = ', J.nnz print ' nnzH = ', H.nnz print print ' Printing at most first 5x5 principal submatrix' print print 'J( x0 ) = ', J[:max_m,:max_n] print 'Hessian (lower triangle):', H[:max_n,:max_n] print print ' Evaluating constraints individually, sparse gradients' print
try: from nlpy.model import AmplModel except: msg='NLPy is required to run this demo. See http://nlpy.sf.net' raise RuntimeError, msg from pyorder.tools import coord2csc from pyorder.pymc60 import sloan, rcmk from pyorder.tools.spy import FastSpy import numpy as np import matplotlib.pyplot as plt nlp = AmplModel('truss18bars.nl') x = np.random.random(nlp.n) y = np.random.random(nlp.m) H = nlp.hess(x,y) (val,irow,jcol) = H.find() (rowind, colptr, values) = coord2csc(nlp.n, irow, jcol, val) # Convert to CSC perm1, rinfo1 = rcmk(nlp.n, rowind, colptr) # Reverse Cuthill-McKee perm2, rinfo2 = sloan(nlp.n, rowind, colptr) # Sloan's method left = plt.subplot(131) FastSpy(nlp.n, nlp.n, irow, jcol, sym=True, ax=left.get_axes(), title='Original') # Apply permutation 1 and plot reordered matrix middle = plt.subplot(132) FastSpy(nlp.n, nlp.n, perm1[irow], perm1[jcol], sym=True, ax=middle.get_axes(), title='Rev. Cuthill-McKee (semibandwidth=%d)' % rinfo1[2])