package org.lucci.madhoc.network;
import java.util.Collection;
import java.util.List;
import java.util.Vector;
import org.lucci.madhoc.network.util.Graph;
public class OptimizeConnectivityByUsingUMTSLinks extends NetworkAlterer
{
@Override
public void operate(Network network)
{
int numberOfStations = network.getStations().size();
Collection<Collection<Station>> partitions = Graph.getPartitions(network);
List<Collection<Station>> partitionsToInterconnect = new Vector<Collection<Station>>();
for (Collection<Station> partition : partitions)
{
if (partition.size() > numberOfStations / 100)
{
partitionsToInterconnect.add(partition);
}
}
java.util.Collections.shuffle(partitionsToInterconnect);
for (int i = 0; i < partitionsToInterconnect.size() - 1; ++i)
{
network.createBidirectionalConnection(partitionsToInterconnect.get(i).iterator().next(), partitionsToInterconnect.get(i + 1).iterator().next(), "umts");
}
}
}