我使用Matlab的fminsearch函数来查找Nelder-Mead的最小值。 fminsearch自动计算初始单纯形的大小。就我而言,初始单纯形太小,因此表现不佳。
fminsearch使用长度为每个变量大小的5%的一段,零变量的值为0.00025。但是,我已阅读以下内容(source):
但是,以这种方式设置点数可能是合理的策略 simplex几乎涵盖了整个可能的范围。该 Nelder-Mead算法将自动缩小单纯形和 接近最佳状态。这项政策的实际优势是 你将获得更好的整体知识 响应功能。
我必须选择承认此政策的长度(百分比)是什么?
请记住,第一次单面操作是añwaysa 反射。如果起始单形覆盖整个允许的范围 反思必然会给出一个限制点。但 HillStormer允许使用线性约束并且可以避免这种情况 问题
我必须使用哪些线性约束来避免此问题?我正在使用允许此类约束的fminsearchbnd and fminsearchcon。
最后但并非最不重要的是,我在数字食谱中读到,当算法陷入局部最小值时,它会帮助您在卡住的位置重新初始化单纯形。当然,如果fminsearch终止,我可以用新点作为起点重新运行它。在这种情况下,我应该设置初始单面大小的值是什么?