資源簡介
用于matlab網絡擴散傳播,為sisa病毒傳播模型

代碼片段和文件信息
function?spreadingBySir()
????A=load(‘test.in‘);
????%?node?number
????N=size(A1);???
????%感染概率
????irate=0.3;
????%恢復概率
????rrate=1;
????%初始時節點的狀態表初始時只有節點1為感染狀態,其他的都為易感染狀態??
????start_node=1;
????%按照圖的廣度優先的原則來進行病毒傳播
????BFSspreading(ANstart_nodeiraterrate);
end
function?BFSspreading(ANstart_nodeiraterrate)
%隊列頭
head=1;????????????
%隊列尾,開始隊列為空,tail==head
tail=1;????????????
%向頭中加入感染源節點
queue(head)=start_node;??????
%隊列擴展
head=head+1;??
%感染節點列表?
infection=start_node;??
%恢復節點列表??
recover=[];
%易感染節點列表
for?i=1:N
????%初始時,start_node為感染狀態
????if?i==start_node
????????%-1表示該節點已經從列表中刪除
????????susceptible(i)=-1;
????end
????%初始時,除了start_node為感染狀態外,其他節點都處于易感染狀態
?????susceptible(i)=i;
end
%開始按照廣度優先搜索順序向鄰居節點傳播
%判斷隊列是否為空
while?tail~=head???
????%取隊尾節點?
????i=queue(tail);??
????%如果該節點不在移除列表之中
????if?isempty(find(recover==i1))
????????????for?j=1:N
?????????????%如果節點j與當前節點i相連并且節點j不在感染列表中
????????????if?A(ij)==1?&&?isempty(find(infection==j1))???
?????????????????infection_random=rand(1);
?????????????????if?infection_random?????????????????????%新節點入列
????????????????????queue(head)=j;??
????????????????????%擴展隊列
????????????????????head=head+1;???
????????????????????%將新節點j加入感染列表
????????????????????infection=[infection?j];?
????????????????????
????????????????????%從易感染節點列表中刪除該節點設置為-1
????????????????????[rowcolv]?=?find(susceptible==j)?;
????????????????????susceptible(col)=-1;
????????????????????susceptible(find(susceptible==-1))=[];????????????????????
?????????????????end
????????????end
????????end
????????%將感染的節點按概率加入恢復節點列表??
????????recover_random=rand(1);
????????if?infection_random?????????????%恢復
????????????recover=[recover?i];??
????????????%從感染列表中刪除
????????????[rowcolv]?=?find(infection==i)?;
????????????infection(col)=-1;
????????????infection(find(infection==-1))=[];
????????end
????????tail=tail+1;?
????????
????end?%end?if??isempty(find(recover==i1)
end?%end?while
%分別現實最后節點的狀態
infection
susceptible
recover
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????53??2014-02-17?14:46??test.in
?????文件???????2369??2014-02-17?22:21??spreadingBySir.m
-----------?---------??----------?-----??----
?????????????????2422????????????????????2
- 上一篇:Matlab讀取 tif文件并繪成三維圖
- 下一篇:初始對準程序
評論
共有 條評論