国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

混合算法求解作業車間調度問題代碼解讀+完整JAVA代碼

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 16:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前兩篇文章中,我們介紹了FJSP問題,并梳理了一遍HA算法。這一篇文章對小編實現的(很亂很爛的)代碼進行簡單解讀。

往期回顧:

種群進化+鄰域搜索的混合算法(GA+TS)求解作業車間調度問題(JSP)-算法介紹

混合算法(GA+TS)求解作業車間調度問題(JSP)-禁忌搜索部分

代碼下載請關注公眾號,后臺回復【FJSPHA】即可,不包括【】

代碼框架

代碼分為5個包,第一部分Data為用到的各類結構,第二部分GA為GA部分+第一個TS,第三部分主函數,第四、五部分是兩個TS。

算例放置在input文件夾中,這里準備了Mk系列算例,Kacem系列算例和論文中的簡單算例test.txt。

Main

算例輸入:

Main中還有一個輸出為CSV的函數,需要一個jar包,已經放在下載鏈接里了,不需要的同學也可以刪除。

Data

一堆亂七八糟的結構。這里簡單講一下Solution類和Graph類。

Solution類中包含多個print函數,比較重要的包括繪制甘特圖以及check解是否合法。

operationMatrix是解的主題,存放某個工件的某道工序的開始、結束時間,所在加工機器。

Graph類表示析取圖。nodeList是每臺機器上的node。其中起始點、終止點我單獨提取出來設置了兩個類。Graph中還包含了獲取critical path的DFS和update starting time & end time的Bellman算法。

GA

MyHybridAlgorithm類是GA的主函數。小編在實現的時候進行了多種測試,比如迭代的noImprove次數達到limit時進行擾動:

選擇哪種Tabu:

讀者在閱讀的時候請自己注意。

算法相關的參數我都做了初始化,請自行查找修改:

交叉、變異等操作包含在ChromosomeOperation類中,計算適應度的函數在CaculateFitness類中,TabuSearch1類是基于編碼的tabu,這里都不多展示了。

NeighbourSearch

這個包包含的是基于析取圖的tabu。NeighbourAlgorithms類相當于Main,包含解轉化為圖的函數:

TabuSearch2類為tabu主函數。NeighbourGraph類存放析取圖鄰域搜索產生的解。

DeleteNeighbourGraph類為析取圖中暫時去掉某個點后的情況,PM、PJ、SM、SJ代表precede、succeed、machine、job四條邊對應的點,deleteNode為刪去的點。

其中還有findLandR位置的二分查找函數,insert時的估值函數:

NeighbourSearch2

這個包為第三個基于甘特圖的tabu。

RTS類為tabu的主函數。解通過:ArrayList<ArrayList<Operation>> 的形式表示。

replan函數中包含了在甘特圖上進行swap操作后更新解的方法,有詳細注釋:

總結

到這里已經大致梳理了一遍代碼,但其中還有很多細節沒有講到,包括很多東西實現的不好,歡迎隨時和我交流。

由于是自己研究時寫的代碼,其中很多東西會比較亂,但是代碼中做了很多注解,仔細閱讀應該能看得懂的!

