优化问题Optimization

本文介绍了优化技术在处理多变量问题中的应用,探讨了随机搜索、爬山法和模拟退火算法的工作原理。随机搜索效率低,可能找不到最优解;爬山法基于贪心思想,寻找局部最优;模拟退火算法通过接受较劣解来避免局部最优,最终找到全局最优。文中还提供了Python实现示例。
摘要由CSDN通过智能技术生成

优化技术特别擅长用于处理:受多种变量的影响,存在许多可能解的问题,以及结果因这些变量的组合而产生很大变化的问题。
优化算法的典型应用场景,存在大量可能的题解以至于我们无法对它们进行一一尝试的情况。
既然无法一一尝试,怎么做?

  • 成本函数(The Cost Function)
    量化解的优劣,要求是函数返回的值越大,表示该方案越差。
  • 随机搜索(Random Searching)
    很简单(tubie)的,随机选择解法计算代价成本,在这些随机选择结果中返回代价最小的解即可。
    缺点:低效,可能搜索不到最优解
#######random searching#####
def randomoptimize(domain,constf):
    best=999999999
    bestr=None 
    for i in range(5):
        r=[random.randint(domain[i][0],domain[i][1]) for i in range(len(domain))]
        cost=constf(r)
        if cost<best:
            best=cost
            bestr=r 
    return r
  • 爬山法(Hill Climbing)
    爬山法基于贪心思想,以一个随机解开始,在其临近的解集中寻找更好的题解(具有更低的成本),类似于从斜坡上向下走,寻找陡峭下降的路。
    理解:得到的解也不一定是最优解,可能是局部的最优解,但和随机搜索相比高效得多。
    python代码如下:
#####hillclimb################
def hillclimb(domain,constf):
    sol=[random.randint(domain[i][0],domain[i][1]) for i in range(len(domain))]
    while 1:
        neigh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值