當前位置:首頁 » 操作系統 » 模擬演算法

模擬演算法

發布時間: 2022-01-09 22:42:07

A. 蟻群演算法怎樣用MATLAB模擬

蟻群演算法採用matlab開發的模擬平台:演算法實現,路徑顯示,人機交互控制等
希望對你有幫助!
是可以運行的
% the procere of ant colony algorithm for VRP
%
% % % % % % % % % % %

%initialize the parameters of ant colony algorithms
load data.txt;
d=data(:,2:3);
g=data(:,4);
m=31; % 螞蟻數
alpha=1;
belta=4;% 決定tao和miu重要性的參數
lmda=0;
rou=0.9;%衰減系數
q0=0.95;
% 概率
tao0=1/(31*841.04);%初始信息素
Q=1;%螞蟻循環一周所釋放的信息素
defined_phrm=15.0; % initial pheromone level value
QV=100; % 車輛容量
vehicle_best=round(sum(g)/QV)+1;%所完成任務所需的最少車數
V=40;
% 計算兩點的距離
for i=1:32;
for j=1:32;
dist(i,j)=sqrt((d(i,1)-d(j,1))^2+(d(i,2)-d(j,2))^2);
end;
end;
%給tao miu賦初值
for i=1:32;
for j=1:32;
if i~=j;
%s(i,j)=dist(i,1)+dist(1,j)-dist(i,j);
tao(i,j)=defined_phrm;
miu(i,j)=1/dist(i,j);
end;
end;
end;

for k=1:32;
for k=1:32;
deltao(i,j)=0;
end;
end;
best_cost=10000;
for n_gen=1:50;
print_head(n_gen);
for i=1:m;
%best_solution=[];
print_head2(i);
sumload=0;
cur_pos(i)=1;
rn=randperm(32);
n=1;
nn=1;
part_sol(nn)=1;
%cost(n_gen,i)=0.0;
n_sol=0; % 由螞蟻產生的路徑數量
M_vehicle=500;
t=0; %最佳路徑數組的元素數為0

while sumload<=QV;

for k=1:length(rn);
if sumload+g(rn(k))<=QV;
gama(cur_pos(i),rn(k))=(sumload+g(rn(k)))/QV;
A(n)=rn(k);
n=n+1;
end;
end;
fid=fopen('out_customer.txt','a+');
fprintf(fid,'%s %i\t','the current position is:',cur_pos(i));
fprintf(fid,'\n%s','the possible customer set is:')
fprintf(fid,'\t%i\n',A);
fprintf(fid,'------------------------------\n');
fclose(fid);

p=compute_prob(A,cur_pos(i),tao,miu,alpha,belta,gama,lmda,i);
maxp=1e-8;
na=length(A);
for j=1:na;
if p(j)>maxp
maxp=p(j);
index_max=j;
end;
end;

old_pos=cur_pos(i);
if rand(1)<q0
cur_pos(i)=A(index_max);
else
krnd=randperm(na);
cur_pos(i)=A(krnd(1));
bbb=[old_pos cur_pos(i)];
ccc=[1 1];
if bbb==ccc;
cur_pos(i)=A(krnd(2));
end;
end;

tao(old_pos,cur_pos(i))=taolocalupdate(tao(old_pos,cur_pos(i)),rou,tao0);%對所經弧進行局部更新

sumload=sumload+g(cur_pos(i));

nn=nn+1;
part_sol(nn)=cur_pos(i);
temp_load=sumload;

if cur_pos(i)~=1;
rn=setdiff(rn,cur_pos(i));
n=1;
A=[];
end;

if cur_pos(i)==1; % 如果當前點為車場,將當前路徑中的已訪問用戶去掉後,開始產生新路徑
if setdiff(part_sol,1)~=[];
n_sol=n_sol+1; % 表示產生的路徑數,n_sol=1,2,3,..5,6...,超過5條對其費用加上車輛的派遣費用
fid=fopen('out_solution.txt','a+');
fprintf(fid,'%s%i%s','NO.',n_sol,'條路徑是:');
fprintf(fid,'%i ',part_sol);
fprintf(fid,'\n');
fprintf(fid,'%s','當前的用戶需求量是:');
fprintf(fid,'%i\n',temp_load);
fprintf(fid,'------------------------------\n');
fclose(fid);

% 對所得路徑進行路徑內3-opt優化
final_sol=exchange(part_sol);

for nt=1:length(final_sol); % 將所有產生的路徑傳給一個數組
temp(t+nt)=final_sol(nt);
end;
t=t+length(final_sol)-1;

sumload=0;
final_sol=setdiff(final_sol,1);
rn=setdiff(rn,final_sol);
part_sol=[];
final_sol=[];
nn=1;
part_sol(nn)=cur_pos(i);
A=[];
n=1;

end;
end;

if setdiff(rn,1)==[];% 產生最後一條終點不為1的路徑
n_sol=n_sol+1;
nl=length(part_sol);
part_sol(nl+1)=1;%將路徑的最後1位補1

