Input: Senors,Actor, SelectionTechnique, ASC |
Output: SelectedSensors |
if Technique==Random then |
SelectedSensors = Random(Sensors,ASC) |
end |
else if Technique == Rounds then |
for Sensor in Sensors do |
distancesSensor=Euclidean_Distance(Sensor,Actor) |
end |
SortedNodes= Sort(Sensors,distances) |
iteration=0 |
AssignedSensors =0 |
while AssignedSensors<ASC do |
if iteration is even then |
SelectedSensors.Add(SortedNodes.First()) |
end |
else |
SelectedSensors.Add(SortedNodes.Last()) |
end |
AssignedSensors++; |
end |
else if Technique==Tensor then |
for Sensor in Sensors do |
sum = sum + Euclidean_Distance(Sensor,Actor); |
end |
for Sensor in Sensors do |
Sensor.Normalized_Distance = Euclidean_Distance(Sensor,Actor)/sum |
Sensor.weight = Random(0,1) |
Sensor.Lerp= Lerp(Sensor.Normalized_Distance,Sensor.weight) |
end |
SortedSensors=SortSensorsByLerp(Sensors) |
SelectedSensors = SortedSensors[:ASC |
else if Technique == Distance then |
SortedSensors = SortSensorsByDistance(Sensors,Actor) |
SelectedSensors = SortedSensors[:ASC |