Example #1
0
    def CostFactory2(self,pts,datapts,nparams):
        """generates a cost function instance from datapoints 
and evaluation points"""
        F = CF()
        F.addModel(self.ForwardFactory,self.__name__,nparams)
        self.__cost__ = F.getCostFunction(evalpts=pts,observations=datapts,sigma=self.__sigma__,metric=self.__metric__)
        return self.__cost__
Example #2
0
def PolyCostFactory(evalpts,datapts,ndim):
    """generate a cost function instance from evaluation points and data"""
    from numpy import sum
    F = CostFactory()
    F.addModel(ForwardPolyFactory,ndim,"noisy_polynomial")
    return F.getCostFunction(evalpts=evalpts,observations=datapts, \
                             metric=lambda x: sum(x*x),sigma=1000.)
Example #3
0
 def CostFactory(self,target,pts):
     """generates a cost function instance from list of coefficients & evaluation points"""
     datapts = self.evaluate(target,pts)
     F = CF()
     F.addModel(self.ForwardFactory,len(target),self.__name__)
     self.__cost__ = F.getCostFunction(evalpts=pts,observations=datapts,sigma=sqrt(datapts),metric=self.__metric__)
     return self.__cost__
Example #4
0
def PolyCostFactory(evalpts,datapts,ndim):
    """generate a cost function instance from evaluation points and data"""
    from numpy import sum
    F = CostFactory()
    F.addModel(ForwardPolyFactory,ndim,"noisy_polynomial")
    return F.getCostFunction(evalpts=evalpts,observations=datapts, \
                             metric=lambda x: sum(x*x),sigma=1000.)
Example #5
0
 def CostFactory(self,target,pts):
     """generates a cost function instance from list of coefficients & evaluation points"""
     datapts = self.evaluate(target,pts)
     F = CF()
     F.addModel(self.ForwardFactory,self.__name__,len(target))
     self.__cost__ = F.getCostFunction(evalpts=pts,observations=datapts,sigma=sqrt(datapts),metric=self.__metric__)
     return self.__cost__
Example #6
0
    def CostFactory2(self,pts,datapts,nparams):
        """generates a cost function instance from datapoints 
and evaluation points"""
        F = CF()
        F.addModel(self.ForwardFactory,nparams,self.__name__)
        self.__cost__ = F.getCostFunction(evalpts=pts,observations=datapts,sigma=self.__sigma__,metric=self.__metric__)
        return self.__cost__
Example #7
0
    minrange = [-1000., -1000., -100., -10.]
    maxrange = [1000., 1000., 100., 10.]
    solver.SetRandomInitialPoints(min=minrange, max=maxrange)
    solver.SetEvaluationLimits(generations=MAX_GENERATIONS)
    solver.SetGenerationMonitor(stepmon)

    solver.Solve(CF, termination = ChangeOverGeneration(generations=100), \
                 CrossProbability=0.5, ScalingFactor=0.5)

    solution = solver.Solution()

    return solution, stepmon


if __name__ == '__main__':
    F = CostFactory()
    F.addModel(ForwardMogiFactory, 4, 'mogi1', outputFilter=component(2))
    myCostFunction = F.getCostFunction(evalpts=stations, observations=data_z)
    print(F)
    rp = F.getRandomParams()
    print("new Cost Function : %s " % myCostFunction(rp))
    print("orig Cost Function: %s " % cost_function(rp))

    f1 = ForwardMogiFactory(rp)
    f2 = ForwardMogiFactory(rp)

    print('start cf')
    for i in range(3000):
        xx = cost_function(rp)
    print('end cf')
Example #8
0
    maxrange = [1000., 1000., 100., 1.]*2;
    solver.SetRandomInitialPoints(min = minrange, max = maxrange)
    solver.SetEvaluationLimits(generations=MAX_GENERATIONS)
    solver.SetGenerationMonitor(stepmon)

    solver.Solve(CF, termination = ChangeOverGeneration(generations=300), \
                 CrossProbability=0.5, ScalingFactor=0.5, \
                 sigint_callback = plot_sol)

    solution = solver.Solution()
  
    return solution, stepmon

if __name__ == '__main__':

    F = CostFactory()
    F.addModel(ForwardMogiFactory, 4, 'mogi1', outputFilter = PickComponent(2, -1))
    F.addModel(ForwardMogiFactory, 4, 'mogi2', outputFilter = PickComponent(2, -1))
    myCostFunction = F.getCostFunction(evalpts = stations, observations = data_z)
    print F

    def C2(x):
        "This is the new version"
        return 100000 * myCostFunction(x)

    def C3(x):
        "Cost function constructed by hand"
        from test_mogi2 import cost_function
        return cost_function(x)

    def test():