% 對所得路徑進行路徑內3-opt優化
final_sol=exchange(part_sol);

for nt=1:length(final_sol); % 將所有產生的路徑傳給一個數組
temp(t+nt)=final_sol(nt);
end;

cost(n_gen,i)=cost_sol(temp,dist)+M_vehicle*(n_sol-vehicle_best); %計算由螞蟻i產生的路徑總長度

for ki=1:length(temp)-1;
deltao(temp(ki),temp(ki+1))=deltao(temp(ki),temp(ki+1))+Q/cost(n_gen,i);
end;

if cost(n_gen,i)<best_cost;
best_cost=cost(n_gen,i);
old_cost=best_cost;
best_gen=n_gen; % 產生最小費用的代數
best_ant=i; %產生最小費用的螞蟻
best_solution=temp;
end;

if i==m;%如果所有螞蟻均完成一次循環,,則用最佳費用所對應的路徑對弧進行整體更新
for ii=1:32;
for jj=1:32;
tao(ii,jj)=(1-rou)*tao(ii,jj);
end;
end;

for kk=1:length(best_solution)-1;

tao(best_solution(kk),best_solution(kk+1))=tao(best_solution(kk),best_solution(kk+1))+deltao(best_solution(kk),best_solution(kk+1));
end;
end;

fid=fopen('out_solution.txt','a+');
fprintf(fid,'%s%i%s','NO.',n_sol,'路徑是:');
fprintf(fid,'%i ',part_sol);
fprintf(fid,'\n');
fprintf(fid,'%s %i\n','當前的用戶需求量是:',temp_load);
fprintf(fid,'%s %f\n','總費用是:',cost(n_gen,i));
fprintf(fid,'------------------------------\n');
fprintf(fid,'%s\n','最終路徑是:');
fprintf(fid,'%i-',temp);
fprintf(fid,'\n');
fclose(fid);
temp=[];
break;
end;
end;

end;
end;

B. 哪些模擬演算法是穩定的

標 題: 電力系統電磁暫態分析與機電暫態分析的功能區別和模型特點
發信站: BBS 水木清華站 (Thu Jul 22 16:46:31 2004), 站內

電磁暫態過程數字模擬是用數值計算方法對電力系統中從數微秒至數秒之間的電磁暫
態過程進行模擬模擬。電磁暫態過程模擬必須考慮輸電線路分布參數特性和參數的頻
率特性、發電機的電磁和機電暫態過程以及一系列元件(避雷器、變壓器、電抗器等
)的非線性特性。因此,電磁暫態模擬的數學模型必須建立這些元件和系統的代數或
微分、偏微分方程。一般採用的數值積分方法為隱式積分法。
由於電磁暫態模擬不僅要求對電力系統的動態元件採用詳細的非線性模型,還要計及
網路的暫態過程,也需採用微分方程描述,使得電磁暫態模擬程序的模擬規模受到了
限制。一般進行電磁暫態模擬時,都要對電力系統進行等值化簡。
電磁暫態模擬程序目前普遍採用的是電磁暫態程序(electromagnetic transients program
,簡稱為EMTP),1987年以來,EMTP的版本更新工作在多國合作的基礎上繼續發展,
中國電力科學研究院(簡稱電科院)在EMTP的基礎上開發了EMTPE。具有與EMTP相似功
能的程序還有加拿大Manitoba直流研究中心的EMTDC/PSCAD、加拿大哥倫比亞大學的
MicroTran、德國西門子的NETOMAC等。

機電暫態過程的模擬,主要研究電力系統受到大擾動後的暫態穩定和受到小擾動後的
靜態穩定性能。其中暫態穩定分析是研究電力系統受到諸如短路故障,切除線路、發
電機、負荷,發電機失去勵磁或者沖擊性負荷等大擾動作用下,電力系統的動態行為
和保持同步穩定運行的能力。
電力系統機電暫態模擬的演算法是聯立求解電力系統微分方程組和代數方程組,以獲得
物理量的時域解。微分方程組的求解方法主要有隱式梯形積分法、改進尤拉法、龍格
-庫塔法等,其中隱式梯形積分法由於數值穩定性好而得到越來越多的應用。代數方
程組的求解方法主要採用適於求解非線性代數方程組的牛頓法。按照微分方程和代數
方程的求解順序可分為交替解法和聯立解法。
目前,國內常用的機電暫態模擬程序是電力系統綜合程序(PSASP)和中國版BPA電力系
統分析程序。國際上常用的有美國PTI公司的PSS/E,美國EPRI的ETMSP,以及國際電
氣產業公司開發的程序如:ABB的SIMPOW程序、德國西門子的NETOMAC也有機電暫態仿
真功能。

C. 如何用Matlab實現演算法的模擬

可以去csdn下載
相關論壇應該也找得到啊,還可以找到相關資料
希望可以幫到你哈!

