6
点击打开链接
Quora User

Votes by Justin Rising, Will Beauchamp, Alistair Muldal, Slaven Glumac, and 1 more.

Basin-hopping is a stochastic algorithm which attempts to find the global minimum of a smooth scalar function of one or more variables. The algorithm in its current form was described by David Wales and Jonathan Doye
The algorithm is iterative with each cycle composed of the following features

  1. random perturbation of the coordinates
  2. local minimization
  3. accept or reject the new coordinates based on the minimized function value

The acceptance test used here is the Metropolis criterion of standard Monte Carlo algorithms, although there are many other possibilities. This global minimization method has been shown to be extremely efficient for a wide variety of problems in physics and chemistry. It is particularly useful when the function has many minima separated by large barriers. 
For stochastic global optimization there is no way to determine if the true global minimum has actually been found. Instead, as a consistency check, the algorithm can be run from a number of different random starting points to ensure the lowest minimum found in each example has converged to the global minimum. For this reason basinhopping will by default simply run for the number of iterations niter and return the lowest minimum found. It is left to the user to ensure that this is in fact the global minimum.

  • Choosing stepsize: This is a crucial parameter in basinhopping and depends on the problem being solved. Ideally it should be comparable to the typical separation between local minima of the function being optimized. Basinhopping will, by default, adjust stepsize to find an optimal value, but this may take many iterations. You will get quicker results if you set a sensible value for stepsize.
  • Choosing T: The parameter T is the temperature used in the metropolis criterion. Basin hopping steps are accepted with probability 1 if func(xnew) < func(xold), or otherwise with probability:

exp( -(func(xnew) - func(xold)) / T )
So, for best results, T should to be comparable to the typical difference in function value between between local minima.

SciPy has an inbuilt package for this algorithm:

scipy.optimize.basinhopping(func, x0, niter=100, T=1.0, stepsize=0.5,minimizer_kwargs=None, take_step=None,accept_test=None, callback=None,interval=50, disp=False, niter_success=None)
Find the global minimum of a function using the basin-hopping algorithm

Parameters :
func : callable f(x, *args)

Function to be optimized. args can be passed as an optional item in the dict minimizer_kwargs

x0 : ndarray

Initial guess.

niter : integer, optional

The number of basin hopping iterations

T : float, optional

The “temperature” parameter for the accept or reject criterion. Higher “temperatures” mean that larger jumps in function value will be accepted. For best results T should be comparable to the separation (in function value) between local minima.

stepsize : float, optional

initial step size for use in the random displacement.

minimizer_kwargs : dict, optional

Extra keyword arguments to be passed to the minimizer scipy.optimize.minimize() Some important options could be:

method : str
The minimization method (e.g. "L-BFGS-B")
args : tuple
Extra arguments passed to the objective function (func) and its derivatives (Jacobian, Hessian).

take_step : callable take_step(x), optional

Replace the default step taking routine with this routine. The default step taking routine is a random displacement of the coordinates, but other step taking algorithms may be better for some systems.take_step can optionally have the attribute take_step.stepsize. If this attribute exists, thenbasinhopping will adjust take_step.stepsize in order to try to optimize the global minimum search.

accept_test : callable, accept_test(f_new=f_new, x_new=x_new, f_old=fold,x_old=x_old), optional

Define a test which will be used to judge whether or not to accept the step. This will be used in addition to the Metropolis test based on “temperature” T. The acceptable return values are True,False, or "force accept". If the latter, then this will override any other tests in order to accept the step. This can be used, for example, to forcefully escape from a local minimum thatbasinhopping is trapped in.

callback : callable, callback(x, f, accept), optional

A callback function which will be called for all minimum found. x and f are the coordinates and function value of the trial minima, and accept is whether or not that minima was accepted. This can be used, for example, to save the lowest N minima found. Also, callback can be used to specify a user defined stop criterion by optionally returning True to stop the basinhoppingroutine.

interval : integer, optional

interval for how often to update the stepsize

disp : bool, optional

Set to True to print status messages

niter_success : integer, optional

