算法大框架參考源碼框架
① 使用Simpy動態(tài)模擬新工件到達(dá)
② 使用3層分層分布式多智能體深度強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)
a) 每個層級都由相應(yīng)的智能體(Agent)組成,具有自己的狀態(tài)、動作和獎勵函數(shù)。
b) 智能體之間通過交流信息和協(xié)作決策,共同優(yōu)化整個系統(tǒng)的調(diào)度性能
c) 明確不同層級智能體的職責(zé)和交互方式,設(shè)計合理的狀態(tài)表示、動作空間和獎勵函數(shù)
③ 工廠你自己設(shè)計(要求必須是使用智能體選擇工廠,工廠數(shù)量設(shè)置為3),同構(gòu)工廠
a) 在實(shí)現(xiàn)工廠智能體時,需要考慮其狀態(tài)表示、動作空間、獎勵函數(shù)等關(guān)鍵要素。
b) 可以參考agent_workcenter和agent_machine的設(shè)計,但需要針對工廠級別的特點(diǎn)進(jìn)行適當(dāng)?shù)恼{(diào)整和擴(kuò)展。
c) 工廠智能體負(fù)責(zé)將新到達(dá)的工件分配給適當(dāng)?shù)墓ぷ髦行倪M(jìn)行加工
d) 工廠選擇邏輯時,也要考慮新工件的動態(tài)到達(dá)
④ 工作中心:柔性的體現(xiàn),
a) 每個工作中心也是一個智能體,有3個工作中心,
b) 每個工作中心之間要可以相互交流信息(可以參考源碼agent_workcenter)
⑤ 機(jī)器:
a) 每個機(jī)器也是一個智能體,每個工作中心有3臺機(jī)器,
b) 機(jī)器之間要可以互相交流信息,
c) 機(jī)器和工作中心也要可以交流信息(可以參考源碼agent_machine)
⑥ 工廠,工作中心和機(jī)器用類實(shí)現(xiàn)
a) 工廠,工作中心和機(jī)器數(shù)量要可以改變(可以參考main_experiment_S.py)。
⑦ 獎勵的設(shè)計:
a) 只要最后結(jié)果好就行,最好不要和論文源碼里面設(shè)計的一樣,
b) 在設(shè)計獎勵函數(shù)時,也要注意信號的稀疏性和延遲性, 要根據(jù)具體問題和需求進(jìn)行創(chuàng)新和優(yōu)化
c) 獎勵函數(shù)的可解釋性和魯棒性
⑧ 網(wǎng)絡(luò):
a) 采用qmix(源碼中使用的是ddqn)
b) 如雙重遞歸(double recursion)、優(yōu)先級經(jīng)驗(yàn)回放(prioritized experience replay)
c) 一定要保證網(wǎng)絡(luò)收斂!
⑨ 特征:特征的話可以參考源碼,但是不能相同,根據(jù)具體問題進(jìn)行創(chuàng)新和改進(jìn)。
a) 全局的統(tǒng)計信息(job_creator),工廠的信息,工作中心的信息和機(jī)器的信息
⑩ 動作:規(guī)則的話自己設(shè)置 ,不能和源碼里面的相同,
a) 源碼里面的規(guī)則是復(fù)合經(jīng)典規(guī)則(sequencing,routing)
b) 設(shè)計一些新的調(diào)度規(guī)則,或者將不同的規(guī)則進(jìn)行組合。
?目標(biāo)函數(shù)值:最小化總延遲率,最大化機(jī)器利用率,最大化平均完工時間
?可視化:
a) 損失函數(shù)隨迭代次數(shù)的變化,損失函數(shù)隨仿真時間的變化;
b) 獎勵值隨迭代次數(shù)的變化,獎勵值隨仿真時間的變化
c) 機(jī)器利用率隨迭代次數(shù)的變化,機(jī)器利用率隨仿真時間的變化
d) 資源利用率熱力圖
?訓(xùn)練過程:
a) 要有預(yù)熱過程(參考brain_machine_S.py),然后再開始智能體訓(xùn)練