Example #9
0
    from mystic.models.lorentzian import gendata, histogram
    npts = 4000; binwidth = 0.1
    N = npts * binwidth
    xmin, xmax = 0.0, 3.0
    pdf = F(target)          # normalized
    print "pdf(1): ", pdf(1)

    data = gendata(target, xmin, xmax, npts)  # data is 'unnormalized'
    #pylab.plot(data[1:N],0*data[1:N],'k.')
    #pylab.title('Samples drawn from density to be estimated.')
    #show()
    #pylab.clf()

    binsc, histo = histogram(data, binwidth, xmin,xmax)
    print "binsc:  ", binsc
    print "count:  ", histo
    print "ncount: ", histo/N
    print "exact : ", pdf(binsc)

    print "now with DE..."
    from mystic.forward_model import CostFactory
    CF = CostFactory()
    CF.addModel(F, 'lorentz', ND)
    myCF = CF.getCostFunction(binsc, histo/N)
    sol, steps = de_solve(myCF)
    plot_sol()(sol)
    #print "steps: ", steps.x, steps.y

# end of file
Example #10
0
    npts = 4000
    binwidth = 0.1
    N = npts * binwidth
    xmin, xmax = 0.0, 3.0
    pdf = F(target)  # normalized
    print "pdf(1): ", pdf(1)

    data = gendata(target, xmin, xmax, npts)  # data is 'unnormalized'
    # pylab.plot(data[1:N],0*data[1:N],'k.')
    # pylab.title('Samples drawn from density to be estimated.')
    # show()
    # pylab.clf()

    binsc, histo = histogram(data, binwidth, xmin, xmax)
    print "binsc:  ", binsc
    print "count:  ", histo
    print "ncount: ", histo / N
    print "exact : ", pdf(binsc)

    print "now with DE..."
    from mystic.forward_model import CostFactory

    CF = CostFactory()
    CF.addModel(F, ND, "lorentz")
    myCF = CF.getCostFunction(binsc, histo / N)
    sol, steps = de_solve(myCF)
    plot_sol()(sol)
    # print "steps: ", steps.x, steps.y

# end of file
Example #11
0
    from mystic.models.lorentzian import gendata, histogram
    npts = 4000; binwidth = 0.1
    N = npts * binwidth
    xmin, xmax = 0.0, 3.0
    pdf = F(target)          # normalized
    print("pdf(1): %s" % pdf(1))

    data = gendata(target, xmin, xmax, npts)  # data is 'unnormalized'
    #pylab.plot(data[1:N],0*data[1:N],'k.')
    #pylab.title('Samples drawn from density to be estimated.')
    #show()
    #pylab.clf()

    binsc, histo = histogram(data, binwidth, xmin,xmax)
    print("binsc:  %s" % binsc)
    print("count:  %s" % histo)
    print("ncount: %s" % (histo//N))
    print("exact : %s" % pdf(binsc))

    print("now with DE...")
    from mystic.forward_model import CostFactory
    CF = CostFactory()
    CF.addModel(F, ND, 'lorentz')
    myCF = CF.getCostFunction(binsc, histo//N)
    sol, steps = de_solve(myCF)
    plot_sol()(sol)
    #print("steps: %s %s" % (steps.x, steps.y))

# end of file
Example #12
0
    stepmon = Monitor()
    minrange = [-1000., -1000., -100., -10.];
    maxrange = [1000., 1000., 100., 10.];
    solver.SetRandomInitialPoints(min = minrange, max = maxrange)
    solver.SetEvaluationLimits(generations=MAX_GENERATIONS)
    solver.SetGenerationMonitor(stepmon)

    solver.Solve(CF, termination = ChangeOverGeneration(generations=100), \
                 CrossProbability=0.5, ScalingFactor=0.5)

    solution = solver.Solution()
  
    return solution, stepmon

if __name__ == '__main__':
    F = CostFactory()
    F.addModel(ForwardMogiFactory, 'mogi1', 4, outputFilter = PickComponent(2))
    myCostFunction = F.getCostFunction(evalpts = stations, observations = data_z)
    print F
    rp =  F.getRandomParams()
    print "new Cost Function : %s " % myCostFunction(rp)
    print "orig Cost Function: %s " % cost_function(rp)

    f1 = ForwardMogiFactory(rp)
    f2 = ForwardMogiFactory(rp)

    print 'start cf'
    for i in range(3000):
        xx = cost_function(rp)
    print 'end cf'
Example #13
0
    solver.Solve(
        CF,
        termination=ChangeOverGeneration(generations=300),
        CrossProbability=0.5,
        ScalingFactor=0.5,
        sigint_callback=plot_sol,
    )

    solution = solver.Solution()

    return solution, stepmon


if __name__ == "__main__":

    F = CostFactory()
    F.addModel(ForwardMogiFactory, 4, "mogi1", outputFilter=PickComponent(2, -1))
    F.addModel(ForwardMogiFactory, 4, "mogi2", outputFilter=PickComponent(2, -1))
    myCostFunction = F.getCostFunction(evalpts=stations, observations=data_z)
    print F

    def C2(x):
        "This is the new version"
        return 100000 * myCostFunction(x)

    def C3(x):
        "Cost function constructed by hand"
        from test_mogi2 import cost_function

        return cost_function(x)