Stop the run if the global minimum candidate remains the same for this number of iterations.

Returns :
res : Result

The optimization result represented as a Result object. Important attributes are: x the solution array, fun the value of the function at the solution, and message which describes the cause of the termination. See Result for a description of other attributes.

Source:http://docs.scipy.org/doc/scipy-...

Upvote • Comment • Written 20 Jul, 2013

Related Questions
  • Learning Algorithms: What are the most learner-friendly resources for learning about algorithms?

  • What is the best way to understand the Hopcroft–Karp algorithm?
  • Algorithms: What is  the algorithm behind the app like Summly?
  • Algorithms: What is the algorithm used by Google Search by Image?
  • Algorithms: What is the simplest intuitive proof of Dijkstra’s shortest path algorithm?
  • Web Development: What is the algorithm behind Quora Search?
  • What is the science behind Quora's algorithms?
  • What is the C4.5 algorithm and how does it work?
  • Distributed Systems: What is a simple explanation of the Paxos algorithm?
  • Algorithms: What is the most difficult algorithm

http://www.quora.com/Mathematical-Optimization/What-is-the-basin-hopping-algorithm

6
Quora User

Votes by Justin Rising, Will Beauchamp, Alistair Muldal, Slaven Glumac, and 1 more.

Basin-hopping is a stochastic algorithm which attempts to find the global minimum of a smooth scalar function of one or more variables. The algorithm in its current form was described by David Wales and Jonathan Doye
The algorithm is iterative with each cycle composed of the following features

  1. random perturbation of the coordinates
  2. local minimization
  3. accept or reject the new coordinates based on the minimized function value

The acceptance test used here is the Metropolis criterion of standard Monte Carlo algorithms, although there are many other possibilities. This global minimization method has been shown to be extremely efficient for a wide variety of problems in physics and chemistry. It is particularly useful when the function has many minima separated by large barriers. 
For stochastic global optimization there is no way to determine if the true global minimum has actually been found. Instead, as a consistency check, the algorithm can be run from a number of different random starting points to ensure the lowest minimum found in each example has converged to the global minimum. For this reason basinhopping will by default simply run for the number of iterations niter and return the lowest minimum found. It is left to the user to ensure that this is in fact the global minimum.

  • Choosing stepsize: This is a crucial parameter in basinhopping and depends on the problem being solved. Ideally it should be comparable to the typical separation between local minima of the function being optimized. Basinhopping will, by default, adjust stepsize to find an optimal value, but this may take many iterations. You will get quicker results if you set a sensible value for stepsize.
  • Choosing T: The parameter T is the temperature used in the metropolis criterion. Basin hopping steps are accepted with probability 1 if func(xnew) < func(xold), or otherwise with probability:

exp( -(func(xnew) - func(xold)) / T )
So, for best results, T should to be comparable to the typical difference in function value between between local minima.

SciPy has an inbuilt package for this algorithm:

scipy.optimize.basinhopping(func, x0, niter=100, T=1.0, stepsize=0.5,minimizer_kwargs=None, take_step=None,accept_test=None, callback=None,interval=50, disp=False, niter_success=None)
Find the global minimum of a function using the basin-hopping algorithm

Parameters :
func : callable f(x, *args)

Function to be optimized. args can be passed as an optional item in the dict minimizer_kwargs

x0 : ndarray

Initial guess.

niter : integer, optional

The number of basin hopping iterations

T : float, optional

The “temperature” parameter for the accept or reject criterion. Higher “temperatures” mean that larger jumps in function value will be accepted. For best results T should be comparable to the separation (in function value) between local minima.

stepsize : float, optional

initial step size for use in the random displacement.

minimizer_kwargs : dict, optional

Extra keyword arguments to be passed to the minimizer scipy.optimize.minimize() Some important options could be:

method : str
The minimization method (e.g. "L-BFGS-B")
args : tuple
Extra arguments passed to the objective function (func) and its derivatives (Jacobian, Hessian).

take_step : callable take_step(x), optional

