麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于離散螢火蟲算法的多目標柔性作業車間調度方法與流程

文檔序號:12062838閱讀:583來源:國知局
一種基于離散螢火蟲算法的多目標柔性作業車間調度方法與流程

本發明設計調度問題領域,更具體地,涉及一種基于離散螢火蟲算法的多目標柔性作業車間調度方法。



背景技術:

生產調度是指針對一項可分解的工作,在盡可能滿足工藝路線、資源情況、交貨期等約束條件的前提下,通過下達生產指令,安排其組成部分所使用的資源、加工時間及加工的先后順序,已獲得產品制造時間或成本最優化的一項工作。柔性作業車間調度問題是車間調度問題的一種,是指在加工系統中有一組功能不同的機床,待加工的工件包含多道工序,每道工序在一臺機床上加工,工件的加工路線互不相同,每個工件工序之間有先后順序約束。柔性作業車間調度問題在數學上是一個NP-hard組合優化問題,隨著加工工序和可選機器的增加,車間調度方案的求解空間也會迅速復雜起來。在實際生產中,不但要考慮工件最大完工時間,平均流經實踐、總拖期時間、機器總負荷和瓶頸機器負荷等調度性能指標優化,還要考慮生產成本等費用指標,因此必須兼顧多種調度指標,進行多目標優化。多目標柔性作業車間調度問題和單目標柔性作業車間調度問題相比,存在目標之間具有不可公度性和矛盾性的問題。柔性作業車間調度問題的解空間是離散的,但是標準螢火蟲算法用來解決連續問題的,因此標準螢火蟲算法的編碼規則、距離定義、位置更新等規律不適用于求解柔性作業車間調度問題。

綜上所述,為了提高車間的生產效率,達到各項生產指標最優,尋找一種高效的人工智能算法來求解柔性作業車間調度問題并且進行多目標的優化十分必要。



技術實現要素:

為了解決上述問題,本發明旨在公開一種基于離散螢火蟲算法的多目標柔性作業車間調度方法,尤指一種基于離散螢火蟲算法的以最大完工時間、瓶頸機器負荷、機器負荷總量為優化目標的柔性作業車間調度問題的解決方法。

為了實現上述目的,本發明所采用的技術方案主要包括以下過程:

針對多目標柔性作業車間調度問題建立數學模型;

采用分段編碼方式對螢火蟲進行編碼,包括機器選擇部分和工序排序部分;

使用離散螢火蟲算法,優化上述模型得到Pareto最優解集;

從Pareto最優解集里選擇符合實際需求的解,并進行解碼輸出機器選擇位置信息、工序排序位置信息。

所述模型為:n個工件{J1,J2,…,Jn}在m臺機器{M1,M2,…,Mm}上進行加工,每個工件包含一道或多道工序,每個工件的工序順序以及在不同機器的加工時間確定,在加工過程中滿足各項約束條件,其中:

hj為j號工件的總工序數;Ojh表示工件j的第h道工序;Cj表示工件j的加工完成時間;Mijh表示工件j的第h道工序在機器i上加工,當Xijh=1時表示工序Ojh選擇機器i,否則不選擇在機器i上加工;Pijh表示工件j的第h道工序在機器i上加工所需的時間;Yijhkl表示工序Ojh和工序Okl的加工選后順序,當Yijhkl=1時,表示工序Ojh先于工序Okl在機器i上加工。

所述模型的優化的目標有三個:

最大完工時間:

瓶頸機器負荷量:

機器負荷總量:

基于離散螢火蟲算法,對比傳統螢火蟲算法,解決多目標柔性作業車間問題需要對螢火蟲位置、機器選擇序列的位置矢量更新規則和工序排序序列的位置矢量更新規則進行重新定義:

定義1)螢火蟲的位置:每個螢火蟲的位置對應一個柔性作業車間調度問題的可行解,第i個螢火蟲的位置表示為Xi=[JMi,Si]T,表示螢火蟲的位置由機器選擇部分JMi和工序排序部分Si兩組位置矢量組成,其中JMi=[Jmi,1,Jmi,2,…,Jmi,j,Jmi,n],Jmi,j表示第j個工件的機器選擇序列;Si=[Si,1,Si,2,…,Si,j,Si,H]T,H表示全部工件的工序總和,H=

定義2)機器選擇序列的位置矢量更新:

式中的減法操作按以下規則取值:令算法過程中,每個k的機器序列和的各維分量,對于的第h(1≤h≤hj)維分量如果與不相等,則即矢量繼承了矢量上的有效元素,如果則

式中的乘法操作按以下規則取值:令用和α|rand-0.5|聯合控制位置矢量從位置矢量中繼承的元素個數:

式中的加法操作按以下規則取值:令工件k的機器選擇序列的位置更新可以表示為t時刻位置矢量和t+1時刻位移方向矢量之和,如果中的為零,則不改變矢量第h道工序對應的機器選擇序號,即 如果不為零,則機器選則序列的位置矢量 第h道工序選擇的機器號是與交換后的值。

