Algorithm 考虑到最新更新,动态集的装箱零件
有一大组物体。集合是动态的:可以随时添加或删除对象。让我们把对象的总数称为N 每个对象都有两个属性:上次更新的质量(M)和时间(T) 每X分钟应选择一小批进行处理,将其T更新为当前时间。一个批次中所有对象的总数量限制为:不超过L 我希望在此解决三项任务:Algorithm 考虑到最新更新,动态集的装箱零件,algorithm,optimization,dynamic-programming,modeling,bin-packing,Algorithm,Optimization,Dynamic Programming,Modeling,Bin Packing,有一大组物体。集合是动态的:可以随时添加或删除对象。让我们把对象的总数称为N 每个对象都有两个属性:上次更新的质量(M)和时间(T) 每X分钟应选择一小批进行处理,将其T更新为当前时间。一个批次中所有对象的总数量限制为:不超过L 我希望在此解决三项任务: 找到下一批对象拾取算法 引入对象类:简单、优先级(至少适合每个第n批)和频繁(适合每个批) 预测系统容量消耗(添加下一个服务器的时间=增加L) 什么样的模型最能描述这样的系统? 整个过程都是关于一个按时间间隔处理“对象”的服务。每N小时应“测量
我认为答案A是好的。装箱是为了最大化或最小化,而您只有一批货。按m和n对对象进行排序。这是一个针对您的问题的完整设计 您的问题与您对该系统的描述不符。所以我假设描述是准确的 当您计划测量时,您应该在第一次测量对象时通过该对象,并且在您希望测量发生时通过该对象。对象应具有
权重
属性和测量方法。当测量发生时,将调用measured
方法,类之间的区别在于它们是否以及使用什么参数重新安排自己的时间
在内部,您将需要几个优先级队列。有关如何实现的详细信息,请参阅
第一个队列是测量发生的时间,即所有尚无法测量的对象。每次你安排一个批次时,你都会用它来找到所有可能发生的新测量值
第二个队列是准备就绪的度量值,按照它们应该发生的调度周期和权重进行组织。我会让他们两个都上升。您可以通过从队列中提取项目来安排批处理,直到您有足够的时间发送
现在你需要知道每批要放多少。考虑到您所描述的系统,事件峰值可以手动输入,但随着时间的推移,您希望这些峰值能够平滑。因此,我建议选择B,同等气质。因此,要做到这一点,当您将每个对象放入“ready now”队列时,您可以计算其“平均工作重量”,即其重量除以假定发生之前的周期数。将其与对象一起存储,并将运行总速率保持在您应该处于的运行速率。我建议您在每段时间内继续添加到批次中,直到满足以下三个条件之一:
对象用完了
您达到了最大批量容量
你的跑步总量超过你平均工作体重的1.1倍。额外的10%是因为现在使用更多的容量比以后用完容量要好
最后是产能规划
为此,您需要使用一些启发式方法。这是一个合理的方案,可能需要对您的系统进行一些调整。保存过去10次测量的平均工作重量的跑步总量。保持“高水位线的指数衰减平均值”。根据以下公式进行每次更新:
平均高水位线
=0.95*平均高水位线
+最大0.5*次(最后10次运行工作重量)
如果average\u high\u water\u mark
在您最大容量的2台服务器内,则添加更多服务器。(我们的想法是,服务器应该能够在不让您使用软管的情况下死亡。)谢谢您,本!感谢您详细周到的回答。我正在根据你的描述建立一个模型来模拟数字和可能的条件。