Advertisement
Guest User

Untitled

a guest
Sep 14th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scilab 5.49 KB | None | 0 0
  1. A=[0 1 1 1 0 0 1 0 0 0 0;
  2.    1 0 1 0 1 0 0 0 0 0 0;
  3.    1 1 0 0 0 0 0 0 0 0 0;
  4.    1 0 0 0 1 1 0 1 0 0 0;
  5.    0 1 0 1 0 1 0 0 0 0 0;
  6.    0 0 0 1 1 0 0 0 0 0 0;
  7.    1 0 0 0 0 0 0 1 0 0 0;
  8.    0 0 0 1 0 0 1 0 1 0 1;
  9.    0 0 0 0 0 0 0 1 0 0 0;
  10.    0 0 0 0 0 0 0 0 0 0 1;
  11.    0 0 0 0 0 0 0 1 0 1 0];
  12.   //последовательная,
  13.  I1=    [0 1 0 0 0;
  14.          1 0 1 0 0;
  15.          0 1 0 1 0;
  16.          0 0 1 0 1;
  17.          0 0 0 1 0];
  18.          //кольцевая,
  19.   I2=   [0 1 0 0 1;
  20.          1 0 1 0 0;
  21.          0 1 0 1 0;
  22.          0 0 1 0 1;
  23.          1 0 0 1 0];
  24.          //3) радиальная,
  25.   I3=   [0 1 1 1 1;
  26.          1 0 0 0 0;
  27.          1 0 0 0 0;
  28.          1 0 0 0 0;
  29.          1 0 0 0 0];
  30.        //4) древовидная,
  31.    I4=  [0 1 1 0 0;
  32.          1 0 0 0 0;
  33.          1 0 0 1 1;
  34.          0 0 1 0 0;
  35.          0 0 1 0 0];      
  36.     //«полный граф»,
  37.     I5= [0 1 1 1 1;
  38.          1 0 1 1 1;
  39.          1 1 0 1 1;
  40.          1 1 1 0 1;
  41.          1 1 1 1 0];  
  42.          //6) несвязная.
  43.     I6= [0 1 1 0 0;
  44.          1 0 0 0 0;
  45.          1 0 0 0 0;
  46.          0 0 0 0 1;
  47.          0 0 0 1 0];  
  48.    //2 Анализ структур
  49.    function analiz_sructur(A)
  50.     printf("\nОбщий анализ структуры\n");
  51.    if (0.5*sum(A))>=(length(A(1,:))-1) then
  52.        printf("Структура связана\n");
  53.     else
  54.         printf("Структура не связана\n");
  55.     end
  56.     endfunction
  57.    
  58.    
  59.    
  60.    
  61.     //3 структурная избыточность
  62.     function structurnaya_izb(A)
  63.     printf("\nСтруктурная избыточность\n");
  64.     R=0.5*sum(A)/(length(A(1,:))-1);
  65.     if R>0 then
  66.                printf("систем с максимальной избыточностью\n");
  67.     elseif R==0 then
  68.                printf("Система с минимальной избыточностью\n");
  69.     else
  70.                printf("система несвязная\n");
  71.     end
  72.     n = length(A(1,:));
  73.     m = sum(A) / 2;
  74.     _p = 2 * m / n;
  75.    
  76.     e = sum((sum(A,'r') - _p).^2);
  77.     printf("Структурная избыточность R %f\nсреднеквадратическое отклонение \nзаданного распределения вершин от равномерного %f \n",R,e);
  78.     endfunction
  79.    
  80.    
  81.    
  82.     //4 Структурная компактность
  83.     function structur_compact(A)
  84.          size_=length(A(1,:))
  85.     printf("\nСтруктурная компактность\n");
  86.     Temp = ones(size_,size_);
  87.     for i=1:size_
  88.         Temp(i,:)=deikstra(A,i);
  89.     end
  90.     Q=sum(Temp)
  91.     Qmin=size_*(size_-1)
  92.     Qrel=Q/Qmin-1
  93.     printf("Структурная компактность %f\n",Qrel);
  94.     endfunction
  95.    
  96.    
  97.    
  98.    
  99.     //5 Степень централизации
  100.      function step_centr(A)
  101.          
  102.           size_=length(A(1,:))
  103.            Temp = ones(size_,size_);
  104.     for i=1:size_
  105.         Temp(i,:)=deikstra(A,i);
  106.     end
  107.     Q=sum(Temp)
  108.    
  109.      printf("\nСтепень централизации в структуре\n");
  110.     z=Q*0.5*sum(Temp,'c')
  111.     z_max=max(z)
  112.     delta=(size_-1)*(2*z_max-size_)/(z_max^(size_-2))
  113.     printf("Индекс центральности %d\n",delta);
  114.     if delta==1 then
  115.          printf("Структура максимальной степенью централизации\n");
  116.     else
  117.          printf("Структура с равномерным распределением\n");
  118.     end
  119.     endfunction
  120.    
  121.    
  122.    
  123.     // Ранг элемента
  124.     function rang_elem(A)
  125.     printf("\nРанг элемента\n");
  126.     k=3
  127.     sum_A=sum(A)
  128.     r=(sum(A,'c').^k)/sum_A
  129.     printf("Ранги элементов при k = %d\n",k);
  130.     disp(r)
  131.     endfunction
  132.    
  133.    
  134.     function [ans]=deikstra(A, point)
  135.     maxim =9999999;
  136.     s=length(A(1,:));
  137.     distance=ones(1,length(A(1,:)))*maxim
  138.     vizited=zeros(1,length(A(1,:)));
  139.     m=point+1;
  140.     count=0;
  141.     index=0;
  142.     i=0;
  143.     u=0;
  144.     distance(1,point)=0;
  145.     for count=1:(s-1)
  146.         minim=maxim;
  147.        for i=1:s
  148.            if vizited(1,i)==0 & distance(1,i)<=minim then
  149.                minim= distance(1,i);            
  150.                index=i;
  151.            end
  152.         end
  153.            u=index;  
  154.            vizited(1,u)=1;
  155.            for i=1:s
  156.                if vizited(1,i)==0 & A(u,i)<>0 & distance(1,u)<>maxim & (distance(1,u)+A(u,i))<distance(1,i) then
  157.                    distance(1,i)=A(u,i)+distance(1,u);
  158.                   end
  159.            end
  160.     end
  161.     ans=distance
  162. endfunction
  163. disp("      последовательная структура")
  164. analiz_sructur(I1)
  165. structurnaya_izb(I1)
  166. structur_compact(I1)
  167. step_centr(I1)
  168. rang_elem(I1)
  169. disp("      кольцевая структура")
  170. analiz_sructur(I2)
  171. structurnaya_izb(I2)
  172. structur_compact(I2)
  173. step_centr(I2)
  174. rang_elem(I2)
  175. disp("      радиальная структура")
  176. analiz_sructur(I3)
  177. structurnaya_izb(I3)
  178. structur_compact(I3)
  179. step_centr(I3)
  180. rang_elem(I3)
  181. disp("      древовидная структура")
  182. analiz_sructur(I4)
  183. structurnaya_izb(I4)
  184. structur_compact(I4)
  185. step_centr(I4)
  186. rang_elem(I4)
  187. disp("      типа «полный граф»")
  188. analiz_sructur(I5)
  189. structurnaya_izb(I5)
  190. structur_compact(I5)
  191. step_centr(I5)
  192. rang_elem(I5)
  193. disp("      несвязная структура")
  194. analiz_sructur(I6)
  195. structurnaya_izb(I6)
  196. structur_compact(I6)
  197. step_centr(I6)
  198. rang_elem(I6)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement