Пример #1
0
        gtol=gtol,
        diffInt=diffInt,
        ftol=ftol,
        maxIter=1390,
        plot=PLOT,
        color=colors[j],
        iprint=10,
        df_iter=4,
        legend=solver,
        show=False,
        contol=contol,
        maxTime=maxTime,
        maxFunEvals=maxFunEvals,
        name="NLP_bench_1",
    )
    p.constraints = [c1 < 0, c2 < 0, h1.eq(0), h2.eq(0), x > lb, x < ub]
    # p.constraints = h1.eq(0)

    # p._Prepare()
    # print p.dc(p.x0)
    # print h1.D(startPoint)
    # print h2.D(startPoint)
    # continue

    if solver == "algencan":
        p.gtol = 1e-2
    elif solver == "ralg":
        pass
        # p.debug = 1

    # p.debug = 1
Пример #2
0
###############################################################
solvers = ['ralg', 'scipy_cobyla', 'lincher', 'scipy_slsqp', 'ipopt','algencan']
#solvers = ['ralg', 'ipopt']
solvers = ['ralg', 'scipy_cobyla', 'lincher', 'scipy_slsqp', 'ipopt']
solvers = ['ralg', 'scipy_slsqp', 'scipy_cobyla', 'algencan']
#solvers = ['ipopt','ralg', 'algencan']
solvers = ['ralg', 'scipy_cobyla']
#solvers = ['ralg', 'scipy_slsqp']
#solvers = ['ralg', 'algencan']
solvers = ['ralg']
###############################################################

lines, results = [], {}
for j, solver in enumerate(solvers):
    p = NLP(ff, startPoint, xlabel = Xlabel, gtol=gtol, diffInt = diffInt, ftol = ftol, maxIter = 1390, plot = PLOT, color = colors[j], iprint = 10, df_iter = 4, legend = solver, show=False,  contol = contol,  maxTime = maxTime,  maxFunEvals = maxFunEvals, name='NLP_bench_1')
    p.constraints = [c1<0,  c2<0,  h1.eq(0),  h2.eq(0), x > lb, x< ub]
    #p.constraints = h1.eq(0)
    
    #p._Prepare()
    #print p.dc(p.x0)
    #print h1.D(startPoint)
    #print h2.D(startPoint)
    #continue
    
    if solver =='algencan':
        p.gtol = 1e-2
    elif solver == 'ralg':
        pass
        #p.debug = 1
    
    #p.debug = 1
Пример #3
0
from FuncDesigner import *
from openopt import NLP
a, b, c = oovars('a', 'b', 'c')
f = sum(a * [1, 2])**2 + b**2 + c**2
startPoint = {a: [100, 12], b: 2, c: 40}
p = NLP(f, startPoint)
p.constraints = [(2*c+a-10)**2<1.5, (a-10)**2<1.5, a[0]>8.9, a+b>[ 7.97999836,  7.8552538 ], \
                 a<9, (c-2)**2<1, b<-1.02, c>1.01, log2(c-15*a/b)+a>4, ((b+2*c-1)**2).eq(0)]
r = p.solve('ralg', iprint=1)
print r.xf
# {a: array([ 8.99999769,  8.87525255]), b: array([-1.0199994]), c: array([ 1.01000874])}
Пример #4
0
from FuncDesigner import *
from openopt import NLP

a, b, c = oovars('a', 'b', 'c')
f = sum(a*[1, 2])**2+b**2+c**2
startPoint = {a:[100, 12], b:2, c:40} # however, you'd better use numpy arrays instead of Python lists
p = NLP(f, startPoint)
p.constraints = [(2*c+a-10)**2 < 1.5 + 0.1*b, (a-10)**2<1.5, a[0]>8.9, (a+b > [ 7.97999836, 7.8552538 ])('sum_a_b', tol=1.00000e-12), \
a < 9, ((c-2)**2 < 1), (b < -1.02), c > 1.01, ((b + c * log10(a).sum() - 1) ** 2==0)(tol=1e-6)]
r = p.minimize('ralg', plot=0, xtol=1e-7)
#r = p.solve('ralg') # for NLPs old-style (openopt 0.25 and below) p.solve() is same to p.minimize()
#r = p.maximize('ralg')
print(r.xf)
print(a(r.xf))
a_opt,  b_opt, c_opt = r(a, b, c)
# or any of the following: 
# a_opt,  b_opt, c_opt = r(a), r(b), r(c)
# r('a'), r('b'), r('c') (provided you have assigned the names to oovars as above)
# r('a', 'b', 'c')
# a(r), b(r), c(r)

"""
Expected output:
...
objFunValue: 717.75631 (feasible, max constraint =  7.44605e-07)
{a: array([ 8.99999792,  8.87525277]), b: array([-1.01999971]), c: array([ 1.0613562])}
"""
Пример #5
0
from FuncDesigner import *
from openopt import NLP
a, b, c = oovars('a', 'b', 'c')
f = sum(a*[1, 2])**2+b**2+c**2
startPoint = {a:[100, 12], b:2, c:40}
p = NLP(f, startPoint)
p.constraints = [(2*c+a-10)**2<1.5, (a-10)**2<1.5, a[0]>8.9, a+b>[ 7.97999836,  7.8552538 ], \
                 a<9, (c-2)**2<1, b<-1.02, c>1.01, log2(c-15*a/b)+a>4, ((b+2*c-1)**2).eq(0)]
r = p.solve('ralg', iprint =1)
print r.xf
# {a: array([ 8.99999769,  8.87525255]), b: array([-1.0199994]), c: array([ 1.01000874])}
Пример #6
0
from FuncDesigner import *
from openopt import NLP, oosolver
from numpy import arange
N = 10
a = oovar('a', size=N)
b = oovar('b', size=N)
f = (sum(abs(a*arange(1,N+1))**2.5)+sum(abs(b*arange(1,N+1))**1.5)) / 10000

startPoint = {a:cos(arange(N)), b:sin(arange(N))} # however, you'd better use numpy arrays instead of Python lists
p = NLP(f, startPoint)
#p.constraints = [(a>1)(tol=1e-5), a**2+b**2 < 0.1+a+b]# + [(a[i]**2+b[i]**2 < 3+abs(a[i])+abs(b[i])) for i in range(N)]

p.constraints = [a>1, 10*a>10]          # + [(a[i]**2+b[i]**2 < 3+abs(a[i])+abs(b[i])) for i in range(N)]
#p.constraints = []
#C = sum(a**2+b**2 - (0.1+a+b)
C = [ifThenElse(a[i]**2+b[i]**2 - (0.1+a[i]+b[i])<0,  0,  a[i]**2+b[i]**2 - (0.1+a[i]+b[i])) for i in range(N)]
p.constraints.append(sum(C)<0)
solver = 'ipopt'
solver = oosolver('ralg')
#solver = oosolver('ralg', approach='nqp')
r = p.minimize(solver, maxIter = 15000)