定義3)工序排序序列的位置矢量更新:

當螢火蟲i支配螢火蟲j時,隨機挑選螢火蟲i的L個工件進行標記,并對被選取的工件的所有工序進行位置標記,同時標記j中相同工序的所有標記;標記完成后,讓螢火蟲j繼承螢火蟲i的被選擇工件的所有被標記工序序列;螢火蟲j支配螢火蟲i時同理;

對支配的螢火蟲工序序列作小范圍隨機移動:生成一個很小的正偶數2R(2R/H≤1/20),再生成2R個不同的隨機整數(范圍1~H),將2R個整數分為R組,將每組隨機數對應的工序序號進行對換;H為總工序數。

所述螢火蟲算法的編碼規則:工序排序部分:序號代表工件號,數字出現的次數代表對應工件的工序數,數字的第幾次出現代表工件的第幾道工序;機器選擇部分:對應編碼長度與工序排序部分相等,從左到右按順序排列工件的工序,出現的序號代表所選機器號。

所述離散螢火蟲算法的具體過程為:

1)適用于離散問題的離散螢火蟲算法參數初始化:螢火蟲總數N,最大迭代次數Iter,隨機步長因子,螢火蟲之間吸引力,光照吸收率,每個螢火蟲的位置信息;

2)采用快速非支配排序方法將種群分層,記螢火蟲i在第ifloor層,對其進行機器選擇序列的位置矢量更新和工序排序序列的位置矢量更新,以相同概率向三個方向移動;

3)分別尋找最大完工時間、瓶頸機器負荷、機器負荷總量最優的螢火蟲ibest_f、ibest_zf、ibest_zdf,并更新螢火蟲位置信息;

4)對ifloor≠1且任一子目標最優的螢火蟲,不向其他支配它的螢火蟲移動并作小范圍移動,更新ibest_f、ibest_zf、ibest_zdf

5)重復步驟2)到步驟4),進行下一次螢火蟲的移動,尋找全局最優和迭代最優的螢火蟲,直到滿足終止條件;

6)輸出ifloor=1層中所有螢火蟲序列的最大完工時間、瓶頸機器負荷、機器負荷總量,并輸出螢火蟲的機器信息、工序信息。

所述步驟2)中位置矢量更新按下式進行:

所述螢火蟲算法解碼規則如下:

1)獲取工序排序序列中的一個元素,轉換為工序信息Ojh,獲取Ojh的g號機器為Mg=JMi(j,h),所用時間為Ti(j,h);

2)如果工序Ojh是機器Mg上的第一道加工工序,則Ojh可以直接從Oj(h-1)加工完成時開始加工;如果Ojh是j號工件的第一道工序,則Ojh可以在機器Mg的零時刻開始加工;如果不滿足上面兩種情況,找到機器Mg上的所有空閑時段[TSg,TEg],TSg為機器Mg位置空閑時段開始時刻,TEg為機器Mg空閑時段結束時刻;判斷是否將工序插入當前空閑時間段方法如下:

ta+Ti(j,h)≤TEg

其中ta=max(cj(h-1),TSg);

如果不滿足上式,則在tb時刻開始加工,LMg表示機器Mg上當前最后一道工序的結束時刻,其中:

tb=max(cj(h-1),LMg)。

附圖說明

附圖1為螢火蟲算法的實現流程圖。

附圖2、3、4為mk01問題的解的甘特圖。

具體實施方式

下面結合附圖詳細說明本發明的具體實施方式:

本發明通過對螢火蟲算法解碼方式和迭代規律的改進,提高了螢火蟲全局尋優能力,針對多目標柔性作業車間調度問題,提出了一種螢火蟲的移動策略,保證種群的多樣性。從而得出多目標柔性作業車間調度問題的Pareto占優解。

其具體實現過程為:

針對多目標柔性作業車間調度問題建立數學模型;

采用分段編碼方式對螢火蟲進行編碼,包括機器選擇部分和工序排序部分;

使用離散螢火蟲算法,優化上述模型得到Pareto最優解集;

從Pareto最優解集里選擇符合實際需求的解,并進行解碼輸出機器選擇位置信息、工序排序位置信息。

所述模型為:n個工件{J1,J2,…,Jn}在m臺機器{M1,M2,…,Mm}上進行加工,每個工件包含一道或多道工序,每個工件的工序順序以及在不同機器的加工時間確定,在加工過程中滿足各項約束條件,其中:

hj為j號工件的總工序數;Ojh表示工件j的第h道工序;Cj表示工件j的加工完成時間;Mijh表示工件j的第h道工序在機器i上加工,當Xijh=1時表示工序Ojh選擇機器i,否則不選擇在機器i上加工;Pijh表示工件j的第h道工序在機器i上加工所需的時間;Yijhkl表示工序Ojh和工序Okl的加工選后順序,當Yijhkl=1時,表示工序Ojh先于工序Okl在機器i上加工。

