國賽模擬總結

2021-09-25 10:42:07 字數 2925 閱讀 4305

題目:2018b題

智慧型r**的動態排程策略

圖1是乙個智慧型加工系統的示意圖,由8臺計算機數控工具機(computer number controller,cnc)、1輛軌道式自動引導車(rail guide vehicle,r**)、1條r**直線軌道、1條上料傳送帶、1條下料傳送帶等附屬裝置組成。r**是一種無人駕駛、能在固定軌道上自由執行的智慧型車。它根據指令能自動控制移動方向和距離,並自帶乙個機械手臂、兩隻機械手爪和物料清洗槽,能夠完成上下料及清洗物料等作業任務(參見附件1)。

圖1:智慧型加工系統示意圖

針對下面的三種具體情況:

(1)一道工序的物料加工作業情況,每台cnc安裝同樣的刀具,物料可以在任一台cnc上加工完成;

(2)兩道工序的物料加工作業情況,每個物料的第一和第二道工序分別由兩台不同的cnc依次加工完成;

(3)cnc在加工過程中可能發生故障(據統計:故障的發生概率約為1%)的情況,每次故障排除(人工處理,未完成的物料報廢)時間介於10~20分鐘之間,故障排除後即刻加入作業序列。要求分別考慮一道工序和兩道工序的物料加工作業情況。

請你們團隊完成下列兩項任務:

任務1:對一般問題進行研究,給出r**動態排程模型和相應的求解演算法;

任務2:利用表1中系統作業引數的3組資料分別檢驗模型的實用性和演算法的有效性,給出r**的排程策略和系統的作業效率,並將具體的結果分別填入附件2的excel表中。

表1:智慧型加工系統作業引數的3組資料表 時間單位:秒

系統作業引數第1組第2組第3組

r**移動1個單位所需時間

2023

18r**移動2個單位所需時間

3341

32r**移動3個單位所需時間

4659

46cnc加工完成乙個一道工序的物料所需時間

560580

545cnc加工完成乙個兩道工序物料的第一道工序所需時間

400280

455cnc加工完成乙個兩道工序物料的第二道工序所需時間

378500

182r**為cnc1#,3#,5#,7#一次上下料所需時間

2830

27r**為cnc2#,4#,6#,8#一次上下料所需時間

3135

32r**完成乙個物料的清洗作業所需時間

2530

25注:每班次連續作業8小時

附件1:智慧型加工系統的組成與作業流程

附件2:模型驗證結果的excel表(完整電子錶作為附件放在支撐材料中提交)

做題流程

讀題提取關鍵字:r**動態排程、排程策略

查詢文獻

這件事告訴我們,查詢文獻不能僅限於中文文獻,可以利用英文關鍵字去查詢外文文獻,說不定會有意外的收穫。

解題思路

該題研究的是生產線上r**的排程策略,一共有8臺cnc,r**在8臺cnc迴圈往復進行作業。

那我們將整個過程看作r**在乙個 含有八個結點的圖上往復移動的過程,也就是說我們將基於圖論的知識來模擬r**的工作過程。

r**的狀態有:等待狀態、上下料狀態、移動狀態、清洗作業狀態

cnc的狀態有: 空載狀態、加工狀態、加工完成狀態(這裡我們將上下料過程視為加工狀態)

整個系統是應該是如何運作的呢?

我們不難想到應該是r**對cnc的狀態進行判斷,按照一定的排程規則前往指定的cnc進行作業。

在我們的**中,我們採用兩個排程策略

先請求先服務,cnc在空載狀態或加工完成狀態會對r**傳送請求

最短路徑優先,當多台cnc同時發出請求時,r**優先選擇移動時間最少的cnc前往作業

但我們選擇的排程策略實際上並不是最優的排程策略,選擇先請求或者路徑最短的cnc進行作業並不能保障系統作業時間最短,排程策略可以改進為:r**實時對八天cnc的狀態進行監測,選取時間最短的cnc進行作業。這是我們**的乙個不足。

但是並沒有相應的演算法可以解決我們的問題,我們直接通過程式設計來模擬r**的工作過程,用到的唯一演算法就是dijkstra演算法,用以得到距r**路徑最短的結點,其他的均是根據r**工作的實際出發編寫程式。

所以,在我們的建模過程中,實際上程式設計是關鍵。

一道工序:

一道工序的情況較為簡單,r**根據我們的排程策略選擇相應的cnc進行作業,直到作業時間超過8小時

兩道工序:

當物料有兩道工序需要進行加工時,如何分配cnc處理這兩道工序變成了需要解決的問題,最暴力的方法就是窮舉所有的分配方式,選擇作業效率最高的分配方式作為我們的分配方式。但是這樣做的工作量無疑是很大的,我們並沒有選擇這樣做,而是通過分析加工第一道工序的時間和加工第二道工序的時間,來決定我們的分配方式。我們的工作告訴我們,我們並不能找到乙個特別有力的理由來證明我們的分配方式就是最優的,這是我們工作的第二個不足。

更新:這裡似乎有一種更好的做法,是分享的一組同學提出來的。cnc要麼處理第一道工序,要麼處理第二道工序,可以將cnc的分配方式是為一組0-1變數,採用遺傳演算法來計算出最優的分配方式。而不是採用遍歷的方法進行選取。這裡後續可以進行實現。

故障情況處理:

cnc在加工的過程中有百分之一的可能性會發生故障,我們通過計算機產生隨機數來模擬故障發生這一情況(雖然這個隨機數並不是真正意義上的隨機)

以上就是我們的求解思路,一句話概括就是,用程式設計來模擬系統工作過程從而得到結果。

與優秀**的答案比較,我們的答案有10-20個物料的誤差,原因就是我們並沒有選擇最優的排程策略。

模擬過程中得到的一些主要心得

衝刺國賽2022 模擬賽2

題目描述 有乙個 n times n 的矩陣,初始時所有位置上都是 0 每次你可以選擇若干行 r 1,r 2.r p 和若干列 c 1,c 2.c q 把這些行列交點處的位置都變成 1 即把 r i,c j 1 leq i leq p,1 leq j leq q 這些位置上的數字都變成 1 n le...

藍橋盃國賽總結

國三划水 怎麼說呢,這屆藍橋杯的題有點複雜,原來國賽都是6道題,今年一下子變成了10道題,然後沒乙個題可以暴力的,尷尬,我做的2016 2018年的國賽題,哎,基本沒用,現在大多數是在考思維,明顯的考演算法的比較少。本來至少可以拿國二的,前兩個小時搞掉了2小1大,但是後來每一道題到不簡單,但深入做肯...

國賽經驗總結

國賽取得第四名,不是很理想,反思總結一些原因,心得,供未來的自己吸取經驗。一 客觀原因 1 比賽前,主車已經封車,但因為驅動板可能設計有點問題,讓隊友重新畫了一塊,但比賽前2天才搞定,然後就直接裝上去進行測試,結果沒有靜電處理,車子直接裝到牆角,由於板子定位孔布局有毒,導致底板的強化筋全部剪除,所以...