% 生成訓(xùn)練樣本集 clear all; clc; P=[110 0.807 240 0.2 15 1 18 2 1.5; 110 2.865 240 0.1 15 2 12 1 2; 110 2.59 240 0.1 12 4 24 1 1.5; 220 0.6 240 0.3 12 3 18 2 1; 220 3 240 0.3 25 3 21 1 1.5; 110 1.562 240 0.3 15 3 18 1 1.5; 110 0.547 240 0.3 15 1 9 2 1.5]; 0 1.318 300 0.1 15 2 18 1 2]; T=[54248 162787 168380 314797; 28614 63958 69637 82898; 86002 402710 644415 328084; 230802 445102 362823 335913; 60257 127892 76753 73541; 34615 93532 80762 110049; 56783 172907 164548 144040]; @907 117437 120368 130179]; m=max(max(P)); n=max(max(T)); P=P'/m; T=T'/n; %-------------------------------------------------------------------------% pr(1:9,1)=0; %輸入矢量的取值范圍矩陣 pr(1:9,2)=1; bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm'); %建立BP神經(jīng)網(wǎng)絡(luò), 12個隱層神經(jīng)元,4個輸出神經(jīng)元 %tranferFcn屬性 'logsig' 隱層采用Sigmoid傳輸函數(shù) %tranferFcn屬性 'logsig' 輸出層采用Sigmoid傳輸函數(shù) %trainFcn屬性 'traingdx' 自適應(yīng)調(diào)整學(xué)習(xí)速率附加動量因子梯度下降反向傳播算法訓(xùn)練函數(shù) %learn屬性 'learngdm' 附加動量因子的梯度下降學(xué)習(xí)函數(shù) net.trainParam.epochs=1000;%允許最大訓(xùn)練步數(shù)2000步 net.trainParam.goal=0.001; %訓(xùn)練目標(biāo)最小誤差0.001 net.trainParam.show=10; %每間隔100步顯示一次訓(xùn)練結(jié)果 net.trainParam.lr=0.05; %學(xué)習(xí)速率0.05 bpnet=train(bpnet,P,T); %------------------------------------------------------------------------- p=[110 1.318 300 0.1 15 2 18 1 2]; p=p'/m; r=sim(bpnet,p); R=r'*n; display(R);
上傳時間: 2016-05-28
上傳用戶:shanqiu
自己編寫代碼實現(xiàn)了kmeans算法,輸入變量 data 為 N 行 m 列,每一行為一個數(shù)據(jù)點,num 表示聚類數(shù)目;輸出變量 label 為 N 行 1 列, 表示對應(yīng)的數(shù)據(jù)點屬于哪一類。
上傳時間: 2016-05-31
上傳用戶:lmeeworm
最小生成樹之kruskal算法。針對給定的無向帶權(quán)圖,kruskal算法構(gòu)造最小生成樹的思想:kruskal算法總共選擇n- 1條邊,(共n個點)所使用的貪心準(zhǔn)則是:從剩下的邊中選擇一條不會產(chǎn)生的環(huán)路具有最小耗費的邊加入已選擇的邊的集合中。注意到所選取的邊若產(chǎn)生環(huán)路則不可能形成一棵生成樹。kruskal算法分e 步,其中e 是網(wǎng)絡(luò)中邊的數(shù)目。按耗費遞增的順序來考慮這e 條邊,每次考慮一條邊。當(dāng)考慮某條邊時,若將其加入到已選邊的集合中會出現(xiàn)環(huán)路,則將其拋棄,否則,將它選入。
上傳時間: 2016-10-23
上傳用戶:jsw1010
批處理感知器算法的代碼matlab w1=[1,0.1,1.1;1,6.8,7.1;1,-3.5,-4.1;1,2.0,2.7;1,4.1,2.8;1,3.1,5.0;1,-0.8,-1.3; 1,0.9,1.2;1,5.0,6.4;1,3.9,4.0]; w2=[1,7.1,4.2;1,-1.4,-4.3;1,4.5,0.0;1,6.3,1.6;1,4.2,1.9;1,1.4,-3.2;1,2.4,-4.0; 1,2.5,-6.1;1,8.4,3.7;1,4.1,-2.2]; w3=[1,-3.0,-2.9;1,0.5,8.7;1,2.9,2.1;1,-0.1,5.2;1,-4.0,2.2;1,-1.3,3.7;1,-3.4,6.2; 1,-4.1,3.4;1,-5.1,1.6;1,1.9,5.1]; figure; plot(w3(:,2),w3(:,3),'ro'); hold on; plot(w2(:,2),w2(:,3),'b+'); W=[w2;-w3];%增廣樣本規(guī)范化 a=[0,0,0]; k=0;%記錄步數(shù) n=1; y=zeros(size(W,2),1);%記錄錯分的樣本 while any(y<=0) k=k+1; y=a*transpose(W);%記錄錯分的樣本 a=a+sum(W(find(y<=0),:));%更新a if k >= 250 break end end if k<250 disp(['a為:',num2str(a)]) disp(['k為:',num2str(k)]) else disp(['在250步以內(nèi)沒有收斂,終止']) end %判決面:x2=-a2*x1/a3-a1/a3 xmin=min(min(w1(:,2)),min(w2(:,2))); xmax=max(max(w1(:,2)),max(w2(:,2))); x=xmin-1:xmax+1;%(xmax-xmin): y=-a(2)*x/a(3)-a(1)/a(3); plot(x,y)
上傳時間: 2016-11-07
上傳用戶:a1241314660
取各障礙物頂點連線的中點為路徑點,相互連接各路徑點,將機(jī)器人移動的起點和終點限制在各路徑點上,利用最短路徑算法來求網(wǎng)絡(luò)圖的最短路徑,找到從起點P1到終點Pn的最短路徑。上述算法使用了連接線中點的條件,因此不是整個規(guī)劃空間的最優(yōu)路徑,然后利用遺傳算法對找到的最短路徑各個路徑點Pi (i=1,2,…n)調(diào)整,讓各路徑點在相應(yīng)障礙物端點連線上滑動,利用Pi= Pi1+ti×(Pi2-Pi1)(ti∈[0,1] i=1,2,…n)即可確定相應(yīng)的Pi,即為新的路徑點,連接此路徑點為最優(yōu)路徑。
標(biāo)簽: 遺傳算法 路徑規(guī)劃 matlab
上傳時間: 2017-05-05
上傳用戶:tttt123
K-Means算法是最古老也是應(yīng)用最廣泛的聚類算法,它使用質(zhì)心定義原型,質(zhì)心是一組點的均值,通常該算法用于n維連續(xù)空間中的對象。 K-Means算法流程 step1:選擇K個點作為初始質(zhì)心 step2:repeat 將每個點指派到最近的質(zhì)心,形成K個簇 重新計算每個簇的質(zhì)心 until 質(zhì)心不在變化 例如下圖的樣本集,初始選擇是三個質(zhì)心比較集中,但是迭代3次之后,質(zhì)心趨于穩(wěn)定,并將樣本集分為3部分 我們對每一個步驟都進(jìn)行分析 step1:選擇K個點作為初始質(zhì)心 這一步首先要知道K的值,也就是說K是手動設(shè)置的,而不是像EM算法那樣自動聚類成n個簇 其次,如何選擇初始質(zhì)心 最簡單的方式無異于,隨機(jī)選取質(zhì)心了,然后多次運行,取效果最好的那個結(jié)果。這個方法,簡單但不見得有效,有很大的可能是得到局部最優(yōu)。 另一種復(fù)雜的方式是,隨機(jī)選取一個質(zhì)心,然后計算離這個質(zhì)心最遠(yuǎn)的樣本點,對于每個后繼質(zhì)心都選取已經(jīng)選取過的質(zhì)心的最遠(yuǎn)點。使用這種方式,可以確保質(zhì)心是隨機(jī)的,并且是散開的。 step2:repeat 將每個點指派到最近的質(zhì)心,形成K個簇 重新計算每個簇的質(zhì)心 until 質(zhì)心不在變化 如何定義最近的概念,對于歐式空間中的點,可以使用歐式空間,對于文檔可以用余弦相似性等等。對于給定的數(shù)據(jù),可能適應(yīng)與多種合適的鄰近性度量。
標(biāo)簽: K-means Java 數(shù)據(jù)挖掘 聚類 算法
上傳時間: 2018-11-27
上傳用戶:1159474180
在一個圓形操場的四周擺放著n堆石子。現(xiàn)要將石子有次序地合并成一堆。規(guī)定每次只能選相鄰的2堆石子合并成新的一堆,并將新的一堆石子數(shù)記為該次合并的得分。試設(shè)計一個算法,計算出將n堆石子合并成一堆的最小得分和最大得分,并分析算法的計算復(fù)雜性。
標(biāo)簽: 合并
上傳時間: 2018-12-20
上傳用戶:969895392
設(shè)有n=2k個運動員要進(jìn)行網(wǎng)球循環(huán)賽。現(xiàn)要設(shè)計一個滿足以下要求的比賽日程表:⑴每個選手必須與其他n-1個選手各賽一次;⑵每個選手一天只能賽一次;⑶循環(huán)賽一共進(jìn)行n-1天。按此要求可將比賽日程表設(shè)計-成有n行和n-l列的一個表。在表中第i行和第j列處填入第i個選手在第j天所遇到的選手。用分治法編寫為該循環(huán)賽設(shè)計一張比賽日程表的算法并運行實現(xiàn)、對復(fù)雜度進(jìn)行分析。
標(biāo)簽: 算法 實驗指導(dǎo)書 設(shè)計與分析
上傳時間: 2019-06-04
上傳用戶:594551562
%========================開始提取加噪信號的各類特征值================================ for n=1:1:50; m=n*Ns; x=(n-1)*Ns; for i=x+1:m; %提取加噪信號'signal_with_noise=y+noise'的前256個元素,抽取50次 y0(i)=signal_with_noise(i); end Y=fft(y0); %對調(diào)制信號進(jìn)行快速傅里葉算法(離散) y1=hilbert(y0) ; %調(diào)制信號實部的解析式 factor=0; %開始求零中心歸一化瞬時幅度譜密度的最大值gamma_max for i=x+1:m; factor=factor+y0(i); end ms=factor/(m-x); an_i=y0./ms; acn_i=an_i-1; end gamma_max=max(fft(acn_i.*acn_i))/Ns
標(biāo)簽: matlab 神經(jīng)網(wǎng)絡(luò)算法 通信信號 調(diào)制識別
上傳時間: 2020-04-07
上傳用戶:如拷貝般復(fù)制
%========================開始提取加噪信號的各類特征值================================ for n=1:1:50; m=n*Ns; x=(n-1)*Ns; for i=x+1:m; %提取加噪信號'signal_with_noise=y+noise'的前256個元素,抽取50次 y0(i)=signal_with_noise(i); end Y=fft(y0); %對調(diào)制信號進(jìn)行快速傅里葉算法(離散) y1=hilbert(y0) ; %調(diào)制信號實部的解析式 factor=0; %開始求零中心歸一化瞬時幅度譜密度的最大值gamma_max for i=x+1:m; factor=factor+y0(i); end ms=factor/(m-x); an_i=y0./ms; acn_i=an_i-1; end gamma_max=max(fft(acn_i.*acn_i))/Ns
標(biāo)簽: matlab 神經(jīng)網(wǎng)絡(luò)算法 通信信號 調(diào)制識別
上傳時間: 2020-04-07
上傳用戶:如拷貝般復(fù)制
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1