Пример #1
0
def test_form_constraints_function():
    # Test a nonlinear constraints example.
    string = """
    x1*x2 = 1.
    x2 = x0 - 3.
    """
    # print("building constraints function for:%s" % string.rstrip())
    x0 = [0.8,1.2,-0.7]
    # print('initial parameters: %s' % asarray(x0))
    cf = generate_constraint(generate_solvers(solve(string)))
    # print('constraints satisfied? %s' % issolution(cf, x0))
    assert not issolution(cf, x0)
    x = cf(x0)
    # print('after imposing constraints: %s' % asarray(x))
    # print('constraints satisfied? %s' % issolution(cf, x))
    assert issolution(cf, x)

    x0 = [1.,1.,1.]
    # print('initial parameters: %s' % asarray(x0))
    # print('constraints satisfied? %s' % issolution(cf, x0))
    assert not issolution(cf, x0)
    x = cf(x0)
    # print('after imposing constraints: %s' % asarray(x))
    # print('constraints satisfied? %s' % issolution(cf, x), "\n")
    assert issolution(cf, x)
Пример #2
0
def test_form_constraints_function():
    # Test a nonlinear constraints example.
    string = """
    x1*x2 = 1.
    x2 = x0 - 3.
    """
    # print "building constraints function for:%s" % string.rstrip()
    x0 = [0.8,1.2,-0.7]
    # print 'initial parameters: %s' % asarray(x0)
    cf = generate_constraint(generate_solvers(solve(string)))
    # print 'constraints satisfied?', issolution(cf, x0)
    assert not issolution(cf, x0)
    x = cf(x0)
    # print 'after imposing constraints: %s' % asarray(x)
    # print 'constraints satisfied?', issolution(cf, x)
    assert issolution(cf, x)

    x0 = [1.,1.,1.]
    # print 'initial parameters: %s' % asarray(x0)
    # print 'constraints satisfied?', issolution(cf, x0)
    assert not issolution(cf, x0)
    x = cf(x0)
    # print 'after imposing constraints: %s' % asarray(x)
    # print 'constraints satisfied?', issolution(cf, x), "\n"
    assert issolution(cf, x)
Пример #3
0
def test_sumt1():
    def costfunc(x):
        x1 = x[0]
        x2 = x[1]
        return  x1**4 - 2.*x1**2*x2 + x1**2 + x1*x2**2 - 2.*x1 + 4.

    constraints_string = """
    x1**2 + x2**2 - 2. = 0.
    0.25*x1**2 + 0.75*x2**2 - 1. <= 0.
        """

    ndim = 2
    x0 = [3., 2.]
    npop = 25
    # print("constraints equations:%s" % (constraints_string.rstrip(),))

    from mystic.solvers import DifferentialEvolutionSolver
    from mystic.solvers import NelderMeadSimplexSolver
    from mystic.termination import VTR
    #solver = DifferentialEvolutionSolver(ndim, npop)
    solver = NelderMeadSimplexSolver(ndim)
    solver.SetInitialPoints(x0)
    term = VTR()
    #FIXME: sumt, issolution no longer take constraints strings
    end_solver = sumt(constraints_string, ndim, costfunc, solver,\
                                term, disp=True)
    soln = end_solver.Solution()
    assert issolution(constraints_string, soln)
Пример #4
0
def test_sumt1():
    def costfunc(x):
        x1 = x[0]
        x2 = x[1]
        return  x1**4 - 2.*x1**2*x2 + x1**2 + x1*x2**2 - 2.*x1 + 4.

    constraints_string = """
    x1**2 + x2**2 - 2. = 0.
    0.25*x1**2 + 0.75*x2**2 - 1. <= 0.
        """

    ndim = 2
    x0 = [3., 2.]
    npop = 25
    # print "constraints equations:%s" % (constraints_string.rstrip(),)

    from mystic.solvers import DifferentialEvolutionSolver
    from mystic.solvers import NelderMeadSimplexSolver
    from mystic.termination import VTR
    #solver = DifferentialEvolutionSolver(ndim, npop)
    solver = NelderMeadSimplexSolver(ndim)
    solver.SetInitialPoints(x0)
    term = VTR()
    #FIXME: sumt, issolution no longer take constraints strings
    end_solver = sumt(constraints_string, ndim, costfunc, solver,\
                                term, disp=True)
    soln = end_solver.Solution()
    assert issolution(constraints_string, soln)
Пример #5
0
def test_sumt2():
    def costfunc(x):
        return (x[0] - 1.)**2 + (x[1]-2.)**2 + (x[2]-3.)**4
    x0 = [0., 0., 0.]
    ndim = 3
    constraints_string = """
    x2 > 5.
    4.*x1-5.*x3 < -1.
    (x1-10.)**2 + (x2+1.)**2 < 50. 
    """
    print "constraints equations:%s" % (constraints_string.rstrip(),)
    from mystic.solvers import DifferentialEvolutionSolver
    from mystic.solvers import NelderMeadSimplexSolver
    from mystic.termination import VTR
    #solver = DifferentialEvolutionSolver(ndim, npop)
    solver = NelderMeadSimplexSolver(ndim)
    solver.SetInitialPoints(x0)
    term = VTR()
    #FIXME: sumt, issolution no longer take constraints strings
    end_solver = sumt(constraints_string, ndim, costfunc, solver,\
                                term, disp=True)
    soln = end_solver.Solution()
    print "final answer:", soln
    print "constraints satisfied:", issolution(constraints_string, soln)
    print "expected: [ 6.25827968  4.999961    5.20662288]", "\n"
Пример #6
0
def test_sumt2():
    def costfunc(x):
        return (x[0] - 1.)**2 + (x[1] - 2.)**2 + (x[2] - 3.)**4

    x0 = [0., 0., 0.]
    ndim = 3
    constraints_string = """
    x2 > 5.
    4.*x1-5.*x3 < -1.
    (x1-10.)**2 + (x2+1.)**2 < 50. 
    """
    print "constraints equations:%s" % (constraints_string.rstrip(), )
    from mystic.solvers import DifferentialEvolutionSolver
    from mystic.solvers import NelderMeadSimplexSolver
    from mystic.termination import VTR
    #solver = DifferentialEvolutionSolver(ndim, npop)
    solver = NelderMeadSimplexSolver(ndim)
    solver.SetInitialPoints(x0)
    term = VTR()
    #FIXME: sumt, issolution no longer take constraints strings
    end_solver = sumt(constraints_string, ndim, costfunc, solver,\
                                term, disp=True)
    soln = end_solver.Solution()
    print "final answer:", soln
    print "constraints satisfied:", issolution(constraints_string, soln)
    print "expected: [ 6.25827968  4.999961    5.20662288]", "\n"