Replace the default step taking routine with this routine. The default step taking routine is a random displacement of the coordinates, but other step taking algorithms may be better for some systems.take_step can optionally have the attribute take_step.stepsize. If this attribute exists, thenbasinhopping will adjust take_step.stepsize in order to try to optimize the global minimum search.

accept_test : callable, accept_test(f_new=f_new, x_new=x_new, f_old=fold,x_old=x_old), optional

Define a test which will be used to judge whether or not to accept the step. This will be used in addition to the Metropolis test based on “temperature” T. The acceptable return values are True,False, or "force accept". If the latter, then this will override any other tests in order to accept the step. This can be used, for example, to forcefully escape from a local minimum thatbasinhopping is trapped in.

callback : callable, callback(x, f, accept), optional

A callback function which will be called for all minimum found. x and f are the coordinates and function value of the trial minima, and accept is whether or not that minima was accepted. This can be used, for example, to save the lowest N minima found. Also, callback can be used to specify a user defined stop criterion by optionally returning True to stop the basinhoppingroutine.

interval : integer, optional

interval for how often to update the stepsize

disp : bool, optional

Set to True to print status messages

niter_success : integer, optional

Stop the run if the global minimum candidate remains the same for this number of iterations.

Returns :
res : Result

The optimization result represented as a Result object. Important attributes are: x the solution array, fun the value of the function at the solution, and message which describes the cause of the termination. See Result for a description of other attributes.

Source:http://docs.scipy.org/doc/scipy-...

Upvote • Comment • Written 20 Jul, 2013

Related Questions
  • Learning Algorithms: What are the most learner-friendly resources for learning about algorithms?

  • What is the best way to understand the Hopcroft–Karp algorithm?
  • Algorithms: What is  the algorithm behind the app like Summly?
  • Algorithms: What is the algorithm used by Google Search by Image?
  • Algorithms: What is the simplest intuitive proof of Dijkstra’s shortest path algorithm?
  • Web Development: What is the algorithm behind Quora Search?
  • What is the science behind Quora's algorithms?
  • What is the C4.5 algorithm and how does it work?
  • Distributed Systems: What is a simple explanation of the Paxos algorithm?
  • Algorithms: What is the most difficult algorithm
6
Quora User

Votes by Justin Rising, Will Beauchamp, Alistair Muldal, Slaven Glumac, and 1 more.

Basin-hopping is a stochastic algorithm which attempts to find the global minimum of a smooth scalar function of one or more variables. The algorithm in its current form was described by David Wales and Jonathan Doye
The algorithm is iterative with each cycle composed of the following features

  1. random perturbation of the coordinates
  2. local minimization
  3. accept or reject the new coordinates based on the minimized function value

The acceptance test used here is the Metropolis criterion of standard Monte Carlo algorithms, although there are many other possibilities. This global minimization method has been shown to be extremely efficient for a wide variety of problems in physics and chemistry. It is particularly useful when the function has many minima separated by large barriers. 
For stochastic global optimization there is no way to determine if the true global minimum has actually been found. Instead, as a consistency check, the algorithm can be run from a number of different random starting points to ensure the lowest minimum found in each example has converged to the global minimum. For this reason basinhopping will by default simply run for the number of iterations niter and return the lowest minimum found. It is left to the user to ensure that this is in fact the global minimum.

  • Choosing stepsize: This is a crucial parameter in basinhopping and depends on the problem being solved. Ideally it should be comparable to the typical separation between local minima of the function being optimized. Basinhopping will, by default, adjust stepsize to find an optimal value, but this may take many iterations. You will get quicker results if you set a sensible value for stepsize.
  • Choosing T: The parameter T is the temperature used in the metropolis criterion. Basin hopping steps are accepted with probability 1 if func(xnew) < func(xold), or otherwise with probability:

exp( -(func(xnew) - func(xold)) / T )
So, for best results, T should to be comparable to the typical difference in function value between between local minima.

SciPy has an inbuilt package for this algorithm:

scipy.optimize.basinhopping(func, x0, niter=100, T=1.0, stepsize=0.5,minimizer_kwargs=None, take_step=None,accept_test=None, callback=None,interval=50, disp=False, niter_success=None)
Find the global minimum of a function using the basin-hopping algorithm