模擬、計算、研發、CAE、
廣州工|程模擬科|技有限公司

D. 什麼叫超實時模擬與實時模擬,欠實時模擬的區別。

超實時模擬的定義是:系統模擬模型的時間過程快於實際系統的時間過程的模擬研究。
實時模擬的定義是:通過模擬器設備輸入操縱量,通過實時計算機中對已編譯的動力學模擬模型進行計算的過程。
欠實時模擬的定義是:系統模擬模型的時間過程慢於實際系統的時間過程的模擬研究。

實時模擬 :

實時模擬是指模擬模型的時間比例尺等於系統原模型的時間比例尺的一類模擬。對系統進行模擬試驗時,如果模擬系統有實物(包括人)處在模擬系統中,由於實物和人是按真實時間變化和運動的,因此就需要進行實時模擬。實時模擬要求模擬系統接收實時動態輸入,並產生實時動態輸出,輸入和輸出通常為具有固定采樣時間間隔的數列。實現實時模擬固然首先依賴於計算機的運行速度,但模擬演算法的實時性同樣也是必須保證的,必須採用實時模擬演算法,因此在演算法上實時模擬要求能採用較大的模擬步長,並能實時地取得計算所需的外部輸入信號。前面介紹的各種演算法中只有一部分可以用於實時模擬,它們是實時的龍格-庫塔方法、顯式亞當姆斯方法、亞當姆斯預估-校正方法和離散相似法等等。

E. 加密演算法模擬一般可以用什麼軟體實現

絕對給力嘚,原創!

F. MATLAB演算法與SIMULINK 模擬的關系

我學自動化的,用MATLAB主要是進行數值計算,演算法方面有很多工具箱可以在MATLAB里運行,如遺傳演算法工具箱、神經網路工具箱;simulink是MATLAB裡面的模擬模塊,主要是基於MALAB強大的計算能力建立起來的,繪制系統框圖然後進行系統分析,通信方面還可以進行信號的處理和分析,這方面我們自動化就用得比較少了。

G. matlab裡面的 模擬演算法 ode23t 什麼意思我用來模擬雙側電源雙繞組三相變壓器空載合閘時勵磁涌流的分析

解微分方程的額

H. 電磁模擬 常用的演算法有哪些哪一種最好用

電磁學中的演算法有很多種,常見的有時域有限差分法(FDTD)、時域有限積分法(FITD)、矩量法(MoM)、有限元法(FE)、邊界元法(BEM)、 譜域法(SM)、傳輸線法(TLM)、模式匹配法(MM)、橫向諧振法(TRM)、線方法(ML)和解析法等等。最近,又多了一種EIT演算法,這是一種基於FDTD演算法的革新技術。EIT演算法克服了傳統FDTD演算法在模擬彎曲金屬界面和介質界面時的梯形誤差,避免精度損失,保持演算法精度和效率;解決了共形FDTD演算法穩定性要求導致時間步長降低的效率問題,無需減少時間步長,保持計算速度。簡單來說,在確保同等精度的情況下,EIT的計算速度更快。目前,EIT演算法主要代表性CAE軟體是中望電磁模擬軟體,適合求解天線/天線陣列,雷達,微波器件,電磁兼容/電磁干擾,高速互聯SI,電磁傳播和散射等,以及任意結構電大寬頻的電磁問題。

I. 為什麼模擬中學習具體的數值演算法

技術是解決問題的方法及方法原理,是指人們利用現有事物形成新事物,或是改變現有事物功能、性能的方法。技術應具備明確的使用范圍和被其它人認知的形式和載體,如原材料(輸入)、產成品(輸出)、工藝、工具、設備、設施、標准、規范、指標、計量方法等。

J. 已知演算法 怎麼用Matlab進行模擬

按運行快捷鍵F5即可實現模擬圖。 MATLAB是美國MathWorks公司出品的商業數學軟體,用於演算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和互動式環境,主要包括MATLAB和Simulink兩大部分。 MATLAB是matrix&laboratory兩個詞的組合.

熱點內容
電腦主流品牌配置參數有哪些 發布:2024-11-16 18:59:45 瀏覽:284
科美ftp如何設置 發布:2024-11-16 18:56:17 瀏覽:751
安卓吉他調音器怎麼用 發布:2024-11-16 18:54:30 瀏覽:505
java配置tomcat 發布:2024-11-16 18:50:09 瀏覽:76
計演算法配平 發布:2024-11-16 18:48:34 瀏覽:285
卸載python3 發布:2024-11-16 18:41:46 瀏覽:611
安卓手機如何玩聯機 發布:2024-11-16 18:41:39 瀏覽:522
運維開發python 發布:2024-11-16 18:40:10 瀏覽:171
java線程通信通信 發布:2024-11-16 18:37:48 瀏覽:594
centosphp環境變數 發布:2024-11-16 18:36:23 瀏覽:950