2010-09-09 45 views
4

我正在研究一個Java應用程序,它應該允許用戶優化他們的日程安排。對於這一點,我需要一個框架來幫助計算最佳時間「任務」使之注意到:任務調度框架 - 不是線程調度!

  1. 所需的資源和資源使用限制
  2. 任務之間的依賴關係(只能與F->取值關係做雖然)
  3. 最早和最晚啓動結束時間,閒暇時間
  4. 基線與實際時間 - 允許報告實際開始和結束時間,更新的任務,剩下的相應

一些clari功能:我既沒有尋找繪製這些甘特圖的框架,也沒有尋找處理一個特定問題領域(比如教室)的框架,而且絕對不是一個處理線程調度的框架。

謝謝!

+1

這裏有問題嗎? – 2010-09-09 16:28:18

+0

如果你找到了這樣一個框架,你會做什麼?聽起來你正在編寫一個任務優化應用程序,並且你正在考慮利用一個任務優化框架。那真的不是這些東西如何工作......你可能需要編寫一些代碼。 – romacafe 2010-09-09 17:59:38

+0

@romacafe:有時好的東西是包裝,而不是引擎。爲什麼我們不爲每個FPS重寫一個3D渲染器呢? – 2010-09-09 18:59:31

回答

5

我不認爲有一個框架可以滿足您開箱即用的需求。我知道你說過你不是在尋找一個工作/線程調度器,但我認爲你最好的選擇是可以將你自己的優化/優先級代碼放在一個「愚蠢的」工作/線程調度框架中,比如Quartz(或者你在地點)。如果你使用Quartz,那麼API可能會爲你提供一些有用的信息,用於優化標準的第3項和第4項。此外,Quartz有一個工作「優先級」的概念,所以一旦你計算了優化的優先級,它應該使安排執行變得容易。

如果你發現了一個框架,沒有你的要求,請回到這裏後 - 我敢肯定有其他人誰可以使用類似的東西。

+0

我知道這些調度框架;我正在尋找一種方法,可以讓我跳過他們的代碼,找出我需要的位和螺栓......但如果我必須這樣做,那就是我要做的。 – 2010-09-17 08:47:47

0

你可以檢查一個project management software。看起來你需要用java編寫,並具有修改代碼的能力。它真的縮小了名單,但我做了一個快速掃描,我發現至少有兩個可以幫助(Endeavor和Project.net)。

0

也許你需要的東西就像進化/遺傳算法來生成優化的時間表?

如果是的話,你可以看看這個鐘錶匠框架: http://watchmaker.uncommons.org/

隨着進化/遺傳算法,它隨機產生日程池。您的主要焦點將是定義評分標準以評估生成的每個時間表。然後讓它(生成的時間表)一代一代演變,直到它足夠適合你。