1. 程式人生 > >【演算法】蟻群系統中的細節辨析

【演算法】蟻群系統中的細節辨析

1. 引數B很敏感,從1-500不等,需要簡單調參

B的取值:1、500、250、二分法。

2. 引數zeta的設定

在TSP問題中(最小化):zeta_(r, s)=1/d_(r,s)

在0-1KP問題中(最大化):zeta_i = vi/wi

3. 引數delta_tau的設定

在TSP問題中(最小化):delta_tau(r, s)=1/Lgbest

在0/1-KP問題中(最大化):delta_tau_i=B*(vi/Vgbest)   如果商品i屬於gbest

4. 最大化問題和最小化問題的轉化

把你的0/1-KP問題轉化為最大化問題,再用ACS去解決。

可以對適應度值加負號。

5. 全域性最優解vs一次更新的最優解。

標準ACS中,一次更新最優解 等於 全域性更新最優解。

6. 資訊素全域性更新 vs 資訊素區域性更新

資訊素區域性更新是對每個螞蟻的當前路徑進行更新,目標為每次迭代的物品清單。

資訊素全域性更新是對最優螞蟻的路徑進行更新,目標為每次迭代的最優物品清單。

7. 其他

蟻群解決問題很方便,但是需要調參。

相關推薦

演算法系統細節辨析

1. 引數B很敏感,從1-500不等,需要簡單調參 B的取值:1、500、250、二分法。 2. 引數zeta的設定 在TSP問題中(最小化):zeta_(r, s)=1/d_(r,s) 在0-1KP問題中(最大化):zeta_i = vi/wi 3. 引數delt

Python在Mac系統安裝Pygame

我們通過Homebrew來安裝Pygame,Homebrew是Mac OSX上的軟體包管理工具,如果還沒安裝Homebrew,將以下命令貼上至終端先安裝Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.gi

演算法一個比系統自帶的sqrt函式快四倍的sqrt

 看完之後,感覺碼程式碼的能力不如數學好。演算法還是很重要的!再加上程式設計師的創造性,一定會有更好的會出現。   我們平時經常會有一些資料運算的操作,需要呼叫sqrt,exp,abs等函式,那麼時候你有沒有想過:這個些函式系統是如何實現的?就拿最常用的sqrt函式

機器學習筆記35演算法

【參考資料】 【1】《蟻群演算法原理及其應用》 【2】測試資料: https://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/tsp/att48.tsp.gz 演算法原理(以TSP問題為例) (1)引數初始化。令時間t=0和迴圈次數

演算法二叉樹前序、序、後序遍歷相互求法(轉)

二叉樹前序、中序、後序遍歷相互求法 原文地址      今天來總結下二叉樹前序、中序、後序遍歷相互求法,即如果知道兩個的遍歷,如何求第三種遍歷方法,比較笨的方法是畫出來二叉樹,然後根據各種遍歷不同的特性來求,也可以程式設計求出,下面我們分別說明。  

演算法將字串的空格替換成指定字串

題目: 字串中的空格替換成指定字串,如%20。 給定一個字串,內部有空格,請用最少的時間複雜度、空間複雜度,將空格替換為%20 示例: 輸入: This is a test string 輸出: This%20is%20a%20test%20%string 思路: 只建立

演算法BILSTM+CRF的條件隨機場

