欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于遺傳算法的一種新型一維排演下料方法與流程

文檔序號:12825743閱讀:499來源:國知局
基于遺傳算法的一種新型一維排演下料方法與流程

本發(fā)明涉及計算機算法應用設計領域,尤其涉及基于遺傳算法的一種新型一維排演下料算法設計。



背景技術(shù):

一維排樣下料問題是把棒狀原料切割成若干長度子零件,在滿足實際生產(chǎn)需求的前提下,盡可能提高生產(chǎn)利用率的np難問題。一維下料的問題廣泛的存在于機械、制造、建筑、電力等諸多的實際工程中而受到各行各業(yè)的專家、學者的重視。近幾年,隨著國家大力倡導節(jié)能減排,優(yōu)化資源配置、提高利用合理化、管理的科學化和綜合化,目的是尋求最優(yōu)化生產(chǎn)技術(shù)方案來獲取最大的效益,以期在經(jīng)濟效益和生態(tài)效益尋得一合理的平衡點,以促進國民經(jīng)濟穩(wěn)步健康發(fā)展。因此,尋求一種最優(yōu)化的設計加工方案無疑能節(jié)約生產(chǎn)成本,提高企業(yè)市場競爭力,同時能降低能耗,減少對環(huán)境的傷害。

一維問題作為組合問題中的經(jīng)典問題,從其計算規(guī)模的復雜度上看,其屬于np完全問題,并且其具體求解受限于實際工程條件,因而對該問題的精確求解依賴于其實際的計算規(guī)模和工程約束條件。對于工程實際,一維排樣下料問題,本身具有一定的限制條件,諸如原料種類、原料數(shù)量、產(chǎn)品種類、對應產(chǎn)品種類數(shù)量、具體生產(chǎn)訂單要求等許多約束條件,對具體問題建立數(shù)學模型,尋找可行域內(nèi)存在的最優(yōu)解集,可想而知,該問題的解集十分龐大,并且基本不存在適用于任何情況的算法,對算法的設計提出了很大的要求。目前國內(nèi)外對該問題的研究,都得到一個幾乎相同的結(jié)論。對于小規(guī)模計算模型的一維排樣下料,可通過一定的方法,在有限制可行域空間內(nèi)尋得其全局最優(yōu)解;但是對于大規(guī)模、超大規(guī)模的計算模型,當前尚缺乏一種行之有效的方法求得其全局最優(yōu)解,僅能通過遺傳算法、啟發(fā)式算法等盡可能的尋得其全局近似最優(yōu)解。遺傳算法作為組合問題求解的常用的方法,在一定程度上能解決相當一部分的一維下料問題,但是由于遺傳算法存在參數(shù)配置難、一旦參數(shù)配置偏差會陷入局部最優(yōu)而無法尋得全局最優(yōu)的情況,計算時間冗長等缺點;對于啟發(fā)式算法的優(yōu)點是計算速度快,缺點是其計算效果難以保證。

為克服現(xiàn)有技術(shù)的不足,本發(fā)明提出基于遺傳算法提出的一種新型一維排演下料算法設計,適用于許多需要大量消耗棒料的實際工程。尋找一種最優(yōu)化的設計加工方案無疑能節(jié)約最大的成本開銷,更能為相關企業(yè)帶來直接的經(jīng)濟效應,降低企業(yè)排放指標。



技術(shù)實現(xiàn)要素:

(一)要解決的技術(shù)問題

為了克服現(xiàn)有方法的不足,本發(fā)明公開了基于遺傳算法提出的一種新型一維排演下料算法設計。

(二)技術(shù)方案

為解決上述問題,本發(fā)明提供了基于遺傳算法提出的一種新型一維排演下料算法設計,包括步驟:

s1.把輸入的產(chǎn)品根據(jù)不同長度,按照降序的方法排序,最小編碼為1,依次推之,最后一個編號為最小零件。

