Beispiel #1
0
solvers = ['ralg', 'amsg2p']
solvers = ['gsubg']

Colors = ['r', 'k','b']
xOpt = 1.0/n

def cb(p):
    tmp = ceil(log10(norm(xOpt - p.xk)))
    if tmp < cb.TMP:
#        print 'distance:', tmp, 'itn:', p.iter, 'n_func:', p.nEvals['f'], 'n_grad:', -p.nEvals['df']
        cb.TMP = tmp
        cb.stat['dist'].append(tmp)
        cb.stat['f'].append(p.nEvals['f'])
        cb.stat['df'].append(-p.nEvals['df'])
    return False
asa = lambda x:asarray(x).reshape(-1, 1)

R = {}
lines = []
for i, solver in enumerate(solvers):
    p = NSP(obj, startPoint, maxIter = 4700, name = 'Rzhevsky3 (nVars: ' + str(n)+')', maxTime = 30000, maxFunEvals=1e7, color = Colors[i])
    #p.maxIter = 10#; p.useSparse = False
    p.fEnough = 1.0e-5
    p.fOpt = 1.0e-5
    p.fTol = 0.5e-5
    cb.TMP = 1000
    cb.stat = {'dist':[], 'f':[], 'df':[]}
    r = p.manage(solver, iprint=1, xtol = 1e-10, ftol = 1e-10, show = solver == solvers[-1], plot = 0, callback = cb)
    R[solver] = hstack((asa(cb.stat['dist']), asa(cb.stat['f']), asa(cb.stat['df'])))
Beispiel #2
0
        cb.stat['df'].append(-p.nEvals['df'])
    return False


asa = lambda x: asarray(x).reshape(-1, 1)
R = {}
for i, solver in enumerate(solvers):
    p = NSP(obj,
            startPoint,
            maxIter=17000,
            name='Rzhevsky1 (nVars: ' + str(n) + ')',
            maxTime=300,
            maxFunEvals=1e7,
            color=Colors[i])
    p.fTol = 0.5e-10
    p.fEnough = -0.84140833459
    p.fOpt = -0.841408334596
    cb.TMP = 1000
    cb.stat = {'dist': [], 'f': [], 'df': []}
    r = p.solve(solver,
                iprint=10,
                ftol=1e-15,
                xtol=1e-10,
                debug=0,
                show=solver == solvers[-1],
                plot=0,
                callback=cb)
    R[solver] = hstack(
        (asa(cb.stat['dist']), asa(cb.stat['f']), asa(cb.stat['df'])))
'''
--------------------------------------------------
Beispiel #3
0
from numpy import arange
from numpy.linalg import norm
from openopt import NSP, oosolver
from FuncDesigner import *

N = 300
x = oovar('x')
startPoint = {x: 1 + 1.0 / arange(1, N)}
S = 1e4 ** (1.0/arange(1, N))

#f = abs(x[0]) + S * abs(x[1]) + S**2 * abs(x[2])
f = sum(abs(x)*S)


solvers = [oosolver('ralg')]
solvers = [oosolver('gsubg', addASG = True)]
#solvers = [oosolver('gsubg', zhurb = 20, dual=False)]
#solvers = ['ipopt']
#solvers = ['slmvm2']
#solvers = ['mma']
for solver in solvers:
    p = NSP(f, startPoint, maxIter = 10000, maxTime = 15000, maxFunEvals=1e7)
    p.fEnough = 1.5e1
    p.fTol = 1.0e1
    #p.constraints = (y > 5)(tol=1e-4) #x>1e-1 #[2*y<sin(arange(N))]
    #r = p.solve(solver, iprint=10, xtol = 1e-36, ftol = 1e-16, show = solver == solvers[-1])
    r = p.solve(solver, iprint=10, xtol = 1e-16, ftol = 1e-6, show = solver == solvers[-1])
    

Beispiel #4
0
def cb(p):
    tmp = ceil(log10(norm(xOpt - p.xk)))
    if tmp < cb.TMP:
#        print 'distance:', tmp, 'itn:', p.iter, 'n_func:', p.nEvals['f'], 'n_grad:', -p.nEvals['df']
        cb.TMP = tmp
        cb.stat['dist'].append(tmp)
        cb.stat['f'].append(p.nEvals['f'])
        cb.stat['df'].append(-p.nEvals['df'])
    return False
asa = lambda x:asarray(x).reshape(-1, 1)
R = {}
for i, solver in enumerate(solvers):
    p = NSP(obj, startPoint, maxIter = 17000, name = 'Rzhevsky1 (nVars: ' + str(n)+')', maxTime = 300, maxFunEvals=1e7, color = Colors[i])
    p.fTol = 0.5e-10
    p.fEnough = -0.84140833459
    p.fOpt = -0.841408334596
    cb.TMP = 1000
    cb.stat = {'dist':[], 'f':[], 'df':[]}
    r = p.solve(solver, iprint=10, ftol = 1e-15, xtol = 1e-10, debug=0, show = solver == solvers[-1], plot = 0, callback=cb)
    R[solver] = hstack((asa(cb.stat['dist']), asa(cb.stat['f']), asa(cb.stat['df'])))

'''
--------------------------------------------------
solver: gsubg   problem: rjevsky1 (nVars: 10)    type: NSP   goal: minimum
 iter    objFunVal   
    0  1.573e+02 
   10  -7.780e-01 
   20  -8.410e-01 
   30  -8.410e-01 
   40  -8.410e-01 
Beispiel #5
0

print 'start point: f1 = %e   f2 = %e' % (f1(startPoint), f2(startPoint))
#print "start point: norm(f1') = %e   norm(f2') = %e" % (norm(f1.D(startPoint, y)), norm(f2.D(startPoint, x)))

ralg = oosolver('ralg')
gsubg = oosolver('gsubg', addASG = False)

solvers = [ralg]

#solvers = [oosolver('gsubg', zhurb = 20, dual=False)]
solvers = ['ipopt', gsubg, 'scipy_cg']
solvers = [gsubg]
#solvers = ['ipopt']
#solvers = ['slmvm2']
#solvers = ['slmvm1']
#solvers = ['mma']
Colors = ['r', 'k','b']

lines = []
for i, solver in enumerate(solvers):
    p = NSP(f, startPoint, maxIter = 300, name = 'ns' + str(N+K), maxTime = 15000, maxFunEvals=1e7, color = Colors[i])
    #p.constraints = y>-100
    p.fEnough = 1.0e-1#e-1
    p.fTol = 0.5e-1
    p.debug = 1
    #p.constraints = (y > 5)(tol=1e-4) #x>1e-1 #[2*y<sin(arange(N))]
    #r = p.manage(solver, iprint=10, xtol = 1e-9, ftol = 1e-9, show = solver == solvers[-1], maxIter = 10000)
    r = p.solve(solver, iprint=10, xtol = 1e-6, ftol = 1e-6, debug=0, show = solver == solvers[-1], plot = 0)
    print 'end point: f1 = %e   f2 = %e' % (f1(r.xf), f2(r.xf))