A. 用Matlab/C實現基於Dijkstra的路由選擇演算法實現
雖然是兩百分 讓人家還編程給你 太麻煩了吧
B. 想問一下如何用matlab編寫下面的演算法,關於路徑優化:
嗯,某個矩陣,一行元素之和為1,一列元素之和為1,某p行的元素之和減去某p列的元素之和為零。目標函數是什麼?C(i,j)是已知的距離矩陣吧。
如果這樣的話,用lingo解很快,引入一個限制x變數為@bin,也就是0-1變數。推薦用這個軟體來做很快很簡單。
matlab的忘得差不多了。你要是想了解的話留個郵箱,我把課件發給你,你自己琢磨一下。數學不好,扯到演算法上去就不懂不懂了。
C. 請教用c++/c 或者matlab模擬路由基本原理
如果你是做網路模擬的話,我倒不建議使用單純的c++/c或者matlab,而是有專門針對網路模擬的軟體。
1 網路模擬環境 NS-2模擬軟體:
NS-2全稱是Network Simulator Version 2。它是面向對象的,離散事件驅動的網路環境模擬器,主要用於解決網路研究方面的問題。NS-2提供在無線或有線網路上,TCP、路由、多播等多種協議的模擬。
NS-2最早來源與1989年的Real Network Simulator項目,經過多年的發展之後,於1995年得到施樂公司(Xerox)的支持,加入VINT項目。NS一直以來都在吸收全世界各地研究者的成果,包括UCB、CMU等大學和SUN等公司的無線網路方面的代碼。
NS-2由兩種編程語言,OTCL(具有面向對象特性的TCL腳本程序設計語言)和C++實現。之所以使用兩種編程語言,是因為模擬器有兩方面的事情需要做。一方面,具體協議的模擬和實現,需要一種程序設計語言,能夠高效率的處理位元組(Byte),報頭(Packet Header)等信息,能夠應用合適的演算法在大量的數據集合上進行操作。為了實現這個任務,程序內部模塊的運行速度(run-time speed)是非常重要的,而運行模擬環境的時間、尋找和修復bug的時間,重新編譯和運行的時間(run-around time)不是很重要。這種情況下,C++語言是非常合適的。
2 Boson NetSim
Boson NetSim是Boson公司推出了一款Cisco路由器、交換機模擬程序。它的出現給那些正在准備CCNA、CCNP考試卻苦於沒有實驗設備、實驗環境的備考者提供了實踐練習的有力環境。
3 路由模擬模擬軟體RouteSim
RouteSim是在研究國外同類軟體的基礎上開發的中文路由模擬軟體,特點是界面直觀、操作簡單、幫助功能強、容易上手。適合初學者或在校生網路互聯課程的實驗教學。相信考網工的朋友和CCNP,CCNA的朋友都知道這個軟體。
http://www.ankty.com/soft/2/48/248/4647.html
就這么多了,還有一些模擬軟體我就不說了,上手比較困難。
D. 基於壓縮感知的路由演算法matlab模擬
非線性測量的壓縮感知。講壓縮感知解決的線性逆問題推廣到非線性函數參數的求解問題。廣義的講,非線性測量的壓縮感知,可以包括以前的測量矩陣不確定性問題,量化誤差問題,廣義線性模型問題,有損壓縮樣本問題。
E. matlab實現floyd演算法 已知距離矩陣和權值矩陣 求最短路徑
希望可以幫到你。
function [D,path]=floyd(a)
n=size(a,1);
D=a;
path=zeros(n,n);
for i=1:n
for j=1:n
if D(i,j)~=inf
path(i,j)=j;
end
end
end
for k=1:n
for i=1:n
for j=1:n
if D(i,k)+D(k,j)<D(i,j)
D(i,j)=D(i,k)+D(k,j);
path(i,j)=path(i,k)
end
end
end
end
function [L,R]=router(D,path,s,t)
L=zeros(0,0);
R=s;
while 1
if s==t
L=fliplr(L);
L=[0,L];
return
end
L=[L,D(s,t)];
R=[R,path(s,t)];
s=path(s,t);
end
F. matlab floyd 演算法注釋
A矩陣是鄰接矩陣,對角線上為o,其餘位置數字表示的是兩點之間距離,比如A(1,2)=2,表示從第一個點到第二個點的距離為2.inf是無窮大的意思,這里表示沒有直接溝通這兩點的路。
n=length(D);設定n為D矩陣的長度。
接下來的兩重循環,得到的R矩陣是n*n的矩陣,它每個數據表示的是路徑,比如:R(1,3)=1;表示路徑為:1-1-3.這里是初始化路徑了。
後面的三重循環是floyd演算法的關鍵所在,就是更新路線了。裡面的那個判斷指的是:
假設有3個點,1
2
3;如果我從1-2-3之間總距離小於1-3的距離,那麼我R(1,3)=2;這就是選取更近的路線了。
最後的兩個判斷是為了不讓曾經走過的點再次被遍歷。就是不回頭的意思了,這個一般都可以忽略了,你照打上去就是了。
不知道這樣的解釋你是否滿意。