所述模型的優化目標有三個:

最大完工時間:

瓶頸機器負荷量:

機器負荷總量:

所述螢火蟲算法的編碼規則:工序排序部分:序號代表工件號,數字出現的次數代表對應工件的工序數,數字的第幾次出現代表工件的第幾道工序;機器選擇部分:對應編碼長度與工序排序部分相等,從左到右按順序排列工件的工序,出現的序號代表所選機器號。

離散螢火蟲算法是根據多目標柔性作業車間調度問題的解空間是離散的特點在標準螢火蟲算法的基礎上進行改進一種算法。螢火蟲的亮度由適應度值決定,每個螢火蟲的位置信息代表一種可行解,移動規則是所有可行解不斷向當前最優解靠近,多次迭代后,所有可行解都集結在最優解附近。

所述離散螢火蟲算法的具體過程為:

1)適用于離散問題的離散螢火蟲算法參數初始化:螢火蟲總數N,最大迭代次數Iter,隨機步長因子,螢火蟲之間吸引力,光照吸收率,每個螢火蟲的位置信息;

2)采用快速非支配排序方法將種群分層,記螢火蟲i在第ifloor層,對其進行機器選擇序列的位置矢量更新和工序排序序列的位置矢量更新,以相同概率向三個方向移動;

3)分別尋找最大完工時間、瓶頸機器負荷、機器負荷總量最優的螢火蟲ibest_f、ibest_zf、ibest_zdf,并更新螢火蟲位置信息;

4)對ifloor≠1且任一子目標最優的螢火蟲,不向其他支配它的螢火蟲移動并作小范圍移動,更新ibest_f、ibest_zf、ibest_zdf

5)重復步驟2)到步驟4),進行下一次螢火蟲的移動,尋找全局最優和迭代最優的螢火蟲,直到滿足終止條件;

6)輸出ifloor=1層中所有螢火蟲序列的最大完工時間、瓶頸機器負荷、機器負荷總量,并輸出螢火蟲的機器信息、工序信息。

所述步驟2)中位置矢量更新按下式進行:

所述螢火蟲算法解碼規則如下:

1)獲取工序排序序列中的一個元素,轉換為工序信息Ojh,獲取Ojh的g號加工機器為Mg=JMi(j,h),所用時間為Ti(j,h);

2)如果工序Ojh是機器Mg上的第一道加工工序,則Ojh可以直接從Oj(h-1)加工完成時開始加工;如果Ojh是j號工件的第一道工序,則Ojh可以在機器Mg的零時刻開始加工;如果不滿足上面兩種情況,找到機器Mg上的所有空閑時段[TSg,TEg],TSg為機器Mg位置空閑時段開始時刻,TEg為機器Mg空閑時段結束時刻;通過下式判斷是否將工序插入當前空閑時間段:

ta+Ti(j,h)≤TEg

其中ta=max(cj(h-1),TSg);

如果不滿足上式,則在tb時刻開始加工,LMg表示機器Mg上當前最后一道工序的結束時刻,其中:

tb=max(cj(h-1),LMg)。

實施例:

以mk01問題為例,進行柔性作業車間調度多目標優化。該問題包含10個工件,6個可選加工機器,總工序數為55個,工件元素相互間的加工工序不存在優先約束關系,工件元素本身的加工工序之間具有明確優先關系。詳細數據如下表1:

相關參數設置:α=1.2,β0=1,γ=0.06,最大迭代次數150,螢火蟲總數100。對mk01問題以最大完工時間f1、瓶頸機器負荷量f2和機器符合總量f3最小為優化目標,采用離散螢火蟲算法進行多目標優化。

下表2為Pareto前沿解集:

3個解分別有各自的優勢,可以根據不同的需求選擇三種不同的加工方案,第2個解最大完工時間f1達到最優,瓶頸機器負荷量f2最小,解的質量是最高的;第3個解機器負荷總量f3最小,但是最大完工時間f1和瓶頸機器負荷量f2都是最大的,在3個對應的調度方案中,生產效率是最低的,而且設備的利用率也是最低的。第1個解、第2個解、第3個解的機器選擇信息JM、加工時間矩陣T和工序排序信息S分別如下表3、4、5所示,3個解的甘特圖如附圖2所示。

下表3為第1個解:

下表4為第2個解:

下表5為第3個解:

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 汽车| 阿巴嘎旗| 新蔡县| 大冶市| 苍南县| 郎溪县| 萨嘎县| 通州市| 分宜县| 盐源县| 焦作市| 桑植县| 台中市| 江门市| 凤翔县| 手游| 瓦房店市| 防城港市| 崇文区| 西贡区| 普宁市| 甘泉县| 本溪市| 河北区| 溆浦县| 吐鲁番市| 平阳县| 长海县| 固镇县| 曲阜市| 贵州省| 柘城县| 惠来县| 靖江市| 巴彦淖尔市| 霍城县| 日照市| 潜山县| 五家渠市| 康乐县| 同德县|