--- GA_RoletaSUS.m --------------------------------------------------------------------- rand('state',0); f = sort(rand(20,1)); p = f/sum(f); a = cumsum(p); P = (1:20)'; MP = zeros(size(P)); MP2 = zeros(size(P)); % Roleta for k = 1:20, r = rand(1,1); MP(k) = P(1+sum(r>a)); end; % SUS r0 = rand(1,1)/20; r = r0; k = 1; i = 1; BKR = []; while k<=20, BKR = [BKR ; [k r a(i)]]; while r<=a(i), MP2(k) = P(i); r = r+1/20; k = k+1; end; i = i+1; end; % [(1:20)' f p a MP MP2] % p Roleta SUS % % 1.0000 0.0185 0.0015 0.0015 4.0000 4.0000 1.0000 0.0419 0.0015 % 2.0000 0.1763 0.0141 0.0156 11.0000 5.0000 1.0000 0.0419 0.0156 % 3.0000 0.2311 0.0185 0.0341 18.0000 7.0000 1.0000 0.0419 0.0341 % 4.0000 0.4057 0.0325 0.0667 2.0000 8.0000 1.0000 0.0419 0.0667 % 5.0000 0.4103 0.0329 0.0996 7.0000 9.0000 2.0000 0.0919 0.0996 % 6.0000 0.4447 0.0356 0.1352 8.0000 10.0000 3.0000 0.1419 0.1352 % 7.0000 0.4565 0.0366 0.1718 8.0000 11.0000 3.0000 0.1419 0.1718 % 8.0000 0.4860 0.0390 0.2108 15.0000 12.0000 4.0000 0.1919 0.2108 % 9.0000 0.6068 0.0486 0.2594 10.0000 13.0000 5.0000 0.2419 0.2594 % 10.0000 0.6154 0.0493 0.3087 8.0000 13.0000 6.0000 0.2919 0.3087 % 11.0000 0.7382 0.0592 0.3679 2.0000 14.0000 7.0000 0.3419 0.3679 % 12.0000 0.7621 0.0611 0.4290 17.0000 15.0000 8.0000 0.3919 0.4290 % 13.0000 0.7919 0.0635 0.4925 13.0000 16.0000 9.0000 0.4419 0.4925 % 14.0000 0.8214 0.0658 0.5583 20.0000 16.0000 11.0000 0.5419 0.5583 % 15.0000 0.8913 0.0715 0.6298 13.0000 17.0000 12.0000 0.5919 0.6298 % 16.0000 0.8936 0.0716 0.7014 12.0000 18.0000 13.0000 0.6419 0.7014 % 17.0000 0.9169 0.0735 0.7749 18.0000 18.0000 15.0000 0.7419 0.7749 % 18.0000 0.9218 0.0739 0.8488 14.0000 19.0000 16.0000 0.7919 0.8488 % 19.0000 0.9355 0.0750 0.9238 8.0000 20.0000 18.0000 0.8919 0.9238 % 20.0000 0.9501 0.0762 1.0000 16.0000 20.0000 19.0000 0.9419 1.0000 ----------------------------------------------------------------------------------------