Research Article

Supporting Continuous Skyline Queries in Dynamically Weighted Road Networks

Algorithm 3

Update the skyline set.
input interested points set A, dominant relationship M1, comparison of distance M2.
output skyline set SKY
Steps:
A.SortByDistance(); // sort points in A by distance attribute
for(i=1;i<=A.MaxNum;i++) // updateM2
for(j=1;j<=i;j++)
if(M2[i][j].CompareFlag!=compare(A[i],A[j])) // if the relationship changes, update the relationship
M2[i][j].CompareFlag=compare(A[i],A[j]);
M2[i][j].Changed=true;
else
M2[i][j].Changed=false;
SKY.include(A); // initialize SKY
for(i=2;i<=A.MaxNum;i++) // compute SKY
foreach p in SKY
if(M2[i][p.id]. Changed) // if the relationship of distance attribute changes
M1[A[i].id][ p.id]=ComputeDominate(A[i],p); // compute dominant relationship and update M1
if(!SKY. Dominate(A[i],M1)) // judge whether there is a point in SKY that dominates A[i] according to M1
SKY.include(A[i]); // if no point dominates A[i], add A[i] to SKY
return SKY;