关于死理性派的恋爱问题

探讨了最大麦穗问题与最大钻石问题的最优策略,即如何在仅一次选择机会的情况下选取最大值。通过数学分析与程序模拟发现,拒掉前N/e个样本后选择第一个超过已观察最大值的方案能获得接近最大值的结果。
部署运行你感兴趣的模型镜像
之前在科学松鼠会看到 这篇文章,文章中的恋爱问题的另外两个版本是最大麦穗问题和最大钻石问题:


1,从一块麦田的一边走到另外一边,从所经过的麦穗中选择最大的麦穗,不允许回头,且只有一次选择机会,那么在怎样的策略下才能选择最大的麦穗?


2,在一个流水线上,依次从你面前经过一组大小不同的钻石,只有一次选择机会,制定一个策略,尽可能选择最大的钻石?


注意,这里的目标是选择最大的麦穗与钻石,显然,在随机的情况下,选中最大目标的概率为1/N,N为样本数。如果我们拒掉前N/e个样本(e为自然底数),并记录这N/e个样本的最大值MAX,再从剩下的样本中选择第一个大于MAX的那个数,这样得到最大值的概率最大,为1/e,约0.37。


但从另外一个角度来看,这也许并不是最佳的策略。在实际生活中,大多数人并不是希望得到最好的,这样的概率很小,只是希望选择尽可能好的,也就是说,我们希望结果的期望值达到最大。一个形式化的描述是:
给定1~100这个100个整数的一个随机排列,从这个排列的头到尾遍历一次,只有一个选择机会,怎样能够使得到的值的期望最大?

策略是:用前K个值的最大值MAX作为标准,在剩下的100-K个值中选择第一个比MAX大的值。

用程序模拟的结果如下:


当K取10时,得到的期望是最大的,约为91.48。


程序代码(by oldtimes.info)

#!/usr/bin/ruby 
#
#
def rndarr(array)
    tmp=Array.new
    result=Array.new
    s=array.size
    for i in 0...s
        index=rand(s)
        if tmp[index]==1
            redo
        else
            result.push(array[index])
            tmp[index]=1
        end
    end

    result
end


range=100
arr=(1..range).to_a
scores=(1..range).to_a
cycles=11000
for i in 0...cycles do
    narr=rndarr(arr)
    for j in 0...range do
        max=0
        # get the max in 0..j
        for k in 0...j do 
            if narr[k]>max
                max=narr[k]
            end
        end
        
        # choose the number that >max 
        for k in j...range do
            if narr[k]>max
                scores[j]+=narr[k]
                break
            end
            if k==range-1
                scores[j]+=narr[k]
            end
        end
    end
end

scores.each_with_index{|value,index|puts index.to_s+"  "+(value*1.0/cycles).to_s}
                                               

您可能感兴趣的与本文相关的镜像

AutoGPT

AutoGPT

AI应用

AutoGPT于2023年3月30日由游戏公司Significant Gravitas Ltd.的创始人Toran Bruce Richards发布,AutoGPT是一个AI agent(智能体),也是开源的应用程序,结合了GPT-4和GPT-3.5技术,给定自然语言的目标,它将尝试通过将其分解成子任务,并在自动循环中使用互联网和其他工具来实现这一目标

内容概要:本文提出了一种基于融合鱼鹰算法和柯西变异的改进麻雀优化算法(OCSSA),用于优化变分模态分解(VMD)的参数,进而结合卷积神经网络(CNN)与双向长短期记忆网络(BiLSTM)构建OCSSA-VMD-CNN-BILSTM模型,实现对轴承故障的高【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)精度诊断。研究采用西储大学公开的轴承故障数据集进行实验验证,通过优化VMD的模态数和惩罚因子,有效提升了信号分解的准确与稳定,随后利用CNN提取故障特征,BiLSTM捕捉时间序列的深层依赖关系,最终实现故障类型的智能识别。该方法在提升故障诊断精度与鲁棒方面表现出优越能。; 适合人群:具备一定信号处理、机器学习基础,从事机械故障诊断、智能运维、工业大数据分析等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决传统VMD参数依赖人工经验选取的问题,实现参数自适应优化;②提升复杂工况下滚动轴承早期故障的识别准确率;③为智能制造与预测维护提供可靠的技术支持。; 阅读建议:建议读者结合Matlab代码实现过程,深入理解OCSSA优化机制、VMD信号分解流程以及CNN-BiLSTM网络架构的设计逻辑,重点关注参数优化与故障分类的联动关系,并可通过更换数据集进一步验证模型泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值