集体智慧编程_5优化

5 篇文章 0 订阅
5 篇文章 0 订阅

优化技术擅长处理:受多个变量影响,存在许多可能解的问题,以及结果因这些变量的组合而产生很大变化的问题。

文章一共例举三个例子:

1)制定旅游组团计划;

2)基于人们的偏好分配有限的资源;

3)用最少交叉线来可视化社会网络。

0 优化算法

随机搜索(评估其他算法的基线)

函数有两参数:Domain(二元祖的列表,指定每个变量最大最小值,题解长度与列表长度一致)、costf(成本函数)

爬山法

先从一个随机的时间安排开始,然后再找到所有与之相邻的安排(遍历列表中所有元素)。将最低成本的解作为新的题解。

缺点:容易陷入局部最优解。

解决方案:以多个随机初始解运行多次,希望其中有一个解能够逼近全局最优解。

模拟退火

https://blog.csdn.net/u013187969/article/details/80360021

遗传算法

https://blog.csdn.net/u013187969/article/details/80291063

一、制定旅游计划

问题描述:家庭成员来自全国各地,希望在纽约会面,同一天到达,同一天离开,搭乘相同的交通工具往返机场

变量:价格、旅行时间、等待时间、出发时间、汽车租用时间

成本函数的确定:将所有变量组合形成一个值。本例中,假设,在飞机上的时间1$/min,在机场等待时间价值0.5$/min。租车时间超了,如汽车租用在归还点之后,追加50$。

优化目标:最小成本函数。

二、基于人们的偏好分配有限的资源

问题描述:学生宿舍优化问题,根据学生的首选和次选,为其分配宿舍。

有5间宿舍,每间宿舍有两个隔间,10名学生竞争入住,每个学生都有首选和次选。

目标函数:最小cost,若该同学被安置的宿舍为首选,则cost+0,若为次序安,则cost+1,若都不是cost+3。

三、用最少交叉线来可视化社会网络

问题描述:运用优化算法来构建更好的而非杂乱无章的网络图。

思路:通常借助质点弹簧算法,各节点彼此向对方施以推力并试图分离,而节点间的连接则试图将关联节点拉近。缺点:无法避免交叉线。

优化算法目的:计算彼此之间的交叉线数。

计算交叉线数基本思路:计算线条的分数值,如果两条线的分数值在0和1之间,则彼此交叉。反之,则不交叉。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值