BILSTM+CRF中的條件隨機場 tensorflow中crf關鍵的兩個函式是訓練函式tf.contrib.crf.crf_log_likelihood和解碼函式tf.contrib.crf.viterbi_decode crf_log_likelihood(inputs, tag_indices, s

尋優演算法粒子演算法(PSO) 引數尋優的python實現

【尋優演算法】粒子群演算法(PSO) 引數尋優的python實現 一、演算法原理 1、粒子群演算法的名詞解釋 2、粒子更新 二、PSO演算法引數尋優的python實現 參考資料 粒子群優化演算法(Particle

演算法陣列出現次數超過一半的數字

面試題39:陣列中超過一半的數字 陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1, 2, 3, 2, 2, 2, 5, 4, 2}。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。 解法1 數字超出一半

智慧演算法粒子演算法(Particle Swarm Optimization)超詳細解析+入門程式碼例項講解

喜歡的話可以掃碼關注我們的公眾號哦,更多精彩盡在微信公眾號【程式猿聲】 01 演算法起源 粒子群優化演算法(PSO)是一種進化計算技術(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源於對鳥群捕食的行為研究 。該演算法最初是受到飛鳥叢集

演算法計算數字k在0到n的出現的次數,k可能是0~9的一個值

思路: 遍歷每一個數,同時每一個數都遍歷每一位,遍歷每一位的方法是不斷地整除10,直到整除為0。 #include <stdio.h> int digitCounts(int k, int n) { int sum=0; for(int i=0;i<=n;i++)

演算法計算出n階乘尾部零的個數

思路: 觀察1-20階乘的結果,觀察尾數為0的分佈情況 發現有一個5就會出現一個0 其中5!(有一個5),10!(有兩個5) 5!=120(一個0) 10!=3628800(兩個0) #include <stdio.h> long trailingZeros(long n) {

演算法遺傳演算法GA幾種交叉運算元小結

(圖片例子來自上課時老師的PPT,不過老師說PPT是他從網上組合的,所以沒有出處) 1、Partial-Mapped Crossover (PMX)   過程:  第一步,隨機選擇一對染色體(父代)中幾個基因的起止位置(兩染色體被選位置相同):     第二

演算法刪除一個數組為0的元素

題目描述: 給定一個一維陣列,將其中為0的元素刪除掉,非零元素的相對位置保持不變,最終目標陣列保留在原陣列中,並且目標陣列長度之外的元素全部置為0。 解題思路: (1)陣列非零元素往前移動,時

演算法把字串轉換成整數,樹兩個結點的最低公共祖先

本書最後的兩道題,作者拿了兩個面試案例來呈現,主要是要弄清面試官的意圖、考慮周全,有些演算法雖然容易,不要輕易下手。在此之上最好寫出具有魯棒性的和好的擴充套件性的程式碼,遵循編碼規範。 面試題67:把字串轉換成整數 請你寫一個函式StrToInt,實現把字串轉

分散式系統漫談分散式系統的技術 —— 從 IPC/RPC,SOA,Web Service/REST 到 micro services(微服務)

1. 什麼是分散式系統 A distributed system is a system whose components are located on different networked computers, which then communicat

應用演算法資訊流-推薦系統的去重策略

聊兩個問題,它們看似和推薦系統沒有必然關係,但實際上, 在你構建自己的推薦系統的時候,不可避免地會遇到這兩個問題。 去重是剛需 在推薦系統中,有一個剛需就是去重,那麼說在哪些地方有去重的需求呢? 主要是在兩個地方:一個是內容源去重,另一個是不重複給使用者推薦。

ITOO高校雲平臺——淺析許可權系統角色與職位

【前言】在ITOO高校雲平臺中,許可權管理,由於涉及到基礎系統的資料,所以存在角色和職位這兩個概念。針對兩者的關係和區別,也一直是我們探討的熱點。 今天,在這裡我們重新梳理一下。 一、角色 角色

演算法判斷小於n的正整數有幾個質數

這個演算法比較簡單,關鍵在於你怎麼判斷一個正整數是不是質數。這裡用的方法是,用小於它的正整數去除它,如果餘數有0出現,那說明它是質數,反之,它不是質數。關鍵在於,你這個小於它的整數取到哪裡,其實取到它的平方根,就足以說明問題了。#include <iostream>

演算法求陣列某兩個數的和為目標值

給定一個整型陣列和一個目標值,如果陣列中某兩個數相加等於目標值,請返回這兩個數的下標。 Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7