Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- A=[0 1 1 1 0 0 1 0 0 0 0;
- 1 0 1 0 1 0 0 0 0 0 0;
- 1 1 0 0 0 0 0 0 0 0 0;
- 1 0 0 0 1 1 0 1 0 0 0;
- 0 1 0 1 0 1 0 0 0 0 0;
- 0 0 0 1 1 0 0 0 0 0 0;
- 1 0 0 0 0 0 0 1 0 0 0;
- 0 0 0 1 0 0 1 0 1 0 1;
- 0 0 0 0 0 0 0 1 0 0 0;
- 0 0 0 0 0 0 0 0 0 0 1;
- 0 0 0 0 0 0 0 1 0 1 0];
- //последовательная,
- I1= [0 1 0 0 0;
- 1 0 1 0 0;
- 0 1 0 1 0;
- 0 0 1 0 1;
- 0 0 0 1 0];
- //кольцевая,
- I2= [0 1 0 0 1;
- 1 0 1 0 0;
- 0 1 0 1 0;
- 0 0 1 0 1;
- 1 0 0 1 0];
- //3) радиальная,
- I3= [0 1 1 1 1;
- 1 0 0 0 0;
- 1 0 0 0 0;
- 1 0 0 0 0;
- 1 0 0 0 0];
- //4) древовидная,
- I4= [0 1 1 0 0;
- 1 0 0 0 0;
- 1 0 0 1 1;
- 0 0 1 0 0;
- 0 0 1 0 0];
- //«полный граф»,
- I5= [0 1 1 1 1;
- 1 0 1 1 1;
- 1 1 0 1 1;
- 1 1 1 0 1;
- 1 1 1 1 0];
- //6) несвязная.
- I6= [0 1 1 0 0;
- 1 0 0 0 0;
- 1 0 0 0 0;
- 0 0 0 0 1;
- 0 0 0 1 0];
- //2 Анализ структур
- function analiz_sructur(A)
- printf("\nОбщий анализ структуры\n");
- if (0.5*sum(A))>=(length(A(1,:))-1) then
- printf("Структура связана\n");
- else
- printf("Структура не связана\n");
- end
- endfunction
- //3 структурная избыточность
- function structurnaya_izb(A)
- printf("\nСтруктурная избыточность\n");
- R=0.5*sum(A)/(length(A(1,:))-1);
- if R>0 then
- printf("систем с максимальной избыточностью\n");
- elseif R==0 then
- printf("Система с минимальной избыточностью\n");
- else
- printf("система несвязная\n");
- end
- n = length(A(1,:));
- m = sum(A) / 2;
- _p = 2 * m / n;
- e = sum((sum(A,'r') - _p).^2);
- printf("Структурная избыточность R %f\nсреднеквадратическое отклонение \nзаданного распределения вершин от равномерного %f \n",R,e);
- endfunction
- //4 Структурная компактность
- function structur_compact(A)
- size_=length(A(1,:))
- printf("\nСтруктурная компактность\n");
- Temp = ones(size_,size_);
- for i=1:size_
- Temp(i,:)=deikstra(A,i);
- end
- Q=sum(Temp)
- Qmin=size_*(size_-1)
- Qrel=Q/Qmin-1
- printf("Структурная компактность %f\n",Qrel);
- endfunction
- //5 Степень централизации
- function step_centr(A)
- size_=length(A(1,:))
- Temp = ones(size_,size_);
- for i=1:size_
- Temp(i,:)=deikstra(A,i);
- end
- Q=sum(Temp)
- printf("\nСтепень централизации в структуре\n");
- z=Q*0.5*sum(Temp,'c')
- z_max=max(z)
- delta=(size_-1)*(2*z_max-size_)/(z_max^(size_-2))
- printf("Индекс центральности %d\n",delta);
- if delta==1 then
- printf("Структура максимальной степенью централизации\n");
- else
- printf("Структура с равномерным распределением\n");
- end
- endfunction
- // Ранг элемента
- function rang_elem(A)
- printf("\nРанг элемента\n");
- k=3
- sum_A=sum(A)
- r=(sum(A,'c').^k)/sum_A
- printf("Ранги элементов при k = %d\n",k);
- disp(r)
- endfunction
- function [ans]=deikstra(A, point)
- maxim =9999999;
- s=length(A(1,:));
- distance=ones(1,length(A(1,:)))*maxim
- vizited=zeros(1,length(A(1,:)));
- m=point+1;
- count=0;
- index=0;
- i=0;
- u=0;
- distance(1,point)=0;
- for count=1:(s-1)
- minim=maxim;
- for i=1:s
- if vizited(1,i)==0 & distance(1,i)<=minim then
- minim= distance(1,i);
- index=i;
- end
- end
- u=index;
- vizited(1,u)=1;
- for i=1:s
- if vizited(1,i)==0 & A(u,i)<>0 & distance(1,u)<>maxim & (distance(1,u)+A(u,i))<distance(1,i) then
- distance(1,i)=A(u,i)+distance(1,u);
- end
- end
- end
- ans=distance
- endfunction
- disp(" последовательная структура")
- analiz_sructur(I1)
- structurnaya_izb(I1)
- structur_compact(I1)
- step_centr(I1)
- rang_elem(I1)
- disp(" кольцевая структура")
- analiz_sructur(I2)
- structurnaya_izb(I2)
- structur_compact(I2)
- step_centr(I2)
- rang_elem(I2)
- disp(" радиальная структура")
- analiz_sructur(I3)
- structurnaya_izb(I3)
- structur_compact(I3)
- step_centr(I3)
- rang_elem(I3)
- disp(" древовидная структура")
- analiz_sructur(I4)
- structurnaya_izb(I4)
- structur_compact(I4)
- step_centr(I4)
- rang_elem(I4)
- disp(" типа «полный граф»")
- analiz_sructur(I5)
- structurnaya_izb(I5)
- structur_compact(I5)
- step_centr(I5)
- rang_elem(I5)
- disp(" несвязная структура")
- analiz_sructur(I6)
- structurnaya_izb(I6)
- structur_compact(I6)
- step_centr(I6)
- rang_elem(I6)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement