Ⅴ. 알고리즘의 평가


알고리즘을 수식으로 표현했을 때의 변수가 서로 독립적인 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

신고

+ Recent posts