Parameters :
func : callable f(x, *args)

Function to be optimized. args can be passed as an optional item in the dict minimizer_kwargs

x0 : ndarray

Initial guess.

niter : integer, optional

The number of basin hopping iterations

T : float, optional

The “temperature” parameter for the accept or reject criterion. Higher “temperatures” mean that larger jumps in function value will be accepted. For best results T should be comparable to the separation (in function value) between local minima.

stepsize : float, optional

initial step size for use in the random displacement.

minimizer_kwargs : dict, optional

Extra keyword arguments to be passed to the minimizer scipy.optimize.minimize() Some important options could be:

method : str
The minimization method (e.g. "L-BFGS-B")
args : tuple
Extra arguments passed to the objective function (func) and its derivatives (Jacobian, Hessian).

take_step : callable take_step(x), optional

Replace the default step taking routine with this routine. The default step taking routine is a random displacement of the coordinates, but other step taking algorithms may be better for some systems.take_step can optionally have the attribute take_step.stepsize. If this attribute exists, thenbasinhopping will adjust take_step.stepsize in order to try to optimize the global minimum search.

accept_test : callable, accept_test(f_new=f_new, x_new=x_new, f_old=fold,x_old=x_old), optional

Define a test which will be used to judge whether or not to accept the step. This will be used in addition to the Metropolis test based on “temperature” T. The acceptable return values are True,False, or "force accept". If the latter, then this will override any other tests in order to accept the step. This can be used, for example, to forcefully escape from a local minimum thatbasinhopping is trapped in.

callback : callable, callback(x, f, accept), optional

A callback function which will be called for all minimum found. x and f are the coordinates and function value of the trial minima, and accept is whether or not that minima was accepted. This can be used, for example, to save the lowest N minima found. Also, callback can be used to specify a user defined stop criterion by optionally returning True to stop the basinhoppingroutine.

interval : integer, optional

interval for how often to update the stepsize

disp : bool, optional

Set to True to print status messages

niter_success : integer, optional

Stop the run if the global minimum candidate remains the same for this number of iterations.

Returns :
res : Result

The optimization result represented as a Result object. Important attributes are: x the solution array, fun the value of the function at the solution, and message which describes the cause of the termination. See Result for a description of other attributes.

Source:http://docs.scipy.org/doc/scipy-...

Upvote • Comment • Written 20 Jul, 2013

Related Questions
  • Learning Algorithms: What are the most learner-friendly resources for learning about algorithms?

  • What is the best way to understand the Hopcroft–Karp algorithm?
  • Algorithms: What is  the algorithm behind the app like Summly?
  • Algorithms: What is the algorithm used by Google Search by Image?
  • Algorithms: What is the simplest intuitive proof of Dijkstra’s shortest path algorithm?
  • Web Development: What is the algorithm behind Quora Search?
  • What is the science behind Quora's algorithms?
  • What is the C4.5 algorithm and how does it work?
  • Distributed Systems: What is a simple explanation of the Paxos algorithm?
  • Algorithms: What is the most difficult algorithm