下載的壓縮包里包括我學習過程中看過的大部分文獻,包括主要參考的文獻,大家可以進一步閱讀研究。

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4784

    瀏覽量

    98044
  • JAVA
    +關注

    關注

    20

    文章

    3001

    瀏覽量

    116422
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    73960
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    普源DM858數字萬用表故障代碼解讀與常見維修方案

    故障。正確解讀故障代碼并采取科學維修措施,是保障設備穩定運行的關鍵。 ? 一、常見故障代碼解讀 1. “OL”提示頻繁出現:通常表示輸入信號超出當前量程范圍。可能原因包括信號幅度過大、
    的頭像 發表于 01-15 16:29 ?154次閱讀
    普源DM858數字萬用表故障<b class='flag-5'>代碼</b><b class='flag-5'>解讀</b>與常見維修方案

    Arm Neoverse CPU上大代碼Java應用的性能測試

    Java 是互聯網領域廣泛使用的編程語言。Java 應用的一些特性使其性能表現與提前編譯的原生應用(例如 C 程序)大相徑庭。由于 Java 字節碼無法直接在 CPU 上執行,因此通常運行時在
    的頭像 發表于 11-05 11:25 ?752次閱讀
    Arm Neoverse CPU上大<b class='flag-5'>代碼</b>量<b class='flag-5'>Java</b>應用的性能測試

    Java 25正式發布,重要特性詳解(附代碼示例):靈活構造函數體、模塊導入聲明、AOT方法分析等

    Java 25現已發布,更多新特性來了!配合Perforce JRebel,代碼修改即時生效,無需重啟服務,即可實現“改完就看效果”。新特性+快工具,讓你的Java開發體驗雙倍提升!
    的頭像 發表于 10-29 13:16 ?1402次閱讀
    <b class='flag-5'>Java</b> 25正式發布,重要特性詳解(附<b class='flag-5'>代碼</b>示例):靈活構造函數體、模塊導入聲明、AOT方法分析等

    外殼防護等級(IP代碼)全解讀

    什么是外殼防護等級(IP代碼)IP代碼,全稱為“國際防護等級”,是由國際電工委員會制定的全球通用標準。這一標準旨在為電子設備外殼的防護能力提供一個清晰、統一的評判體系。簡單來說,IP代碼就是電子設備
    的頭像 發表于 10-14 12:13 ?1195次閱讀
    外殼防護等級(IP<b class='flag-5'>代碼</b>)全<b class='flag-5'>解讀</b>

    【產品介紹】Altair PBS Professional HPC工作負載管理器和作業調度管理系統

    AltairPBSProfessional行業領先的HPC工作負載管理器和作業調度管理系統PBSProfessional是一款快速、強大的工作負載管理器和作業調度管理系統,旨在提高生產
    的頭像 發表于 09-19 17:03 ?623次閱讀
    【產品介紹】Altair PBS Professional HPC工作負載管理器和<b class='flag-5'>作業</b><b class='flag-5'>調度</b>管理系統

    HarmonyOSAI編程智能代碼解讀

    CodeGenie > Explain Code,開始解讀當前代碼內容。 說明 最多支持解讀20000字符以內的代碼片段。 使用該功能需先完成CodeGenie登錄授權。 本文主
    發表于 09-02 16:29

    Perforce JRebel 簡介:即時加載代碼變更,加速Java應用開發

    Perforce JRebel 專為Java開發提速而生!支持跳過構建與重新部署,實時加載代碼變更,支持100+框架,無縫集成主流IDE與應用服務器。
    的頭像 發表于 08-14 14:35 ?744次閱讀
    Perforce JRebel 簡介:即時加載<b class='flag-5'>代碼</b>變更,加速<b class='flag-5'>Java</b>應用開發

    HarmonyOS AI輔助編程工具(CodeGenie)代碼智能解讀

    。 選中.ets文件或者.cpp文件中需要被解釋的代碼行或代碼片段,右鍵選擇CodeGenie > Explain Code,開始解讀當前代碼內容。 說明 ?最多支持
    發表于 07-17 17:02

    HarmonyOS AI輔助編程工具(CodeGenie)代碼測試

    放置于方法名稱上或框選完整的待測試方法代碼塊,右鍵選擇CodeGenie > Generate UT,開始生成單元測試用例。 說明 最多支持解讀20000字符以內的代碼片段。Ar
    發表于 07-14 17:33

    【經驗分享】玩轉FPGA串口通信:從“幻覺調試”到代碼解析

    FPGA開發,思路先行!玩FPGA板子,讀代碼是基本功!尤其對從C語言轉戰FPGA的“寶貝們”來說,適應流水線(pipeline)編程可能需要點時間。上篇點燈代碼解讀了基礎,而如果能親手寫出串口通訊
    的頭像 發表于 06-05 08:05 ?1102次閱讀
    【經驗分享】玩轉FPGA串口通信:從“幻覺調試”到<b class='flag-5'>代碼</b>解析

    OLED代碼分享

    OLED代碼
    發表于 04-29 17:04 ?1次下載

    Java開發者必備的效率工具——Perforce JRebel是什么?為什么很多Java開發者在用?

    Perforce JRebel是一款Java開發效率工具,旨在幫助java開發人員更快地編寫更好的應用程序。JRebel可即時重新加載對代碼的修改,無需重啟或重新部署應用程序,就能讓開發者即時看到
    的頭像 發表于 04-27 13:44 ?845次閱讀
    <b class='flag-5'>Java</b>開發者必備的效率工具——Perforce JRebel是什么?為什么很多<b class='flag-5'>Java</b>開發者在用?

    18個常用的強化學習算法整理:從基礎方法到高級模型的理論技術與代碼實現

    本來轉自:DeepHubIMBA本文系統講解從基本強化學習方法到高級技術(如PPO、A3C、PlaNet等)的實現原理與編碼過程,旨在通過理論結合代碼的方式,構建對強化學習算法的全面理解。為確保內容
    的頭像 發表于 04-23 13:22 ?1610次閱讀
    18個常用的強化學習<b class='flag-5'>算法</b>整理:從基礎方法到高級模型的理論技術與<b class='flag-5'>代碼</b>實現

    沐渥科技:氮氣柜故障代碼解讀及處理建議

    氮氣柜的故障代碼因品牌和型號不同而有所差異,但通常涵蓋一些常見問題。以下是沐渥科技對故障代碼解讀及處理建議:一、代碼解讀和原因分析1、E1
    的頭像 發表于 03-20 13:18 ?1220次閱讀
    沐渥科技:氮氣柜故障<b class='flag-5'>代碼</b><b class='flag-5'>解讀</b>及處理建議

    提取LSM6DSV16X內置低功耗融合算法輸出的四元數后,轉換成歐拉角后遇到一個問題求解

    各位大佬好,在提取LSM6DSV16X內置低功耗融合算法輸出的四元數后,轉換成歐拉角后遇到一個問題,當Y軸與重力方向平行時,輸出的角度與慣性測量單元繞自身Y軸轉過的角度對應不上,且抖動增加,請問有什么解決方法嗎?
    發表于 03-14 06:55