s2.依據(jù)產(chǎn)品的長度和數(shù)量,搭建編碼序列,例如:(1112222233.........)如此的編碼序列,意思即是,1號產(chǎn)品有2件、2號產(chǎn)品需要5件,3號產(chǎn)品需要2件等...根據(jù)編碼序列很容易換算得到對應的產(chǎn)品信息。例如product_length[1]即可取得產(chǎn)品1號的長度等信息(編碼序列與產(chǎn)品信息搭建換算關系)通過基因編碼原理,成功把多重嵌套循環(huán)轉(zhuǎn)化成單次循環(huán)。

s3.三檔優(yōu)化閾值(1檔、2檔、3檔),閾值逐漸遞減,通過單循環(huán),從基因編碼中取出編碼,加入到累積變量之中,判斷(累積變量/輸入原材料長度)與設定閾值關系,達標break;作為一次成功掃描。

s4.掃描算子失敗后(無法達到最小閾值目標),啟動變異算子。由于掃描算子,采用順序累加計算利用率與閾值的關系作為循環(huán)終止條件,存在一定局限性。而變異算子,只是需要補充這點局限性,增加基因型的可能類型。例如:結(jié)果掃描算子運算得出的編基因型:11112,利用率可以達到93%(低于最小掃描目標,觸發(fā)變異算子)。

第一步:自交換。隨機選擇前面的(n-1)個數(shù),與最后面的第n個數(shù)交換。例如交換3和5,得到新的基因型11211

第二步:(利用總長)減(交換后前面n-1個數(shù)的長度和)等于新的余料長度.。

第三布:新的余長從剩余的編碼庫中取值帶入,根據(jù)利用率作為終止判斷條件。若變異后的基因型(對應的利用率優(yōu)于變異前的,稱為成功變異)將其基因型替換原來的基因型,給予保留。若變異失敗,則保留變異前的。

s5.用繼承算子繼承先前父代的優(yōu)秀基因編碼作為新的子代基因編碼,如此可以大大加快算法的運算速度。父代的優(yōu)秀基因編碼可能在部分基因在產(chǎn)品序列編碼中不存在,則稱為繼承失敗。父代的優(yōu)秀基因編碼在產(chǎn)品序列編碼中能找得到,則即可組合成優(yōu)良品種。

優(yōu)選地,本發(fā)明所述的基于遺傳算法提出的一種新型一維排演下料算法設計,其中步驟s1具體為:把待處理的子零件按照(長度較長的子零件排列在前)的原則進行排序,把排序完成后的新子零件序列的長度信息和數(shù)量信息分別存入product_length[]和product_length_number[]相應數(shù)組;把待切的原材料序列根據(jù)用戶意愿,按照優(yōu)先處理級別高的原材料排列在前的原則,把排列后的新子序列存入長度raw_material_length[]和數(shù)量raw_material_number[]。

優(yōu)選地,本發(fā)明所述的基于遺傳算法提出的一種新型一維排演下料算法設計,其中步驟s2具體為:構(gòu)建遺傳編碼序列(如圖1所示)。根據(jù)前文設定原料長度為l1,l2,l3,…,ln-1,ln;其相應數(shù)量為:n1,n2,n3,…,nn-1,nn;我們用數(shù)字1,2.....n代表對應原材料的編碼,根據(jù)數(shù)組里面出現(xiàn)1的次數(shù)來代表1號原材料相應在庫存中的數(shù)量,從而我們可以搭建起如下的原材料編碼序列,

encoding_raw_materials[maximum_rm]={1,1,1,,2,2,2,...,n,n,n};(1)

優(yōu)選地,本發(fā)明所述的基于遺傳算法提出的一種新型一維排演下料算法設計,其中步驟s3具體為:算法求解問題由雙層循環(huán)構(gòu)成,外層循環(huán)從encoding_raw_materials[]每次取出一根待處理原材料送入迭代器,內(nèi)層循環(huán)依次從encoding_product[]從取出一根子零件長度送入迭代器中的累加器,累加器每疊加一根子零件長度后,即產(chǎn)生判斷,若新加入的子零件讓累加器溢出(超出送入迭代器的原材料長度),即把最后一次疊加的子零件剔除,若新加入的子零件未讓累加器溢出,則保留本次加入結(jié)果。每次計入新的子零件進入累加器,通過計算累加器與輸入原材料長度的比值(單根利用率)是否達到所設定的閾值,若達到設定第一閾值目標,則本次作為一次成功試驗,保留加入疊加器的子零件編碼。并且把子零件編碼從encoding_product[]剔除,而所輸入迭代器的原材料也需要從encoding_raw_materials[]剔除。

