<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          干貨 | 模擬退火、禁忌搜索、迭代局部搜索求解TSP問題Python代碼分享

          共 1481字,需瀏覽 3分鐘

           ·

          2020-02-28 23:21

          寫在前面

          眾所周知,python是近幾年來最火的語言之一,也因為容易上手、代碼簡潔深受各位剛剛接觸編程的同學的喜愛。小編這學期也有一門python的課程。

          84d8e4be7235f28b55f0a4093d3cf7b6.webp

          然而,公眾號內代碼基本通過C++、Java編寫,很少有python。但是還是有部分童鞋想要python代碼。

          0fa1ba8b659df82073fdd4c15111eff6.webp

          還有同學發(fā)出疑問:為什么不用python

          ec48aa2093dc19f7cee7996de39c30ba.webp

          為了熟悉python,同時本著造-福-人-類的目的,小編特地選取了公眾號內幾個相對簡單的代碼,改編成python,供各位童鞋學習~

          0c11ac203f651235d925fe71fbdf33ad.webp

          做個預告哦,相信看完這期,你就不會想用python寫啟發(fā)式算法了

          代碼分享

          小編這次準備了三段代碼,分別是Tabu Search禁忌搜索算法SA模擬退火算法ILS迭代局部搜索算法求解TSP問題的代碼。

          其中禁忌搜索代碼改編自此文代碼,去除了對比所用的GUROBI,保留了純粹的禁忌搜索:

          干貨 | 到底是什么算法,能讓人們如此絕望?

          SA代碼改編自此文:

          【算法進階】用模擬退火(SA, Simulated Annealing)算法解決旅行商問題

          ILS代碼改編自此文:

          【優(yōu)化算法】迭代局部搜索算法(Iterated local search)探幽(附C++代碼及注釋)

          同時,關于SA、ILS求解TSP的代碼小編也有改編成Java:

          模擬退火算法(SA)和迭代局部搜索(ILS)求解TSP的Java代碼分享

          在公眾號中輸入【PYTSP】不帶【】即可下載相關代碼!

          為什么不用python

          公眾號內運籌學相關代碼一直采用C++和Java編寫,沒有用過python。關于這一點,之前也曾提到過:

          關于為什么選擇C++和java,而不是Python或者matlab,小編已經解釋很多遍了。那只學C++或者java一門可以嗎?小編之所以建議兩手抓,是因為C++和java都有著非常顯著的優(yōu)點。

          對于C++而言,速度相當快,快到你懷疑人生。可能此時會有讀者有疑問,小編騙人,有時候明明感覺C++慢的離譜。那是因為你IDE的編譯模式用的是debug,編譯也沒有開優(yōu)化之類的。>對于java而言,最大的優(yōu)點是兼顧速度和易用性。速度總體上和C++是一個量級的,但終究還是比不過變態(tài)的C++。

          對于java而言,最大的優(yōu)點是兼顧速度和易用性。速度總體上和C++是一個量級的,但終究還是比不過變態(tài)的C++。

          但java用起來非常方便,比如調用cplex,只需要導入一個jar包配置好dll就可以隨心所欲了。而C++又要導入頭了,又要鏈接庫了,對小白而言簡直是噩夢. 而且java一個類一個文件,不像C++一個類有一個頭文件一個CPP文件我真是頭大。

          與python相比,運行速度是C++和Java最重要的有點。python的運行速度遠不如C++和Java。

          為了對比三種語言的速度,小編特地在修改代碼時保留了代碼的大部分處理方式(雖然由于年代久遠,現(xiàn)在看來有些不太好),對三段內容相同的代碼做了一個小實驗:

          語言C++Javapython
          滿意解110601137011102
          時間(秒)1.02.039.4
          時間(比例)1239

          可以看出,調整編譯模式最快的C++代碼速度最優(yōu),Java其次,而python與前者差距巨大。

          而運籌學問題,要處理的數(shù)據(jù)量通常很大,因此用C++或Java編寫更好。不然絞盡腦汁想出的優(yōu)化方法,還不如別人換種語言效果更好

          99cf831e3e537df8772ebeb96755964f.webp

          所以,小編以后也不會考慮再拓展啟發(fā)式算法的python版本了。

          還是老老實實學好C++和Java吧!

          在公眾號中輸入【PYTSP】不帶【】即可下載相關代碼!



          瀏覽 104
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  性爱黄色视频 | 在线看v片| 成年人毛片网站 | 天天射久久 | 99re88|