KidneyGraphGenerator

2

Click here to load reader

Transcript of KidneyGraphGenerator

Page 1: KidneyGraphGenerator

% Can Donate To Can Receive From % 1 A+ 1,4 1,2,5,6 % 2 O+ 1,2,3,4 2,6 % 3 B+ 3,4 2,3,6,7 % 4 AB+ 4 1,2,3,4,5,6,7,8 % 5 A- 1,4,5,8 5,6 % 6 O- 1,2,3,4,5,6,7,8 6 % 7 B- 3,4,7,8 6,7 % 8 AB- 4,8 5,6,7,8

%number of patient donor pairs %clearvars e, blood

n = 250; %intializes a matrix with n patient donor pairs. Column 1 is donor blood %type. Column 2 is patient blood type blood = zeros(n,3); for i = 1:n blood(i,1) = i; end

%generates random data for donor blood type for i = 1:n A = 100*rand(1); if A < 48.6 blood(i,2) = 2; elseif A < 70.7 blood(i,2) = 1; elseif A < 96.3 blood(i,2) = 3; else blood(i,2) = 4; end end

%generates random data for patient blood type for i = 1:n A = 100*rand(1); if A < 48.6 blood(i,3) = 2; elseif A < 70.7 blood(i,3) = 1; elseif A < 96.3 blood(i,3) = 3; else blood(i,3) = 4; end end

%Draws Edges q=1; e= zeros(1,3); for i = 1:n for j = 1:n w = -(n/5-1) + (n/5)*rand(1); if w > 0

Page 2: KidneyGraphGenerator

A = blood(i,2); %donor blood B = blood(j,3); %patient blood if (A == 1 && (B == 1 || B == 4)) ||... (A == 2) ||... (A == 3 &&(B == 3 || B == 4)) ||... (A == 4 && B == 4) e(q,1) = i; e(q,2) = j; e(q,3) = w; q = q+1; end end end end

csvwrite('edge.csv',e)