本节将介绍两类问题的不同解决方案。其一是通过随机的搜索算法对某一函数的取值进行比较,求取最大/最小值的过程;其二则和积分类似,是使得某一函数被最优化,这一部分内容的代表算法是EM算法。(书中章节名称为Optimization)

2. 随机搜索

    对于优化,一本很有名的书是Stephen Boyd 的凸优化(Convex Optimization)。但看过的人可能思维会受到一点限制。最简单、最基本的求最大/最小值的算法,除了直接求解,就是把所有的可能值枚举出来,然后求最大/最小就可以了,而不是凸优化里面的下降方法。

    当然,一个基本的条件是定义域有界,这样即使定义域连续,我们也可以求到足够近似的解。譬如如果要求解函数

[MCSM]随机搜索和EM算法

    在[0,1]之间的最大值,采用搜索算法可得到如下结果

MATLAB 代码

a = rand(1,10000);

a = sort(a);

b = (cos(50*a) + sin(20*a)).^2;

a = (1:10000)./10000;

c = (cos(50*a) + sin(20*a)).^2;

subplot(1,2,1);

plot(a,c);xlabel('Function');

subplot(1,2,2);

plot(a,b,'.','MarkerSize',4.5);xlabel('Evaluation');

max(b)
View Code

相关文章:

  • 2021-05-02
  • 2022-12-23
  • 2022-01-03
猜你喜欢
  • 2021-10-11
  • 2021-12-15
  • 2022-12-23
  • 2022-12-23
  • 2021-12-01
  • 2022-12-23
  • 2022-01-19
相关资源
相似解决方案