❶ 百度小程序排名優化可以做么排名規則是什麼
發布網路小程序後找到流量配置,完成自然搜索結果設置,這樣才能保證可以在網路app中搜索結果中看到你的小程序內容。
優化:
1.頁面基礎信息:標題、摘要和keywords(關鍵詞)符合搜索要求的設置;建議標題格式:主題 - 屬性1 - 屬性2 – 小程序名
2.頁面標題與實際文章內容相符;拒絕低質頁面及頁面無任何有效內容
3.保證內容真實,不堆砌、重復、言語通順;禁止低俗違禁內容及虛假廣告。
4.web化與H5 URL路徑要一致,持續提交優質資源。
5.謹慎設置封禁,包括robots封禁、封禁網路UA/IP,path設置勿跳轉等。
❷ 請問一個關於遺傳演算法的問題,看了好久沒有看懂!這的FitnV是怎麼算出來的
ranking是gatbx中的一個函數,是基於排序的適應度分配,分配原則你可以打開工具箱中的這個函數看一看
❸ 目標變數為混合變數(浮點+離散)編碼遺傳演算法
最近研究了一下遺傳演算法,因為要用遺傳演算法來求解多元非線性模型。還好用遺傳演算法的工具
箱予以實現了,期間也遇到了許多問題。藉此與大家分享一下。
首先,我們要熟悉遺傳演算法的基本原理與運算流程。
基本原理:遺傳演算法是一種典型的啟發式演算法,屬於非數值演算法范疇。它是模擬達爾文的自然
選擇學說和自然界的生物進化過程的一種計算模型。它是採用簡單的編碼技術來表示各種復雜
的結構,並通過對一組編碼表示進行簡單的遺傳操作和優勝劣汰的自然選擇來指導學習和確定
搜索的方向。遺傳演算法的操作對象是一群二進制串(稱為染色體、個體),即種群,每一個染
色體都對應問題的一個解。從初始種群出發,採用基於適應度函數的選擇策略在當前種群中選
擇個體,使用雜交和變異來產生下一代種群。如此模仿生命的進化進行不斷演化,直到滿足期
望的終止條件。
運算流程:
Step 1:對遺傳演算法的運行參數進行賦值。參數包括種群規模、變數個數、交叉概率、變異概
率以及遺傳運算的終止進化代數。
Step 2:建立區域描述器。根據軌道交通與常規公交運營協調模型的求解變數的約束條件,設
置變數的取值范圍。
Step 3:在Step 2的變數取值范圍內,隨機產生初始群體,代入適應度函數計算其適應度值。
Step 4:執行比例選擇運算元進行選擇操作。
Step 5:按交叉概率對交叉運算元執行交叉操作。
Step 6:按變異概率執行離散變異操作。
Step 7:計算Step 6得到局部最優解中每個個體的適應值,並執行最優個體保存策略。
Step 8:判斷是否滿足遺傳運算的終止進化代數,不滿足則返回Step 4,滿足則輸出運算結果
。
其次,運用遺傳演算法工具箱。
運用基於Matlab的遺傳演算法工具箱非常方便,遺傳演算法工具箱里包括了我們需要的各種函數庫
。目前,基於Matlab的遺傳演算法工具箱也很多,比較流行的有英國設菲爾德大學開發的遺傳算
法工具箱GATBX、GAOT以及Math Works公司推出的GADS。實際上,GADS就是大家所看到的
Matlab中自帶的工具箱。我在網上看到有問為什麼遺傳演算法函數不能調用的問題,其實,主要
就是因為用的工具箱不同。因為,有些人用的是GATBX帶有的函數,但MATLAB自帶的遺傳演算法
工具箱是GADS,GADS當然沒有GATBX里的函數,因此運行程序時會報錯,當你用MATLAB來編寫
遺傳演算法代碼時,要根據你所安裝的工具箱來編寫代碼。
以GATBX為例,運用GATBX時,要將GATBX解壓到Matlab下的toolbox文件夾里,同時,set path
將GATBX文件夾加入到路徑當中。
最後,編寫Matlab運行遺傳演算法的代碼。
這塊內容主要包括兩方面工作:1、將模型用程序寫出來(.M文件),即目標函數,若目標函
數非負,即可直接將目標函數作為適應度函數。2、設置遺傳演算法的運行參數。包括:種群規
模、變數個數、區域描述器、交叉概率、變異概率以及遺傳運算的終止進化代數等等。
為方便大家理解,以下為例:
求解模型:TC=x1+2*x2+3*x3+4*x4,-1<=x<=0
根據上面的求解模型,可以寫出模型的.M文件如下,即適應度函數
function TC=TotalCost(x)
TC=0;
for i=1:4
TC=TC+i*x(i);
end
然後,可以利用遺傳演算法工具箱來寫出遺傳演算法運行的主要程序,如下:
%定義遺傳演算法參數
NIND=20; %個體數目
MAXGEN=200; %最大遺傳代數
NVAR=4; %變數維數
PRECI=20; %變數的二進制位數
GGAP=0.9; %代溝
trace=zeros(MAXGEN,2); %演算法性能跟蹤
%建立區域描述器
FieldD=[rep(PRECI,[1,NVAR]);rep([-1;0],[1,NVAR]);rep([1;0;1;1],[1,NVAR])];
Chrom=crtbp(NIND,NVAR*PRECI); %創建初始種群
gen=0; %代計數器
ObjV=TotalCost(bs2rv(Chrom,FieldD)); %計算初始種群個體的目
標函數值
while gen<MAXGEN,
FitnV=ranking(ObjV); %分配適應度值
SelCh=select('sus',Chrom,FitnV,GGAP); %選擇
SelCh=recombin('xovsp',SelCh,0.7); %重組
SelCh=mut(SelCh,0.07); %變異
ObjVSel=TotalCost(bs2rv(SelCh,FieldD)); %計運算元代目標函數值
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入
gen=gen+1;
%輸出最優解及其對應的10個變數的十進制值
[Y,I]=min(ObjVSel);
Y,X=bs2rv(Chrom(I,:),FieldD);
trace(gen,1)=min(ObjV);
trace(gen,2)=sum(ObjV)/length(ObjV);
end
plot(trace(:,1));hold on;
plot(trace(:,2),'-.');grid;
legend('種群均值的變換','最優解的變化');
顯然,根據模型的特徵,最優解應該是-10,自變數分別取-1,-1,-1,-1。大家可以安裝
GATBX,在Matlab中建立目標函數的.M文件以及遺傳演算法主程序的文件來進行試驗。
希望以上內容對學習和運用遺傳演算法的同仁有所幫助,因為本人也是初學,因此有不詳之處請
見諒。
////////////////////////////////////////////////////
matlab遺傳演算法工具箱函數及實例講解(轉引)
gaotv5
核心函數:
(1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始種群的生
成函數
【輸出參數】
pop--生成的初始種群
【輸入參數】
num--種群中的個體數目
bounds--代表變數的上下界的矩陣
eevalFN--適應度函數
eevalOps--傳遞給適應度函數的參數
options--選擇編碼形式(浮點編碼或是二進制編碼)[precision F_or_B],如
precision--變數進行二進制編碼時指定的精度
F_or_B--為1時選擇浮點編碼,否則為二進制編碼,由precision指定精度)
(2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,...
termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)--遺傳
演算法函數
【輸出參數】
x--求得的最優解
endPop--最終得到的種群
bPop--最優種群的一個搜索軌跡
【輸入參數】
bounds--代表變數上下界的矩陣
evalFN--適應度函數
evalOps--傳遞給適應度函數的參數
startPop-初始種群
opts[epsilon prob_ops display]--opts(1:2)等同於initializega的options參數,第三
個參數控制是否輸出,一般為0。如[1e-6 1 0]
termFN--終止函數的名稱,如['maxGenTerm']
termOps--傳遞個終止函數的參數,如[100]
selectFN--選擇函數的名稱,如['normGeomSelect']
selectOps--傳遞個選擇函數的參數,如[0.08]
xOverFNs--交叉函數名稱表,以空格分開,如['arithXover heuristicXover
simpleXover']
xOverOps--傳遞給交叉函數的參數表,如[2 0;2 3;2 0]
mutFNs--變異函數表,如['boundaryMutation multiNonUnifMutation nonUnifMutation
unifMutation']
mutOps--傳遞給交叉函數的參數表,如[4 0 0;6 100 3;4 100 3;4 0 0]
注意】matlab工具箱函數必須放在工作目錄下
【問題】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0<=x<=9
【分析】選擇二進制編碼,種群中的個體數目為10,二進制編碼長度為20,交叉概率為0.95,
變異概率為0.08
【程序清單】
%編寫目標函數
function[sol,eval]=fitness(sol,options)
x=sol(1);
eval=x+10*sin(5*x)+7*cos(4*x);
%把上述函數存儲為fitness.m文件並放在工作目錄下
initPop=initializega(10,[0 9],'fitness');%生成初始種群,大小為10
[x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1
1],'maxGenTerm',25,'normGeomSelect',...
[0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]) %25次遺傳迭代
運算借過為:x =
7.8562 24.8553(當x為7.8562時,f(x)取最大值24.8553)
註:遺傳演算法一般用來取得近似最優解,而不是最優解。
遺傳演算法實例2
【問題】在-5<=Xi<=5,i=1,2區間內,求解
f(x1,x2)=-20*exp(-0.2*sqrt(0.5*(x1.^2+x2.^2)))-exp(0.5*(cos(2*pi*x1)+cos
(2*pi*x2)))+22.71282的最小值。
【分析】種群大小10,最大代數1000,變異率0.1,交叉率0.3
【程序清單】
%源函數的matlab代碼
function [eval]=f(sol)
numv=size(sol,2);
x=sol(1:numv);
eval=-20*exp(-0.2*sqrt(sum(x.^2)/numv)))-exp(sum(cos(2*pi*x))/numv)
+22.71282;
%適應度函數的matlab代碼
function [sol,eval]=fitness(sol,options)
numv=size(sol,2)-1;
x=sol(1:numv);
eval=f(x);
eval=-eval;
%遺傳演算法的matlab代碼
bounds=ones(2,1)*[-5 5];
[p,endPop,bestSols,trace]=ga(bounds,'fitness')
註:前兩個文件存儲為m文件並放在工作目錄下,運行結果為
p =
0.0000 -0.0000 0.0055
大家可以直接繪出f(x)的圖形來大概看看f(x)的最值是多少,也可是使用優化函數來驗證。
matlab命令行執行命令:
fplot('x+10*sin(5*x)+7*cos(4*x)',[0,9])
evalops是傳遞給適應度函數的參數,opts是二進制編碼的精度,termops是選擇maxGenTerm結
束函數時傳遞個maxGenTerm的參數,即遺傳代數。xoverops是傳遞給交叉函數的參數。mutops
是傳遞給變異函數的參數。
❹ 有沒有人知道Path Ranking Algorithm
Path Ranking Algorithm路徑的排名演算法
知識推理可以用於發現實體間新的關系。例如,根據「父親+父親=>祖父」的推理規則,如果兩實體間存在「父親+父親」的關系路徑,我們就可以推理它們之間存在「祖父」的關系。利用推理規則實現關系抽取的經典方法是Path Ranking Algorithm (Lao & Cohen 2010),該方法將每種不同的關系路徑作為一維特徵,通過在知識圖譜中統計大量的關系路徑構建關系分類的特徵向量,建立關系分類器進行關系抽取,取得不錯的抽取效果,成為近年來的關系抽取的代表方法之一。但這種基於關系的同現統計的方法,面臨嚴重的數據稀疏問題。
在知識推理方面還有很多的探索工作,例如採用謂詞邏輯(Predicate Logic)等形式化方法和馬爾科夫邏輯網路(Markov Logic Network)等建模工具進行知識推理研究。目前來看,這方面研究仍處於百家爭鳴階段,大家在推理表示等諸多方面仍為達成共識,未來路徑有待進一步探索。
希望對你有幫助
❺ 多目標遺傳演算法 目標函數的權重問題
推薦演算法中幾種常用的多目標變單一目標的方法:
(1)目標加權法:F(x)=∑λf(x),∑λ=1。λ可固定或隨機或自適應,加權求和之前一般需要進行無量綱化處理
(2)乘除法:min F(x)=(minf1×minf2×...)/(maxfn×maxfn+1×...).
(3)主要目標法/約束法:次要目標構成對主要目標的約束條件, 缺點:需要人為設定次要目標的約束參數
謝採納~
❻ 為什麼matlab裡面關於遺傳演算法的ranking函數不能用呢 我用的是R2010a版本
用的是GA工具箱?可以生成matlab代碼,然後在ranking處設斷點,用單步運行去看每個函數怎麼起作用。
❼ c#中的一個演算法
用的是高中數學的知識,現給仁兄理下思路,解題過程如下:
已知:
經驗基數為200,也就是第一級,每個基數的經驗差為200
解答如下:
已知:
基數為200,每個級增1,基數差為200
設新級為n,新級別經驗為a,新級別為b
則新級別經驗為
a=200+200*(n-1)
新級別為
b=n+1
按照高中數學求解的步驟來寫出來,一目瞭然 :)
應用到程序中試下。
❽ matlab遺傳演算法解決車間調度問題
你要的ranking文件是MATLAB工具包裡面的文件,要的話我可以發給你,或者你到網上找找gaot就知道了,另外,你這個文件裡面有沒有select.m這個文件,我這里缺失這個,有的話給我發一個
❾ 為什麼我的matlab遺傳演算法ranking函數還是不能用呢
這個需要安裝matlab遺傳演算法包,可以下載英國設菲爾德大學的遺傳演算法工具箱,其實就是一些.M文件,將其放置在硬碟上的某個位置;在matlab中設置路徑,將路徑添加進去;其中就有這個函數的功能……
❿ G網 M演算法和K演算法和L演算法有什麼區別
M演算法、L演算法和K演算法就是定位演算法中三個典型步驟的演算法。K演算法是根據信號強度強弱為依據,L演算法是以損耗為依據的,M演算法以信號強度條件為依據的。
1)K演算法是指在對服務小區以及相鄰小區進行排隊時(Basic
Ranking),以信號強度作為排隊標准。在排隊時,K值越高的小區(信號強度越強)越排在前面。
2)L演算法是指在對服務小區以及相鄰小區進行排隊時(Basic
Ranking),以路徑損耗(Path
Loss)作為排隊標准。引入L演算法的目的是手機盡量選擇距離較近的基站,以降低整個網路的干擾水平。在排隊時,L值越低的小區(路徑損耗越小)越排在前面。
3)M演算法用於檢查鄰小區是否有資格進入Basic
Ranking階段。如果鄰小區能進入Basic
Ranking階段,則信號強度必須同時滿足以下兩個條件:1.
SS_DOWNn
≥
MSRXMIN;2.
SS_UPn
≥
BSRXMIN