[Scipy-tickets] [SciPy] #1126: scipy.optimize.anneal does not respect lower/upper bounds
SciPy Trac
scipy-tickets@scipy....
Mon Feb 21 07:58:52 CST 2011
#1126: scipy.optimize.anneal does not respect lower/upper bounds
--------------------------------+-------------------------------------------
Reporter: lboussouf | Owner: somebody
Type: defect | Status: new
Priority: normal | Milestone: Unscheduled
Component: scipy.optimize | Version:
Keywords: bounds upper lower |
--------------------------------+-------------------------------------------
Comment(by Titus):
I also struggled with the annealing-routine, but now it seems fine. The
reason is indeed the input-parameters "lower" and "upper" that are not
very logic. They do not refer to global bounds of the parameters space but
to 'maximum' displacements in the MC scheme AND in addition they determine
the initial point!! This last point wasnot mentioned before, I think.
The initial value that you provide for the parameter vector seems to have
no influence.
This is how I call anneal with my desired functionality
p=[a,b,c] #my initial values
lb=array([a0,b0,c0]) #my lower bounds
ub=array([a1,b1,c1]) #my upper bounds
N=100 #determines the size of displacements
dx=(ub-lb)/N #displacements
lower=array(p)-dx/2 #the "lower bound" of the anneal routine
upper=array(p)+dx/2 #the "upper bound" of the anneal routine
f=lambda var: costfunction(p,lb,ub) #my cost function that is made very
high if not lb < p < ub
pbest=scipy.optimize.anneal(f,p,lower=lower,upper=upper)
This ensures a MC search that starts of close to my initial value and
makes steps of dx in its search.
~
--
Ticket URL: <http://projects.scipy.org/scipy/ticket/1126#comment:7>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.
More information about the Scipy-tickets
mailing list