Ⅴ. 알고리즘의 평가
알고리즘을 수식으로 표현했을 때의 변수가 서로 독립적인 3개이기 때문에 평가 지표를 고려하면 4변수 방정식이 된다. 그렇기 때문에 2차원, 3차원 그래프로는 표현이 불가능하다. 따라서 MatLab의 색 지정 기능을 이용해 각 군에 속하는 사용자 수를 공간좌표의 축으로 설정하고 평가 지표는 색온도 개념으로 표현했다.
그림 1 4변수 방정석의 표현
방정식은 위와 같이 표현된다. x, y, z축에 대한 각 점에서의 k 값에 따라 색이 결정되며 값과 색의 관계는 좌측에 표시된다. 각 군에 대한 사용자 수, 즉 n11, n12, n13는 각각 x, y, z에 대응시켰으며 1에서 1000명까지 지정했다.
MatLab에서 알고리즘 수식은 다음과 같이 표현된다.
1. 변수 지정
clear; clc;
n1 = 0 : 10 : 1000;
n2 = 0 : 10 : 1000;
n3 = 0 : 10 : 1000;
[n11, n12, n13] = meshgrid(n1,n2,n3);
m3 = 15000;
m2 = m3;
t11 = 1;
t12 = 5;
t13 = 20;
t2 = 3;
t3 = 30;
2. 방정식 입력
1)통신망, 사용자 특성 고려 알고리즘
k = zeros(length(x),length(y),length(z));
for i = 1 : length(x)
n11 = x(i);
for j = 1 : length(y)
n12 = y(j);
for m = 1 : length(z)
n13 = z(m);
if m2 > t11 * n11 + t12 * n12 + t13 * n13
k(i,j,m) = 0;
else
if m3 < t11 * n11 && t11 * n11 > t12 * n12 + t13 * n13
y1 = t11 * (t11*n11+t12*n12+t13*n13)/(2*t11) - m3;
y2 = t11 * (n11 - (t11*n11+t12*n12+t13*n13)/(2*t11) + t12*n12+t13*n13 - m2);
k(i,j,m) = y1 * (y1 > 0) + y2 * (y2 > 0);
else
if m2 < t12*n12 + t13*n13
k(i,j,m) = 0;
else
if m3 < t11*n11 + t2 * t12 && t11*n11 + t12 * n12 + t13 > n13
y1 = t11*n11 + t2 * (-t11*n11+t12*n12+t13*n13)/(t12+t2) - m3;
y2 = t12 *(n12-(-t11*n11+t12*n12+t13*n13)/(t12+t2))+t13*n13-m2;
k(i,j,m) = y1 * (y1 > 0) +(t12-t2)*n12 + y2 * (y2 > 0);
else
if m2 < t13*n13
k(i,j,m) = 0;
else
y1 = t11*n11+t12*n12+(-t11*n11-t12*n12+t13*n13)/(t13+t2)-m3;
y2 = t13*(n13 - (-t11*n11-t12*n12+t13*n13)/(t13+t2))-m2;
k(i,j,m) = y1 * (y1 > 0) +(t12-t2)*n12 + (t13-t2)*n13 + y2 * (y2 > 0);
end
end
end
end
end
end
end
end
2)무작위 분배 알고리즘
k = zeros(length(x),length(y),length(z));
for i = 1 : length(x)
n11 = x(i);
for j = 1 : length(y)
n12 = y(j);
for m = 1 : length(z)
n13 = z(m);
if m2 > t11 * n11 + t12 * n12 + t13 * n13 - m2
k(i,j,m) = 0;
else
if m2 > t12*n12+t13*n13
k(i,j,m) = t11*n11-m3;
else
if m2 > t13*n13
k(i,j,m) = (t11*n11+t2*n12-m3)+(t12-t2)*n12;
else
k(i,j,m) = t11*n11+t12*n12+t13*n13-m2-m3;
end
end
end
end
end
end
3)LTE 통신망 사용 알고리즘
fv = isocaps(x,y,z,k,200,'below');
p = patch(fv, 'FaceColor','interp','EdgeColor','none');
colormap('jet');
colorbar;
daspect([1 1 1])
view(3);
axis tight
k = t11.*n11+t12*n12+t13*n13;
3. 공간좌표 구현 및 채색
fv = isocaps(x,y,z,k,10000,'below');
p = patch(fv, 'FaceColor','interp','EdgeColor','none');
colormap('jet');
colorbar;
daspect([1 1 1])
view(3);
axis tight