[问题] 资料的比较、插入、排序

楼主: gene07 (-.-)   2016-09-02 10:44:21
是这样的,最近碰到了一个资料排序的问题
假设我有A、B两个array的资料
资料(4,10),是做一个动作持续4秒,后delay10秒
而A的array会先做而B会跟A的动作做比较如果B
如果B做一个动作和delay的时间比A的delay时间短
则可以插入到A的delay时间中,减少时间的浪费
而A的一个动作做完移至到B需要两秒的时间(B移动到A也需要两秒时间)
这个时间也要包含进去,需要达到密合的动作
没办法A或B的delay时间到了,却还在做别的动作
A B
作者: steven11329 (清新柳橙)   2016-09-02 10:49:00
看起来像os排程的问题
作者: v9290026 (CH)   2016-09-02 13:21:00
思考中,请问由a移到b的过程中,b可以做事吗
作者: Jichang (C.C.Lemon)   2016-09-02 14:58:00
不就是 b.runtime+4 < a.delay 就可以把 b 插进去?
作者: v9290026 (CH)   2016-09-02 15:15:00
我写好了,但是丑丑的需要重构,先把重构前的版本寄给你给我信箱吧~逻辑上是去塞A之间的slot,判断能不能塞入0~到多个B的工作
楼主: gene07 (-.-)   2016-09-02 15:39:00
收到了 我研究看看 谢谢大大
作者: v9290026 (CH)   2016-09-02 18:01:00
b动作的delay也要卡喔?我以为这段是看结束时间加返回时间及好了,我晚点再修一下这样b的动作跟delay有啥分别?可以把两个变量加总当作一个吗我想了想你的需求,用heuristic的方式似乎无法解..有可能当下看这个工作可以排进去,但是往下做几步后产生卡delay...
作者: ssccg (23)   2016-09-02 20:33:00
你的时间单位都是整数吗?
楼主: gene07 (-.-)   2016-09-02 20:35:00
是的 都是整数……Orz
作者: pttworld (批踢踢世界)   2016-09-02 23:44:00
多背包多物品。贪婪解应该可以,最佳解就。。
作者: cowbaying (是在靠北喔)   2016-09-03 03:42:00
为什么执行后要延迟? 是持续执行吗?这样设计迟早DEAD LOCK这做即时排序就好了 一开始看A要先还是B先A执行时把B的清单拿来加在B后面B执行到最后面的时候把A的清单拿来加到后面反复执行不就好了?我觉得你的问题可能是没有主循环做时间检测依我看至少要两条执行绪主 + 执行 或是 主 + A执行 + B执行另外你的排序结果应该是A B A A A B B B 才对第一个B是可以排进去的
楼主: gene07 (-.-)   2016-09-03 14:31:00
可是b排进去的话 b的delay结束了 却还在做a的事情 这样就不行了……
作者: cowbaying (是在靠北喔)   2016-09-03 14:38:00
没有吧 是你的规则不够详细还是我搞错了什么?B(2,2) 执行完 A还在DELAY中 没有问题吧此时没有可以插入的程序 就是等A1 DELAY完接着A2如果连A DELAY的时间都算执行时间 那么你一开始把B插到A DELAY的时间区段来执行 我就搞不懂了如果没有明确的说明规则 我们其它人只是在陪你鬼打墙
作者: ssccg (23)   2016-09-03 14:46:00
原po的意思是,A不能被B delay,B也不能被A delay所以单独对A或B来说根本不是分成多个工作,而是一整组固定时间在执行、固定时间可空出来的工作B(2,2)执行完马上就该执行B(12,10),然后B跑一半A的delay就会结束所以不行,其实这组参数B(2,2),B(12,10)势必要一个
作者: cowbaying (是在靠北喔)   2016-09-03 14:56:00
他第一个A的DELAY不是20秒吗?
作者: ssccg (23)   2016-09-03 14:58:00
18单位的空间,只能插在A(2,20),算是能很简单计算的例子把B插在T2,之后在T40 A(10,15)要执行时,B正在B(22,3)执行中(T28~T50),当然不行算错,把B插在T4才对,上面是(T30~T52)基本上这个问题可以转化成两个序列比对,但是这样时间复杂度太高了其实原问题的描述不太合理,整个序列是固定的,感觉根本没有拿个别执行段来估算的空间,既不能延迟也不能提早原PO你这段解释又多出一个问题,为什么B(12,10)回A刚好接上..我又看错了,所以在T30 A结束要等T32 B才能开始(T30~T52)插不进去

Links booklink

Contact Us: admin [ a t ] ucptt.com