300 likes | 707 Views
和声搜索算法. 1. 2. 3. 简介. 应用. 比较与分析. 简介. 常见的优化算法 数学方法 线性规划(比如单纯形法)。缺点是过于理想化,要求处理的都是线性函数。 非线性规划。要求可导。 动态规划。计算量巨大。 现有的元启发算法:模拟自然现象,如生物进化、动物的行为等。 模拟退火。(模拟金属退火) 遗传 算法。(模拟生物进化) 蚁群算法。 (模拟蚂蚁的觅食行为) 禁忌搜索。 (模拟动物的思考方法). 几种常见的元启发式算法. 和声搜索算法. 类比. 类比. 和声搜索算法基本步骤. 1. 初始化算法参数。 2. 初始化和声库。
E N D
1 2 3 简介 应用 比较与分析
简介 • 常见的优化算法 • 数学方法 • 线性规划(比如单纯形法)。缺点是过于理想化,要求处理的都是线性函数。 • 非线性规划。要求可导。 • 动态规划。计算量巨大。 • 现有的元启发算法:模拟自然现象,如生物进化、动物的行为等。 • 模拟退火。(模拟金属退火) • 遗传算法。(模拟生物进化) • 蚁群算法。 (模拟蚂蚁的觅食行为) • 禁忌搜索。 (模拟动物的思考方法)
和声搜索算法基本步骤 • 1. 初始化算法参数。 • 2. 初始化和声库。 • 3. 构造新的和声(解向量)。 • 4. 更新和声库。 • 5. 检查停止条件。
1. 初始化算法参数 • 求解的问题为: • Minimize f(x) • 变量数 • 变量取值范围。 • 算法参数 • HMS: harmony memory size. 和声库的大小。群体的大小。 • HMCR: harmony memory considering rate. • PAR: pitch adjusting rate. • Terminate criterion. 算法终止条件。一般是最大迭代次数。
2. 初始化和声库 • 将HRS个随机产生的解填充到和声库当中。并且根据目标函数进行排序。
3. 构造新的和声 • 构造一个新的和声向量,主要是通过以下三个操作: • 1. Memory consideration. 基于和声库。 • 2. Random selection. 随机选择。 • 3. Pitch adjustment. 微调。
3. 构造新的和声 • 三个规则的使用: • 例如当HMCR为0.9,PAR为0.5的时候: • 随机选择的概率为(1-0.9)=0.1. • 基于和声库的概率为0.9 • 进行微调的概率为0.9*0.5=0.45
4. 更新和声库&5. 检查停止条件 • 4. 更新和声库 • 如果当前解优于和声库里边最差解,则进行替换 • 5. 检查停止条件 • 是否达到最大迭代次数。
1 2 3 简介 应用 比较与分析
函数最值 • 函数表达式为:
函数最值 • 第一步:初始化算法参数。 • HMS: 10 • HCR: 0.85 • PAR: 0.45
函数最值 • 第二步:初始化和声库。 • 随机 • 排序
函数最值 • 第三步:构造新的和声(解向量)。 • 1. 以0.85的概率从和声库里边选取一个值。以0.15的概率随机选取一个值。 • 2. 如果是从和声库中选取而来,则有0.45进行微调。 • 例如(3.183, 8.666) • 3.183直接来自和声库,而且没有经过微调。 • 8.666可能是通过随机选取得来的(0.15),也可能是通过微调得来(0.85*0.45=0.3825)。
函数最值 • 第四步:更新和声库。 • f(3.183, 8.666) = 22454.67。优于和声库里边的最差解: f(-9.500, 3.333) = 228704.72。 因此进行替换。
函数最值 • 第五步:检查停止条件。 • 经过4870次迭代,和声搜索算法找到最优解f(0.08984, -0.71269) = -1.0316285。
函数最值 • 表中反映的问题: • 1. 过度集中。多样性保证?其他应用中是否会出现过早收敛的问题。 • 2. 后期搜索效率不高。是否可以应用局部搜索?到了1000代以后,基本都集中在最优解附近。
1 2 3 简介 应用 比较与分析
比较与分析 • 相对遗传算法的几个区别: • 1. 产生一个新解的时候,考虑到了所有的解向量。遗传算法只考虑两个解向量。 • 2. 独立的考虑每个变量。 • 3. 可以不用进行进制转换。
比较与分析 • 和声搜索算法的最大亮点:产生新解的过程。 • 基于群体的解构造方法 • 提供了在整个群体范围内构造优质解的可能。相比之下,遗传算法在这方面的效率比较低。如在一个TSP问题,优质边分布在群体中的各个解中,遗传算法整合各个解中优质边的效率比较低下。 • 该步骤是和声搜索算法中最重要的一个步骤,也是和声搜索算法的精华。 • 1.名字的来源。直接受音乐启发得到的灵感。 • 2. HRCR设置比较大,一般0.8-0.9。
比较与分析 • 该操作类比于遗传算法中的交叉操作。 • 相同点 • 1. 都是算法的主要操作。执行的概率都比较大。 • 2. 都是利用已经探索的知识来构造新解。 • 不同点 • 遗传算法的交叉操作是配合其选择操作来的 。过度繁殖,通过适者生存的选择操作来达到产生优质后代的目的。 • 和声搜索算法中选择算法退化,因为产生一个解的代价稍高,保证效率。
比较与分析 • 对于元启发式算法而言,平衡好开发和利用之间的关系是一个关键问题。 • 利用意味着如何利用已经探索过的区域 • 开发意味着如何探索新的区域。 • 利用是算法的关键,决定的算法效率。开发是保证算法的完备性。保证所有解空间可达。 • 和声搜索算法中: • 利用:HMR, HMCR。 • 开发: 微调,随机选取。