NP完全问题
近鄰法
近鄰法(nearest neighbor) 推銷員從某個城鎮出發,永遠選擇前往最近且尚未去過的城鎮,最后再返回原先的出發點。這方法簡單,也許是多數人的直覺做法,但是近鄰法的短視使其表現非常不好,通常后段的路程會非常痛苦。插入法
插入法(insertion) 先產生連接部分點的子路線,再根據某種法則將其它的點逐一加入路線。比如最近插入法(nearest insertion),先針對外圍的點建構子路線,然后從剩余的點里面評估何者加入后路線總長度增加的幅度最小,再將這個點加入路線。又比如最遠插入法(farthest,insertion),是從剩余的點里面選擇距離子路線最遠的點,有點先苦后甜的滋味。模擬退火算法
模擬退火算法(Recuit Algorithm) 來源于固體退火原理,將固體加溫至充分高,再讓其徐徐冷卻,加溫時,固體內部粒子隨溫升變為無序狀,內能增大,而徐徐冷卻時粒子漸趨有序,在每個溫度都達到平衡態,最后在常溫時達到基態,內能減為最小。根據Metropolis準則,粒子在溫度T時趨于平衡的概率為e-ΔE/(kT),其中E為溫度T時的內能,ΔE為其改變量,k為Boltzmann常數。用固體退火模擬組合優化問題,將內能E模擬為目標函數值f,溫度T演化成控制參數t,即得到解組合優化問題的模擬退火算法:由初始解i和控制參數初值t開始,對當前解重復“產生新解→計算目標函數差→接受或舍棄”的迭代,并逐步衰減t值,算法終止時的當前解即為所得近似最優解。遺傳算法
遺傳算法是仿真生物遺傳學和自然選擇機理,通過人工方式所構造的一類搜索算法 遺傳算法是解決NP問題的一種較理想的方法 ,從某種程度上說遺傳算法是對生物進化過程進行的數學方式仿真。生物種群的生存過程普遍遵循達爾文進化準則,群體中的個體根據對環境的適應能力而被大自然所選擇或淘汰。進化過程的結果反映在個體的結構上,其染色體包含若干基因,相應的表現型和基因型的聯系體現了個體的外部特性與內部機理間邏輯關系。通過個體之間的交叉、變異來適應大自然環境。生物染色體用數學方式或計算機方式來體現就是一串數碼,仍叫染色體,有時也叫個體;適應能力是對應著一個染色體的一個數值來衡量;染色體的選擇或淘汰則按所面對的問題是求最大還是最小來進行。神經網絡算法
根據一個簡化的統計,人腦由百億條神經組成 — 每條神經平均連結到其它幾千條神經。通過這種連結方式,神經可以收發不同數量的能量。神經的一個非常重要的功能是它們對能量的接受并不是立即作出響應,而是將它們累加起來,當這個累加的總和達到某個臨界閾值時,它們將它們自己的那部分能量發送給其它的神經。大腦通過調節這些連結的數目和強度進行學習。盡管這是個生物行為的簡化描述。但同樣可以充分有力地被看作是神經網絡的模型。《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
- 上一篇: 基本蚁群算法的C++源程序
- 下一篇: 理论计算机初步:概率算法和近似算法