Basin hopping是什么全局优化算法?相关推荐

  1. 数学建模 MATLAB MATLAB全局优化算法

    一.MATLAB全局优化概况 MATLAB中有个全局优化工具箱,该工具箱集成了几个主流的全局优化算法,包含全局搜索.多初始点.模式搜索.遗传算法.多目标遗传算法.模拟退火求解器和粒子群求解器, 如图所 ...

  2. 【源码】MIC工具箱:迭代与全局优化算法工具箱

    迭代算法 Iterative methods KA:Kaczmarz算法 KA: Kaczmarz's Algorithm ART:代数重建技术 ART: Algebraic Reconstructi ...

  3. 差分进化算法_OPTIMUS软件功能特性介绍【全局优化算法模块】

    导读:面向应用工程师的商业软件咨询.自研软件定制开发服务的仿真公众号,点击关注进入菜单,查看更多精彩内容. OPTIMUS提供自适应进化算法(Self-adaptive Evolution),从用户给 ...

  4. 差分进化算法_差分进化算法

    差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法.是一种模拟生物进化的随机模型,通过反复迭代,使得那些适应环境的个体被保存了下来.它的进化 ...

  5. 蚁群算法,PSO算法以及两种算法可以融合的几种方法

    蚁群算法(ACO)是受自然界中蚂蚁搜索食物行为的启发,是一种群智能优化算法.它基于对自然界真实蚁群的集体觅食行为的研究,模拟真实的蚁群协作过程.算法由若干个蚂蚁共同构造解路径,通过在解路径上遗留并交换 ...

  6. 模拟退火算法(TSP问题)

    模拟退火算法解决TSP问题 算法思想 模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解 模拟退火算法来源于固体退火原理,将固体加温至充 ...

  7. 遗传算法 差分进化算法 粒子群优化算法区别

    一 遗传算法 遗传算法(GA)作为一种经典的进化算法,自 Holland提出之后在国际上已经形成了一个比较活跃的研究领域. 人们对 GA 进行了大量的研究,提出了各种改进算法用于提高算法的收敛速度和精 ...

  8. 模拟退火算法从原理到实战【基础篇】

    模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小 ...

  9. 人工蜂群算法的最小搜索模型_【优化求解】人工蜂群ABC算法

    一.人工蜂群算法的介绍 人工蜂群算法(Artificial Bee Colony, ABC)是由Karaboga于2005年提出的一种新颖的基于群智能的全局优化算法,其直观背景来源于蜂群的采蜜行为,蜜 ...

  10. 计算机原理与编程设计,最优化计算机原理与算法程序设计

    最优化计算机原理与算法程序设计 语音 编辑 锁定 讨论 上传视频 <最优化计算机原理与算法程序设计>是湖南国防科技大学出版社出版的图书,作者是粟塔山等. 作    者 粟塔山等编著 ISB ...

最新文章

  1. 浅析网站页面设计需要注意哪些细节问题?
  2. Exception in thread AWT-EventQueue-0 java.lang.IllegalThreadStateException
  3. jooq实体 和mysql_几个数据持久化框架Hibernate、JPA、Mybatis、JOOQ的比较
  4. 流媒体服务器 php,nginx 流媒体服务器 FFmpeg 截图
  5. Java提高篇 —— 抽象类与接口
  6. Win10,安装ISE14.7
  7. WIFEXITED WEXITSTATUS WIFSIGNALED(转)
  8. java new 关键字到底做了什么?
  9. 美国十大web2.0公司背后的故事
  10. facebook第三方登陆
  11. Shell 编程规范与变量
  12. SSM全注解开发的网上商城系统
  13. python-onvif 库踩坑
  14. linux系统禁用声卡,Ubuntu Linux系统下声卡独占的解决方法
  15. 支付宝 微信后台不死的黑科技
  16. 苹果CMS根据有无播放组输出不同的内容
  17. x230可以装win10吗_联想x230i笔记本用U盘安装win10专业版的操作教程
  18. PHP multicraft_Multicraft中文网 - 动态新闻
  19. Oracle Linux 7.5 安装 Oracle 18C 单实例
  20. [附源码]java毕业设计药品管理系统

热门文章

  1. DZZ云桌面1.3下载 多图介绍
  2. 【如何选】校园卡购买必读,移动联通电信校园卡套餐对比及购买策略(1预热)...
  3. 计算机里折叠项无法删除,删除右键多余菜单_如何去除右键菜单中多余选项?...
  4. react 报 Objects are not valid as a React child (found: object with keys {}). If you meant to render.
  5. kinect_v2-ros(iai_kinect2)安装,环境ubuntu1604+INTEL+NVIDIA
  6. 百度BAE专业版申购SSL证书
  7. 监听SpringBoot 服务启动成功事件并打印信息
  8. 我的电脑数据执行保护设置不了须是计算机管理员,比使用boot.ini文件。我该怎么办?
  9. model.show_result()导致jupyter lab提示服务似乎挂掉,但会立刻重启
  10. mysql comment_mysql中的comment用法