華為軟體精英挑戰賽總結

2021-08-07 19:26:51 字數 726 閱讀 8633

賽題連線:

總體來看,是乙個np-hard問題。我們隊的解題思路是:

1)隨機選取伺服器的位置,用遺傳演算法尋優,那麼遺傳演算法中的判斷運算元就是第二步

2)在伺服器位置固定的情況下,利用最小費用最大流演算法計算總費用。該演算法思路詳見

其中求帶負權有向圖最短路,用到了fpga演算法,其實就是b

ellman-ford演算法的佇列改進型

遺傳演算法:模範自然界的生物進化,不斷迭代。第一代需要選擇種子,然後每一代進行交叉,變異、選擇。迭代停止的條件可以是迭代代數,花費的時間和解是否收斂。

其中選擇運算元就是求最小費用最大流函式。費用越高,存活機會越低。ps: 當時為了提高收斂速度,採用輪盤賭的方式增大優秀種子的存活數。導致快速收斂到區域性最優。還不如按照高矮個排序。隊友深惡痛絕的輪盤賭啊

求最小費用最大流:

前提:1)假設伺服器位置已經定了

2)假設所有消費節點都連線到乙個超級源點,費用權重為0,即流量流過這些邊不花錢。頻寬為所連線消費節點的流量需求;   所有伺服器都連到超級匯點,頻寬無限大,費用也為0; 這樣,本題就轉化為求單源點到單匯點的最小費用最大流問題了。

有了上述前提,操作步驟是:

1)讀到賽題資料後,建立鄰接表。由於是雙向都可以通過流量,頻寬相同。因此每一條無向邊,在鄰接表中建立兩條邊。

2)利用ek(最小費用最大流)演算法,求最小費用最大流,如果最大流小余所有消費節點流量需求之和,則返回-1,負責返回費用。

下面給出程式架構框圖:

華為軟體精英挑戰賽總結

我們的成員分工 1 負責除錯 糾錯和上傳 2 負責查詢演算法思路 3 負責查詢演算法並且寫 框架 步驟 1 通過各個同學的專長進行分工,如上所示,確定一有思路就開小組會議討論。2 3號同學在網上查詢到乙個最基本的直連程式,該程式有錯誤,需要修改。3 1號同學同過3號同學給的直連 進行除錯和改錯,與此...

2019華為軟體精英挑戰賽總結

華為軟挑切切實實的做了兩周,說實話這也是第一次打這種 比賽,最終的成績略顯遺憾,西北賽區的58名,因為今年沒有64強這一說法,所以沒有任何獎勵,希望明年有再來一次的決心勇氣,畢竟竹籃打水一場空太讓人不爽了。成績附圖如下,第58名 我是起名廢團隊 今年的賽題首先讓人窒息的就是長達29頁的題目,光是讀題...

2017華為軟體精英挑戰賽總結

這麼久了還是想寫個部落格,其實複賽第五沒有想象中那麼遺憾,雖然那天晚上自己還是比較傷心。回想整個過程,自己的 確實沒有超哥,凱神優秀。從費用流輸掉的那個acm青島站,必須要從費用流贏回來。我到底算不算超越了自己?我覺得只是比以前勇敢了 打acm時調不出來時經常孤獨,失望。但是這次我1個多月一直堅持打...