我們的成員分工:
1、負責除錯**、糾錯和上傳**
2、負責查詢演算法思路
3、負責查詢演算法並且寫**框架
步驟:1、通過各個同學的專長進行分工,如上所示,確定一有思路就開小組會議討論。
2、3號同學在網上查詢到乙個最基本的直連程式,該程式有錯誤,需要修改。
3、1號同學同過3號同學給的直連**進行除錯和改錯,與此同時,由於要使用官方給定的環境執行,所以在調**的同時熟悉開發環境(linux系統)。
4、1號同學實現了直連**的功能,並且上傳到官網,等待結果。其他同學繼續尋找演算法。(此階段非常重要,如果有結果,則我們後面的步驟才有可行性)。
5、直連**有結果之後,初始想法是從消費節點向上依次選擇網路節點作為消費節點,一跳、兩跳、三跳。(先確定伺服器節點,在尋找路徑,盲目探索中)。
6、在實現上一步想法的同時,我們找到了關於尋找最短路徑的演算法(在知道伺服器節點的前提下)。並且進行除錯,查錯,檢測其可行性。
7、由於第5步的可行性不高,而且跳數越高,**複雜度越大,所以放棄了這種方法,選擇了遍歷的方法(伺服器從1個增加到消費節點數那麼多個,依次遍歷,選取所有方案)。
8、遍歷的想法很簡單可行,但是實際寫**時,遇到了數值太大的情況,而且很快就由無窮中方案,從而該方法沒有可行性。
8、為了驗證最小費用最大流**的可行性,我們採取了選擇特定數量的伺服器,並且隨機選擇方案。方法在一定數量的範圍內可以找到某些最優解。
10、但是隨機解在後面案例改變之後無法固定的找到可行性方案,隨機性很大,有時可行,;有是不可行。我們想到遺傳演算法和多支路演算法。
11、我們先是準備用多支路演算法來實現,多支路的意思是先對個節點的支路進行從大到小排序,然後在選取多支路的幾點從1到多進行放置伺服器,這樣的概率比較大。
12、但是這種演算法也具有一定的不科學性,考慮到最終優化問題,選擇了遺傳演算法,但是由於遺傳演算法難度大,而且最後的時間緊張,我們沒能完成遺傳演算法的選址,還是用的隨機選擇方案。
最終結果:可以定義為失敗,排名太靠後,沒有進入複賽。
失敗原因:由於三個人之前沒有合作過,導致分工不夠明確,耽誤了很多的時間;努力還不夠,沒有做到全力以赴,沒有那種拼死一搏的決心;交流不夠,由於大家的時間比較零散,導致很多想法不能及時的討論;沒有堅持到最後,越到後面,進複賽的希望越小,從而有一種坐等結束的心態。
華為軟體精英挑戰賽總結
賽題連線 總體來看,是乙個np hard問題。我們隊的解題思路是 1 隨機選取伺服器的位置,用遺傳演算法尋優,那麼遺傳演算法中的判斷運算元就是第二步 2 在伺服器位置固定的情況下,利用最小費用最大流演算法計算總費用。該演算法思路詳見 其中求帶負權有向圖最短路,用到了fpga演算法,其實就是b ell...
2019華為軟體精英挑戰賽總結
華為軟挑切切實實的做了兩周,說實話這也是第一次打這種 比賽,最終的成績略顯遺憾,西北賽區的58名,因為今年沒有64強這一說法,所以沒有任何獎勵,希望明年有再來一次的決心勇氣,畢竟竹籃打水一場空太讓人不爽了。成績附圖如下,第58名 我是起名廢團隊 今年的賽題首先讓人窒息的就是長達29頁的題目,光是讀題...
2017華為軟體精英挑戰賽總結
這麼久了還是想寫個部落格,其實複賽第五沒有想象中那麼遺憾,雖然那天晚上自己還是比較傷心。回想整個過程,自己的 確實沒有超哥,凱神優秀。從費用流輸掉的那個acm青島站,必須要從費用流贏回來。我到底算不算超越了自己?我覺得只是比以前勇敢了 打acm時調不出來時經常孤獨,失望。但是這次我1個多月一直堅持打...