2019中興捧月演算法大賽歷程

2021-09-19 16:46:21 字數 1991 閱讀 6659

題目是網路流量均衡。再頻寬限制的圖中求不同請求頻寬的各條業務的最短路徑使總成本最小。

解題思路:

對業務進行排序,優先順序高的業務去走熱點鏈路,優先順序低的業務發現熱點鏈路已經達到頻寬上限就繞路而行。嘗試過按請求頻寬大小降序排序業務,效果並不理想。後來按在不限制頻寬的圖中求得的最短路徑跳數公升序排序提公升效果明顯,這樣做是原因為跳數越少的業務放在前面跑可以防止其在後面跑遇到熱點鏈路而去繞很遠的路到達終點,跳數大的業務本來的路徑已經很長了,再繞路付出的額外代價不多。這種思想就是防止短路退化為長路。

初賽最終獲得了第六名的成績,還是比較滿意的。

面試大概十五分鐘,問了以下幾個問題:

q:自我介紹,介紹自己做過的最滿意乙個專案

a:介紹了研電賽的專案。

q:在這個專案中最大的收穫

a:這是第一次多人合作的比較大的乙個專案,再與組員進行對接、溝通過程中與鍛鍊了與他們合作的能力。專案中用到的技術之前沒接觸過,也是邊學邊開發。在短時間內的自學能力得到了提公升。

q:大賽解題思路

a:見上

q:怎麼了解這個比賽的,參加這個比賽的初衷

a:通過中興來學校的宣講了解到的。參加這個比賽是想對自己學習的成功進行乙個檢驗,同時鍛鍊自己的機會。、

q:了解其他優化演算法嗎?遺傳演算法、模擬退火演算法等系統學過嗎?floyd演算法等路徑優化演算法嗎?

a:只學習過一些經典的基礎演算法,比賽用到的遺傳演算法是現學的,非科班生演算法方面較差。

q:有什麼想問的問題?

a:企業校招看重專案經歷還是基礎知識,現在學習的方向和校招應聘的方向關係不大影響嗎?

答:主要看重的是學習能力,思維能力,在學校寫幾年**可能不如公司寫幾個月**提公升大。

決賽在南京舉辦,舉辦方的工作人員真是用心了,服務細緻入微,讓人都有些不好意思了,很多活動很感人,很吸引人加入他們。決賽從發布題目到提交大概40個小時。

賽題較初賽有很大變化,鏈路屬性變複雜了,一條鏈路由幾節車廂組成,為每條業務選路時同時要分配車廂號,相鄰鏈路上的車廂號相同的車廂承載的業務不同需要增加排程員。總成本改為總共需要排程員的數量。

從讀懂題目到實現總成本的計算方式,跑出最初結果用了大部分時間,留給優化的時間只有一上午和一下午。思路大致如下:

對起始點相同的貨物請求進行合併,結果可以看做乙個大的貨物請求。這些貨物將共享同一批排程員進行排程,故節省了排程成本。對4000多個請求進行合併,結果為700多個「大貨物」請求。怎麼對這些貨物進行合併涉及裝箱問題,即合理安排哪些貨物合併在一起以使總合併結果數量最少。目前採取的做法是對貨物進行排序,讓重量小的貨物優先裝箱。由於時間關係,還未嘗試其他一維經典裝箱演算法,如bft,fft。相信會有更好的結果。

路徑求解:採取迪傑斯特拉演算法,所有邊的權重取為1,即最短路徑為跳數最少的路徑。這樣可以讓乙個貨物盡早離開鏈路,以免產生排程需要,增加排程員的數量。

車廂的選擇:採取的做法是bf最佳適應演算法,對每一條業務,在規劃其路徑的同時,給其選擇乙個這條鏈路上的車廂。選擇的依據是這條鏈路上剩餘容量最小且能容納該業務的車廂,這樣是為了減少鏈路上的承載業務車廂數,即盡可能使鏈路上的空車廂多。

未及嘗試的思路:

所有貨物路徑規劃完成後,遍歷所有邊上的車廂承載情況,對能繼續優化減少占用車廂數的鏈路,可以結合啟發式演算法,重新分配貨物分布;

有的請求檔案計算出的結果會出現個別靠後的貨物無法找到路徑,從而給總成本增加了乙個很大的值。原因可能是路徑車廂同時分配的方式會使個別鏈路堵死。所以考慮改為採取先規劃路徑後分配車廂的方式。

最後的結果並不理想。了解到前幾名的同學的做法大致類似:在為一條貨物選路時,將車廂也看做區域性的幾條鏈路,在確定一條鏈路後,進行區域性探囊,尋找最優的車廂分配給它。目標是對這個貨物選的路徑使其對圖中增加的排程員的數量最少。一條貨物的成本就是其為圖增加的排程員數量。

這種想法起先我也想到過,但感覺實現起來會過於複雜,恐怕難於在短時間內實現,而且計算量會很大。看來自己的程式設計能力還是較弱。不能在短時間內驗證一些思路。

雖然只拿到決賽優勝獎,不過也是收穫滿滿。大開了眼界,與很多大佬交流討論,感覺自己進步很大,而且會讓自己有進步的方向感,迷茫感少了很多。

非常感謝中興提供的這個機會和平台!

No 4 中興捧月競賽總結

今天天熱,就睡實驗室了,開著空調。夜裡,沒心情睡覺,今天中興程式競賽複賽結果已出,沒能殺進決賽,有點小遺憾。但回想起來,從 4月份開始,經歷組隊,預賽選拔,初賽,複賽,一路走來還是深有感觸。個人而言,對任何事如果說只注重過程,不關注結果,那絕對是一句安慰人的話。凡事盡力而為之,盡力求得更好結果。旅程...

2023年中興捧月 傅利葉

iwehdio的 初賽賽題題目 資料 源 提交的文件 複賽答辯ppt和決賽題目見 初賽使用python語言,初賽第二階段執行時間在6 7s。初賽第一,決賽參與獎。剛開始對題意有乙個初步的了解。要求的是最大的數量,所以跟每人準備的數量無關,而是只跟朋友關係的複雜程度有關。將部落中的每個人進行編號,按正...

2020中興捧月傅利葉派記錄

前段時間看到了同學 的中興通訊的比賽鏈結,之前也沒有參加過演算法類的比賽,這次打算報著試一試的態度參加下,增加下經驗。在初步看了幾個門派的題目簡介後,發現只有傅利葉派比較適合自己,所以最終選擇了傅利葉派。目錄 在某片遙遠的大陸上,居住著兩個世代友好的部落,分別是部落a和部落b。他們一起耕耘勞作,互相...