[問題] 資料的比較、插入、排序

作者: 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