倘若未能達到第一閾值目標,可嘗試修改迭代器的循環(huán)變量步長,進行調(diào)整,若調(diào)整后的利用率能達到第二閾值或者第三閾值目標,都視為合格試驗,重復上述刷新編碼序列的工作。如果調(diào)整迭代器中循環(huán)變量的步長后仍然無法滿足條件,可以嘗試變異算子進行優(yōu)化。

優(yōu)選地,本發(fā)明所述的基于遺傳算法提出的一種新型一維排演下料算法設計,其中步驟s4具體為:變異算子分為以下三個步驟:(1)自交換。隨機選擇基因編碼的前面的(n-1)個數(shù),與最后面的第n個數(shù)交換。(2)計算新產(chǎn)生的基因編碼前面的(n-1)個數(shù)所計算得到的總長,從而可求得新的余料長度。(3)把新的余料長度代入掃描算子的迭代器中進行運算。若變異后的基因編碼組合優(yōu)于變異之前,稱為有利變異,則替代原先的基因型,若變異效果未能優(yōu)于先前基因編碼,則不予處理,重復變異算子,直到尋得合適基因型。如若10次變異都無法尋得合適的基因編碼,則視為失敗變異。

優(yōu)選地,本發(fā)明所述的基于遺傳算法提出的一種新型一維排演下料算法設計,其中步驟s5具體為:繼承先前父代的優(yōu)秀基因編碼作為新的子代基因編碼,如此可以大大加快算法的運算速度。父代的優(yōu)秀基因編碼可能在部分基因在產(chǎn)品序列編碼中不存在,則稱為繼承失敗。父代的優(yōu)秀基因編碼在產(chǎn)品序列編碼中能找得到,則即可組合成優(yōu)良品種。

(三)本發(fā)明具有如下有益效果:

算法思想,同時考慮的計算時間和模型計算的復雜程度,能在多約束條件下(包括約束條件不確定的情況下)求解一維下料問題,通過采用掃描算子三擋優(yōu)化閾值、變異算子以及繼承算子的方式,以單根原料的利用率最大化作為設定目標,進行尋求近似最優(yōu)解,使得在實際生產(chǎn)過程中最大限度的利用了原材料,節(jié)約了資源,降低了企業(yè)生產(chǎn)成本又保障了實際生產(chǎn)的利用率。

附圖說明

圖1為本發(fā)明的構(gòu)建遺傳編碼序列拓撲圖。

圖2為本發(fā)明的變異算子原理圖。

圖3為本發(fā)明的一個系統(tǒng)程序框圖。

具體實施方式

下面將結(jié)合說明書附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。以下實施例用于說明本發(fā)明的技術(shù)方案。

本發(fā)明的基于遺傳算法提出的一種新型一維排演下料算法設計,把輸入的產(chǎn)品根據(jù)不同長度,按照降序的方法排序,依據(jù)產(chǎn)品的長度和數(shù)量,搭建編碼序列,利用掃描算子的三檔優(yōu)化閾值(1檔、2檔、3檔),閾值逐漸遞減,是否達到所設定的閾值,若無法達到最小閾值目標,啟動變異算子,若變異后的基因編碼組合優(yōu)于變異之前,稱為有利變異,則替代原先的基因型,反之,不處理,最后利用繼承算子繼承上一代中,基因型較為好的品種,從而實現(xiàn)材料利用率最大化的目標,具體包括以下步驟:

s1.排序”把待處理的子零件按照(長度較長的子零件排列在前)的原則進行排序,把排序完成后的新子零件序列的長度信息和數(shù)量信息分別存入product_length[]和product_length_number[]相應數(shù)組;把待切的原材料序列根據(jù)用戶意愿,按照優(yōu)先處理級別高的原材料排列在前的原則,把排列后的新子序列存入長度raw_material_length[]和數(shù)量raw_material_number[]。

s2.依據(jù)產(chǎn)品的長度和數(shù)量,構(gòu)建遺傳編碼序列(如圖1所示)。根據(jù)前文設定原料長度為l1,l2,l3,…,ln-1,ln;其相應數(shù)量為:n1,n2,n3,…,nn-1,nn;我們用數(shù)字1,2.....n代表對應原材料的編碼,根據(jù)數(shù)組里面出現(xiàn)1的次數(shù)來代表1號原材料相應在庫存中的數(shù)量,從而我們可以搭建起如下的原材料編碼序列,

encoding_raw_materials[maximum_rm]={1,1,1,,2,2,2,...,n,n,n};(1)

例如:(1112222233.........)如此的編碼序列,意思即是,1號產(chǎn)品有2件、2號產(chǎn)品需要5件,3號產(chǎn)品需要2件等...根據(jù)編碼序列很容易換算得到對應的產(chǎn)品信息。例如product_length[1]即可取得產(chǎn)品1號的長度等信息(編碼序列與產(chǎn)品信息搭建換算關系)通過基因編碼原理,成功把多重嵌套循環(huán)轉(zhuǎn)化成單次循環(huán)。

s3.算法求解問題由雙層循環(huán)構(gòu)成,外層循環(huán)從encoding_raw_materials[]每次取出一根待處理原材料送入迭代器,內(nèi)層循環(huán)依次從encoding_product[]從取出一根子零件長度送入迭代器中的累加器,累加器每疊加一根子零件長度后,即產(chǎn)生判斷,若新加入的子零件讓累加器溢出(超出送入迭代器的原材料長度),即把最后一次疊加的子零件剔除,若新加入的子零件未讓累加器溢出,則保留本次加入結(jié)果。每次計入新的子零件進入累加器,通過計算累加器與輸入原材料長度的比值(單根利用率)是否達到所設定的閾值,若達到設定第一閾值目標,則本次作為一次成功試驗,保留加入疊加器的子零件編碼。并且把子零件編碼從encoding_product[]剔除,而所輸入迭代器的原材料也需要從encoding_raw_materials[]剔除。

s4.掃描算子失敗后(無法達到最小閾值目標),啟動變異算子(如圖2所示)。由于掃描算子,采用順序累加計算利用率與閾值的關系作為循環(huán)終止條件,存在一定局限性。而變異算子,只是需要補充這點局限性,增加基因型的可能類型。例如:結(jié)果掃描算子運算得出的編基因型:11112,利用率可以達到93%(低于最小掃描目標,觸發(fā)變異算子)。

第一步:自交換。隨機選擇前面的(n-1)個數(shù),與最后面的第n個數(shù)交換。例如交換3與5,得到新的基因型11211

第二步:(利用總長)減(交換后前面n-1個數(shù)的長度和)等于新的余料長度.。

第三布:新的余長從剩余的編碼庫中取值帶入,根據(jù)利用率作為終止判斷條件。若變異后的基因型(對應的利用率優(yōu)于變異前的,稱為成功變異)將其基因型替換原來的基因型,給予保留。若變異失敗,則保留變異前的。

s5.用繼承算子繼承先前父代的優(yōu)秀基因編碼作為新的子代基因編碼,如此可以大大加快算法的運算速度。父代的優(yōu)秀基因編碼可能在部分基因在產(chǎn)品序列編碼中不存在,則稱為繼承失敗。父代的優(yōu)秀基因編碼在產(chǎn)品序列編碼中能找得到,則即可組合成優(yōu)良品種。

上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
泾阳县| 北宁市| 方山县| 徐闻县| 武威市| 治县。| 台州市| 朝阳县| 花垣县| 金秀| 乳源| 临清市| 巧家县| 内丘县| 黄龙县| 新晃| 波密县| 眉山市| 宁德市| 阜阳市| 张家川| 习水县| 堆龙德庆县| 英德市| 竹溪县| 辽阳市| 通海县| 思茅市| 龙井市| 万宁市| 青海省| 东乡族自治县| 封开县| 石嘴山市| 华亭县| 西安市| 上高县| 溧水县| 灵寿县| 徐州市| 榆社县|